/* Konami GTI Club System Driver by Ville Linde Hardware overview: GN672 CPU board: ---------------- IBM PowerPC 403GA at 32MHz (main CPU) Motorola MC68EC000 at 16MHz (sound CPU) Konami K056800 (MIRAC), sound system interface Konami K056230 (LANC), LAN interface Ricoh RF5c400 sound chip GN678 GFX board: ---------------- Analog Devices ADSP-21062 SHARC DSP at 36MHz Konami K001604 (2D tilemaps + 2x ROZ) 2x KS10071 (custom 3D pixel unit) 2x KS10081 (custom 3D texel unit) Hardware configurations: Game | ID | CPU PCB | CG Board(s) | notes ----------------------------------------------------------------------------------------------- GTI Club | GX688 | GN672(A) | GN678(B) | Operation Thunder Hurricane | GX792 | GN672(A) | GN678(B) | extra board for gun controls(?) Solar Assault | GX680 | GN672(A) | GN678(B) | Hang Pilot | GN685 | GN672(A) | 2x ?? | 3dfx-based CG boards Konami 'GTI Club' Hardware Konami, 1996-1998 Known games on this hardware include.... Game (C) Year ----------------------------------------- GTI Club Konami 1996 Jet Wave / Wave Shark Konami 1996 (video board only) Operation Thunder Hurricane Konami 1997 Solar Assault Konami 1997 Solar Assault : Revised Konami 1998 PCB Layouts ----------- Top Board GN672 PWB(A)3020088 Konami 1996 |--------------------------------------------------------------| | DRAM1M MASKROM.2S | |CN13 NJM5532 PAL(002616) | | SM5877 MASKROM.5S | | AN7395S NJM5532 | | RF5C400 MASKROM.7S | | | | 056800 SRAM256K MASKROM.9S | | 058232 SRAM256K | | RESET_SW EPROM.13K MASKROM.12U| |5 | |6 MASKROM.14U| |W TEST_SW 68EC000FN16 | |A EPROM.19R EPROM.19U| |Y EPROM.19R EPROM.19U| | 33.868MHz | | PAL(002248) |---------| | | PAL(002249) |PPC403GA | | | 93C56 | | | |LED PAL(002247) DRAM4MX16 | | | | |---------| | | 056230 DRAM4MX16 | |SRAM64K | | 64MHz MACH111 | |CN4 | | PAL(056787A) | |CN5 | |DSW(4) CN12 | |--------------------------------------------------------------| Notes: DRAM1M - OKI M514256 1Mx4 DRAM (SOJ26/20) SRAM64K - 8kx8 SRAM (DIP28) SRAM256K - Fujitsu 84256 32kx8 SRAM (DIP28) DRAM4MX16 - Hitachi HM514260 4Mx16 DRAM (SOJ42) RF5C400 - Ricoh RF5C400 PCM 32Ch, 44.1 kHz Stereo, 3D Effect Spatializer, clock input 16.934MHz (33.868/2) 056800 - Konami Custom (QFP80) 056230 - Konami Custom (QFP80) 058232 - Konami Custom Ceramic Package (SIL14, D/A filter?) MACH111 - AMD MACH111 PLCC44 CPLD (stamped '002246') 68EC000 - Motorola MC68EC000, running at 16.0MHz (64/4) 93C56 - EEPROM (DIP8) PPC403GA - IBM PowerPC 403GA CPU, clock input 32.0MHz (64/2) (QFP160) SM5877AM - Nippon Precision Circuits 3rd Order 2-Channel D/A Converter (SOIC24) NJM5532AN - Dual Low-Noise High-Speed Audio OP Amp (DIP8) AN7395S - Panasonic AN7395S Spatializer Audio Processor IC for 3D surround (SOIC20) CN4/5 - Network connectors CN12 - DIN96 connector joining to lower PCB CN13 - Audio OUT connector LED - Alpha-numeric 7-segment LED ROM Usage --------- |--------------------------------------- ROM Locations --------------------------------------| Game 13K 2S 5S 7S 9S 12U 14U 19R 19U 21R 21U -------------------------------------------------------------------------------------------------------------------------- GTI Club 688A07 688A12 688A11 688A10 688A09 688A06 688A05 688AAA04 688AAA02 688AAA03 688AAA01 Jet Wave - see note - Hang Pilot 685A07 - - 685A10 685A09 685A06 685A05 685JAB04 685JAB02 685JAB03 685JAB01 Operation Thunder Hurricane 680A07 680A12 680A11 680A10 680A09 680A06 680A05 680UAA04 680UAA02 680UAA03 680UAA01 Solar Assault 792A07 792A12 792A11 792A10 792A09 792A06 792A05 792UAA04 792UAA02 792UAA03 792UAA01 Solar Assault : Revised - N/A - Note : Jet Wave uses the lower board (GN678) from GTI Club, but it uses a different top board (ZR107 PWB(A)300769A) Check zr107.c for details on the top board. Operation Thunder Hurricane uses an additional top board for sound, network and analog control functions... GN680 PWB(E)403381B |------------------------------------------| |CN11 CN12 CN8 CN9 CN10 DSW(4)| | NRPS11 NRPS11 | | | | LM1881 LM1881 | | | |LED(x4) | | | | 68EC000FN16 8464 | | RESET_SW 8464 | |32MHz 680C22.20K| |8464 PAL(002962) | |CN4 056230 PAL(002961) | | PAL(056787A) PAL(002960) | |CN5 | |------------------------------------------| Notes: 68000 @ 16MHz (32/2) CN11/12 - Power connectors CN8/9 - 6-pin analog control connectors CN10 - 4-pin sound output connector NRPS11 - Idec NRPS11 PC Board circuit protector LM1881 - Video sync separator (DIP8) Bottom Board GN678 PWB(B)302009A Konami 1996 |-------------------------------------------------------------------------------------------| |CN4 MASKROM.2D |--------| SDR4M16 SDR4M16 |--------| SDR4M16 SDR4M16 | | |KS10081 | |KS10081 | | | MASKROM.4D | | | | SDR4M16| | |--------| |----------| |--------| |----------| | |CN2 MASKROM.6D | KS10071 | SDR4M16 | KS10071 | | | | | | | | | MASKROM.9D | | SDR4M16 | | | | |----------| |----------| | | MASKROM.11D SDR4M16| | SDR4M16 SDR4M16 | | MASKROM.13D | | MC88916 | | MASKROM.16D PAL(002304) | | MC44200 PAL(002303) | | MASKROM.18D | | | | 36MHz | | AM7203 AM7203 AM7203 AM7203 |-------------| | | 256KSRAM 256KSRAM |ANALOG | | | |DEVICES | | | PAL(002305) 64KSRAM 64KSRAM 256KSRAM 256KSRAM |ADSP-21062 | | | |SHARC | | | |--------| MACH110 |KS-160X | | |1MSRAM |KONAMI | |-------------| | |1MSRAM |001604 | | |1MSRAM | | 1MSRAM 1MSRAM | |1MSRAM |--------| | |1MSRAM 256KSRAM 1MSRAM 1MSRAM | |1MSRAM 256KSRAM 256KSRAM CN1 | |-------------------------------------------------------------------------------------------| Notes: SDR4M16 - Fujitsu 81141622-015 4M SDRAM (TSOP50) 1MSRAM - Sharp LH521007 128kx8 SRAM (SOJ32) 256KSRAM - Cypress CY7C199 32kx8 SRAM (SOJ28) 64KSRAM - Cypress CY7C185 8kx8 SRAM (DIP28) KS10071 - Konami Custom video chip KS10081 - Konami Custom video chip 001604 - Konami Custom (QFP208) MC44200FT - Motorola MC44200FT 3 Channel Video D/A Converter (QFP44) MACH110 - AMD MACH110 or MACH111 PLCC44 CPLD (Jet Wave stamped '002302') (GTI Club stamped '003161') (Thund.Hurr. stamped '003161') AM7203 - AMD AM7203 FIFO (PLCC32) MC88916 - Motorola MC88916 Low Skew CMOS PLL Clock Driver CN1 - 96 Pin joining connector to upper PCB CN2 - 8-Pin 24kHz RGB OUT CN4 - 6-Pin Power Connector ROM Usage --------- |---------------------- ROM Locations -----------------------| Game 2D 4D 6D 9D 11D 13D 16D 18D ------------------------------------------------------------------------------------------ GTI Club - 688A16 - 688A15 - 688A14 - 688A13 Jet Wave - 678A16 - 678A15 - 678A14 - 678A13 Operation Thunder Hurricane - 680A16 - 680A15 - 680A14 - 680A13 Solar Assault - 792A16 - 792A15 - 792A14 - 792A13 Solar Assault : Revised - N/A - Hang Pilot (uses an unknown but similar video board) 12W 4W - - - - - 678A14 - 678A13 */ #include "emu.h" #include "cpu/m68000/m68000.h" #include "machine/eeprom.h" #include "cpu/powerpc/ppc.h" #include "cpu/sharc/sharc.h" #include "machine/konppc.h" #include "machine/adc1038.h" #include "machine/k056230.h" #include "machine/k033906.h" #include "sound/rf5c400.h" #include "sound/k056800.h" #include "video/voodoo.h" #include "video/gticlub.h" #include "video/konicdev.h" #include "rendlay.h" class gticlub_state : public driver_device { public: gticlub_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), m_work_ram(*this, "work_ram") { } required_shared_ptr m_work_ram; UINT32 *m_sharc_dataram_0; UINT32 *m_sharc_dataram_1; DECLARE_WRITE32_MEMBER(paletteram32_w); DECLARE_READ32_MEMBER(gticlub_k001604_tile_r); DECLARE_WRITE32_MEMBER(gticlub_k001604_tile_w); DECLARE_READ32_MEMBER(gticlub_k001604_char_r); DECLARE_WRITE32_MEMBER(gticlub_k001604_char_w); DECLARE_READ32_MEMBER(gticlub_k001604_reg_r); DECLARE_WRITE32_MEMBER(gticlub_k001604_reg_w); DECLARE_READ8_MEMBER(sysreg_r); DECLARE_WRITE8_MEMBER(sysreg_w); DECLARE_READ32_MEMBER(dsp_dataram0_r); DECLARE_WRITE32_MEMBER(dsp_dataram0_w); DECLARE_READ32_MEMBER(dsp_dataram1_r); DECLARE_WRITE32_MEMBER(dsp_dataram1_w); void init_hangplt_common(); DECLARE_DRIVER_INIT(hangplt); DECLARE_DRIVER_INIT(hangpltu); DECLARE_DRIVER_INIT(gticlub); DECLARE_MACHINE_START(gticlub); DECLARE_MACHINE_RESET(gticlub); DECLARE_MACHINE_RESET(hangplt); INTERRUPT_GEN_MEMBER(gticlub_vblank); TIMER_CALLBACK_MEMBER(irq_off); }; WRITE32_MEMBER(gticlub_state::paletteram32_w) { COMBINE_DATA(&m_generic_paletteram_32[offset]); data = m_generic_paletteram_32[offset]; palette_set_color_rgb(machine(), offset, pal5bit(data >> 10), pal5bit(data >> 5), pal5bit(data >> 0)); } static void voodoo_vblank_0(device_t *device, int param) { device->machine().device("maincpu")->execute().set_input_line(INPUT_LINE_IRQ0, param ? ASSERT_LINE : CLEAR_LINE); } static void voodoo_vblank_1(device_t *device, int param) { device->machine().device("maincpu")->execute().set_input_line(INPUT_LINE_IRQ1, param ? ASSERT_LINE : CLEAR_LINE); } READ32_MEMBER(gticlub_state::gticlub_k001604_tile_r) { device_t *k001604 = machine().device(get_cgboard_id() ? "k001604_2" : "k001604_1"); return k001604_tile_r(k001604, space, offset, mem_mask); } WRITE32_MEMBER(gticlub_state::gticlub_k001604_tile_w) { device_t *k001604 = machine().device(get_cgboard_id() ? "k001604_2" : "k001604_1"); k001604_tile_w(k001604, space, offset, data, mem_mask); } READ32_MEMBER(gticlub_state::gticlub_k001604_char_r) { device_t *k001604 = machine().device(get_cgboard_id() ? "k001604_2" : "k001604_1"); return k001604_char_r(k001604, space, offset, mem_mask); } WRITE32_MEMBER(gticlub_state::gticlub_k001604_char_w) { device_t *k001604 = machine().device(get_cgboard_id() ? "k001604_2" : "k001604_1"); k001604_char_w(k001604, space, offset, data, mem_mask); } READ32_MEMBER(gticlub_state::gticlub_k001604_reg_r) { device_t *k001604 = machine().device(get_cgboard_id() ? "k001604_2" : "k001604_1"); return k001604_reg_r(k001604, space, offset, mem_mask); } WRITE32_MEMBER(gticlub_state::gticlub_k001604_reg_w) { device_t *k001604 = machine().device(get_cgboard_id() ? "k001604_2" : "k001604_1"); k001604_reg_w(k001604, space, offset, data, mem_mask); } /******************************************************************/ /* 93C56 EEPROM */ static const eeprom_interface eeprom_intf = { 8, /* address bits */ 16, /* data bits */ "*110", /* read command */ "*101", /* write command */ "*111", /* erase command */ "*10000xxxxxx", /* lock command */ "*10011xxxxxx", /* unlock command */ 1, /* enable_multi_read */ 0 /* reset_delay */ }; READ8_MEMBER(gticlub_state::sysreg_r) { static const char *const portnames[] = { "IN0", "IN1", "IN2", "IN3" }; device_t *adc1038 = machine().device("adc1038"); eeprom_device *eeprom = machine().device("eeprom"); switch (offset) { case 0: case 1: case 3: return ioport(portnames[offset])->read(); case 2: return adc1038_sars_read(adc1038) << 7; case 4: { // 7 0 // |?????ae?| // // a = ADC readout // e = EEPROM data out UINT32 eeprom_bit = (eeprom->read_bit() << 1); UINT32 adc_bit = (adc1038_do_read(adc1038) << 2); return (eeprom_bit | adc_bit); } default: mame_printf_debug("sysreg_r %d\n", offset); break; } return 0; } WRITE8_MEMBER(gticlub_state::sysreg_w) { device_t *adc1038 = machine().device("adc1038"); eeprom_device *eeprom = machine().device("eeprom"); switch (offset) { case 0: case 1: gticlub_led_setreg(offset, data); break; case 3: eeprom->write_bit((data & 0x01) ? 1 : 0); eeprom->set_clock_line((data & 0x02) ? ASSERT_LINE : CLEAR_LINE); eeprom->set_cs_line((data & 0x04) ? CLEAR_LINE : ASSERT_LINE); break; case 4: if (data & 0x80) /* CG Board 1 IRQ Ack */ machine().device("maincpu")->execute().set_input_line(INPUT_LINE_IRQ1, CLEAR_LINE); if (data & 0x40) /* CG Board 0 IRQ Ack */ machine().device("maincpu")->execute().set_input_line(INPUT_LINE_IRQ0, CLEAR_LINE); adc1038_di_write(adc1038, (data >> 0) & 1); adc1038_clk_write(adc1038, (data >> 1) & 1); set_cgboard_id((data >> 4) & 0x3); break; } } /******************************************************************/ MACHINE_START_MEMBER(gticlub_state,gticlub) { /* set conservative DRC options */ ppcdrc_set_options(machine().device("maincpu"), PPCDRC_COMPATIBLE_OPTIONS); /* configure fast RAM regions for DRC */ ppcdrc_add_fastram(machine().device("maincpu"), 0x00000000, 0x000fffff, FALSE, m_work_ram); } static ADDRESS_MAP_START( gticlub_map, AS_PROGRAM, 32, gticlub_state ) AM_RANGE(0x00000000, 0x000fffff) AM_RAM AM_SHARE("work_ram") /* Work RAM */ AM_RANGE(0x74000000, 0x740000ff) AM_READWRITE(gticlub_k001604_reg_r, gticlub_k001604_reg_w) AM_RANGE(0x74010000, 0x7401ffff) AM_RAM_WRITE(paletteram32_w) AM_SHARE("paletteram") AM_RANGE(0x74020000, 0x7403ffff) AM_READWRITE(gticlub_k001604_tile_r, gticlub_k001604_tile_w) AM_RANGE(0x74040000, 0x7407ffff) AM_READWRITE(gticlub_k001604_char_r, gticlub_k001604_char_w) AM_RANGE(0x78000000, 0x7800ffff) AM_READWRITE_LEGACY(cgboard_dsp_shared_r_ppc, cgboard_dsp_shared_w_ppc) AM_RANGE(0x78040000, 0x7804000f) AM_READWRITE_LEGACY(K001006_0_r, K001006_0_w) AM_RANGE(0x78080000, 0x7808000f) AM_READWRITE_LEGACY(K001006_1_r, K001006_1_w) AM_RANGE(0x780c0000, 0x780c0003) AM_READWRITE_LEGACY(cgboard_dsp_comm_r_ppc, cgboard_dsp_comm_w_ppc) AM_RANGE(0x7e000000, 0x7e003fff) AM_READWRITE8(sysreg_r, sysreg_w, 0xffffffff) AM_RANGE(0x7e008000, 0x7e009fff) AM_DEVREADWRITE8_LEGACY("k056230", k056230_r, k056230_w, 0xffffffff) AM_RANGE(0x7e00a000, 0x7e00bfff) AM_DEVREADWRITE_LEGACY("k056230", lanc_ram_r, lanc_ram_w) AM_RANGE(0x7e00c000, 0x7e00c007) AM_DEVWRITE_LEGACY("k056800", k056800_host_w) AM_RANGE(0x7e00c000, 0x7e00c007) AM_DEVREAD_LEGACY("k056800", k056800_host_r) // Hang Pilot AM_RANGE(0x7e00c008, 0x7e00c00f) AM_DEVREAD_LEGACY("k056800", k056800_host_r) AM_RANGE(0x7f000000, 0x7f3fffff) AM_ROM AM_REGION("user2", 0) /* Data ROM */ AM_RANGE(0x7f800000, 0x7f9fffff) AM_ROM AM_SHARE("share2") AM_RANGE(0x7fe00000, 0x7fffffff) AM_ROM AM_REGION("user1", 0) AM_SHARE("share2") /* Program ROM */ ADDRESS_MAP_END /**********************************************************************/ static ADDRESS_MAP_START( sound_memmap, AS_PROGRAM, 16, gticlub_state ) AM_RANGE(0x000000, 0x07ffff) AM_ROM AM_RANGE(0x200000, 0x20ffff) AM_RAM AM_RANGE(0x300000, 0x30000f) AM_DEVREADWRITE_LEGACY("k056800", k056800_sound_r, k056800_sound_w) AM_RANGE(0x400000, 0x400fff) AM_DEVREADWRITE_LEGACY("rfsnd", rf5c400_r, rf5c400_w) /* Ricoh RF5C400 */ AM_RANGE(0x580000, 0x580001) AM_WRITENOP AM_RANGE(0x600000, 0x600001) AM_WRITENOP ADDRESS_MAP_END /*****************************************************************************/ READ32_MEMBER(gticlub_state::dsp_dataram0_r) { return m_sharc_dataram_0[offset] & 0xffff; } WRITE32_MEMBER(gticlub_state::dsp_dataram0_w) { m_sharc_dataram_0[offset] = data; } READ32_MEMBER(gticlub_state::dsp_dataram1_r) { return m_sharc_dataram_1[offset] & 0xffff; } WRITE32_MEMBER(gticlub_state::dsp_dataram1_w) { m_sharc_dataram_1[offset] = data; } static ADDRESS_MAP_START( sharc_map, AS_DATA, 32, gticlub_state ) AM_RANGE(0x400000, 0x41ffff) AM_READWRITE_LEGACY(cgboard_0_shared_sharc_r, cgboard_0_shared_sharc_w) AM_RANGE(0x500000, 0x5fffff) AM_READWRITE(dsp_dataram0_r, dsp_dataram0_w) AM_RANGE(0x600000, 0x6fffff) AM_READWRITE_LEGACY(K001005_r, K001005_w) AM_RANGE(0x700000, 0x7000ff) AM_READWRITE_LEGACY(cgboard_0_comm_sharc_r, cgboard_0_comm_sharc_w) ADDRESS_MAP_END static ADDRESS_MAP_START( hangplt_sharc0_map, AS_DATA, 32, gticlub_state ) AM_RANGE(0x0400000, 0x041ffff) AM_READWRITE_LEGACY(cgboard_0_shared_sharc_r, cgboard_0_shared_sharc_w) AM_RANGE(0x0500000, 0x05fffff) AM_READWRITE(dsp_dataram0_r, dsp_dataram0_w) AM_RANGE(0x1400000, 0x14fffff) AM_RAM AM_RANGE(0x2400000, 0x27fffff) AM_DEVREADWRITE_LEGACY("voodoo0", nwk_voodoo_0_r, voodoo_w) AM_RANGE(0x3400000, 0x34000ff) AM_READWRITE_LEGACY(cgboard_0_comm_sharc_r, cgboard_0_comm_sharc_w) AM_RANGE(0x3401000, 0x34fffff) AM_DEVWRITE_LEGACY("voodoo0", nwk_fifo_0_w) AM_RANGE(0x3500000, 0x3507fff) AM_READWRITE_LEGACY(K033906_0_r, K033906_0_w) AM_RANGE(0x3600000, 0x37fffff) AM_ROMBANK("bank5") ADDRESS_MAP_END static ADDRESS_MAP_START( hangplt_sharc1_map, AS_DATA, 32, gticlub_state ) AM_RANGE(0x0400000, 0x041ffff) AM_READWRITE_LEGACY(cgboard_1_shared_sharc_r, cgboard_1_shared_sharc_w) AM_RANGE(0x0500000, 0x05fffff) AM_READWRITE(dsp_dataram1_r, dsp_dataram1_w) AM_RANGE(0x1400000, 0x14fffff) AM_RAM AM_RANGE(0x2400000, 0x27fffff) AM_DEVREADWRITE_LEGACY("voodoo1", nwk_voodoo_1_r, voodoo_w) AM_RANGE(0x3400000, 0x34000ff) AM_READWRITE_LEGACY(cgboard_1_comm_sharc_r, cgboard_1_comm_sharc_w) AM_RANGE(0x3401000, 0x34fffff) AM_DEVWRITE_LEGACY("voodoo1", nwk_fifo_1_w) AM_RANGE(0x3500000, 0x3507fff) AM_READWRITE_LEGACY(K033906_1_r, K033906_1_w) AM_RANGE(0x3600000, 0x37fffff) AM_ROMBANK("bank6") ADDRESS_MAP_END /*****************************************************************************/ static INPUT_PORTS_START( gticlub ) PORT_START("IN0") PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("View switch") PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Shift Down") PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("Shift Up") PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("AT/MT switch") PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_NAME("Service Button") PORT_CODE(KEYCODE_8) PORT_BIT( 0x0b, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_START("IN1") PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_START("IN2") PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_START("IN3") PORT_SERVICE_NO_TOGGLE( 0x80, IP_ACTIVE_LOW ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_DIPNAME( 0x03, 0x03, "Network ID" ) PORT_DIPSETTING( 0x03, "1" ) PORT_DIPSETTING( 0x02, "2" ) PORT_DIPSETTING( 0x01, "3" ) PORT_DIPSETTING( 0x00, "4" ) PORT_DIPNAME( 0x04, 0x04, "DIP3" ) PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPNAME( 0x08, 0x08, "DIP4" ) PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_START("AN0") /* mask default type sens delta min max */ PORT_BIT( 0x3ff, 0x200, IPT_PADDLE ) PORT_NAME("Steering Wheel") PORT_MINMAX(0x000,0x3ff) PORT_SENSITIVITY(35) PORT_KEYDELTA(5) PORT_START("AN1") PORT_BIT( 0x3ff, 0x000, IPT_PEDAL ) PORT_NAME("Accelerator") PORT_MINMAX(0x000,0x3ff) PORT_SENSITIVITY(35) PORT_KEYDELTA(5) PORT_START("AN2") PORT_BIT( 0x3ff, 0x000, IPT_PEDAL2 ) PORT_NAME("Brake") PORT_MINMAX(0x000,0x3ff) PORT_SENSITIVITY(35) PORT_KEYDELTA(5) PORT_START("AN3") PORT_BIT( 0x3ff, 0x000, IPT_PEDAL3 ) PORT_NAME("Handbrake") PORT_MINMAX(0x000,0x3ff) PORT_SENSITIVITY(35) PORT_KEYDELTA(5) INPUT_PORTS_END static INPUT_PORTS_START( slrasslt ) PORT_START("IN0") PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) // View Shift PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) // Trigger PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) // Missile PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) // Power Up PORT_START("IN1") PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) PORT_START("IN2") PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_START("IN3") PORT_SERVICE_NO_TOGGLE( 0x80, IP_ACTIVE_LOW ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_NAME("Service Button") PORT_CODE(KEYCODE_8) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_DIPNAME( 0x01, 0x01, "DIP1" ) PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPNAME( 0x02, 0x02, "DIP2" ) PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPNAME( 0x04, 0x04, "DIP3" ) PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPNAME( 0x08, 0x08, "DIP4" ) PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_START("AN0") PORT_BIT( 0x3ff, 0x000, IPT_AD_STICK_Y ) PORT_MINMAX(0x000,0x3ff) PORT_SENSITIVITY(35) PORT_KEYDELTA(5) PORT_START("AN1") PORT_BIT( 0x3ff, 0x000, IPT_AD_STICK_X ) PORT_MINMAX(0x000,0x3ff) PORT_SENSITIVITY(35) PORT_KEYDELTA(5) PORT_REVERSE PORT_START("AN2") PORT_BIT( 0x3ff, 0x000, IPT_UNUSED ) PORT_START("AN3") PORT_BIT( 0x3ff, 0x000, IPT_UNUSED ) INPUT_PORTS_END static INPUT_PORTS_START( thunderh ) PORT_START("IN0") PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) PORT_START("IN1") PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) PORT_START("IN2") PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_START("IN3") PORT_SERVICE_NO_TOGGLE( 0x80, IP_ACTIVE_LOW ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_NAME("Service Button") PORT_CODE(KEYCODE_8) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_DIPNAME( 0x01, 0x00, "DIP1" ) PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPNAME( 0x02, 0x02, "DIP2" ) PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPNAME( 0x04, 0x04, "DIP3" ) PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPNAME( 0x08, 0x08, "DIP4" ) PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) INPUT_PORTS_END static INPUT_PORTS_START( hangplt ) PORT_START("IN0") PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x07, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_START("IN1") PORT_BIT( 0x8f, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) // Push limit switch PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) // Pull limit switch PORT_START("IN2") PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_START("IN3") PORT_SERVICE_NO_TOGGLE( 0x80, IP_ACTIVE_LOW ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_NAME("Service Button") PORT_CODE(KEYCODE_8) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_DIPNAME( 0x08, 0x08, "DIP4" ) PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPNAME( 0x04, 0x04, "DIP3" ) PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPNAME( 0x02, 0x00, "Disable Test Mode" ) PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPNAME( 0x01, 0x01, "Disable Machine Init" ) // NOTE: Disabling Machine Init also disables analog controls PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_START("AN0") // Rudder PORT_BIT( 0x3ff, 0x000, IPT_AD_STICK_X ) PORT_MINMAX(0x000,0x3ff) PORT_SENSITIVITY(35) PORT_KEYDELTA(5) PORT_REVERSE PORT_START("AN1") // Control Bar PORT_BIT( 0x3ff, 0x000, IPT_AD_STICK_Y ) PORT_MINMAX(0x000,0x3ff) PORT_SENSITIVITY(35) PORT_KEYDELTA(5) PORT_REVERSE PORT_START("AN2") PORT_BIT( 0x3ff, 0x000, IPT_UNKNOWN ) PORT_START("AN3") PORT_BIT( 0x3ff, 0x000, IPT_UNKNOWN ) INPUT_PORTS_END /* PowerPC interrupts IRQ0: Vblank IRQ2: LANC DMA0 */ INTERRUPT_GEN_MEMBER(gticlub_state::gticlub_vblank) { device.execute().set_input_line(INPUT_LINE_IRQ0, ASSERT_LINE); } static const sharc_config sharc_cfg = { BOOT_MODE_EPROM }; TIMER_CALLBACK_MEMBER(gticlub_state::irq_off) { machine().device("audiocpu")->execute().set_input_line(param, CLEAR_LINE); } static void sound_irq_callback( running_machine &machine, int irq ) { gticlub_state *state = machine.driver_data(); int line = (irq == 0) ? INPUT_LINE_IRQ1 : INPUT_LINE_IRQ2; machine.device("audiocpu")->execute().set_input_line(line, ASSERT_LINE); machine.scheduler().timer_set(attotime::from_usec(5), timer_expired_delegate(FUNC(gticlub_state::irq_off),state), line); } static const k056800_interface gticlub_k056800_interface = { sound_irq_callback }; static int adc1038_input_callback( device_t *device, int input ) { int value = 0; switch (input) { case 0: value = device->machine().root_device().ioport("AN0")->read(); break; case 1: value = device->machine().root_device().ioport("AN1")->read(); break; case 2: value = device->machine().root_device().ioport("AN2")->read(); break; case 3: value = device->machine().root_device().ioport("AN3")->read(); break; case 4: value = 0x000; break; case 5: value = 0x000; break; case 6: value = 0x000; break; case 7: value = 0x000; break; } return value; } static const adc1038_interface gticlub_adc1038_intf = { 1, adc1038_input_callback }; static const adc1038_interface thunderh_adc1038_intf = { 0, adc1038_input_callback }; static const k056230_interface gticlub_k056230_intf = { "maincpu", 0 }; static const k056230_interface thunderh_k056230_intf = { "maincpu", 1 }; static const k001604_interface gticlub_k001604_intf = { 1, 2, /* gfx index 1 & 2 */ 1, 1, /* layer_size, roz_size */ 0 /* slrasslt hack */ }; static const k001604_interface slrasslt_k001604_intf = { 1, 2, /* gfx index 1 & 2 */ 0, 0, /* layer_size, roz_size */ 1 /* slrasslt hack */ }; static const k001604_interface hangplt_k001604_intf_l = { 1, 2, /* gfx index 1 & 2 */ 0, 1, /* layer_size, roz_size */ 0 /* slrasslt hack */ }; static const k001604_interface hangplt_k001604_intf_r = { 3, 4, /* gfx index 1 & 2 */ 0, 1, /* layer_size, roz_size */ 0 /* slrasslt hack */ }; MACHINE_RESET_MEMBER(gticlub_state,gticlub) { machine().device("dsp")->execute().set_input_line(INPUT_LINE_RESET, ASSERT_LINE); } static MACHINE_CONFIG_START( gticlub, gticlub_state ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", PPC403GA, 64000000/2) /* PowerPC 403GA 32MHz */ MCFG_CPU_PROGRAM_MAP(gticlub_map) MCFG_CPU_VBLANK_INT_DRIVER("screen", gticlub_state, gticlub_vblank) MCFG_CPU_ADD("audiocpu", M68000, 64000000/4) /* 16MHz */ MCFG_CPU_PROGRAM_MAP(sound_memmap) MCFG_CPU_ADD("dsp", ADSP21062, 36000000) MCFG_CPU_CONFIG(sharc_cfg) MCFG_CPU_DATA_MAP(sharc_map) MCFG_QUANTUM_TIME(attotime::from_hz(6000)) MCFG_EEPROM_ADD("eeprom", eeprom_intf) MCFG_MACHINE_START_OVERRIDE(gticlub_state,gticlub) MCFG_MACHINE_RESET_OVERRIDE(gticlub_state,gticlub) MCFG_ADC1038_ADD("adc1038", gticlub_adc1038_intf) MCFG_K056230_ADD("k056230", gticlub_k056230_intf) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(512, 384) MCFG_SCREEN_VISIBLE_AREA(0, 511, 0, 383) MCFG_SCREEN_UPDATE_STATIC(gticlub) MCFG_PALETTE_LENGTH(65536) MCFG_VIDEO_START(gticlub) MCFG_K001604_ADD("k001604_1", gticlub_k001604_intf) MCFG_K056800_ADD("k056800", gticlub_k056800_interface, 64000000/4) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") MCFG_SOUND_ADD("rfsnd", RF5C400, 33868800/2) MCFG_SOUND_ROUTE(0, "lspeaker", 1.0) MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( thunderh, gticlub ) MCFG_DEVICE_REMOVE("adc1038") MCFG_ADC1038_ADD("adc1038", thunderh_adc1038_intf) MCFG_DEVICE_REMOVE("k056230") MCFG_K056230_ADD("k056230", thunderh_k056230_intf) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( slrasslt, gticlub ) MCFG_DEVICE_REMOVE("adc1038") MCFG_ADC1038_ADD("adc1038", thunderh_adc1038_intf) MCFG_DEVICE_REMOVE("k001604_1") MCFG_K001604_ADD("k001604_1", slrasslt_k001604_intf) MACHINE_CONFIG_END static const k033906_interface hangplt_k033906_intf_0 = { "voodoo0" }; static const k033906_interface hangplt_k033906_intf_1 = { "voodoo1" }; MACHINE_RESET_MEMBER(gticlub_state,hangplt) { machine().device("dsp")->execute().set_input_line(INPUT_LINE_RESET, ASSERT_LINE); machine().device("dsp2")->execute().set_input_line(INPUT_LINE_RESET, ASSERT_LINE); } static const voodoo_config voodoo_l_intf = { 2, // fbmem; 2,// tmumem0; 2,// tmumem1; "lscreen",// screen; "dsp",// cputag; voodoo_vblank_0,// vblank; NULL,// stall; }; static const voodoo_config voodoo_r_intf = { 2, // fbmem; 2,// tmumem0; 2,// tmumem1; "rscreen",// screen; "dsp2",// cputag; voodoo_vblank_1,// vblank; NULL,// stall; }; static MACHINE_CONFIG_START( hangplt, gticlub_state ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", PPC403GA, 64000000/2) /* PowerPC 403GA 32MHz */ MCFG_CPU_PROGRAM_MAP(gticlub_map) MCFG_CPU_ADD("audiocpu", M68000, 64000000/4) /* 16MHz */ MCFG_CPU_PROGRAM_MAP(sound_memmap) MCFG_CPU_ADD("dsp", ADSP21062, 36000000) MCFG_CPU_CONFIG(sharc_cfg) MCFG_CPU_DATA_MAP(hangplt_sharc0_map) MCFG_CPU_ADD("dsp2", ADSP21062, 36000000) MCFG_CPU_CONFIG(sharc_cfg) MCFG_CPU_DATA_MAP(hangplt_sharc1_map) MCFG_QUANTUM_TIME(attotime::from_hz(6000)) MCFG_EEPROM_ADD("eeprom", eeprom_intf) MCFG_MACHINE_START_OVERRIDE(gticlub_state,gticlub) MCFG_MACHINE_RESET_OVERRIDE(gticlub_state,hangplt) MCFG_ADC1038_ADD("adc1038", thunderh_adc1038_intf) MCFG_K056230_ADD("k056230", gticlub_k056230_intf) MCFG_3DFX_VOODOO_1_ADD("voodoo0", STD_VOODOO_1_CLOCK, voodoo_l_intf) MCFG_3DFX_VOODOO_1_ADD("voodoo1", STD_VOODOO_1_CLOCK, voodoo_r_intf) MCFG_K033906_ADD("k033906_1", hangplt_k033906_intf_0) MCFG_K033906_ADD("k033906_2", hangplt_k033906_intf_1) /* video hardware */ MCFG_PALETTE_LENGTH(65536) MCFG_SCREEN_ADD("lscreen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(512, 384) MCFG_SCREEN_VISIBLE_AREA(0, 511, 0, 383) MCFG_SCREEN_UPDATE_STATIC(hangplt) MCFG_SCREEN_ADD("rscreen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(512, 384) MCFG_SCREEN_VISIBLE_AREA(0, 511, 0, 383) MCFG_SCREEN_UPDATE_STATIC(hangplt) MCFG_K001604_ADD("k001604_1", hangplt_k001604_intf_l) MCFG_K001604_ADD("k001604_2", hangplt_k001604_intf_r) MCFG_K056800_ADD("k056800", gticlub_k056800_interface, 64000000/4) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") MCFG_SOUND_ADD("rfsnd", RF5C400, 33868800/2) MCFG_SOUND_ROUTE(0, "lspeaker", 1.0) MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) MACHINE_CONFIG_END /*************************************************************************/ ROM_START( gticlub ) /* Euro version EAA - Reports: GTI CLUB(TM) System ver 1.00(EUR) */ ROM_REGION(0x200000, "user1", 0) /* PowerPC program roms */ ROM_LOAD32_BYTE("688eaa01.21u", 0x000003, 0x80000, CRC(824944ad) SHA1(a7bb86a2495e0579f5d82808aeed4895be2dbe3b) ) ROM_LOAD32_BYTE("688eaa02.19u", 0x000002, 0x80000, CRC(88e7bfb9) SHA1(fc0e945291204ee0c82bbd2c81ff241e1565c6ae) ) ROM_LOAD32_BYTE("688eaa03.21r", 0x000001, 0x80000, CRC(ea1c696b) SHA1(fd778afaa1de3a35b38a67b8e4c9a08fe9cf1b9e) ) ROM_LOAD32_BYTE("688eaa04.19r", 0x000000, 0x80000, CRC(94fa2334) SHA1(04edf840f841b9713fa93e7ebb6aad2000b738c0) ) ROM_REGION32_BE(0x400000, "user2", 0) /* data roms */ ROM_LOAD32_WORD_SWAP("688a05.14u", 0x000000, 0x200000, CRC(7caa3f80) SHA1(28409dc17c4e010173396fdc069a409fbea0d58d) ) ROM_LOAD32_WORD_SWAP("688a06.12u", 0x000002, 0x200000, CRC(83e7ce0a) SHA1(afe185f6ed700baaf4c8affddc29f8afdfec4423) ) ROM_REGION(0x80000, "audiocpu", 0) /* 68k program */ ROM_LOAD16_WORD_SWAP( "688a07.13k", 0x000000, 0x040000, CRC(f0805f06) SHA1(4b87e02b89e7ea812454498603767668e4619025) ) ROM_REGION(0x800000, "rfsnd", 0) /* sound roms */ ROM_LOAD( "688a09.9s", 0x000000, 0x200000, CRC(fb582963) SHA1(ce8fe6a4d7ac7d7f4b6591f9150b1d351e636354) ) ROM_LOAD( "688a10.7s", 0x200000, 0x200000, CRC(b3ddc5f1) SHA1(a3f76c86e85eb17f20efb037c1ad64e9cb8566c8) ) ROM_LOAD( "688a11.5s", 0x400000, 0x200000, CRC(fc706183) SHA1(c8ce6de0588be1023ef48577bc88a4e5effdcd25) ) ROM_LOAD( "688a12.2s", 0x600000, 0x200000, CRC(510c70e3) SHA1(5af77bc98772ab7961308c3af0a80cb1bca690e3) ) ROM_REGION(0x800000, "gfx1", 0) /* texture roms */ ROM_LOAD64_WORD( "688a13.18d", 0x000000, 0x200000, CRC(c8f04f91) SHA1(9da8cc3a94dbf0a1fce87c2bc9249df712ae0b0d) ) ROM_LOAD64_WORD( "688a14.13d", 0x000002, 0x200000, CRC(b9932735) SHA1(2492244d2acb350974202a6718bc7121325d2121) ) ROM_LOAD64_WORD( "688a15.9d", 0x000004, 0x200000, CRC(8aadee51) SHA1(be9020a47583da9d4ff586d227836dc5b7dc31f0) ) ROM_LOAD64_WORD( "688a16.4d", 0x000006, 0x200000, CRC(7f4e1893) SHA1(585be7b31ab7a48300c22b00443b00d631f4c49d) ) ROM_REGION16_BE( 0x200, "eeprom", 0 ) ROM_LOAD( "gticlub.nv", 0x0000, 0x0200, CRC(eca78a49) SHA1(3dcaccc4bee58f7ff5d6ecae551887cc967deaf7) ) ROM_END ROM_START( gticlubu ) /* USA version UAA - Reports: GTI CLUB(TM) System ver 1.02(USA) */ ROM_REGION(0x200000, "user1", 0) /* PowerPC program roms */ ROM_LOAD32_BYTE("688uaa01.21u", 0x000003, 0x80000, CRC(4e2ea7ad) SHA1(cc517df7c4df098896a2a88843fef97c9beb46f3) ) ROM_LOAD32_BYTE("688uaa02.19u", 0x000002, 0x80000, CRC(c0212ce1) SHA1(7716acfa1b1391e9d7a321ed46785c144d27fdd8) ) ROM_LOAD32_BYTE("688uaa03.21r", 0x000001, 0x80000, CRC(030246fe) SHA1(70d3591159b07aaeca60141db44f7c28d1b2dac9) ) ROM_LOAD32_BYTE("688uaa04.19r", 0x000000, 0x80000, CRC(9394e0b2) SHA1(9ff4ff22a307352bf127fc2b5ef9c56ecacf0aab) ) ROM_REGION32_BE(0x400000, "user2", 0) /* data roms */ ROM_LOAD32_WORD_SWAP("688a05.14u", 0x000000, 0x200000, CRC(7caa3f80) SHA1(28409dc17c4e010173396fdc069a409fbea0d58d) ) ROM_LOAD32_WORD_SWAP("688a06.12u", 0x000002, 0x200000, CRC(83e7ce0a) SHA1(afe185f6ed700baaf4c8affddc29f8afdfec4423) ) ROM_REGION(0x80000, "audiocpu", 0) /* 68k program */ ROM_LOAD16_WORD_SWAP( "688a07.13k", 0x000000, 0x040000, CRC(f0805f06) SHA1(4b87e02b89e7ea812454498603767668e4619025) ) ROM_REGION(0x800000, "rfsnd", 0) /* sound roms */ ROM_LOAD( "688a09.9s", 0x000000, 0x200000, CRC(fb582963) SHA1(ce8fe6a4d7ac7d7f4b6591f9150b1d351e636354) ) ROM_LOAD( "688a10.7s", 0x200000, 0x200000, CRC(b3ddc5f1) SHA1(a3f76c86e85eb17f20efb037c1ad64e9cb8566c8) ) ROM_LOAD( "688a11.5s", 0x400000, 0x200000, CRC(fc706183) SHA1(c8ce6de0588be1023ef48577bc88a4e5effdcd25) ) ROM_LOAD( "688a12.2s", 0x600000, 0x200000, CRC(510c70e3) SHA1(5af77bc98772ab7961308c3af0a80cb1bca690e3) ) ROM_REGION(0x800000, "gfx1", 0) /* texture roms */ ROM_LOAD64_WORD( "688a13.18d", 0x000000, 0x200000, CRC(c8f04f91) SHA1(9da8cc3a94dbf0a1fce87c2bc9249df712ae0b0d) ) ROM_LOAD64_WORD( "688a14.13d", 0x000002, 0x200000, CRC(b9932735) SHA1(2492244d2acb350974202a6718bc7121325d2121) ) ROM_LOAD64_WORD( "688a15.9d", 0x000004, 0x200000, CRC(8aadee51) SHA1(be9020a47583da9d4ff586d227836dc5b7dc31f0) ) ROM_LOAD64_WORD( "688a16.4d", 0x000006, 0x200000, CRC(7f4e1893) SHA1(585be7b31ab7a48300c22b00443b00d631f4c49d) ) ROM_REGION16_BE( 0x200, "eeprom", 0 ) ROM_LOAD( "gticlub.nv", 0x0000, 0x0200, CRC(eca78a49) SHA1(3dcaccc4bee58f7ff5d6ecae551887cc967deaf7) ) ROM_END ROM_START( gticluba ) /* Asia version AAA - Reports: GTI CLUB(TM) System ver 1.00(ASI) */ ROM_REGION(0x200000, "user1", 0) /* PowerPC program roms */ ROM_LOAD32_BYTE("688aaa01.21u", 0x000003, 0x80000, CRC(06a56474) SHA1(3a457b885a35e3ee030fd51d847bcf75fce46208) ) ROM_LOAD32_BYTE("688aaa02.19u", 0x000002, 0x80000, CRC(3c1e714a) SHA1(557f8542b855b2b35f242c8db7396017aca6dbd8) ) ROM_LOAD32_BYTE("688aaa03.21r", 0x000001, 0x80000, CRC(e060580b) SHA1(50242f3f3b949cc03082e4e75d9dcc89e17f0a75) ) ROM_LOAD32_BYTE("688aaa04.19r", 0x000000, 0x80000, CRC(928c23cd) SHA1(cce54398e1e5b98bfb717839cc422f1f60502788) ) ROM_REGION32_BE(0x400000, "user2", 0) /* data roms */ ROM_LOAD32_WORD_SWAP("688a05.14u", 0x000000, 0x200000, CRC(7caa3f80) SHA1(28409dc17c4e010173396fdc069a409fbea0d58d) ) ROM_LOAD32_WORD_SWAP("688a06.12u", 0x000002, 0x200000, CRC(83e7ce0a) SHA1(afe185f6ed700baaf4c8affddc29f8afdfec4423) ) ROM_REGION(0x80000, "audiocpu", 0) /* 68k program */ ROM_LOAD16_WORD_SWAP( "688a07.13k", 0x000000, 0x040000, CRC(f0805f06) SHA1(4b87e02b89e7ea812454498603767668e4619025) ) ROM_REGION(0x800000, "rfsnd", 0) /* sound roms */ ROM_LOAD( "688a09.9s", 0x000000, 0x200000, CRC(fb582963) SHA1(ce8fe6a4d7ac7d7f4b6591f9150b1d351e636354) ) ROM_LOAD( "688a10.7s", 0x200000, 0x200000, CRC(b3ddc5f1) SHA1(a3f76c86e85eb17f20efb037c1ad64e9cb8566c8) ) ROM_LOAD( "688a11.5s", 0x400000, 0x200000, CRC(fc706183) SHA1(c8ce6de0588be1023ef48577bc88a4e5effdcd25) ) ROM_LOAD( "688a12.2s", 0x600000, 0x200000, CRC(510c70e3) SHA1(5af77bc98772ab7961308c3af0a80cb1bca690e3) ) ROM_REGION(0x800000, "gfx1", 0) /* texture roms */ ROM_LOAD64_WORD( "688a13.18d", 0x000000, 0x200000, CRC(c8f04f91) SHA1(9da8cc3a94dbf0a1fce87c2bc9249df712ae0b0d) ) ROM_LOAD64_WORD( "688a14.13d", 0x000002, 0x200000, CRC(b9932735) SHA1(2492244d2acb350974202a6718bc7121325d2121) ) ROM_LOAD64_WORD( "688a15.9d", 0x000004, 0x200000, CRC(8aadee51) SHA1(be9020a47583da9d4ff586d227836dc5b7dc31f0) ) ROM_LOAD64_WORD( "688a16.4d", 0x000006, 0x200000, CRC(7f4e1893) SHA1(585be7b31ab7a48300c22b00443b00d631f4c49d) ) ROM_REGION16_BE( 0x200, "eeprom", 0 ) ROM_LOAD( "gticlub.nv", 0x0000, 0x0200, CRC(eca78a49) SHA1(3dcaccc4bee58f7ff5d6ecae551887cc967deaf7) ) ROM_END ROM_START( gticlubj ) /* Japan version JAA - Reports: GTI CLUB(TM) System ver 1.00(JPN) */ ROM_REGION(0x200000, "user1", 0) /* PowerPC program roms */ ROM_LOAD32_BYTE("688jaa01.21u", 0x000003, 0x80000, CRC(1492059c) SHA1(176dbd87f23f4cd8e1397e67da501738e20e5a57) ) ROM_LOAD32_BYTE("688jaa02.19u", 0x000002, 0x80000, CRC(7896dd69) SHA1(a3ab7b872132a5e66238e414f4b497cf7beb8b1c) ) ROM_LOAD32_BYTE("688jaa03.21r", 0x000001, 0x80000, CRC(94e2be50) SHA1(f206ac201903f3aae29196ab6fccdef104859346) ) ROM_LOAD32_BYTE("688jaa04.19r", 0x000000, 0x80000, CRC(ff539bb6) SHA1(1a225eca4377d82a2b6cb99c1d16580b9ccf2f08) ) ROM_REGION32_BE(0x400000, "user2", 0) /* data roms */ ROM_LOAD32_WORD_SWAP("688a05.14u", 0x000000, 0x200000, CRC(7caa3f80) SHA1(28409dc17c4e010173396fdc069a409fbea0d58d) ) ROM_LOAD32_WORD_SWAP("688a06.12u", 0x000002, 0x200000, CRC(83e7ce0a) SHA1(afe185f6ed700baaf4c8affddc29f8afdfec4423) ) ROM_REGION(0x80000, "audiocpu", 0) /* 68k program */ ROM_LOAD16_WORD_SWAP( "688a07.13k", 0x000000, 0x040000, CRC(f0805f06) SHA1(4b87e02b89e7ea812454498603767668e4619025) ) ROM_REGION(0x800000, "rfsnd", 0) /* sound roms */ ROM_LOAD( "688a09.9s", 0x000000, 0x200000, CRC(fb582963) SHA1(ce8fe6a4d7ac7d7f4b6591f9150b1d351e636354) ) ROM_LOAD( "688a10.7s", 0x200000, 0x200000, CRC(b3ddc5f1) SHA1(a3f76c86e85eb17f20efb037c1ad64e9cb8566c8) ) ROM_LOAD( "688a11.5s", 0x400000, 0x200000, CRC(fc706183) SHA1(c8ce6de0588be1023ef48577bc88a4e5effdcd25) ) ROM_LOAD( "688a12.2s", 0x600000, 0x200000, CRC(510c70e3) SHA1(5af77bc98772ab7961308c3af0a80cb1bca690e3) ) ROM_REGION(0x800000, "gfx1", 0) /* texture roms */ ROM_LOAD64_WORD( "688a13.18d", 0x000000, 0x200000, CRC(c8f04f91) SHA1(9da8cc3a94dbf0a1fce87c2bc9249df712ae0b0d) ) ROM_LOAD64_WORD( "688a14.13d", 0x000002, 0x200000, CRC(b9932735) SHA1(2492244d2acb350974202a6718bc7121325d2121) ) ROM_LOAD64_WORD( "688a15.9d", 0x000004, 0x200000, CRC(8aadee51) SHA1(be9020a47583da9d4ff586d227836dc5b7dc31f0) ) ROM_LOAD64_WORD( "688a16.4d", 0x000006, 0x200000, CRC(7f4e1893) SHA1(585be7b31ab7a48300c22b00443b00d631f4c49d) ) ROM_REGION16_BE( 0x200, "eeprom", 0 ) ROM_LOAD( "gticlub.nv", 0x0000, 0x0200, CRC(eca78a49) SHA1(3dcaccc4bee58f7ff5d6ecae551887cc967deaf7) ) ROM_END ROM_START( thunderh ) /* Euro version EAA */ ROM_REGION(0x200000, "user1", 0) /* PowerPC program roms */ ROM_LOAD32_BYTE( "680eaa01.21u", 0x000003, 0x080000, CRC(796e2678) SHA1(8051a228aa6d1a3f1fef26de15f4fdb785c2c8ee) ) ROM_LOAD32_BYTE( "680eaa02.19u", 0x000002, 0x080000, CRC(767e6db0) SHA1(0f29f56fe485f30100ce54e64bda5d5a124c1d09) ) ROM_LOAD32_BYTE( "680eaa03.21r", 0x000001, 0x080000, CRC(5a5b59b5) SHA1(542c0722437f40829559b09120fde995246d52ae) ) ROM_LOAD32_BYTE( "680eaa04.19r", 0x000000, 0x080000, CRC(4a973a5c) SHA1(1d84f6416c3b5a85d7ebfbc15fc08e0dd8dc2414) ) ROM_REGION32_BE(0x400000, "user2", 0) /* data roms */ ROM_LOAD32_WORD_SWAP( "680a05.14u", 0x000000, 0x200000, CRC(0c9f334d) SHA1(99ac622a04a7140244d81031df69a796b6fd2657) ) ROM_LOAD32_WORD_SWAP( "680a06.12u", 0x000002, 0x200000, CRC(83074217) SHA1(bbf782ac125cd98d9147ef4e0373bf61f74726f7) ) ROM_REGION(0x80000, "audiocpu", 0) /* 68k program */ ROM_LOAD16_WORD_SWAP( "680a07.13k", 0x000000, 0x080000, CRC(12247a3e) SHA1(846cd9423efd3c9b17fce08393c6c83307d72f92) ) ROM_REGION(0x20000, "dsp", 0) /* 68k program for outboard sound? network? board */ ROM_LOAD16_WORD_SWAP( "680c22.20k", 0x000000, 0x020000, CRC(d93c0ee2) SHA1(4b58418cbb01b51e12d6e7c86b2c81cd35d86248) ) ROM_REGION(0x800000, "rfsnd", 0) /* sound roms */ ROM_LOAD( "680a09.9s", 0x000000, 0x200000, CRC(71c2b049) SHA1(ce360172c8774b31edf16a80104c35b1caf26cd9) ) ROM_LOAD( "680a10.7s", 0x200000, 0x200000, CRC(19882bf3) SHA1(7287da58853c84cbadbfb42bed37f2b0032c4b4d) ) ROM_LOAD( "680a11.5s", 0x400000, 0x200000, CRC(0c74fe3f) SHA1(2e69f8d37552a74bbda65b134f747b4380ed33b0) ) ROM_LOAD( "680a12.2s", 0x600000, 0x200000, CRC(b052919d) SHA1(a61c8eaf378ab7d780478db61217302d1b9f8f73) ) ROM_REGION(0x800000, "gfx1", 0) /* texture roms */ ROM_LOAD64_WORD( "680a13.18d", 0x000000, 0x200000, CRC(233f9074) SHA1(78ce42c35407d61df37cc0d16cdee84f8de968fa) ) ROM_LOAD64_WORD( "680a14.13d", 0x000002, 0x200000, CRC(9ae15033) SHA1(12e291114629632b81f53811a6c8666aff4e92f3) ) ROM_LOAD64_WORD( "680a15.9d", 0x000004, 0x200000, CRC(dc47c86f) SHA1(71af9b21f1ecc063135f501b1561869ee910c236) ) ROM_LOAD64_WORD( "680a16.4d", 0x000006, 0x200000, CRC(ea388143) SHA1(3de5314a009d702186d5e285c8edefdd48139eab) ) ROM_END ROM_START( thunderhu ) /* USA version UAA */ ROM_REGION(0x200000, "user1", 0) /* PowerPC program roms */ ROM_LOAD32_BYTE( "680uaa01.21u", 0x000003, 0x080000, CRC(f2bb2ba1) SHA1(311e88d63179486014376c4af4ff0ef28673ee5a) ) ROM_LOAD32_BYTE( "680uaa02.19u", 0x000002, 0x080000, CRC(52f617b5) SHA1(fda3133d3a7e04eb4432c69becdcf1872b3660d9) ) ROM_LOAD32_BYTE( "680uaa03.21r", 0x000001, 0x080000, CRC(086a0574) SHA1(32fb93dbb93d2fe6af743ea4310b50a6cd03647d) ) ROM_LOAD32_BYTE( "680uaa04.19r", 0x000000, 0x080000, CRC(85e1f8e3) SHA1(9172c54b6663f1bf390795068271198083a6860d) ) ROM_REGION32_BE(0x400000, "user2", 0) /* data roms */ ROM_LOAD32_WORD_SWAP( "680a05.14u", 0x000000, 0x200000, CRC(0c9f334d) SHA1(99ac622a04a7140244d81031df69a796b6fd2657) ) ROM_LOAD32_WORD_SWAP( "680a06.12u", 0x000002, 0x200000, CRC(83074217) SHA1(bbf782ac125cd98d9147ef4e0373bf61f74726f7) ) ROM_REGION(0x80000, "audiocpu", 0) /* 68k program */ ROM_LOAD16_WORD_SWAP( "680a07.13k", 0x000000, 0x080000, CRC(12247a3e) SHA1(846cd9423efd3c9b17fce08393c6c83307d72f92) ) ROM_REGION(0x20000, "dsp", 0) /* 68k program for outboard sound? network? board */ ROM_LOAD16_WORD_SWAP( "680c22.20k", 0x000000, 0x020000, CRC(d93c0ee2) SHA1(4b58418cbb01b51e12d6e7c86b2c81cd35d86248) ) ROM_REGION(0x800000, "rfsnd", 0) /* sound roms */ ROM_LOAD( "680a09.9s", 0x000000, 0x200000, CRC(71c2b049) SHA1(ce360172c8774b31edf16a80104c35b1caf26cd9) ) ROM_LOAD( "680a10.7s", 0x200000, 0x200000, CRC(19882bf3) SHA1(7287da58853c84cbadbfb42bed37f2b0032c4b4d) ) ROM_LOAD( "680a11.5s", 0x400000, 0x200000, CRC(0c74fe3f) SHA1(2e69f8d37552a74bbda65b134f747b4380ed33b0) ) ROM_LOAD( "680a12.2s", 0x600000, 0x200000, CRC(b052919d) SHA1(a61c8eaf378ab7d780478db61217302d1b9f8f73) ) ROM_REGION(0x800000, "gfx1", 0) /* texture roms */ ROM_LOAD64_WORD( "680a13.18d", 0x000000, 0x200000, CRC(233f9074) SHA1(78ce42c35407d61df37cc0d16cdee84f8de968fa) ) ROM_LOAD64_WORD( "680a14.13d", 0x000002, 0x200000, CRC(9ae15033) SHA1(12e291114629632b81f53811a6c8666aff4e92f3) ) ROM_LOAD64_WORD( "680a15.9d", 0x000004, 0x200000, CRC(dc47c86f) SHA1(71af9b21f1ecc063135f501b1561869ee910c236) ) ROM_LOAD64_WORD( "680a16.4d", 0x000006, 0x200000, CRC(ea388143) SHA1(3de5314a009d702186d5e285c8edefdd48139eab) ) ROM_END ROM_START( slrasslt ) /* USA version UAA */ ROM_REGION(0x200000, "user1", 0) /* PowerPC program roms */ ROM_LOAD32_BYTE( "792uaa01.21u", 0x000003, 0x080000, CRC(c73bf7fb) SHA1(ffe0fea155473827929339a9261a158287ce30a8) ) ROM_LOAD32_BYTE( "792uaa02.19u", 0x000002, 0x080000, CRC(a940bb9b) SHA1(65a60157697a21cc2485c02c689c9addb3ac91f1) ) ROM_LOAD32_BYTE( "792uaa03.21r", 0x000001, 0x080000, CRC(363e8411) SHA1(b9c70033d8e3de4b339b61a66172bfecb7c2b3ab) ) ROM_LOAD32_BYTE( "792uaa04.19r", 0x000000, 0x080000, CRC(7910d99c) SHA1(e2114d369060528998b58331d590c086d306f541) ) ROM_REGION32_BE(0x400000, "user2", 0) /* data roms */ ROM_LOAD32_WORD_SWAP( "792a05.14u", 0x000000, 0x200000, CRC(9a27edfc) SHA1(c028b6440eb1b0c814c4db45918e580662ac2d9a) ) ROM_LOAD32_WORD_SWAP( "792a06.12u", 0x000002, 0x200000, CRC(c272f171) SHA1(df492287eadc5e8668fe46cfa3ed3ca77c57feca) ) ROM_REGION(0x80000, "audiocpu", 0) /* 68k program */ ROM_LOAD16_WORD_SWAP( "792a07.10k", 0x000000, 0x080000, CRC(89a65ad1) SHA1(d814ef0b560c8e68da57ad5c6096e4fc05e9913e) ) ROM_REGION(0x800000, "rfsnd", 0) /* sound roms */ ROM_LOAD( "792a09.9s", 0x000000, 0x200000, CRC(7d7ea427) SHA1(a9a311a7c17223cc87140fe2890e20a321464831) ) ROM_LOAD( "792a10.7s", 0x200000, 0x200000, CRC(e585e5d9) SHA1(ec44ad324a66eeea4c45933dda5a8a9a4398879d) ) ROM_LOAD( "792a11.5s", 0x400000, 0x200000, CRC(c9c3a04c) SHA1(f834659f67712c9fcd93b7407669d7f35517b790) ) ROM_LOAD( "792a12.2s", 0x600000, 0x200000, CRC(da8fcdd5) SHA1(daa7b3a086ada69e93c3d7cd9130befc79e422dc) ) ROM_REGION(0x800000, "gfx1", 0) /* texture roms */ ROM_LOAD64_WORD( "792a13.18d", 0x000000, 0x200000, CRC(16d6a134) SHA1(3f53f3c6759d7c5f40aa25a598df899fbac35a60) ) ROM_LOAD64_WORD( "792a14.13d", 0x000002, 0x200000, CRC(cf57e830) SHA1(607b4dec3b8180a63e29d9dab1ca28d7226dda1e) ) ROM_LOAD64_WORD( "792a15.9d", 0x000004, 0x200000, CRC(1c5531cb) SHA1(1b514f181c92e16d07bfe4719604f1e4caf15377) ) ROM_LOAD64_WORD( "792a16.4d", 0x000006, 0x200000, CRC(df89e392) SHA1(af37c5460d43bf8d8a1ab4213c4528083a7363c2) ) ROM_REGION16_BE(0x200, "eeprom", 0) /* default eeprom with magic number */ ROM_LOAD16_WORD( "eeprom-slrasslt.bin", 0x0000, 0x0200, CRC(924b4ed8) SHA1(247bf0c1394cbab3af03c26b9c016302b9b5723c) ) ROM_END ROM_START( hangplt ) /* Japan version JAB */ ROM_REGION(0x200000, "user1", 0) /* PowerPC program roms */ ROM_LOAD32_BYTE( "685jab01.21u", 0x000003, 0x080000, CRC(f98a3e82) SHA1(94ebaa172b0e98c5cd08efaea5f56e707e5032b4) ) ROM_LOAD32_BYTE( "685jab02.19u", 0x000002, 0x080000, CRC(20730cdc) SHA1(71b2cf7077ab7db875f9030e21afd05905f57ce5) ) ROM_LOAD32_BYTE( "685jab03.21r", 0x000001, 0x080000, CRC(77fa2248) SHA1(a662b84945b3d268fed15952cc793d821233735e) ) ROM_LOAD32_BYTE( "685jab04.19r", 0x000000, 0x080000, CRC(ab6773df) SHA1(91d3f849a1cc5fa4b2fbd876d53402a548198c41) ) ROM_REGION32_BE(0x400000, "user2", 0) /* data roms */ ROM_LOAD32_WORD_SWAP( "685a05.14u", 0x000000, 0x200000, CRC(ba1c8f40) SHA1(ce4ed641c1d6d44447eaaada16f305f1d7fb9ee2) ) ROM_LOAD32_WORD_SWAP( "685a06.12u", 0x000002, 0x200000, CRC(2429935c) SHA1(4da9e169adcac81ea1bc135d727c2bd13ad372fa) ) ROM_REGION(0x80000, "audiocpu", 0) /* 68k program */ ROM_LOAD16_WORD_SWAP( "685a07.13k", 0x000000, 0x080000, CRC(5b72fd80) SHA1(a150837fa0d66dc0c3832495a4c8ce4f9b92cd98) ) ROM_REGION(0x1000000, "rfsnd", 0) /* sound roms */ ROM_LOAD( "685a09.9s", 0x000000, 0x400000, CRC(b8ae40aa) SHA1(eee27a8929e0e805f1045fd9638e661b36a1e3c7) ) ROM_LOAD( "685a10.7s", 0x400000, 0x400000, CRC(fef3dc36) SHA1(566c7469fc452b5965a31fa42291082ec8e48a24) ) ROM_REGION(0x800000, "user5", 0) /* texture roms */ ROM_LOAD32_WORD( "685a13.4w", 0x000002, 0x400000, CRC(06329af4) SHA1(76cad9db604751ce48bb67bfd29e57bac0ee9a16) ) ROM_LOAD32_WORD( "685a14.12w", 0x000000, 0x400000, CRC(87437739) SHA1(0d45637af40938a54d5efd29c125b0fafd55f9a4) ) ROM_REGION16_BE( 0x200, "eeprom", 0 ) ROM_LOAD( "hangplt.nv", 0x0000, 0x0200, CRC(35f482c8) SHA1(445918156770449dce1a010aab9d310f15670092) ) ROM_END ROM_START( hangpltu ) /* USA version UAA */ ROM_REGION(0x200000, "user1", 0) /* PowerPC program roms */ ROM_LOAD32_BYTE( "685uaa01.21u", 0x000003, 0x080000, CRC(83a5b866) SHA1(6859590f212c7debb19924f0174e4cd1bfc011bc) ) ROM_LOAD32_BYTE( "685uaa02.19u", 0x000002, 0x080000, CRC(765906d6) SHA1(9085a2346756b3b628fef91b7afc131aba434654) ) ROM_LOAD32_BYTE( "685uaa03.21r", 0x000001, 0x080000, CRC(cb0147a3) SHA1(7bcab760c01ea7e24f4ca5793e081aafa97f68a3) ) ROM_LOAD32_BYTE( "685uaa04.19r", 0x000000, 0x080000, CRC(a5fda56b) SHA1(4d86f488f411ec16fa3be830206a44214941d1fe) ) ROM_REGION32_BE(0x400000, "user2", 0) /* data roms */ ROM_LOAD32_WORD_SWAP( "685a05.14u", 0x000000, 0x200000, CRC(ba1c8f40) SHA1(ce4ed641c1d6d44447eaaada16f305f1d7fb9ee2) ) ROM_LOAD32_WORD_SWAP( "685a06.12u", 0x000002, 0x200000, CRC(2429935c) SHA1(4da9e169adcac81ea1bc135d727c2bd13ad372fa) ) ROM_REGION(0x80000, "audiocpu", 0) /* 68k program */ ROM_LOAD16_WORD_SWAP( "685a07.13k", 0x000000, 0x080000, CRC(5b72fd80) SHA1(a150837fa0d66dc0c3832495a4c8ce4f9b92cd98) ) ROM_REGION(0x1000000, "rfsnd", 0) /* sound roms */ ROM_LOAD( "685a09.9s", 0x000000, 0x400000, CRC(b8ae40aa) SHA1(eee27a8929e0e805f1045fd9638e661b36a1e3c7) ) ROM_LOAD( "685a10.7s", 0x400000, 0x400000, CRC(fef3dc36) SHA1(566c7469fc452b5965a31fa42291082ec8e48a24) ) ROM_REGION(0x800000, "user5", 0) /* texture roms */ ROM_LOAD32_WORD( "685a13.4w", 0x000002, 0x400000, CRC(06329af4) SHA1(76cad9db604751ce48bb67bfd29e57bac0ee9a16) ) ROM_LOAD32_WORD( "685a14.12w", 0x000000, 0x400000, CRC(87437739) SHA1(0d45637af40938a54d5efd29c125b0fafd55f9a4) ) ROM_REGION16_BE( 0x200, "eeprom", 0 ) ROM_LOAD( "hangpltu.nv", 0x0000, 0x0200, CRC(8d74baf0) SHA1(297c0a064c6f8f8281d566629d896b49c6e85096) ) ROM_END DRIVER_INIT_MEMBER(gticlub_state,gticlub) { init_konami_cgboard(machine(), 1, CGBOARD_TYPE_GTICLUB); m_sharc_dataram_0 = auto_alloc_array(machine(), UINT32, 0x100000/4); K001005_preprocess_texture_data(memregion("gfx1")->base(), memregion("gfx1")->bytes(), 1); } void gticlub_state::init_hangplt_common() { init_konami_cgboard(machine(), 2, CGBOARD_TYPE_HANGPLT); set_cgboard_texture_bank(machine(), 0, "bank5", memregion("user5")->base()); set_cgboard_texture_bank(machine(), 1, "bank6", memregion("user5")->base()); m_sharc_dataram_0 = auto_alloc_array(machine(), UINT32, 0x100000/4); m_sharc_dataram_1 = auto_alloc_array(machine(), UINT32, 0x100000/4); } DRIVER_INIT_MEMBER(gticlub_state,hangplt) { init_hangplt_common(); // workaround for lock/unlock errors UINT32 *rom = (UINT32*)machine().root_device().memregion("user1")->base(); rom[(0x153ac^4) / 4] = 0x4e800020; rom[(0x15428^4) / 4] = 0x4e800020; } DRIVER_INIT_MEMBER(gticlub_state,hangpltu) { init_hangplt_common(); // workaround for lock/unlock errors UINT32 *rom = (UINT32*)machine().root_device().memregion("user1")->base(); rom[(0x153d0^4) / 4] = 0x4e800020; rom[(0x15428^4) / 4] = 0x4e800020; } /*************************************************************************/ GAME( 1996, gticlub, 0, gticlub, gticlub, gticlub_state, gticlub, ROT0, "Konami", "GTI Club (ver EAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) GAME( 1996, gticlubu, gticlub, gticlub, gticlub, gticlub_state, gticlub, ROT0, "Konami", "GTI Club (ver UAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) GAME( 1996, gticluba, gticlub, gticlub, gticlub, gticlub_state, gticlub, ROT0, "Konami", "GTI Club (ver AAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) GAME( 1996, gticlubj, gticlub, gticlub, gticlub, gticlub_state, gticlub, ROT0, "Konami", "GTI Club (ver JAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) GAME( 1996, thunderh, 0, thunderh, thunderh, gticlub_state, gticlub, ROT0, "Konami", "Operation Thunder Hurricane (ver EAA)", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND ) GAME( 1996, thunderhu,thunderh, thunderh, thunderh, gticlub_state, gticlub, ROT0, "Konami", "Operation Thunder Hurricane (ver UAA)", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND ) GAME( 1997, slrasslt, 0, slrasslt, slrasslt, gticlub_state, gticlub, ROT0, "Konami", "Solar Assault (ver UAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) GAMEL(1997, hangplt, 0, hangplt, hangplt, gticlub_state, hangplt, ROT0, "Konami", "Hang Pilot (ver JAB)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND, layout_dualhovu ) GAMEL(1997, hangpltu, hangplt, hangplt, hangplt, gticlub_state, hangpltu, ROT0, "Konami", "Hang Pilot (ver UAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND, layout_dualhovu )