Previous 199869 Revisions Next

r31765 Monday 25th August, 2014 at 09:25:43 UTC by Robbbert
hankin.c : redo volume control code
[src/mame/drivers]hankin.c

trunk/src/mame/drivers/hankin.c
r31764r31765
430430         {
431431            m_timer_s[2]++;
432432            offs_t offs = (m_timer_s[2] & 31) | (m_ic2a << 5);
433            m_dac->write_unsigned8(m_p_prom[offs]<< m_vol);
433            m_dac->write_unsigned8(m_p_prom[offs]<< 4);
434434         }
435435         else
436436            m_timer_s[2] = 0;
r31764r31765
441441void hankin_state::machine_reset()
442442{
443443   m_p_prom = memregion("roms")->base() + 0x1800;
444   m_vol = 0;
444445}
445446
446447// PA0-3 = sound data from main cpu
r31764r31765
454455{
455456   m_ic2a = data >> 4;
456457   offs_t offs = (m_timer_s[2] & 31) | (m_ic2a << 5);
457   m_dac->write_unsigned8(m_p_prom[offs]<< m_vol);
458   m_dac->write_unsigned8(m_p_prom[offs]<< 4);
458459}
459460
460461// PB0-3 = preset on 74LS161
r31764r31765
462463WRITE8_MEMBER( hankin_state::ic2_b_w )
463464{
464465   m_ic2b = data;
465   m_vol = (m_ic2b & 0xf0) / 50; // 0 to 4
466
467   data >>= 4;
468
469   if (data != m_vol)
470   {
471      m_vol = data;
472      float vol = m_vol/16.666+0.1;
473      m_dac->set_output_gain(0, vol);
474   }
475
466476}
467477
468478// low to divide 555 by 2

Previous 199869 Revisions Next


© 1997-2024 The MAME Team