New systems marked not working

------------------------------
Magical Jack (VA 4.00) [Ioannis Bampoulas]
Magical Jack Plus (VA 6.03) [Ioannis Bampoulas]
Wan Wan Dash [TeamEurope, Darksoft]

New clones marked not working
-----------------------------
Fruit Genie (Version 1-1-03, set 2) [Ioannis Bampoulas]
Fruit Genie (Version 1-1-03, set 3) [Ioannis Bampoulas]
Fruit Genie (Version 1-1-03, set 4) [Ioannis Bampoulas]
Fruit Genie (VT 2.11) [Ioannis Bampoulas]
Magical Jack (VA 3.30) [Ioannis Bampoulas]
Magical Jack (VA 3.11) [Ioannis Bampoulas]
Magical Jack (VA 2.0) [Ioannis Bampoulas]
Magical Jack Plus (VA 6.01) [Ioannis Bampoulas]

- igs/goldstar.cpp: redumped GFX ROM for hamhouse9 [taksangs]

- irem/m72.cpp: decapped and added MCU for gallopm72 [TeamEurope, Darksoft, The Dumping Union]
- taito/taitotz.cpp: documented batlgr2' hdd [Guru]
This commit is contained in:
Ivan Vangelista 2024-08-02 07:26:26 +02:00
parent 34cb0a7630
commit 286783d057
7 changed files with 307 additions and 43 deletions

View File

