Previous 199869 Revisions Next

r23156 Saturday 25th May, 2013 at 15:20:10 UTC by hap
improve cbaj sound
[src/mame/drivers]zn.c

trunk/src/mame/drivers/zn.c
r23155r23156
9797   DECLARE_MACHINE_RESET(coh1001l);
9898   DECLARE_MACHINE_RESET(coh1002v);
9999   DECLARE_MACHINE_RESET(coh1002m);
100   DECLARE_MACHINE_RESET(coh1002msnd);
100101   DECLARE_WRITE_LINE_MEMBER(irqhandler);
101102   INTERRUPT_GEN_MEMBER(qsound_interrupt);
102103   void atpsx_dma_read(UINT32 *p_n_psxram, UINT32 n_address, INT32 n_size );
r23155r23156
119120   size_t m_nbajamex_eeprom_size;
120121   UINT8 *m_nbajamex_eeprom;
121122
122   int m_cbaj_to_z80_status;
123   int m_cbaj_from_z80_status;
124   int m_latch_to_z80;
123   UINT8 m_cbaj_fifo_buffer[2][0x400];
124   int m_cbaj_fifo_main_ptr[2];
125   int m_cbaj_fifo_z80_ptr[2];
125126
126127   required_device<psxgpu_device> m_gpu;
127128   required_device<znsec_device> m_znsec0;
r23155r23156
21972198
21982199   MCFG_SOUND_ADD("ymz", YMZ280B, XTAL_16_9344MHz)
21992200   MCFG_YMZ280B_IRQ_HANDLER(WRITELINE(zn_state, coh1001l_ymz_irq))
2200   MCFG_SOUND_ROUTE(0, "lspeaker", 0.37)
2201   MCFG_SOUND_ROUTE(1, "rspeaker", 0.37)
2201   MCFG_SOUND_ROUTE(0, "lspeaker", 0.35)
2202   MCFG_SOUND_ROUTE(1, "rspeaker", 0.35)
22022203MACHINE_CONFIG_END
22032204
22042205/*
r23155r23156
24232424
24242425READ8_MEMBER(zn_state::cbaj_from_z80_latch_r)
24252426{
2426   machine().scheduler().synchronize();
2427
2428   m_cbaj_from_z80_status &= ~2;
2429   return soundlatch2_byte_r(space,0);
2427   UINT8 ret = m_cbaj_fifo_buffer[1][m_cbaj_fifo_main_ptr[1]];
2428   m_cbaj_fifo_main_ptr[1] = (m_cbaj_fifo_main_ptr[1] + 1) & 0x3ff;
2429   return ret;
24302430}
24312431
24322432WRITE8_MEMBER(zn_state::cbaj_to_z80_latch_w)
24332433{
2434   machine().scheduler().synchronize();
2435
2436   m_cbaj_to_z80_status |= 2;
2437   m_latch_to_z80 = data;
2434   m_cbaj_fifo_buffer[0][m_cbaj_fifo_main_ptr[0]] = data;
2435   m_cbaj_fifo_main_ptr[0] = (m_cbaj_fifo_main_ptr[0] + 1) & 0x3ff;
24382436}
24392437
24402438READ8_MEMBER(zn_state::cbaj_from_z80_status_r)
24412439{
2442   machine().scheduler().synchronize();
2443
2444   int ready = m_cbaj_from_z80_status;
2445   m_cbaj_from_z80_status &= ~2;
2446   return ready;
2440   return (m_cbaj_fifo_main_ptr[1] != m_cbaj_fifo_z80_ptr[1]) ? 0x02 : 0x00;
24472441}
24482442
24492443static ADDRESS_MAP_START(coh1002msnd_map, AS_PROGRAM, 32, zn_state)
r23155r23156
24552449
24562450READ8_MEMBER(zn_state::cbaj_to_z80_latch_r)
24572451{
2458   m_cbaj_to_z80_status &= ~2;
2459   return m_latch_to_z80;
2452   UINT8 ret = m_cbaj_fifo_buffer[0][m_cbaj_fifo_z80_ptr[0]];
2453   m_cbaj_fifo_z80_ptr[0] = (m_cbaj_fifo_z80_ptr[0] + 1) & 0x3ff;
2454   return ret;
24602455}
24612456
24622457WRITE8_MEMBER(zn_state::cbaj_from_z80_latch_w)
24632458{
2464   m_cbaj_from_z80_status |= 2;
2465   soundlatch2_byte_w(space, 0, data);
2459   m_cbaj_fifo_buffer[1][m_cbaj_fifo_z80_ptr[1]] = data;
2460   m_cbaj_fifo_z80_ptr[1] = (m_cbaj_fifo_z80_ptr[1] + 1) & 0x3ff;
24662461}
24672462
24682463READ8_MEMBER(zn_state::cbaj_to_z80_status_r)
24692464{
2470   int ret = m_cbaj_to_z80_status;
2471   m_cbaj_to_z80_status &= ~2;
2472   return ret;
2465   return (m_cbaj_fifo_main_ptr[0] != m_cbaj_fifo_z80_ptr[0]) ? 0x02 : 0x00;
24732466}
24742467
24752468static ADDRESS_MAP_START( cbaj_z80_map, AS_PROGRAM, 8, zn_state )
r23155r23156
24842477   AM_RANGE(0x91, 0x91) AM_READ(cbaj_to_z80_status_r)
24852478ADDRESS_MAP_END
24862479
2480MACHINE_RESET_MEMBER(zn_state,coh1002msnd)
2481{
2482   m_cbaj_fifo_main_ptr[0] = m_cbaj_fifo_main_ptr[1] = 0;
2483   m_cbaj_fifo_z80_ptr[0] = m_cbaj_fifo_z80_ptr[1] = 0;
24872484
2485   MACHINE_RESET_CALL_MEMBER(coh1002m);
2486}
2487
24882488static MACHINE_CONFIG_DERIVED( coh1002msnd, coh1002m )
24892489   MCFG_CPU_MODIFY("maincpu")
24902490   MCFG_CPU_PROGRAM_MAP(coh1002msnd_map)
r23155r23156
24932493   MCFG_CPU_PROGRAM_MAP(cbaj_z80_map)
24942494   MCFG_CPU_IO_MAP(cbaj_z80_port_map)
24952495
2496   MCFG_QUANTUM_TIME(attotime::from_hz(6000))
2497   MCFG_MACHINE_RESET_OVERRIDE(zn_state, coh1002msnd)
2498
24962499   MCFG_SOUND_ADD("ymz", YMZ280B, XTAL_16_9344MHz)
2497   MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
2498   MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
2500   MCFG_SOUND_ROUTE(0, "lspeaker", 0.35)
2501   MCFG_SOUND_ROUTE(1, "rspeaker", 0.35)
24992502MACHINE_CONFIG_END
25002503
25012504

Previous 199869 Revisions Next


© 1997-2024 The MAME Team