diff options
Diffstat (limited to 'docs/release/src/hbmame/drivers/segaorun.cpp')
-rw-r--r-- | docs/release/src/hbmame/drivers/segaorun.cpp | 139 |
1 files changed, 139 insertions, 0 deletions
diff --git a/docs/release/src/hbmame/drivers/segaorun.cpp b/docs/release/src/hbmame/drivers/segaorun.cpp index 1bf93213ba0..61a6de18ccd 100644 --- a/docs/release/src/hbmame/drivers/segaorun.cpp +++ b/docs/release/src/hbmame/drivers/segaorun.cpp @@ -218,3 +218,142 @@ GAMEL(2012, outrunen, outrun, outrun, outrun, segaorun_state, outrun, ROT0, "Ch GAMEL(2012, outrunen2, outrun, outrun, outrun, segaorun_state, outrun, ROT0, "Chris White and Darren Finck", "Out Run Enhanced Edition v1.0.2", 0, layout_outrun ) GAMEL(2012, outrunen1, outrun, outrun, outrun, segaorun_state, outrun, ROT0, "Chris White and Darren Finck", "Out Run Enhanced Edition v1.0.1", 0, layout_outrun ) GAMEL(2012, outrunen0, outrun, outrun, outrun, segaorun_state, outrun, ROT0, "Chris White and Darren Finck", "Out Run Enhanced Edition v1.0.0", 0, layout_outrun ) + + +/***************************** OUTRUNM *********************************************/ + +// sound_bank0_w and sound_bank1_w - +// handle sound board banking the entire z80 60k rom space +// to the first or second half of the 128k sound rom space +// This does not work on the original outrun boardset; +// The PAL/GAL/PLS chip which handles the z80 address/io +// decoding has to be replaced and 3 flying wires added. + +// segaorun.h - have to make all members public (comment out "protected:") + +#include "machine/bankdev.h" + +class outrunm_state : public segaorun_state +{ +public: + outrunm_state(const machine_config &mconfig, device_type type, const char *tag) + : segaorun_state(mconfig, type, tag) + , m_soundbank(*this, "soundbank") + { } + + DECLARE_WRITE8_MEMBER( sound_rombank0_w ); + DECLARE_WRITE8_MEMBER( sound_rombank1_w ); + DECLARE_DRIVER_INIT(init); + +private: + + required_device<address_map_bank_device> m_soundbank; +}; + + +WRITE8_MEMBER( outrunm_state::sound_rombank0_w ) +{ + m_soundbank->set_bank(0); +} + +WRITE8_MEMBER( outrunm_state::sound_rombank1_w ) +{ + m_soundbank->set_bank(1); +} + +static ADDRESS_MAP_START( sound_map_banked, AS_PROGRAM, 8, outrunm_state ) + ADDRESS_MAP_UNMAP_HIGH + AM_RANGE(0x0000, 0xefff) AM_DEVICE("soundbank", address_map_bank_device, amap8) + AM_RANGE(0xf000, 0xf0ff) AM_MIRROR(0x0700) AM_DEVREADWRITE("pcm", segapcm_device, sega_pcm_r, sega_pcm_w) + AM_RANGE(0xf800, 0xffff) AM_RAM + ADDRESS_MAP_END + +static ADDRESS_MAP_START( sound_portmap_banked, AS_IO, 8, outrunm_state ) + ADDRESS_MAP_UNMAP_HIGH + ADDRESS_MAP_GLOBAL_MASK(0xff) + AM_RANGE(0x00, 0x01) AM_MIRROR(0x3e) AM_DEVREADWRITE("ymsnd", ym2151_device, read, write) + AM_RANGE(0x40, 0x7f) AM_READ(sound_data_r) + AM_RANGE(0x80, 0xbf) AM_WRITE(sound_rombank0_w) + AM_RANGE(0xc0, 0xff) AM_WRITE(sound_rombank1_w) +ADDRESS_MAP_END + +static ADDRESS_MAP_START( soundbank_map, AS_PROGRAM, 8, outrunm_state ) + ADDRESS_MAP_UNMAP_HIGH + AM_RANGE(0x0000, 0x1ffff) AM_ROM AM_REGION("soundcpu", 0) +ADDRESS_MAP_END + +static MACHINE_CONFIG_DERIVED( outrunm, outrun ) + MCFG_CPU_REPLACE("soundcpu", Z80, SOUND_CLOCK/4) + MCFG_CPU_PROGRAM_MAP(sound_map_banked) + MCFG_CPU_IO_MAP(sound_portmap_banked) + + MCFG_DEVICE_ADD("soundbank", ADDRESS_MAP_BANK, 0) + MCFG_DEVICE_PROGRAM_MAP(soundbank_map) + MCFG_ADDRESS_MAP_BANK_ENDIANNESS(ENDIANNESS_LITTLE) + MCFG_ADDRESS_MAP_BANK_DATA_WIDTH(8) + MCFG_ADDRESS_MAP_BANK_STRIDE(0x10000) +MACHINE_CONFIG_END + +DRIVER_INIT_MEMBER(outrunm_state,init) +{ + DRIVER_INIT_CALL(generic); + m_custom_io_r = read16_delegate(FUNC(segaorun_state::outrun_custom_io_r), this); + m_custom_io_w = write16_delegate(FUNC(segaorun_state::outrun_custom_io_w), this); +} + +ROM_START( outrunm ) + ROM_REGION( 0x60000, "maincpu", 0 ) // 68000 code + ROM_LOAD16_BYTE( "music-epr-10380b.133", 0x00000, 0x10000, CRC(9bf1d4df) SHA1(4d4be736c25f0e2f60851d26150ed6807014466a) ) // new + ROM_LOAD16_BYTE( "music-epr-10382b.118", 0x00001, 0x10000, CRC(86f90666) SHA1(e6a40afdbd5390266e9b43073cb41ec38b01d67c) ) // new + ROM_LOAD16_BYTE( "music-epr-10381b.132", 0x20000, 0x10000, CRC(cbec3f7e) SHA1(094d23afccf52bd25ae9ae9fdb9087cf3ac41709) ) // new + ROM_LOAD16_BYTE( "music-epr-10383b.117", 0x20001, 0x10000, CRC(e3c5cdca) SHA1(629dac90615deb2f68368012d5c67442b93c39b3) ) // new + + ROM_REGION( 0x60000, "subcpu", 0 ) // second 68000 CPU + ROM_LOAD16_BYTE( "epr-10327a.76", 0x00000, 0x10000, CRC(e28a5baf) SHA1(f715bde96c73ed47035acf5a41630fdeb41bb2f9) ) + ROM_LOAD16_BYTE( "epr-10329a.58", 0x00001, 0x10000, CRC(da131c81) SHA1(57d5219bd0e2fd886217e37e8773fd76be9b40eb) ) + ROM_LOAD16_BYTE( "epr-10328a.75", 0x20000, 0x10000, CRC(d5ec5e5d) SHA1(a4e3cfca4d803e72bc4fcf91ab00e21bf3f8959f) ) + ROM_LOAD16_BYTE( "epr-10330a.57", 0x20001, 0x10000, CRC(ba9ec82a) SHA1(2136c9572e26b7ae6de402c0cd53174407cc6018) ) + + ROM_REGION( 0x30000, "gfx1", 0 ) // tiles + ROM_LOAD( "opr-10268.99", 0x00000, 0x08000, CRC(95344b04) SHA1(b3480714b11fc49b449660431f85d4ba92f799ba) ) + ROM_LOAD( "opr-10232.102", 0x08000, 0x08000, CRC(776ba1eb) SHA1(e3477961d19e694c97643066534a1f720e0c4327) ) + ROM_LOAD( "opr-10267.100", 0x10000, 0x08000, CRC(a85bb823) SHA1(a7e0143dee5a47e679fd5155e58e717813912692) ) + ROM_LOAD( "opr-10231.103", 0x18000, 0x08000, CRC(8908bcbf) SHA1(8e1237b640a6f26bdcbfd5e201dadb2687c4febb) ) + ROM_LOAD( "opr-10266.101", 0x20000, 0x08000, CRC(9f6f1a74) SHA1(09164e858ebeedcff4d389524ddf89e7c216dcae) ) + ROM_LOAD( "opr-10230.104", 0x28000, 0x08000, CRC(686f5e50) SHA1(03697b892f911177968aa40de6c5f464eb0258e7) ) + + ROM_REGION32_LE( 0x100000, "sprites", 0 ) // sprites + // VIDEO BD 837-6064-02 uses mask roms four times the size of those used on VIDEO BD 837-6064-01, same data + ROM_LOAD32_BYTE( "mpr-10371.9", 0x00000, 0x20000, CRC(7cc86208) SHA1(21320f945f7c8e990c97c9b1232a0f4b6bd00f8f) ) + ROM_LOAD32_BYTE( "mpr-10373.10", 0x00001, 0x20000, CRC(b0d26ac9) SHA1(3a9ce8547cd43b7b04abddf9a9ab5634e0bbfaba) ) + ROM_LOAD32_BYTE( "mpr-10375.11", 0x00002, 0x20000, CRC(59b60bd7) SHA1(e5d8c67e020608edd24ba87b7687b2ac2483ee7f) ) + ROM_LOAD32_BYTE( "mpr-10377.12", 0x00003, 0x20000, CRC(17a1b04a) SHA1(9f7210cb4153ac9029a785dcd4b45f4513a4b008) ) + ROM_LOAD32_BYTE( "mpr-10372.13", 0x80000, 0x20000, CRC(b557078c) SHA1(a3746a2da077a8df4932348f650a061f413e8430) ) + ROM_LOAD32_BYTE( "mpr-10374.14", 0x80001, 0x20000, CRC(8051e517) SHA1(9c8509fbed170b4ac74c169da573393e54774f49) ) + ROM_LOAD32_BYTE( "mpr-10376.15", 0x80002, 0x20000, CRC(f3b8f318) SHA1(a5f2532613f33a64441e0f75443c10ba78dccc6e) ) + ROM_LOAD32_BYTE( "mpr-10378.16", 0x80003, 0x20000, CRC(a1062984) SHA1(4399030a155caf71f2dec7f75c4b65531ab53576) ) + + ROM_REGION( 0x10000, "gfx3", 0 ) // road gfx (2 identical roms, 1 for each road) + ROM_LOAD( "opr-10186.47", 0x0000, 0x8000, CRC(22794426) SHA1(a554d4b68e71861a0d0da4d031b3b811b246f082) ) + ROM_LOAD( "opr-10185.11", 0x8000, 0x8000, CRC(22794426) SHA1(a554d4b68e71861a0d0da4d031b3b811b246f082) ) + + ROM_REGION( 0x20000, "soundcpu", 0 ) // sound CPU + ROM_LOAD( "music-epr-10187.88", 0x00000, 0x20000, CRC(9f89439e) SHA1(a7c7610327e91647b41d73635a87ef2b95eee698) ) // new + + ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // sound PCM data + ROM_LOAD( "opr-10193.66", 0x00000, 0x08000, CRC(bcd10dde) SHA1(417ce1d7242884640c5b14f4db8ee57cde7d085d) ) + ROM_RELOAD( 0x08000, 0x08000 ) + ROM_LOAD( "opr-10192.67", 0x10000, 0x08000, CRC(770f1270) SHA1(686bdf44d45c1d6002622f6658f037735382f3e0) ) + ROM_RELOAD( 0x18000, 0x08000 ) + ROM_LOAD( "opr-10191.68", 0x20000, 0x08000, CRC(20a284ab) SHA1(7c9027416d4122791ba53782fe2230cf02b7d506) ) + ROM_RELOAD( 0x28000, 0x08000 ) + ROM_LOAD( "opr-10190.69", 0x30000, 0x08000, CRC(7cab70e2) SHA1(a3c581d2b438630d0d4c39481dcfd85681c9f889) ) + ROM_RELOAD( 0x38000, 0x08000 ) + ROM_LOAD( "opr-10189.70", 0x40000, 0x08000, CRC(01366b54) SHA1(f467a6b807694d5832a985f5381c170d24aaee4e) ) + ROM_RELOAD( 0x48000, 0x08000 ) + ROM_LOAD( "opr-10188a.71", 0x50000, 0x08000, CRC(c2de09b2) SHA1(00777e08ad8eddd48fe58686d4d1db68a78d3d6f) ) // new, recovered data from sega development disk + ROM_RELOAD( 0x58000, 0x08000 ) +ROM_END + +GAMEL(2016, outrunm, outrun, outrunm, outrun, outrunm_state, init, ROT0, "cmonkey", "Out Run (sitdown/upright, Rev B) (added music)", 0, layout_outrun ) // March? 2016 + |