diff --git a/src/mame/drivers/aces1.c b/src/mame/drivers/aces1.c index 9569348a08a..294a40bf1da 100644 --- a/src/mame/drivers/aces1.c +++ b/src/mame/drivers/aces1.c @@ -11,6 +11,11 @@ lots of reads from 0xe000 at the start JPM style Reel MCU? + Hardware overview + - Z80 + - 2 timed interrupts (IRQ and NMI) (can be reset) + - AY8910 for sound + - some of the roms appear to have been merged to larger files, or there are two versions of the board? @@ -22,6 +27,7 @@ JPM style Reel MCU? #include "sound/ay8910.h" #include "machine/i8255.h" + class aces1_state : public driver_device { public: @@ -30,81 +36,249 @@ public: m_maincpu(*this, "maincpu") { } + DECLARE_READ8_MEMBER( aces1_unk_r ) + { + return 0x00; + } + + DECLARE_READ8_MEMBER( aces1_unk_port00_r ) + { + return 0x00; + } + DECLARE_READ8_MEMBER( aces1_nmi_counter_reset_r ) { + aces1_reset_nmi_timer(); return 0x00; } DECLARE_WRITE8_MEMBER( aces1_nmi_counter_reset_w ) { - + aces1_reset_nmi_timer(); } -protected: + void aces1_reset_nmi_timer(void) + { + m_aces1_nmi_timer->adjust(m_maincpu->cycles_to_attotime(3072)); + } + + void aces1_reset_irq_timer(void) + { + m_aces1_irq_timer->adjust(m_maincpu->cycles_to_attotime(160000)); + } + + + emu_timer *m_aces1_irq_timer; + emu_timer *m_aces1_nmi_timer; + + + DECLARE_WRITE8_MEMBER(ppi8255_ic24_intf_write_a) + { + // printf("7segs %02x\n", data); + } + + DECLARE_WRITE8_MEMBER(ppi8255_ic24_intf_write_b) + { + // printf("lamp %02x\n", data); + } + + DECLARE_WRITE8_MEMBER(ppi8255_ic24_intf_write_c) + { + // printf("strobe %02x\n", data); + } + + DECLARE_WRITE8_MEMBER(ppi8255_ic25_intf_write_a) + { + // printf("extender lamps %02x\n", data); + } + + DECLARE_WRITE8_MEMBER(ppi8255_ic25_intf_write_b) + { + // printf("meters, extender select %02x\n", data); + } + + DECLARE_WRITE8_MEMBER(ppi8255_ic25_intf_write_c) + { + // printf("reels, extender strobe %02x\n", data); + } + + DECLARE_READ8_MEMBER( ppi8255_ic37_intf_read_a ) + { + return 0xff; + } + + DECLARE_READ8_MEMBER( ppi8255_ic37_intf_read_b ) + { + return 0xff; + } + + DECLARE_READ8_MEMBER( ppi8255_ic37_intf_read_c ) + { + return 0xff; + } // devices required_device m_maincpu; + + +protected: + }; + + +static TIMER_CALLBACK( m_aces1_irq_timer_callback ) +{ + aces1_state *state = machine.driver_data(); +// printf("irq\n"); + device_set_input_line(state->m_maincpu, INPUT_LINE_IRQ0, HOLD_LINE); + state->aces1_reset_irq_timer(); +} + +static TIMER_CALLBACK( m_aces1_nmi_timer_callback ) +{ + aces1_state *state = machine.driver_data(); +// printf("nmi\n"); + device_set_input_line(state->m_maincpu, INPUT_LINE_NMI, PULSE_LINE); + state->aces1_reset_nmi_timer(); +} + +static void aces1_create_timers(running_machine &machine) +{ + aces1_state *state = machine.driver_data(); + + state->m_aces1_irq_timer = machine.scheduler().timer_alloc(FUNC(m_aces1_irq_timer_callback), 0); + state->m_aces1_nmi_timer = machine.scheduler().timer_alloc(FUNC(m_aces1_nmi_timer_callback), 0); +} + +static MACHINE_START( aces1 ) +{ + aces1_create_timers(machine); +} + +static MACHINE_RESET( aces1 ) +{ + aces1_state *state = machine.driver_data(); + state->aces1_reset_nmi_timer(); + state->aces1_reset_irq_timer(); +} + static ADDRESS_MAP_START( aces1_map, AS_PROGRAM, 8, aces1_state ) AM_RANGE(0x0000, 0x7fff) AM_ROM AM_RANGE(0x8000, 0x8fff) AM_RAM - // 0xadf0 AY - sound, dips - // 0xafb0 IC24 - lamps, 7segs - // 0xafd0 IC25 - lamps, meters, reel comms (writes) - // 0xafe0 IC37 - doors, coins, reel optics (reads) - // 0xc000 Illegal access? + AM_RANGE(0xadf0, 0xadf3) AM_DEVREADWRITE_LEGACY("aysnd", ay8910_r, ay8910_address_data_w) // Dips, Sound + AM_RANGE(0xafb0, 0xafb3) AM_DEVREADWRITE("ppi8255_ic24", i8255_device, read, write) // IC24 - lamps, 7segs + AM_RANGE(0xafd0, 0xafd3) AM_DEVREADWRITE("ppi8255_ic25", i8255_device, read, write) // IC25 - lamps, meters, reel comms (writes) + AM_RANGE(0xafe0, 0xafe3) AM_DEVREADWRITE("ppi8255_ic37", i8255_device, read, write)// IC37 - doors, coins, reel optics (reads) + AM_RANGE(0xc000, 0xc000) AM_READ(aces1_unk_r) // illegal or reset irq? AM_RANGE(0xe000, 0xe000) AM_READWRITE(aces1_nmi_counter_reset_r, aces1_nmi_counter_reset_w) ADDRESS_MAP_END static ADDRESS_MAP_START( aces1_portmap, AS_IO, 8, aces1_state ) + AM_RANGE(0x00, 0x00) AM_READ(aces1_unk_port00_r) // read before enabling interrupts? ADDRESS_MAP_END static INPUT_PORTS_START( aces1 ) + PORT_START("DSWA") + PORT_DIPNAME( 0x01, 0x01, "DSWA" ) + PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + + PORT_START("DSWB") + PORT_DIPNAME( 0x01, 0x01, "DSWB" ) + PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) INPUT_PORTS_END + +// 0xafb0 IC24 - lamps, 7segs static I8255A_INTERFACE( ppi8255_ic24_intf ) { DEVCB_NULL, /* Port A read */ - DEVCB_NULL, /* Port A write */ + DEVCB_DRIVER_MEMBER(aces1_state,ppi8255_ic24_intf_write_a), /* Port A write */ // 7segs DEVCB_NULL, /* Port B read */ - DEVCB_NULL, /* Port B write */ + DEVCB_DRIVER_MEMBER(aces1_state,ppi8255_ic24_intf_write_b), /* Port B write */ // lamps DEVCB_NULL, /* Port C read */ - DEVCB_NULL /* Port C write */ + DEVCB_DRIVER_MEMBER(aces1_state,ppi8255_ic24_intf_write_c) /* Port C write */ // strobe }; +// 0xafd0 IC25 - lamps, meters, reel comms (writes) static I8255A_INTERFACE( ppi8255_ic25_intf ) { DEVCB_NULL, /* Port A read */ - DEVCB_NULL, /* Port A write */ + DEVCB_DRIVER_MEMBER(aces1_state,ppi8255_ic25_intf_write_a), /* Port A write */ // extra lamps DEVCB_NULL, /* Port B read */ - DEVCB_NULL, /* Port B write */ + DEVCB_DRIVER_MEMBER(aces1_state,ppi8255_ic25_intf_write_b), /* Port B write */ // meters, extra lamp select DEVCB_NULL, /* Port C read */ - DEVCB_NULL /* Port C write */ + DEVCB_DRIVER_MEMBER(aces1_state,ppi8255_ic25_intf_write_c) /* Port C write */ // reel write, extra lamp strobe }; +// 0xafe0 IC37 - doors, coins, reel optics (reads) static I8255A_INTERFACE( ppi8255_ic37_intf ) { - DEVCB_NULL, /* Port A read */ + DEVCB_DRIVER_MEMBER(aces1_state,ppi8255_ic37_intf_read_a), /* Port A read */ // doors + coins DEVCB_NULL, /* Port A write */ - DEVCB_NULL, /* Port B read */ + DEVCB_DRIVER_MEMBER(aces1_state,ppi8255_ic37_intf_read_b), /* Port B read */ // switches DEVCB_NULL, /* Port B write */ - DEVCB_NULL, /* Port C read */ + DEVCB_DRIVER_MEMBER(aces1_state,ppi8255_ic37_intf_read_c), /* Port C read */ // reel optics DEVCB_NULL /* Port C write */ }; +// 0xadf0 - Dips, Sound static const ay8910_interface ay8910_config = { AY8910_LEGACY_OUTPUT, AY8910_DEFAULT_LOADS, - DEVCB_NULL, - DEVCB_NULL, + DEVCB_INPUT_PORT("DSWA"), + DEVCB_INPUT_PORT("DSWB"), DEVCB_NULL, DEVCB_NULL }; @@ -116,9 +290,12 @@ static MACHINE_CONFIG_START( aces1, aces1_state ) MCFG_CPU_PROGRAM_MAP(aces1_map) MCFG_CPU_IO_MAP(aces1_portmap) - MCFG_I8255A_ADD( "ppi8255_0", ppi8255_ic24_intf ) - MCFG_I8255A_ADD( "ppi8255_1", ppi8255_ic25_intf ) - MCFG_I8255A_ADD( "ppi8255_2", ppi8255_ic37_intf ) + MCFG_I8255A_ADD( "ppi8255_ic24", ppi8255_ic24_intf ) + MCFG_I8255A_ADD( "ppi8255_ic25", ppi8255_ic25_intf ) + MCFG_I8255A_ADD( "ppi8255_ic37", ppi8255_ic37_intf ) + + MCFG_MACHINE_START( aces1 ) + MCFG_MACHINE_RESET( aces1 ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/jclub2.c b/src/mame/drivers/jclub2.c index 5b1a00be234..5dbc47b31eb 100644 --- a/src/mame/drivers/jclub2.c +++ b/src/mame/drivers/jclub2.c @@ -754,7 +754,7 @@ static ADDRESS_MAP_START( st0016_io, AS_IO, 8, darkhors_state ) //AM_RANGE(0xc1, 0xc1) AM_READ_LEGACY(cmd2_r) //AM_RANGE(0xc2, 0xc2) AM_READ_LEGACY(cmd_stat8_r) AM_RANGE(0xe1, 0xe1) AM_WRITE(st0016_rom_bank_w) - AM_RANGE(0xe7, 0xe7) AM_WRITE(st0016_rom_bank_w) + //AM_RANGE(0xe7, 0xe7) AM_WRITE(st0016_rom_bank_w) //AM_RANGE(0xf0, 0xf0) AM_READ_LEGACY(st0016_dma_r) ADDRESS_MAP_END @@ -951,9 +951,8 @@ ROM_START( jclub2o ) ROM_LOAD16_WORD_SWAP( "jc2-110x.u27",0x00000, 0x080000, CRC(03aa6882) SHA1(e0343bc77a19994ddafa614891663b40e1476332) ) ROM_LOAD16_WORD_SWAP( "jc2-112x.u27",0x00000, 0x080000, CRC(e1ab93bd) SHA1(78b618b3f7819bd5351ebf949f328fec7795cec9) ) // alt revision? - ROM_REGION( 0x90000, "st0016", 0 ) // z80 core (used for sound?) - ROM_LOAD( "sx006-04.u87", 0x10000, 0x80000, CRC(a87adedd) SHA1(1cd5af2d03738fff2230b46241659179467c828c) ) - ROM_COPY( "st0016", 0x10000, 0x00000, 0x08000 ) + ROM_REGION( 0x80000, "st0016", 0 ) // z80 core (used for sound?) + ROM_LOAD( "sx006-04.u87", 0x00000, 0x80000, CRC(a87adedd) SHA1(1cd5af2d03738fff2230b46241659179467c828c) ) ROM_END /*************************************************************************** diff --git a/src/mame/drivers/macs.c b/src/mame/drivers/macs.c index a49ca5d909b..271585703c0 100644 --- a/src/mame/drivers/macs.c +++ b/src/mame/drivers/macs.c @@ -136,7 +136,7 @@ READ8_MEMBER(macs_state::macs_input_r) WRITE8_MEMBER(macs_state::macs_rom_bank_w) { - membank("bank1")->set_base(machine().root_device().memregion("maincpu")->base() + (data* 0x4000) + 0x10000 + macs_cart_slot*0x400000 ); + membank("bank1")->set_base(machine().root_device().memregion("maincpu")->base() + (data* 0x4000) + macs_cart_slot*0x400000 ); m_st0016_rom_bank=data; } @@ -162,7 +162,7 @@ WRITE8_MEMBER(macs_state::macs_output_w) macs_cart_slot = (data & 0xc) >> 2; - membank("bank4")->set_base(&ROM[macs_cart_slot*0x400000+0x10000] ); + membank("bank4")->set_base(&ROM[macs_cart_slot*0x400000] ); } membank("bank2")->set_base(&m_ram1[((data&0x20)>>5)*0x1000+0x800] ); @@ -519,8 +519,7 @@ ROM_START( macsbios ) ROM_REGION( 0x400000, "user3", ROMREGION_ERASEFF ) // Slot B ROM_REGION( 0x1000000, "maincpu", 0 ) - ROM_COPY( "user1", 0x00000, 0x010000, 0x400000 ) - ROM_COPY( "user1", 0x00000, 0x000000, 0x0008000 ) + ROM_COPY( "user1", 0x00000, 0x000000, 0x400000 ) // Bios ROM_END ROM_START( mac2bios ) @@ -529,8 +528,7 @@ ROM_START( mac2bios ) ROM_REGION( 0x400000, "user3", ROMREGION_ERASEFF ) // Slot B ROM_REGION( 0x1000000, "maincpu", 0 ) - ROM_COPY( "user1", 0x00000, 0x010000, 0x400000 ) - ROM_COPY( "user1", 0x00000, 0x000000, 0x0008000 ) + ROM_COPY( "user1", 0x00000, 0x000000, 0x400000 ) // Bios ROM_END ROM_START( kisekaem ) @@ -546,9 +544,8 @@ ROM_START( kisekaem ) ROM_REGION( 0x400000, "user3", ROMREGION_ERASEFF ) // Slot B ROM_REGION( 0x1000000, "maincpu", 0 ) - ROM_COPY( "user1", 0x00000, 0x010000, 0x400000 ) - ROM_COPY( "user1", 0x00000, 0x000000, 0x008000 ) - ROM_COPY( "user2", 0x00000, 0x410000, 0x400000 ) + ROM_COPY( "user1", 0x00000, 0x000000, 0x400000 ) // Bios + ROM_COPY( "user2", 0x00000, 0x400000, 0x400000 ) // Slot A ROM_END ROM_START( kisekaeh ) @@ -564,9 +561,8 @@ ROM_START( kisekaeh ) ROM_REGION( 0x400000, "user3", ROMREGION_ERASEFF ) // Slot B ROM_REGION( 0x1000000, "maincpu", 0 ) - ROM_COPY( "user1", 0x00000, 0x010000, 0x400000 ) - ROM_COPY( "user1", 0x00000, 0x000000, 0x008000 ) - ROM_COPY( "user2", 0x00000, 0x410000, 0x400000 ) + ROM_COPY( "user1", 0x00000, 0x000000, 0x400000 ) // Bios + ROM_COPY( "user2", 0x00000, 0x400000, 0x400000 ) // Slot A ROM_END ROM_START( cultname ) // uses printer - two different games ? (slot a - checks for printer, slot b - not) @@ -587,10 +583,9 @@ ROM_START( cultname ) // uses printer - two different games ? (slot a - checks f ROM_REGION( 0x1000000, "maincpu", 0 ) - ROM_COPY( "user1", 0x00000, 0x010000, 0x400000 ) - ROM_COPY( "user1", 0x00000, 0x000000, 0x008000 ) - ROM_COPY( "user2", 0x00000, 0x410000, 0x400000 ) - ROM_COPY( "user3", 0x00000, 0x810000, 0x400000 ) + ROM_COPY( "user1", 0x00000, 0x000000, 0x400000 ) // Bios + ROM_COPY( "user2", 0x00000, 0x400000, 0x400000 ) // Slot A + ROM_COPY( "user3", 0x00000, 0x800000, 0x400000 ) // Slot B ROM_END /* these are listed as MACS2 sub-boards, is it the same? - it's not ;) */ @@ -599,7 +594,6 @@ ROM_START( yuka ) MACS2_BIOS ROM_REGION( 0x400000, "user2", 0 ) // Slot A - ROM_LOAD16_BYTE( "yu-ka_2.u6", 0x000001, 0x100000, CRC(c3c5728b) SHA1(e53cdcae556f34bab45d9342fd78ec29b6543c46) ) ROM_LOAD16_BYTE( "yu-ka_4.u5", 0x000000, 0x100000, CRC(7e391ee6) SHA1(3a0c122c9d0e2a91df6d8039fb958b6d00997747) ) ROM_LOAD16_BYTE( "yu-ka_1.u8", 0x200001, 0x100000, CRC(bccd1b15) SHA1(02511f3be60c53b5f5d90f12f0648f6e184ca667) ) @@ -608,8 +602,7 @@ ROM_START( yuka ) ROM_REGION( 0x400000, "user3", ROMREGION_ERASE00 ) // Slot B ROM_REGION( 0x1000000, "maincpu", 0 ) - ROM_COPY( "user2", 0x00000, 0x010000, 0x400000 ) - ROM_COPY( "user2", 0x00000, 0x000000, 0x0008000 ) + ROM_COPY( "user2", 0x00000, 0x000000, 0x400000 ) // Slot A ROM_END ROM_START( yujan ) @@ -624,8 +617,7 @@ ROM_START( yujan ) ROM_REGION( 0x400000, "user3", ROMREGION_ERASEFF ) // Slot B ROM_REGION( 0x1000000, "maincpu", 0 ) - ROM_COPY( "user2", 0x00000, 0x010000, 0x400000 ) - ROM_COPY( "user2", 0x00000, 0x000000, 0x0008000 ) + ROM_COPY( "user2", 0x00000, 0x000000, 0x400000 ) // Slot A ROM_END static const UINT8 ramdata[160]= @@ -716,7 +708,7 @@ static MACHINE_RESET(macs) macs_ram1[0x1ff9]=0x07; #endif - state->membank("bank1")->set_base(machine.root_device().memregion("maincpu")->base() + 0x10000 ); + state->membank("bank1")->set_base(machine.root_device().memregion("maincpu")->base() ); state->membank("bank2")->set_base(macs_ram1+0x800); state->membank("bank3")->set_base(macs_ram1+0x10000); state->membank("bank4")->set_base(machine.root_device().memregion("maincpu")->base() ); diff --git a/src/mame/drivers/speglsht.c b/src/mame/drivers/speglsht.c index fa37c3fdc6c..05f31c721ac 100644 --- a/src/mame/drivers/speglsht.c +++ b/src/mame/drivers/speglsht.c @@ -422,10 +422,9 @@ static MACHINE_CONFIG_START( speglsht, speglsht_state ) MACHINE_CONFIG_END ROM_START( speglsht ) - ROM_REGION( 0x210000, "maincpu", 0 ) - ROM_LOAD( "sx004-07.u70", 0x010000, 0x200000, CRC(2d759cc4) SHA1(9fedd829190b2aab850b2f1088caaec91e8715dd) ) /* Noted as "ZPRO0" IE: Z80 (ST0016) Program 0 */ + ROM_REGION( 0x400000, "maincpu", 0 ) + ROM_LOAD( "sx004-07.u70", 0x000000, 0x200000, CRC(2d759cc4) SHA1(9fedd829190b2aab850b2f1088caaec91e8715dd) ) /* Noted as "ZPRO0" IE: Z80 (ST0016) Program 0 */ /* U71 unpopulated, Noted as ZPRO1 */ - ROM_COPY( "maincpu", 0x10000, 0x00000, 0x08000 ) ROM_REGION32_BE( 0x200000, "user1", 0 ) ROM_LOAD32_BYTE( "sx004-04.u33", 0x00000, 0x80000, CRC(e46d2e57) SHA1(b1fb836ab2ce547dc2e8d1046d7ef835b87bb04e) ) /* Noted as "RPRO3" IE: R3000 Program 3 */ diff --git a/src/mame/drivers/srmp5.c b/src/mame/drivers/srmp5.c index db3097647b4..b3ef36ea27c 100644 --- a/src/mame/drivers/srmp5.c +++ b/src/mame/drivers/srmp5.c @@ -589,10 +589,9 @@ static MACHINE_CONFIG_START( srmp5, srmp5_state ) MACHINE_CONFIG_END ROM_START( srmp5 ) - ROM_REGION( 0x410000, "maincpu", 0 ) - ROM_LOAD( "sx008-08.bin", 0x010000, 0x200000, CRC(d4ac54f4) SHA1(c3dc76cd71485796a0b6a960294ea96eae8c946e) ) - ROM_LOAD( "sx008-09.bin", 0x210000, 0x200000, CRC(5a3e6560) SHA1(92ea398f3c5e3035869f0ca5dfe7b05c90095318) ) - ROM_COPY( "maincpu", 0x10000, 0x00000, 0x08000 ) + ROM_REGION( 0x400000, "maincpu", 0 ) + ROM_LOAD( "sx008-08.bin", 0x000000, 0x200000, CRC(d4ac54f4) SHA1(c3dc76cd71485796a0b6a960294ea96eae8c946e) ) + ROM_LOAD( "sx008-09.bin", 0x200000, 0x200000, CRC(5a3e6560) SHA1(92ea398f3c5e3035869f0ca5dfe7b05c90095318) ) ROM_REGION32_BE( 0x200000, "user1", 0 ) ROM_LOAD32_BYTE( "sx008-14.bin", 0x00000, 0x80000, CRC(b5c55120) SHA1(0a41351c9563b2c6a00709189a917757bd6e0a24) ) diff --git a/src/mame/drivers/st0016.c b/src/mame/drivers/st0016.c index 8fd3185d869..8f129be054d 100644 --- a/src/mame/drivers/st0016.c +++ b/src/mame/drivers/st0016.c @@ -70,7 +70,7 @@ WRITE8_MEMBER(st0016_state::mux_select_w) WRITE8_MEMBER(st0016_state::st0016_rom_bank_w) { - membank("bank1")->set_base(machine().root_device().memregion("maincpu")->base() + (data* 0x4000) + 0x10000 ); + membank("bank1")->set_base(machine().root_device().memregion("maincpu")->base() + (data* 0x4000)); st0016_rom_bank=data; } @@ -428,6 +428,7 @@ static const st0016_interface st0016_config = &st0016_charram }; + /************************************* * * Machine driver(s) @@ -507,38 +508,33 @@ Note: */ ROM_START( renju ) - ROM_REGION( 0x290000, "maincpu", 0 ) - ROM_LOAD( "renjyu-1.u31",0x010000, 0x200000, CRC(e0fdbe9b) SHA1(52d31024d1a88b8fcca1f87366fcaf80e3c387a1) ) - ROM_LOAD( "rnj2.u32", 0x210000, 0x080000, CRC(2015289c) SHA1(5223b6d3dbe4657cd63cf5b527eaab84cf23587a ) ) - ROM_COPY( "maincpu", 0x210000, 0x000000, 0x08000 ) + ROM_REGION( 0x280000, "maincpu", 0 ) + ROM_LOAD( "renjyu-1.u31",0x000000, 0x200000, CRC(e0fdbe9b) SHA1(52d31024d1a88b8fcca1f87366fcaf80e3c387a1) ) + ROM_LOAD( "rnj2.u32", 0x200000, 0x080000, CRC(2015289c) SHA1(5223b6d3dbe4657cd63cf5b527eaab84cf23587a ) ) ROM_END ROM_START( nratechu ) - ROM_REGION( 0x210000, "maincpu", 0 ) - ROM_LOAD( "sx012-01", 0x10000, 0x80000, CRC(6ca01d57) SHA1(065848f19ecf2dc1f7bbc7ddd87bca502e4b8b16) ) - ROM_LOAD( "sx012-02", 0x110000, 0x100000, CRC(40a4e354) SHA1(8120ce8deee6805050a5b083a334c3743c09566b) ) - ROM_COPY( "maincpu", 0x10000, 0x00000, 0x08000 ) + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD( "sx012-01", 0x000000, 0x080000, CRC(6ca01d57) SHA1(065848f19ecf2dc1f7bbc7ddd87bca502e4b8b16) ) + ROM_LOAD( "sx012-02", 0x100000, 0x100000, CRC(40a4e354) SHA1(8120ce8deee6805050a5b083a334c3743c09566b) ) ROM_END /* PCB E51-00001 (almost identical to above) */ ROM_START( dcrown ) - ROM_REGION( 0x290000, "maincpu", 0 ) - ROM_LOAD( "dc1.u31",0x010000, 0x80000, CRC(e55200b8) SHA1(20a968dc895bb636b064c29b4b53c6ffa49fea36) ) - ROM_LOAD( "dc2.u32",0x090000, 0x80000, CRC(05b6192f) SHA1(6af6e7b2c681f2791a7f89a528a95eb976c8ba84) ) - ROM_LOAD( "dc3.u33",0x110000, 0x80000, CRC(f23c1975) SHA1(118d6054922a733d23363c53bb331d84c78e50ad) ) - ROM_LOAD( "dc4.u34",0x190000, 0x80000, CRC(0d1c2c61) SHA1(7e4dc20ab683ce0f61dd939cfd9b17714ba2343a) ) - - ROM_COPY( "maincpu", 0x010000, 0x000000, 0x08000 ) + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD( "dc1.u31",0x000000, 0x80000, CRC(e55200b8) SHA1(20a968dc895bb636b064c29b4b53c6ffa49fea36) ) + ROM_LOAD( "dc2.u32",0x080000, 0x80000, CRC(05b6192f) SHA1(6af6e7b2c681f2791a7f89a528a95eb976c8ba84) ) + ROM_LOAD( "dc3.u33",0x100000, 0x80000, CRC(f23c1975) SHA1(118d6054922a733d23363c53bb331d84c78e50ad) ) + ROM_LOAD( "dc4.u34",0x180000, 0x80000, CRC(0d1c2c61) SHA1(7e4dc20ab683ce0f61dd939cfd9b17714ba2343a) ) ROM_END ROM_START( dcrowna ) - ROM_REGION( 0x290000, "maincpu", 0 ) - ROM_LOAD( "dcn-0.1c", 0x010000, 0x080000, CRC(5dd0615d) SHA1(b859994bd79229da4c687deefe1997313724b26e) ) - ROM_LOAD( "dcn-1.1d", 0x090000, 0x080000, CRC(6c6f14e7) SHA1(2a3474e44420cc78e3ead777eb91481c4bb46eef) ) - ROM_LOAD( "dcn-2.1e", 0x110000, 0x080000, CRC(e9401a5e) SHA1(db24ebe5a0073c7c1c2da957772e223545f3c778) ) - ROM_LOAD( "dcn-3.1f", 0x190000, 0x080000, CRC(ec2e88bc) SHA1(2a8deee63e123dae411e2b834eca69be6f646d66) ) - ROM_COPY( "maincpu", 0x010000, 0x000000, 0x08000 ) + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD( "dcn-0.1c", 0x000000, 0x080000, CRC(5dd0615d) SHA1(b859994bd79229da4c687deefe1997313724b26e) ) + ROM_LOAD( "dcn-1.1d", 0x080000, 0x080000, CRC(6c6f14e7) SHA1(2a3474e44420cc78e3ead777eb91481c4bb46eef) ) + ROM_LOAD( "dcn-2.1e", 0x100000, 0x080000, CRC(e9401a5e) SHA1(db24ebe5a0073c7c1c2da957772e223545f3c778) ) + ROM_LOAD( "dcn-3.1f", 0x180000, 0x080000, CRC(ec2e88bc) SHA1(2a8deee63e123dae411e2b834eca69be6f646d66) ) ROM_END /* @@ -572,14 +568,12 @@ E63-00001 */ ROM_START( koikois ) - ROM_REGION( 0x410000, "maincpu", 0 ) - - ROM_LOAD16_BYTE( "koi-2.6c", 0x010001, 0x080000, CRC(2722be71) SHA1(1aa3d819eef01db042ee04a01c1b18c4d9dae65e) ) - ROM_LOAD16_BYTE( "koi-1.4c", 0x010000, 0x080000, CRC(c79e2b43) SHA1(868174f7ab8e68e31d3302ae94dd742048deed9f) ) - ROM_LOAD16_BYTE( "koi-4.8c", 0x110001, 0x080000, CRC(ace236df) SHA1(4bf56affe5b6d0ba3cc677eaa91f9be77f26c654) ) - ROM_LOAD16_BYTE( "koi-3.5c", 0x110000, 0x080000, CRC(6fd88149) SHA1(87b1be32770232eb041e3ef9d1da45282af8a5d4) ) - ROM_LOAD( "koi-5.2c", 0x210000, 0x200000, CRC(561e12c8) SHA1(a7aedf549bc3141fc01bc4a10c235af265ba4ee9) ) - ROM_COPY( "maincpu", 0x10000, 0x00000, 0x08000 ) + ROM_REGION( 0x400000, "maincpu", 0 ) + ROM_LOAD16_BYTE( "koi-2.6c", 0x000001, 0x080000, CRC(2722be71) SHA1(1aa3d819eef01db042ee04a01c1b18c4d9dae65e) ) + ROM_LOAD16_BYTE( "koi-1.4c", 0x000000, 0x080000, CRC(c79e2b43) SHA1(868174f7ab8e68e31d3302ae94dd742048deed9f) ) + ROM_LOAD16_BYTE( "koi-4.8c", 0x100001, 0x080000, CRC(ace236df) SHA1(4bf56affe5b6d0ba3cc677eaa91f9be77f26c654) ) + ROM_LOAD16_BYTE( "koi-3.5c", 0x100000, 0x080000, CRC(6fd88149) SHA1(87b1be32770232eb041e3ef9d1da45282af8a5d4) ) + ROM_LOAD( "koi-5.2c", 0x200000, 0x200000, CRC(561e12c8) SHA1(a7aedf549bc3141fc01bc4a10c235af265ba4ee9) ) ROM_END @@ -637,11 +631,10 @@ E52-00001 */ ROM_START(mayjinsn ) - ROM_REGION( 0x190000, "maincpu", 0 ) - ROM_LOAD( "sx003.05d", 0x010000, 0x80000, CRC(2be6d620) SHA1(113db888fb657d45be55708bbbf9a9ac159a9636) ) - ROM_LOAD( "sx003.06", 0x090000, 0x80000, CRC(f0553386) SHA1(8915cb3ce03b9a12612694caec9bbec6de4dd070) ) - ROM_LOAD( "sx003.07d", 0x110000, 0x80000, CRC(8db281c3) SHA1(f8b488dd28010f01f789217a4d62ba2116e06e94) ) - ROM_COPY( "maincpu", 0x010000, 0x00000, 0x08000 ) + ROM_REGION( 0x180000, "maincpu", 0 ) + ROM_LOAD( "sx003.05d", 0x000000, 0x80000, CRC(2be6d620) SHA1(113db888fb657d45be55708bbbf9a9ac159a9636) ) + ROM_LOAD( "sx003.06", 0x080000, 0x80000, CRC(f0553386) SHA1(8915cb3ce03b9a12612694caec9bbec6de4dd070) ) + ROM_LOAD( "sx003.07d", 0x100000, 0x80000, CRC(8db281c3) SHA1(f8b488dd28010f01f789217a4d62ba2116e06e94) ) ROM_REGION32_LE( 0x20000*4, "user1", 0 ) /* V810 code */ ROM_LOAD32_BYTE( "sx003.04", 0x00003, 0x20000, CRC(fa15459f) SHA1(4163ab842943705c550f137abbdd2cb51ba5390f) ) @@ -651,9 +644,8 @@ ROM_START(mayjinsn ) ROM_END ROM_START(mayjisn2 ) - ROM_REGION( 0x110000, "maincpu", 0 ) - ROM_LOAD( "sx007-05.8b", 0x10000, 0x100000, CRC(b13ea605) SHA1(75c067df02c988f170c24153d3852c472355fc9d) ) - ROM_COPY( "maincpu", 0x10000, 0x00000, 0x08000 ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD( "sx007-05.8b", 0x00000, 0x100000, CRC(b13ea605) SHA1(75c067df02c988f170c24153d3852c472355fc9d) ) ROM_REGION32_LE( 0x20000*4, "user1", 0 ) /* V810 code */ ROM_LOAD32_BYTE( "sx007-04.4b", 0x00003, 0x20000, CRC(fa15459f) SHA1(4163ab842943705c550f137abbdd2cb51ba5390f) ) @@ -680,7 +672,7 @@ static DRIVER_INIT(nratechu) static DRIVER_INIT(mayjinsn) { - st0016_game=4|0x80; + st0016_game=4;//|0x80; machine.root_device().membank("bank2")->set_base(machine.root_device().memregion("user1")->base()); } diff --git a/src/mame/video/st0016.c b/src/mame/video/st0016.c index 66af5ae15a9..5f6336a06e8 100644 --- a/src/mame/video/st0016.c +++ b/src/mame/video/st0016.c @@ -186,7 +186,7 @@ WRITE8_MEMBER(st0016_state::st0016_vregs_w) UINT32 srcadr=(st0016_vregs[0xa0]|(st0016_vregs[0xa1]<<8)|(st0016_vregs[0xa2]<<16))<<1; UINT32 dstadr=(st0016_vregs[0xa3]|(st0016_vregs[0xa4]<<8)|(st0016_vregs[0xa5]<<16))<<1; UINT32 length=((st0016_vregs[0xa6]|(st0016_vregs[0xa7]<<8)|((st0016_vregs[0xa8]&0x1f)<<16))+1)<<1; - UINT32 srclen = (machine().root_device().memregion("maincpu")->bytes()-0x10000); + UINT32 srclen = (machine().root_device().memregion("maincpu")->bytes()); UINT8 *mem = memregion("maincpu")->base(); srcadr += macs_cart_slot*0x400000; @@ -196,7 +196,7 @@ WRITE8_MEMBER(st0016_state::st0016_vregs_w) if( srcadr < srclen && (dstadr < ST0016_MAX_CHAR_BANK*ST0016_CHAR_BANK_SIZE)) { st0016_char_bank=dstadr>>5; - st0016_character_ram_w(space,dstadr&0x1f,mem[0x10000+srcadr]); + st0016_character_ram_w(space,dstadr&0x1f,mem[srcadr]); srcadr++; dstadr++; length--;