Previous 199869 Revisions Next

r21193 Tuesday 19th February, 2013 at 21:45:34 UTC by Angelo Salese
Comms works, sound still doesn't
[src/mame/drivers]coolridr.c

trunk/src/mame/drivers/coolridr.c
r21192r21193
322322   UINT8 m_vblank;
323323   int m_scsp_last_line;
324324   UINT8 an_mux_data;
325   UINT8 sound_data;
325326
326
327327   DECLARE_READ32_MEMBER(sysh1_unk_r);
328328   DECLARE_WRITE32_MEMBER(sysh1_unk_w);
329329   DECLARE_READ32_MEMBER(sysh1_ioga_r);
r21192r21193
341341   DECLARE_READ8_MEMBER(analog_mux_r);
342342   DECLARE_WRITE8_MEMBER(analog_mux_w);
343343   DECLARE_WRITE8_MEMBER(lamps_w);
344   DECLARE_WRITE8_MEMBER(sound_to_sh1_w);
344345   DECLARE_WRITE_LINE_MEMBER(scsp_to_main_irq);
345346   DECLARE_DRIVER_INIT(coolridr);
346347   virtual void machine_start();
r21192r21193
459460/* unknown purpose */
460461READ32_MEMBER(coolridr_state::sysh1_unk_r)
461462{
463   if(offset == 8)
464      return sound_data;
465
466   if(offset != 2)
467      printf("%08x\n",offset);
468
462469   return m_h1_unk[offset];
463470}
464471
465472WRITE32_MEMBER(coolridr_state::sysh1_unk_w)
466473{
474   if(offset != 8) // 8 = sound irq ack?
475      printf("%08x %08x\n",offset,data);
476
467477   COMBINE_DATA(&m_h1_unk[offset]);
468478}
469479
r21192r21193
944954   AM_RANGE(0x03200000, 0x0327ffff) AM_READWRITE16(h1_soundram2_r, h1_soundram2_w,0xffffffff) //AM_SHARE("soundram2")
945955   AM_RANGE(0x03300000, 0x03300fff) AM_DEVREADWRITE16_LEGACY("scsp2", scsp_r, scsp_w, 0xffffffff)
946956
947   AM_RANGE(0x04000000, 0x0400001f) AM_DEVREADWRITE8("i8237", am9517a_device, read, write, 0xffffffff)
948   AM_RANGE(0x04000020, 0x0400003f) AM_READWRITE(sysh1_unk_r,sysh1_unk_w) AM_SHARE("h1_unk")
949   AM_RANGE(0x04200000, 0x0420003f) AM_RAM /* hi-word for DMA? */
957//   AM_RANGE(0x04000000, 0x0400001f) AM_DEVREADWRITE8("i8237", am9517a_device, read, write, 0xffffffff)
958   AM_RANGE(0x04000000, 0x0400003f) AM_READWRITE(sysh1_unk_r,sysh1_unk_w) AM_SHARE("h1_unk")
959//   AM_RANGE(0x04200000, 0x0420003f) AM_RAM
950960
951961   AM_RANGE(0x05000000, 0x05000fff) AM_RAM
952962   AM_RANGE(0x05200000, 0x052001ff) AM_RAM
r21192r21193
967977   AM_RANGE(0x60000000, 0x600003ff) AM_WRITENOP
968978ADDRESS_MAP_END
969979
970// SH-1 or SH-2 almost certainly copies the program down to here: the ROM containing the program is 32-bit wide and the 68000 is 16-bit
971// the SCSP is believed to be hardcoded to decode the first 4 MB like this for a master/slave config
972// (see also Model 3):
980WRITE8_MEMBER( coolridr_state::sound_to_sh1_w)
981{
982   sound_data = data;
983}
984
973985static ADDRESS_MAP_START( system_h1_sound_map, AS_PROGRAM, 16, coolridr_state )
974986   AM_RANGE(0x000000, 0x07ffff) AM_RAM AM_REGION("scsp1",0) AM_SHARE("soundram")
975987   AM_RANGE(0x100000, 0x100fff) AM_DEVREADWRITE_LEGACY("scsp1", scsp_r, scsp_w)
976988   AM_RANGE(0x200000, 0x27ffff) AM_RAM AM_REGION("scsp2",0) AM_SHARE("soundram2")
977989   AM_RANGE(0x300000, 0x300fff) AM_DEVREADWRITE_LEGACY("scsp2", scsp_r, scsp_w)
978990   AM_RANGE(0x800000, 0x80ffff) AM_RAM
979   AM_RANGE(0x900000, 0x900001) AM_WRITENOP
991   AM_RANGE(0x900000, 0x900001) AM_WRITE8(sound_to_sh1_w,0x00ff)
980992ADDRESS_MAP_END
981993
982994
r21192r21193
14381450static const scsp_interface scsp2_interface =
14391451{
14401452   0,
1441   NULL
1453   NULL,
1454   DEVCB_DRIVER_LINE_MEMBER(coolridr_state, scsp_to_main_irq)
14421455};
14431456
14441457#define MAIN_CLOCK XTAL_28_63636MHz

Previous 199869 Revisions Next


© 1997-2024 The MAME Team