@ -14546,12 +14546,11 @@ ROM_START( hamhouse9 ) // basically same PCB as above but this has standard PROM
ROM_LOAD( "m27256.u43", 0x10000, 0x08000, CRC(a5105928) SHA1(ea3a4fb7a0ca3e14da001beb5aca03bfbd43410d) )
ROM_REGION( 0x08000, "gfx2", 0 )
// TODO: u24 and u10 are identical, this can't be right. Marking both as bad for now, even though one is good
ROM_LOAD( "intel27128.u24", 0x00000, 0x02000, BAD_DUMP CRC(69ce2859) SHA1(68cb0c81a471d09f173d8534d94877f3f5c276f4) ) // 1ST AND 2ND HALF IDENTICAL
ROM_LOAD( "intel27128.u24", 0x00000, 0x02000, CRC(36486029) SHA1(8b0b7e7ad0252a049c0d3d66f102198a31151991) ) // 1ST AND 2ND HALF IDENTICAL
ROM_IGNORE( 0x2000 )
ROM_LOAD( "hn4827128g.u26", 0x02000, 0x02000, CRC(6ba11862) SHA1(ce34727190689df8d591147dc342fe7bf230ce26) ) // 1ST AND 2ND HALF IDENTICAL
ROM_IGNORE( 0x2000 )
ROM_LOAD( "am27c128.u10", 0x04000, 0x02000, BAD_DUMP CRC(69ce2859) SHA1(68cb0c81a471d09f173d8534d94877f3f5c276f4) ) // 1ST AND 2ND HALF IDENTICAL
ROM_LOAD( "am27c128.u10", 0x04000, 0x02000, CRC(69ce2859) SHA1(68cb0c81a471d09f173d8534d94877f3f5c276f4) ) // 1ST AND 2ND HALF IDENTICAL
ROM_IGNORE( 0x2000 )
ROM_LOAD( "tms27c128.u11", 0x06000, 0x02000, CRC(61a17c65) SHA1(b1212c45c9c98aba50aeed6a38e17960f868ccd3) ) // 1ST AND 2ND HALF IDENTICAL
ROM_IGNORE( 0x2000 )
@ -22115,7 +22114,7 @@ GAMEL( 1991, srmagic, cmv4, cm, cmv4, cmaster_state, empty_ini
GAMEL( 1991, cmv4zg, cmv4, cmv4zg, cmv4, cmaster_state, empty_init, ROT0, "hack", "Cherry Bonus III (Ziogas V4.1 hack, set 1)", MACHINE_NOT_WORKING, layout_cmv4 ) // needs correct I/O, maybe slightly protected
GAMEL( 1991, cmv4zga, cmv4, cmv4zg, cmv4, cmaster_state, empty_init, ROT0, "hack", "Cherry Bonus III (Ziogas V4.1 hack, set 2)", MACHINE_NOT_WORKING, layout_cmv4 ) // needs correct I/O, maybe slightly protected
GAMEL( 199?, hamhouse, cmaster, cm, cmaster, cmaster_state, init_hamhouse, ROT0, "bootleg", "Hamburger House", MACHINE_NOT_WORKING, layout_cmaster ) // needs correct I/O
GAMEL( 199?, hamhouse9, cmaster, cm, cmaster, cmaster_state, init_hamhouse9, ROT0, "bootleg", "Hamburger House 9", MACHINE_IMPERFECT_COLORS | MACHINE_NOT_WORKING, layout_cmaster ) // bad reel colors, needs correct I/O
GAMEL( 199?, hamhouse9, cmaster, cm, cmaster, cmaster_state, init_hamhouse9, ROT0, "bootleg", "Hamburger House 9", MACHINE_NOT_WORKING, layout_cmaster ) //needs correct I/O
GAMEL( 1991, tonypok, 0, cm, tonypok, cmaster_state, init_tonypok, ROT0, "Corsica", "Poker Master (Tony-Poker V3.A, hack?)", 0 , layout_tonypok )
GAME( 1998, jkrmast, 0, jkrmast, jkrmast, goldstar_state, init_jkrmast, ROT0, "Pick-A-Party USA", "Joker Master 2000 Special Edition (V515)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_COLORS | MACHINE_NOT_WORKING ) // needs correct FG colors and controls

View File

@ -473,17 +473,6 @@ void m72_state::dkgenm72_sample_trigger_w(offs_t offset, u16 data, u16 mem_mask)
if (ACCESSING_BITS_0_7 && (data & 0xff) < 28) m_audio->set_sample_start(a[data & 0xff]);
}
void m72_state::gallop_sample_trigger_w(offs_t offset, u16 data, u16 mem_mask)
{
static const int a[31] = {
0x00000, 0x00020, 0x00040, 0x01360, 0x02580, 0x04f20, 0x06240, 0x076e0,
0x08660, 0x092a0, 0x09ba0, 0x0a560, 0x0cee0, 0x0de20, 0x0e620, 0x0f1c0,
0x10200, 0x10220, 0x10240, 0x11380, 0x12760, 0x12780, 0x127a0, 0x13c40,
0x140a0, 0x16760, 0x17e40, 0x18ee0, 0x19f60, 0x1bbc0, 0x1cee0 };
if (ACCESSING_BITS_0_7 && (data & 0xff) < 31) m_audio->set_sample_start(a[data & 0xff]);
}
/***************************************************************************
@ -615,11 +604,6 @@ void m72_state::init_dkgenm72()
m_maincpu->space(AS_IO).install_write_handler(0xc0, 0xc1, write16s_delegate(*this, FUNC(m72_state::dkgenm72_sample_trigger_w)));
}
void m72_state::init_gallop()
{
m_maincpu->space(AS_IO).install_write_handler(0xc0, 0xc1, write16s_delegate(*this, FUNC(m72_state::gallop_sample_trigger_w)));
}
template<unsigned N>
u16 m72_state::palette_r(offs_t offset)
@ -1882,7 +1866,6 @@ void m72_state::m72_dbreed(machine_config &config)
/****************************************** M81 ***********************************************/
// M81 is closest to M72
@ -3663,7 +3646,7 @@ ROM_START( gallopm72 )
ROM_RELOAD( 0xc0000, 0x20000 )
ROM_REGION( 0x1000, "mcu", 0 ) // i8751 microcontroller
ROM_LOAD( "cc_c-pr-.ic1", 0x0000, 0x1000, NO_DUMP ) // read protected (only used for sample triggering, not supplying code / warning screens)
ROM_LOAD( "cc_c-pr-.ic1", 0x0000, 0x1000, CRC(ac4421b1) SHA1(4614acbc4efb26b27f3871b4d22879d74df5e2e0) ) // i8751 MCU labeled CC C-PR-
ROM_REGION( 0x080000, "sprites", 0 ) // sprites - same data as the cosmccop/gallop sets
ROM_LOAD( "cc_c-00.ic53", 0x00000, 0x20000, CRC(9d99deaa) SHA1(acf16bea0f482306107d2a305c568406b6c21e9a) ) // == cc-b-n0.ic31
@ -4724,7 +4707,7 @@ GAME( 1989, xmultiplm72, xmultipl, m72_xmultipl, xmultipl, m72_state, init_m
GAME( 1989, dbreedm72, dbreed, m72_dbreedw, dbreed, m72_state, init_dbreedm72, ROT0, "Irem", "Dragon Breed (World, M72 hardware)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) // missing i8751 MCU code
GAME( 1989, dbreedjm72, dbreed, m72_dbreed, dbreed, m72_state, init_m72_8751, ROT0, "Irem", "Dragon Breed (Japan, M72 hardware)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
GAME( 1991, gallopm72, cosmccop, m72, gallop, m72_state, init_gallop, ROT0, "Irem", "Gallop - Armed Police Unit (Japan, M72 hardware)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) // missing i8751 MCU code
GAME( 1991, gallopm72, cosmccop, m72_airduel, gallop, m72_state, init_m72_8751, ROT0, "Irem", "Gallop - Armed Police Unit (Japan, M72 hardware)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
GAME( 1990, airduelm72, airduel, m72_airduel, airduel, m72_state, init_m72_8751, ROT270, "Irem", "Air Duel (World, M72 hardware)", MACHINE_SUPPORTS_SAVE )
GAME( 1990, airdueljm72, airduel, m72_airduel, airduel, m72_state, init_m72_8751, ROT270, "Irem", "Air Duel (Japan, M72 hardware)", MACHINE_SUPPORTS_SAVE )

View File

@ -96,7 +96,6 @@ public:
void nspiritj(machine_config &config);
void init_dkgenm72();
void init_gallop();
void init_m72_8751();
void init_dbreedm72();
void init_nspirit();

View File

@ -28661,6 +28661,7 @@ amhbattl
docchift
mmhammer
shpchamp
wwdash
zenponta
@source:misc/anes.cpp
@ -30680,7 +30681,17 @@ jubileep //
@source:misc/jungleyo.cpp
frtgenie
frtgeniea
frtgenieb
frtgeniec
frtgenied
jungleyo
magjack
magjacka
magjackb
magjackc
magjackp
magjackpa
@source:misc/kas89.cpp
kas89 // 1989, SFC S.R.L.

View File

@ -300,10 +300,20 @@ ROM_START( zenponta ) // HA9020-0
ROM_LOAD( "29lv160.u3", 0x200000, 0x200000, CRC(76ed6b4a) SHA1(5b3523353771d91c0382b8c2440cae795a8207ed) ) // 1xxxxxxxxxxxxxxxxxxxx = 0x00
ROM_END
ROM_START( wwdash )
ROM_REGION(0x80000, "maincpu", 0)
ROM_LOAD16_WORD_SWAP( "s29al004d70tfi01.u1", 0x000000, 0x080000, CRC(b8984518) SHA1(23f8f2988a44bf0f0a14c39363f97f8e1b12cf62) ) // 1xxxxxxxxxxxxxxxxxx = 0xFF
ROM_REGION(0x400000, "gfx", 0)
ROM_LOAD( "s29al016d70tfi01.u2", 0x000000, 0x200000, CRC(c02c4fed) SHA1(e3fd56621fc7ca4558f3044a1b13b6b58dd4c368) )
ROM_LOAD( "s29al016d70tfi01.u3", 0x200000, 0x200000, CRC(cd66dc10) SHA1(76051b248882f7b5c0adfd0ae62283a16d440523) )
ROM_END
} // anonymous namespace
GAME( 2005, zenponta, 0, amuzy, amuzy, amuzy_state, empty_init, ROT0, "Amuzy Corporation", "Zenigata Ponta", MACHINE_NOT_WORKING )
GAME( 2006, amhbattl, 0, amuzy, amuzy, amuzy_state, empty_init, ROT0, "Amuzy Corporation", "Acchi Muite Hoi Battle", MACHINE_NOT_WORKING )
GAME( 2007, docchift, 0, amuzy, amuzy, amuzy_state, empty_init, ROT0, "Amuzy Corporation", "Docchi Fighter", MACHINE_NOT_WORKING )
GAME( 2007, wwdash, 0, amuzy, amuzy, amuzy_state, empty_init, ROT0, "Amuzy Corporation", "Wan Wan Dash", MACHINE_NOT_WORKING )
GAME( 2008, mmhammer, 0, amuzy, amuzy, amuzy_state, empty_init, ROT0, "Amuzy Corporation", "Mogu Mogu Hammer", MACHINE_NOT_WORKING )
GAME( 2008, shpchamp, 0, amuzy, amuzy, amuzy_state, empty_init, ROT0, "Amuzy Corporation", "Shippe Champion", MACHINE_NOT_WORKING )

View File

@ -32,11 +32,24 @@
- decryption seems good but gets stuck with 'data error' and 'illegal inst'
errors. Second one probably due to same problem as jungleyo. First one
possibly checksum failure due to patch in init_frtgenie()?
To bypass do: bp 5732,1,{curpc=0x5810;g}
- second half of the main CPU ROM seems to contain an earlier version of the
data 'GENIE FRUITS DATA: 2001/08/15 VERSION: VA1.00'. Can it be reached or
just a leftover?
To bypass do:
frtgenie, frtgeniea: bp 5732,1,{curpc=0x5810;g}
frtgenieb: bp 581e,1,{curpc=0x58fe;g}
frtgeniec: bp 5812,1,{curpc=0x58f0;g}
frtgenied: bp 80de,1,{curpc=0x81bc;g}
- second half of frtgenie's main CPU ROM seems to contain an earlier version
of the data 'GENIE FRUITS DATA: 2001/08/15 VERSION: VA1.00'. Can it be
reached or just a leftover?
- interestingly not only the program ROMs, but the GFX ROMs differ for the
various sets. Only the Oki ROM is always identical
- it hits the layer_enable_w popmessage
- dip settings are good for frtgenie, need to be checked for the other clones
- title screen uses 4th 'reel'. Not implemented yet.
Magical Jack (Plus)
- with a clean NVRAM MAME needs to be soft reset after init or the game
will trip a '1111 exception';
- dip settings TBD.
===============================================================================
@ -114,15 +127,16 @@ public:
void init_frtgenie();
void init_jungleyo();
template <uint16_t Reset_addr> void init_magjack();
protected:
virtual void video_start() override;
private:
void output_w(uint16_t data);
void output_w(u16 data);
// video-related
uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
u32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
TILE_GET_INFO_MEMBER(get_fg_tile_info);
template <int Layer> TILE_GET_INFO_MEMBER(get_reel_tile_info);
@ -139,8 +153,8 @@ private:
required_device<cpu_device> m_maincpu;
required_device<gfxdecode_device> m_gfxdecode;
required_shared_ptr<uint16_t> m_bg_videoram;
required_shared_ptr<uint16_t> m_fg_videoram;
required_shared_ptr<u16> m_bg_videoram;
required_shared_ptr<u16> m_fg_videoram;
required_shared_ptr_array<u16, 3> m_reel_vram;
required_device<palette_device> m_palette;
memory_share_creator<u8> m_paletteram;
@ -219,7 +233,7 @@ void jungleyo_state::video_start()
save_item(NAME(m_video_priority));
}
uint32_t jungleyo_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
u32 jungleyo_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
bitmap.fill(m_palette->black_pen(), cliprect);
@ -265,7 +279,7 @@ void jungleyo_state::palette_ram_w(offs_t offset, u8 data)
m_palette->set_pen_color(pal_offs, rgb_t(r, g, b));
}
void jungleyo_state::output_w(uint16_t data)
void jungleyo_state::output_w(u16 data)
{
// bit 15 ?
// bit 14 coin counter?
@ -591,7 +605,8 @@ void jungleyo_state::jungleyo(machine_config &config)
}
ROM_START( jungleyo )
// version 3.02 built on 2001/02/09, there's copyright both for Yonshi and Global in strings
ROM_START( jungleyo ) // MADE IN TAIWAN YONSHI PCB NO-006F
ROM_REGION( 0x80000, "maincpu", ROMREGION_ERASE00 ) // 68000 code, encrypted
ROM_LOAD16_BYTE( "jungle_=record=_rom3_vi3.02.u15", 0x00000, 0x20000, CRC(7c9f431e) SHA1(fb3f90c4fe59c938f36b30c5fa3af227031e7d7a) )
ROM_LOAD16_BYTE( "jungle_=record=_rom2_vi3.02.u14", 0x00001, 0x20000, CRC(f6a71260) SHA1(8e48cbb9d701ad968540244396820359afe97c28) )
@ -612,6 +627,7 @@ ROM_START( jungleyo )
ROM_LOAD( "atf20v8b.u37", 0x000, 0x157, NO_DUMP )
ROM_END
// first half is version 1-1-03, with copyright both for Yonshi and Global in strings, second half is version VA1.0 2001/08/15 with copyright both for Yonshi and Global in strings
ROM_START( frtgenie ) // MADE IN TAIWAN YONSHI PCB NO-006E
ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code, encrypted
ROM_LOAD16_BYTE( "fruit_genie_rom3_va1_1.03.u15", 0x00000, 0x40000, CRC(747099c3) SHA1(99f4aa6814ed2868d9758ad94b4497fd4c3142dc) )
@ -633,10 +649,220 @@ ROM_START( frtgenie ) // MADE IN TAIWAN YONSHI PCB NO-006E
ROM_LOAD( "atf20v8b.u37", 0x000, 0x157, NO_DUMP )
ROM_END
ROM_START( frtgeniea ) // MADE IN TAIWAN YONSHI PCB NO-006E
ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code, encrypted
ROM_LOAD16_BYTE( "fruit_genie_rom3_va1_1.03.u15", 0x00000, 0x40000, CRC(c9141977) SHA1(6b57631802eab7f4a0d99074844407d009eff07b) ) // SLDH, 27C020
ROM_LOAD16_BYTE( "fruit_genie_rom2_va1_1.03.u14", 0x00001, 0x40000, CRC(cacd2806) SHA1(af572697b434630740b0edbe901c7b704f2be908) ) // SLDH, 27C020
ROM_REGION( 0x40000, "oki", 0 )
ROM_LOAD( "fruit_genie_rom_1.u99", 0x00000, 0x40000, CRC(28b0c8fb) SHA1(5cdf59dcbed7da9b882c7dcf27020c1c37dd22cc) ) // 27C020
ROM_REGION( 0x80000, "reelgfx", 0 )
ROM_LOAD( "fruit_genie_rom_4.u58", 0x00000, 0x80000, CRC(74e8235a) SHA1(f16391f824f7ae7ce89e917d94cb784b5ca4a9e1) ) // SLDH, 27C040
ROM_REGION( 0x80000, "gfx2", 0 )
ROM_LOAD( "fruit_genie_rom_5.u59", 0x00000, 0x80000, CRC(00d73415) SHA1(26e65e0e2c91bc71f39cefd065e234e49f2a1d81) ) // SLDH, 27C040
ROM_REGION( 0x80000, "gfx3", 0 )
ROM_LOAD( "fruit_genie_rom_6.u60", 0x00000, 0x80000, CRC(a57f5f4e) SHA1(b7ee54d250a127c211cd5ad11ddb38ae1e0119d5) ) // SLDH, 27C040
ROM_REGION( 0x157, "plds", ROMREGION_ERASE00 )
ROM_LOAD( "atf20v8b.u37", 0x000, 0x157, NO_DUMP )
ROM_END
ROM_START( frtgenieb ) // MADE IN TAIWAN YONSHI PCB NO-006G
ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code, encrypted
ROM_LOAD16_BYTE( "fruit_genie_rom3_va1_1.03.u15", 0x00000, 0x40000, CRC(fae885b8) SHA1(ac923469cc0c7866be490a43344fe1677d64f617) ) // SLDH, 27C020
ROM_LOAD16_BYTE( "fruit_genie_rom2_va1_1.03.u14", 0x00001, 0x40000, CRC(4b5e1cbc) SHA1(4e2af889c669d80c6cdba01948858b9e8d8fab95) ) // SLDH, 27C020
ROM_REGION( 0x40000, "oki", 0 )
ROM_LOAD( "fruit_genie_rom_1.u99", 0x00000, 0x40000, CRC(28b0c8fb) SHA1(5cdf59dcbed7da9b882c7dcf27020c1c37dd22cc) ) // 27C020
ROM_REGION( 0x80000, "reelgfx", 0 )
ROM_LOAD( "fruit_genie_rom_4.u58", 0x00000, 0x80000, CRC(16aaba0a) SHA1(0bad575724d44f5ad62412ec8391fcd42bd0628e) ) // SLDH, 27C040
ROM_REGION( 0x80000, "gfx2", 0 )
ROM_LOAD( "fruit_genie_rom_5.u59", 0x00000, 0x80000, CRC(fe3eece5) SHA1(0fc785a04ee42c5bce4f0e72e608e7ba5aa28412) ) // SLDH, 27C040
ROM_REGION( 0x80000, "gfx3", 0 )
ROM_LOAD( "fruit_genie_rom_6.u60", 0x00000, 0x80000, CRC(8d364563) SHA1(fd1257680eb610885b65f41a8f86e32b5635acfc) ) // SLDH, 27C040
ROM_REGION( 0x157, "plds", ROMREGION_ERASE00 )
ROM_LOAD( "atf20v8b.u37", 0x000, 0x157, NO_DUMP )
ROM_END
ROM_START( frtgeniec ) // MADE IN TAIWAN YONSHI PCB NO-006G
ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code, encrypted
ROM_LOAD16_BYTE( "fruit_genie_rom3_va1_1.03.u15", 0x00000, 0x40000, CRC(ec6721b5) SHA1(f9621a66964ef5a312c185540f3c4fc52f76c7ef) ) // SLDH, 27C020
ROM_LOAD16_BYTE( "fruit_genie_rom2_va1_1.03.u14", 0x00001, 0x40000, CRC(3112f27d) SHA1(7d7cc15552e9c453a2f7f7403163123cd392c18d) ) // SLDH, 27C020
ROM_REGION( 0x40000, "oki", 0 )
ROM_LOAD( "fruit_genie_rom_1.u99", 0x00000, 0x40000, CRC(28b0c8fb) SHA1(5cdf59dcbed7da9b882c7dcf27020c1c37dd22cc) ) // 27C020
ROM_REGION( 0x80000, "reelgfx", 0 )
ROM_LOAD( "fruit_genie_rom_4.u58", 0x00000, 0x80000, CRC(16aaba0a) SHA1(0bad575724d44f5ad62412ec8391fcd42bd0628e) ) // SLDH, 27C040
ROM_REGION( 0x80000, "gfx2", 0 )
ROM_LOAD( "fruit_genie_rom_5.u59", 0x00000, 0x80000, CRC(fe3eece5) SHA1(0fc785a04ee42c5bce4f0e72e608e7ba5aa28412) ) // SLDH, 27C040
ROM_REGION( 0x80000, "gfx3", 0 )
ROM_LOAD( "fruit_genie_rom_6.u60", 0x00000, 0x80000, CRC(b7056d04) SHA1(87b1ffa3c722a0f0eb7e249ba07f540c314d2d79) ) // SLDH, 27C040
ROM_REGION( 0x157, "plds", ROMREGION_ERASE00 )
ROM_LOAD( "atf20v8b.u37", 0x000, 0x157, NO_DUMP )
ROM_END
ROM_START( frtgenied ) // MADE IN TAIWAN YONSHI PCB NO-006E
ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code, encrypted
ROM_LOAD16_BYTE( "fruit_genie_rom3_vt_2.11.u15", 0x00000, 0x20000, CRC(37bac681) SHA1(39b0b8596e8acc988e4d8c7b0249e9d666b3fc1e) ) // M27C1001
ROM_LOAD16_BYTE( "fruit_genie_rom2_vt_2.11.u14", 0x00001, 0x20000, CRC(0918cefc) SHA1(4a1bc853f7deb71f504780b84fa7f8c5c1d3330e) ) // M27C1001
ROM_REGION( 0x40000, "oki", 0 )
ROM_LOAD( "fruit_genie_rom_1.u99", 0x00000, 0x40000, CRC(28b0c8fb) SHA1(5cdf59dcbed7da9b882c7dcf27020c1c37dd22cc) ) // M27C2001
ROM_REGION( 0x80000, "reelgfx", 0 )
ROM_LOAD( "fruit_genie_rom_4.u58", 0x00000, 0x80000, CRC(b3b467b6) SHA1(f1a64af7a8fe22c7ef76617aba359df11e4af737) ) // M27C4001
ROM_REGION( 0x80000, "gfx2", 0 )
ROM_LOAD( "fruit_genie_rom_5.u59", 0x00000, 0x80000, CRC(a7926b81) SHA1(650d85a2dd6850234e0fb68c19470f34aed76577) ) // SLDH, 27C4001
ROM_REGION( 0x80000, "gfx3", 0 )
ROM_LOAD( "fruit_genie_rom_6.u60", 0x00000, 0x80000, CRC(91faa324) SHA1(cda033e948d6f42abb36497619164b26b2201cad) ) // SLDH, 27C4001
ROM_REGION( 0x157, "plds", ROMREGION_ERASE00 )
ROM_LOAD( "atf20v8b.u37", 0x000, 0x157, NO_DUMP )
ROM_END
ROM_START( magjack ) // MADE IN TAIWAN PCB NO-006A
ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code, encrypted
ROM_LOAD16_BYTE( "3.u15", 0x00000, 0x20000, CRC(7d0855d0) SHA1(489e54f529c648da2333a3a811ced20f0d578029) ) // 27C010
ROM_LOAD16_BYTE( "2.u14", 0x00001, 0x20000, CRC(5564101a) SHA1(30fc23acf4387221cab705b166d551883c7aaa29) ) // 27C010
ROM_REGION( 0x40000, "oki", 0 )
ROM_LOAD( "1.u99", 0x00000, 0x40000, CRC(0bce2433) SHA1(2c9e9cb3ab9076e1a2eb0a58ad0079b86bf4e922) ) // 27C020
ROM_REGION( 0x80000, "reelgfx", 0 )
ROM_LOAD( "4.u58", 0x00000, 0x80000, CRC(9b630db6) SHA1(00e04e4b4207ba44617851017c1505eacfcc5375) ) // 27C040
ROM_REGION( 0x80000, "gfx2", 0 )
ROM_LOAD( "5.u59", 0x00000, 0x80000, CRC(5991a0c5) SHA1(29848eae911c47ff911a49f0b3552b0dc958a6c5) ) // 27C040
ROM_REGION( 0x80000, "gfx3", 0 )
ROM_LOAD( "6.u60", 0x00000, 0x80000, CRC(94d25396) SHA1(5bfe7ddf4a5b6a541dac10c50529e025140fd8f2) ) // 27C040
ROM_REGION( 0x157, "plds", ROMREGION_ERASE00 )
ROM_LOAD( "atf20v8b.u37", 0x000, 0x157, NO_DUMP )
ROM_END
ROM_START( magjacka ) // MADE IN TAIWAN PCB NO-006E
ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code, encrypted
ROM_LOAD16_BYTE( "3.u15", 0x00000, 0x20000, CRC(7ef54fad) SHA1(d4839912a149f42b410a961f356c648521c3f42a) ) // SLDH, 27C010
ROM_LOAD16_BYTE( "2.u14", 0x00001, 0x20000, CRC(8ad958f3) SHA1(92ee2995189fc423d5f63c26db5e04ac4f09fcb1) ) // SLDH, 27C010
ROM_REGION( 0x40000, "oki", 0 )
ROM_LOAD( "1.u99", 0x00000, 0x40000, CRC(0bce2433) SHA1(2c9e9cb3ab9076e1a2eb0a58ad0079b86bf4e922) ) // 27C020
ROM_REGION( 0x80000, "reelgfx", 0 )
ROM_LOAD( "4.u58", 0x00000, 0x80000, CRC(9b630db6) SHA1(00e04e4b4207ba44617851017c1505eacfcc5375) ) // 27C040
ROM_REGION( 0x80000, "gfx2", 0 )
ROM_LOAD( "5.u59", 0x00000, 0x80000, CRC(5991a0c5) SHA1(29848eae911c47ff911a49f0b3552b0dc958a6c5) ) // 27C040
ROM_REGION( 0x80000, "gfx3", 0 )
ROM_LOAD( "6.u60", 0x00000, 0x80000, CRC(94d25396) SHA1(5bfe7ddf4a5b6a541dac10c50529e025140fd8f2) ) // 27C040
ROM_REGION( 0x157, "plds", ROMREGION_ERASE00 )
ROM_LOAD( "atf20v8b.u37", 0x000, 0x157, NO_DUMP )
ROM_END
ROM_START( magjackb ) // MADE IN TAIWAN PCB NO-006A
ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code, encrypted
ROM_LOAD16_BYTE( "3.u15", 0x00000, 0x20000, CRC(7033037a) SHA1(78f3e699094b81630afee18c897dc68ee163634f) ) // SLDH, 27C010
ROM_LOAD16_BYTE( "2.u14", 0x00001, 0x20000, CRC(926e3a96) SHA1(92bf53bf48307f5656662f2242a99a0af0eeb62d) ) // SLDH, 27C010
ROM_REGION( 0x40000, "oki", 0 )
ROM_LOAD( "1.u99", 0x00000, 0x40000, CRC(0bce2433) SHA1(2c9e9cb3ab9076e1a2eb0a58ad0079b86bf4e922) ) // 27C020
ROM_REGION( 0x80000, "reelgfx", 0 )
ROM_LOAD( "4.u58", 0x00000, 0x80000, CRC(9b630db6) SHA1(00e04e4b4207ba44617851017c1505eacfcc5375) ) // 27C040
ROM_REGION( 0x80000, "gfx2", 0 )
ROM_LOAD( "5.u59", 0x00000, 0x80000, CRC(5991a0c5) SHA1(29848eae911c47ff911a49f0b3552b0dc958a6c5) ) // 27C040
ROM_REGION( 0x80000, "gfx3", 0 )
ROM_LOAD( "6.u60", 0x00000, 0x80000, CRC(94d25396) SHA1(5bfe7ddf4a5b6a541dac10c50529e025140fd8f2) ) // 27C040
ROM_REGION( 0x157, "plds", ROMREGION_ERASE00 )
ROM_LOAD( "atf20v8b.u37", 0x000, 0x157, NO_DUMP )
ROM_END
ROM_START( magjackc ) // MADE IN TAIWAN PCB NO-006A
ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code, encrypted
ROM_LOAD16_BYTE( "3.u15", 0x00000, 0x20000, CRC(86c3adc8) SHA1(7e3ee5847f2c170c168b1d9341093e97be855526) ) // SLDH, 27C010
ROM_LOAD16_BYTE( "2.u14", 0x00001, 0x20000, CRC(e2fa5dbf) SHA1(3d68f57342fa1f70b7f0d956e8d06cb39e84d9f4) ) // SLDH, 27C010
ROM_REGION( 0x40000, "oki", 0 )
ROM_LOAD( "1.u99", 0x00000, 0x40000, CRC(bee977a7) SHA1(f924c53781e6a9b2796c23b5d9e63a62e0b75b9a) ) // SLDH, 27C020
ROM_REGION( 0x80000, "reelgfx", 0 )
ROM_LOAD( "4.u58", 0x00000, 0x80000, CRC(9b630db6) SHA1(00e04e4b4207ba44617851017c1505eacfcc5375) ) // 27C040
ROM_REGION( 0x80000, "gfx2", 0 )
ROM_LOAD( "5.u59", 0x00000, 0x80000, CRC(6a2c11cc) SHA1(0d3e32f2279a60779b228e5ee485dcdb9c27f30a) ) // SLDH, 27C040
ROM_REGION( 0x80000, "gfx3", 0 )
ROM_LOAD( "6.u60", 0x00000, 0x80000, CRC(e16a09be) SHA1(cc4124841b0fa12776bd20eb9c86e809667f3f49) ) // SLDH, 27C040
ROM_REGION( 0x157, "plds", ROMREGION_ERASE00 )
ROM_LOAD( "atf20v8b.u37", 0x000, 0x157, NO_DUMP )
ROM_END
ROM_START( magjackp )
ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code, encrypted
ROM_LOAD16_BYTE( "3.u15", 0x00000, 0x20000, CRC(c59d43c2) SHA1(a58f1a7b618956d93c27e321e64b86b12f15e3d8) ) // 27C010
ROM_LOAD16_BYTE( "2.u14", 0x00001, 0x20000, CRC(35321d52) SHA1(31049d154a68c4f65d748cc24c8b680fefe36b89) ) // 27C010
ROM_REGION( 0x40000, "oki", 0 )
ROM_LOAD( "1.u99", 0x00000, 0x40000, CRC(0bce2433) SHA1(2c9e9cb3ab9076e1a2eb0a58ad0079b86bf4e922) ) // 27C020, same as the magjack sets
ROM_REGION( 0x80000, "reelgfx", 0 )
ROM_LOAD( "4.u58", 0x00000, 0x80000, CRC(59aa4f5f) SHA1(a7d713009efe2077ff26ba3c9bbf960386a43d40) ) // 27C040
ROM_REGION( 0x80000, "gfx2", 0 )
ROM_LOAD( "5.u59", 0x00000, 0x80000, CRC(70784939) SHA1(189c7328ad76496acbbdc02edc2e949be8cff077) ) // 27C040
ROM_REGION( 0x80000, "gfx3", 0 )
ROM_LOAD( "6.u60", 0x00000, 0x80000, CRC(cc397dab) SHA1(564e442364059411038819582b5215ec83752f9a) ) // 27C040
ROM_REGION( 0x157, "plds", ROMREGION_ERASE00 )
ROM_LOAD( "atf20v8b.u37", 0x000, 0x157, NO_DUMP )
ROM_END
ROM_START( magjackpa )
ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code, encrypted
ROM_LOAD16_BYTE( "3.u15", 0x00000, 0x20000, CRC(f7c965e6) SHA1(07139219df87f174a87cd3e524c575fd98265aa8) ) // SLDH, 27C010
ROM_LOAD16_BYTE( "2.u14", 0x00001, 0x20000, CRC(7bc8c1fa) SHA1(aed37b1585ac05777495fe84ac0d76c6d1e7e377) ) // SLDH, 27C010
ROM_REGION( 0x40000, "oki", 0 )
ROM_LOAD( "1.u99", 0x00000, 0x40000, CRC(0bce2433) SHA1(2c9e9cb3ab9076e1a2eb0a58ad0079b86bf4e922) ) // 27C020, same as the magjack sets
ROM_REGION( 0x80000, "reelgfx", 0 )
ROM_LOAD( "4.u58", 0x00000, 0x80000, CRC(59aa4f5f) SHA1(a7d713009efe2077ff26ba3c9bbf960386a43d40) ) // 27C040
ROM_REGION( 0x80000, "gfx2", 0 )
ROM_LOAD( "5.u59", 0x00000, 0x80000, CRC(70784939) SHA1(189c7328ad76496acbbdc02edc2e949be8cff077) ) // 27C040
ROM_REGION( 0x80000, "gfx3", 0 )
ROM_LOAD( "6.u60", 0x00000, 0x80000, CRC(cc397dab) SHA1(564e442364059411038819582b5215ec83752f9a) ) // 27C040
ROM_REGION( 0x157, "plds", ROMREGION_ERASE00 )
ROM_LOAD( "atf20v8b.u37", 0x000, 0x157, NO_DUMP )
ROM_END
void jungleyo_state::init_jungleyo()
{
uint16_t *src = (uint16_t *)memregion("maincpu")->base();
u16 *src = (u16 *)memregion("maincpu")->base();
for (int i = 0x00000; i < 0x10000 / 2; i++)
src[i] = bitswap<16>(src[i] ^ 0x00ff, 8, 10, 15, 11, 9, 14, 12, 13, 6, 4, 2, 7, 3, 0, 1, 5);
@ -660,7 +886,7 @@ void jungleyo_state::init_jungleyo()
void jungleyo_state::init_frtgenie()
{
uint16_t *src = (uint16_t *)memregion("maincpu")->base();
u16 *src = (u16 *)memregion("maincpu")->base();
for (int i = 0x00000; i < 0x10000 / 2; i++)
src[i] = bitswap<16>(src[i] ^ 0x00ff, 11, 12, 14, 9, 10, 13, 8, 15, 5, 0, 2, 3, 6, 1, 4, 7);
@ -685,12 +911,46 @@ void jungleyo_state::init_frtgenie()
src[0x006 / 2] = 0x01f8; // reset opcode
}
template <uint16_t Reset_addr>
void jungleyo_state::init_magjack()
{
u16 *src = (u16 *)memregion("maincpu")->base();
} // Anonymous namespace
for (int i = 0x00000; i < 0x10000 / 2; i++)
src[i] = bitswap<16>(src[i] ^ 0xffff, 15, 12, 9, 13, 14, 11, 8, 10, 0, 4, 7, 1, 6, 5, 2, 3);
for (int i = 0x10000 / 2; i < 0x20000 / 2; i++)
src[i] = bitswap<16>(src[i] ^ 0x00ff, 9, 11, 14, 15, 8, 13, 10, 12, 7, 6, 1, 3, 2, 4, 0, 5);
for (int i = 0x20000 / 2; i < 0x30000 / 2; i++)
src[i] = bitswap<16>(src[i] ^ 0xff00, 12, 15, 8, 10, 13, 9, 14, 11, 2, 7, 4, 0, 1, 6, 5, 3);
for (int i = 0x30000 / 2; i < 0x40000 / 2; i++)
src[i] = bitswap<16>(src[i] ^ 0x00ff, 14, 8, 13, 11, 9, 15, 12, 10, 5, 0, 2, 6, 4, 1, 3, 7);
// TODO: Stack Pointer/Initial PC settings don't seem to decrypt correctly
// hack these until better understood (still wrong values)
src[0x000 / 2] = 0x0000;
src[0x002 / 2] = 0x0000;
src[0x004 / 2] = 0x0000;
src[0x006 / 2] = Reset_addr; // reset opcode
}
} // anonymous namespace
// version 3.02 built on 2001/02/09, there's copyright both for Yonshi and Global in strings
GAME( 2001, jungleyo, 0, jungleyo, jungleyo, jungleyo_state, init_jungleyo, ROT0, "Yonshi", "Jungle (Italy VI3.02)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
GAME( 2001, jungleyo, 0, jungleyo, jungleyo, jungleyo_state, init_jungleyo, ROT0, "Yonshi", "Jungle (Italy VI3.02)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
// first half is version 1-1-03, with copyright both for Yonshi and Global in strings, second half is version VA1.0 2001/08/15 with copyright both for Yonshi and Global in strings
GAME( 2003, frtgenie, 0, jungleyo, frtgenie, jungleyo_state, init_frtgenie, ROT0, "Global", "Fruit Genie (Version 1-1-03)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
GAME( 2003, frtgenie, 0, jungleyo, frtgenie, jungleyo_state, init_frtgenie, ROT0, "Global", "Fruit Genie (Version 1-1-03, set 1)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
GAME( 2003, frtgeniea, frtgenie, jungleyo, frtgenie, jungleyo_state, init_frtgenie, ROT0, "Global", "Fruit Genie (Version 1-1-03, set 2)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
GAME( 2003, frtgenieb, frtgenie, jungleyo, frtgenie, jungleyo_state, init_frtgenie, ROT0, "Global", "Fruit Genie (Version 1-1-03, set 3)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
GAME( 2003, frtgeniec, frtgenie, jungleyo, frtgenie, jungleyo_state, init_frtgenie, ROT0, "Global", "Fruit Genie (Version 1-1-03, set 4)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
GAME( 2002, frtgenied, frtgenie, jungleyo, frtgenie, jungleyo_state, init_jungleyo, ROT0, "Winnin World", "Fruit Genie (VT 2.11)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
GAME( 2000, magjack, 0, jungleyo, frtgenie, jungleyo_state, init_magjack<0x260>, ROT0, "Global", "Magical Jack (VA 4.00)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // 2000/09/28
GAME( 2000, magjacka, magjack, jungleyo, frtgenie, jungleyo_state, init_magjack<0x268>, ROT0, "Global", "Magical Jack (VA 3.30)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // 2000/08/04
GAME( 2000, magjackb, magjack, jungleyo, frtgenie, jungleyo_state, init_magjack<0x268>, ROT0, "Global", "Magical Jack (VA 3.11)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // 2000/06/29
GAME( 1999, magjackc, magjack, jungleyo, frtgenie, jungleyo_state, init_magjack<0x268>, ROT0, "Global", "Magical Jack (VA 2.0)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // 1999/10/28
GAME( 2001, magjackp, 0, jungleyo, frtgenie, jungleyo_state, init_magjack<0x1fe>, ROT0, "Global", "Magical Jack Plus (VA 6.03)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // 2001/07/23
GAME( 2000, magjackpa, magjackp, jungleyo, frtgenie, jungleyo_state, init_magjack<0x1fe>, ROT0, "Global", "Magical Jack Plus (VA 6.01)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // 2001/02/14

View File

@ -2918,6 +2918,8 @@ ROM_START( batlgr2 )
ROM_REGION( 0x10000, "sound_cpu", 0 ) /* Internal ROM :( */
ROM_LOAD( "e68-01.ic7", 0x000000, 0x010000, NO_DUMP )
// BATTLE GEAR 2 M9005023A VER.2.04J
// FUJITSU MPE3064AT
DISK_REGION( "ata:0:hdd" )
DISK_IMAGE( "bg2_204j", 0, SHA1(7ac100fba39ae0b93980c0af2f0212a731106912) )
ROM_END
@ -3051,7 +3053,7 @@ ROM_START( dendego3 )
DISK_IMAGE( "ddg3", 0, SHA1(468d699e02ef0a0242de4e7038613cc5d0545591) )
ROM_END
} // Anonymous namespace
} // anonymous namespace
GAME( 1999, taitotz, 0, taitotz, taitotz, taitotz_state, empty_init, ROT0, "Taito", "Type Zero BIOS", MACHINE_NO_SOUND|MACHINE_NOT_WORKING|MACHINE_IS_BIOS_ROOT )