new not working clone

-----------------------------------
Funky Jet (bootleg) [ClawGrip, Recreativas.org, The Dumping Union]
This commit is contained in:
Ivan Vangelista 2018-12-28 18:20:40 +01:00
parent ba1f737dda
commit 0d6f9037fd
3 changed files with 93 additions and 9 deletions

View File

@ -93,6 +93,7 @@ Notes:
#include "includes/funkyjet.h" #include "includes/funkyjet.h"
#include "cpu/m68000/m68000.h" #include "cpu/m68000/m68000.h"
#include "cpu/pic16c5x/pic16c5x.h"
#include "machine/decocrpt.h" #include "machine/decocrpt.h"
#include "machine/gen_latch.h" #include "machine/gen_latch.h"
#include "sound/ym2151.h" #include "sound/ym2151.h"
@ -145,6 +146,24 @@ void funkyjet_state::funkyjet_map(address_map &map)
map(0x342000, 0x342bff).ram().share("pf2_rowscroll"); map(0x342000, 0x342bff).ram().share("pf2_rowscroll");
} }
void funkyjet_state::funkyjetb_map(address_map &map)
{
map(0x000000, 0x07ffff).rom();
map(0x120000, 0x1207ff).ram().w("palette", FUNC(palette_device::write16)).share("palette");
map(0x140000, 0x143fff).ram();
map(0x160000, 0x1607ff).ram().share("spriteram");
map(0x184000, 0x184001).nopw();
map(0x188000, 0x188001).nopw();
map(0x1d0382, 0x1d0383).portr("DSW");
map(0x242102, 0x242103).portr("SYSTEM");
map(0x200000, 0x2007ff).ram(); // writes 0x180
map(0x300000, 0x30000f).w(m_deco_tilegen, FUNC(deco16ic_device::pf_control_w));
map(0x320000, 0x321fff).rw(m_deco_tilegen, FUNC(deco16ic_device::pf1_data_r), FUNC(deco16ic_device::pf1_data_w));
map(0x322000, 0x323fff).rw(m_deco_tilegen, FUNC(deco16ic_device::pf2_data_r), FUNC(deco16ic_device::pf2_data_w));
map(0x340000, 0x340bff).ram().share("pf1_rowscroll");
map(0x342000, 0x342bff).ram().share("pf2_rowscroll");
}
/******************************************************************************/ /******************************************************************************/
/* Physical memory map (21 bits) */ /* Physical memory map (21 bits) */
@ -305,7 +324,7 @@ GFXDECODE_END
MACHINE_CONFIG_START(funkyjet_state::funkyjet) MACHINE_CONFIG_START(funkyjet_state::funkyjet)
/* basic machine hardware */ /* basic machine hardware */
MCFG_DEVICE_ADD("maincpu", M68000, XTAL(28'000'000)/2) /* 28 MHz crystal */ MCFG_DEVICE_ADD(m_maincpu, M68000, XTAL(28'000'000)/2) /* 28 MHz crystal */
MCFG_DEVICE_PROGRAM_MAP(funkyjet_map) MCFG_DEVICE_PROGRAM_MAP(funkyjet_map)
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", funkyjet_state, irq6_line_hold) MCFG_DEVICE_VBLANK_INT_DRIVER("screen", funkyjet_state, irq6_line_hold)
@ -366,6 +385,21 @@ MACHINE_CONFIG_START(funkyjet_state::funkyjet)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.50) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.50)
MACHINE_CONFIG_END MACHINE_CONFIG_END
void funkyjet_state::funkyjetb(machine_config &config)
{
funkyjet(config);
m_maincpu->set_addrmap(AS_PROGRAM, &funkyjet_state::funkyjetb_map);
config.device_remove("audiocpu");
config.device_remove("ioprot");
config.device_remove("ymsnd");
// add PIC if/when decapped
}
/******************************************************************************/ /******************************************************************************/
ROM_START( funkyjet ) ROM_START( funkyjet )
@ -425,6 +459,40 @@ ROM_START( funkyjetj )
ROM_LOAD( "jh03.15h", 0x00000, 0x20000, CRC(69a0eaf7) SHA1(05038e82ee03106625f05082fe9912e16be181ee) ) /* same as jk03.15h from world set */ ROM_LOAD( "jh03.15h", 0x00000, 0x20000, CRC(69a0eaf7) SHA1(05038e82ee03106625f05082fe9912e16be181ee) ) /* same as jk03.15h from world set */
ROM_END ROM_END
ROM_START( funkyjetb )
ROM_REGION( 0x80000, "maincpu", 0 ) /* 68000 code */
ROM_LOAD16_BYTE( "4-27c020.bin", 0x00000, 0x40000, CRC(4e5bfda3) SHA1(b1bcc4ad1343d379de9a143a72a84db9830c8fa0) )
ROM_LOAD16_BYTE( "3-27c020.bin", 0x00001, 0x40000, CRC(e253e20c) SHA1(6fe1704872bf807ed24f500c997f62c880f6c5c1) )
ROM_REGION( 0x2000, "pic", 0 ) /* Sound CPU */
ROM_LOAD( "1-pic16c57-xt.bin", 0x00000, 0x2000, NO_DUMP ) // protected
ROM_REGION( 0x080000, "gfx1", 0 )
ROM_LOAD16_BYTE( "5-27c020.bin", 0x000000, 0x40000, CRC(f75ff923) SHA1(4177e94ba1e3a82861d0277ba5d0abc24482ffe2) )
ROM_LOAD16_BYTE( "6-27c020.bin", 0x000001, 0x40000, CRC(91a2bcb5) SHA1(c659b5deff2a4b2b69bddb956a3df1ed79a50ab0) )
ROM_REGION( 0x100000, "gfx2", 0 )
ROM_LOAD16_BYTE( "8-27c020.bin", 0x000000, 0x40000, CRC(49aab1d6) SHA1(2c215df271af1d49eeff472298e7aa00879c1799) ) /* sprites */
ROM_LOAD16_BYTE( "7-27c020.bin", 0x000001, 0x40000, CRC(f6e362bf) SHA1(8e5c82eb19b8948f064360215107311efa9ea12f) )
ROM_LOAD16_BYTE( "10-27c020.bin", 0x080000, 0x40000, CRC(ffe70cc2) SHA1(e81720c86ea0df7554af060dae66901bf612b4db) )
ROM_LOAD16_BYTE( "9-27c020.bin", 0x080001, 0x40000, CRC(d13437a6) SHA1(cc848e5e8cc91f6fb5c1de219cc1db57b84337a9) )
ROM_REGION( 0x80000, "oki", 0 ) /* ADPCM samples */
ROM_LOAD( "2-27c4001.bin", 0x00000, 0x80000, CRC(7dbc988b) SHA1(0bf89e651a992672ee4041addc9c4614b475c48a) )
ROM_REGION( 0x1600, "plds", ROMREGION_ERASE00 )
ROM_LOAD( "p1-palce16v8h-25pc.bin", 0x0000, 0x0117, CRC(bb8f5dd6) SHA1(b09f36293f7b4ae30b8bebebcca6457a64b87d0f) )
ROM_LOAD( "p2-palce22v10h-25pc.bin", 0x0200, 0x02dd, CRC(d53c01da) SHA1(e90eaa95a8b429643cfb0bce7dff86e850ec01d8) )
ROM_LOAD( "p3-palce22v10h-25pc.bin", 0x0500, 0x02dd, CRC(5c0b43af) SHA1(ef5cfabde32063707c97a9aed63f8bf1bde2cb6d) )
ROM_LOAD( "p4-palce16v8h-25pc.bin", 0x0800, 0x0117, CRC(36749fe3) SHA1(d2a88d5c2d3d32aeade59d5c4e4474982d19447e) )
ROM_LOAD( "p5-palce20v8h-25pc.bin", 0x0a00, 0x0157, CRC(1c9b6557) SHA1(ceb78bf78e511251143984626f6b8421e5d627d5) )
ROM_LOAD( "p6-palce16v8h-25pc.bin", 0x0c00, 0x0117, CRC(76b06a9a) SHA1(32a5d5d6ce4819ae5cceb6499f5f95b77e6b4f33) )
ROM_LOAD( "p7-palce16v8h-25pc.bin", 0x0e00, 0x0117, CRC(070f48ec) SHA1(51fed4c1072762f4a4d2c0706d6a6cab4c769376) )
ROM_LOAD( "p8-palce16v8h-25pc.bin", 0x1000, 0x0117, CRC(747270a6) SHA1(7ec39a172400e536bd4136250f8ec391c6b1320f) )
ROM_LOAD( "p9-palce16v8h-25pc.bin", 0x1000, 0x0117, CRC(954b7413) SHA1(207972f0021f26b5b99f6b96eb650cc3213ae490) )
ROM_LOAD( "p10-hy18cv8s-25.bin", 0x1400, 0x0155, CRC(6dc83459) SHA1(1121aaedf1f913cccae81dcc1f95e20c24d263fb) )
ROM_END
ROM_START( sotsugyo ) ROM_START( sotsugyo )
ROM_REGION( 0x80000, "maincpu", 0 ) /* 68000 code */ ROM_REGION( 0x80000, "maincpu", 0 ) /* 68000 code */
ROM_LOAD16_BYTE( "03.12f", 0x00000, 0x40000, CRC(d175dfd1) SHA1(61c91d5e20b0492e6ac3b19fe9639eb4f169ae77) ) ROM_LOAD16_BYTE( "03.12f", 0x00000, 0x40000, CRC(d175dfd1) SHA1(61c91d5e20b0492e6ac3b19fe9639eb4f169ae77) )
@ -449,9 +517,21 @@ void funkyjet_state::init_funkyjet()
deco74_decrypt_gfx(machine(), "gfx1"); deco74_decrypt_gfx(machine(), "gfx1");
} }
void funkyjet_state::init_funkyjetb()
{
// prearrange chars in the expected format
uint8_t* gfx1 = memregion("gfx1")->base();
uint8_t buf[0x80000];
memcpy(buf, gfx1, 0x80000);
for (int i = 0; i < 0x80000; i++)
gfx1[i] = buf[i^0x20];
}
/******************************************************************************/ /******************************************************************************/
GAME( 1992, funkyjet, 0, funkyjet, funkyjet, funkyjet_state, init_funkyjet, ROT0, "Mitchell", "Funky Jet (World, rev 1)", MACHINE_SUPPORTS_SAVE ) GAME( 1992, funkyjet, 0, funkyjet, funkyjet, funkyjet_state, init_funkyjet, ROT0, "Mitchell", "Funky Jet (World, rev 1)", MACHINE_SUPPORTS_SAVE )
GAME( 1992, funkyjeta, funkyjet, funkyjet, funkyjet, funkyjet_state, init_funkyjet, ROT0, "Mitchell", "Funky Jet (World)", MACHINE_SUPPORTS_SAVE ) GAME( 1992, funkyjeta, funkyjet, funkyjet, funkyjet, funkyjet_state, init_funkyjet, ROT0, "Mitchell", "Funky Jet (World)", MACHINE_SUPPORTS_SAVE )
GAME( 1992, funkyjetj, funkyjet, funkyjet, funkyjetj, funkyjet_state, init_funkyjet, ROT0, "Mitchell (Data East Corporation license)", "Funky Jet (Japan, rev 2)", MACHINE_SUPPORTS_SAVE ) GAME( 1992, funkyjetj, funkyjet, funkyjet, funkyjetj, funkyjet_state, init_funkyjet, ROT0, "Mitchell (Data East Corporation license)", "Funky Jet (Japan, rev 2)", MACHINE_SUPPORTS_SAVE )
GAME( 1995, sotsugyo, 0, funkyjet, sotsugyo, funkyjet_state, init_funkyjet, ROT0, "Mitchell (Atlus license)", "Sotsugyo Shousho", MACHINE_SUPPORTS_SAVE ) GAME( 1992, funkyjetb, funkyjet, funkyjetb, funkyjetj, funkyjet_state, init_funkyjetb, ROT0, "bootleg", "Funky Jet (bootleg)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // no backgrounds, inputs not working, undumped PIC driving an OKI
GAME( 1995, sotsugyo, 0, funkyjet, sotsugyo, funkyjet_state, init_funkyjet, ROT0, "Mitchell (Atlus license)", "Sotsugyo Shousho", MACHINE_SUPPORTS_SAVE )

View File

@ -18,8 +18,8 @@ public:
funkyjet_state(const machine_config &mconfig, device_type type, const char *tag) funkyjet_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag) : driver_device(mconfig, type, tag)
, m_spriteram(*this, "spriteram") , m_spriteram(*this, "spriteram")
, m_deco146(*this, "ioprot")
, m_pf_rowscroll(*this, "pf%u_rowscroll", 1) , m_pf_rowscroll(*this, "pf%u_rowscroll", 1)
, m_deco146(*this, "ioprot")
, m_sprgen(*this, "spritegen") , m_sprgen(*this, "spritegen")
, m_maincpu(*this, "maincpu") , m_maincpu(*this, "maincpu")
, m_audiocpu(*this, "audiocpu") , m_audiocpu(*this, "audiocpu")
@ -27,24 +27,27 @@ public:
{ } { }
void funkyjet(machine_config &config); void funkyjet(machine_config &config);
void funkyjetb(machine_config &config);
void init_funkyjet(); void init_funkyjet();
void init_funkyjetb();
private: private:
/* memory pointers */ /* memory pointers */
required_shared_ptr<uint16_t> m_spriteram; required_shared_ptr<uint16_t> m_spriteram;
required_device<deco146_device> m_deco146;
required_shared_ptr_array<uint16_t, 2> m_pf_rowscroll; required_shared_ptr_array<uint16_t, 2> m_pf_rowscroll;
required_device<decospr_device> m_sprgen;
/* devices */ /* devices */
optional_device<deco146_device> m_deco146;
required_device<decospr_device> m_sprgen;
required_device<cpu_device> m_maincpu; required_device<cpu_device> m_maincpu;
required_device<h6280_device> m_audiocpu; optional_device<h6280_device> m_audiocpu;
required_device<deco16ic_device> m_deco_tilegen; required_device<deco16ic_device> m_deco_tilegen;
uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
DECLARE_READ16_MEMBER( funkyjet_protection_region_0_146_r ); DECLARE_READ16_MEMBER( funkyjet_protection_region_0_146_r );
DECLARE_WRITE16_MEMBER( funkyjet_protection_region_0_146_w ); DECLARE_WRITE16_MEMBER( funkyjet_protection_region_0_146_w );
void funkyjet_map(address_map &map); void funkyjet_map(address_map &map);
void funkyjetb_map(address_map &map);
void sound_map(address_map &map); void sound_map(address_map &map);
}; };

View File

@ -13097,6 +13097,7 @@ skylancre // (c) 1983 Orca + Esco Trading Co license
@source:funkyjet.cpp @source:funkyjet.cpp
funkyjet // MAT (c) 1992 Data East (Mitchell license) (World, Rev 1) funkyjet // MAT (c) 1992 Data East (Mitchell license) (World, Rev 1)
funkyjeta // MAT (c) 1992 Data East (Mitchell license) (World) - Rev unverified funkyjeta // MAT (c) 1992 Data East (Mitchell license) (World) - Rev unverified
funkyjetb // bootleg
funkyjetj // MAT (c) 1992 Data East (Mitchell license) (Japan, Rev 2) funkyjetj // MAT (c) 1992 Data East (Mitchell license) (Japan, Rev 2)
sotsugyo // (c) 1995 Mitchell (Atlus license) sotsugyo // (c) 1995 Mitchell (Atlus license)