diff options
Diffstat (limited to 'src/mame/drivers/gijoe.cpp')
-rw-r--r-- | src/mame/drivers/gijoe.cpp | 489 |
1 files changed, 0 insertions, 489 deletions
diff --git a/src/mame/drivers/gijoe.cpp b/src/mame/drivers/gijoe.cpp deleted file mode 100644 index b2359cbdc59..00000000000 --- a/src/mame/drivers/gijoe.cpp +++ /dev/null @@ -1,489 +0,0 @@ -// license:BSD-3-Clause -// copyright-holders:Olivier Galibert -/*************************************************************************** - - G.I. Joe (c) 1992 Konami - - -G.I. Joe -Konami 1992 - -PCB Layout ----------- -GX069 PWB352065B -|--------------------------------------------------------| -|LA4705 069A04.1E 069A05.1H | -| 84256 069A06.2H | -| 054986A |------| 069A07.4H | -| Z80E |054539| 069A08.6H | -|CN6 | | | -| 8416 | | |------| |------| | -| 051550 |------| |053246| |053247A | -| 069A01.7C | | | | | -| 32MHz | | | | | -|J ER5911.7D 18.432MHz | | | | | -|A 052535 |------------| |------| |------| | -|M | 68000 | | -|M 052535 | | 5168 | -|A |------------| 5168 | -| 052535 84256 | -| | -| 069A12.13E |------| |------| | -| 8416 |054157| |054156| | -| 069UAB03.14E |------| | | | | | -| 8416 |053251| | | | | | -| TEST_SW 84256 | | | | | | | -| |------| |------| |------| | -|005273(X10) 069A11.16E | -| 5168 | -| CN9 069UAB02.18E 069A09.16J 5168 | -| CN8 DSW(4) 24MHz 069A10.18J 5168 | -|--------------------------------------------------------| -Notes: - 68000 - Clock 16.000MHz [32/2] - Z80E - Clock 8.000MHz [32/4] - 8416 - Fujitsu MB8416 2kx8 SRAM (DIP24) - 84256 - Fujitsu MB84256 32kx8 SRAM (DIP28) - 5168 - Sharp LH5168 8kx8 SRAM (DIP28) - ER5911 - EEPROM (128 bytes) - CN6 - 4 pin connector for stereo sound output - CN8/CN9 - 15 pin connectors for player 3 & player 4 controls - 069* - EPROM/mask ROM - LA4705 - 15W 2-channel BTL audio power AMP - - Custom Chips - ------------ - 053251 - Priority encoder - 054157 \ - 054156 / Tilemap generators - 053246 \ - 053247A / Sprite generators - 054539 - 8-Channel ADPCM sound generator. Clock input 18.432MHz. Clock outputs 18.432/4 & 18.432/8 - 052535 - Video DAC (one for each R,G,B video signal) - 051550 - EMI filter for credit/coin counter - 005273 - Resistor array for player 3 & player 4 controls - 054986A - Audio DAC/filter + sound latch + Z80 memory mapper/banker (large ceramic SDIP64 module) - This module contains several surface mounted capacitors and resistors, 4558 OP amp, - Analog Devices AD1868 dual 18-bit audio DAC and a Konami 054321 QFP44 IC. - - Sync Measurements - ----------------- - HSync - 15.2036kHz - VSync - 59.6374Hz - - -**************************************************************************** - -Change Log ----------- - -AT070403: - -tilemap.h,tilemap.cpp -- added tilemap_get_transparency_data() for transparency cache manipulation - -video\konamiic.cpp -- added preliminary K056832 tilemap<->linemap switching and tileline code - -drivers\gijoe.cpp -- updated video settings, memory map and irq handler -- added object blitter - -video\gijoe.cpp -- completed K054157 to K056832 migration -- added ground scroll emulation -- fixed sprite and BG priority -- improved shadows and layer alignment - - -Known Issues ------------- - -- sprite gaps (K053247 zoom fraction rounding) -- shadow masking (eg. the shadow of Baroness' aircraft should not project on the sky) - -***************************************************************************/ - -#include "emu.h" -#include "includes/gijoe.h" -#include "includes/konamipt.h" - -#include "cpu/m68000/m68000.h" -#include "cpu/z80/z80.h" -#include "machine/eepromser.h" -#include "sound/k054539.h" -#include "speaker.h" - - -#define JOE_DEBUG 0 -#define JOE_DMADELAY (attotime::from_nsec(42700 + 341300)) - - -READ16_MEMBER(gijoe_state::control2_r) -{ - return m_cur_control2; -} - -WRITE16_MEMBER(gijoe_state::control2_w) -{ - if (ACCESSING_BITS_0_7) - { - /* bit 0 is data */ - /* bit 1 is cs (active low) */ - /* bit 2 is clock (active high) */ - /* bit 3 (unknown: coin) */ - /* bit 5 is enable irq 6 */ - /* bit 7 (unknown: enable irq 5?) */ - ioport("EEPROMOUT")->write(data, 0xff); - - m_cur_control2 = data; - - /* bit 6 = enable sprite ROM reading */ - m_k053246->k053246_set_objcha_line( (data & 0x0040) ? ASSERT_LINE : CLEAR_LINE); - } -} - -void gijoe_state::gijoe_objdma( ) -{ - uint16_t *src_head, *src_tail, *dst_head, *dst_tail; - - src_head = m_spriteram; - src_tail = m_spriteram + 255 * 8; - m_k053246->k053247_get_ram( &dst_head); - dst_tail = dst_head + 255 * 8; - - for (; src_head <= src_tail; src_head += 8) - { - if (*src_head & 0x8000) - { - memcpy(dst_head, src_head, 0x10); - dst_head += 8; - } - else - { - *dst_tail = 0; - dst_tail -= 8; - } - } -} - -TIMER_CALLBACK_MEMBER(gijoe_state::dmaend_callback) -{ - if (m_cur_control2 & 0x0020) - m_maincpu->set_input_line(6, HOLD_LINE); -} - -INTERRUPT_GEN_MEMBER(gijoe_state::gijoe_interrupt) -{ - // global interrupt masking (*this game only) - if (!m_k056832->is_irq_enabled(0)) - return; - - if (m_k053246->k053246_is_irq_enabled()) - { - gijoe_objdma(); - - // 42.7us(clr) + 341.3us(xfer) delay at 6Mhz dotclock - m_dmadelay_timer->adjust(JOE_DMADELAY); - } - - // trigger V-blank interrupt - if (m_cur_control2 & 0x0080) - device.execute().set_input_line(5, HOLD_LINE); -} - -WRITE16_MEMBER(gijoe_state::sound_irq_w) -{ - m_audiocpu->set_input_line(0, HOLD_LINE); -} - -void gijoe_state::gijoe_map(address_map &map) -{ - map(0x000000, 0x0fffff).rom(); - map(0x100000, 0x100fff).ram().share("spriteram"); // Sprites - map(0x110000, 0x110007).w(m_k053246, FUNC(k053247_device::k053246_w)); - map(0x120000, 0x121fff).rw(m_k056832, FUNC(k056832_device::ram_word_r), FUNC(k056832_device::ram_word_w)); // Graphic planes - map(0x122000, 0x123fff).rw(m_k056832, FUNC(k056832_device::ram_word_r), FUNC(k056832_device::ram_word_w)); // Graphic planes mirror read - map(0x130000, 0x131fff).r(m_k056832, FUNC(k056832_device::rom_word_r)); // Passthrough to tile roms - map(0x160000, 0x160007).w(m_k056832, FUNC(k056832_device::b_word_w)); // VSCCS (board dependent) - map(0x170000, 0x170001).nopw(); // Watchdog - map(0x180000, 0x18ffff).ram().share("workram"); // Main RAM. Spec. 180000-1803ff, 180400-187fff - map(0x190000, 0x190fff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette"); - map(0x1a0000, 0x1a001f).w(m_k053251, FUNC(k053251_device::write)).umask16(0x00ff); - map(0x1b0000, 0x1b003f).w(m_k056832, FUNC(k056832_device::word_w)); - map(0x1c0000, 0x1c001f).m(m_k054321, FUNC(k054321_device::main_map)).umask16(0x00ff); - map(0x1d0000, 0x1d0001).w(FUNC(gijoe_state::sound_irq_w)); - map(0x1e0000, 0x1e0001).portr("P1_P2"); - map(0x1e0002, 0x1e0003).portr("P3_P4"); - map(0x1e4000, 0x1e4001).portr("SYSTEM"); - map(0x1e4002, 0x1e4003).portr("START"); - map(0x1e8000, 0x1e8001).rw(FUNC(gijoe_state::control2_r), FUNC(gijoe_state::control2_w)); - map(0x1f0000, 0x1f0001).r(m_k053246, FUNC(k053247_device::k053246_r)); -#if JOE_DEBUG - map(0x110000, 0x110007).r(m_k053246, FUNC(k053247_device::k053246_read_register)); - map(0x160000, 0x160007).r(m_k056832, FUNC(k056832_device::b_word_r)); - map(0x1a0000, 0x1a001f).r(m_k053251, FUNC(k053251_device::read)).umask16(0x00ff); - map(0x1b0000, 0x1b003f).r(m_k056832, FUNC(k056832_device::word_r)); -#endif -} - -void gijoe_state::sound_map(address_map &map) -{ - map(0xf000, 0xf7ff).ram(); - map(0xf800, 0xfa2f).rw(m_k054539, FUNC(k054539_device::read), FUNC(k054539_device::write)); - map(0xfc00, 0xfc03).m(m_k054321, FUNC(k054321_device::sound_map)); - map(0x0000, 0xefff).rom(); -} - -static INPUT_PORTS_START( gijoe ) - PORT_START("START") - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_START3 ) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_START4 ) - PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_er5911_device, do_read) - PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_er5911_device, ready_read) - PORT_SERVICE_NO_TOGGLE( 0x0800, IP_ACTIVE_LOW ) - - PORT_START("EEPROMOUT") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_er5911_device, di_write) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_er5911_device, cs_write) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_er5911_device, clk_write) - - PORT_START("SYSTEM") - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_COIN3 ) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_COIN4 ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_SERVICE2 ) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_SERVICE3 ) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_SERVICE4 ) - - PORT_START("P1_P2") - KONAMI16_LSB_40(1, IPT_BUTTON3 ) PORT_OPTIONAL - PORT_DIPNAME( 0x0080, 0x0000, "Sound" ) PORT_DIPLOCATION("SW1:1") - PORT_DIPSETTING( 0x0080, DEF_STR( Mono ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Stereo ) ) - KONAMI16_MSB_40(2, IPT_BUTTON3 ) PORT_OPTIONAL - PORT_DIPNAME( 0x8000, 0x8000, "Coin mechanism" ) PORT_DIPLOCATION("SW1:2") - PORT_DIPSETTING( 0x8000, "Common" ) - PORT_DIPSETTING( 0x0000, "Independent" ) - - PORT_START("P3_P4") - KONAMI16_LSB_40(3, IPT_BUTTON3 ) PORT_OPTIONAL - PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Players ) ) PORT_DIPLOCATION("SW1:3") - PORT_DIPSETTING( 0x0080, "2" ) - PORT_DIPSETTING( 0x0000, "4" ) - KONAMI16_MSB_40(4, IPT_BUTTON3 ) PORT_OPTIONAL - PORT_DIPUNUSED_DIPLOC( 0x8000, 0x8000, "SW1:4" ) /* Listed as "Unused" */ -INPUT_PORTS_END - -void gijoe_state::machine_start() -{ - m_dmadelay_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(gijoe_state::dmaend_callback),this)); - - save_item(NAME(m_cur_control2)); -} - -void gijoe_state::machine_reset() -{ - m_cur_control2 = 0; -} - -void gijoe_state::gijoe(machine_config &config) -{ - /* basic machine hardware */ - M68000(config, m_maincpu, XTAL(32'000'000)/2); /* 16MHz Confirmed */ - m_maincpu->set_addrmap(AS_PROGRAM, &gijoe_state::gijoe_map); - m_maincpu->set_vblank_int("screen", FUNC(gijoe_state::gijoe_interrupt)); - - Z80(config, m_audiocpu, XTAL(32'000'000)/4); /* Amuse & confirmed. Z80E at 8MHz */ - m_audiocpu->set_addrmap(AS_PROGRAM, &gijoe_state::sound_map); - - EEPROM_ER5911_8BIT(config, "eeprom"); - - /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); - screen.set_video_attributes(VIDEO_UPDATE_BEFORE_VBLANK); - screen.set_refresh_hz(60); - screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); - screen.set_size(64*8, 32*8); - screen.set_visarea(24, 24+288-1, 16, 16+224-1); - screen.set_screen_update(FUNC(gijoe_state::screen_update_gijoe)); - screen.set_palette("palette"); - - PALETTE(config, "palette").set_format(palette_device::xBGR_555, 2048).enable_shadows(); - - K056832(config, m_k056832, 0); - m_k056832->set_tile_callback(FUNC(gijoe_state::tile_callback)); - m_k056832->set_config(K056832_BPP_4, 1, 0); - m_k056832->set_palette(m_palette); - - K053246(config, m_k053246, 0); - m_k053246->set_sprite_callback(FUNC(gijoe_state::sprite_callback)); - m_k053246->set_config(NORMAL_PLANE_ORDER, -37, 20); - m_k053246->set_palette(m_palette); - - K053251(config, m_k053251, 0); - - /* sound hardware */ - SPEAKER(config, "lspeaker").front_left(); - SPEAKER(config, "rspeaker").front_right(); - - K054321(config, m_k054321, "lspeaker", "rspeaker"); - - k054539_device &k054539(K054539(config, "k054539", XTAL(18'432'000))); - k054539.timer_handler().set_inputline("audiocpu", INPUT_LINE_NMI); - k054539.add_route(0, "rspeaker", 1.0); - k054539.add_route(1, "lspeaker", 1.0); -} - - -ROM_START( gijoe ) - ROM_REGION( 0x100000, "maincpu", 0 ) - ROM_LOAD16_BYTE( "069eab03.14e", 0x000000, 0x40000, CRC(dd2d533f) SHA1(6fc9f7a8fc89155ef2b9ee43fe5e456d9b574f8c) ) - ROM_LOAD16_BYTE( "069eab02.18e", 0x000001, 0x40000, CRC(6bb11c87) SHA1(86581d24f73f2e837f1d4fc5f1f2188f610c50b6) ) - ROM_LOAD16_BYTE( "069a12.13e", 0x080000, 0x40000, CRC(75a7585c) SHA1(443d6dee99edbe81ab1b7289e6cad403fe01cc0d) ) - ROM_LOAD16_BYTE( "069a11.16e", 0x080001, 0x40000, CRC(3153e788) SHA1(fde4543eac707ef24b431e64011cf0f923d4d3ac) ) - - ROM_REGION( 0x010000, "audiocpu", 0 ) - ROM_LOAD( "069a01.7c", 0x000000, 0x010000, CRC(74172b99) SHA1(f5e0e0d43317454fdacd3df7cd3035fcae4aef68) ) - - ROM_REGION( 0x200000, "k056832", 0 ) - ROM_LOAD32_WORD( "069a10.18j", 0x000000, 0x100000, CRC(4c6743ee) SHA1(fa94fbfb55955fdb40705e79b49103676961d919) ) - ROM_LOAD32_WORD( "069a09.16j", 0x000002, 0x100000, CRC(e6e36b05) SHA1(fecad503f2c285b2b0312e888c06dd6e87f95a07) ) - - ROM_REGION( 0x400000, "k053246", 0 ) - ROM_LOAD64_WORD( "069a08.6h", 0x000000, 0x100000, CRC(325477d4) SHA1(140c57b0ac9e5cf702d788f416408a5eeb5d6d3c) ) - ROM_LOAD64_WORD( "069a05.1h", 0x000002, 0x100000, CRC(c4ab07ed) SHA1(dc806eff00937d9465b1726fae8fdc3022464a28) ) - ROM_LOAD64_WORD( "069a07.4h", 0x000004, 0x100000, CRC(ccaa3971) SHA1(16989cbbd65fe1b41c4a85fea02ba1e9880818a9) ) - ROM_LOAD64_WORD( "069a06.2h", 0x000006, 0x100000, CRC(63eba8e1) SHA1(aa318d356c2580765452106ea0d2228273a90523) ) - - ROM_REGION( 0x200000, "k054539", 0 ) - ROM_LOAD( "069a04.1e", 0x000000, 0x200000, CRC(11d6dcd6) SHA1(04cbff9f61cd8641db538db809ddf20da29fd5ac) ) - - ROM_REGION( 0x80, "eeprom", 0 ) // default eeprom to prevent game booting upside down with error - ROM_LOAD( "er5911.7d", 0x0000, 0x080, CRC(a0d50a79) SHA1(972533ea45a0e84d9dd14c55f58cd7247926792e) ) -ROM_END - -// this set is strange, instead of showing program OK it shows the location and checksums of the ROMs -// this doesn't indicate failure, as if you hack the parent set it will show the checksum and the word 'BAD' and refuse to boot -// It will boot as whatever version string is in the EEPROM. If no version string is in the EEPROM it just shows a blank string -// If you factory default it you get the string 'EB8' -// the roms had no proper labels -// maybe it's some interim / test revision -ROM_START( gijoeea ) - ROM_REGION( 0x100000, "maincpu", 0 ) - ROM_LOAD16_BYTE( "rom3.14e", 0x000000, 0x40000, CRC(0a11f63a) SHA1(06174682907e718017146665b8636be20843b119) ) - ROM_LOAD16_BYTE( "rom2.18e", 0x000001, 0x40000, CRC(8313c559) SHA1(00ae945c65439d4092eaa1780a182dbe3753bb02) ) - ROM_LOAD16_BYTE( "069a12.13e", 0x080000, 0x40000, CRC(75a7585c) SHA1(443d6dee99edbe81ab1b7289e6cad403fe01cc0d) ) - ROM_LOAD16_BYTE( "069a11.16e", 0x080001, 0x40000, CRC(3153e788) SHA1(fde4543eac707ef24b431e64011cf0f923d4d3ac) ) - - ROM_REGION( 0x010000, "audiocpu", 0 ) - ROM_LOAD( "069a01.7c", 0x000000, 0x010000, CRC(74172b99) SHA1(f5e0e0d43317454fdacd3df7cd3035fcae4aef68) ) - - ROM_REGION( 0x200000, "k056832", 0 ) - ROM_LOAD32_WORD( "069a10.18j", 0x000000, 0x100000, CRC(4c6743ee) SHA1(fa94fbfb55955fdb40705e79b49103676961d919) ) - ROM_LOAD32_WORD( "069a09.16j", 0x000002, 0x100000, CRC(e6e36b05) SHA1(fecad503f2c285b2b0312e888c06dd6e87f95a07) ) - - ROM_REGION( 0x400000, "k053246", 0 ) - ROM_LOAD64_WORD( "069a08.6h", 0x000000, 0x100000, CRC(325477d4) SHA1(140c57b0ac9e5cf702d788f416408a5eeb5d6d3c) ) - ROM_LOAD64_WORD( "069a05.1h", 0x000002, 0x100000, CRC(c4ab07ed) SHA1(dc806eff00937d9465b1726fae8fdc3022464a28) ) - ROM_LOAD64_WORD( "069a07.4h", 0x000004, 0x100000, CRC(ccaa3971) SHA1(16989cbbd65fe1b41c4a85fea02ba1e9880818a9) ) - ROM_LOAD64_WORD( "069a06.2h", 0x000006, 0x100000, CRC(63eba8e1) SHA1(aa318d356c2580765452106ea0d2228273a90523) ) - - ROM_REGION( 0x200000, "k054539", 0 ) - ROM_LOAD( "069a04.1e", 0x000000, 0x200000, CRC(11d6dcd6) SHA1(04cbff9f61cd8641db538db809ddf20da29fd5ac) ) - - ROM_REGION( 0x80, "eeprom", 0 ) // default eeprom - ROM_LOAD( "er5911.7d", 0x0000, 0x080, CRC(64f5c87b) SHA1(af81abc54eb59ef7d2250b5ab6cc9642fbd9bfb2) ) // sldh -ROM_END - -ROM_START( gijoeu ) - ROM_REGION( 0x100000, "maincpu", 0 ) - ROM_LOAD16_BYTE( "069uab03.14e", 0x000000, 0x40000, CRC(25ff77d2) SHA1(bea2ae975718806698fd35ef1217bd842b2b69ec) ) - ROM_LOAD16_BYTE( "069uab02.18e", 0x000001, 0x40000, CRC(31cced1c) SHA1(3df1def671966b3c3d8117ac1b68adeeef9d98c0) ) - ROM_LOAD16_BYTE( "069a12.13e", 0x080000, 0x40000, CRC(75a7585c) SHA1(443d6dee99edbe81ab1b7289e6cad403fe01cc0d) ) - ROM_LOAD16_BYTE( "069a11.16e", 0x080001, 0x40000, CRC(3153e788) SHA1(fde4543eac707ef24b431e64011cf0f923d4d3ac) ) - - ROM_REGION( 0x010000, "audiocpu", 0 ) - ROM_LOAD( "069a01.7c", 0x000000, 0x010000, CRC(74172b99) SHA1(f5e0e0d43317454fdacd3df7cd3035fcae4aef68) ) - - ROM_REGION( 0x200000, "k056832", 0 ) - ROM_LOAD32_WORD( "069a10.18j", 0x000000, 0x100000, CRC(4c6743ee) SHA1(fa94fbfb55955fdb40705e79b49103676961d919) ) - ROM_LOAD32_WORD( "069a09.16j", 0x000002, 0x100000, CRC(e6e36b05) SHA1(fecad503f2c285b2b0312e888c06dd6e87f95a07) ) - - ROM_REGION( 0x400000, "k053246", 0 ) - ROM_LOAD64_WORD( "069a08.6h", 0x000000, 0x100000, CRC(325477d4) SHA1(140c57b0ac9e5cf702d788f416408a5eeb5d6d3c) ) - ROM_LOAD64_WORD( "069a05.1h", 0x000002, 0x100000, CRC(c4ab07ed) SHA1(dc806eff00937d9465b1726fae8fdc3022464a28) ) - ROM_LOAD64_WORD( "069a07.4h", 0x000004, 0x100000, CRC(ccaa3971) SHA1(16989cbbd65fe1b41c4a85fea02ba1e9880818a9) ) - ROM_LOAD64_WORD( "069a06.2h", 0x000006, 0x100000, CRC(63eba8e1) SHA1(aa318d356c2580765452106ea0d2228273a90523) ) - - ROM_REGION( 0x200000, "k054539", 0 ) - ROM_LOAD( "069a04.1e", 0x000000, 0x200000, CRC(11d6dcd6) SHA1(04cbff9f61cd8641db538db809ddf20da29fd5ac) ) - - ROM_REGION( 0x80, "eeprom", 0 ) // default eeprom to prevent game booting upside down with error - ROM_LOAD( "er5911.7d", 0x0000, 0x080, CRC(ca966023) SHA1(6f07ece0f95213bc12387192986f468d23dfdfc8) ) // sldh -ROM_END - -ROM_START( gijoej ) - ROM_REGION( 0x100000, "maincpu", 0 ) - ROM_LOAD16_BYTE( "069jaa03.14e", 0x000000, 0x40000, CRC(4b398901) SHA1(98fcc6ae9cc69c67d82eb1a7ab0bb71e61aee623) ) - ROM_LOAD16_BYTE( "069jaa02.18e", 0x000001, 0x40000, CRC(8bb22392) SHA1(9f066ce2b529f7dad6f80a91fff266c478d56414) ) - ROM_LOAD16_BYTE( "069a12.13e", 0x080000, 0x40000, CRC(75a7585c) SHA1(443d6dee99edbe81ab1b7289e6cad403fe01cc0d) ) - ROM_LOAD16_BYTE( "069a11.16e", 0x080001, 0x40000, CRC(3153e788) SHA1(fde4543eac707ef24b431e64011cf0f923d4d3ac) ) - - ROM_REGION( 0x010000, "audiocpu", 0 ) - ROM_LOAD( "069a01.7c", 0x000000, 0x010000, CRC(74172b99) SHA1(f5e0e0d43317454fdacd3df7cd3035fcae4aef68) ) - - ROM_REGION( 0x200000, "k056832", 0 ) - ROM_LOAD32_WORD( "069a10.18j", 0x000000, 0x100000, CRC(4c6743ee) SHA1(fa94fbfb55955fdb40705e79b49103676961d919) ) - ROM_LOAD32_WORD( "069a09.16j", 0x000002, 0x100000, CRC(e6e36b05) SHA1(fecad503f2c285b2b0312e888c06dd6e87f95a07) ) - - ROM_REGION( 0x400000, "k053246", 0 ) - ROM_LOAD64_WORD( "069a08.6h", 0x000000, 0x100000, CRC(325477d4) SHA1(140c57b0ac9e5cf702d788f416408a5eeb5d6d3c) ) - ROM_LOAD64_WORD( "069a05.1h", 0x000002, 0x100000, CRC(c4ab07ed) SHA1(dc806eff00937d9465b1726fae8fdc3022464a28) ) - ROM_LOAD64_WORD( "069a07.4h", 0x000004, 0x100000, CRC(ccaa3971) SHA1(16989cbbd65fe1b41c4a85fea02ba1e9880818a9) ) - ROM_LOAD64_WORD( "069a06.2h", 0x000006, 0x100000, CRC(63eba8e1) SHA1(aa318d356c2580765452106ea0d2228273a90523) ) - - ROM_REGION( 0x200000, "k054539", 0 ) - ROM_LOAD( "069a04.1e", 0x000000, 0x200000, CRC(11d6dcd6) SHA1(04cbff9f61cd8641db538db809ddf20da29fd5ac) ) - - ROM_REGION( 0x80, "eeprom", 0 ) // default eeprom to prevent game booting upside down with error - ROM_LOAD( "er5911.7d", 0x0000, 0x080, CRC(c914fcf2) SHA1(b4f0a0b5d6d4075b004b061336d162336ce1a754) ) // sldh -ROM_END - -ROM_START( gijoea ) - ROM_REGION( 0x100000, "maincpu", 0 ) - ROM_LOAD16_BYTE( "069aa03.14e", 0x000000, 0x40000, CRC(74355c6e) SHA1(01d7b5994c5b9b6e87fb9a35ffed9cc540cfcd05) ) - ROM_LOAD16_BYTE( "069aa02.18e", 0x000001, 0x40000, CRC(d3dd0397) SHA1(6caac73d259ff6707ded2457b4968d3d0a3c4eb3) ) - ROM_LOAD16_BYTE( "069a12.13e", 0x080000, 0x40000, CRC(75a7585c) SHA1(443d6dee99edbe81ab1b7289e6cad403fe01cc0d) ) - ROM_LOAD16_BYTE( "069a11.16e", 0x080001, 0x40000, CRC(3153e788) SHA1(fde4543eac707ef24b431e64011cf0f923d4d3ac) ) - - ROM_REGION( 0x010000, "audiocpu", 0 ) - ROM_LOAD( "069a01.7c", 0x000000, 0x010000, CRC(74172b99) SHA1(f5e0e0d43317454fdacd3df7cd3035fcae4aef68) ) - - ROM_REGION( 0x200000, "k056832", 0 ) - ROM_LOAD32_WORD( "069a10.18j", 0x000000, 0x100000, CRC(4c6743ee) SHA1(fa94fbfb55955fdb40705e79b49103676961d919) ) - ROM_LOAD32_WORD( "069a09.16j", 0x000002, 0x100000, CRC(e6e36b05) SHA1(fecad503f2c285b2b0312e888c06dd6e87f95a07) ) - - ROM_REGION( 0x400000, "k053246", 0 ) - ROM_LOAD64_WORD( "069a08.6h", 0x000000, 0x100000, CRC(325477d4) SHA1(140c57b0ac9e5cf702d788f416408a5eeb5d6d3c) ) - ROM_LOAD64_WORD( "069a05.1h", 0x000002, 0x100000, CRC(c4ab07ed) SHA1(dc806eff00937d9465b1726fae8fdc3022464a28) ) - ROM_LOAD64_WORD( "069a07.4h", 0x000004, 0x100000, CRC(ccaa3971) SHA1(16989cbbd65fe1b41c4a85fea02ba1e9880818a9) ) - ROM_LOAD64_WORD( "069a06.2h", 0x000006, 0x100000, CRC(63eba8e1) SHA1(aa318d356c2580765452106ea0d2228273a90523) ) - - ROM_REGION( 0x200000, "k054539", 0 ) - ROM_LOAD( "069a04.1e", 0x000000, 0x200000, CRC(11d6dcd6) SHA1(04cbff9f61cd8641db538db809ddf20da29fd5ac) ) - - ROM_REGION( 0x80, "eeprom", 0 ) // default eeprom - ROM_LOAD( "er5911.7d", 0x0000, 0x080, CRC(6363513c) SHA1(181cbf2bd4960740d437c714dc70bb7e64c95348) ) // sldh -ROM_END - - -GAME( 1992, gijoe, 0, gijoe, gijoe, gijoe_state, empty_init, ROT0, "Konami", "G.I. Joe (World, EAB, set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, gijoeea, gijoe, gijoe, gijoe, gijoe_state, empty_init, ROT0, "Konami", "G.I. Joe (World, EB8, prototype?)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, gijoeu, gijoe, gijoe, gijoe, gijoe_state, empty_init, ROT0, "Konami", "G.I. Joe (US, UAB)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, gijoej, gijoe, gijoe, gijoe, gijoe_state, empty_init, ROT0, "Konami", "G.I. Joe (Japan, JAA)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, gijoea, gijoe, gijoe, gijoe, gijoe_state, empty_init, ROT0, "Konami", "G.I. Joe (Asia, AA)", MACHINE_SUPPORTS_SAVE ) |