diff options
Diffstat (limited to 'src/mame/drivers/lethal.cpp')
-rw-r--r-- | src/mame/drivers/lethal.cpp | 790 |
1 files changed, 0 insertions, 790 deletions
diff --git a/src/mame/drivers/lethal.cpp b/src/mame/drivers/lethal.cpp deleted file mode 100644 index bf1d46f7c86..00000000000 --- a/src/mame/drivers/lethal.cpp +++ /dev/null @@ -1,790 +0,0 @@ -// license:BSD-3-Clause -// copyright-holders:R. Belmont, Nicola Salmoria -/*************************************************************************** - - Lethal Enforcers - (c) 1992 Konami - Driver by R. Belmont and Nicola Salmoria. - - This hardware is exceptionally weird - they have a bunch of chips intended - for use with a 68000 hooked up to an 8-bit CPU. So everything is bankswitched - like crazy. - - LETHAL ENFORCERS - KONAMI 1993 - - 84256 053245A - 191A03.A4 6116 191A04.A8 191A05.A10 - 054539 053244A 053244A - Z80B 191A02.F4 - 6116 - 191A06.C9 - 7C185 - 7C185 - 007644 5116 - 054000 4464 - 4464 4464 - 191E01.U4 5116 054157 054157 - 63C09EP 054156 - 24MHZ 191A07.V8 191A08.V10 - 191A09.V9 191A10.V10 - - - ---- - - -Lethal Enforcers (c) Konami 1992 -GX191 PWB353060A - -Dump of USA program ROMs only. - -Label CRC32 Location Code Chip Type - 1 [72b843cc] F4 Z80 TMS 27C512 (64k) - 6 [1b6b8f16] U4 6309 ST 27C4001 (512k) - -At offset 0x3FD03 in 6_usa.u4 is "08/17/92 21:38" - -Run down of PCB: -Main CPU: HD63C09EP - OSC 24.00000MHz near 6309 - -Sound CPU: Z80 (Zilog Z0840006PSC) - OSC 18.43200MHz near Z80, 054968A & 054539 - -Konami Custom chips: - -054986A (sound latch + Z80 memory mapper/banker + output DAC) -054539 (sound) -054000 (collision/protection) -053244A (x2) (sprites) -053245A (sprites) -054156 (tilemaps) -054157 (x2) (tilemaps) -007324 (???) - -All other ROMs surface mounted (not included): - -Label Printed* Position -191 A03 Mask16M-8bit - Near 054986A & 054539 - Sound - Also labeled as 056046 - -191A04 Mask8M-16bit \ Near 053244A (x2) & 05245A - Sprites -191A05 Mask8M-16bit / -191 A06 Mask8M-16bit - Also labeled as 056049 - -191A07 Mask8M-16bitx4 \ -191A08 Mask8M-16bitx4 | Near 054157 (x2) & 054156 - Tiles -191A09 Mask8M-16bitx4 | -191A10 Mask8M-16bitx4 / - -* This info is printed/silk-screened on to the PCB for assembly information? - - -4 way Dip Switch - ---------------------------------------------------- - DipSwitch Title | Function | 1 | 2 | 3 | 4 | ---------------------------------------------------- - Sound Output | Stereo |off| | - | Monaural |on | | ---------------------------------------------------- - Coin Mechanism | Common | |off| | - | Independent | |on | | ---------------------------------------------------- - Game Type | Street | |off| | - | Arcade | |on | | ---------------------------------------------------- - Language* | English | |off| - | Spanish | |on | ---------------------------------------------------- - Default Settings |off|off|on |off| ---------------------------------------------------- - NOTE: Listed as "NOT USED" in UK / World Manual | ---------------------------------------------------- - -Push Button Test Switch - - -Memory map (from the schematics) - -Address Dir Data Name Description ----------------- --- -------- --------- ----------------------- -000xxxxxxxxxxxxx R xxxxxxxx PROM program ROM (banked) -001xxxxxxxxxxxxx R/W xxxxxxxx WRAM work RAM -010000--00xxxxxx W xxxxxxxx VREG 054156 control -010000--01--xxxx W xxxxxxxx VSCG 054157 control -010000--1000---- R/W -------- AFR watchdog reset -010000--1001---- W SDON sound enable? -010000--1010 CCLR ? -010000--1011---- n.c. -010000--11-000-- W ------xx COIN1/2 coin counters -010000--11-000-- W ----xx-- CKO1/2 coin enables? -010000--11-000-- W ---x---- VRD \ related to reading graphics ROMs? -010000--11-000-- W --x----- CRDB / -010000--11-001-- W -----xxx EEP EEPROM DI, CS, CLK -010000--11-001-- W ----x--- MUT sound mute? -010000--11-001-- W ---x---- CBNK bank switch 4400-7FFF region between palette and 053245/054156 -010000--11-001-- W --x----- n.c. -010000--11-001-- W xx------ SHD0/1 shadow control -010000--11-010-- W -----xxx PCU1/XBA palette bank (tilemap A) -010000--11-010-- W -xxx---- PCU1/XBB palette bank (tilemap B) -010000--11-011-- W -----xxx PCU2/XBC palette bank (tilemap C) -010000--11-011-- W -xxx---- PCU2/XBD palette bank (tilemap D) -010000--11-100-- W -----xxx PCU3/XBO palette bank (sprites) -010000--11-100-- W -xxx---- PCU3/XBK palette bank (background?) -010000--11-101xx R xxxxxxxx POG gun inputs -010000--11-11000 R xxxxxxxx SW dip switches, EEPROM DO, R/B -010000--11-11001 R xxxxxxxx SW inputs -010000--11-11010 R xxxxxxxx SW unused inputs (crossed out in schematics) -010000--11-11011 R xx------ HHI1/2 gun input ready? -010000--11-11011 R -------x NCPU ? -010000--11-111-- W --xxxxxx BREG ROM bank select -010010--00------ n.c. -010010--01---xxx R/W xxxxxxxx OREG 053244/053245 control -010010--10-xxxxx R/W xxxxxxxx HIP 054000 -010010--11 R/W xxxxxxxx PAR sound communication -010100xxxxxxxxxx R/W xxxxxxxx OBJ 053245 sprite RAM -011xxxxxxxxxxxxx R/W xxxxxxxx VRAM 054156 video RAM -1xxxxxxxxxxxxxxx R xxxxxxxx PROM program ROM - - -Lethal Enforcers -Konami 1992 - -PCB Layout ----------- -GX191 PWB353060A -|--------------------------------------------------------| -|LA4705 191A03.A4 |------|191A04.A8 191A05.A10| -|CN6 84256 |------| |053245A | -| 18.432MHz|054539| | | |------| |------| | -| 054986A | | | | |053244A |053244A | -| | | |------| | | | | | -| |------| | | | | | -| Z80B 191A02.F4 LH5116 |------| |------| | -| LH5116 | -| 191A06.G9 | -| | -| | -|J 051550 | -|A CY7C185 | -|M 052535 CY7C185 | -|M 052535 | -|A 052535 | -| | -| | -| | -| 054884 LH5116 | -| MN4464 | -| 005273 MN4464 |------| |------| | -| 005273 MN4464 |054157| |054157| | -| DSW(4) LH5116 | | | | | -| ER5911.Q2 007644 |------| | | | | | -|TEST_SW 054000 |054156| |------| |------| | -| MN4464 | | | -| 191UAD01.U4 | | | -| 007324 |------| | -| CN8 191A07.V8 191A08.V10| -| CN7 24MHz HD63C09EP 191A09.X8 191A10.X10| -|--------------------------------------------------------| -Notes: - 63C09EP - Clock 3.000MHz [24/8] - Z80B - Clock 6.000MHz [24/4] - 84256 - Fujitsu 84256 32kx8 SRAM (DIP28) - LH5116 - Sharp LH5116 2kx8 SRAM (DIP24) - CY7C185 - Cypress CY7C185 8kx8 SRAM (DIP28) - MN4464 - Panasonic MN4464 8kx8 SRAM (DIP28) - ER5911 - EEPROM (128 bytes) - CN6 - 4 pin connector for stereo sound output - CN7/CN8 - 4 pin connectors for standard light guns - Pin numbering from left to right is 4 3 2 1 - Pin 1 - Opto - Pin 2 - Ground - Pin 3 - Trigger - Pin 4 - +5v - 191* - EPROM/mask ROM - LA4705 - 15W 2-channel BTL audio power AMP - - Custom Chips - ------------ - 054000 - Collision/protection - 007324 - Resistor array package containing eight 150 ohm resistors. The IC looks like a DIP16 logic chip - but with an epoxy top. The schematics show it connected to the 6309 data lines (D0-D7), main - 8k program RAM (D0-D7) and the 054000. It is a simple resistor array (x8) - 007644 - ? (DIP22) - 054157 \ - 054156 / Tilemap generators - 053244A \ - 053245A / 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 gun trigger and 1 player/2 player start - 054884 - MMI PAL16L8 - 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.2038kHz - VSync - 59.6380Hz - - -note: - -Lethal Enforcers has two sprite rendering chips working in parallel with their -output mixed to give 6bpp, and two tilemap rendering chips working in parallel -to give 8bpp. We currently cheat, using just one of each device but using -alternate gfx layouts. Emulating it accurately will require separating the -"front end" chips (053245, 054156) from the "back end" chips (053244, 054157) -as only the latter are doubled. - -mirror not set up correctly - -maybe some sprite placement issues - -***************************************************************************/ - -#include "emu.h" -#include "includes/lethal.h" - -#include "cpu/m6809/m6809.h" -#include "cpu/m6809/hd6309.h" -#include "cpu/z80/z80.h" -#include "machine/eepromser.h" -#include "sound/k054539.h" -#include "screen.h" -#include "speaker.h" - - -#define MAIN_CLOCK XTAL(24'000'000) -#define SOUND_CLOCK XTAL(18'432'000) - - -static const char *const gunnames[] = { "LIGHT0_X", "LIGHT0_Y", "LIGHT1_X", "LIGHT1_Y" }; - -/* a = 1, 2 = player # */ -#define GUNX( a ) (( ( ioport(gunnames[2 * (a - 1)])->read() * 287 ) / 0xff ) + 16) -#define GUNY( a ) (( ( ioport(gunnames[2 * (a - 1) + 1])->read() * 223 ) / 0xff ) + 10) - -WRITE8_MEMBER(lethal_state::control2_w) -{ - /* bit 0 is data */ - /* bit 1 is cs (active low) */ - /* bit 2 is clock (active high) */ - /* bit 3 is "MUT" on the schematics (audio mute?) */ - /* bit 4 bankswitches the 4400-7fff region: 0 = registers, 1 = palette RAM ("CBNK" on schematics) */ - /* bit 6 is "SHD0" (some kind of shadow control) */ - /* bit 7 is "SHD1" (ditto) */ - - m_cur_control2 = data; - - m_bank4000->set_bank(BIT(m_cur_control2, 4)); - - ioport("EEPROMOUT")->write(m_cur_control2, 0xff); -} - -INTERRUPT_GEN_MEMBER(lethal_state::lethalen_interrupt) -{ - if (m_k056832->is_irq_enabled(0)) - device.execute().set_input_line(HD6309_IRQ_LINE, HOLD_LINE); -} - -READ8_MEMBER(lethal_state::sound_irq_r) -{ - m_soundcpu->set_input_line(0, HOLD_LINE); - return 0x00; -} - -WRITE8_MEMBER(lethal_state::sound_irq_w) -{ - m_soundcpu->set_input_line(0, HOLD_LINE); -} - -WRITE8_MEMBER(lethal_state::le_bankswitch_w) -{ - membank("bank1")->set_entry(data); -} - -READ8_MEMBER(lethal_state::guns_r) -{ - switch (offset) - { - case 0: - return GUNX(1) >> 1; - case 1: - if ((GUNY(1)<=0x0b) || (GUNY(1)>=0xe8)) - return 0; - else - return (232 - GUNY(1)); - case 2: - return GUNX(2) >> 1; - case 3: - if ((GUNY(2)<=0x0b) || (GUNY(2)>=0xe8)) - return 0; - else - return (232 - GUNY(2)); - } - - return 0; -} - -READ8_MEMBER(lethal_state::gunsaux_r) -{ - int res = 0; - - if (GUNX(1) & 1) res |= 0x80; - if (GUNX(2) & 1) res |= 0x40; - - return res; -} - -void lethal_state::le_main(address_map &map) -{ - map(0x0000, 0x1fff).bankr("bank1"); - map(0x2000, 0x3fff).ram(); // work RAM - map(0x4000, 0x7fff).m(m_bank4000, FUNC(address_map_bank_device::amap8)); - map(0x4000, 0x43ff).unmaprw(); // first 0x400 bytes of palette RAM are inaccessible - map(0x4000, 0x403f).w(m_k056832, FUNC(k056832_device::write)); - map(0x4040, 0x404f).w(m_k056832, FUNC(k056832_device::b_w)); - map(0x4080, 0x4080).nopr(); // watchdog - map(0x4090, 0x4090).rw(FUNC(lethal_state::sound_irq_r), FUNC(lethal_state::sound_irq_w)); - map(0x40a0, 0x40a0).nopr(); - map(0x40c4, 0x40c4).w(FUNC(lethal_state::control2_w)); - map(0x40c8, 0x40d0).w(FUNC(lethal_state::lethalen_palette_control)); // PCU1-PCU3 on the schematics - map(0x40d4, 0x40d7).r(FUNC(lethal_state::guns_r)); - map(0x40d8, 0x40d8).portr("DSW"); - map(0x40d9, 0x40d9).portr("INPUTS"); - map(0x40db, 0x40db).r(FUNC(lethal_state::gunsaux_r)); // top X bit of guns - map(0x40dc, 0x40dc).w(FUNC(lethal_state::le_bankswitch_w)); - map(0x8000, 0xffff).rom().region("maincpu", 0x38000); -} - -void lethal_state::bank4000_map(address_map &map) -{ - // VRD = 0 or 1, CBNK = 0 - map(0x0840, 0x084f).mirror(0x8000).rw(m_k053244, FUNC(k05324x_device::k053244_r), FUNC(k05324x_device::k053244_w)); - map(0x0880, 0x089f).mirror(0x8000).rw("k054000", FUNC(k054000_device::read), FUNC(k054000_device::write)); - map(0x08c0, 0x08cf).m(m_k054321, FUNC(k054321_device::main_map)); - map(0x1000, 0x17ff).mirror(0x8000).rw(m_k053244, FUNC(k05324x_device::k053245_r), FUNC(k05324x_device::k053245_w)); - - // VRD = 0, CBNK = 0 - map(0x2000, 0x27ff).rw(m_k056832, FUNC(k056832_device::ram_code_lo_r), FUNC(k056832_device::ram_code_lo_w)); - map(0x2800, 0x2fff).rw(m_k056832, FUNC(k056832_device::ram_code_hi_r), FUNC(k056832_device::ram_code_hi_w)); - map(0x3000, 0x37ff).rw(m_k056832, FUNC(k056832_device::ram_attr_lo_r), FUNC(k056832_device::ram_attr_lo_w)); - map(0x3800, 0x3fff).rw(m_k056832, FUNC(k056832_device::ram_attr_hi_r), FUNC(k056832_device::ram_attr_hi_w)); - - // VRD = 1, CBNK = 0 or 1 - map(0xa000, 0xbfff).mirror(0x4000).unmaprw(); // .r(m_k056832, FUNC(k056832_device::rom_byte_r)); - - // CBNK = 1; partially overlaid when VRD = 1 - map(0x4000, 0x7fff).mirror(0x8000).ram().w(m_palette, FUNC(palette_device::write8)).share("palette"); -} - -void lethal_state::le_sound(address_map &map) -{ - map(0x0000, 0xefff).rom(); - map(0xf000, 0xf7ff).ram(); - map(0xf800, 0xfa2f).rw("k054539", FUNC(k054539_device::read), FUNC(k054539_device::write)); - map(0xfc00, 0xfc03).m(m_k054321, FUNC(k054321_device::sound_map)); -} - -static INPUT_PORTS_START( lethalen ) - PORT_START("INPUTS") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_SERVICE_NO_TOGGLE(0x08, IP_ACTIVE_LOW ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) - - PORT_START("DSW") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_er5911_device, do_read) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_er5911_device, ready_read) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR(Language) ) PORT_DIPLOCATION("DSW:4") - PORT_DIPSETTING( 0x10, DEF_STR(English) ) - PORT_DIPSETTING( 0x00, DEF_STR(Spanish) ) - PORT_DIPNAME( 0x20, 0x00, "Game Type" ) PORT_DIPLOCATION("DSW:3") - PORT_DIPSETTING( 0x20, "Street" ) - PORT_DIPSETTING( 0x00, "Arcade" ) - PORT_DIPNAME( 0x40, 0x40, "Coin Mechanism" ) PORT_DIPLOCATION("DSW:2") - PORT_DIPSETTING( 0x40, "Common" ) - PORT_DIPSETTING( 0x00, "Independent" ) - PORT_DIPNAME( 0x80, 0x80, "Sound Output" ) PORT_DIPLOCATION("DSW:1") - PORT_DIPSETTING( 0x00, DEF_STR( Mono ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Stereo ) ) - - 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("LIGHT0_X") - PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_X ) PORT_CROSSHAIR(X, 1.0, 0.0, 0) PORT_SENSITIVITY(25) PORT_KEYDELTA(15) PORT_PLAYER(1) - - PORT_START("LIGHT0_Y") - PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_Y ) PORT_CROSSHAIR(Y, -1.0, 0.0, 0) PORT_SENSITIVITY(25) PORT_KEYDELTA(15) PORT_PLAYER(1) - - PORT_START("LIGHT1_X") - PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_X ) PORT_CROSSHAIR(X, 1.0, 0.0, 0) PORT_SENSITIVITY(25) PORT_KEYDELTA(15) PORT_PLAYER(2) - - PORT_START("LIGHT1_Y") - PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_Y ) PORT_CROSSHAIR(Y, -1.0, 0.0, 0) PORT_SENSITIVITY(25) PORT_KEYDELTA(15) PORT_PLAYER(2) -INPUT_PORTS_END - -static INPUT_PORTS_START( lethalenj ) - PORT_INCLUDE( lethalen ) - - PORT_MODIFY("DSW") /* Normal DIPs appear to do nothing for Japan region - wrong location? Set to unknown */ - PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x10, "DSW:4") - PORT_DIPUNKNOWN_DIPLOC( 0x20, 0x20, "DSW:3") - PORT_DIPUNKNOWN_DIPLOC( 0x40, 0x40, "DSW:2") - PORT_DIPUNKNOWN_DIPLOC( 0x80, 0x80, "DSW:1") - - PORT_MODIFY("LIGHT0_X") - PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_X ) PORT_CROSSHAIR(X, 1.0, 0.0, 0) PORT_SENSITIVITY(25) PORT_KEYDELTA(15) PORT_PLAYER(1) PORT_REVERSE - - PORT_MODIFY("LIGHT0_Y") - PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_Y ) PORT_CROSSHAIR(Y, -1.0, 0.0, 0) PORT_SENSITIVITY(25) PORT_KEYDELTA(15) PORT_PLAYER(1) PORT_REVERSE - - PORT_MODIFY("LIGHT1_X") - PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_X ) PORT_CROSSHAIR(X, 1.0, 0.0, 0) PORT_SENSITIVITY(25) PORT_KEYDELTA(15) PORT_PLAYER(2) PORT_REVERSE - - PORT_MODIFY("LIGHT1_Y") - PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_Y ) PORT_CROSSHAIR(Y, -1.0, 0.0, 0) PORT_SENSITIVITY(25) PORT_KEYDELTA(15) PORT_PLAYER(2) PORT_REVERSE -INPUT_PORTS_END - -static INPUT_PORTS_START( lethalene ) /* European region does not have non-english Language option */ - PORT_INCLUDE( lethalen ) - - PORT_MODIFY("DSW") - PORT_DIPUNUSED_DIPLOC( 0x10, 0x10, "DSW:4") -INPUT_PORTS_END - - -void lethal_state::machine_start() -{ - membank("bank1")->configure_entries(0, 0x20, memregion("maincpu")->base(), 0x2000); - membank("bank1")->set_entry(0); - - save_item(NAME(m_cur_control2)); - save_item(NAME(m_layer_colorbase)); - save_item(NAME(m_sprite_colorbase)); - save_item(NAME(m_back_colorbase)); -} - -void lethal_state::machine_reset() -{ - for (auto & elem : m_layer_colorbase) - elem = 0; - - m_sprite_colorbase = 0; - m_back_colorbase = 0; - m_cur_control2 = 0; - m_bank4000->set_bank(0); -} - -void lethal_state::lethalen(machine_config &config) -{ - /* basic machine hardware */ - HD6309(config, m_maincpu, MAIN_CLOCK/2); /* verified on pcb */ - m_maincpu->set_addrmap(AS_PROGRAM, &lethal_state::le_main); - m_maincpu->set_vblank_int("screen", FUNC(lethal_state::lethalen_interrupt)); - - Z80(config, m_soundcpu, MAIN_CLOCK/4); /* verified on pcb */ - m_soundcpu->set_addrmap(AS_PROGRAM, &lethal_state::le_sound); - - ADDRESS_MAP_BANK(config, m_bank4000).set_map(&lethal_state::bank4000_map).set_options(ENDIANNESS_BIG, 8, 16, 0x4000); - - EEPROM_ER5911_8BIT(config, "eeprom"); - - /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); - screen.set_refresh_hz(59.62); /* verified on pcb */ - screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); - screen.set_size(64*8, 32*8); - screen.set_visarea(216, 504-1, 16, 240-1); - screen.set_screen_update(FUNC(lethal_state::screen_update_lethalen)); - screen.set_palette(m_palette); - - PALETTE(config, m_palette).set_format(palette_device::xBGR_555, 8192); - m_palette->enable_shadows(); - - K056832(config, m_k056832, 0); - m_k056832->set_tile_callback(FUNC(lethal_state::tile_callback)); - m_k056832->set_config(K056832_BPP_8LE, 1, 0); - m_k056832->set_palette(m_palette); - - K053244(config, m_k053244, 0); - m_k053244->set_palette(m_palette); - m_k053244->set_bpp(6); - m_k053244->set_offsets(95, 0); - m_k053244->set_sprite_callback(FUNC(lethal_state::sprite_callback)); - - K054000(config, "k054000", 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("soundcpu", INPUT_LINE_NMI); - k054539.add_route(0, "rspeaker", 1.0); - k054539.add_route(1, "lspeaker", 1.0); -} - -void lethal_state::lethalej(machine_config &config) -{ - lethalen(config); - - subdevice<screen_device>("screen")->set_visarea(224, 512-1, 16, 240-1); - - m_k053244->set_offsets(-105, 0); -} - -ROM_START( lethalen ) // US version UAE - ROM_REGION( 0x40000, "maincpu", 0 ) /* main program */ - ROM_LOAD( "191uae01.u4", 0x00000, 0x40000, CRC(dca340e3) SHA1(8efbba0e3a459bcfe23c75c584bf3a4ce25148bb) ) - - ROM_REGION( 0x10000, "soundcpu", 0 ) /* Z80 sound program */ - ROM_LOAD( "191a02.f4", 0x00000, 0x10000, CRC(72b843cc) SHA1(b44b2f039358c26fa792d740639b66a5c8bf78e7) ) - - ROM_REGION( 0x400000, "k056832", 0 ) /* tilemaps */ - ROM_LOAD32_WORD( "191a08", 0x000002, 0x100000, CRC(555bd4db) SHA1(d2e55796b4ab2306ae549fa9e7288e41eaa8f3de) ) - ROM_LOAD32_WORD( "191a10", 0x000000, 0x100000, CRC(2fa9bf51) SHA1(1e4ec56b41dfd8744347a7b5799e3ebce0939adc) ) - ROM_LOAD32_WORD( "191a07", 0x200002, 0x100000, CRC(1dad184c) SHA1(b2c4a8e48084005056aef2c8eaccb3d2eca71b73) ) - ROM_LOAD32_WORD( "191a09", 0x200000, 0x100000, CRC(e2028531) SHA1(63ccce7855d829763e9e248a6c3eb6ea89ab17ee) ) - - ROM_REGION( 0x400000, "k053244", ROMREGION_ERASE00 ) /* sprites */ - ROM_LOAD32_WORD( "191a05", 0x000000, 0x100000, CRC(f2e3b58b) SHA1(0bbc2fe87a4fd00b5073a884bcfebcf9c2c402ad) ) - ROM_LOAD32_WORD( "191a04", 0x000002, 0x100000, CRC(5c3eeb2b) SHA1(33ea8b3968b78806334b5a0aab3a2c24e45c604e) ) - ROM_LOAD32_WORD( "191a06", 0x200000, 0x100000, CRC(ee11fc08) SHA1(ec6dd684e8261b181d65b8bf1b9e97da5c4468f7) ) - - ROM_REGION( 0x200000, "k054539", 0 ) /* K054539 samples */ - ROM_LOAD( "191a03", 0x000000, 0x200000, CRC(9b13fbe8) SHA1(19b02dbd9d6da54045b0ba4dfe7b282c72745c9c)) - - ROM_REGION( 0x80, "eeprom", 0 ) - ROM_LOAD( "lethalenue.nv", 0x0000, 0x0080, CRC(6e7224e6) SHA1(86dea9262d55e58b573d397d0fea437c58728707) ) -ROM_END - -ROM_START( lethalenub ) // US version UAB - ROM_REGION( 0x40000, "maincpu", 0 ) /* main program */ - ROM_LOAD( "191uab01.u4", 0x00000, 0x40000, CRC(2afd7528) SHA1(65ce4a54fe96ad38d39d335b5d3a644a495c7e31) ) - - ROM_REGION( 0x10000, "soundcpu", 0 ) /* Z80 sound program */ - ROM_LOAD( "191a02.f4", 0x00000, 0x10000, CRC(72b843cc) SHA1(b44b2f039358c26fa792d740639b66a5c8bf78e7) ) - - ROM_REGION( 0x400000, "k056832", 0 ) /* tilemaps */ - ROM_LOAD32_WORD( "191a08", 0x000002, 0x100000, CRC(555bd4db) SHA1(d2e55796b4ab2306ae549fa9e7288e41eaa8f3de) ) - ROM_LOAD32_WORD( "191a10", 0x000000, 0x100000, CRC(2fa9bf51) SHA1(1e4ec56b41dfd8744347a7b5799e3ebce0939adc) ) - ROM_LOAD32_WORD( "191a07", 0x200002, 0x100000, CRC(1dad184c) SHA1(b2c4a8e48084005056aef2c8eaccb3d2eca71b73) ) - ROM_LOAD32_WORD( "191a09", 0x200000, 0x100000, CRC(e2028531) SHA1(63ccce7855d829763e9e248a6c3eb6ea89ab17ee) ) - - ROM_REGION( 0x400000, "k053244", ROMREGION_ERASE00 ) /* sprites */ - ROM_LOAD32_WORD( "191a05", 0x000000, 0x100000, CRC(f2e3b58b) SHA1(0bbc2fe87a4fd00b5073a884bcfebcf9c2c402ad) ) - ROM_LOAD32_WORD( "191a04", 0x000002, 0x100000, CRC(5c3eeb2b) SHA1(33ea8b3968b78806334b5a0aab3a2c24e45c604e) ) - ROM_LOAD32_WORD( "191a06", 0x200000, 0x100000, CRC(ee11fc08) SHA1(ec6dd684e8261b181d65b8bf1b9e97da5c4468f7) ) - - ROM_REGION( 0x200000, "k054539", 0 ) /* K054539 samples */ - ROM_LOAD( "191a03", 0x000000, 0x200000, CRC(9b13fbe8) SHA1(19b02dbd9d6da54045b0ba4dfe7b282c72745c9c)) - - ROM_REGION( 0x80, "eeprom", 0 ) - ROM_LOAD( "lethalenub.nv", 0x0000, 0x0080, CRC(14c6c6e5) SHA1(8a498b5322266df25fb24d1b7bd7937de459d207) ) -ROM_END - -ROM_START( lethalenua ) // US version UAA - ROM_REGION( 0x40000, "maincpu", 0 ) /* main program */ - ROM_LOAD( "191uaa01.u4", 0x00000, 0x40000, CRC(ab6b8f16) SHA1(8de6c429a6e71144270e79d18ad47b5aad13fe04) ) - - ROM_REGION( 0x10000, "soundcpu", 0 ) /* Z80 sound program */ - ROM_LOAD( "191a02.f4", 0x00000, 0x10000, CRC(72b843cc) SHA1(b44b2f039358c26fa792d740639b66a5c8bf78e7) ) - - ROM_REGION( 0x400000, "k056832", 0 ) /* tilemaps */ - ROM_LOAD32_WORD( "191a08", 0x000002, 0x100000, CRC(555bd4db) SHA1(d2e55796b4ab2306ae549fa9e7288e41eaa8f3de) ) - ROM_LOAD32_WORD( "191a10", 0x000000, 0x100000, CRC(2fa9bf51) SHA1(1e4ec56b41dfd8744347a7b5799e3ebce0939adc) ) - ROM_LOAD32_WORD( "191a07", 0x200002, 0x100000, CRC(1dad184c) SHA1(b2c4a8e48084005056aef2c8eaccb3d2eca71b73) ) - ROM_LOAD32_WORD( "191a09", 0x200000, 0x100000, CRC(e2028531) SHA1(63ccce7855d829763e9e248a6c3eb6ea89ab17ee) ) - - ROM_REGION( 0x400000, "k053244", ROMREGION_ERASE00 ) /* sprites */ - ROM_LOAD32_WORD( "191a05", 0x000000, 0x100000, CRC(f2e3b58b) SHA1(0bbc2fe87a4fd00b5073a884bcfebcf9c2c402ad) ) - ROM_LOAD32_WORD( "191a04", 0x000002, 0x100000, CRC(5c3eeb2b) SHA1(33ea8b3968b78806334b5a0aab3a2c24e45c604e) ) - ROM_LOAD32_WORD( "191a06", 0x200000, 0x100000, CRC(ee11fc08) SHA1(ec6dd684e8261b181d65b8bf1b9e97da5c4468f7) ) - - ROM_REGION( 0x200000, "k054539", 0 ) /* K054539 samples */ - ROM_LOAD( "191a03", 0x000000, 0x200000, CRC(9b13fbe8) SHA1(19b02dbd9d6da54045b0ba4dfe7b282c72745c9c)) - - ROM_REGION( 0x80, "eeprom", 0 ) - ROM_LOAD( "lethalenua.nv", 0x0000, 0x0080, CRC(f71ad1c3) SHA1(04c7052d0895797af8a06183b8a877795bf2dbb3) ) -ROM_END - -ROM_START( lethalenux ) // US version ?, proto / hack?, very different to other sets - ROM_REGION( 0x40000, "maincpu", 0 ) /* main program */ - ROM_LOAD( "191xxx01.u4", 0x00000, 0x40000, CRC(a3b9e790) SHA1(868b422850be129952c8b11c3c4aa730d8ea1544) ) // hacked? fails rom test, verified on multiple boards - - ROM_REGION( 0x10000, "soundcpu", 0 ) /* Z80 sound program */ - ROM_LOAD( "191a02.f4", 0x00000, 0x10000, CRC(72b843cc) SHA1(b44b2f039358c26fa792d740639b66a5c8bf78e7) ) - - ROM_REGION( 0x400000, "k056832", 0 ) /* tilemaps */ - ROM_LOAD32_WORD( "191a08", 0x000002, 0x100000, CRC(555bd4db) SHA1(d2e55796b4ab2306ae549fa9e7288e41eaa8f3de) ) - ROM_LOAD32_WORD( "191a10", 0x000000, 0x100000, CRC(2fa9bf51) SHA1(1e4ec56b41dfd8744347a7b5799e3ebce0939adc) ) - ROM_LOAD32_WORD( "191a07", 0x200002, 0x100000, CRC(1dad184c) SHA1(b2c4a8e48084005056aef2c8eaccb3d2eca71b73) ) - ROM_LOAD32_WORD( "191a09", 0x200000, 0x100000, CRC(e2028531) SHA1(63ccce7855d829763e9e248a6c3eb6ea89ab17ee) ) - - ROM_REGION( 0x400000, "k053244", ROMREGION_ERASE00 ) /* sprites */ - ROM_LOAD32_WORD( "191a05", 0x000000, 0x100000, CRC(f2e3b58b) SHA1(0bbc2fe87a4fd00b5073a884bcfebcf9c2c402ad) ) - ROM_LOAD32_WORD( "191a04", 0x000002, 0x100000, CRC(5c3eeb2b) SHA1(33ea8b3968b78806334b5a0aab3a2c24e45c604e) ) - ROM_LOAD32_WORD( "191a06", 0x200000, 0x100000, CRC(ee11fc08) SHA1(ec6dd684e8261b181d65b8bf1b9e97da5c4468f7) ) - - ROM_REGION( 0x200000, "k054539", 0 ) /* K054539 samples */ - ROM_LOAD( "191a03", 0x000000, 0x200000, CRC(9b13fbe8) SHA1(19b02dbd9d6da54045b0ba4dfe7b282c72745c9c)) - - ROM_REGION( 0x80, "eeprom", 0 ) - ROM_LOAD( "lethalenux.nv", 0x0000, 0x0080, CRC(5d69c39d) SHA1(e468df829ee5094792289f9166d7e39b638ab70d) ) -ROM_END - -ROM_START( lethaleneab ) // Euro ver. EAB - ROM_REGION( 0x40000, "maincpu", 0 ) /* main program */ - ROM_LOAD( "191eab01.u4", 0x00000, 0x40000, CRC(d7ce111e) SHA1(e56137a0ba7664f09b5d05bb39ec6eb4d1e412c7) ) - - ROM_REGION( 0x10000, "soundcpu", 0 ) /* Z80 sound program */ - ROM_LOAD( "191a02.f4", 0x00000, 0x10000, CRC(72b843cc) SHA1(b44b2f039358c26fa792d740639b66a5c8bf78e7) ) - - ROM_REGION( 0x400000, "k056832", 0 ) /* tilemaps */ - ROM_LOAD32_WORD( "191a08", 0x000002, 0x100000, CRC(555bd4db) SHA1(d2e55796b4ab2306ae549fa9e7288e41eaa8f3de) ) - ROM_LOAD32_WORD( "191a10", 0x000000, 0x100000, CRC(2fa9bf51) SHA1(1e4ec56b41dfd8744347a7b5799e3ebce0939adc) ) - ROM_LOAD32_WORD( "191a07", 0x200002, 0x100000, CRC(1dad184c) SHA1(b2c4a8e48084005056aef2c8eaccb3d2eca71b73) ) - ROM_LOAD32_WORD( "191a09", 0x200000, 0x100000, CRC(e2028531) SHA1(63ccce7855d829763e9e248a6c3eb6ea89ab17ee) ) - - ROM_REGION( 0x400000, "k053244", ROMREGION_ERASE00 ) /* sprites */ - ROM_LOAD32_WORD( "191a05", 0x000000, 0x100000, CRC(f2e3b58b) SHA1(0bbc2fe87a4fd00b5073a884bcfebcf9c2c402ad) ) - ROM_LOAD32_WORD( "191a04", 0x000002, 0x100000, CRC(5c3eeb2b) SHA1(33ea8b3968b78806334b5a0aab3a2c24e45c604e) ) - ROM_LOAD32_WORD( "191a06", 0x200000, 0x100000, CRC(ee11fc08) SHA1(ec6dd684e8261b181d65b8bf1b9e97da5c4468f7) ) - - ROM_REGION( 0x200000, "k054539", 0 ) /* K054539 samples */ - ROM_LOAD( "191a03", 0x000000, 0x200000, CRC(9b13fbe8) SHA1(19b02dbd9d6da54045b0ba4dfe7b282c72745c9c)) - - ROM_REGION( 0x80, "eeprom", 0 ) - ROM_LOAD( "lethaleneab.nv", 0x0000, 0x0080, CRC(4e9bb34d) SHA1(9502583bc9f5f6fc5bba333869398b24bf154b73) ) -ROM_END - -ROM_START( lethalenead ) // Euro ver. EAD - ROM_REGION( 0x40000, "maincpu", 0 ) /* main program */ - ROM_LOAD( "191ead01.u4", 0x00000, 0x40000, CRC(ce2e13ce) SHA1(52df8fbcca0de02bdb83fc804ee27a90135993e7) ) - - ROM_REGION( 0x10000, "soundcpu", 0 ) /* Z80 sound program */ - ROM_LOAD( "191a02.f4", 0x00000, 0x10000, CRC(72b843cc) SHA1(b44b2f039358c26fa792d740639b66a5c8bf78e7) ) - - ROM_REGION( 0x400000, "k056832", 0 ) /* tilemaps */ - ROM_LOAD32_WORD( "191a08", 0x000002, 0x100000, CRC(555bd4db) SHA1(d2e55796b4ab2306ae549fa9e7288e41eaa8f3de) ) - ROM_LOAD32_WORD( "191a10", 0x000000, 0x100000, CRC(2fa9bf51) SHA1(1e4ec56b41dfd8744347a7b5799e3ebce0939adc) ) - ROM_LOAD32_WORD( "191a07", 0x200002, 0x100000, CRC(1dad184c) SHA1(b2c4a8e48084005056aef2c8eaccb3d2eca71b73) ) - ROM_LOAD32_WORD( "191a09", 0x200000, 0x100000, CRC(e2028531) SHA1(63ccce7855d829763e9e248a6c3eb6ea89ab17ee) ) - - ROM_REGION( 0x400000, "k053244", ROMREGION_ERASE00 ) /* sprites */ - ROM_LOAD32_WORD( "191a05", 0x000000, 0x100000, CRC(f2e3b58b) SHA1(0bbc2fe87a4fd00b5073a884bcfebcf9c2c402ad) ) - ROM_LOAD32_WORD( "191a04", 0x000002, 0x100000, CRC(5c3eeb2b) SHA1(33ea8b3968b78806334b5a0aab3a2c24e45c604e) ) - ROM_LOAD32_WORD( "191a06", 0x200000, 0x100000, CRC(ee11fc08) SHA1(ec6dd684e8261b181d65b8bf1b9e97da5c4468f7) ) - - ROM_REGION( 0x200000, "k054539", 0 ) /* K054539 samples */ - ROM_LOAD( "191a03", 0x000000, 0x200000, CRC(9b13fbe8) SHA1(19b02dbd9d6da54045b0ba4dfe7b282c72745c9c)) - - ROM_REGION( 0x80, "eeprom", 0 ) - ROM_LOAD( "lethalenead.nv", 0x0000, 0x0080, CRC(e1dc2bc0) SHA1(adfb8dfaec0b0faf6784eab97a5b31c0c7813756) ) -ROM_END - -ROM_START( lethaleneae ) // Euro ver. EAE - ROM_REGION( 0x40000, "maincpu", 0 ) /* main program */ - ROM_LOAD( "191eae01.u4", 0x00000, 0x40000, CRC(c6a3c6ac) SHA1(96a209a3a5b4af40af36bd7090c59a74f8c8df59) ) - - ROM_REGION( 0x10000, "soundcpu", 0 ) /* Z80 sound program */ - ROM_LOAD( "191a02.f4", 0x00000, 0x10000, CRC(72b843cc) SHA1(b44b2f039358c26fa792d740639b66a5c8bf78e7) ) - - ROM_REGION( 0x400000, "k056832", 0 ) /* tilemaps */ - ROM_LOAD32_WORD( "191a08", 0x000002, 0x100000, CRC(555bd4db) SHA1(d2e55796b4ab2306ae549fa9e7288e41eaa8f3de) ) - ROM_LOAD32_WORD( "191a10", 0x000000, 0x100000, CRC(2fa9bf51) SHA1(1e4ec56b41dfd8744347a7b5799e3ebce0939adc) ) - ROM_LOAD32_WORD( "191a07", 0x200002, 0x100000, CRC(1dad184c) SHA1(b2c4a8e48084005056aef2c8eaccb3d2eca71b73) ) - ROM_LOAD32_WORD( "191a09", 0x200000, 0x100000, CRC(e2028531) SHA1(63ccce7855d829763e9e248a6c3eb6ea89ab17ee) ) - - ROM_REGION( 0x400000, "k053244", ROMREGION_ERASE00 ) /* sprites */ - ROM_LOAD32_WORD( "191a05", 0x000000, 0x100000, CRC(f2e3b58b) SHA1(0bbc2fe87a4fd00b5073a884bcfebcf9c2c402ad) ) - ROM_LOAD32_WORD( "191a04", 0x000002, 0x100000, CRC(5c3eeb2b) SHA1(33ea8b3968b78806334b5a0aab3a2c24e45c604e) ) - ROM_LOAD32_WORD( "191a06", 0x200000, 0x100000, CRC(ee11fc08) SHA1(ec6dd684e8261b181d65b8bf1b9e97da5c4468f7) ) - - ROM_REGION( 0x200000, "k054539", 0 ) /* K054539 samples */ - ROM_LOAD( "191a03", 0x000000, 0x200000, CRC(9b13fbe8) SHA1(19b02dbd9d6da54045b0ba4dfe7b282c72745c9c)) - - ROM_REGION( 0x80, "eeprom", 0 ) - ROM_LOAD( "lethaleneae.nv", 0x0000, 0x0080, CRC(eb369a67) SHA1(6c67294669614e96de5efb38372dbed435ee04d3) ) -ROM_END - -ROM_START( lethalenj ) // Japan version JAD - ROM_REGION( 0x40000, "maincpu", 0 ) /* main program */ - ROM_LOAD( "191jad01.u4", 0x00000, 0x40000, CRC(160a25c0) SHA1(1d3ed5a158e461a73c079fe24a8e9d5e2a87e126) ) - - ROM_REGION( 0x10000, "soundcpu", 0 ) /* Z80 sound program */ - ROM_LOAD( "191a02.f4", 0x00000, 0x10000, CRC(72b843cc) SHA1(b44b2f039358c26fa792d740639b66a5c8bf78e7) ) - - ROM_REGION( 0x400000, "k056832", 0 ) /* tilemaps */ - ROM_LOAD32_WORD( "191a08", 0x000002, 0x100000, CRC(555bd4db) SHA1(d2e55796b4ab2306ae549fa9e7288e41eaa8f3de) ) - ROM_LOAD32_WORD( "191a10", 0x000000, 0x100000, CRC(2fa9bf51) SHA1(1e4ec56b41dfd8744347a7b5799e3ebce0939adc) ) - ROM_LOAD32_WORD( "191a07", 0x200002, 0x100000, CRC(1dad184c) SHA1(b2c4a8e48084005056aef2c8eaccb3d2eca71b73) ) - ROM_LOAD32_WORD( "191a09", 0x200000, 0x100000, CRC(e2028531) SHA1(63ccce7855d829763e9e248a6c3eb6ea89ab17ee) ) - - ROM_REGION( 0x400000, "k053244", ROMREGION_ERASE00 ) /* sprites */ - ROM_LOAD32_WORD( "191a05", 0x000000, 0x100000, CRC(f2e3b58b) SHA1(0bbc2fe87a4fd00b5073a884bcfebcf9c2c402ad) ) - ROM_LOAD32_WORD( "191a04", 0x000002, 0x100000, CRC(5c3eeb2b) SHA1(33ea8b3968b78806334b5a0aab3a2c24e45c604e) ) - ROM_LOAD32_WORD( "191a06", 0x200000, 0x100000, CRC(ee11fc08) SHA1(ec6dd684e8261b181d65b8bf1b9e97da5c4468f7) ) - - ROM_REGION( 0x200000, "k054539", 0 ) /* K054539 samples */ - ROM_LOAD( "191a03", 0x000000, 0x200000, CRC(9b13fbe8) SHA1(19b02dbd9d6da54045b0ba4dfe7b282c72745c9c)) - - ROM_REGION( 0x80, "eeprom", 0 ) - ROM_LOAD( "lethalenj.nv", 0x0000, 0x0080, CRC(20b28f2f) SHA1(53d212f2c006729a01dfdb49cb36b67b9425172e) ) -ROM_END - -ROM_START( lethaleneaa ) // Euro ver. EAA - ROM_REGION( 0x40000, "maincpu", 0 ) /* main program */ - ROM_LOAD( "191_a01.u4", 0x00000, 0x40000, CRC(c6f4d712) SHA1(92938b823f057b5185a2ada7878efa4bf7e6c682) ) // handwritten label - - ROM_REGION( 0x10000, "soundcpu", 0 ) /* Z80 sound program */ - ROM_LOAD( "191a02.f4", 0x00000, 0x10000, CRC(72b843cc) SHA1(b44b2f039358c26fa792d740639b66a5c8bf78e7) ) - - ROM_REGION( 0x400000, "k056832", 0 ) /* tilemaps */ - ROM_LOAD32_WORD( "191a08", 0x000002, 0x100000, CRC(555bd4db) SHA1(d2e55796b4ab2306ae549fa9e7288e41eaa8f3de) ) - ROM_LOAD32_WORD( "191a10", 0x000000, 0x100000, CRC(2fa9bf51) SHA1(1e4ec56b41dfd8744347a7b5799e3ebce0939adc) ) - ROM_LOAD32_WORD( "191a07", 0x200002, 0x100000, CRC(1dad184c) SHA1(b2c4a8e48084005056aef2c8eaccb3d2eca71b73) ) - ROM_LOAD32_WORD( "191a09", 0x200000, 0x100000, CRC(e2028531) SHA1(63ccce7855d829763e9e248a6c3eb6ea89ab17ee) ) - - ROM_REGION( 0x400000, "k053244", ROMREGION_ERASE00 ) /* sprites */ - ROM_LOAD32_WORD( "191a05", 0x000000, 0x100000, CRC(f2e3b58b) SHA1(0bbc2fe87a4fd00b5073a884bcfebcf9c2c402ad) ) - ROM_LOAD32_WORD( "191a04", 0x000002, 0x100000, CRC(5c3eeb2b) SHA1(33ea8b3968b78806334b5a0aab3a2c24e45c604e) ) - ROM_LOAD32_WORD( "191a06", 0x200000, 0x100000, CRC(ee11fc08) SHA1(ec6dd684e8261b181d65b8bf1b9e97da5c4468f7) ) - - ROM_REGION( 0x200000, "k054539", 0 ) /* K054539 samples */ - ROM_LOAD( "191a03", 0x000000, 0x200000, CRC(9b13fbe8) SHA1(19b02dbd9d6da54045b0ba4dfe7b282c72745c9c)) - - ROM_REGION( 0x80, "eeprom", 0 ) - ROM_LOAD( "lethaleneaa.nv", 0x0000, 0x0080, CRC(a85d64ee) SHA1(68ab906c46c6a7dee2a7673d1d516e34d56c9ae3) ) -ROM_END - -// date strings are at 0x3fd00 in the main program rom - -GAME( 1992, lethalen, 0, lethalen, lethalen, lethal_state, empty_init, ORIENTATION_FLIP_Y, "Konami", "Lethal Enforcers (ver UAE, 11/19/92 15:04)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) // writes UE to eeprom -GAME( 1992, lethalenub, lethalen, lethalen, lethalen, lethal_state, empty_init, ORIENTATION_FLIP_Y, "Konami", "Lethal Enforcers (ver UAB, 09/01/92 11:12)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) // writes UB to eeprom -GAME( 1992, lethalenua, lethalen, lethalen, lethalen, lethal_state, empty_init, ORIENTATION_FLIP_Y, "Konami", "Lethal Enforcers (ver UAA, 08/17/92 21:38)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) // writes UA to eeprom -GAME( 1992, lethalenux, lethalen, lethalen, lethalen, lethal_state, empty_init, ORIENTATION_FLIP_Y, "Konami", "Lethal Enforcers (ver unknown, US, 08/06/92 15:11, hacked/proto?)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) // writes UA to eeprom but earlier than suspected UAA set, might be a proto, might be hacked, fails rom test, definitely a good dump, another identical set was found in Italy - -GAME( 1992, lethaleneae,lethalen, lethalen, lethalene, lethal_state, empty_init, ORIENTATION_FLIP_Y, "Konami", "Lethal Enforcers (ver EAE, 11/19/92 16:24)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) // writes EE to eeprom -GAME( 1992, lethalenead,lethalen, lethalen, lethalene, lethal_state, empty_init, ORIENTATION_FLIP_Y, "Konami", "Lethal Enforcers (ver EAD, 11/11/92 10:52)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) // writes ED to eeprom -GAME( 1992, lethaleneab,lethalen, lethalen, lethalene, lethal_state, empty_init, ORIENTATION_FLIP_Y, "Konami", "Lethal Enforcers (ver EAB, 10/14/92 19:53)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) // writes EC to eeprom, so might actually be EC -GAME( 1992, lethaleneaa,lethalen, lethalen, lethalene, lethal_state, empty_init, ORIENTATION_FLIP_Y, "Konami", "Lethal Enforcers (ver EAA, 09/09/92 09:44)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) // writes EA to eeprom - -// different mirror / display setup -GAME( 1992, lethalenj, lethalen, lethalej, lethalenj, lethal_state, empty_init, ORIENTATION_FLIP_X, "Konami", "Lethal Enforcers (ver JAD, 12/04/92 17:16)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) // writes JC to eeprom?! |