diff --git a/hash/c128_cart.xml b/hash/c128_cart.xml index f7ef8270592..8615198fb1b 100644 --- a/hash/c128_cart.xml +++ b/hash/c128_cart.xml @@ -168,7 +168,7 @@ Missing dumps: - + diff --git a/hash/msx1_cart.xml b/hash/msx1_cart.xml index e0e10637501..932070b5aad 100644 --- a/hash/msx1_cart.xml +++ b/hash/msx1_cart.xml @@ -666,15 +666,15 @@ Xyzolog - Electric Software - - + + Japanese MSX-Write (Jpn) 1986 ASCII - + diff --git a/src/emu/bus/c64/c128_partner.c b/src/emu/bus/c64/c128_partner.c index 97a4e50b998..3b261d24796 100644 --- a/src/emu/bus/c64/c128_partner.c +++ b/src/emu/bus/c64/c128_partner.c @@ -21,7 +21,7 @@ |LS09 | ||||||||||||||| - ROM - EPROM + ROM - Toshiba TMM24128AP 16Kx8 EPROM (blank label) RAM - Sony CXK5864PN-15L 8Kx8 SRAM SW - push button switch CN - lead out to joystick port dongle diff --git a/src/emu/bus/msx_cart/ascii.c b/src/emu/bus/msx_cart/ascii.c index 7b911794eea..c4b21fa8f86 100644 --- a/src/emu/bus/msx_cart/ascii.c +++ b/src/emu/bus/msx_cart/ascii.c @@ -8,6 +8,7 @@ const device_type MSX_CART_ASCII8 = &device_creator; const device_type MSX_CART_ASCII16 = &device_creator; const device_type MSX_CART_ASCII8_SRAM = &device_creator; const device_type MSX_CART_ASCII16_SRAM = &device_creator; +const device_type MSX_CART_MSXWRITE = &device_creator; msx_cart_ascii8::msx_cart_ascii8(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) @@ -441,3 +442,95 @@ WRITE8_MEMBER(msx_cart_ascii16_sram::write_cart) } } } + + + +msx_cart_msxwrite::msx_cart_msxwrite(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) + : device_t(mconfig, MSX_CART_MSXWRITE, "MSX Cartridge - MSXWRITE", tag, owner, clock, "msx_cart_msxwrite", __FILE__) + , msx_cart_interface(mconfig, *this) + , m_bank_mask(0) +{ + for (int i = 0; i < 2; i++) + { + m_selected_bank[i] = 0; + m_bank_base[i] = NULL; + } +} + + +void msx_cart_msxwrite::device_start() +{ + save_item(NAME(m_selected_bank)); + + machine().save().register_postload(save_prepost_delegate(FUNC(msx_cart_msxwrite::restore_banks), this)); +} + + +void msx_cart_msxwrite::restore_banks() +{ + for (int i = 0; i < 2; i++) + { + m_bank_base[i] = get_rom_base() + (m_selected_bank[i] & m_bank_mask) * 0x4000; + } +} + + +void msx_cart_msxwrite::device_reset() +{ + for (int i = 0; i < 2; i++) + { + m_selected_bank[i] = 0; + } +} + + +void msx_cart_msxwrite::initialize_cartridge() +{ + UINT32 size = get_rom_size(); + + if ( size > 256 * 0x4000 ) + { + fatalerror("msxwrite: ROM is too big\n"); + } + + UINT16 banks = size / 0x4000; + + if (size != banks * 0x4000 || (~(banks - 1) % banks)) + { + fatalerror("msxwrite: Invalid ROM size\n"); + } + + m_bank_mask = banks - 1; + + restore_banks(); +} + + +READ8_MEMBER(msx_cart_msxwrite::read_cart) +{ + if ( offset >= 0x4000 && offset < 0xC000 ) + { + return m_bank_base[offset >> 15][offset & 0x3fff]; + } + return 0xff; +} + + +WRITE8_MEMBER(msx_cart_msxwrite::write_cart) +{ + // The rom writes to 6fff and 7fff for banking, unknown whether + // other locations also trigger banking. + switch (offset) + { + case 0x6fff: + m_selected_bank[0] = data; + m_bank_base[0] = get_rom_base() + (m_selected_bank[0] & m_bank_mask) * 0x4000; + break; + + case 0x7fff: + m_selected_bank[1] = data; + m_bank_base[1] = get_rom_base() + (m_selected_bank[1] & m_bank_mask) * 0x4000; + break; + } +} + diff --git a/src/emu/bus/msx_cart/ascii.h b/src/emu/bus/msx_cart/ascii.h index 46545b31ec8..e23ce939e31 100644 --- a/src/emu/bus/msx_cart/ascii.h +++ b/src/emu/bus/msx_cart/ascii.h @@ -10,6 +10,7 @@ extern const device_type MSX_CART_ASCII8; extern const device_type MSX_CART_ASCII16; extern const device_type MSX_CART_ASCII8_SRAM; extern const device_type MSX_CART_ASCII16_SRAM; +extern const device_type MSX_CART_MSXWRITE; class msx_cart_ascii8 : public device_t @@ -114,4 +115,27 @@ private: }; +class msx_cart_msxwrite : public device_t + , public msx_cart_interface +{ +public: + msx_cart_msxwrite(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + + // device-level overrides + virtual void device_start(); + virtual void device_reset(); + + virtual void initialize_cartridge(); + + virtual DECLARE_READ8_MEMBER(read_cart); + virtual DECLARE_WRITE8_MEMBER(write_cart); + + void restore_banks(); + +private: + UINT8 m_bank_mask; + UINT8 m_selected_bank[2]; + UINT8 *m_bank_base[2]; +}; + #endif diff --git a/src/emu/bus/msx_cart/cartridge.c b/src/emu/bus/msx_cart/cartridge.c index 9415ab2f3c0..93e419235cd 100644 --- a/src/emu/bus/msx_cart/cartridge.c +++ b/src/emu/bus/msx_cart/cartridge.c @@ -45,6 +45,7 @@ SLOT_INTERFACE_START(msx_cart) SLOT_INTERFACE_INTERNAL("korean_80in1", MSX_CART_KOREAN_80IN1) SLOT_INTERFACE_INTERNAL("korean_90in1", MSX_CART_KOREAN_90IN1) SLOT_INTERFACE_INTERNAL("korean_126in1", MSX_CART_KOREAN_126IN1) + SLOT_INTERFACE_INTERNAL("msxwrite", MSX_CART_MSXWRITE) SLOT_INTERFACE_INTERNAL("sound_snatcher", MSX_CART_SOUND_SNATCHER) SLOT_INTERFACE_INTERNAL("sound_sdsnatch", MSX_CART_SOUND_SDSNATCHER) SLOT_INTERFACE_INTERNAL("msxaud_hxmu900", MSX_CART_MSX_AUDIO_HXMU900) diff --git a/src/lib/formats/flopimg.c b/src/lib/formats/flopimg.c index e2ee5122b2c..20ff211e147 100644 --- a/src/lib/formats/flopimg.c +++ b/src/lib/formats/flopimg.c @@ -1274,7 +1274,7 @@ void floppy_image_format_t::fixup_crc_amiga(std::vector &buffer, const g if(bit_r(buffer, crc->start + i)) res = res ^ (0x8000 >> ((i >> 1) & 15)); mfm_w(buffer, 16, 0, 1000, crc->write); - mfm_w(buffer, 16, res, 1000, crc->write+16); + mfm_w(buffer, 16, res, 1000, crc->write+32); } void floppy_image_format_t::fixup_crc_cbm(std::vector &buffer, const gen_crc_info *crc) diff --git a/src/mame/arcade.lst b/src/mame/arcade.lst index d960332c001..758ae94c964 100644 --- a/src/mame/arcade.lst +++ b/src/mame/arcade.lst @@ -593,6 +593,7 @@ club90s // (c) 1990 club90sa // (c) 1990 lovehous // (c) 1990 hanaoji // (c) 1991 +hanaojia // (c) 1991 pstadium // (c) 1990 triplew1 // (c) 1989 triplew2 // (c) 1990 @@ -682,11 +683,14 @@ falcon // bootleg vautour // bootleg (Jeutel) falconz // bootleg vautourz // bootleg +vautourza // bootleg (Jeutal) griffon // bootleg (Videotron) nextfase // bootleg phoenixs // bootleg (Sonic) +phoenixass // bootleg (Assa) avefenix // bootleg (Video Game) avefenixrf // bootleg (Recreativos Franco) +avefenixl // bootleg (Laguna) pleiads // (c) 1981 Tehkan pleiadsb2 // bootleg pleiadbl // bootleg @@ -8289,6 +8293,7 @@ sf2049te // (c) 1999 Atari Games warfa // (c) 1999 Atari Games nbashowt // (c) 1998 Midway Games nbanfl // (c) 1999 Midway Games +nbagold // (c) 2000 Midway Games gauntdl // (c) 1999 Midway Games gauntdl24 // (c) 1999 Midway Games cartfury // (c) 2000 Midway Games @@ -8792,6 +8797,7 @@ pspikesk // (c) 1991 Video System Co. (Korea) pspikesu // (c) 1991 Video System Co. (US) svolly91 // (c) 1991 Video System Co. (Japan) pspikesb // bootleg +pspikesba // bootleg spikes91 // bootleg spikes91b // bootleg pspikesc // bootleg diff --git a/src/mame/drivers/aerofgt.c b/src/mame/drivers/aerofgt.c index 26913e4af62..5e2f083c44b 100644 --- a/src/mame/drivers/aerofgt.c +++ b/src/mame/drivers/aerofgt.c @@ -2015,6 +2015,40 @@ ROM_START( pspikesb ) ROM_COPY( "user1", 0x060000, 0x0e0000, 0x020000) ROM_END +ROM_START( pspikesba ) + ROM_REGION( 0x40000, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "2.ic63", 0x00000, 0x20000, CRC(dd87d28a) SHA1(09ab75bcd62db1a49af123648812852780ac9d60) ) // sldh + ROM_LOAD16_BYTE( "3.ic62", 0x00001, 0x20000, CRC(ec505317) SHA1(1e2b9e52654b08169827dbd877de2e724140e50c) ) // sldh + + ROM_REGION( 0x080000, "gfx1", ROMREGION_INVERT ) + ROM_LOAD( "4.ic122", 0x00000, 0x20000, CRC(ea1c05a7) SHA1(adfdfeac80df287ffa6f469dc38ea94698817cf4) ) + ROM_LOAD( "5.ic120", 0x20000, 0x20000, CRC(bfdc60f4) SHA1(2b1893fac2651ac82f5a05b8f891b20c928ced7e) ) + ROM_LOAD( "6.ic118", 0x40000, 0x20000, CRC(96a5c235) SHA1(dad4ef9069d3130f719a402737909bb48225b73c) ) + ROM_LOAD( "7.ic116", 0x60000, 0x20000, CRC(a7e00b36) SHA1(2b5e85ec02e8893d7d730aad4d690883b1d236cc) ) + + ROM_REGION( 0x100000, "gfx2", ROMREGION_INVERT ) + ROM_LOAD( "8.ic121", 0x00000, 0x40000, CRC(fc096cfc) SHA1(75af810c97361b6f08767949b90c394a7a03f60b) ) + ROM_LOAD( "9.ic119", 0x40000, 0x40000, CRC(a45ec985) SHA1(16357f5df7841e11889ac6fced1e2a9288585a29) ) + ROM_LOAD( "10.ic117", 0x80000, 0x40000, CRC(3976b372) SHA1(72feec5a6fe7995f39d4b431dbbf25435359b04d) ) + ROM_LOAD( "11.ic115", 0xc0000, 0x40000, CRC(f9249937) SHA1(5993e5ab7295ca2fa5c8f4c05ce23731741f4e97) ) + + ROM_REGION( 0x080000, "user1", 0 ) /* Samples */ + ROM_LOAD( "1.ic21", 0x000000, 0x80000, CRC(1b78ed0b) SHA1(886bfd78709c295839dd51c7f5a13f5c452c0ab3) ) + + /* $00000-$20000 stays the same in all sound banks, */ + /* the second half of the bank is what gets switched */ + ROM_REGION( 0x100000, "oki", 0 ) /* Samples */ + ROM_COPY( "user1", 0x000000, 0x000000, 0x020000) + ROM_COPY( "user1", 0x000000, 0x020000, 0x020000) + ROM_COPY( "user1", 0x000000, 0x040000, 0x020000) + ROM_COPY( "user1", 0x020000, 0x060000, 0x020000) + ROM_COPY( "user1", 0x000000, 0x080000, 0x020000) + ROM_COPY( "user1", 0x040000, 0x0a0000, 0x020000) + ROM_COPY( "user1", 0x000000, 0x0c0000, 0x020000) + ROM_COPY( "user1", 0x060000, 0x0e0000, 0x020000) +ROM_END + + /* 1991 Spikes (Italian bootleg) @@ -2692,15 +2726,16 @@ GAME( 1990, spinlbrk, 0, spinlbrk, spinlbrk, driver_device, 0, ROT0, "V GAME( 1990, spinlbrku,spinlbrk, spinlbrk, spinlbrku, driver_device,0, ROT0, "V-System Co.", "Spinal Breakers (US)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL ) GAME( 1990, spinlbrkj,spinlbrk, spinlbrk, spinlbrk, driver_device, 0, ROT0, "V-System Co.", "Spinal Breakers (Japan)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL ) -GAME( 1991, pspikes, 0, pspikes, pspikes, driver_device, 0, ROT0, "Video System Co.", "Power Spikes (World)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL ) -GAME( 1991, pspikesk, pspikes, pspikes, pspikes, driver_device, 0, ROT0, "Video System Co.", "Power Spikes (Korea)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL ) -GAME( 1991, pspikesu, pspikes, pspikes, pspikes, driver_device, 0, ROT0, "Video System Co.", "Power Spikes (US)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL ) -GAME( 1991, svolly91, pspikes, pspikes, pspikes, driver_device, 0, ROT0, "Video System Co.", "Super Volley '91 (Japan)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL ) -GAME( 1991, pspikesb, pspikes, pspikesb, pspikesb, driver_device, 0, ROT0, "bootleg", "Power Spikes (bootleg)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL ) -GAME( 1991, spikes91, pspikes, spikes91, pspikes, driver_device, 0, ROT0, "bootleg", "1991 Spikes (Italian bootleg, set 1)", GAME_SUPPORTS_SAVE | GAME_NO_SOUND | GAME_NO_COCKTAIL ) -GAME( 1991, spikes91b,pspikes, spikes91, pspikes, driver_device, 0, ROT0, "bootleg", "1991 Spikes (Italian bootleg, set 2)", GAME_SUPPORTS_SAVE | GAME_NO_SOUND | GAME_NO_COCKTAIL ) -GAME( 1991, pspikesc, pspikes, pspikesc, pspikesc, driver_device, 0, ROT0, "bootleg", "Power Spikes (China)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL | GAME_IMPERFECT_SOUND ) -GAME( 1997, wbbc97, 0, wbbc97, wbbc97, driver_device, 0, ROT0, "Comad", "Beach Festival World Championship 1997", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL ) // based on power spikes codebase +GAME( 1991, pspikes, 0, pspikes, pspikes, driver_device, 0, ROT0, "Video System Co.", "Power Spikes (World)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL ) +GAME( 1991, pspikesk, pspikes, pspikes, pspikes, driver_device, 0, ROT0, "Video System Co.", "Power Spikes (Korea)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL ) +GAME( 1991, pspikesu, pspikes, pspikes, pspikes, driver_device, 0, ROT0, "Video System Co.", "Power Spikes (US)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL ) +GAME( 1991, svolly91, pspikes, pspikes, pspikes, driver_device, 0, ROT0, "Video System Co.", "Super Volley '91 (Japan)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL ) +GAME( 1991, pspikesb, pspikes, pspikesb, pspikesb, driver_device, 0, ROT0, "bootleg", "Power Spikes (bootleg)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL ) +GAME( 1991, pspikesba,pspikes, pspikesb, pspikesb, driver_device, 0, ROT0, "bootleg (Playmark?)","Power Spikes (Italian bootleg)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL ) +GAME( 1991, spikes91, pspikes, spikes91, pspikes, driver_device, 0, ROT0, "bootleg", "1991 Spikes (Italian bootleg, set 1)", GAME_SUPPORTS_SAVE | GAME_NO_SOUND | GAME_NO_COCKTAIL ) +GAME( 1991, spikes91b,pspikes, spikes91, pspikes, driver_device, 0, ROT0, "bootleg", "1991 Spikes (Italian bootleg, set 2)", GAME_SUPPORTS_SAVE | GAME_NO_SOUND | GAME_NO_COCKTAIL ) +GAME( 1991, pspikesc, pspikes, pspikesc, pspikesc, driver_device, 0, ROT0, "bootleg", "Power Spikes (China)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL | GAME_IMPERFECT_SOUND ) +GAME( 1997, wbbc97, 0, wbbc97, wbbc97, driver_device, 0, ROT0, "Comad", "Beach Festival World Championship 1997", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL ) // based on power spikes codebase GAME( 1991, karatblz, 0, karatblz, karatblz, driver_device, 0, ROT0, "Video System Co.", "Karate Blazers (World)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL ) GAME( 1991, karatblzu,karatblz, karatblz, karatblz, driver_device, 0, ROT0, "Video System Co.", "Karate Blazers (US)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL ) diff --git a/src/mame/drivers/namcos1.c b/src/mame/drivers/namcos1.c index 60f6c16e2ae..c65e68aba54 100644 --- a/src/mame/drivers/namcos1.c +++ b/src/mame/drivers/namcos1.c @@ -353,7 +353,7 @@ WRITE8_MEMBER(namcos1_state::irq_ack_w) READ8_MEMBER(namcos1_state::dsw_r) { - int ret = ioport("DIPSW")->read(); + int ret = m_io_dipsw->read(); if (!(offset & 2)) ret >>= 4; return 0xf0 | ret; } @@ -871,7 +871,14 @@ static INPUT_PORTS_START( splatter ) // Allow "CPU #0&1 Kick Watchdog in IRQ" = _____oo_ // 12345678 #endif - PORT_DIPNAME( 0x20, 0x20, "Stage Select (ver. SH3 only)" ) +INPUT_PORTS_END + + +static INPUT_PORTS_START( splatter3 ) + PORT_INCLUDE( splatter ) + + PORT_MODIFY( "DIPSW" ) + PORT_DIPNAME( 0x20, 0x20, "Stage Select" ) PORT_DIPLOCATION("SW:3") PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) INPUT_PORTS_END @@ -2836,7 +2843,7 @@ GAME( 1988, berabohmb, berabohm, ns1, berabohm, namcos1_state, berabohm, ROT GAME( 1988, mmaze, 0, ns1, mmaze, namcos1_state, alice, ROT180, "Namco", "Marchen Maze (Japan)", GAME_SUPPORTS_SAVE ) GAME( 1988, bakutotu, 0, ns1, bakutotu, namcos1_state, bakutotu, ROT180, "Namco", "Bakutotsu Kijuutei", GAME_SUPPORTS_SAVE ) GAME( 1988, wldcourt, 0, ns1, wldcourt, namcos1_state, wldcourt, ROT180, "Namco", "World Court (Japan)", GAME_SUPPORTS_SAVE ) -GAME( 1988, splatter, 0, ns1, splatter, namcos1_state, splatter, ROT180, "Namco", "Splatter House (World, new version (SH3))", GAME_SUPPORTS_SAVE ) +GAME( 1988, splatter, 0, ns1, splatter3,namcos1_state, splatter, ROT180, "Namco", "Splatter House (World, new version (SH3))", GAME_SUPPORTS_SAVE ) GAME( 1988, splatter2, splatter, ns1, splatter, namcos1_state, splatter, ROT180, "Namco", "Splatter House (World, old version (SH2))", GAME_SUPPORTS_SAVE ) GAME( 1988, splatterj, splatter, ns1, splatter, namcos1_state, splatter, ROT180, "Namco", "Splatter House (Japan, SH1)", GAME_SUPPORTS_SAVE ) GAME( 1988, faceoff, 0, ns1, faceoff, namcos1_state, faceoff, ROT180, "Namco", "Face Off (Japan)", GAME_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/nbmj8891.c b/src/mame/drivers/nbmj8891.c index b446b5c965d..8f80b4a1110 100644 --- a/src/mame/drivers/nbmj8891.c +++ b/src/mame/drivers/nbmj8891.c @@ -3641,6 +3641,25 @@ ROM_START( hanaoji ) ROM_LOAD( "hnoj_11.bin", 0x100000, 0x20000, CRC(bfe38671) SHA1(6c81864caab61ea60dfe446b390221bdcfb0895e) ) ROM_END +ROM_START( hanaojia ) + ROM_REGION( 0x10000, "maincpu", 0 ) /* program */ + ROM_LOAD( "02.f3.bin", 0x00000, 0x10000, CRC(2f493c0b) SHA1(0c2b2ece744556f8b2d25fde9017680a77afcf6b) ) + + ROM_REGION( 0x10000, "voice", 0 ) /* voice */ + ROM_LOAD( "hnoj_01.bin", 0x00000, 0x10000, CRC(3f7fcb94) SHA1(7bb0bc3a8c34b1b707b39ba52be40900cca0f015) ) + + ROM_REGION( 0x200000, "gfx1", 0 ) /* gfx */ + ROM_LOAD( "hnoj_03.bin", 0x000000, 0x20000, CRC(fbbe1dce) SHA1(f742bb8e06a1e71e7c586d0a821f96238bdbc6ac) ) + ROM_LOAD( "hnoj_04.bin", 0x020000, 0x20000, CRC(2074b04f) SHA1(e759e49474bcb1caeea5a60708844ec53aed64c6) ) + ROM_LOAD( "hnoj_05.bin", 0x040000, 0x20000, CRC(84d20ba6) SHA1(0f270d43cdb390492f349b3680978e2e36a6a5d4) ) + ROM_LOAD( "hnoj_06.bin", 0x060000, 0x20000, CRC(f85fedd8) SHA1(224a5b05c28b1f84df0bd32b32cb2aa416156460) ) + ROM_LOAD( "hnoj_07.bin", 0x080000, 0x20000, CRC(c72cdde1) SHA1(877cd52461ecc9cd44d5b328c36ac8878056059d) ) + ROM_LOAD( "hnoj_08.bin", 0x0a0000, 0x20000, CRC(12e70429) SHA1(4728a5a0f636f793099c5a3a7bc998931921623f) ) + ROM_LOAD( "hnoj_09.bin", 0x0c0000, 0x20000, CRC(4ec74a59) SHA1(92803e99aa6fb5c8f2227db3b7cc875266249ed1) ) + ROM_LOAD( "hnoj_10.bin", 0x0e0000, 0x20000, CRC(e9212fc5) SHA1(c09f4a93f01630696acb0e80b1c6adb711377319) ) + ROM_LOAD( "hnoj_11.bin", 0x100000, 0x20000, CRC(bfe38671) SHA1(6c81864caab61ea60dfe446b390221bdcfb0895e) ) +ROM_END + ROM_START( mjcamerb ) ROM_REGION( 0x10000, "maincpu", 0 ) /* program */ ROM_LOAD( "2.3h", 0x00000, 0x10000, CRC(3a0f110b) SHA1(8923136ed25ed91c90f93c3f75f5532ff8f9d420) ) @@ -3857,7 +3876,8 @@ GAME( 1990, hnageman, 0, hnageman, maiko, driver_device, 0, R GAME( 1990, club90s, 0, club90s, club90s, driver_device, 0, ROT0, "Nichibutsu", "Mahjong CLUB 90's (set 1) (Japan 900919)", GAME_SUPPORTS_SAVE ) GAME( 1990, club90sa, club90s, club90s, club90s, driver_device, 0, ROT0, "Nichibutsu", "Mahjong CLUB 90's (set 2) (Japan 900919)", GAME_SUPPORTS_SAVE ) GAME( 1990, lovehous, club90s, lovehous, lovehous, driver_device, 0, ROT0, "Nichibutsu", "Mahjong Love House [BET] (Japan 901024)", GAME_SUPPORTS_SAVE ) -GAME( 1991, hanaoji, 0, hanaoji, hanaoji, driver_device, 0, ROT0, "Nichibutsu", "Hana to Ojisan [BET] (Japan 911209)", GAME_SUPPORTS_SAVE ) +GAME( 1991, hanaoji, 0, hanaoji, hanaoji, driver_device, 0, ROT0, "Nichibutsu", "Hana to Ojisan [BET] (ver 1.01, 1991/12/09)", GAME_SUPPORTS_SAVE ) +GAME( 1991, hanaojia, hanaoji, hanaoji, hanaoji, driver_device, 0, ROT0, "Nichibutsu", "Hana to Ojisan [BET] (ver 1.00, 1991/08/23)", GAME_SUPPORTS_SAVE ) GAME( 1988, taiwanmb, 0, taiwanmb, taiwanmb, driver_device, 0, ROT0, "Miki Syouji", "Taiwan Mahjong [BET] (Japan 881208)", GAME_SUPPORTS_SAVE ) GAME( 1989, pairsnb, 0, pairsnb, pairsnb, nbmj8891_state, pairsnb, ROT0, "Nichibutsu", "Pairs (Nichibutsu) (Japan 890822)", GAME_SUPPORTS_SAVE ) GAME( 1989, pairsten, pairsnb, pairsten, pairsnb, nbmj8891_state, pairsten, ROT0, "System Ten", "Pairs (System Ten) (Japan 890826)", GAME_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/phoenix.c b/src/mame/drivers/phoenix.c index bb38cdcf8a4..2d2ca57fa3e 100644 --- a/src/mame/drivers/phoenix.c +++ b/src/mame/drivers/phoenix.c @@ -876,6 +876,29 @@ ROM_START( vautour ) ROM_LOAD( "mmi6301.ic41", 0x0100, 0x0100, CRC(e176b768) SHA1(e2184dd495ed579f10b6da0b78379e02d7a6229f) ) /* palette high bits */ ROM_END +ROM_START( vautourza ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "1.e1", 0x0000, 0x0800, CRC(cd2807ee) SHA1(79b9769f212d25b9ccb5124e2aa632c964c14a0b) ) + ROM_LOAD( "2.f1", 0x0800, 0x0800, CRC(3699b11a) SHA1(7122685cbfcd75898eaa68f8c5bf87c11df59a3b) ) + ROM_LOAD( "3.h1", 0x1000, 0x0800, CRC(cbbb8839) SHA1(b7f449374cac111081559e39646f973e7e99fd64) ) + ROM_LOAD( "4.j1", 0x1800, 0x0800, CRC(106262eb) SHA1(1e52ca66ea3542d86f2604f5aadc854ffe22fd89) ) + ROM_LOAD( "5.k1", 0x2000, 0x0800, CRC(1a1ce0d0) SHA1(c2825eef5d461e16ca2172daff94b3751be2f4dc) ) + ROM_LOAD( "6.h1", 0x2800, 0x0800, CRC(1fcac707) SHA1(ea10a1c94d8cf49391a4d393ccef56ae3b9458b1) ) + ROM_LOAD( "7.m1", 0x3000, 0x0800, CRC(805ec2e8) SHA1(7e56fc9990eb99512078e2b1e2874fb33b0aa05c) ) + ROM_LOAD( "8.n1", 0x3800, 0x0800, CRC(1edebb45) SHA1(2fdf061ee600e27a6ed512ea61a8d78307a7fb8a) ) + + ROM_REGION( 0x1000, "bgtiles", 0 ) + ROM_LOAD( "10.h2", 0x0000, 0x0800, CRC(3c7e623f) SHA1(e7ff5fc371664af44785c079e92eeb2d8530187b) ) + ROM_LOAD( "9.j2", 0x0800, 0x0800, CRC(59916d3b) SHA1(71aec70a8e096ed1f0c2297b3ae7dca1b8ecc38d) ) + + ROM_REGION( 0x1000, "fgtiles", 0 ) + ROM_LOAD( "12.h4", 0x0000, 0x0800, CRC(8eff75c9) SHA1(d38a0e0c02ba680984dd8748a3c45ac55f81f127) ) + ROM_LOAD( "11.j4", 0x0800, 0x0800, CRC(369e7476) SHA1(599d2fc3b298060d746e95c20a089ad37f685d5b) ) + + ROM_REGION( 0x0200, "proms", 0 ) + ROM_LOAD( "82s135.m9", 0x0100, 0x0100, CRC(c68a49bc) SHA1(1a015b89ac0622e73bcebd76cf5132830fe0bfc1) ) /* expanded in init (upper nibbles are the ic40 data, lower nibbles ic41 data) */ +ROM_END + ROM_START( falconz ) ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "f45.bin", 0x0000, 0x0800, CRC(9158b43b) SHA1(222cbcfb3f95d09bb90148813541c2613d8b7e1c) ) @@ -998,6 +1021,31 @@ ROM_START( avefenixrf ) ROM_LOAD( "mmi6301.ic41", 0x0100, 0x0100, CRC(e176b768) SHA1(e2184dd495ed579f10b6da0b78379e02d7a6229f) ) /* palette high bits */ ROM_END + +ROM_START( avefenixl ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "01_ic45.a1", 0x0000, 0x0800, CRC(2c53998c) SHA1(6adaea6c88ebbbbf11d78bbbb35c4ed2f4e7e531) ) + ROM_LOAD( "02_ic46.a2", 0x0800, 0x0800, CRC(fea2435c) SHA1(f02bf68074dbfcfa259b98d16a8d942ddd71409a) ) + ROM_LOAD( "03_ic47.a3", 0x1000, 0x0800, CRC(cbbb8839) SHA1(b7f449374cac111081559e39646f973e7e99fd64) ) + ROM_LOAD( "04_ic48.a4", 0x1800, 0x0800, CRC(90a02a45) SHA1(ec3033100d5ed21948bba9fca8754fb6d725d83d) ) + ROM_LOAD( "05_ic49.a5", 0x2000, 0x0800, CRC(74b1cf66) SHA1(38f9915b239c30f45567e165e9320558f1197ff9) ) + ROM_LOAD( "06_ic50.a6", 0x2800, 0x0800, CRC(ac5e9ec1) SHA1(0402e5241d99759d804291998efd43f37ce99917) ) + ROM_LOAD( "07_ic51.a7", 0x3000, 0x0800, CRC(2eab35b4) SHA1(849bf8273317cc869bdd67e50c68399ee8ece81d) ) + ROM_LOAD( "08_ic52.a8", 0x3800, 0x0800, CRC(f15c439d) SHA1(6b80276b4ddc9989adb2981f018d5c9c55b06430) ) + + ROM_REGION( 0x1000, "bgtiles", 0 ) + ROM_LOAD( "11_ic23.d3", 0x0000, 0x0800, CRC(3c7e623f) SHA1(e7ff5fc371664af44785c079e92eeb2d8530187b) ) + ROM_LOAD( "12_ic24.d4", 0x0800, 0x0800, CRC(59916d3b) SHA1(71aec70a8e096ed1f0c2297b3ae7dca1b8ecc38d) ) + + ROM_REGION( 0x1000, "fgtiles", 0 ) + ROM_LOAD( "09_ic39.b3", 0x0000, 0x0800, CRC(bb0525ed) SHA1(86db1c7584fb3846bfd47535e1585eeb7fbbb1fe) ) + ROM_LOAD( "10_ic40.b4", 0x0800, 0x0800, CRC(4178aa4f) SHA1(5350f8f62cc7c223c38008bc83140b7a19147d81) ) + + ROM_REGION( 0x0200, "proms", 0 ) + ROM_LOAD( "mmi6301.ic40", 0x0000, 0x0100, CRC(79350b25) SHA1(57411be4c1d89677f7919ae295446da90612c8a8) ) /* palette low bits */ + ROM_LOAD( "mmi6301.ic41", 0x0100, 0x0100, CRC(e176b768) SHA1(e2184dd495ed579f10b6da0b78379e02d7a6229f) ) /* palette high bits */ +ROM_END + ROM_START( griffon ) ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "griffon0.a5", 0x0000, 0x0800, CRC(c0f73929) SHA1(3cecf8341a5674165d2cae9b22ea5db26a9597de) ) @@ -1073,6 +1121,30 @@ ROM_START( phoenixs ) ROM_LOAD( "mmi6301.ic41", 0x0100, 0x0100, CRC(e176b768) SHA1(e2184dd495ed579f10b6da0b78379e02d7a6229f) ) /* palette high bits */ ROM_END +ROM_START( phoenixass ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "ic45.bin", 0x0000, 0x0800, CRC(5b8c55a8) SHA1(839c1ca9766f730ec3accd48db70f6429a9c3362) ) + ROM_LOAD( "ic46.bin", 0x0800, 0x0800, CRC(dbc942fa) SHA1(9fe224e6ced407289dfa571468259a021d942b7d) ) + ROM_LOAD( "ic47.bin", 0x1000, 0x0800, CRC(cbbb8839) SHA1(b7f449374cac111081559e39646f973e7e99fd64) ) + ROM_LOAD( "ic48.bin", 0x1800, 0x0800, CRC(1e2e2fc7) SHA1(b181411d1f7c11ee27e4410d20bd509b21dd7242) ) + ROM_LOAD( "ic49.bin", 0x2000, 0x0800, CRC(1a1ce0d0) SHA1(c2825eef5d461e16ca2172daff94b3751be2f4dc) ) + ROM_LOAD( "ic50.bin", 0x2800, 0x0800, CRC(ac5e9ec1) SHA1(0402e5241d99759d804291998efd43f37ce99917) ) + ROM_LOAD( "ic51.bin", 0x3000, 0x0800, CRC(2eab35b4) SHA1(849bf8273317cc869bdd67e50c68399ee8ece81d) ) + ROM_LOAD( "ic52.bin", 0x3800, 0x0800, CRC(15a02d87) SHA1(df69d99747dd8b42187e4a4258edfae8e89663d0) ) + + ROM_REGION( 0x1000, "bgtiles", 0 ) + ROM_LOAD( "ic23.bin", 0x0000, 0x0800, CRC(3c7e623f) SHA1(e7ff5fc371664af44785c079e92eeb2d8530187b) ) + ROM_LOAD( "ic24.bin", 0x0800, 0x0800, CRC(59916d3b) SHA1(71aec70a8e096ed1f0c2297b3ae7dca1b8ecc38d) ) + + ROM_REGION( 0x1000, "fgtiles", 0 ) + ROM_LOAD( "ic39.bin", 0x0000, 0x0800, CRC(bb0525ed) SHA1(86db1c7584fb3846bfd47535e1585eeb7fbbb1fe) ) + ROM_LOAD( "ic40.bin", 0x0800, 0x0800, CRC(4178aa4f) SHA1(5350f8f62cc7c223c38008bc83140b7a19147d81) ) + + ROM_REGION( 0x0200, "proms", 0 ) + ROM_LOAD( "prom.41", 0x0000, 0x0100, CRC(7c9f2e00) SHA1(372293748b0d4254d2884bafe4f9f33fbf0c03a6) ) /* palette low bits */ // slightly different to other sets (note IC positions reversed) + ROM_LOAD( "prom.40", 0x0100, 0x0100, BAD_DUMP CRC(e176b768) SHA1(e2184dd495ed579f10b6da0b78379e02d7a6229f) ) /* palette high bits */ // was missing from PCB, marked as bad dump because it might also differ +ROM_END + ROM_START( pleiads ) ROM_REGION( 0x10000, "maincpu", 0 ) @@ -1274,41 +1346,58 @@ DRIVER_INIT_MEMBER(phoenix_state,condor) m_maincpu->space(AS_PROGRAM).install_read_port(0x5000, 0x5000, "DSW1"); } +DRIVER_INIT_MEMBER(phoenix_state,vautourza) +{ + UINT8 *rgn = memregion("proms")->base(); + // expand the 8-bit PROM into the same layout as the 4-bit PROMs used by most versions of the game + for (int i = 0; i < 0x100; i++) + { + rgn[i] = (rgn[i + 0x100] & 0xf0) >> 4; + rgn[i + 0x100] &= 0x0f; + } +} -GAME( 1980, phoenix, 0, phoenix, phoenix, driver_device, 0, ROT90, "Amstar", "Phoenix (Amstar)", GAME_SUPPORTS_SAVE ) -GAME( 1980, phoenixa, phoenix, phoenix, phoenixa, driver_device, 0, ROT90, "Amstar (Centuri license)", "Phoenix (Centuri, set 1)", GAME_SUPPORTS_SAVE ) -GAME( 1980, phoenixb, phoenix, phoenix, phoenixa, driver_device, 0, ROT90, "Amstar (Centuri license)", "Phoenix (Centuri, set 2)", GAME_SUPPORTS_SAVE ) -GAME( 1980, phoenixt, phoenix, phoenix, phoenixt, driver_device, 0, ROT90, "Amstar (Taito license)", "Phoenix (Taito)", GAME_SUPPORTS_SAVE ) -GAME( 1980, phoenixj, phoenix, phoenix, phoenixt, driver_device, 0, ROT90, "Amstar (Taito Japan license)", "Phoenix (Taito Japan)", GAME_SUPPORTS_SAVE ) -GAME( 1980, phoenix3, phoenix, phoenix, phoenix3, driver_device, 0, ROT90, "bootleg (T.P.N.)", "Phoenix (T.P.N. bootleg)", GAME_SUPPORTS_SAVE ) -GAME( 1980, phoenixdal,phoenix, phoenix, phoenixt, driver_device, 0, ROT90, "bootleg (D&L)", "Phoenix (D&L bootleg)", GAME_SUPPORTS_SAVE ) -GAME( 1981, phoenixc, phoenix, phoenix, phoenixt, driver_device, 0, ROT90, "bootleg? (Irecsa / G.G.I Corp)", "Phoenix (Irecsa / G.G.I Corp, set 1)", GAME_SUPPORTS_SAVE ) -GAME( 1981, phoenixc2,phoenix, phoenix, phoenixt, driver_device, 0, ROT90, "bootleg? (Irecsa / G.G.I Corp)", "Phoenix (Irecsa / G.G.I Corp, set 2)", GAME_SUPPORTS_SAVE ) -GAME( 1981, phoenixc3,phoenix, phoenix, phoenixt, driver_device, 0, ROT90, "bootleg? (Irecsa / G.G.I Corp)", "Phoenix (Irecsa / G.G.I Corp, set 3)", GAME_SUPPORTS_SAVE ) -GAME( 1981, phoenixc4,phoenix, phoenix, phoenixt, driver_device, 0, ROT90, "bootleg? (Irecsa / G.G.I Corp)", "Phoenix (Irecsa / G.G.I Corp, set 4)", GAME_SUPPORTS_SAVE ) -GAME( 1981, condor, phoenix, condor, condor, phoenix_state, condor, ROT90, "bootleg", "Condor (bootleg of Phoenix)", GAME_SUPPORTS_SAVE ) +/*** Phoenix (& clones) ***/ +GAME( 1980, phoenix, 0, phoenix, phoenix, driver_device, 0, ROT90, "Amstar", "Phoenix (Amstar)", GAME_SUPPORTS_SAVE ) +GAME( 1980, phoenixa, phoenix, phoenix, phoenixa, driver_device, 0, ROT90, "Amstar (Centuri license)", "Phoenix (Centuri, set 1)", GAME_SUPPORTS_SAVE ) +GAME( 1980, phoenixb, phoenix, phoenix, phoenixa, driver_device, 0, ROT90, "Amstar (Centuri license)", "Phoenix (Centuri, set 2)", GAME_SUPPORTS_SAVE ) +GAME( 1980, phoenixt, phoenix, phoenix, phoenixt, driver_device, 0, ROT90, "Amstar (Taito license)", "Phoenix (Taito)", GAME_SUPPORTS_SAVE ) +GAME( 1980, phoenixj, phoenix, phoenix, phoenixt, driver_device, 0, ROT90, "Amstar (Taito Japan license)", "Phoenix (Taito Japan)", GAME_SUPPORTS_SAVE ) +GAME( 1980, phoenix3, phoenix, phoenix, phoenix3, driver_device, 0, ROT90, "bootleg (T.P.N.)", "Phoenix (T.P.N. bootleg)", GAME_SUPPORTS_SAVE ) +GAME( 1980, phoenixdal,phoenix, phoenix, phoenixt, driver_device, 0, ROT90, "bootleg (D&L)", "Phoenix (D&L bootleg)", GAME_SUPPORTS_SAVE ) +GAME( 1981, phoenixc, phoenix, phoenix, phoenixt, driver_device, 0, ROT90, "bootleg? (Irecsa / G.G.I Corp)", "Phoenix (Irecsa / G.G.I Corp, set 1)", GAME_SUPPORTS_SAVE ) +GAME( 1981, phoenixc2,phoenix, phoenix, phoenixt, driver_device, 0, ROT90, "bootleg? (Irecsa / G.G.I Corp)", "Phoenix (Irecsa / G.G.I Corp, set 2)", GAME_SUPPORTS_SAVE ) +GAME( 1981, phoenixc3,phoenix, phoenix, phoenixt, driver_device, 0, ROT90, "bootleg? (Irecsa / G.G.I Corp)", "Phoenix (Irecsa / G.G.I Corp, set 3)", GAME_SUPPORTS_SAVE ) +GAME( 1981, phoenixc4,phoenix, phoenix, phoenixt, driver_device, 0, ROT90, "bootleg? (Irecsa / G.G.I Corp)", "Phoenix (Irecsa / G.G.I Corp, set 4)", GAME_SUPPORTS_SAVE ) +GAME( 1981, condor, phoenix, condor, condor, phoenix_state, condor, ROT90, "bootleg", "Condor (bootleg of Phoenix)", GAME_SUPPORTS_SAVE ) // the following 2 were common bootlegs in england & france respectively -GAME( 1980, falcon, phoenix, phoenix, phoenixt, driver_device, 0, ROT90, "bootleg", "Falcon (bootleg of Phoenix) (8085A CPU)", GAME_SUPPORTS_SAVE ) -GAME( 1980, vautour, phoenix, phoenix, phoenixt, driver_device, 0, ROT90, "bootleg (Jeutel)", "Vautour (bootleg of Phoenix) (8085A CPU)", GAME_SUPPORTS_SAVE ) -GAME( 1980, falconz, phoenix, condor, falconz, driver_device, 0, ROT90, "bootleg", "Falcon (bootleg of Phoenix) (Z80 CPU)", GAME_SUPPORTS_SAVE ) -GAME( 1980, vautourz, phoenix, condor, condor, phoenix_state, condor, ROT90, "bootleg", "Vautour (bootleg of Phoenix) (Z80 CPU)", GAME_SUPPORTS_SAVE ) +GAME( 1980, falcon, phoenix, phoenix, phoenixt, driver_device, 0, ROT90, "bootleg", "Falcon (bootleg of Phoenix) (8085A CPU)", GAME_SUPPORTS_SAVE ) +GAME( 1980, vautour, phoenix, phoenix, phoenixt, driver_device, 0, ROT90, "bootleg (Jeutel)", "Vautour (bootleg of Phoenix) (8085A CPU)", GAME_SUPPORTS_SAVE ) +GAME( 1980, falconz, phoenix, condor, falconz, driver_device, 0, ROT90, "bootleg", "Falcon (bootleg of Phoenix) (Z80 CPU)", GAME_SUPPORTS_SAVE ) +GAME( 1980, vautourz, phoenix, condor, condor, phoenix_state, condor, ROT90, "bootleg", "Vautour (bootleg of Phoenix) (Z80 CPU)", GAME_SUPPORTS_SAVE ) +GAME( 1980, vautourza,phoenix, condor , phoenixt,phoenix_state, vautourza,ROT90, "bootleg (Jeutel)", "Vautour (bootleg of Phoenix) (Z80 CPU, single PROM)", GAME_SUPPORTS_SAVE ) + // fenix is an italian bootleg based on vautourz -GAME( 1980, fenix, phoenix, condor, condor, phoenix_state, condor, ROT90, "bootleg", "Fenix (bootleg of Phoenix)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) -GAME( 1980, griffon, phoenix, condor, condor, phoenix_state, condor, ROT90, "bootleg (Videotron)", "Griffon (bootleg of Phoenix)", GAME_SUPPORTS_SAVE ) +GAME( 1980, fenix, phoenix, condor, condor, phoenix_state, condor, ROT90, "bootleg", "Fenix (bootleg of Phoenix)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) +GAME( 1980, griffon, phoenix, condor, condor, phoenix_state, condor, ROT90, "bootleg (Videotron)", "Griffon (bootleg of Phoenix)", GAME_SUPPORTS_SAVE ) // nextfase is a spanish bootleg -GAME( 1981, nextfase, phoenix, phoenix, nextfase, driver_device, 0, ROT90, "bootleg (Petaco S.A.)", "Next Fase (bootleg of Phoenix)", GAME_SUPPORTS_SAVE ) +GAME( 1981, nextfase, phoenix, phoenix, nextfase, driver_device, 0, ROT90, "bootleg (Petaco S.A.)", "Next Fase (bootleg of Phoenix)", GAME_SUPPORTS_SAVE ) // as is this -GAME( 1981, phoenixs, phoenix, phoenix, phoenix, driver_device, 0, ROT90, "bootleg (Sonic)", "Phoenix (Spanish bootleg)", GAME_SUPPORTS_SAVE ) -GAME( 1980, avefenix, phoenix, phoenix, phoenix, driver_device, 0, ROT90, "bootleg (Video Game)", "Ave Fenix (Electrogame, Spanish bootleg of Phoenix)", GAME_SUPPORTS_SAVE ) // Electrogame (Barcelona) made the dedicated cabinet and is likely the real manufacturer, ingame shows 'Video Game' +GAME( 1981, phoenixs, phoenix, phoenix, phoenix, driver_device, 0, ROT90, "bootleg (Sonic)", "Phoenix (Sonic, Spanish bootleg)", GAME_SUPPORTS_SAVE ) +GAME( 1981, phoenixass,phoenix, phoenix, phoenix, driver_device, 0, ROT90, "bootleg (Assa)", "Phoenix (Assa, Spanish bootleg)", GAME_SUPPORTS_SAVE ) +GAME( 1980, avefenix, phoenix, phoenix, phoenix, driver_device, 0, ROT90, "bootleg (Video Game)", "Ave Fenix (Electrogame, Spanish bootleg of Phoenix)", GAME_SUPPORTS_SAVE ) // Electrogame (Barcelona) made the dedicated cabinet and is likely the real manufacturer, ingame shows 'Video Game' GAME( 1980, avefenixrf,phoenix, phoenix, phoenix, driver_device, 0, ROT90, "bootleg (Recreativos Franco S.A.)", "Ave Fenix (Recreativos Franco, Spanish bootleg of Phoenix)", GAME_SUPPORTS_SAVE ) +GAME( 1980, avefenixl,phoenix, phoenix, phoenix, driver_device, 0, ROT90, "bootleg (Laguna)", "Ave Fenix (Laguna, Spanish bootleg of Phoenix)", GAME_SUPPORTS_SAVE ) -GAME( 1981, pleiads, 0, pleiads, pleiads, driver_device, 0, ROT90, "Tehkan", "Pleiads (Tehkan)", GAME_IMPERFECT_COLORS ) -GAME( 1981, pleiadsb2,pleiads, pleiads, pleiads, driver_device, 0, ROT90, "bootleg (ESG)", "Pleiads (bootleg set 2)", GAME_SUPPORTS_SAVE ) -GAME( 1981, pleiadbl, pleiads, pleiads, pleiadbl, driver_device, 0, ROT90, "bootleg", "Pleiads (bootleg set 1)", GAME_IMPERFECT_COLORS ) -GAME( 1981, pleiadce, pleiads, pleiads, pleiadce, driver_device, 0, ROT90, "Tehkan (Centuri license)", "Pleiads (Centuri)", GAME_IMPERFECT_COLORS ) -GAME( 1981, pleiadsi, pleiads, pleiads, pleiadce, driver_device, 0, ROT90, "bootleg? (Irecsa)", "Pleiads (Irecsa)", GAME_IMPERFECT_COLORS ) // possibly licensed, but some of the roms match the bootlegs -GAME( 1981, pleiadss, pleiads, phoenix, pleiadce, driver_device, 0, ROT90, "bootleg", "Pleiads (Spanish bootleg)", GAME_SUPPORTS_SAVE ) // colours match PCB (but are ugly) -GAME( 1981, capitol, pleiads, phoenix, capitol, driver_device, 0, ROT90, "bootleg? (Universal Video Spiel)", "Capitol", GAME_IMPERFECT_COLORS ) +/*** Pleiads (& clones) ***/ +GAME( 1981, pleiads, 0, pleiads, pleiads, driver_device, 0, ROT90, "Tehkan", "Pleiads (Tehkan)", GAME_IMPERFECT_COLORS ) +GAME( 1981, pleiadsb2,pleiads, pleiads, pleiads, driver_device, 0, ROT90, "bootleg (ESG)", "Pleiads (bootleg set 2)", GAME_SUPPORTS_SAVE ) +GAME( 1981, pleiadbl, pleiads, pleiads, pleiadbl, driver_device, 0, ROT90, "bootleg", "Pleiads (bootleg set 1)", GAME_IMPERFECT_COLORS ) +GAME( 1981, pleiadce, pleiads, pleiads, pleiadce, driver_device, 0, ROT90, "Tehkan (Centuri license)", "Pleiads (Centuri)", GAME_IMPERFECT_COLORS ) +GAME( 1981, pleiadsi, pleiads, pleiads, pleiadce, driver_device, 0, ROT90, "bootleg? (Irecsa)", "Pleiads (Irecsa)", GAME_IMPERFECT_COLORS ) // possibly licensed, but some of the roms match the bootlegs +GAME( 1981, pleiadss, pleiads, phoenix, pleiadce, driver_device, 0, ROT90, "bootleg", "Pleiads (Spanish bootleg)", GAME_SUPPORTS_SAVE ) // colours match PCB (but are ugly) +GAME( 1981, capitol, pleiads, phoenix, capitol, driver_device, 0, ROT90, "bootleg? (Universal Video Spiel)", "Capitol", GAME_IMPERFECT_COLORS ) -GAME( 1982, survival, 0, survival, survival, driver_device, 0, ROT90, "Rock-Ola", "Survival", GAME_IMPERFECT_COLORS ) +/*** Others ***/ +GAME( 1982, survival, 0, survival, survival, driver_device, 0, ROT90, "Rock-Ola", "Survival", GAME_IMPERFECT_COLORS ) diff --git a/src/mame/drivers/vegas.c b/src/mame/drivers/vegas.c index ba3ebe5ee0f..487689e8498 100644 --- a/src/mame/drivers/vegas.c +++ b/src/mame/drivers/vegas.c @@ -2446,9 +2446,12 @@ MACHINE_CONFIG_END * *************************************/ + + + ROM_START( gauntleg ) - ROM_REGION32_LE( 0x80000, "user1", 0 ) /* EPROM 1.5 11/17/1998 */ - ROM_LOAD( "legend15.bin", 0x000000, 0x80000, CRC(a8372d70) SHA1(d8cd4fd4d7007ee38bb58b5a818d0f83043d5a48) ) + ROM_REGION32_LE( 0x80000, "user1", 0 ) + ROM_LOAD( "legend15.bin", 0x000000, 0x80000, CRC(a8372d70) SHA1(d8cd4fd4d7007ee38bb58b5a818d0f83043d5a48) ) // EPROM Boot code. Version: Nov 17 1998 19:18:28 / 1.5 Nov 17 1998 19:21:49 DISK_REGION( "ide:0:hdd:image" ) /* Guts 1.5 1/14/1999 Game 1/14/1999 */ DISK_IMAGE( "gauntleg", 0, SHA1(66eb70e2fba574a7abe54be8bd45310654b24b08) ) @@ -2459,8 +2462,9 @@ ROM_END ROM_START( gauntleg12 ) - ROM_REGION32_LE( 0x80000, "user1", 0 ) /* EPROM 1.3 9/25/1998 */ - ROM_LOAD( "legend12.bin", 0x000000, 0x80000, CRC(34674c5f) SHA1(92ec1779f3ab32944cbd953b6e1889503a57794b) ) + ROM_REGION32_LE( 0x80000, "user1", 0 ) + ROM_LOAD( "legend13.bin", 0x000000, 0x80000, CRC(34674c5f) SHA1(92ec1779f3ab32944cbd953b6e1889503a57794b) ) // EPROM Boot code. Version: Sep 25 1998 18:34:43 / 1.3 Sep 25 1998 18:33:45 + ROM_LOAD( "legend14.bin", 0x000000, 0x80000, CRC(66869402) SHA1(bf470e0b9198b80f8baf8b9432a7e1df8c7d18ca) ) // EPROM Boot code. Version: Oct 30 1998 17:48:21 / 1.4 Oct 30 1998 17:44:29 DISK_REGION( "ide:0:hdd:image" ) /* Guts 1.4 10/22/1998 Main 10/23/1998 */ DISK_IMAGE( "gauntl12", 0, SHA1(c8208e3ce3b02a271dc6b089efa98dd996b66ce0) ) @@ -2529,9 +2533,13 @@ ROM_END ROM_START( nbashowt ) ROM_REGION32_LE( 0x80000, "user1", 0 ) - ROM_LOAD( "nbau27.100", 0x000000, 0x80000, CRC(ff5d620d) SHA1(8f07567929f40a2269a42495dfa9dd5edef688fe) ) + ROM_LOAD( "showtime_mar15_1999.u27", 0x000000, 0x80000, CRC(ff5d620d) SHA1(8f07567929f40a2269a42495dfa9dd5edef688fe) ) // 16:09:14 Mar 15 1999 BIOS FOR SHOWTIME USING BANSHEE / 16:09:01 Mar 15 1999. POST FOR SHOWTIME USING BANSHEE DISK_REGION( "ide:0:hdd:image" ) + // various strings from this image + // SHOWTIME REV 2.0 + // BUILD DATE: Apr 25 1999 (diag.exe?) + // BUILD DATE: Apr 21 1999 (game?) DISK_IMAGE( "nbashowt", 0, SHA1(f7c56bc3dcbebc434de58034986179ae01127f87) ) ROM_REGION16_LE( 0x10000, "dcs", 0 ) /* Vegas SIO boot ROM */ @@ -2541,20 +2549,49 @@ ROM_END ROM_START( nbanfl ) ROM_REGION32_LE( 0x80000, "user1", 0 ) - ROM_LOAD( "u27nflnba.bin", 0x000000, 0x80000, CRC(6a9bd382) SHA1(18b942df6af86ea944c24166dbe88148334eaff9) ) -// ROM_LOAD( "bootnflnba.bin", 0x000000, 0x80000, CRC(3def7053) SHA1(8f07567929f40a2269a42495dfa9dd5edef688fe) ) + ROM_LOAD( "blitz00_sep22_1999.u27", 0x000000, 0x80000, CRC(6a9bd382) SHA1(18b942df6af86ea944c24166dbe88148334eaff9) ) // 16:00:32 Sep 22 1999 BIOS FOR BLITZ00 USING BANSHEE / 16:00:26 Sep 22 1999 POST FOR BLITZ00 USING BANSHEE +// ROM_LOAD( "bootnflnba.bin", 0x000000, 0x80000, CRC(3def7053) SHA1(8f07567929f40a2269a42495dfa9dd5edef688fe) ) // 1 byte different to above (0x51b95 is 0x1b instead of 0x18) + ROM_LOAD( "blitz00_nov30_1999.u27", 0x000000, 0x80000, CRC(4242bf14) SHA1(c1fcec67d7463df5f41afc89f22c3b4484279534) ) // 15:10:49 Nov 30 1999 BIOS FOR BLITZ00 USING BANSHEE / 15:10:43 Nov 30 1999 POST FOR BLITZ00 USING BANSHEE DISK_REGION( "ide:0:hdd:image" ) + // various strings from this image + //NBA SHOWTIME 2.1 + //BUILD DATE: Sep 22 1999 (diag.exe?) + //BUILD DATE: Sep 21 1999 (game?) DISK_IMAGE( "nbanfl", 0, SHA1(f60c627f85f1bf58f2ea674063736a1e516e7e9e) ) ROM_REGION16_LE( 0x10000, "dcs", 0 ) /* Vegas SIO boot ROM */ ROM_LOAD16_BYTE( "vegassio.bin", 0x000000, 0x8000, CRC(d1470e23) SHA1(f6e8405cfa604528c0224401bc374a6df9caccef) ) ROM_END +// I'm not sure if NBA Showtime: NBA on NBC Gold was a standalone release, or the version with NBA Showtime: NBA on NBC Gold is actually 'Sports Station' +// it's possible the boot rom and CHD are mismatched here +ROM_START( nbagold ) + ROM_REGION32_LE( 0x80000, "user1", 0 ) + ROM_LOAD( "nbagold_jan10_2000.u27", 0x000000, 0x80000, CRC(6768e802) SHA1(d994e3efe14f57e261841134ddd1489fa67d418b) ) // 11:29:11 Jan 10 2000. BIOS FOR NBAGOLD USING BANSHEE / 11:23:58 Jan 10 2000. POST FOR NBAGOLD USING BANSHEE + + DISK_REGION( "ide:0:hdd:image" ) + // various strings from this image + //NBA SHOWTIME GOLD 3.00 + //BUILD DATE Feb 18 2000 (diag.exe) + //BUILD DATE:Feb 17 2000 (game?) + //BUILD DATE:Feb 10 2000 (something else?) + DISK_IMAGE( "nbanfl3", 0, SHA1(19a51346ce5ae4e06e8dff3eb4bed59ec1ee855f)) + // these both contain the same strings / build dates, same thing with different user data / drive sizes? +// DISK_IMAGE( "nbanfl27", 0, SHA1(da371d27e2fbceec493e2203055e0c1399eaf3b9) ) +// DISK_IMAGE( "sportstn", 0, SHA1(9442feefaeb5ae4a090422e937615f8a2d8e8f31) ) + + + ROM_REGION16_LE( 0x10000, "dcs", 0 ) /* Vegas SIO boot ROM */ + ROM_LOAD16_BYTE( "vegassio.bin", 0x000000, 0x8000, CRC(d1470e23) SHA1(f6e8405cfa604528c0224401bc374a6df9caccef) ) + + // also a PIC? +ROM_END + ROM_START( cartfury ) ROM_REGION32_LE( 0x80000, "user1", 0 ) - ROM_LOAD( "bootu27", 0x000000, 0x80000, CRC(c44550a2) SHA1(ad30f1c3382ff2f5902a4cbacbb1f0c4e37f42f9) ) + ROM_LOAD( "cart_mar8_2000.u27", 0x000000, 0x80000, CRC(c44550a2) SHA1(ad30f1c3382ff2f5902a4cbacbb1f0c4e37f42f9) ) // 10:40:17 Mar 8 2000 BIOS FOR CART USING VOODOO3 / 10:39:55 Mar 8 2000 POST FOR CART USING VOODOO3 DISK_REGION( "ide:0:hdd:image" ) DISK_IMAGE( "cartfury", 0, SHA1(4c5bc2803297ea9a191bbd8b002d0e46b4ae1563) ) @@ -2691,8 +2728,10 @@ GAME( 1999, warfa, 0, warfa, warfa, vegas_state, warfa, ROT0, "A GAME( 1999, roadburn, 0, roadburn, roadburn, vegas_state, roadburn, ROT0, "Atari Games", "Road Burners", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) /* Durango + DSIO? + Voodoo banshee */ -GAME( 1998, nbashowt, 0, nbashowt, nbashowt, vegas_state, nbashowt, ROT0, "Midway Games", "NBA Showtime: NBA on NBC", GAME_NO_SOUND | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) -GAME( 1999, nbanfl, 0, nbanfl, nbashowt, vegas_state, nbanfl, ROT0, "Midway Games", "NBA Showtime / NFL Blitz 2000", GAME_NO_SOUND | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) +GAME( 1998, nbashowt, 0, nbashowt, nbashowt, vegas_state, nbashowt, ROT0, "Midway Games", "NBA Showtime: NBA on NBC (ver 2.0)", GAME_NO_SOUND | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) +GAME( 1999, nbanfl, 0, nbanfl, nbashowt, vegas_state, nbanfl, ROT0, "Midway Games", "NBA Showtime / NFL Blitz 2000 (ver 2.1)", GAME_NO_SOUND | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) +GAME( 2000, nbagold , 0, nbanfl, nbashowt, vegas_state, nbanfl, ROT0, "Midway Games", "NBA Showtime Gold / NFL Blitz 2000 (ver 3.0) (Sports Station?)", GAME_NO_SOUND | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) + /* Durango + Denver SIO + Voodoo 3 */ GAME( 1998, sf2049, 0, sf2049, sf2049, vegas_state, sf2049, ROT0, "Atari Games", "San Francisco Rush 2049", GAME_NO_SOUND | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) diff --git a/src/mame/includes/namcos1.h b/src/mame/includes/namcos1.h index 8a5296ca76f..049ef2ae85f 100644 --- a/src/mame/includes/namcos1.h +++ b/src/mame/includes/namcos1.h @@ -23,7 +23,10 @@ public: m_spriteram(*this, "spriteram"), m_playfield_control(*this, "pfcontrol"), m_triram(*this, "triram"), - m_rom(*this, "user1") { } + m_rom(*this, "user1"), + m_soundbank(*this, "soundbank"), + m_mcubank(*this, "mcubank"), + m_io_dipsw(*this, "DIPSW") { } required_device m_maincpu; required_device m_subcpu; @@ -39,9 +42,13 @@ public: required_shared_ptr m_spriteram; required_shared_ptr m_playfield_control; required_shared_ptr m_triram; - required_region_ptr m_rom; + required_memory_bank m_soundbank; + required_memory_bank m_mcubank; + + required_ioport m_io_dipsw; + int m_dac0_value; int m_dac1_value; int m_dac0_gain; diff --git a/src/mame/includes/phoenix.h b/src/mame/includes/phoenix.h index 62483ff2f6c..815c2935a19 100644 --- a/src/mame/includes/phoenix.h +++ b/src/mame/includes/phoenix.h @@ -35,6 +35,7 @@ public: DECLARE_CUSTOM_INPUT_MEMBER(player_input_r); DECLARE_CUSTOM_INPUT_MEMBER(pleiads_protection_r); DECLARE_DRIVER_INIT(condor); + DECLARE_DRIVER_INIT(vautourza); TILE_GET_INFO_MEMBER(get_fg_tile_info); TILE_GET_INFO_MEMBER(get_bg_tile_info); DECLARE_MACHINE_RESET(phoenix); diff --git a/src/mame/machine/jvs13551.c b/src/mame/machine/jvs13551.c index 69e0f62c655..40b669e235e 100644 --- a/src/mame/machine/jvs13551.c +++ b/src/mame/machine/jvs13551.c @@ -22,6 +22,24 @@ static INPUT_PORTS_START(sega_837_13551_coins) PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_COIN2) PORT_WRITE_LINE_DEVICE_MEMBER(DEVICE_SELF, sega_837_13551, jvs13551_coin_2_w) INPUT_PORTS_END +ROM_START( jvs13551 ) + // TMP90PH44N firmwares + ROM_REGION( 0x8000, "jvs13551", ROMREGION_ERASE ) + // Sega 838-13683-93 + ROM_LOAD( "sp5001.bin", 0x0000, 0x8000, CRC(2f17e21a) SHA1(ac227ef3ca52ef17321bd60e435dba147645d8b8)) + // Sega 838-13683-93 Rev.B + ROM_LOAD( "sp5001-b.bin", 0x0000, 0x8000, CRC(121693cd) SHA1(c9834aca671aff5e283ac708788c2a0f4a5bdecc)) + // Sega 838-13683-02 + ROM_LOAD( "sp5002-a.bin", 0x0000, 0x8000, CRC(a088df8c) SHA1(8237e9b18b8367d3f5b99b8f29c528a55c2e0fbf)) + // Sega 837-13551-92 0007 Type1 + ROM_LOAD( "315-6215.bin", 0x0000, 0x8000, CRC(d7c97e40) SHA1(b1ae8db332f869c4fdbbae15967baeca0bc7f57d)) +ROM_END + +const rom_entry *sega_837_13551::device_rom_region() const +{ + return ROM_NAME(jvs13551); +} + void sega_837_13551::static_set_port_tag(device_t &device, int port, const char *tag) { sega_837_13551 &ctrl = downcast(device); @@ -33,7 +51,7 @@ ioport_constructor sega_837_13551::device_input_ports() const return INPUT_PORTS_NAME(sega_837_13551_coins); } -sega_837_13551::sega_837_13551(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : jvs_device(mconfig, SEGA_837_13551, "Sega 837-13551 I/O Board", tag, owner, clock, "sega_837_13551", __FILE__) +sega_837_13551::sega_837_13551(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : jvs_device(mconfig, SEGA_837_13551, "Sega 837-13551 I/O Board", tag, owner, clock, "jvs13551", __FILE__) { memset(port_tag, 0, sizeof(port_tag)); } diff --git a/src/mame/machine/jvs13551.h b/src/mame/machine/jvs13551.h index 69c79fee4e9..98f095e3c1c 100644 --- a/src/mame/machine/jvs13551.h +++ b/src/mame/machine/jvs13551.h @@ -29,6 +29,8 @@ public: sega_837_13551(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); static void static_set_port_tag(device_t &device, int port, const char *tag); + virtual const rom_entry *device_rom_region() const; + DECLARE_WRITE_LINE_MEMBER(jvs13551_coin_1_w); DECLARE_WRITE_LINE_MEMBER(jvs13551_coin_2_w); void inc_coin(int coin); diff --git a/src/mame/machine/namcos1.c b/src/mame/machine/namcos1.c index 6c6667bd8b8..9d7fa409421 100644 --- a/src/mame/machine/namcos1.c +++ b/src/mame/machine/namcos1.c @@ -477,7 +477,7 @@ WRITE8_MEMBER( namcos1_state::key_type3_w ) WRITE8_MEMBER(namcos1_state::sound_bankswitch_w) { - membank("soundbank")->set_entry((data & 0x70) >> 4); + m_soundbank->set_entry((data & 0x70) >> 4); } @@ -510,8 +510,8 @@ WRITE_LINE_MEMBER(namcos1_state::subres_w) void namcos1_state::machine_start() { - membank("soundbank")->configure_entries(0, 8, memregion("audiocpu")->base(), 0x4000); - membank("mcubank")->configure_entries(0, 24, memregion("voice")->base(), 0x8000); + m_soundbank->configure_entries(0, 8, memregion("audiocpu")->base(), 0x4000); + m_mcubank->configure_entries(0, 24, memregion("voice")->base(), 0x8000); save_item(NAME(m_dac0_value)); save_item(NAME(m_dac1_value)); @@ -568,7 +568,7 @@ WRITE8_MEMBER(namcos1_state::mcu_bankswitch_w) /* bit 0-1 : address line A15-A16 */ bank += (data & 3); - membank("mcubank")->set_entry(bank); + m_mcubank->set_entry(bank); } diff --git a/src/mess/drivers/amstrad.c b/src/mess/drivers/amstrad.c index e38f820c85b..3c0bb5a8d9b 100644 --- a/src/mess/drivers/amstrad.c +++ b/src/mess/drivers/amstrad.c @@ -784,7 +784,7 @@ static SLOT_INTERFACE_START( amstrad_floppies ) SLOT_INTERFACE_END static SLOT_INTERFACE_START( aleste_floppies ) - SLOT_INTERFACE( "525hd", FLOPPY_525_HD ) + SLOT_INTERFACE( "35hd", FLOPPY_35_HD ) SLOT_INTERFACE_END static MACHINE_CONFIG_FRAGMENT( cpcplus_cartslot ) @@ -1125,8 +1125,8 @@ static MACHINE_CONFIG_DERIVED( aleste, cpc6128 ) MCFG_DEVICE_REMOVE("upd765") MCFG_I8272A_ADD("upd765", true) - MCFG_FLOPPY_DRIVE_ADD("upd765:0", aleste_floppies, "525hd", floppy_image_device::default_floppy_formats) - MCFG_FLOPPY_DRIVE_ADD("upd765:1", aleste_floppies, "525hd", floppy_image_device::default_floppy_formats) + MCFG_FLOPPY_DRIVE_ADD("upd765:0", aleste_floppies, "35hd", floppy_image_device::default_floppy_formats) + MCFG_FLOPPY_DRIVE_ADD("upd765:1", aleste_floppies, "35hd", floppy_image_device::default_floppy_formats) MCFG_DEVICE_REMOVE("flop_list") MCFG_SOFTWARE_LIST_ADD("flop_list", "aleste") diff --git a/src/mess/drivers/sdk80.c b/src/mess/drivers/sdk80.c index 1937a0a878f..dab269c9720 100644 --- a/src/mess/drivers/sdk80.c +++ b/src/mess/drivers/sdk80.c @@ -202,4 +202,4 @@ ROM_START( sdk80 ) ROM_END /* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 1975, sdk80, 0, 0, sdk80, sdk80, driver_device, 0, "Intel", "SDK-80", GAME_NO_SOUND_HW | GAME_NOT_WORKING ) +COMP( 1975, sdk80, 0, 0, sdk80, sdk80, driver_device, 0, "Intel", "SDK-80", GAME_NO_SOUND_HW )