diff options
Diffstat (limited to 'src/mame/drivers/eolith.cpp')
-rw-r--r-- | src/mame/drivers/eolith.cpp | 1590 |
1 files changed, 1590 insertions, 0 deletions
diff --git a/src/mame/drivers/eolith.cpp b/src/mame/drivers/eolith.cpp new file mode 100644 index 00000000000..df62012572c --- /dev/null +++ b/src/mame/drivers/eolith.cpp @@ -0,0 +1,1590 @@ +// license:LGPL-2.1+ +// copyright-holders:Tomasz Slanina,Pierpaolo Prazzoli +/******************************************************************** + Eolith 32 bits hardware: Gradation 2D system + + driver by Tomasz Slanina analog [at] op.pl + and Pierpaolo Prazzoli + + Main CPU: + Hyperstone E1-32N @ 45 or 50 MHz + + Sound CPU: + 80c301/AT89c52 + + Sound: + General MIDI Chipset QDSP 1000 MIDI Player (80c32 CPU) + MIDI 16th Channel(32 Poly) using as Effect EPROM : 512Kbytes + MIDI Background Music EPROM : 512Kbyte + TDA1519A(Philips)Stereo Power AMP + + Video: + 16 bit True Color/Dot + Resolution - 320x340 or 512x384 + + Memory: + 256KByte x2 VRAM + 512Kbyte/1Mega main RAM + + Games dumped + 1998 - Hidden Catch (pcb ver 3.03) + 1998 - Iron Fortress + 1998 - Puzzle King (Dance & Puzzle) + 1998 - Raccoon World + 1999 - Candy Candy + 1999 - Hidden Catch 2 (pcb ver 3.03) + 1999 - Land Breaker (pcb ver 3.03) (MCU internal flash dump is missing) + 1999 - Land Breaker (pcb ver 3.02) + 1999 - New Hidden Catch (pcb ver 3.02) + 1999 - Penfan Girls + 2000 - Hidden Catch 3 (v. 1.00 / pcb ver 3.05) + 2001 - Fortress 2 Blue Arcade (v. 1.01 / pcb ver 3.05) + 2001 - Fortress 2 Blue Arcade (v. 1.00 / pcb ver 3.05) + + Known games not dumped + - Hidden Catch (pcb ver 3.02) + - Fortress 2 Blue Arcade (v. 1.02) + - Ribbon (Step1. Mild Mind) (c) 1999 - Alt title Penfan girls is dumped + +----------------------------------------------------------------------------- + Original (Not emulation) Bugs: + + - hidctch3 (Hidden Catch 3) + + the text shown when you start a game is flipped or + clipped wrongly + + - candy (Candy Candy) + + 'Ready, Go' is displayed before cutting to the How To Play screen, + this flow seems illogical, but is correct. + The How To Play screen can't be skipped with the start button + unless there is an additional credit inserted. + There are some bad pixels at the top right of the How To Play text + +----------------------------------------------------------------------------- + Driver (Emulation) Bugs: + + - candy (Candy Candy) + + VRAM erasing doesn't work properly in this game with the logic we're + using in eolith_vram_w. There are various screens, such as the how + to play screen and high score screen where you can see graphics which + should have been erased. It has been verified that these get erased + correctly on the real hardware. + + - racooon (Raccoon World) + + Game animation seems too fast? + +----------------------------------------------------------------------------- + Game Issues (unknown): + + - linkypip (Linky Pipe) + + Linky Pipe seems to randomly hang based on the lower 2 bits of the + "dipswitches" at boot. Is this protection, some kind of left over + debug code, or a CPU bug? The game seems fine with those switches + left high. The code responsible for this issue is: + + 40008176: MOV L10, L11 + 40008178: LDW.P L5, L8 + 4000817A: ADDI L10, $ffffffe + 4000817C: DBNE $40008178 + 4000817E: STW.P L13, L8 + 40008180: ADDI L12, $ffffffff + 40008182: DBNE $40008176 + 40008184: ADD L13, L14 + 40008186: RET PC, L3 + + *********************************************************************/ + +#include "emu.h" +#include "cpu/e132xs/e132xs.h" +#include "cpu/mcs51/mcs51.h" + +#include "machine/eepromser.h" +#include "includes/eolith.h" + + +/************************************* + * + * Control + * + *************************************/ + +READ32_MEMBER(eolith_state::eolith_custom_r) +{ + /* + bit 3 = eeprom bit + bit 6 = vblank flag + + Are these used only in landbrka ? + bit 8 = ??? + bit 9 = ??? + */ + speedup_read(); + + return (m_in0->read() & ~0x300) | (machine().rand() & 0x300); +} + +WRITE32_MEMBER(eolith_state::systemcontrol_w) +{ + m_buffer = (data & 0x80) >> 7; + coin_counter_w(machine(), 0, data & m_coin_counter_bit); + set_led_status(machine(), 0, data & 1); + + m_eepromoutport->write(data, 0xff); + + // bit 0x100 and 0x040 ? +} + +READ32_MEMBER(eolith_state::hidctch3_pen1_r) +{ + //320 x 240 + int xpos = m_penx1port->read(); + int ypos = m_peny1port->read(); + + return xpos + (ypos*168*2); +} + +READ32_MEMBER(eolith_state::hidctch3_pen2_r) +{ + //320 x 240 + int xpos = m_penx2port->read(); + int ypos = m_peny2port->read(); + + return xpos + (ypos*168*2); +} + +WRITE32_MEMBER( eolith_state::sound_w ) +{ +// printf("CPU Command: %x\n", m_sound_data); + m_sound_data = data; + m_soundcpu->set_input_line(MCS51_INT0_LINE, ASSERT_LINE); + + machine().scheduler().boost_interleave(attotime::zero, attotime::from_usec(250)); +} + + +/************************************* + * + * Sound CPU + * + *************************************/ + +READ8_MEMBER( eolith_state::sound_cmd_r ) +{ + m_soundcpu->set_input_line(MCS51_INT0_LINE, CLEAR_LINE); + return m_sound_data; +} + +WRITE8_MEMBER( eolith_state::sound_p1_w ) +{ + // .... xxxx - Data ROM bank (32kB) + // ...x .... - Unknown (Usually 1?) + m_sndbank->set_entry(data & 0x0f); +} + + +/************************************* + * + * QS1000 CPU + * + *************************************/ + +/* + Possible port mapping: + + P30 (O) A16 (RxD) + P31 (O) A17 (TxD) + P32 (O) A18 (/INT0) + P33 (I) INT_68 (/INT1) + P34 (O) PCM1 (T0) + P35 (O) SET_INT (T1) + P36 (O) PCM0 + P37 (O) RDB (/RD) +*/ + +READ8_MEMBER( eolith_state::qs1000_p1_r ) +{ + // Sound banking? (must be 1) + return 1; +} + +WRITE8_MEMBER( eolith_state::qs1000_p1_w ) +{ +} + + +/************************************* + * + * Sound CPU <-> QS1000 CPU + * + *************************************/ + +WRITE8_MEMBER(eolith_state::soundcpu_to_qs1000) +{ + m_qs1000->serial_in(data); + machine().scheduler().boost_interleave(attotime::zero, attotime::from_usec(250)); +} + + +/************************************* + * + * Main CPU memory map + * + *************************************/ + +static ADDRESS_MAP_START( eolith_map, AS_PROGRAM, 32, eolith_state ) + AM_RANGE(0x00000000, 0x001fffff) AM_RAM // fort2b wants ram here + AM_RANGE(0x40000000, 0x401fffff) AM_RAM + AM_RANGE(0x90000000, 0x9003ffff) AM_READWRITE(eolith_vram_r, eolith_vram_w) + AM_RANGE(0xfc000000, 0xfc000003) AM_READ(eolith_custom_r) + AM_RANGE(0xfc400000, 0xfc400003) AM_WRITE(systemcontrol_w) + AM_RANGE(0xfc800000, 0xfc800003) AM_WRITE(sound_w) + AM_RANGE(0xfca00000, 0xfca00003) AM_READ_PORT("DSW1") + AM_RANGE(0xfcc00000, 0xfcc0005b) AM_WRITENOP // crt registers ? + AM_RANGE(0xfd000000, 0xfeffffff) AM_ROM AM_REGION("user1", 0) + AM_RANGE(0xfff80000, 0xffffffff) AM_ROM AM_REGION("maincpu", 0) +ADDRESS_MAP_END + + +/************************************* + * + * Sound CPU memory map + * + *************************************/ + +static ADDRESS_MAP_START( sound_prg_map, AS_PROGRAM, 8, eolith_state ) + AM_RANGE(0x0000, 0x7fff) AM_ROM +ADDRESS_MAP_END + +static ADDRESS_MAP_START( sound_io_map, AS_IO, 8, eolith_state ) + AM_RANGE(0x0000, 0x7fff) AM_ROMBANK("sound_bank") + AM_RANGE(0x8000, 0x8000) AM_READ(sound_cmd_r) + AM_RANGE(MCS51_PORT_P1, MCS51_PORT_P1) AM_WRITE(sound_p1_w) +ADDRESS_MAP_END + + +/************************************* + * + * Inputs + * + *************************************/ + +static INPUT_PORTS_START( common ) + PORT_START("IN0") + PORT_BIT( 0x00000001, IP_ACTIVE_LOW, IPT_START1 ) + PORT_BIT( 0x00000002, IP_ACTIVE_LOW, IPT_START2 ) + PORT_BIT( 0x00000004, IP_ACTIVE_LOW, IPT_UNUSED ) + PORT_BIT( 0x00000008, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, do_read) + PORT_BIT( 0x00000010, IP_ACTIVE_LOW, IPT_COIN1 ) + PORT_BIT( 0x00000020, IP_ACTIVE_LOW, IPT_UNUSED ) + PORT_BIT( 0x00000040, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, eolith_state, eolith_speedup_getvblank, NULL) + PORT_BIT( 0x00003f80, IP_ACTIVE_LOW, IPT_UNUSED ) + PORT_BIT( 0x00004000, IP_ACTIVE_LOW, IPT_SERVICE1 ) + PORT_SERVICE_NO_TOGGLE( 0x00008000, IP_ACTIVE_LOW ) + PORT_BIT( 0x00010000, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) + PORT_BIT( 0x00020000, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) + PORT_BIT( 0x00040000, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) + PORT_BIT( 0x00080000, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) + PORT_BIT( 0x00100000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) + PORT_BIT( 0x00200000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) + PORT_BIT( 0x00400000, IP_ACTIVE_LOW, IPT_UNUSED ) + PORT_BIT( 0x00800000, IP_ACTIVE_LOW, IPT_UNUSED ) + PORT_BIT( 0x01000000, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) + PORT_BIT( 0x02000000, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) + PORT_BIT( 0x04000000, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) + PORT_BIT( 0x08000000, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) + PORT_BIT( 0x10000000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) + PORT_BIT( 0x20000000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) + PORT_BIT( 0x40000000, IP_ACTIVE_LOW, IPT_UNUSED ) + PORT_BIT( 0x80000000, IP_ACTIVE_LOW, IPT_UNUSED ) + + PORT_START("DSW1") + PORT_DIPUNUSED_DIPLOC( 0x00000001, IP_ACTIVE_LOW, "SW4:1" ) + PORT_DIPUNUSED_DIPLOC( 0x00000002, IP_ACTIVE_LOW, "SW4:2" ) + PORT_DIPUNUSED_DIPLOC( 0x00000004, IP_ACTIVE_LOW, "SW4:3" ) + PORT_DIPUNUSED_DIPLOC( 0x00000008, IP_ACTIVE_LOW, "SW4:4" ) + PORT_DIPUNUSED_DIPLOC( 0x00000010, IP_ACTIVE_LOW, "SW3:1" ) + PORT_DIPUNUSED_DIPLOC( 0x00000020, IP_ACTIVE_LOW, "SW3:2" ) + PORT_DIPUNUSED_DIPLOC( 0x00000040, IP_ACTIVE_LOW, "SW3:3" ) + PORT_DIPUNUSED_DIPLOC( 0x00000080, IP_ACTIVE_LOW, "SW3:4" ) + PORT_BIT( 0xffffff00, IP_ACTIVE_LOW, IPT_UNUSED ) + + PORT_START( "EEPROMOUT" ) + PORT_BIT( 0x00000002, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, cs_write) + PORT_BIT( 0x00000004, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, clk_write) + PORT_BIT( 0x00000008, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, di_write) +INPUT_PORTS_END + +static INPUT_PORTS_START( linkypip ) + PORT_INCLUDE(common) + + PORT_MODIFY("IN0") + PORT_BIT( 0x00004000, IP_ACTIVE_LOW, IPT_UNUSED ) /* No Service1 */ + PORT_BIT( 0x00008000, IP_ACTIVE_LOW, IPT_UNUSED ) /* No Service */ + PORT_BIT( 0x00400000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) + PORT_BIT( 0x40000000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) + + PORT_MODIFY("DSW1") + PORT_DIPNAME( 0x00000003, 0x00000003, "Don't Touch" ) PORT_DIPLOCATION("SW4:1,2") // See notes in header of source. + PORT_DIPSETTING( 0x00000000, "Fail (0)" ) + PORT_DIPSETTING( 0x00000001, "Fail (1)" ) + PORT_DIPSETTING( 0x00000002, "Fail (2)" ) + PORT_DIPSETTING( 0x00000003, "Working (3)" ) + PORT_DIPNAME( 0x0000000c, 0x0000000c, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW4:3,4") + PORT_DIPSETTING( 0x00000000, DEF_STR( 4C_1C ) ) + PORT_DIPSETTING( 0x00000004, DEF_STR( 3C_1C ) ) + PORT_DIPSETTING( 0x00000008, DEF_STR( 2C_1C ) ) + PORT_DIPSETTING( 0x0000000c, DEF_STR( 1C_1C ) ) + PORT_DIPNAME( 0x00000010, 0x00000010, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW3:1") + PORT_DIPSETTING( 0x00000010, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00000000, DEF_STR( On ) ) + PORT_DIPNAME( 0x00000020, 0x00000020, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW3:2") + PORT_DIPSETTING( 0x00000020, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00000000, DEF_STR( On ) ) + PORT_DIPNAME( 0x00000040, 0x00000040, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW3:3") + PORT_DIPSETTING( 0x00000040, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00000000, DEF_STR( On ) ) + PORT_DIPNAME( 0x00000080, 0x00000080, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW3:4") + PORT_DIPSETTING( 0x00000080, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00000000, DEF_STR( On ) ) +INPUT_PORTS_END + +static INPUT_PORTS_START( ironfort ) + PORT_INCLUDE(common) + + PORT_MODIFY("IN0") + PORT_BIT( 0x00004000, IP_ACTIVE_LOW, IPT_UNUSED ) /* No Service1 */ + PORT_BIT( 0x00008000, IP_ACTIVE_LOW, IPT_UNUSED ) /* No Service */ + + PORT_MODIFY("DSW1") + PORT_DIPNAME( 0x00000001, 0x00000001, "Show Dip-switch Information" ) PORT_DIPLOCATION("SW4:1") + PORT_DIPSETTING( 0x00000001, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00000000, DEF_STR( On ) ) + PORT_DIPNAME( 0x00000002, 0x00000002, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW4:2") + PORT_DIPSETTING( 0x00000000, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00000002, DEF_STR( On ) ) + PORT_DIPNAME( 0x0000000c, 0x0000000c, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW4:3,4") + PORT_DIPSETTING( 0x00000008, "1" ) + PORT_DIPSETTING( 0x00000004, "2" ) + PORT_DIPSETTING( 0x0000000c, "3" ) + PORT_DIPSETTING( 0x00000000, "4" ) + PORT_DIPNAME( 0x00000030, 0x00000030, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW3:1,2") + PORT_DIPSETTING( 0x00000010, DEF_STR( 3C_1C ) ) + PORT_DIPSETTING( 0x00000020, DEF_STR( 2C_1C ) ) + PORT_DIPSETTING( 0x00000030, DEF_STR( 1C_1C ) ) + PORT_DIPSETTING( 0x00000000, DEF_STR( Free_Play ) ) + PORT_DIPNAME( 0x000000c0, 0x000000c0, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW3:3,4") + PORT_DIPSETTING( 0x00000000, DEF_STR( Very_Hard ) ) + PORT_DIPSETTING( 0x00000040, DEF_STR( Hard ) ) + PORT_DIPSETTING( 0x000000c0, DEF_STR( Normal ) ) + PORT_DIPSETTING( 0x00000080, DEF_STR( Easy ) ) +INPUT_PORTS_END + +static INPUT_PORTS_START( ironfortj ) + PORT_INCLUDE(ironfort) + + PORT_MODIFY("DSW1") + PORT_DIPNAME( 0x00000002, 0x00000000, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW4:2") + PORT_DIPSETTING( 0x00000002, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00000000, DEF_STR( On ) ) + PORT_DIPNAME( 0x00000030, 0x00000030, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW3:1,2") + PORT_DIPSETTING( 0x00000000, DEF_STR( 4C_1C ) ) + PORT_DIPSETTING( 0x00000010, DEF_STR( 3C_1C ) ) + PORT_DIPSETTING( 0x00000020, DEF_STR( 2C_1C ) ) + PORT_DIPSETTING( 0x00000030, DEF_STR( 1C_1C ) ) +INPUT_PORTS_END + +static INPUT_PORTS_START( hidnctch ) + PORT_INCLUDE(common) + + PORT_MODIFY("IN0") + PORT_BIT( 0x00000020, IP_ACTIVE_LOW, IPT_COIN2 ) + + PORT_MODIFY("DSW1") + PORT_SERVICE_DIPLOC( 0x00000001, IP_ACTIVE_LOW, "SW4:1" ) + PORT_DIPNAME( 0x00000002, 0x00000002, "Show Counters" ) PORT_DIPLOCATION("SW4:2") + PORT_DIPSETTING( 0x00000002, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00000000, DEF_STR( On ) ) +INPUT_PORTS_END + +static INPUT_PORTS_START( hidctch2 ) + PORT_INCLUDE(common) + + PORT_MODIFY("IN0") + PORT_BIT( 0x00000020, IP_ACTIVE_LOW, IPT_COIN2 ) + + PORT_MODIFY("DSW1") + PORT_SERVICE_DIPLOC( 0x00000001, IP_ACTIVE_LOW, "SW4:1" ) + PORT_DIPNAME( 0x00000002, 0x00000002, "Show Counters" ) PORT_DIPLOCATION("SW4:2") + PORT_DIPSETTING( 0x00000002, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00000000, DEF_STR( On ) ) + PORT_DIPNAME( 0x00000008, 0x00000008, "Skip ROM DATA Check" ) PORT_DIPLOCATION("SW4:4") + PORT_DIPSETTING( 0x00000008, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00000000, DEF_STR( On ) ) +INPUT_PORTS_END + +static INPUT_PORTS_START( candy ) + PORT_INCLUDE(common) + + PORT_MODIFY("IN0") + PORT_BIT( 0x00000020, IP_ACTIVE_LOW, IPT_COIN2 ) + + PORT_MODIFY("DSW1") + PORT_DIPNAME( 0x00000001, 0x00000001, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW4:1") // always has 1 credit + PORT_DIPSETTING( 0x00000001, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00000000, DEF_STR( On ) ) + PORT_DIPNAME( 0x00000002, 0x00000002, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW4:2") + PORT_DIPSETTING( 0x00000002, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00000000, DEF_STR( On ) ) + PORT_DIPNAME( 0x00000004, 0x00000004, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW4:3") + PORT_DIPSETTING( 0x00000004, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00000000, DEF_STR( On ) ) + PORT_DIPNAME( 0x00000008, 0x00000008, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW4:4") + PORT_DIPSETTING( 0x00000008, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00000000, DEF_STR( On ) ) + PORT_DIPNAME( 0x00000010, 0x00000010, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW3:1") + PORT_DIPSETTING( 0x00000010, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00000000, DEF_STR( On ) ) + PORT_DIPNAME( 0x00000020, 0x00000020, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW3:2") + PORT_DIPSETTING( 0x00000020, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00000000, DEF_STR( On ) ) + PORT_DIPNAME( 0x00000040, 0x00000040, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW3:3") + PORT_DIPSETTING( 0x00000040, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00000000, DEF_STR( On ) ) + PORT_DIPNAME( 0x00000080, 0x00000080, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW3:4") + PORT_DIPSETTING( 0x00000080, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00000000, DEF_STR( On ) ) +INPUT_PORTS_END + +static INPUT_PORTS_START( hidctch3 ) + PORT_INCLUDE(common) + PORT_MODIFY("IN0") + PORT_BIT( 0x00ff0000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) + PORT_BIT( 0xff000000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) + + PORT_MODIFY("DSW1") + PORT_SERVICE_DIPLOC( 0x00000001, IP_ACTIVE_LOW, "SW4:1" ) /* Use Service ("F2") to navigate & Service1 ("9") to select */ + + PORT_START("PEN_X_P1") + PORT_BIT( 0xffff, 0, IPT_LIGHTGUN_X ) PORT_CROSSHAIR(X, 1.0, 0.0, 0) PORT_MINMAX(0,159) PORT_SENSITIVITY(25) PORT_KEYDELTA(1) PORT_PLAYER(1) + + PORT_START("PEN_Y_P1") + PORT_BIT( 0xffff, 0, IPT_LIGHTGUN_Y ) PORT_CROSSHAIR(Y, 1.0, 0.0, 0) PORT_MINMAX(0,119) PORT_SENSITIVITY(25) PORT_KEYDELTA(1) PORT_PLAYER(1) + + PORT_START("PEN_X_P2") + PORT_BIT( 0xffff, 0, IPT_LIGHTGUN_X ) PORT_CROSSHAIR(X, 1.0, 0.0, 0) PORT_MINMAX(0,159) PORT_SENSITIVITY(25) PORT_KEYDELTA(1) PORT_PLAYER(2) + + PORT_START("PEN_Y_P2") + PORT_BIT( 0xffff, 0, IPT_LIGHTGUN_Y ) PORT_CROSSHAIR(Y, 1.0, 0.0, 0) PORT_MINMAX(0,119) PORT_SENSITIVITY(25) PORT_KEYDELTA(1) PORT_PLAYER(2) +INPUT_PORTS_END + +static INPUT_PORTS_START( raccoon ) + PORT_INCLUDE(common) + + PORT_MODIFY("IN0") + PORT_BIT( 0x00008000, IP_ACTIVE_LOW, IPT_UNUSED ) /* No Service */ + + PORT_MODIFY("DSW1") + PORT_DIPNAME( 0x0000000f, 0x0000000f, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW4:1,2,3,4") + PORT_DIPSETTING( 0x0000000d, DEF_STR( 4C_1C ) ) + PORT_DIPSETTING( 0x0000000e, DEF_STR( 3C_1C ) ) + PORT_DIPSETTING( 0x0000000c, DEF_STR( 2C_1C ) ) + PORT_DIPSETTING( 0x0000000f, DEF_STR( 1C_1C ) ) + // other values are just mirrors +INPUT_PORTS_END + +static INPUT_PORTS_START( landbrk ) + PORT_INCLUDE(common) + + PORT_MODIFY("DSW1") + PORT_SERVICE_DIPLOC( 0x00000001, IP_ACTIVE_LOW, "SW4:1" ) + PORT_DIPNAME( 0x00000002, 0x00000002, "Show Counters" ) PORT_DIPLOCATION("SW4:2") + PORT_DIPSETTING( 0x00000002, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00000000, DEF_STR( On ) ) +INPUT_PORTS_END + +static INPUT_PORTS_START( penfan ) + PORT_INCLUDE(common) + + PORT_MODIFY("DSW1") + PORT_SERVICE_DIPLOC( 0x00000008, IP_ACTIVE_LOW, "SW4:4" ) +INPUT_PORTS_END + + +static INPUT_PORTS_START( stealsee ) + PORT_INCLUDE(common) + + PORT_MODIFY("IN0") + PORT_BIT( 0x00000040, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, eolith_state, stealsee_speedup_getvblank, NULL) +INPUT_PORTS_END + + +static INPUT_PORTS_START( puzzlekg ) + PORT_INCLUDE(common) + + PORT_MODIFY("IN0") + PORT_BIT( 0x00004000, IP_ACTIVE_LOW, IPT_UNUSED ) /* No Service1 */ + PORT_BIT( 0x00008000, IP_ACTIVE_LOW, IPT_UNUSED ) /* No Service */ + + PORT_MODIFY("DSW1") + PORT_SERVICE_DIPLOC( 0x0000000f, IP_ACTIVE_LOW, "SW4:1,2,3,4" ) // every bit enables it +INPUT_PORTS_END + + +/************************************* + * + * Machine driver + * + *************************************/ + +static MACHINE_CONFIG_START( eolith45, eolith_state ) + MCFG_CPU_ADD("maincpu", E132N, 45000000) /* 45 MHz */ + MCFG_CPU_PROGRAM_MAP(eolith_map) + MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", eolith_state, eolith_speedup, "screen", 0, 1) + + /* Sound CPU */ + MCFG_CPU_ADD("soundcpu", I8032, XTAL_12MHz) + MCFG_CPU_PROGRAM_MAP(sound_prg_map) + MCFG_CPU_IO_MAP(sound_io_map) + + MCFG_MACHINE_RESET_OVERRIDE(eolith_state,eolith) + + MCFG_EEPROM_SERIAL_93C66_8BIT_ADD("eeprom") + MCFG_EEPROM_ERASE_TIME(attotime::from_usec(250)) + MCFG_EEPROM_WRITE_TIME(attotime::from_usec(250)) + +// for testing sound sync +// MCFG_QUANTUM_PERFECT_CPU("maincpu") +// MCFG_QUANTUM_TIME(attotime::from_hz(6000)) + + /* video hardware */ + MCFG_SCREEN_ADD("screen", RASTER) + MCFG_SCREEN_REFRESH_RATE(60) + MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) + MCFG_SCREEN_SIZE(512, 262) + MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239) + MCFG_SCREEN_UPDATE_DRIVER(eolith_state, screen_update_eolith) + MCFG_SCREEN_PALETTE("palette") + + MCFG_PALETTE_ADD_RRRRRGGGGGBBBBB("palette") + + MCFG_VIDEO_START_OVERRIDE(eolith_state,eolith) + + /* sound hardware */ + MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") + + MCFG_SOUND_ADD("qs1000", QS1000, XTAL_24MHz) + MCFG_QS1000_EXTERNAL_ROM(true) + MCFG_QS1000_IN_P1_CB(READ8(eolith_state, qs1000_p1_r)) + MCFG_QS1000_OUT_P1_CB(WRITE8(eolith_state, qs1000_p1_w)) + MCFG_SOUND_ROUTE(0, "lspeaker", 1.0) + MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) +MACHINE_CONFIG_END + +static MACHINE_CONFIG_DERIVED( eolith50, eolith45 ) + MCFG_CPU_MODIFY("maincpu") + MCFG_CPU_CLOCK(50000000) /* 50 MHz */ +MACHINE_CONFIG_END + +static MACHINE_CONFIG_DERIVED( ironfort, eolith45 ) + MCFG_CPU_MODIFY("maincpu") + MCFG_CPU_CLOCK(44900000) /* Normaly 45MHz??? but PCB actually had a 44.9MHz OSC, so it's value is used */ +MACHINE_CONFIG_END + + +/************************************* + * + * ROM definition + * + *************************************/ + +/* + +Iron Fortress +Eolith, 1998 + +This game runs on hardware that looks exactly like the Gradation 2D PCB +but there's no text or labelling on the PCB to say that. However, it is +an original Eolith PCB. + +Printed on the back of the pcb is "9752 12-133" + +PCB Layout +---------- + +(No PCB number) +|-------------------------------------------------| +| VOL KM6161002 KM6161002 IS61C1024| +| VOL | +| KM6161002 KM6161002 IS61C1024| +| 24MHz QS1001A DSW4 DSW3 | +| QS1000 IS61C1024| +| U107 U97 EV0514-001 | +|J IC61C1024| +|A 14.31818MHz | +|M E1-32N | +|M | +|A 93C66 44.9MHz | +| | +| | +| GMS80C301 | +| 12MHz | +| | +| U108 U41* U39 U36* U34 | +| U111 U42* U40 U37* U35 U43 | +| | +|-------------------------------------------------| +Notes: + E1-32N - Hyperstone E1-32N CPU, clock 44.900MHz (QFP160) + 80C301 clock - 12.000MHz + IS61C1024 - ISSI 128k x4 High Speed CMOS Static RAM (SOJ32) + KM6161002 - Samsung 64k x4 Ultra High Speed CMOS Video Static RAM (SOJ44) + QS1000 - QDSP QS1000 AdMOS 9638R, Wavetable Audio chip, clock input of 24.000MHz (QFP100) + QS1001A - QDSP QS1001A 512k x8 MaskROM (SOP32) + EV0514-001 - Custom Eolith IC (QFP100) + VSync - 60Hz + HSync - 15.64kHz + + DSW4 & DSW3 are 4 switch dipswitches + + U107, U97, U111, U108 & U43 are populated with EPROMs and are not labeled in any way + U34 - U42 are C32000 MASK roms read as 27C322 those marked with '*' are unpopulated + + qs1001a.u96 was not dumped from this PCB, but is a standard sample rom found on many Eolith gradation PCBs +*/ + +ROM_START( ironfort ) + ROM_REGION( 0x80000, "maincpu", 0 ) /* Hyperstone CPU Code */ + ROM_LOAD( "u43", 0x00000, 0x80000, CRC(29f55825) SHA1(e048ec0f5d83d4b64aa48d706fa0947afcdc1a3d) ) /* 27C040 eprom with no label */ + + ROM_REGION32_BE( 0x2000000, "user1", ROMREGION_ERASE00 ) /* Game Data - banked ROM, swapping necessary */ + ROM_LOAD32_WORD_SWAP( "if00-00.u39", 0x0000000, 0x400000, CRC(63b74601) SHA1(c111ecf55359e9005a3ec1fe1202a34624f8b242) ) + ROM_LOAD32_WORD_SWAP( "if00-01.u34", 0x0000002, 0x400000, CRC(890470b3) SHA1(57df122ab01744b47ebd38554eb6a7d780977be2) ) + ROM_LOAD32_WORD_SWAP( "if00-02.u40", 0x0800000, 0x400000, CRC(63b5cca5) SHA1(4ec8b813c7e465f659a4a2361ddfbad763bf6e6a) ) + ROM_LOAD32_WORD_SWAP( "if00-03.u35", 0x0800002, 0x400000, CRC(54a76cb5) SHA1(21fb3bedf065079d59f642b19487f76590f97558) ) + + ROM_REGION( 0x08000, "soundcpu", 0 ) /* Sound (80c301) CPU Code */ + ROM_LOAD( "u111", 0x0000, 0x8000, CRC(5d1d1387) SHA1(91c8aa4c7472b91c149bef9da64569a97df35298) ) /* 27C256 eprom with no label */ + + ROM_REGION( 0x080000, "sounddata", 0 ) /* Music data */ + ROM_LOAD( "u108", 0x00000, 0x80000, CRC(89233144) SHA1(74e87679a7559450934b80fcfcb667d9845977a7) ) /* 27C040 eprom with no label */ + + ROM_REGION( 0x008000, "qs1000:cpu", 0 ) /* QDSP (8052) Code */ + ROM_LOAD( "u107", 0x0000, 0x8000, CRC(89450a2f) SHA1(d58efa805f497bec179fdbfb8c5860ac5438b4ec) ) /* 27C256 eprom with no label */ + + ROM_REGION( 0x1000000, "qs1000", 0 ) /* QDSP sample ROMs */ + ROM_LOAD( "u97", 0x00000, 0x80000, CRC(47b9d43a) SHA1(e0bc42892480cb563dc694fcefa8ca0b984749dd) ) /* 27C040 eprom with no label */ + ROM_LOAD( "qs1001a.u96", 0x80000, 0x80000, CRC(d13c6407) SHA1(57b14f97c7d4f9b5d9745d3571a0b7115fbe3176) ) +ROM_END + +ROM_START( ironfortj ) + ROM_REGION( 0x80000, "maincpu", 0 ) /* Hyperstone CPU Code */ + ROM_LOAD( "u43.bin", 0x00000, 0x80000, CRC(f1f19c9a) SHA1(98531ecedd1277e6d10395794a66d615df7ddbd6) ) /* 27C040 eprom with no label */ + + ROM_REGION32_BE( 0x2000000, "user1", ROMREGION_ERASE00 ) /* Game Data - banked ROM, swapping necessary */ + ROM_LOAD32_WORD_SWAP( "if00-00.u39", 0x0000000, 0x400000, CRC(63b74601) SHA1(c111ecf55359e9005a3ec1fe1202a34624f8b242) ) + ROM_LOAD32_WORD_SWAP( "if00-01.u34", 0x0000002, 0x400000, CRC(890470b3) SHA1(57df122ab01744b47ebd38554eb6a7d780977be2) ) + ROM_LOAD32_WORD_SWAP( "if00-02.u40", 0x0800000, 0x400000, CRC(63b5cca5) SHA1(4ec8b813c7e465f659a4a2361ddfbad763bf6e6a) ) + ROM_LOAD32_WORD_SWAP( "if00-03.u35", 0x0800002, 0x400000, CRC(54a76cb5) SHA1(21fb3bedf065079d59f642b19487f76590f97558) ) + + ROM_REGION( 0x08000, "soundcpu", 0 ) /* Sound (80c301) CPU Code */ + ROM_LOAD( "u111", 0x0000, 0x8000, CRC(5d1d1387) SHA1(91c8aa4c7472b91c149bef9da64569a97df35298) ) /* 27C256 eprom with no label */ + + ROM_REGION( 0x080000, "sounddata", 0 ) /* Music data */ + ROM_LOAD( "u108", 0x00000, 0x80000, CRC(89233144) SHA1(74e87679a7559450934b80fcfcb667d9845977a7) ) /* 27C040 eprom with no label */ + + ROM_REGION( 0x008000, "qs1000:cpu", 0 ) /* QDSP (8052) Code */ + ROM_LOAD( "u107", 0x0000, 0x8000, CRC(89450a2f) SHA1(d58efa805f497bec179fdbfb8c5860ac5438b4ec) ) /* 27C256 eprom with no label */ + + ROM_REGION( 0x1000000, "qs1000", 0 ) /* QDSP sample ROMs */ + ROM_LOAD( "u97", 0x00000, 0x80000, CRC(47b9d43a) SHA1(e0bc42892480cb563dc694fcefa8ca0b984749dd) ) /* 27C040 eprom with no label */ + ROM_LOAD( "qs1001a.u96", 0x80000, 0x80000, CRC(d13c6407) SHA1(57b14f97c7d4f9b5d9745d3571a0b7115fbe3176) ) +ROM_END + +/* Linky Pipe */ + +ROM_START( linkypip ) + ROM_REGION( 0x80000, "maincpu", 0 ) /* Hyperstone CPU Code */ + ROM_LOAD( "u43.bin", 0x00000, 0x80000, CRC(9ef937de) SHA1(b121d683898311baaa1e2aba199dec0c1d59f55a) ) + + ROM_REGION32_BE( 0x2000000, "user1", ROMREGION_ERASE00 ) /* Game Data - banked ROM, swapping necessary */ + ROM_LOAD32_WORD_SWAP( "lp00.u39", 0x0000000, 0x400000, CRC(c1e71bbc) SHA1(f54b374b05ce6044944ba10ba8a634eb661b092d) ) + ROM_LOAD32_WORD_SWAP( "lp01.u34", 0x0000002, 0x400000, CRC(30780c08) SHA1(15d7bf1397c25eb813c79fc9cea88ac427b1d9c7) ) + ROM_LOAD32_WORD_SWAP( "lp02.u40", 0x0800000, 0x400000, CRC(3381bd2c) SHA1(78b30f3940e5c9887ab4ad398bde356671deabb5) ) + ROM_LOAD32_WORD_SWAP( "lp03.u35", 0x0800002, 0x400000, CRC(459008f3) SHA1(c59e58c3afc1b7466df306c1b57110a6b644cdf4) ) + + ROM_REGION( 0x08000, "soundcpu", 0 ) /* Sound (80c301) CPU Code */ + ROM_LOAD( "u111.bin", 0x0000, 0x8000, CRC(52f419ea) SHA1(79c9f135b0cf8b1928411faed9b447cd98a83287) ) + + ROM_REGION( 0x080000, "sounddata", 0 ) /* Music data */ + ROM_LOAD( "u108.bin", 0x00000, 0x80000, CRC(ca65856f) SHA1(f45868552389ccd637b5ccb1067b94e1226001ce) ) + + ROM_REGION( 0x008000, "qs1000:cpu", 0 ) /* QDSP (8052) Code */ + ROM_LOAD( "u107.bin", 0x0000, 0x8000, CRC(afd5263d) SHA1(71ace1b749d8a6b84d08b97185e7e512d04e4b8d) ) + + ROM_REGION( 0x1000000, "qs1000", 0 ) /* QDSP sample ROMs */ + ROM_LOAD( "u97.bin", 0x00000, 0x80000, CRC(4465fe8d) SHA1(4d77169fff2fee5424e8da833088a544318b2981) ) + ROM_LOAD( "qs1001a.u96", 0x80000, 0x80000, CRC(d13c6407) SHA1(57b14f97c7d4f9b5d9745d3571a0b7115fbe3176) ) +ROM_END + +/* Hidden Catch */ + +ROM_START( hidnctch ) + ROM_REGION( 0x80000, "maincpu", 0 ) /* Hyperstone CPU Code */ + ROM_LOAD( "hc_u43.bin", 0x00000, 0x80000, CRC(635b4478) SHA1(31ea4a9725e0c329447c7d221c22494c905f6940) ) + + ROM_REGION32_BE( 0x2000000, "user1", ROMREGION_ERASE00 ) /* Game Data - banked ROM, swapping necessary */ + ROM_LOAD32_WORD_SWAP( "hc0_u39.bin", 0x0000000, 0x400000, CRC(eefb6add) SHA1(a0f6f2cf86699a666be0647274d8c9381782640d) ) + ROM_LOAD32_WORD_SWAP( "hc1_u34.bin", 0x0000002, 0x400000, CRC(482f3e52) SHA1(7a527c6af4c80e10cc25219a04ccf7c7ea1b23af) ) + ROM_LOAD32_WORD_SWAP( "hc2_u40.bin", 0x0800000, 0x400000, CRC(914a1544) SHA1(683cb007ace50d1ba88253da6ad71dc3a395299d) ) + ROM_LOAD32_WORD_SWAP( "hc3_u35.bin", 0x0800002, 0x400000, CRC(80c59133) SHA1(66ca4c2c014c4a1c87c46a3971732f0a2be95408) ) + ROM_LOAD32_WORD_SWAP( "hc4_u41.bin", 0x1000000, 0x400000, CRC(9a9e2203) SHA1(a90f5842b63696753e6c16114b1893bbeb91e45c) ) + ROM_LOAD32_WORD_SWAP( "hc5_u36.bin", 0x1000002, 0x400000, CRC(74b1719d) SHA1(fe2325259117598ad7c23217426ac9c28440e3a0) ) + // 0x1800000 - 0x1ffffff empty + + ROM_REGION( 0x008000, "soundcpu", 0 ) /* Sound (80c301) CPU Code */ + ROM_LOAD( "hc_u111.bin", 0x0000, 0x8000, CRC(79012474) SHA1(09a2d5705d7bc52cc2d1644c87c1e31ee44813ef) ) + + ROM_REGION( 0x080000, "sounddata", 0 ) /* Music data */ + ROM_LOAD( "hc_u108.bin", 0x00000, 0x80000, CRC(2bae46cb) SHA1(7c43f1002dfc20b9c1bb1647f7261dfa7ed2b4f9) ) + + ROM_REGION( 0x008000, "qs1000:cpu", 0 ) /* QDSP (8052) Code */ + ROM_LOAD( "hc_u107.bin", 0x0000, 0x8000, CRC(afd5263d) SHA1(71ace1b749d8a6b84d08b97185e7e512d04e4b8d) ) + + ROM_REGION( 0x1000000, "qs1000", 0 ) /* QDSP sample ROMs */ + ROM_LOAD( "hc_u97.bin", 0x00000, 0x80000, CRC(ebf9f77b) SHA1(5d472aeb84fc011e19b9e61d34aeddfe7d6ac216) ) + ROM_LOAD( "qs1001a.u96", 0x80000, 0x80000, CRC(d13c6407) SHA1(57b14f97c7d4f9b5d9745d3571a0b7115fbe3176) ) +ROM_END + +/* + +New Hidden Catch +Eolith, 1999 + +PCB Layout +---------- + +GRADATION J.VER 3.02 +|-------------------------------------------------| +| TDA1519 VOL KM6161002 KM6161002 IS61C1024| +| VOL | +| KM6161002 KM6161002 IS61C1024| +| 24MHz QS1001A DSW(4) | +| QS1000 DSW(4) IS61C1024| +| U107 U97 EV0514-001 | +|J IC61C1024| +|A 14.31818MHz | +|M SERVICE_SW E1-32N | +|M TEST_SW | +|A 93C66 45MHz | +| | +| | +| GMS80C301 | +| 12MHz | +| | +| U108 U41 U39 U37 U35 U43 | +| U111 U42 U40 U38 U36 U34 | +| | +|-------------------------------------------------| +Notes: + E1-32N - Hyperstone E1-32N CPU, clock 45.000MHz (QFP160) + 80C301 clock - 12.000MHz + IS61C1024 - ISSI 128k x8 High Speed CMOS Static RAM (SOJ32) + KM6161002 - Samsung 64k x16 Ultra High Speed CMOS Video Static RAM (SOJ44) + TDA1519 - Audio Power AMP + QS1000 - QDSP QS1000 AdMOS 9638R, Wavetable Audio chip, clock input of 24.000MHz (QFP100) + QS1001A - QDSP QS1001A 512k x8 MaskROM (SOP32) + EV0514-001 - Custom Eolith IC (QFP100) + VSync - 60Hz + HSync - 15.64kHz +*/ + +ROM_START( nhidctch ) + ROM_REGION( 0x80000, "maincpu", 0 ) /* Hyperstone CPU Code */ + ROM_LOAD( "u43", 0x00000, 0x80000, CRC(44296fdb) SHA1(1faf7061342d4c86f6ca416d922cb98ffb72f250) ) + + ROM_REGION32_BE( 0x2000000, "user1", ROMREGION_ERASE00 ) /* Game Data - banked ROM, swapping necessary */ + ROM_LOAD32_WORD_SWAP( "hc000.u39", 0x0000000, 0x400000, CRC(eefb6add) SHA1(a0f6f2cf86699a666be0647274d8c9381782640d) ) + ROM_LOAD32_WORD_SWAP( "hc001.u34", 0x0000002, 0x400000, CRC(482f3e52) SHA1(7a527c6af4c80e10cc25219a04ccf7c7ea1b23af) ) + ROM_LOAD32_WORD_SWAP( "hc002.u40", 0x0800000, 0x400000, CRC(914a1544) SHA1(683cb007ace50d1ba88253da6ad71dc3a395299d) ) + ROM_LOAD32_WORD_SWAP( "hc003.u35", 0x0800002, 0x400000, CRC(80c59133) SHA1(66ca4c2c014c4a1c87c46a3971732f0a2be95408) ) + ROM_LOAD32_WORD_SWAP( "hc004.u41", 0x1000000, 0x400000, CRC(9a9e2203) SHA1(a90f5842b63696753e6c16114b1893bbeb91e45c) ) + ROM_LOAD32_WORD_SWAP( "hc005.u36", 0x1000002, 0x400000, CRC(74b1719d) SHA1(fe2325259117598ad7c23217426ac9c28440e3a0) ) + ROM_LOAD32_WORD_SWAP( "hc006.u42", 0x1800000, 0x400000, CRC(2ec58049) SHA1(2a95d615f397cc4befdf92fcfca64a2726f6a791) ) + ROM_LOAD32_WORD_SWAP( "hc007.u37", 0x1800002, 0x400000, CRC(07e25def) SHA1(6e52a897cb2894625721010b8468ff237930b19b) ) + + ROM_REGION( 0x008000, "soundcpu", 0 ) /* Sound (80c301) CPU Code */ + ROM_LOAD( "u111", 0x0000, 0x8000, CRC(79012474) SHA1(09a2d5705d7bc52cc2d1644c87c1e31ee44813ef) ) + + ROM_REGION( 0x080000, "sounddata", 0 ) /* Music data */ + ROM_LOAD( "u108", 0x00000, 0x80000, CRC(2bae46cb) SHA1(7c43f1002dfc20b9c1bb1647f7261dfa7ed2b4f9) ) + + ROM_REGION( 0x008000, "qs1000:cpu", 0 ) /* QDSP (8052) Code */ + ROM_LOAD( "u107", 0x0000, 0x8000, CRC(afd5263d) SHA1(71ace1b749d8a6b84d08b97185e7e512d04e4b8d) ) + + ROM_REGION( 0x1000000, "qs1000", 0 ) /* QDSP sample ROMs */ + ROM_LOAD( "u97", 0x00000, 0x80000, CRC(ebf9f77b) SHA1(5d472aeb84fc011e19b9e61d34aeddfe7d6ac216) ) + ROM_LOAD( "qs1001a.u96", 0x80000, 0x80000, CRC(d13c6407) SHA1(57b14f97c7d4f9b5d9745d3571a0b7115fbe3176) ) +ROM_END + +/* +Hidden Catch 2 +Eolith, 1999 + +PCB Layout +---------- + +GRADATION VER 3.03M +|-------------------------------------------------| +| TDA1519 VOL KM6161002 KM6161002 IS61C1024| +| VOL | +| DA1311 KM6161002 KM6161002 IS61C1024| +| 24MHz QS1001A DSW(4) | +| QS1000 DSW(4) IS61C1024| +| U107 U97 EV0514-001 | +|J IC61C1024| +|A 14.31818MHz | +|M SERVICE_SW E1-32N | +|M TEST_SW | +|A 93C66 50MHz | +| | +| |---------Sub Board (above)--------| +| AT89C52 7705 | +| 12MHz | | +| | | +| U108 U41 U39 U37 U35 U43 | +| U111 | U42 U40 U38 U36 U34 | +| | | +|--------------|----------------------------------| +Notes: + E1-32N - Hyperstone E1-32N CPU, clock 50.000MHz (QFP160) + AT89C52 - Atmel AT89C52 Microcontroller w/8k internal FlashROM, clock 12.000MHz + IS61C1024 - ISSI 128k x8 High Speed CMOS Static RAM (SOJ32) + KM6161002 - Samsung 64k x16 Ultra High Speed CMOS Video Static RAM (SOJ44) + TDA1519 - Audio Power AMP + QS1000 - QDSP QS1000 AdMOS 9638R, Wavetable Audio chip, clock input of 24.000MHz (QFP100) + QS1001A - QDSP QS1001A 512k x8 MaskROM (SOP32) + EV0514-001 - Custom Eolith IC (QFP100) + VSync - 60Hz + HSync - 15.64kHz + + Main board has ROMs populated at U108, U43, U107 & U97 ONLY + Sub Board contains 16x MX29F1610 16M FlashROMs. The filename is the location stamped on the PCB (SOP44) +*/ + +ROM_START( hidctch2 ) + ROM_REGION( 0x80000, "maincpu", 0 ) /* Hyperstone CPU Code */ + ROM_LOAD( "u43", 0x00000, 0x80000, CRC(326d1dbc) SHA1(b33434cd263dc40ee2b6562f72a87a0439a9833e) ) + + ROM_REGION32_BE( 0x2000000, "user1", ROMREGION_ERASE00 ) /* Game Data - banked ROM, swapping necessary */ + ROM_LOAD32_WORD_SWAP( "00", 0x0000000, 0x200000, CRC(c6b1bc84) SHA1(205d1dc5079562b11cef72fef25a3c570eaecf78) ) + ROM_LOAD32_WORD_SWAP( "01", 0x0000002, 0x200000, CRC(5a1c1ab3) SHA1(3c07a98f9ea8b30bac5a260403e688314fd12abb) ) + ROM_LOAD32_WORD_SWAP( "02", 0x0400000, 0x200000, CRC(3f7815aa) SHA1(ed46cbe03fde5cab15e004812036b0aaa00fc628) ) + ROM_LOAD32_WORD_SWAP( "03", 0x0400002, 0x200000, CRC(d686c59b) SHA1(f82d97f17d9cb10cae4d47f4efdd3ba6c5baace3) ) + ROM_LOAD32_WORD_SWAP( "04", 0x0800000, 0x200000, CRC(d35cb515) SHA1(75943b6c8052232c8b01ab57b4d32d54a22e7279) ) + ROM_LOAD32_WORD_SWAP( "05", 0x0800002, 0x200000, CRC(7870e5c6) SHA1(e36a62cb205d396337abdea8e553d70b6da32f8f) ) + ROM_LOAD32_WORD_SWAP( "06", 0x0c00000, 0x200000, CRC(10184a21) SHA1(fc99bc003ba69b651691ca37a5490beae29e36bc) ) + ROM_LOAD32_WORD_SWAP( "07", 0x0c00002, 0x200000, CRC(b6c4879f) SHA1(b672d5d7fc3dd1b32cd2f1084a71d1a225594866) ) + ROM_LOAD32_WORD_SWAP( "08", 0x1000000, 0x200000, CRC(670204d1) SHA1(efdead17ea1d1796f47abf65dc4792a10406b45c) ) + ROM_LOAD32_WORD_SWAP( "09", 0x1000002, 0x200000, CRC(28c0f55c) SHA1(0390aaf272deb1338293823d9d3a27306b2d9db6) ) + ROM_LOAD32_WORD_SWAP( "10", 0x1400000, 0x200000, CRC(45f374f4) SHA1(a5cec2fcb58445e0ff74c86b20aba7accd132ea5) ) + ROM_LOAD32_WORD_SWAP( "11", 0x1400002, 0x200000, CRC(cac54db3) SHA1(c31366e22d242ec0c0bb9f79869352894173db88) ) + ROM_LOAD32_WORD_SWAP( "12", 0x1800000, 0x200000, CRC(66e681ff) SHA1(8f78dec1dc3e5c6825f559cef69e413c98ed9aab) ) + ROM_LOAD32_WORD_SWAP( "13", 0x1800002, 0x200000, CRC(14bd38a9) SHA1(a3ff48de8150616a8ca49abf60225455397b938c) ) + ROM_LOAD32_WORD_SWAP( "14", 0x1c00000, 0x200000, CRC(8eb1b01b) SHA1(e144ba01aa65dc96e22d1d41c3ca87ae19e874d5) ) + ROM_LOAD32_WORD_SWAP( "15", 0x1c00002, 0x200000, CRC(3b06fe4e) SHA1(35356a116e6b825b8ed93c8ea1e016491ac1863a) ) + + ROM_REGION( 0x008000, "soundcpu", 0 ) /* AT89c52 */ + /* This is the first 2K of hc2j.u111 from hidctch2a, verify against the internal dump when decapped */ + ROM_LOAD( "hc2.103", 0x0000, 0x0800, BAD_DUMP CRC(92797034) SHA1(b600f19972986b2e09c56be0ea0c09f92a9fe422) ) /* MCU internal 2K flash */ + + ROM_REGION( 0x080000, "sounddata", 0 ) /* Music data */ + ROM_LOAD( "u108", 0x00000, 0x80000, CRC(75fc7a65) SHA1(308715ab62d28787ee894ddcf7304464e2543b2e) ) + + ROM_REGION( 0x008000, "qs1000:cpu", 0 ) /* QDSP (8052) Code */ + ROM_LOAD( "u107", 0x0000, 0x8000, CRC(89450a2f) SHA1(d58efa805f497bec179fdbfb8c5860ac5438b4ec) ) + + ROM_REGION( 0x1000000, "qs1000", 0 ) /* QDSP sample ROMs */ + ROM_LOAD( "u97", 0x00000, 0x80000, CRC(a7a1627e) SHA1(a93ced858d839daac1fa9a85f4f8c89cb179bad5) ) + ROM_LOAD( "qs1001a.u96", 0x80000, 0x80000, CRC(d13c6407) SHA1(57b14f97c7d4f9b5d9745d3571a0b7115fbe3176) ) +ROM_END + +ROM_START( hidctch2a ) + ROM_REGION( 0x80000, "maincpu", 0 ) /* Hyperstone CPU Code */ + ROM_LOAD( "hc2j.u43", 0x00000, 0x80000, CRC(8d3b8394) SHA1(29093ee13eb3609abc670d6722f3095f03045af6) ) + + ROM_REGION32_BE( 0x2000000, "user1", ROMREGION_ERASE00 ) /* Game Data - banked ROM, swapping necessary */ + ROM_LOAD32_WORD_SWAP( "00", 0x0000000, 0x200000, CRC(c6b1bc84) SHA1(205d1dc5079562b11cef72fef25a3c570eaecf78) ) + ROM_LOAD32_WORD_SWAP( "01", 0x0000002, 0x200000, CRC(5a1c1ab3) SHA1(3c07a98f9ea8b30bac5a260403e688314fd12abb) ) + ROM_LOAD32_WORD_SWAP( "02", 0x0400000, 0x200000, CRC(3f7815aa) SHA1(ed46cbe03fde5cab15e004812036b0aaa00fc628) ) + ROM_LOAD32_WORD_SWAP( "03", 0x0400002, 0x200000, CRC(d686c59b) SHA1(f82d97f17d9cb10cae4d47f4efdd3ba6c5baace3) ) + ROM_LOAD32_WORD_SWAP( "04", 0x0800000, 0x200000, CRC(d35cb515) SHA1(75943b6c8052232c8b01ab57b4d32d54a22e7279) ) + ROM_LOAD32_WORD_SWAP( "05", 0x0800002, 0x200000, CRC(7870e5c6) SHA1(e36a62cb205d396337abdea8e553d70b6da32f8f) ) + ROM_LOAD32_WORD_SWAP( "06", 0x0c00000, 0x200000, CRC(10184a21) SHA1(fc99bc003ba69b651691ca37a5490beae29e36bc) ) + ROM_LOAD32_WORD_SWAP( "07", 0x0c00002, 0x200000, CRC(b6c4879f) SHA1(b672d5d7fc3dd1b32cd2f1084a71d1a225594866) ) + ROM_LOAD32_WORD_SWAP( "08", 0x1000000, 0x200000, CRC(670204d1) SHA1(efdead17ea1d1796f47abf65dc4792a10406b45c) ) + ROM_LOAD32_WORD_SWAP( "09", 0x1000002, 0x200000, CRC(28c0f55c) SHA1(0390aaf272deb1338293823d9d3a27306b2d9db6) ) + ROM_LOAD32_WORD_SWAP( "10", 0x1400000, 0x200000, CRC(45f374f4) SHA1(a5cec2fcb58445e0ff74c86b20aba7accd132ea5) ) + ROM_LOAD32_WORD_SWAP( "11", 0x1400002, 0x200000, CRC(cac54db3) SHA1(c31366e22d242ec0c0bb9f79869352894173db88) ) + ROM_LOAD32_WORD_SWAP( "12", 0x1800000, 0x200000, CRC(66e681ff) SHA1(8f78dec1dc3e5c6825f559cef69e413c98ed9aab) ) + ROM_LOAD32_WORD_SWAP( "13", 0x1800002, 0x200000, CRC(14bd38a9) SHA1(a3ff48de8150616a8ca49abf60225455397b938c) ) + ROM_LOAD32_WORD_SWAP( "14", 0x1c00000, 0x200000, CRC(8eb1b01b) SHA1(e144ba01aa65dc96e22d1d41c3ca87ae19e874d5) ) + ROM_LOAD32_WORD_SWAP( "15", 0x1c00002, 0x200000, CRC(3b06fe4e) SHA1(35356a116e6b825b8ed93c8ea1e016491ac1863a) ) + + ROM_REGION( 0x008000, "soundcpu", 0 ) /* Sound (80c301) CPU Code */ + ROM_LOAD( "hc2j.u111", 0x0000, 0x8000, CRC(79012474) SHA1(09a2d5705d7bc52cc2d1644c87c1e31ee44813ef) ) + + ROM_REGION( 0x080000, "sounddata", 0 ) /* Music data */ + ROM_LOAD( "u108", 0x00000, 0x80000, CRC(75fc7a65) SHA1(308715ab62d28787ee894ddcf7304464e2543b2e) ) + + ROM_REGION( 0x008000, "qs1000:cpu", 0 ) /* QDSP (8052) Code */ + ROM_LOAD( "u107", 0x0000, 0x8000, CRC(89450a2f) SHA1(d58efa805f497bec179fdbfb8c5860ac5438b4ec) ) + + ROM_REGION( 0x1000000, "qs1000", 0 ) /* QDSP sample ROMs */ + ROM_LOAD( "u97", 0x00000, 0x80000, CRC(a7a1627e) SHA1(a93ced858d839daac1fa9a85f4f8c89cb179bad5) ) + ROM_LOAD( "qs1001a.u96", 0x80000, 0x80000, CRC(d13c6407) SHA1(57b14f97c7d4f9b5d9745d3571a0b7115fbe3176) ) +ROM_END + + +ROM_START( hidnc2k ) + ROM_REGION( 0x80000, "maincpu", 0 ) /* Hyperstone CPU Code */ + ROM_LOAD( "27c040.u43", 0x00000, 0x80000, CRC(05063136) SHA1(9c1b3066a571b1e52d57cfe790a55257b37d5b89) ) + + ROM_REGION32_BE( 0x2000000, "user1", ROMREGION_ERASE00 ) /* Game Data - banked ROM, swapping necessary */ + ROM_LOAD32_WORD_SWAP( "hc2000-0.u39", 0x0000000, 0x400000, CRC(10d4fd9a) SHA1(8ecbc0708a41d27ddd5fa1b01eed6411a4f3e6ec) ) + ROM_LOAD32_WORD_SWAP( "hc2000-1.u34", 0x0000002, 0x400000, CRC(6e029c0a) SHA1(e217f6269e1c2a38f414c7220005e8bb6c636c57) ) + ROM_LOAD32_WORD_SWAP( "hc2000-2.u40", 0x0800000, 0x400000, CRC(1dc3fb7f) SHA1(c0cc5cac0be5e4e01fa1eaa9dc30f652431263ce) ) + ROM_LOAD32_WORD_SWAP( "hc2000-3.u35", 0x0800002, 0x400000, CRC(665a884e) SHA1(d0b2c4a531e8f23d5e41dc49a4fb76d5bd53f2cb) ) + ROM_LOAD32_WORD_SWAP( "hc2000-4.u41", 0x1000000, 0x400000, CRC(242ec5b6) SHA1(e1321768086c67980dd63a84ddd1b2197bc5d53a) ) + ROM_LOAD32_WORD_SWAP( "hc2000-5.u36", 0x1000002, 0x400000, CRC(f9c514cd) SHA1(6dd1f269a43e9a23d1ad65c33cf437f8855287a4) ) + ROM_LOAD32_WORD_SWAP( "hc2000-6.u42", 0x1800000, 0x400000, CRC(8be32533) SHA1(46a84a088144f5c1eb5799b86e4f1a84d018c8f3) ) + ROM_LOAD32_WORD_SWAP( "hc2000-7.u37", 0x1800002, 0x400000, CRC(baa9eb90) SHA1(3d449c96d50cfa1f86866d222c148572b5925853) ) + + ROM_REGION( 0x008000, "soundcpu", 0 ) /* AT89c52 */ + /* PROTECTED MCU - This is the first 2K of hc2j.u111 from hidctch2a, verify against the internal dump when decapped */ + /* we have no unprotected version of hidnc2k so this could give completely wrong results */ + ROM_LOAD( "sound.mcu", 0x0000, 0x0800, BAD_DUMP CRC(92797034) SHA1(b600f19972986b2e09c56be0ea0c09f92a9fe422) ) /* MCU internal 2K flash */ + + ROM_REGION( 0x080000, "sounddata", 0 ) /* Music data */ + ROM_LOAD( "27c4000.u108", 0x00000, 0x80000, CRC(776c7906) SHA1(9b8062c944e96f8f9905e1af87b29c80a3b25a10) ) + + ROM_REGION( 0x008000, "qs1000:cpu", 0 ) /* QDSP (8052) Code */ + ROM_LOAD( "275308.u107", 0x0000, 0x8000, CRC(afd5263d) SHA1(71ace1b749d8a6b84d08b97185e7e512d04e4b8d) ) + + ROM_REGION( 0x1000000, "qs1000", 0 ) /* QDSP sample ROMs */ + ROM_LOAD( "27c040.u97", 0x00000, 0x80000, CRC(0997a385) SHA1(b4c569143d08179dd84ede70c3c80d9e36648f77) ) + ROM_LOAD( "qs1001a.u96", 0x80000, 0x80000, CRC(d13c6407) SHA1(57b14f97c7d4f9b5d9745d3571a0b7115fbe3176) ) + + // Gradiation Gift Ver 2.0 99. 6.15 plugin sound board + ROM_REGION( 0x1000000, "oki", 0 ) /* QDSP sample ROMs */ + ROM_LOAD( "27c040.u1top", 0x00000, 0x80000, CRC(d2fece37) SHA1(599908f995bfc55559cc200c07e981d49d6851ff) ) +ROM_END + +/* + +Raccoon World +Eolith, 1998 + +This game runs on hardware that looks exactly like the Gradation 2D PCB +but there's no text or labelling on the PCB to say that. However, it is +an original Eolith PCB. + +PCB Layout +---------- + +(No PCB number) +|-------------------------------------------------| +| KA22065 VOL KM6161002 KM6161002 IS61C1024| +| VOL | +| KM6161002 KM6161002 IS61C1024| +| 24MHz QS1001A DSW(4) | +| QS1000 IS61C1024| +| U107 U97 EV0514-001 | +|J IC61C1024| +|A 14.31818MHz | +|M E1-32N | +|M | +|A 93C66 45MHz | +| |-----ROM SUB BOARD------| | +| | | | +| GMS80C301 | | +| 12MHz | | | +| | | | +| U108 U41 U39 U37 U35 U43 | +| U111 | U42 U40 U38 U36 | U34 | +| | | | +|-------------|------------------------|----------| +Notes: + E1-32N - Hyperstone E1-32N CPU, clock 45.000MHz (QFP160) + 80C301 clock - 12.000MHz + IS61C1024 - ISSI 128k x8 High Speed CMOS Static RAM (SOJ32) + KM6161002 - Samsung 64k x16 Ultra High Speed CMOS Video Static RAM (SOJ44) + KA22065 - Audio Power AMP + QS1000 - QDSP QS1000 AdMOS 9638R, Wavetable Audio chip, clock input of 24.000MHz (QFP100) + QS1001A - QDSP QS1001A 512k x8 MaskROM (SOP32) + EV0514-001 - Custom Eolith IC (QFP100) + VSync - 60Hz + HSync - 15.64kHz + Note only U111, U108 & U43 are populated with EPROMs + + +ROM SUB BOARD +|------------------------| +| U2 U4 U6 U8 | +|U1 U3 U5 U7 | +| | +| | +|U10 U12 U14 U16 | +| U11 U13 U15 U17| +| | +|------------------------| +Only U1, U2 U5, U10, U11 & U14 populated +All ROMs 27C160 EPROM + +*/ + +ROM_START( raccoon ) + ROM_REGION( 0x80000, "maincpu", 0 ) /* Hyperstone CPU Code */ + ROM_LOAD( "racoon-u.43", 0x00000, 0x80000, CRC(711ee026) SHA1(c55dfaa24cbaa7a613657cfb25e7f0085f1e4cbf) ) + + ROM_REGION32_BE( 0x2000000, "user1", ROMREGION_ERASE00 ) /* Game Data - banked ROM, swapping necessary */ + ROM_LOAD32_WORD_SWAP( "racoon.u10", 0x0000000, 0x200000, CRC(f702390e) SHA1(47520ba0e6d3f044136a517ebbec7426a66ce33d) ) + ROM_LOAD32_WORD_SWAP( "racoon.u1", 0x0000002, 0x200000, CRC(49775125) SHA1(2b8ee9dd767465999c828d65bb02b8aaad94177c) ) + ROM_LOAD32_WORD_SWAP( "racoon.u11", 0x0400000, 0x200000, CRC(3f23f368) SHA1(eb1ea51def2cde5e7e4f334888294b794aa03dfc) ) + ROM_LOAD32_WORD_SWAP( "racoon.u2", 0x0400002, 0x200000, CRC(1eb00529) SHA1(d9af75e116f5237a3c6812538b77155b9c08dd5c) ) + ROM_LOAD32_WORD_SWAP( "racoon.u14", 0x0800000, 0x200000, CRC(870fe45e) SHA1(f8d800b92eb1ee9ef4663319fd3cb1f5e52d0e72) ) + ROM_LOAD32_WORD_SWAP( "racoon.u5", 0x0800002, 0x200000, CRC(5fbac174) SHA1(1d3e3f40a737d61ff688627891dec183af7fa19a) ) + // 0x0c00000 - 0x1ffffff empty + + ROM_REGION( 0x08000, "soundcpu", 0 ) /* Sound (80c301) CPU Code */ + ROM_LOAD( "racoon-u.111", 0x0000, 0x8000, CRC(52f419ea) SHA1(79c9f135b0cf8b1928411faed9b447cd98a83287) ) + + ROM_REGION( 0x080000, "sounddata", 0 ) /* Music data */ + ROM_LOAD( "racoon-u.108", 0x00000, 0x80000, CRC(fc4f30ee) SHA1(74b9e60cceb03ad572e0e080fbe1de5cffa1b2c3) ) + + ROM_REGION( 0x08000, "qs1000:cpu", 0 ) /* QDSP (8052) Code */ + ROM_LOAD( "racoon-u.107", 0x0000, 0x8000, CRC(89450a2f) SHA1(d58efa805f497bec179fdbfb8c5860ac5438b4ec) ) + + ROM_REGION( 0x1000000, "qs1000", 0 ) /* QDSP sample ROMs */ + ROM_LOAD( "racoon-u.97", 0x00000, 0x80000, CRC(fef828b1) SHA1(38352b67d18300db40113df9426c2aceec12a29b) ) + ROM_LOAD( "qs1001a.u96", 0x80000, 0x80000, CRC(d13c6407) SHA1(57b14f97c7d4f9b5d9745d3571a0b7115fbe3176) ) +ROM_END + +/* Land Breaker */ + +ROM_START( landbrk ) + ROM_REGION( 0x80000, "maincpu", 0 ) /* Hyperstone CPU Code */ + ROM_LOAD( "rom3.u43", 0x00000, 0x80000, CRC(8429189a) SHA1(f38e4792426ca2c138c44053a6c7525906281dff) ) + + ROM_REGION32_BE( 0x2000000, "user1", ROMREGION_ERASE00 ) /* Game Data - banked ROM, swapping necessary */ + ROM_LOAD32_WORD_SWAP( "00.bin", 0x0000000, 0x200000, CRC(a803aace) SHA1(52a9e27b4f400767a953aa01321a9fa7cdbf3976) ) + ROM_LOAD32_WORD_SWAP( "01.bin", 0x0000002, 0x200000, CRC(439c95cc) SHA1(18830024b2e43f0a89a7bd32841fbcb574e50fc6) ) + ROM_LOAD32_WORD_SWAP( "02.bin", 0x0400000, 0x200000, CRC(a0c2828c) SHA1(967dc467d25f093749aa0146ebf54959c9803b92) ) + ROM_LOAD32_WORD_SWAP( "03.bin", 0x0400002, 0x200000, CRC(5106b61a) SHA1(5e584ce5247d598e59d071579edb1da87fb2c9d6) ) + ROM_LOAD32_WORD_SWAP( "04.bin", 0x0800000, 0x200000, CRC(fbe4a215) SHA1(2dec06a8641ef3db2a5448c95677ee8d7b0dc0ad) ) + ROM_LOAD32_WORD_SWAP( "05.bin", 0x0800002, 0x200000, CRC(61d422b2) SHA1(c9774747c94cac44ffd3c1781374c009950b2add) ) + ROM_LOAD32_WORD_SWAP( "06.bin", 0x0c00000, 0x200000, CRC(bc4f7f30) SHA1(31e7a6077a823f16a645547c9c11640535e02eb3) ) + ROM_LOAD32_WORD_SWAP( "07.bin", 0x0c00002, 0x200000, CRC(d4d108ce) SHA1(d462690b782b363db5a062e6e04fe0c00e21bd46) ) + ROM_LOAD32_WORD_SWAP( "08.bin", 0x1000000, 0x200000, CRC(36237654) SHA1(38a4d6d195683128c05d8869ff4184d79d26fead) ) + ROM_LOAD32_WORD_SWAP( "09.bin", 0x1000002, 0x200000, CRC(9171828b) SHA1(648a398654bfba2e7681a3eee61e3803538929b5) ) + ROM_LOAD32_WORD_SWAP( "10.bin", 0x1400000, 0x200000, CRC(fe51744d) SHA1(2f6fb5cc7a52d2fa3459b9b2cf3450a227c19643) ) + ROM_LOAD32_WORD_SWAP( "11.bin", 0x1400002, 0x200000, CRC(fe6fd5e0) SHA1(66442b0d308517ebf0e13653cf4289ee9e9e0741) ) + ROM_LOAD32_WORD_SWAP( "12.bin", 0x1800000, 0x200000, CRC(9f0f17f3) SHA1(c280dd5127ea6d1585f8b7ad753de45e1beaca8f) ) + ROM_LOAD32_WORD_SWAP( "13.bin", 0x1800002, 0x200000, CRC(c7d51bbe) SHA1(a399087496f1c3f4c4b9e9b97e97585302ff29e5) ) + ROM_LOAD32_WORD_SWAP( "14.bin", 0x1c00000, 0x200000, CRC(f30f7bc5) SHA1(8b3e002b773a88229d013e1d95336736a259c698) ) + ROM_LOAD32_WORD_SWAP( "15.bin", 0x1c00002, 0x200000, CRC(bc1664e3) SHA1(a13a4e1df8d9825a72ecca1552ee52958c0d33d8) ) + + ROM_REGION( 0x008000, "soundcpu", 0 ) /* Sound (80c301) CPU Code */ + ROM_LOAD( "rom1.u111", 0x0000, 0x8000, CRC(79012474) SHA1(09a2d5705d7bc52cc2d1644c87c1e31ee44813ef) ) + + ROM_REGION( 0x080000, "sounddata", 0 ) /* Music data */ + ROM_LOAD( "rom2.u108", 0x00000, 0x80000, CRC(f3b327ef) SHA1(4b359171afd6ca10275961f795f3fe64f9df9897) ) + + ROM_REGION( 0x008000, "qs1000:cpu", 0 ) /* QDSP (8052) Code */ + ROM_LOAD( "lb.107", 0x0000, 0x8000, CRC(afd5263d) SHA1(71ace1b749d8a6b84d08b97185e7e512d04e4b8d) ) + + ROM_REGION( 0x1000000, "qs1000", 0 ) /* QDSP sample ROMs */ + ROM_LOAD( "lb_3.u97", 0x00000, 0x80000, CRC(5b34dff0) SHA1(1668763e977e272781ddcc74beba97b53477cc9d) ) + ROM_LOAD( "qs1001a.u96", 0x80000, 0x80000, CRC(d13c6407) SHA1(57b14f97c7d4f9b5d9745d3571a0b7115fbe3176) ) +ROM_END + + +ROM_START( landbrka ) + ROM_REGION( 0x80000, "maincpu", 0 ) /* Hyperstone CPU Code */ + ROM_LOAD( "lb_1.u43", 0x00000, 0x80000, CRC(f8bbcf44) SHA1(ad85a890ae2f921cd08c1897b4d9a230ccf9e072) ) + + ROM_REGION32_BE( 0x2000000, "user1", ROMREGION_ERASE00 ) /* Game Data - banked ROM, swapping necessary */ + ROM_LOAD32_WORD_SWAP( "lb2-000.u39", 0x0000000, 0x400000, CRC(b37faf7a) SHA1(30e9af3957ada7c72d85f55add221c2e9b3ea823) ) + ROM_LOAD32_WORD_SWAP( "lb2-001.u34", 0x0000002, 0x400000, CRC(07e620c9) SHA1(19f95316208fb4e52cef78f18c5d93460a644566) ) + ROM_LOAD32_WORD_SWAP( "lb2-002.u40", 0x0800000, 0x400000, CRC(3bb4bca6) SHA1(115029be4a4e322549a35f3ae5093ec161e9a421) ) + ROM_LOAD32_WORD_SWAP( "lb2-003.u35", 0x0800002, 0x400000, CRC(28ce863a) SHA1(1ba7d8be0ed4459dbdf99df18a2ad817904b9f04) ) + ROM_LOAD32_WORD_SWAP( "lb2-004.u41", 0x1000000, 0x400000, CRC(cbe84b06) SHA1(52505939fb88cd24f409c795fe5ceed5b41a52c2) ) + ROM_LOAD32_WORD_SWAP( "lb2-005.u36", 0x1000002, 0x400000, CRC(350c77a3) SHA1(231e65ea7db19019615a8aa4444922bcd5cf9e5c) ) + ROM_LOAD32_WORD_SWAP( "lb2-006.u42", 0x1800000, 0x400000, CRC(22c57cd8) SHA1(c9eb745523005876395ff7f0b3e996994b3f1220) ) + ROM_LOAD32_WORD_SWAP( "lb2-007.u37", 0x1800002, 0x400000, CRC(31f957b3) SHA1(ab1c4c50c2d5361ba8db047feb714423d84e6df4) ) + + ROM_REGION( 0x008000, "soundcpu", 0 ) /* AT89c52 */ + /* This is the first 2K of rom1.u111 from landbrk, verify against the internal dump when decapped */ + ROM_LOAD( "lb.103", 0x0000, 0x0800, BAD_DUMP CRC(92797034) SHA1(b600f19972986b2e09c56be0ea0c09f92a9fe422) ) /* MCU internal 2K flash */ + + ROM_REGION( 0x080000, "sounddata", 0 ) /* Music data */ + ROM_LOAD( "lb_2.108", 0x00000, 0x80000, CRC(a99182d7) SHA1(628c8d09efb3917a4e97d9e02b6b0ca1f339825d) ) + + ROM_REGION( 0x008000, "qs1000:cpu", 0 ) /* QDSP (8052) Code */ + ROM_LOAD( "lb.107", 0x0000, 0x8000, CRC(afd5263d) SHA1(71ace1b749d8a6b84d08b97185e7e512d04e4b8d) ) + + ROM_REGION( 0x1000000, "qs1000", 0 ) /* QDSP sample ROMs */ + ROM_LOAD( "lb_3.u97", 0x00000, 0x80000, CRC(5b34dff0) SHA1(1668763e977e272781ddcc74beba97b53477cc9d) ) + ROM_LOAD( "qs1001a.u96", 0x80000, 0x80000, CRC(d13c6407) SHA1(57b14f97c7d4f9b5d9745d3571a0b7115fbe3176) ) +ROM_END + + +ROM_START( penfan ) + ROM_REGION( 0x80000, "maincpu", 0 ) /* Hyperstone CPU Code */ + ROM_LOAD( "pfg.u43", 0x00000, 0x80000, CRC(84977191) SHA1(2566bcbf0815e02d27cad6f2118eb3a1ed7e9ebc) ) + + ROM_REGION32_BE( 0x2000000, "user1", ROMREGION_ERASEFF ) /* Game Data - banked ROM, swapping necessary */ + ROM_LOAD32_WORD_SWAP( "00.u5", 0x0000000, 0x200000, CRC(77ce2855) SHA1(715d12db11871750b886406673a6f3934b0b1a57) ) + ROM_LOAD32_WORD_SWAP( "01.u1", 0x0000002, 0x200000, CRC(a7d7299d) SHA1(e0c4d399ac0d2525d80249d908c72a51b701e9b0) ) + ROM_LOAD32_WORD_SWAP( "02.u6", 0x0400000, 0x200000, CRC(79b05a66) SHA1(8e6ffa751267147679fde84b5c8b9ef954e4a1d0) ) + ROM_LOAD32_WORD_SWAP( "03.u2", 0x0400002, 0x200000, CRC(bddd9ad8) SHA1(5ceb9d7162393e83527e9de7599eff7dd978c614) ) + ROM_LOAD32_WORD_SWAP( "04.u7", 0x0800000, 0x200000, CRC(9fba61bd) SHA1(6605d0a9eb7c9d0c956ca7cfafc5960c78e868de) ) + ROM_LOAD32_WORD_SWAP( "05.u3", 0x0800002, 0x200000, CRC(ed34befb) SHA1(dde5dfe82789bbe542fb39881bd0eab6597efd9f) ) + ROM_LOAD32_WORD_SWAP( "06.u8", 0x0c00000, 0x200000, CRC(cc3dff54) SHA1(256f5cc407d5a991afcfc6f97f61bd24904cc412) ) + ROM_LOAD32_WORD_SWAP( "07.u4", 0x0c00002, 0x200000, CRC(9e33a480) SHA1(74da19dc02e838e6d20ff522611eb6d30e961483) ) + ROM_LOAD32_WORD_SWAP( "08.u15", 0x1000000, 0x200000, CRC(89449f18) SHA1(820dc480d6e1d11a70eea2ad536f7c1a6a18c863) ) + ROM_LOAD32_WORD_SWAP( "09.u10", 0x1000002, 0x200000, CRC(2b07cba0) SHA1(1a1fbca6f60482d8255665270cdfc6518b333338) ) + ROM_LOAD32_WORD_SWAP( "10.u16", 0x1400000, 0x200000, CRC(738abbaa) SHA1(e261baf79e28b0b20dabaea6040cb1064f33baa5) ) + ROM_LOAD32_WORD_SWAP( "11.u11", 0x1400002, 0x200000, CRC(ddcd2bae) SHA1(c4fa5ebbaf801a7f06222150658033955966fe1b) ) + ROM_LOAD32_WORD_SWAP( "12.u17", 0x1800000, 0x200000, CRC(2eed0f64) SHA1(3b9e65e41d8699a93ea74225ba12a3f66ecba11d) ) + ROM_LOAD32_WORD_SWAP( "13.u12", 0x1800002, 0x200000, CRC(cc3068a8) SHA1(0022fad5a4d36678d35e99092c870f2b99d3d8d4) ) + ROM_LOAD32_WORD_SWAP( "14.u18", 0x1c00000, 0x200000, CRC(20a9a08e) SHA1(fe4071cdf78d362bccaee92cdc70c66f7e30f817) ) // not checked by rom check + ROM_LOAD32_WORD_SWAP( "15.u13", 0x1c00002, 0x200000, CRC(872fa9c4) SHA1(4902faa97c9a3a9671cfefc6a711cfcd25f2d6bc) ) // not checked by rom check + + ROM_REGION( 0x008000, "soundcpu", 0 ) /* Sound (80c301) CPU Code */ + ROM_LOAD( "pfg.u111", 0x0000, 0x8000, CRC(79012474) SHA1(09a2d5705d7bc52cc2d1644c87c1e31ee44813ef) ) + + ROM_REGION( 0x080000, "sounddata", 0 ) /* Music data */ + ROM_LOAD( "pfg.u108", 0x00000, 0x80000, CRC(ac97c23b) SHA1(85319cbff811c84af2a802c2f609bd58cf9e7bc3) ) + + ROM_REGION( 0x008000, "qs1000:cpu", 0 ) /* QDSP (8052) Code */ + ROM_LOAD( "pfg.u107", 0x0000, 0x8000, CRC(afd5263d) SHA1(71ace1b749d8a6b84d08b97185e7e512d04e4b8d) ) + + ROM_REGION( 0x1000000, "qs1000", 0 ) /* QDSP sample ROMs */ + ROM_LOAD( "pfg.u97", 0x00000, 0x80000, CRC(0c713eef) SHA1(4c4ea19fec5af4f0cb983c8b9f71152d05c15047) ) + ROM_LOAD( "qs1001a.u96", 0x80000, 0x80000, CRC(d13c6407) SHA1(57b14f97c7d4f9b5d9745d3571a0b7115fbe3176) ) +ROM_END + + +ROM_START( penfana ) + ROM_REGION( 0x80000, "maincpu", 0 ) /* Hyperstone CPU Code */ + ROM_LOAD( "27c040.u43", 0x00000, 0x80000, CRC(a7637f8b) SHA1(aadfaa03b43cd325ddbc04fe7b60ca704a9891a5) ) /* no rom label or sticker */ + + ROM_REGION32_BE( 0x2000000, "user1", ROMREGION_ERASEFF ) /* Game Data - banked ROM, swapping necessary */ + ROM_LOAD32_WORD_SWAP( "00.u5", 0x0000000, 0x200000, CRC(77ce2855) SHA1(715d12db11871750b886406673a6f3934b0b1a57) ) + ROM_LOAD32_WORD_SWAP( "01.u1", 0x0000002, 0x200000, CRC(a7d7299d) SHA1(e0c4d399ac0d2525d80249d908c72a51b701e9b0) ) + ROM_LOAD32_WORD_SWAP( "02.u6", 0x0400000, 0x200000, CRC(79b05a66) SHA1(8e6ffa751267147679fde84b5c8b9ef954e4a1d0) ) + ROM_LOAD32_WORD_SWAP( "03.u2", 0x0400002, 0x200000, CRC(bddd9ad8) SHA1(5ceb9d7162393e83527e9de7599eff7dd978c614) ) + ROM_LOAD32_WORD_SWAP( "04.u7", 0x0800000, 0x200000, CRC(9fba61bd) SHA1(6605d0a9eb7c9d0c956ca7cfafc5960c78e868de) ) + ROM_LOAD32_WORD_SWAP( "05.u3", 0x0800002, 0x200000, CRC(ed34befb) SHA1(dde5dfe82789bbe542fb39881bd0eab6597efd9f) ) + ROM_LOAD32_WORD_SWAP( "06.u8", 0x0c00000, 0x200000, CRC(cc3dff54) SHA1(256f5cc407d5a991afcfc6f97f61bd24904cc412) ) + ROM_LOAD32_WORD_SWAP( "07.u4", 0x0c00002, 0x200000, CRC(9e33a480) SHA1(74da19dc02e838e6d20ff522611eb6d30e961483) ) + ROM_LOAD32_WORD_SWAP( "08.u15", 0x1000000, 0x200000, CRC(89449f18) SHA1(820dc480d6e1d11a70eea2ad536f7c1a6a18c863) ) + ROM_LOAD32_WORD_SWAP( "09.u10", 0x1000002, 0x200000, CRC(2b07cba0) SHA1(1a1fbca6f60482d8255665270cdfc6518b333338) ) + ROM_LOAD32_WORD_SWAP( "10.u16", 0x1400000, 0x200000, CRC(738abbaa) SHA1(e261baf79e28b0b20dabaea6040cb1064f33baa5) ) + ROM_LOAD32_WORD_SWAP( "11.u11", 0x1400002, 0x200000, CRC(ddcd2bae) SHA1(c4fa5ebbaf801a7f06222150658033955966fe1b) ) + ROM_LOAD32_WORD_SWAP( "12.u17", 0x1800000, 0x200000, CRC(2eed0f64) SHA1(3b9e65e41d8699a93ea74225ba12a3f66ecba11d) ) + ROM_LOAD32_WORD_SWAP( "13.u12", 0x1800002, 0x200000, CRC(cc3068a8) SHA1(0022fad5a4d36678d35e99092c870f2b99d3d8d4) ) + ROM_LOAD32_WORD_SWAP( "14.u18", 0x1c00000, 0x200000, CRC(20a9a08e) SHA1(fe4071cdf78d362bccaee92cdc70c66f7e30f817) ) // not checked by rom check + ROM_LOAD32_WORD_SWAP( "15.u13", 0x1c00002, 0x200000, CRC(872fa9c4) SHA1(4902faa97c9a3a9671cfefc6a711cfcd25f2d6bc) ) // not checked by rom check + + ROM_REGION( 0x008000, "soundcpu", 0 ) /* Sound (80c301) CPU Code */ + ROM_LOAD( "pfg.u111", 0x0000, 0x8000, CRC(79012474) SHA1(09a2d5705d7bc52cc2d1644c87c1e31ee44813ef) ) + + ROM_REGION( 0x080000, "sounddata", 0 ) /* Music data */ + ROM_LOAD( "pfg.u108", 0x00000, 0x80000, CRC(ac97c23b) SHA1(85319cbff811c84af2a802c2f609bd58cf9e7bc3) ) + + ROM_REGION( 0x008000, "qs1000:cpu", 0 ) /* QDSP (8052) Code */ + ROM_LOAD( "pfg.u107", 0x0000, 0x8000, CRC(afd5263d) SHA1(71ace1b749d8a6b84d08b97185e7e512d04e4b8d) ) + + ROM_REGION( 0x1000000, "qs1000", 0 ) /* QDSP sample ROMs */ + ROM_LOAD( "pfg.u97", 0x00000, 0x80000, CRC(0c713eef) SHA1(4c4ea19fec5af4f0cb983c8b9f71152d05c15047) ) + ROM_LOAD( "qs1001a.u96", 0x80000, 0x80000, CRC(d13c6407) SHA1(57b14f97c7d4f9b5d9745d3571a0b7115fbe3176) ) +ROM_END + + +ROM_START( stealsee ) + ROM_REGION( 0x80000, "maincpu", 0 ) /* Hyperstone CPU Code */ + ROM_LOAD( "ss.u43", 0x00000, 0x80000, CRC(b0a1a965) SHA1(e13f336035a266da66ca8f95b92cac7295323989) ) + + ROM_REGION32_BE( 0x2000000, "user1", ROMREGION_ERASEFF ) /* Game Data - banked ROM, swapping necessary */ + ROM_LOAD32_WORD_SWAP( "00.u5", 0x0000000, 0x200000, CRC(59d247a7) SHA1(a206cbb27f8054baca76dc72e6f45be4c9a914b1) ) // FIXED BITS (xxxxxxxx0xxxxxxx) + ROM_LOAD32_WORD_SWAP( "01.u1", 0x0000002, 0x200000, CRC(255764f2) SHA1(b1d25898961ddbed9865620269cb0cd0ab506cd9) ) + ROM_LOAD32_WORD_SWAP( "02.u6", 0x0400000, 0x200000, CRC(ebc33180) SHA1(7f59263754e9e2c32a5942daed60770dc4d4f6b5) ) + ROM_LOAD32_WORD_SWAP( "03.u2", 0x0400002, 0x200000, CRC(a81f9b6d) SHA1(0bc018f1503c2d43ba0b089cb1476dfc276af94a) ) + ROM_LOAD32_WORD_SWAP( "04.u7", 0x0800000, 0x200000, CRC(24bf37ad) SHA1(393bd11afd0135190d0c72f6affb625a933d8685) ) + ROM_LOAD32_WORD_SWAP( "05.u3", 0x0800002, 0x200000, CRC(ef6b9450) SHA1(ef99a2e4127890b2e954547371eddcb364c74503) ) + ROM_LOAD32_WORD_SWAP( "06.u8", 0x0c00000, 0x200000, CRC(284629c6) SHA1(46d3beb68885faff40f9abe5fdbc84547b94937d) ) + ROM_LOAD32_WORD_SWAP( "07.u4", 0x0c00002, 0x200000, CRC(a64d4434) SHA1(58ac9eef27a39d06723a13e7702d1c77d09eb9a5) ) + ROM_LOAD32_WORD_SWAP( "08.u15", 0x1000000, 0x200000, CRC(861eab08) SHA1(280c833553fb70252deb801a93b0685212e249fe) ) + ROM_LOAD32_WORD_SWAP( "09.u10", 0x1000002, 0x200000, CRC(fd96282e) SHA1(30e35bf61ad3fdd9bc2c384edd8619d8850f5c49) ) + ROM_LOAD32_WORD_SWAP( "10.u16", 0x1400000, 0x200000, CRC(761e0a26) SHA1(d9d73f9cf9d00e35298b5edfc4872a36019c9fcd) ) // FIXED BITS (xxxxxxxx0000000x) + ROM_LOAD32_WORD_SWAP( "11.u11", 0x1400002, 0x200000, CRC(574571e7) SHA1(8507b34c5b00253bf76d587e5a9e33aa71788139) ) // FIXED BITS (xxxxxxxx0000000x) + // these 4 are blank (0xff fill) but that appears to be correct. + ROM_LOAD32_WORD_SWAP( "12.u17", 0x1800000, 0x200000, CRC(9a4109e5) SHA1(ba59caac5f5a80fc52c507d8a47f322a380aa9a1) ) + ROM_LOAD32_WORD_SWAP( "13.u12", 0x1800002, 0x200000, CRC(9a4109e5) SHA1(ba59caac5f5a80fc52c507d8a47f322a380aa9a1) ) + ROM_LOAD32_WORD_SWAP( "14.u18", 0x1c00000, 0x200000, CRC(9a4109e5) SHA1(ba59caac5f5a80fc52c507d8a47f322a380aa9a1) ) + ROM_LOAD32_WORD_SWAP( "15.u13", 0x1c00002, 0x200000, CRC(9a4109e5) SHA1(ba59caac5f5a80fc52c507d8a47f322a380aa9a1) ) + + ROM_REGION( 0x008000, "soundcpu", 0 ) /* Sound (80c301) CPU Code */ + ROM_LOAD( "ss.u111", 0x0000, 0x8000, CRC(79012474) SHA1(09a2d5705d7bc52cc2d1644c87c1e31ee44813ef) ) + + ROM_REGION( 0x080000, "sounddata", 0 ) /* Music data */ + ROM_LOAD( "ss.u108", 0x00000, 0x80000, CRC(95bd136d) SHA1(a6e2d75fc5e8d600d4dceab13c596f6a7edb6e72) ) + + ROM_REGION( 0x008000, "qs1000:cpu", 0 ) /* QDSP (8052) Code */ + ROM_LOAD( "ss.u107", 0x0000, 0x8000, CRC(afd5263d) SHA1(71ace1b749d8a6b84d08b97185e7e512d04e4b8d) ) + + ROM_REGION( 0x1000000, "qs1000", 0 ) /* QDSP sample ROMs */ + ROM_LOAD( "ss.u97", 0x00000, 0x80000, CRC(56c9f4a4) SHA1(dfc7cb8b68ec9e77854287b8998131e3ef4ca18d) ) + ROM_LOAD( "qs1001a.u96", 0x80000, 0x80000, CRC(d13c6407) SHA1(57b14f97c7d4f9b5d9745d3571a0b7115fbe3176) ) +ROM_END + + +ROM_START( candy ) + ROM_REGION( 0x80000, "maincpu", 0 ) /* Hyperstone CPU Code */ + ROM_LOAD( "cc.u43", 0x00000, 0x80000, CRC(837c9967) SHA1(ccb38ec986d7cd598a48ee1c3806566c360fd783) ) + + ROM_REGION32_BE( 0x2000000, "user1", ROMREGION_ERASEFF ) /* Game Data - banked ROM, swapping necessary */ + ROM_LOAD32_WORD_SWAP( "00.u5", 0x0000000, 0x200000, CRC(04bc53e4) SHA1(093651c4d4148dc36260d7a6cd8c322ba9a63195) ) + ROM_LOAD32_WORD_SWAP( "01.u1", 0x0000002, 0x200000, CRC(288229f1) SHA1(56e3ae101f8acc5d1e9bcc28b74ee48aa456bf28) ) + ROM_LOAD32_WORD_SWAP( "02.u6", 0x0400000, 0x200000, CRC(5d3b130c) SHA1(e247d0dd3a1909296c2a754733f10170d264825c) ) + ROM_LOAD32_WORD_SWAP( "03.u2", 0x0400002, 0x200000, CRC(e36cc85c) SHA1(897955effd178aa3889bacabaede4f39efdeee4b) ) + ROM_LOAD32_WORD_SWAP( "04.u7", 0x0800000, 0x200000, CRC(5090624c) SHA1(60973f3b7a4e62ad39faed1d1d108058f4990ab0) ) + ROM_LOAD32_WORD_SWAP( "05.u3", 0x0800002, 0x200000, CRC(c9e7c5d3) SHA1(0495fde350125a39150d14caf2b801e21924cbe4) ) + ROM_LOAD32_WORD_SWAP( "06.u8", 0x0c00000, 0x200000, CRC(e3b65d10) SHA1(fdade9b9a1eb8444ddb96f8712910ab9d5ab17a7) ) + ROM_LOAD32_WORD_SWAP( "07.u4", 0x0c00002, 0x200000, CRC(5bf4cb29) SHA1(7c2247b85cd55533d13e5fa96ffdb6ee8ec025b6) ) + ROM_LOAD32_WORD_SWAP( "08.u15", 0x1000000, 0x200000, CRC(296f3ec3) SHA1(3bfdbab85e178f13d8a713249785fc8b04de91d5) ) + ROM_LOAD32_WORD_SWAP( "09.u10", 0x1000002, 0x200000, CRC(2ab8f847) SHA1(f0573a365a8dede78257b7d6d6699d235d04229c) ) + ROM_LOAD32_WORD_SWAP( "10.u16", 0x1400000, 0x200000, CRC(f382e9e8) SHA1(2498b84fc559412e83be2b607fda1e1f37edd345) ) + ROM_LOAD32_WORD_SWAP( "11.u11", 0x1400002, 0x200000, CRC(545ef2bf) SHA1(cf81a7e215de8b18967ef4ac8e76d8e470bc45bd) ) + ROM_LOAD32_WORD_SWAP( "12.u17", 0x1800000, 0x200000, CRC(8d125f1a) SHA1(6d0a562ec40efde9540996f34351e05cebee4154) ) + ROM_LOAD32_WORD_SWAP( "13.u12", 0x1800002, 0x200000, CRC(a10ea2e8) SHA1(9780ba4b718b09474af49d15508031200164f3e9) ) + ROM_LOAD32_WORD_SWAP( "14.u18", 0x1c00000, 0x200000, CRC(7cdd8639) SHA1(bdffcb2eeff10b7b3de5d178c766619205dd6f21) ) // not checked by rom check + ROM_LOAD32_WORD_SWAP( "15.u13", 0x1c00002, 0x200000, CRC(8b0cf884) SHA1(5acdd084732a15c4a452766bb53bd0e908c1e6f0) ) // not checked by rom check + + ROM_REGION( 0x008000, "soundcpu", 0 ) /* Sound (80c301) CPU Code */ + ROM_LOAD( "cc.u111", 0x0000, 0x8000, CRC(79012474) SHA1(09a2d5705d7bc52cc2d1644c87c1e31ee44813ef) ) + + ROM_REGION( 0x080000, "sounddata", 0 ) /* Music data */ + ROM_LOAD( "cc.u108", 0x00000, 0x80000, CRC(6eedb497) SHA1(d9c7322cba0efa21bef72bc6b1465aa45e8caef6) ) + + ROM_REGION( 0x008000, "qs1000:cpu", 0 ) /* QDSP (8052) Code */ + ROM_LOAD( "hc_u107.bin", 0x0000, 0x8000, CRC(afd5263d) SHA1(71ace1b749d8a6b84d08b97185e7e512d04e4b8d) ) + + ROM_REGION( 0x1000000, "qs1000", 0 ) /* QDSP sample ROMs */ + ROM_LOAD( "cc.u97", 0x00000, 0x80000, CRC(1400c878) SHA1(d643a9fa930d3a945786a2bb90919a0f6404c625) ) + ROM_LOAD( "qs1001a.u96", 0x80000, 0x80000, CRC(d13c6407) SHA1(57b14f97c7d4f9b5d9745d3571a0b7115fbe3176) ) +ROM_END + + +ROM_START( fort2b ) + ROM_REGION( 0x80000, "maincpu", 0 ) /* Hyperstone CPU Code */ + ROM_LOAD( "1.u43", 0x00000, 0x80000, CRC(b2279485) SHA1(022591b260be28820f04a1c1fdd61cb9b68d6703) ) + + ROM_REGION32_BE( 0x2000000, "user1", ROMREGION_ERASE00 ) /* Game Data - banked ROM, swapping necessary */ + ROM_LOAD32_WORD_SWAP( "00.u5", 0x0000000, 0x200000, CRC(4437b595) SHA1(b87518110955947264d93b1f377289f1741ce5dc) ) + ROM_LOAD32_WORD_SWAP( "01.u1", 0x0000002, 0x200000, CRC(2a410aed) SHA1(def822ead339180aa3e0ebb266b6a6eb1271a2ae) ) + ROM_LOAD32_WORD_SWAP( "02.u6", 0x0400000, 0x200000, CRC(12f0e4c0) SHA1(fa1e1c3510af61b4058507f1aca801377cafffb4) ) + ROM_LOAD32_WORD_SWAP( "03.u2", 0x0400002, 0x200000, CRC(aaa7c45a) SHA1(fa06932ab1d41eddd384785f1b2b4dc70046da0f) ) + ROM_LOAD32_WORD_SWAP( "04.u7", 0x0800000, 0x200000, CRC(428070d2) SHA1(3e25c644be28fd64e8ea60a5b6c675ce2a84ec91) ) + ROM_LOAD32_WORD_SWAP( "05.u3", 0x0800002, 0x200000, CRC(a66f9ba9) SHA1(3984c42358403b692b7e09b5849c2444578305f0) ) + ROM_LOAD32_WORD_SWAP( "06.u8", 0x0c00000, 0x200000, CRC(899d318e) SHA1(3bd552eae9985928fe211186f1913c155cbde1a5) ) + ROM_LOAD32_WORD_SWAP( "07.u4", 0x0c00002, 0x200000, CRC(c4644798) SHA1(3debeef3abc6ce4aea5eb0c6be9f99689a9f111c) ) + ROM_LOAD32_WORD_SWAP( "08.u15", 0x1000000, 0x200000, CRC(ce0cccfc) SHA1(42cb6698e9168712699616d46ece5a6482825e87) ) + ROM_LOAD32_WORD_SWAP( "09.u10", 0x1000002, 0x200000, CRC(5b7de0f1) SHA1(f0ee1c6d0766fec95d77d46a9c68b8c3b0d09dde) ) + ROM_LOAD32_WORD_SWAP( "10.u16", 0x1400000, 0x200000, CRC(b47fc014) SHA1(e1094bc8a3edff635c4abe311a7902a714b9102c) ) + ROM_LOAD32_WORD_SWAP( "11.u11", 0x1400002, 0x200000, CRC(7113d3f9) SHA1(5c34b2b21bb09c5dec075fabfd426c143a0a8dc2) ) + ROM_LOAD32_WORD_SWAP( "12.u17", 0x1800000, 0x200000, CRC(8c4b63a6) SHA1(2493c9e9547cb06fbdc6240fb67b15047b66a5fd) ) + ROM_LOAD32_WORD_SWAP( "13.u12", 0x1800002, 0x200000, CRC(1d9b9995) SHA1(e18b93c244d8e959053dff66e2e5e4341e2b8034) ) + ROM_LOAD32_WORD_SWAP( "14.u18", 0x1c00000, 0x200000, CRC(450fa784) SHA1(d1244b94be6571f1f8930154778362af5cd4c334) ) + ROM_LOAD32_WORD_SWAP( "15.u13", 0x1c00002, 0x200000, CRC(c1f02d5c) SHA1(73fe9e654c097cd57863b49545c6aa05996a7645) ) + + ROM_REGION( 0x08000, "soundcpu", 0 ) /* Sound (80c301) CPU Code */ + ROM_LOAD( "4.u111", 0x00000, 0x08000, CRC(79012474) SHA1(09a2d5705d7bc52cc2d1644c87c1e31ee44813ef) ) + + ROM_REGION( 0x080000, "sounddata", 0 ) /* Music data */ + ROM_LOAD( "3.u108", 0x00000, 0x80000, CRC(9b996b60) SHA1(c4e34601f754ae2908dd6d59ea9da0c5c6f56f2d) ) + + ROM_REGION( 0x008000, "qs1000:cpu", 0 ) /* QDSP (8052) Code */ + ROM_LOAD( "5.u107", 0x00000, 0x08000, CRC(afd5263d) SHA1(71ace1b749d8a6b84d08b97185e7e512d04e4b8d) ) + + ROM_REGION( 0x1000000, "qs1000", 0 ) /* QDSP sapmle ROMs */ + ROM_LOAD( "2.u97", 0x00000, 0x80000, CRC(8a431b14) SHA1(5a9824280f30ef2e7b7f16652b2f9f9559cb764f) ) + ROM_LOAD( "qs1001a.u96", 0x80000, 0x80000, CRC(d13c6407) SHA1(57b14f97c7d4f9b5d9745d3571a0b7115fbe3176) ) +ROM_END + + +ROM_START( fort2ba ) + ROM_REGION( 0x80000, "maincpu", 0 ) /* Hyperstone CPU Code */ + ROM_LOAD( "ftii012.u43", 0x00000, 0x80000, CRC(6424e05f) SHA1(2f02f103de180561e372ce897f8410a11c4cb58d) ) + + ROM_REGION32_BE( 0x2000000, "user1", ROMREGION_ERASE00 ) /* Game Data - banked ROM, swapping necessary */ + ROM_LOAD32_WORD_SWAP( "ftii000.u39", 0x0000000, 0x400000, CRC(be74121d) SHA1(ee072044f84e11c48537d79bd9766bf8cc28f002) ) + ROM_LOAD32_WORD_SWAP( "ftii004.u34", 0x0000002, 0x400000, CRC(d4399f98) SHA1(88f5a1097f44d2070cfc96c9cd83342d1975dcfe) ) + ROM_LOAD32_WORD_SWAP( "ftii001.u40", 0x0800000, 0x400000, CRC(35c396ff) SHA1(d05dee021e1a93e224b05949c18a5107e0aceb4d) ) + ROM_LOAD32_WORD_SWAP( "ftii005.u35", 0x0800002, 0x400000, CRC(ff553679) SHA1(d9f1ebc28098a20a59b76ee859527e946c82a1df) ) + ROM_LOAD32_WORD_SWAP( "ftii002.u41", 0x1000000, 0x400000, CRC(1d79ed5a) SHA1(0319392dbfe4a20be462ca9cc5a66575ba0a32b4) ) + ROM_LOAD32_WORD_SWAP( "ftii006.u36", 0x1000002, 0x400000, CRC(c6049bbc) SHA1(bd9231b5fe1a7307668960c1f9f188f4a49f1c45) ) + ROM_LOAD32_WORD_SWAP( "ftii003.u42", 0x1800000, 0x400000, CRC(3cac1efe) SHA1(aca009a39b5d6049e3cf234f4412868a569ffb18) ) + ROM_LOAD32_WORD_SWAP( "ftii007.u37", 0x1800002, 0x400000, CRC(a583a672) SHA1(b013fbfaa1e3f573a305e6346e50b930766daa1d) ) + + ROM_REGION( 0x08000, "soundcpu", 0 ) /* Sound (80c301) CPU Code */ + ROM_LOAD( "ftii008.u111", 0x0000, 0x8000, CRC(79012474) SHA1(09a2d5705d7bc52cc2d1644c87c1e31ee44813ef) ) + + ROM_REGION( 0x080000, "sounddata", 0 ) /* Music data */ + ROM_LOAD( "ftii009.u108", 0x00000, 0x80000, CRC(9b996b60) SHA1(c4e34601f754ae2908dd6d59ea9da0c5c6f56f2d) ) + + ROM_REGION( 0x008000, "qs1000:cpu", 0 ) /* QDSP (8052) Code */ + ROM_LOAD( "ftii010.u107", 0x0000, 0x8000, CRC(afd5263d) SHA1(71ace1b749d8a6b84d08b97185e7e512d04e4b8d) ) + + ROM_REGION( 0x1000000, "qs1000", 0 ) /* QDSP sample ROMs */ + ROM_LOAD( "ftii011.u97", 0x00000, 0x80000, CRC(8a431b14) SHA1(5a9824280f30ef2e7b7f16652b2f9f9559cb764f) ) + ROM_LOAD( "qs1001a.u96", 0x80000, 0x80000, CRC(d13c6407) SHA1(57b14f97c7d4f9b5d9745d3571a0b7115fbe3176) ) +ROM_END + +/* Puzzle King */ + +ROM_START( puzzlekg ) + ROM_REGION( 0x80000, "maincpu", 0 ) /* Hyperstone CPU Code */ + ROM_LOAD( "u43.bin", 0x00000, 0x80000, CRC(c3db7424) SHA1(5ee2be0f06fddb0c74fc6e82679b275cc4e86bcc) ) + + ROM_REGION32_BE( 0x2000000, "user1", ROMREGION_ERASE00 ) /* Game Data - banked ROM, swapping necessary */ + ROM_LOAD32_WORD_SWAP( "u10.bin", 0x0000000, 0x200000, CRC(c9c3064b) SHA1(10a46d4674c1ef64e50dfcb5eb44953206fe6163) ) + ROM_LOAD32_WORD_SWAP( "u1.bin", 0x0000002, 0x200000, CRC(6b4b369d) SHA1(3f528e557f2846d7c50afa332797e8bc541eeba8) ) + ROM_LOAD32_WORD_SWAP( "u11.bin", 0x0400000, 0x200000, CRC(92615236) SHA1(dc602cb4c2a3d671cc60b075b399cf3efb67d3d3) ) + ROM_LOAD32_WORD_SWAP( "u2.bin", 0x0400002, 0x200000, CRC(e76bbd1d) SHA1(6c191e3c4c363132abf5f62882a40a0fbf0fb7ad) ) + ROM_LOAD32_WORD_SWAP( "u14.bin", 0x0800000, 0x200000, CRC(f5aa39d1) SHA1(6dde4c63cde388313370ed0cbf410965cfdfdaaa) ) + ROM_LOAD32_WORD_SWAP( "u5.bin", 0x0800002, 0x200000, CRC(88bb70cf) SHA1(9f6e7a97c7ee98d80a362395bcdcde25ceccec09) ) + ROM_LOAD32_WORD_SWAP( "u15.bin", 0x0c00000, 0x200000, CRC(bcc1f74d) SHA1(b2ee9b3761f77663a8f412fb3d3a724746e77c75) ) + ROM_LOAD32_WORD_SWAP( "u6.bin", 0x0c00002, 0x200000, CRC(ab2248ff) SHA1(fcef9028973e7e8cc3a0b8bb1f4a261f24f49081) ) + ROM_LOAD32_WORD_SWAP( "u12.bin", 0x1000000, 0x200000, CRC(1794973d) SHA1(09000781c87fa407a49addd35660517870fc997b) ) + ROM_LOAD32_WORD_SWAP( "u3.bin", 0x1000002, 0x200000, CRC(0980e877) SHA1(325687d8f9f8bfe55a53d3bd9a857504738a4633) ) + ROM_LOAD32_WORD_SWAP( "u13.bin", 0x1400000, 0x200000, CRC(31de6d19) SHA1(6d270d83f6c49fa8e0fc5a8ec63d8ba9e6c99105) ) + ROM_LOAD32_WORD_SWAP( "u4.bin", 0x1400002, 0x200000, CRC(2706f23c) SHA1(a4ade1c243640a26b673e3f9d83de8c0b6927c74) ) + ROM_LOAD32_WORD_SWAP( "u16.bin", 0x1800000, 0x200000, CRC(c2d09171) SHA1(d74ccc92cd11fef52a13f3bd2c4835131f3262c2) ) + ROM_LOAD32_WORD_SWAP( "u7.bin", 0x1800002, 0x200000, CRC(52405e69) SHA1(e27648bb1e02c539758bf9223efab13360f6cd55) ) + ROM_LOAD32_WORD_SWAP( "u17.bin", 0x1c00000, 0x200000, CRC(234b7261) SHA1(6bb95b8258133cc802f076c15e69c5412272e960) ) + ROM_LOAD32_WORD_SWAP( "u8.bin", 0x1c00002, 0x200000, CRC(8f4e50d7) SHA1(78808f0193a13467b45c84aef7f6a8f1cfe24feb) ) + + ROM_REGION( 0x08000, "soundcpu", 0 ) /* Sound (80c301) CPU Code */ + ROM_LOAD( "u111.bin", 0x0000, 0x8000, CRC(79012474) SHA1(09a2d5705d7bc52cc2d1644c87c1e31ee44813ef) ) + + ROM_REGION( 0x080000, "sounddata", 0 ) /* Music data */ + ROM_LOAD( "u108.bin", 0x00000, 0x80000, CRC(e4555c6b) SHA1(128196a5b47d13ee7163981043b96f7b4b27204b) ) + + ROM_REGION( 0x008000, "qs1000:cpu", 0 ) /* QDSP (8052) Code */ + ROM_LOAD( "u107.bin", 0x0000, 0x8000, CRC(f3add818) SHA1(96e77950154ced9f3234200de2aa29060c00d47f) ) + + ROM_REGION( 0x1000000, "qs1000", 0 ) /* QDSP sample ROMs */ + ROM_LOAD( "u97.bin", 0x00000, 0x80000, CRC(f4604ce8) SHA1(e061b203ef5df386120dbf089ece094d16a1b59b) ) + ROM_LOAD( "qs1001a.u96", 0x80000, 0x80000, CRC(d13c6407) SHA1(57b14f97c7d4f9b5d9745d3571a0b7115fbe3176) ) +ROM_END + +/* +Hidden Catch 3 +Eolith, 2000 + +PCB Layout +---------- + +GRADATION J. VER 3.05 +|-------------------------------------------------| +| TDA1519 VOL KM6161002 KM6161002 IS61C1024| +| VOL | +| DA1311 KM6161002 KM6161002 IS61C1024| +| 24MHz QS1001A DSW(4) | +| QS1000 DSW(4) IS61C1024| +| U107 U97 EV0514-001 | +|J IC61C1024| +|A 14.31818MHz | +|M SERVICE_SW E1-32N | +|M TEST_SW | +|A 93C66 50MHz | +| | +| |---------Sub Board (above)--------| +| GMS90C32 7705 | +| 12MHz | | +| | | +| U108 U41 U39 U37 U35 U43 | +| U111 | U42 U40 U38 U36 U34 | +| | | +|--------------|----------------------------------| +Notes: + E1-32N - Hyperstone E1-32N CPU, clock 50.000MHz (QFP160) + GMS90C32 - Hyundai GMS90C32 MCS-51 Compatible Microcontroller w/8k internal EPROM, clock 12.000MHz (PLCC44) + Note EA (External Access Enable on pin35) is LOW, thus it is configured to use the External EPROM at U111. + The chip is configured by placing a small smt zero Ohm resistor across 2 pads adjacent to pin35. So a romless + condition can be easily checked by looking to see if the resistor is present. If the resistor is not present, + EA is configured to HIGH and the chip is using it's internal ROM. + IS61C1024 - ISSI 128k x8 High Speed CMOS Static RAM (SOJ32) + KM6161002 - Samsung 64k x16 Ultra High Speed CMOS Video Static RAM (SOJ44) + TDA1519 - Audio Power AMP + QS1000 - QDSP QS1000 AdMOS 9638R, Wavetable Audio chip, clock input of 24.000MHz (QFP100) + QS1001A - QDSP QS1001A 512k x8 MaskROM (SOP32) + EV0514-001 - Custom Eolith IC (QFP100) + VSync - 60Hz + HSync - 15.64kHz + + Main board has ROMs populated at U111, U108, U43, U107 & U97 ONLY and locations from U34 to U42 do not have sockets populated. + Sub Board contains 16x MX29F1610 16M FlashROMs. The filename is the location stamped on the PCB (SOP44) + +*/ + +ROM_START( hidctch3 ) + ROM_REGION( 0x80000, "maincpu", 0 ) /* Hyperstone CPU Code */ + ROM_LOAD( "u43", 0x00000, 0x80000, CRC(7b861339) SHA1(fca7d47d7d538774ec6462deebc0a367ac073b67) ) + + ROM_REGION32_BE( 0x2000000, "user1", ROMREGION_ERASE00 ) /* Game Data - banked ROM, swapping necessary */ + ROM_LOAD32_WORD_SWAP( "00", 0x0000000, 0x200000, CRC(7fe5cd46) SHA1(8190614a1cf1df6472590b43036200a1075bfe58) ) + ROM_LOAD32_WORD_SWAP( "01", 0x0000002, 0x200000, CRC(09463ec9) SHA1(0287da2e65521a61c06ad927e913243d023f0d72) ) + ROM_LOAD32_WORD_SWAP( "02", 0x0400000, 0x200000, CRC(e5a08ebf) SHA1(0ce2414b547a027710ee4ea8f890cc2fa23dff9a) ) + ROM_LOAD32_WORD_SWAP( "03", 0x0400002, 0x200000, CRC(b942b041) SHA1(e8b17766bc6ae966109cbfdc0d682c5bc19f196c) ) + ROM_LOAD32_WORD_SWAP( "04", 0x0800000, 0x200000, CRC(d25256de) SHA1(4f46f37b8245aea39a44cb43de36eefdbb8d8697) ) + ROM_LOAD32_WORD_SWAP( "05", 0x0800002, 0x200000, CRC(6ea89d41) SHA1(24df7802c2756bb8b03632287b17361924e5cb86) ) + ROM_LOAD32_WORD_SWAP( "06", 0x0c00000, 0x200000, CRC(67d3df6c) SHA1(2026c77fc5f621e5f3b2696d5acb91fabab4b439) ) + ROM_LOAD32_WORD_SWAP( "07", 0x0c00002, 0x200000, CRC(74698a22) SHA1(75370c2804c0f1b0ded3a487c2fc0107716d3e0c) ) + ROM_LOAD32_WORD_SWAP( "08", 0x1000000, 0x200000, CRC(0bf28c1f) SHA1(058e5157314687b6af3bd58495f3e2eaee9bf7f1) ) + ROM_LOAD32_WORD_SWAP( "09", 0x1000002, 0x200000, CRC(8a5960ce) SHA1(308f7aa586f781dbc280c288594d9a588d22220a) ) + ROM_LOAD32_WORD_SWAP( "10", 0x1400000, 0x200000, CRC(58999d26) SHA1(4f7a0050a4b2452563bb6af26236443ef2e24eb2) ) + ROM_LOAD32_WORD_SWAP( "11", 0x1400002, 0x200000, CRC(25f21007) SHA1(dc7d77ad35c34583d0dc08908535d94afcf9d10c) ) + ROM_LOAD32_WORD_SWAP( "12", 0x1800000, 0x200000, CRC(c39eba49) SHA1(eb9e15b7087d16029bfaddde8e8c2c447cb3cf73) ) + ROM_LOAD32_WORD_SWAP( "13", 0x1800002, 0x200000, CRC(20feaaf1) SHA1(b591b99e02596a94ad0aeab830dc550eb5c9a8a6) ) + ROM_LOAD32_WORD_SWAP( "14", 0x1c00000, 0x200000, CRC(6c042967) SHA1(e81ec2bf4fe5880d283e76bebf5e22d60f0588f9) ) + ROM_LOAD32_WORD_SWAP( "15", 0x1c00002, 0x200000, CRC(a49c0834) SHA1(64ca242cbf3ad6160b79ea2cb8ca4e4958d40e59) ) + + ROM_REGION( 0x008000, "soundcpu", 0 ) /* GMS90C32 */ + ROM_LOAD( "u111", 0x0000, 0x8000, CRC(79012474) SHA1(09a2d5705d7bc52cc2d1644c87c1e31ee44813ef) ) + + ROM_REGION( 0x080000, "sounddata", 0 ) /* Music data */ + ROM_LOAD( "u108", 0x00000, 0x80000, CRC(4a7de2e1) SHA1(89da2423f22f98886d7cac807964b1e52398ee19) ) + + ROM_REGION( 0x008000, "qs1000:cpu", 0 ) /* QDSP (8052) Code */ + ROM_LOAD( "u107", 0x0000, 0x8000, CRC(afd5263d) SHA1(71ace1b749d8a6b84d08b97185e7e512d04e4b8d) ) + + ROM_REGION( 0x1000000, "qs1000", 0 ) /* QDSP sample ROMs */ + ROM_LOAD( "u97", 0x00000, 0x80000, CRC(6d37aa1a) SHA1(6827e500d9bf66e2e9236be563456ff88c78db91) ) + ROM_LOAD( "qs1001a.u96", 0x80000, 0x80000, CRC(d13c6407) SHA1(57b14f97c7d4f9b5d9745d3571a0b7115fbe3176) ) +ROM_END + + +MACHINE_RESET_MEMBER(eolith_state,eolith) +{ + m_soundcpu->set_input_line(MCS51_INT1_LINE, ASSERT_LINE); +} + +DRIVER_INIT_MEMBER(eolith_state,eolith) +{ + init_speedup(); + + // Sound CPU -> QS1000 CPU serial link + m_soundcpu->i8051_set_serial_tx_callback(write8_delegate(FUNC(eolith_state::soundcpu_to_qs1000),this)); + + // Configure the sound ROM banking + membank("sound_bank")->configure_entries(0, 16, memregion("sounddata")->base(), 0x8000); + + save_item(NAME(m_sound_data)); +} + +DRIVER_INIT_MEMBER(eolith_state,landbrk) +{ + m_coin_counter_bit = 0x1000; + + DRIVER_INIT_CALL(eolith); +} + + +// the protected sets all have an extra startup check (to prevent you swapping in an external ROM?) +// currently not fully understood, and possibly not possible to make work without the MCU dump so we patch it. +// to work with the unprotected code. +DRIVER_INIT_MEMBER(eolith_state,landbrka) +{ + //it fails compares with memories: + //$4002d338 -> $4002d348 .... $4002d33f -> $4002d34f + //related with bits 0x100 - 0x200 read at startup from input(0) ? + UINT32 *rombase = (UINT32*)memregion("maincpu")->base(); + rombase[0x14f00/4] = (rombase[0x14f00/4] & 0xffff) | 0x03000000; /* Change BR to NOP */ + + m_coin_counter_bit = 0x2000; + + DRIVER_INIT_CALL(eolith); +} + +DRIVER_INIT_MEMBER(eolith_state,hidctch2) +{ + //it fails compares in memory like in landbrka + UINT32 *rombase = (UINT32*)memregion("maincpu")->base(); + rombase[0xbcc8/4] = (rombase[0xbcc8/4] & 0xffff) | 0x03000000; /* Change BR to NOP */ + + DRIVER_INIT_CALL(eolith); +} + + +DRIVER_INIT_MEMBER(eolith_state,hidnc2k) +{ + UINT32 *rombase = (UINT32*)memregion("maincpu")->base(); + rombase[0x17b2c/4] = (rombase[0x17b2c/4] & 0x0000ffff) | 0x03000000; /* Change BR to NOP */ + DRIVER_INIT_CALL(eolith); +} + + + + + + + +DRIVER_INIT_MEMBER(eolith_state,hidctch3) +{ + m_maincpu->space(AS_PROGRAM).nop_write(0xfc200000, 0xfc200003); // this generates pens vibration + + // It is not clear why the first reads are needed too + + m_maincpu->space(AS_PROGRAM).install_read_handler(0xfce00000, 0xfce00003, read32_delegate(FUNC(eolith_state::hidctch3_pen1_r),this)); + m_maincpu->space(AS_PROGRAM).install_read_handler(0xfce80000, 0xfce80003, read32_delegate(FUNC(eolith_state::hidctch3_pen1_r),this)); + + m_maincpu->space(AS_PROGRAM).install_read_handler(0xfcf00000, 0xfcf00003, read32_delegate(FUNC(eolith_state::hidctch3_pen2_r),this)); + m_maincpu->space(AS_PROGRAM).install_read_handler(0xfcf80000, 0xfcf80003, read32_delegate(FUNC(eolith_state::hidctch3_pen2_r),this)); + + DRIVER_INIT_CALL(eolith); +} + + +/************************************* + * + * Game driver(s) + * + *************************************/ + +GAME( 1998, linkypip, 0, eolith45, linkypip, eolith_state, eolith, ROT0, "Eolith", "Linky Pipe", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1998, ironfort, 0, ironfort, ironfort, eolith_state, eolith, ROT0, "Eolith", "Iron Fortress", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1998, ironfortj, ironfort, ironfort, ironfortj, eolith_state, eolith, ROT0, "Eolith", "Iron Fortress (Japan)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1998, hidnctch, 0, eolith45, hidnctch, eolith_state, eolith, ROT0, "Eolith", "Hidden Catch (World) / Tul Lin Gu Lim Chat Ki '98 (Korea) (pcb ver 3.03)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // or Teurrin Geurim Chajgi '98 +GAME( 1998, raccoon, 0, eolith45, raccoon, eolith_state, eolith, ROT0, "Eolith", "Raccoon World", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1998, puzzlekg, 0, eolith45, puzzlekg, eolith_state, eolith, ROT0, "Eolith", "Puzzle King (Dance & Puzzle)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1999, candy, 0, eolith50, candy, eolith_state, eolith, ROT0, "Eolith", "Candy Candy", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1999, hidctch2, 0, eolith50, hidctch2, eolith_state, hidctch2, ROT0, "Eolith", "Hidden Catch 2 (pcb ver 3.03) (Kor/Eng) (AT89c52 protected)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1999, hidctch2a, hidctch2, eolith50, hidctch2, eolith_state, eolith, ROT0, "Eolith", "Hidden Catch 2 (pcb ver 1.00) (Kor/Eng/Jpn/Chi)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1999, hidnc2k, 0, eolith50, hidctch2, eolith_state, hidnc2k, ROT0, "Eolith", "Hidden Catch 2000 (AT89c52 protected)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1999, landbrk, 0, eolith45, landbrk, eolith_state, landbrk, ROT0, "Eolith", "Land Breaker (World) / Miss Tang Ja Ru Gi (Korea) (pcb ver 3.02)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // or Miss Ttang Jjareugi +GAME( 1999, landbrka, landbrk, eolith45, landbrk, eolith_state, landbrka, ROT0, "Eolith", "Land Breaker (World) / Miss Tang Ja Ru Gi (Korea) (pcb ver 3.03) (AT89c52 protected)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // or Miss Ttang Jjareugi +GAME( 1999, nhidctch, 0, eolith45, hidctch2, eolith_state, eolith, ROT0, "Eolith", "New Hidden Catch (World) / New Tul Lin Gu Lim Chat Ki '98 (Korea) (pcb ver 3.02)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // or New Teurrin Geurim Chajgi '98 +GAME( 1999, penfan, 0, eolith45, penfan, eolith_state, eolith, ROT0, "Eolith", "Penfan Girls - Step1. Mild Mind (set 1)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // alt title of Ribbon +GAME( 1999, penfana, penfan, eolith45, penfan, eolith_state, eolith, ROT0, "Eolith", "Penfan Girls - Step1. Mild Mind (set 2)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 2000, stealsee, 0, eolith45, stealsee, eolith_state, eolith, ROT0, "Moov Generation / Eolith", "Steal See", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 2000, hidctch3, 0, eolith50, hidctch3, eolith_state, hidctch3, ROT0, "Eolith", "Hidden Catch 3 (ver 1.00 / pcb ver 3.05)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 2001, fort2b, 0, eolith50, common, eolith_state, eolith, ROT0, "Eolith", "Fortress 2 Blue Arcade (ver 1.01 / pcb ver 3.05)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 2001, fort2ba, fort2b, eolith50, common, eolith_state, eolith, ROT0, "Eolith", "Fortress 2 Blue Arcade (ver 1.00 / pcb ver 3.05)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) |