diff options
Diffstat (limited to 'src/mame/drivers/zr107.cpp')
-rw-r--r-- | src/mame/drivers/zr107.cpp | 1133 |
1 files changed, 0 insertions, 1133 deletions
diff --git a/src/mame/drivers/zr107.cpp b/src/mame/drivers/zr107.cpp deleted file mode 100644 index fe195392abe..00000000000 --- a/src/mame/drivers/zr107.cpp +++ /dev/null @@ -1,1133 +0,0 @@ -// license:BSD-3-Clause -// copyright-holders:Ville Linde -/* - Konami 'ZR107' Hardware - Konami, 1995-1996 - - Driver by Ville Linde - - - Hardware overview: - - ZR107 CPU board: - ---------------- - IBM PowerPC 403GA at 32MHz (main CPU) - Motorola MC68EC000 at 8MHz (sound CPU) - Konami K056800 (MIRAC), sound system interface - Konami K056230 (LANC), LAN interface - Konami K058141 sound chip (same as 2x K054539) - - ZR107 GFX board: - ---------------- - Analog Devices ADSP-21062 SHARC DSP at 36MHz - Konami K056832 tilemap chip - KS10071 (custom 3D pixel unit) - KS10081 (custom 3D texel unit) - - GN678 GFX board (same as in gticlub.c): - ---------------- - 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) - - - Known games on this hardware: - - Game | Year | ID | CPU PCB | CG Board(s) - -------------------------------------------------------------------------- - Midnight Run | 1995 | GX476 | ZR107 | ZR107 - Winding Heat | 1996 | GX677 | ZR107 | ZR107 - Jet Wave / Wave Shark | 1996 | GX678 | ZR107 | GN678 - - -PCB Layouts ------------ - -Top Board - -ZR107 PWB(A)300769A -|------------------------------------------------------------| -| MASKROM.3R | -| MASKROM.5N MASKROM.5R | -|056602 056800 058141 68EC000FN8 TSOP56 DIP42 | -| RESET_SW TSOP56 DIP42 | -|058232 | -| PAL(001535) PAL(001536) 8464 8464 EPROM.13U | -| | -| SOJ40 EPROM.15U | -| | -| DIP32 SOJ40 EPROM.17U | -| EPROM.19L 18.432MHz | -| 93C46.20E EPROM.20U | -| LED 814260-70 | -| PAL(001534) | -| ADC0838 | -| PAL(001533) 814260-70 | -| TEST_SW | -| PAL(001532) | -| PAL(056787A) | -| | -| 8464 |--------| | -| |IBM | | -| 64MHz |POWERPC | | -| 056230 QFP44 |403GA | | -| |--------| | -| DSW(4) | -|------------------------------------------------------------| -Notes: - 403GA: clock 32.000MHz (64/2) - 68000: clock 8.000MHz (64/8) - TSOP56: Unpopulated position for 2Mx8 TSOP56 FlashROM - DIP42: Unpopulated position for 2Mx8 DIP42 mask ROM - DIP32: Unpopulated position for 512kx8 EPROM - SOJ40: Unpopulated position for DRAM 814260-70 - QFP44: Unpopulated position for MB89371FL - 056230: Konami custom, also marked KS40011, used for network functions - 058141: Konami custom - 056800: Konami custom - 058232: Konami custom filter/DAC? - 056602: Konami custom sound ceramic module (contains a small IC, some OP amps, resistors, caps etc) - 8464: 8kx8 SRAM (NDIP28) - 814260: 256kx16 DRAM (SOJ40) - LED: 2 digit alpha-numeric 7-segment LED - -ROM Usage ---------- - |-------------------------- ROM Locations -------------------------------| -Game 5R 3R 5N 13U 15U 17U 20U 19L ------------------------------------------------------------------------------------------------------- -Midnight Run 477A08 477A09 477A10 476EA1A04 476EA1A03 476EA1A02 476EA1A01 477A07 -Jet Wave 678A08 678A09 678A10 678UAB04 678UAB03 678UAB02 678UAB01 678A07 -Winding Heat 677A08 677A09 677A10 677UBC04 677UBC03 677UBC02 677UBC01 677A07 - - -Bottom Board - -ZR107 PWB(B)300816D -|------------------------------------------------------------| -| |-------| | -| DIP42 MASKROM.2H |KS10081| 81141622 81141622 | -| |-------| | -| DIP42 MASKROM.5H |---------| 81141622 | -| | KS10071 | | -| DIP42 MASKROM.7H | | 81141622 | -| |---------| | -| DIP42 MASKROM.9H 81141622 | -| | -| MC88916 | -| PAL(001785) AM7203 AM7203 AM7203 AM7203 | -| | -| | -| PAL(001782) | -| PAL(001781)| -| | -| | -| MC44200 CY7C128 CY7C128 CY7C199 CY7C199 | -| CY7C199 CY7C199 36MHz | -| MACH110 | -|(001779) 056832 |---------| | -| |ADSP21062| | -| PAL(001784) 058143 |SHARC | | -|MASKROM.35A MACH110 |KS-160 | | -| 62256 62256 (001780) |---------| | -|MASKROM.35B 62256 CY7C109 CY7C109 | -| DSW(4) CY7C109 CY7C109 | -|------------------------------------------------------------| -Notes: - KS10081 : Konami custom video chip, also marked 001006 - KS10071 : Konami custom video chip, also marked 001005. Chip is heatsinked - 056832 : Konami custom - 058143 : Konami custom - AM7203 : AMD AM7203 2kx9 FIFO (PLCC32) - MACH110 : MACH110 CPLD stamped 001779 & 001780 - DSW(4) : 4 position DIP SWITCH - PAL : PALCE16V8H stamped 001781, 001782, 001784, 001785 - 81141622: 256kx16 SDRAM - CY7C128 : 2kx8 SRAM - CY7C199 : 32kx8 SRAM - CY7C109 : 128kx8 SRAM - 62256 : 32kx8 SRAM - DIP42 : Unpopulated position for 1Mx8 DIP42 mask ROM - MC88916 : Motorola MC88916 Low Skew CMOS PLL Clock Driver - -ROM Usage ---------- - |--------------- ROM Locations ---------------| -Game 35A 35B 2H 5H 7H 9H ---------------------------------------------------------------- -Midnight Run 477A12 477A11 477A16 477A15 477A14 477A13 -Jet Wave - see note - -Winding Heat 677A12 677A11 677A16 677A15 677A14 677A13 - -Note: Jet Wave uses the lower board from GTI Club (GN678), and a ZR107(PWB(A)300769A top board. -Check gticlub.c for details on the bottom board. - -*/ - -#include "emu.h" -#include "cpu/m68000/m68000.h" -#include "cpu/powerpc/ppc.h" -#include "cpu/sharc/sharc.h" -#include "machine/konppc.h" -#include "machine/adc083x.h" -#include "machine/k056230.h" -#include "machine/eepromser.h" -#include "machine/watchdog.h" -#include "sound/k056800.h" -#include "sound/k054539.h" -#include "video/k001604.h" -#include "video/k001005.h" -#include "video/k001006.h" -#include "video/k054156_k054157_k056832.h" -#include "video/konami_helper.h" -#include "emupal.h" -#include "speaker.h" - - -class zr107_state : public driver_device -{ -public: - zr107_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag), - m_maincpu(*this, "maincpu"), - m_audiocpu(*this, "audiocpu"), - m_dsp(*this, "dsp"), - m_watchdog(*this, "watchdog"), - m_k056800(*this, "k056800"), - m_workram(*this, "workram"), - m_k001005(*this, "k001005"), - m_k001006_1(*this, "k001006_1"), - m_in0(*this, "IN0"), - m_in1(*this, "IN1"), - m_in2(*this, "IN2"), - m_in3(*this, "IN3"), - m_in4(*this, "IN4"), - m_out4(*this, "OUT4"), - m_eepromout(*this, "EEPROMOUT"), - m_analog1(*this, "ANALOG1"), - m_analog2(*this, "ANALOG2"), - m_analog3(*this, "ANALOG3"), - m_screen(*this, "screen"), - m_palette(*this, "palette"), - m_generic_paletteram_32(*this, "paletteram"), - m_konppc(*this, "konppc") { } - - void zr107(machine_config &config); - - virtual void driver_init() override; - -protected: - required_device<ppc_device> m_maincpu; - required_device<cpu_device> m_audiocpu; - required_device<adsp21062_device> m_dsp; - required_device<watchdog_timer_device> m_watchdog; - required_device<k056800_device> m_k056800; - required_shared_ptr<uint32_t> m_workram; - required_device<k001005_device> m_k001005; - required_device<k001006_device> m_k001006_1; - required_ioport m_in0, m_in1, m_in2, m_in3, m_in4, m_out4, m_eepromout, m_analog1, m_analog2, m_analog3; - required_device<screen_device> m_screen; - required_device<palette_device> m_palette; - required_shared_ptr<uint32_t> m_generic_paletteram_32; - required_device<konppc_device> m_konppc; - - std::unique_ptr<uint32_t[]> m_sharc_dataram; - uint8_t m_led_reg0; - uint8_t m_led_reg1; - int m_ccu_vcth; - int m_ccu_vctl; - uint8_t m_sound_ctrl; - uint8_t m_sound_intck; - - DECLARE_WRITE32_MEMBER(paletteram32_w); - DECLARE_READ8_MEMBER(sysreg_r); - DECLARE_WRITE8_MEMBER(sysreg_w); - DECLARE_READ32_MEMBER(ccu_r); - DECLARE_WRITE32_MEMBER(ccu_w); - DECLARE_READ32_MEMBER(dsp_dataram_r); - DECLARE_WRITE32_MEMBER(dsp_dataram_w); - DECLARE_WRITE16_MEMBER(sound_ctrl_w); - - WRITE_LINE_MEMBER(vblank); - WRITE_LINE_MEMBER(k054539_irq_gen); - double adc0838_callback(uint8_t input); - - void sharc_memmap(address_map &map); - void sound_memmap(address_map &map); - - virtual void machine_start() override; - virtual void machine_reset() override; -}; - -class midnrun_state : public zr107_state -{ -public: - midnrun_state(const machine_config &mconfig, device_type type, const char *tag) - : zr107_state(mconfig, type, tag), - m_k056832(*this, "k056832") - { } - - void midnrun(machine_config &config); - -private: - virtual void video_start() override; - - void main_memmap(address_map &map); - - K056832_CB_MEMBER(tile_callback); - - required_device<k056832_device> m_k056832; - - uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); -}; - -class jetwave_state : public zr107_state -{ -public: - jetwave_state(const machine_config &mconfig, device_type type, const char *tag) - : zr107_state(mconfig, type, tag), - m_k001604(*this, "k001604"), - m_k001006_2(*this, "k001006_2") - { } - - void jetwave(machine_config &config); - -private: - DECLARE_WRITE32_MEMBER(palette_w); - - void main_memmap(address_map &map); - - uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); - - required_device<k001604_device> m_k001604; - required_device<k001006_device> m_k001006_2; -}; - -uint32_t jetwave_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) -{ - bitmap.fill(m_palette->pen(0), cliprect); - - m_k001604->draw_back_layer(bitmap, cliprect); - m_k001005->draw(bitmap, cliprect); - m_k001604->draw_front_layer(screen, bitmap, cliprect); - - draw_7segment_led(bitmap, 3, 3, m_led_reg0); - draw_7segment_led(bitmap, 9, 3, m_led_reg1); - return 0; -} - - -/*****************************************************************************/ - -WRITE32_MEMBER(zr107_state::paletteram32_w) -{ - COMBINE_DATA(&m_generic_paletteram_32[offset]); - data = m_generic_paletteram_32[offset]; - m_palette->set_pen_color((offset * 2) + 0, pal5bit(data >> 26), pal5bit(data >> 21), pal5bit(data >> 16)); - m_palette->set_pen_color((offset * 2) + 1, pal5bit(data >> 10), pal5bit(data >> 5), pal5bit(data >> 0)); -} - -K056832_CB_MEMBER(midnrun_state::tile_callback) -{ - *color += layer * 0x40; -} - -void midnrun_state::video_start() -{ - m_k056832->set_layer_offs(0, -29, -27); - m_k056832->set_layer_offs(1, -29, -27); - m_k056832->set_layer_offs(2, -29, -27); - m_k056832->set_layer_offs(3, -29, -27); - m_k056832->set_layer_offs(4, -29, -27); - m_k056832->set_layer_offs(5, -29, -27); - m_k056832->set_layer_offs(6, -29, -27); - m_k056832->set_layer_offs(7, -29, -27); -} - -uint32_t midnrun_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) -{ - bitmap.fill(m_palette->pen(0), cliprect); - - m_k056832->tilemap_draw(screen, bitmap, cliprect, 1, 0, 0); - m_k001005->draw(bitmap, cliprect); - m_k056832->tilemap_draw(screen, bitmap, cliprect, 0, 0, 0); - - draw_7segment_led(bitmap, 3, 3, m_led_reg0); - draw_7segment_led(bitmap, 9, 3, m_led_reg1); - return 0; -} - -/******************************************************************/ - -READ8_MEMBER(zr107_state::sysreg_r) -{ - uint32_t r = 0; - - switch (offset) - { - case 0: /* I/O port 0 */ - r = m_in0->read(); - break; - case 1: /* I/O port 1 */ - r = m_in1->read(); - break; - case 2: /* I/O port 2 */ - r = m_in2->read(); - break; - case 3: /* System Port 0 */ - r = m_in3->read(); - break; - case 4: /* System Port 1 */ - r = m_in4->read(); - break; - case 5: /* Parallel data port */ - break; - } - return r; -} - -WRITE8_MEMBER(zr107_state::sysreg_w) -{ - switch (offset) - { - case 0: /* LED Register 0 */ - m_led_reg0 = data; - break; - - case 1: /* LED Register 1 */ - m_led_reg1 = data; - break; - - case 2: /* Parallel data register */ - osd_printf_debug("Parallel data = %02X\n", data); - break; - - case 3: /* System Register 0 */ - /* - 0x80 = unused - 0x40 = COINREQ1 - 0x20 = COINREQ2 - 0x10 = SNDRES - 0x08 = unused - 0x04 = EEPCS - 0x02 = EEPCLK - 0x01 = EEPDI - */ - m_eepromout->write(data & 0x07, 0xff); - m_audiocpu->set_input_line(INPUT_LINE_RESET, (data & 0x10) ? CLEAR_LINE : ASSERT_LINE); - osd_printf_debug("System register 0 = %02X\n", data); - break; - - case 4: /* System Register 1 */ - /* - 0x80 = EXRES1 - 0x40 = EXRES0 - 0x20 = EXID1 - 0x10 = EXID0 - 0x08 = unused - 0x04 = ADCS (ADC CS) - 0x02 = ADDI (ADC DI) - 0x01 = ADDSCLK (ADC SCLK) - */ - if (data & 0x80) /* CG Board 1 IRQ Ack */ - m_maincpu->set_input_line(INPUT_LINE_IRQ1, CLEAR_LINE); - if (data & 0x40) /* CG Board 0 IRQ Ack */ - m_maincpu->set_input_line(INPUT_LINE_IRQ0, CLEAR_LINE); - m_konppc->set_cgboard_id((data >> 4) & 3); - m_out4->write(data, 0xff); - osd_printf_debug("System register 1 = %02X\n", data); - break; - - case 5: /* System Register 2 */ - /* - 0x01 = AFE - */ - if (data & 0x01) - m_watchdog->watchdog_reset(); - break; - - } -} - -READ32_MEMBER(zr107_state::ccu_r) -{ - uint32_t r = 0; - switch (offset) - { - case 0x1c/4: - { - // Midnight Run polls the vertical counter in vblank - if (ACCESSING_BITS_24_31) - { - m_ccu_vcth ^= 0xff; - r |= m_ccu_vcth << 24; - } - if (ACCESSING_BITS_8_15) - { - m_ccu_vctl++; - m_ccu_vctl &= 0x1ff; - r |= (m_ccu_vctl >> 2) << 8; - } - } - } - - return r; -} - -WRITE32_MEMBER(zr107_state::ccu_w) -{ -} - -/******************************************************************/ - -void zr107_state::machine_start() -{ - /* set conservative DRC options */ - m_maincpu->ppcdrc_set_options(PPCDRC_COMPATIBLE_OPTIONS); - - /* configure fast RAM regions for DRC */ - m_maincpu->ppcdrc_add_fastram(0x00000000, 0x000fffff, false, m_workram); -} - -void midnrun_state::main_memmap(address_map &map) -{ - map(0x00000000, 0x000fffff).ram().share("workram"); /* Work RAM */ - map(0x74000000, 0x74003fff).rw(m_k056832, FUNC(k056832_device::ram_word_r), FUNC(k056832_device::ram_word_w)); - map(0x74020000, 0x7402003f).rw(m_k056832, FUNC(k056832_device::word_r), FUNC(k056832_device::word_w)); - map(0x74060000, 0x7406003f).rw(FUNC(midnrun_state::ccu_r), FUNC(midnrun_state::ccu_w)); - map(0x74080000, 0x74081fff).ram().w(FUNC(midnrun_state::paletteram32_w)).share("paletteram"); - map(0x740a0000, 0x740a3fff).r(m_k056832, FUNC(k056832_device::rom_word_r)); - map(0x78000000, 0x7800ffff).rw(m_konppc, FUNC(konppc_device::cgboard_dsp_shared_r_ppc), FUNC(konppc_device::cgboard_dsp_shared_w_ppc)); /* 21N 21K 23N 23K */ - map(0x78010000, 0x7801ffff).w(m_konppc, FUNC(konppc_device::cgboard_dsp_shared_w_ppc)); - map(0x78040000, 0x7804000f).rw(m_k001006_1, FUNC(k001006_device::read), FUNC(k001006_device::write)); - map(0x780c0000, 0x780c0007).rw(m_konppc, FUNC(konppc_device::cgboard_dsp_comm_r_ppc), FUNC(konppc_device::cgboard_dsp_comm_w_ppc)); - map(0x7e000000, 0x7e003fff).rw(FUNC(midnrun_state::sysreg_r), FUNC(midnrun_state::sysreg_w)); - map(0x7e008000, 0x7e009fff).rw("k056230", FUNC(k056230_device::read), FUNC(k056230_device::write)); /* LANC registers */ - map(0x7e00a000, 0x7e00bfff).rw("k056230", FUNC(k056230_device::lanc_ram_r), FUNC(k056230_device::lanc_ram_w)); /* LANC Buffer RAM (27E) */ - map(0x7e00c000, 0x7e00c00f).rw(m_k056800, FUNC(k056800_device::host_r), FUNC(k056800_device::host_w)); - map(0x7f800000, 0x7f9fffff).rom().share("share2"); - map(0x7fe00000, 0x7fffffff).rom().region("user1", 0).share("share2"); /* Program ROM */ -} - - -WRITE32_MEMBER(jetwave_state::palette_w) -{ - COMBINE_DATA(&m_generic_paletteram_32[offset]); - data = m_generic_paletteram_32[offset]; - m_palette->set_pen_color(offset, pal5bit(data >> 10), pal5bit(data >> 5), pal5bit(data >> 0)); -} - -void jetwave_state::main_memmap(address_map &map) -{ - map(0x00000000, 0x000fffff).ram().share("workram"); /* Work RAM */ - map(0x74000000, 0x740000ff).rw(m_k001604, FUNC(k001604_device::reg_r), FUNC(k001604_device::reg_w)); - map(0x74010000, 0x7401ffff).ram().w(FUNC(jetwave_state::palette_w)).share("paletteram"); - map(0x74020000, 0x7403ffff).rw(m_k001604, FUNC(k001604_device::tile_r), FUNC(k001604_device::tile_w)); - map(0x74040000, 0x7407ffff).rw(m_k001604, FUNC(k001604_device::char_r), FUNC(k001604_device::char_w)); - map(0x78000000, 0x7800ffff).rw(m_konppc, FUNC(konppc_device::cgboard_dsp_shared_r_ppc), FUNC(konppc_device::cgboard_dsp_shared_w_ppc)); /* 21N 21K 23N 23K */ - map(0x78010000, 0x7801ffff).w(m_konppc, FUNC(konppc_device::cgboard_dsp_shared_w_ppc)); - map(0x78040000, 0x7804000f).rw(m_k001006_1, FUNC(k001006_device::read), FUNC(k001006_device::write)); - map(0x78080000, 0x7808000f).rw(m_k001006_2, FUNC(k001006_device::read), FUNC(k001006_device::write)); - map(0x780c0000, 0x780c0007).rw(m_konppc, FUNC(konppc_device::cgboard_dsp_comm_r_ppc), FUNC(konppc_device::cgboard_dsp_comm_w_ppc)); - map(0x7e000000, 0x7e003fff).rw(FUNC(jetwave_state::sysreg_r), FUNC(jetwave_state::sysreg_w)); - map(0x7e008000, 0x7e009fff).rw("k056230", FUNC(k056230_device::read), FUNC(k056230_device::write)); /* LANC registers */ - map(0x7e00a000, 0x7e00bfff).rw("k056230", FUNC(k056230_device::lanc_ram_r), FUNC(k056230_device::lanc_ram_w)); /* LANC Buffer RAM (27E) */ - map(0x7e00c000, 0x7e00c00f).rw(m_k056800, FUNC(k056800_device::host_r), FUNC(k056800_device::host_w)); - map(0x7f000000, 0x7f3fffff).rom().region("user2", 0); - map(0x7f800000, 0x7f9fffff).rom().share("share2"); - map(0x7fe00000, 0x7fffffff).rom().region("user1", 0).share("share2"); /* Program ROM */ -} - - - -/**********************************************************************/ - -WRITE16_MEMBER(zr107_state::sound_ctrl_w) -{ - if (ACCESSING_BITS_0_7) - { - if (!(data & 1)) - m_audiocpu->set_input_line(M68K_IRQ_2, CLEAR_LINE); - - m_sound_ctrl = data; - } -} - -void zr107_state::sound_memmap(address_map &map) -{ - map(0x000000, 0x01ffff).rom(); - map(0x100000, 0x103fff).ram(); /* Work RAM */ - map(0x200000, 0x2004ff).rw("k054539_1", FUNC(k054539_device::read), FUNC(k054539_device::write)).umask16(0xff00); - map(0x200000, 0x2004ff).rw("k054539_2", FUNC(k054539_device::read), FUNC(k054539_device::write)).umask16(0x00ff); - map(0x400000, 0x40001f).rw(m_k056800, FUNC(k056800_device::sound_r), FUNC(k056800_device::sound_w)).umask16(0x00ff); - map(0x500000, 0x500001).w(FUNC(zr107_state::sound_ctrl_w)); - map(0x580000, 0x580001).nopw(); // 'NRES' - D2: K056602 /RESET -} - -/*****************************************************************************/ - - -READ32_MEMBER(zr107_state::dsp_dataram_r) -{ - return m_sharc_dataram[offset] & 0xffff; -} - -WRITE32_MEMBER(zr107_state::dsp_dataram_w) -{ - m_sharc_dataram[offset] = data; -} - -void zr107_state::sharc_memmap(address_map &map) -{ - map(0x400000, 0x41ffff).rw(m_konppc, FUNC(konppc_device::cgboard_0_shared_sharc_r), FUNC(konppc_device::cgboard_0_shared_sharc_w)); - map(0x500000, 0x5fffff).rw(FUNC(zr107_state::dsp_dataram_r), FUNC(zr107_state::dsp_dataram_w)); - map(0x600000, 0x6fffff).rw(m_k001005, FUNC(k001005_device::read), FUNC(k001005_device::write)); - map(0x700000, 0x7000ff).rw(m_konppc, FUNC(konppc_device::cgboard_0_comm_sharc_r), FUNC(konppc_device::cgboard_0_comm_sharc_w)); -} - -/*****************************************************************************/ - - -static INPUT_PORTS_START( zr107 ) - PORT_START("IN0") - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) PORT_NAME("Start/View") - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_NAME("Shift Up") - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_NAME("Shift Down") - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_NAME("AT/MT Switch") PORT_TOGGLE - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_NAME("Service Button") PORT_CODE(KEYCODE_9) - PORT_BIT( 0x0b, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START("IN1") - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START("IN2") - PORT_BIT( 0x7f, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("adc0838", adc083x_device, do_read) - - PORT_START("IN4") - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_CUSTOM ) /* PARAACK */ - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("adc0838", adc083x_device, sars_read) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, do_read) - - PORT_START("EEPROMOUT") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, di_write) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, clk_write) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, cs_write) - - PORT_START("OUT4") - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("adc0838", adc083x_device, cs_write) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("adc0838", adc083x_device, di_write) - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("adc0838", adc083x_device, clk_write) -INPUT_PORTS_END - -static INPUT_PORTS_START( midnrun ) - PORT_INCLUDE( zr107 ) - - 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_UNKNOWN ) - PORT_DIPNAME( 0x0c, 0x0c, "Network ID" ) PORT_DIPLOCATION("SW:4,3") - PORT_DIPSETTING( 0x0c, "1" ) - PORT_DIPSETTING( 0x08, "2" ) - PORT_DIPSETTING( 0x04, "3" ) - PORT_DIPSETTING( 0x00, "4" ) - PORT_DIPNAME( 0x02, 0x02, "Transmission Type" ) PORT_DIPLOCATION("SW:2") - PORT_DIPSETTING( 0x02, "Button" ) - PORT_DIPSETTING( 0x00, "'T'Gate" ) //unused - PORT_DIPNAME( 0x01, 0x01, "CG Board Type" ) PORT_DIPLOCATION("SW:1") - PORT_DIPSETTING( 0x01, "Single" ) - PORT_DIPSETTING( 0x00, "Twin" ) //unused - - PORT_START("ANALOG1") - PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_NAME("Steering Wheel") PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(25) PORT_KEYDELTA(10) - - PORT_START("ANALOG2") - PORT_BIT( 0xff, 0x00, IPT_PEDAL ) PORT_NAME("Gas Pedal") PORT_MINMAX(0x00,0xf0) PORT_SENSITIVITY(25) PORT_KEYDELTA(10) - - PORT_START("ANALOG3") - PORT_BIT( 0xff, 0x00, IPT_PEDAL2 ) PORT_NAME("Brake Pedal") PORT_MINMAX(0x00,0xf0) PORT_SENSITIVITY(25) PORT_KEYDELTA(10) -INPUT_PORTS_END - -static INPUT_PORTS_START( jetwave ) - PORT_INCLUDE( zr107 ) - - PORT_MODIFY("IN0") - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) PORT_NAME("Start/View") - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_NAME("T-Center") //Non-analog acell - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON7 ) PORT_NAME("Angle") - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_NAME("Left Turn") //Non-analog left - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_NAME("Right Turn") //Non-analog right - PORT_BIT( 0x07, 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_9) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_DIPNAME( 0x0c, 0x0c, "Network ID" ) PORT_DIPLOCATION("SW:4,3") - PORT_DIPSETTING( 0x0c, "1" ) - PORT_DIPSETTING( 0x08, "2" ) - PORT_DIPSETTING( 0x04, "3" ) - PORT_DIPSETTING( 0x00, "4" ) - PORT_DIPNAME( 0x02, 0x00, "Drive System" ) PORT_DIPLOCATION("SW:2") //Sensors for force feedback. Todo: "Disable" the sensors so this switch can be set to off without errors. - PORT_DIPSETTING( 0x02, "On" ) // Enables the sensors/normal use. - PORT_DIPSETTING( 0x00, "Off" ) //Disables and bypasses all sensor checks. This disables the force feedback on actual hardware. - PORT_DIPNAME( 0x01, 0x01, "Running Mode" ) PORT_DIPLOCATION("SW:1") - PORT_DIPSETTING( 0x01, "Product" ) //Enables the analog inputs; normal usage - PORT_DIPSETTING( 0x00, "Check" ) //Disables them for use with a JAMMA interface; intended for development purposes. - - PORT_START("ANALOG1") - PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_NAME("Steering") PORT_MINMAX(0x20,0xe0) PORT_SENSITIVITY(25) PORT_KEYDELTA(10) PORT_REVERSE - - PORT_START("ANALOG2") - PORT_BIT( 0xff, 0x00, IPT_PEDAL ) PORT_NAME("Accelerator") PORT_MINMAX(0x00,0x90) PORT_SENSITIVITY(25) PORT_KEYDELTA(10) - - PORT_START("ANALOG3") //actually required else MAME will crash if this port is removed. - PORT_BIT( 0xff, 0x00, IPT_UNUSED ) -INPUT_PORTS_END - - -/* ADC0838 Interface */ - -double zr107_state::adc0838_callback(uint8_t input) -{ - switch (input) - { - case ADC083X_CH0: - return (double)(5 * m_analog1->read()) / 255.0; - case ADC083X_CH1: - return (double)(5 * m_analog2->read()) / 255.0; - case ADC083X_CH2: - return (double)(5 * m_analog3->read()) / 255.0; - case ADC083X_VREF: - return 5; - default: - return 0; - } -} - - - -WRITE_LINE_MEMBER(zr107_state::k054539_irq_gen) -{ - if (m_sound_ctrl & 1) - { - // Trigger an interrupt on the rising edge - if (!m_sound_intck && state) - m_audiocpu->set_input_line(M68K_IRQ_2, ASSERT_LINE); - } - - m_sound_intck = state; -} - - -/* PowerPC interrupts - - IRQ0: Vblank - IRQ2: LANC - DMA0 - -*/ -WRITE_LINE_MEMBER(zr107_state::vblank) -{ - if (state) - { - m_maincpu->set_input_line(INPUT_LINE_IRQ0, ASSERT_LINE); - m_dsp->set_flag_input(1, ASSERT_LINE); - } -} - -void zr107_state::machine_reset() -{ - m_dsp->set_input_line(INPUT_LINE_RESET, ASSERT_LINE); -} - -void zr107_state::zr107(machine_config &config) -{ - /* basic machine hardware */ - PPC403GA(config, m_maincpu, XTAL(64'000'000)/2); /* PowerPC 403GA 32MHz */ - - M68000(config, m_audiocpu, XTAL(64'000'000)/8); /* 8MHz */ - m_audiocpu->set_addrmap(AS_PROGRAM, &zr107_state::sound_memmap); - - ADSP21062(config, m_dsp, XTAL(36'000'000)); - m_dsp->set_boot_mode(adsp21062_device::BOOT_MODE_EPROM); - m_dsp->set_addrmap(AS_DATA, &zr107_state::sharc_memmap); - - EEPROM_93C46_16BIT(config, "eeprom"); - - K056230(config, "k056230", m_maincpu); - - WATCHDOG_TIMER(config, m_watchdog); - - /* video hardware */ - SCREEN(config, m_screen, SCREEN_TYPE_RASTER); - m_screen->set_refresh_hz(60); - m_screen->set_size(64*8, 48*8); - m_screen->set_visarea(0*8, 64*8-1, 0*8, 48*8-1); - m_screen->screen_vblank().set(FUNC(zr107_state::vblank)); - - PALETTE(config, m_palette).set_entries(65536); - - K001005(config, m_k001005, 0, m_k001006_1); - - K001006(config, m_k001006_1, 0); - m_k001006_1->set_gfx_region("gfx1"); - m_k001006_1->set_tex_layout(0); - - K056800(config, m_k056800, XTAL(18'432'000)); - m_k056800->int_callback().set_inputline(m_audiocpu, M68K_IRQ_1); - - SPEAKER(config, "lspeaker").front_left(); - SPEAKER(config, "rspeaker").front_right(); - - k054539_device &k054539_1(K054539(config, "k054539_1", XTAL(18'432'000))); - k054539_1.set_device_rom_tag("k054539"); - k054539_1.timer_handler().set(FUNC(zr107_state::k054539_irq_gen)); - k054539_1.add_route(0, "lspeaker", 0.75); - k054539_1.add_route(1, "rspeaker", 0.75); - - k054539_device &k054539_2(K054539(config, "k054539_2", XTAL(18'432'000))); - k054539_2.set_device_rom_tag("k054539"); - k054539_2.add_route(0, "lspeaker", 0.75); - k054539_2.add_route(1, "rspeaker", 0.75); - - adc0838_device &adc(ADC0838(config, "adc0838")); - adc.set_input_callback(FUNC(zr107_state::adc0838_callback)); - - KONPPC(config, m_konppc, 0); - m_konppc->set_num_boards(1); - m_konppc->set_cbboard_type(konppc_device::CGBOARD_TYPE_ZR107); -} - -void midnrun_state::midnrun(machine_config &config) -{ - zr107(config); - m_maincpu->set_addrmap(AS_PROGRAM, &midnrun_state::main_memmap); - - config.set_maximum_quantum(attotime::from_hz(750000)); // Very high sync needed to prevent lockups - why? - - /* video hardware */ - m_screen->set_screen_update(FUNC(midnrun_state::screen_update)); - - K056832(config, m_k056832, 0); - m_k056832->set_tile_callback(FUNC(midnrun_state::tile_callback)); - m_k056832->set_config(K056832_BPP_8, 1, 0); - m_k056832->set_palette(m_palette); -} - -void jetwave_state::jetwave(machine_config &config) -{ - zr107(config); - m_maincpu->set_addrmap(AS_PROGRAM, &jetwave_state::main_memmap); - - config.set_maximum_quantum(attotime::from_hz(2000000)); // Very high sync needed to prevent lockups - why? - - /* video hardware */ - m_screen->set_screen_update(FUNC(jetwave_state::screen_update)); - - K001604(config, m_k001604, 0); - m_k001604->set_layer_size(0); - m_k001604->set_roz_size(0); - m_k001604->set_txt_mem_offset(0); - m_k001604->set_roz_mem_offset(0x4000); - m_k001604->set_palette(m_palette); - - // The second K001006 chip connects to the second K001005 chip. - // Hook this up when the K001005 separation is understood (seems the load balancing is done on hardware). - K001006(config, m_k001006_2, 0); - m_k001006_2->set_gfx_region("gfx1"); - m_k001006_2->set_tex_layout(0); - - m_konppc->set_cbboard_type(konppc_device::CGBOARD_TYPE_GTICLUB); -} - -/*****************************************************************************/ - -void zr107_state::driver_init() -{ - m_sharc_dataram = std::make_unique<uint32_t[]>(0x100000/4); - m_led_reg0 = m_led_reg1 = 0x7f; - m_ccu_vcth = m_ccu_vctl = 0; - - m_dsp->enable_recompiler(); -} - -/*****************************************************************************/ - -ROM_START( midnrun ) - ROM_REGION(0x200000, "user1", 0) /* PowerPC program roms */ - ROM_LOAD32_BYTE( "476ea1a01.20u", 0x000003, 0x80000, CRC(ea70edf2) SHA1(51c882383a150ba118ccd39eb869525fcf5eee3c) ) /* Program version EAA, v1.11 (EUR) */ - ROM_LOAD32_BYTE( "476ea1a02.17u", 0x000002, 0x80000, CRC(1462994f) SHA1(c8614c6c416f81737cc77c46eea6d8d440bc8cf3) ) - ROM_LOAD32_BYTE( "476ea1a03.15u", 0x000001, 0x80000, CRC(b770ae46) SHA1(c61daa8353802957eb1c2e2c6204c3a98569627e) ) - ROM_LOAD32_BYTE( "476ea1a04.13u", 0x000000, 0x80000, CRC(9644b277) SHA1(b9cb812b6035dfd93032d277c8aa0037cf6b3dbe) ) - - ROM_REGION(0x20000, "audiocpu", 0) /* M68K program */ - ROM_LOAD16_WORD_SWAP( "477a07.19l", 0x000000, 0x20000, CRC(a82c0ba1) SHA1(dad69f2e5e75009d70cc2748477248ec47627c30) ) - - ROM_REGION(0x100000, "k056832", 0) /* Tilemap */ - ROM_LOAD16_BYTE( "477a11.35b", 0x000000, 0x80000, CRC(85eef04b) SHA1(02e26d2d4a8b29894370f28d2a49fdf5c7d23f95) ) - ROM_LOAD16_BYTE( "477a12.35a", 0x000001, 0x80000, CRC(451d7777) SHA1(0bf280ca475100778bbfd3f023547bf0413fc8b7) ) - - ROM_REGION(0x800000, "gfx1", 0) /* Texture data */ - ROM_LOAD32_BYTE( "477a13.9h", 0x000000, 0x200000, CRC(b1ee901d) SHA1(b1432cb1379b35d99d3f2b7f6409db6f7e88121d) ) - ROM_LOAD32_BYTE( "477a14.7h", 0x000001, 0x200000, CRC(9ffa8cc5) SHA1(eaa19e26df721bec281444ca1c5ccc9e48df1b0b) ) - ROM_LOAD32_BYTE( "477a15.5h", 0x000002, 0x200000, CRC(e337fce7) SHA1(c84875f3275efd47273508b340231721f5a631d2) ) - ROM_LOAD32_BYTE( "477a16.2h", 0x000003, 0x200000, CRC(2c03ee63) SHA1(6b74d340dddf92bb4e4b1e037f003d58c65d8d9b) ) - - ROM_REGION(0x600000, "k054539", 0) /* Sound data */ - ROM_LOAD( "477a08.5r", 0x000000, 0x200000, CRC(d320dbde) SHA1(eb602cad6ac7c7151c9f29d39b10041d5a354164) ) - ROM_LOAD( "477a09.3r", 0x200000, 0x200000, CRC(f431e29f) SHA1(e6082d88f86abb63d02ac34e70873b58f88b0ddc) ) - ROM_LOAD( "477a10.5n", 0x400000, 0x200000, CRC(8db31bd4) SHA1(d662d3bb6e8b44a01ffa158f5d7425454aad49a3) ) -ROM_END - -ROM_START( midnrunj ) - ROM_REGION(0x200000, "user1", 0) /* PowerPC program roms */ - ROM_LOAD32_BYTE( "476ja1d01.20u", 0x000003, 0x80000, CRC(68d05950) SHA1(d0ff9b9b628563e18a3eaa7b96b7e9e442c001a9) ) /* Program version JAD, v1.10 (JPN) */ - ROM_LOAD32_BYTE( "476ja1d02.17u", 0x000002, 0x80000, CRC(b12a14be) SHA1(d65281791874b90351442b94173d96582cfacd10) ) - ROM_LOAD32_BYTE( "476ja1d03.15u", 0x000001, 0x80000, CRC(f768c8f1) SHA1(b8242995bdb4f9ac078fd59ffc70c31014396c92) ) - ROM_LOAD32_BYTE( "476ja1d04.13u", 0x000000, 0x80000, CRC(6fd4fce7) SHA1(0ef25ec98a13f7beca1231db5a4db9004caadb0b) ) - - ROM_REGION(0x20000, "audiocpu", 0) /* M68K program */ - ROM_LOAD16_WORD_SWAP( "477a07.19l", 0x000000, 0x20000, CRC(a82c0ba1) SHA1(dad69f2e5e75009d70cc2748477248ec47627c30) ) - - ROM_REGION(0x100000, "k056832", 0) /* Tilemap */ - ROM_LOAD16_BYTE( "477a11.35b", 0x000000, 0x80000, CRC(85eef04b) SHA1(02e26d2d4a8b29894370f28d2a49fdf5c7d23f95) ) - ROM_LOAD16_BYTE( "477a12.35a", 0x000001, 0x80000, CRC(451d7777) SHA1(0bf280ca475100778bbfd3f023547bf0413fc8b7) ) - - ROM_REGION(0x800000, "gfx1", 0) /* Texture data */ - ROM_LOAD32_BYTE( "477a13.9h", 0x000000, 0x200000, CRC(b1ee901d) SHA1(b1432cb1379b35d99d3f2b7f6409db6f7e88121d) ) - ROM_LOAD32_BYTE( "477a14.7h", 0x000001, 0x200000, CRC(9ffa8cc5) SHA1(eaa19e26df721bec281444ca1c5ccc9e48df1b0b) ) - ROM_LOAD32_BYTE( "477a15.5h", 0x000002, 0x200000, CRC(e337fce7) SHA1(c84875f3275efd47273508b340231721f5a631d2) ) - ROM_LOAD32_BYTE( "477a16.2h", 0x000003, 0x200000, CRC(2c03ee63) SHA1(6b74d340dddf92bb4e4b1e037f003d58c65d8d9b) ) - - ROM_REGION(0x600000, "k054539", 0) /* Sound data */ - ROM_LOAD( "477a08.5r", 0x000000, 0x200000, CRC(d320dbde) SHA1(eb602cad6ac7c7151c9f29d39b10041d5a354164) ) - ROM_LOAD( "477a09.3r", 0x200000, 0x200000, CRC(f431e29f) SHA1(e6082d88f86abb63d02ac34e70873b58f88b0ddc) ) - ROM_LOAD( "477a10.5n", 0x400000, 0x200000, CRC(8db31bd4) SHA1(d662d3bb6e8b44a01ffa158f5d7425454aad49a3) ) -ROM_END - -ROM_START( midnruna ) - ROM_REGION(0x200000, "user1", 0) /* PowerPC program roms */ - ROM_LOAD32_BYTE( "477aaa01.20u", 0x000003, 0x80000, CRC(3aa31517) SHA1(315d9c3c930493e39bc497ceafa0c4ef6fa64e4d) ) /* Program version AAA, v1.10 (ASA) */ - ROM_LOAD32_BYTE( "477aaa02.17u", 0x000002, 0x80000, CRC(c506bd3d) SHA1(d44ed2cb39f0da44f681190132c7603dfca813d9) ) - ROM_LOAD32_BYTE( "477aaa03.15u", 0x000001, 0x80000, CRC(53f8e898) SHA1(ba83a60a411bb307cb0e424099716ccf888a4f39) ) - ROM_LOAD32_BYTE( "477aaa04.13u", 0x000000, 0x80000, CRC(0eb264b7) SHA1(179a3d58c0f554fd1b283ee3640ce09d5142b288) ) - - ROM_REGION(0x20000, "audiocpu", 0) /* M68K program */ - ROM_LOAD16_WORD_SWAP( "477a07.19l", 0x000000, 0x20000, CRC(a82c0ba1) SHA1(dad69f2e5e75009d70cc2748477248ec47627c30) ) - - ROM_REGION(0x100000, "k056832", 0) /* Tilemap */ - ROM_LOAD16_BYTE( "477a11.35b", 0x000000, 0x80000, CRC(85eef04b) SHA1(02e26d2d4a8b29894370f28d2a49fdf5c7d23f95) ) - ROM_LOAD16_BYTE( "477a12.35a", 0x000001, 0x80000, CRC(451d7777) SHA1(0bf280ca475100778bbfd3f023547bf0413fc8b7) ) - - ROM_REGION(0x800000, "gfx1", 0) /* Texture data */ - ROM_LOAD32_BYTE( "477a13.9h", 0x000000, 0x200000, CRC(b1ee901d) SHA1(b1432cb1379b35d99d3f2b7f6409db6f7e88121d) ) - ROM_LOAD32_BYTE( "477a14.7h", 0x000001, 0x200000, CRC(9ffa8cc5) SHA1(eaa19e26df721bec281444ca1c5ccc9e48df1b0b) ) - ROM_LOAD32_BYTE( "477a15.5h", 0x000002, 0x200000, CRC(e337fce7) SHA1(c84875f3275efd47273508b340231721f5a631d2) ) - ROM_LOAD32_BYTE( "477a16.2h", 0x000003, 0x200000, CRC(2c03ee63) SHA1(6b74d340dddf92bb4e4b1e037f003d58c65d8d9b) ) - - ROM_REGION(0x600000, "k054539", 0) /* Sound data */ - ROM_LOAD( "477a08.5r", 0x000000, 0x200000, CRC(d320dbde) SHA1(eb602cad6ac7c7151c9f29d39b10041d5a354164) ) - ROM_LOAD( "477a09.3r", 0x200000, 0x200000, CRC(f431e29f) SHA1(e6082d88f86abb63d02ac34e70873b58f88b0ddc) ) - ROM_LOAD( "477a10.5n", 0x400000, 0x200000, CRC(8db31bd4) SHA1(d662d3bb6e8b44a01ffa158f5d7425454aad49a3) ) -ROM_END - -ROM_START( windheat ) - ROM_REGION(0x200000, "user1", 0) /* PowerPC program roms */ - ROM_LOAD32_BYTE( "677eaa01.20u", 0x000003, 0x080000, CRC(500b61f4) SHA1(ec39165412978c0dbd3cbf1f7b6989b5d7ba20a0) ) /* Program version EAA, v2.11 (EUR) */ - ROM_LOAD32_BYTE( "677eaa02.17u", 0x000002, 0x080000, CRC(99f9fd3b) SHA1(aaec5d7f4e46648aab3738ab09e46b312caee58f) ) - ROM_LOAD32_BYTE( "677eaa03.15u", 0x000001, 0x080000, CRC(c46eba6b) SHA1(80fea082d09071875d30a6a838736cf3a3e4501d) ) - ROM_LOAD32_BYTE( "677eaa04.13u", 0x000000, 0x080000, CRC(20dfcf4e) SHA1(4de8e22507f4719441f14fe96e25f0e0712dfa95) ) - - ROM_REGION(0x20000, "audiocpu", 0) /* M68K program */ - ROM_LOAD16_WORD_SWAP( "677a07.19l", 0x000000, 0x020000, CRC(05b14f2d) SHA1(3753f71173594ee741980e08eed0f7c3fc3588c9) ) - - ROM_REGION(0x100000, "k056832", 0) /* Tilemap */ - ROM_LOAD16_BYTE( "677a11.35b", 0x000000, 0x080000, CRC(bf34f00f) SHA1(ca0d390c8b30d0cfdad4cfe5a601cc1f6e8c263d) ) - ROM_LOAD16_BYTE( "677a12.35a", 0x000001, 0x080000, CRC(458f0b1d) SHA1(8e11023c75c80b496dfc62b6645cfedcf2a80db4) ) - - ROM_REGION(0x800000, "gfx1", 0) /* Texture data */ - ROM_LOAD32_BYTE( "677a13.9h", 0x000000, 0x200000, CRC(7937d226) SHA1(c2ba777292c293e31068eeb3a27353ad2595b413) ) - ROM_LOAD32_BYTE( "677a14.7h", 0x000001, 0x200000, CRC(2568cf41) SHA1(6ed01922943486dafbdc863b76b2036c1fbe5281) ) - ROM_LOAD32_BYTE( "677a15.5h", 0x000002, 0x200000, CRC(62e2c3dd) SHA1(c9127ed70bdff947c3da2908a08974091615a685) ) - ROM_LOAD32_BYTE( "677a16.2h", 0x000003, 0x200000, CRC(7cc75539) SHA1(4bd8d88debf7489f30008bd4cbded67cb1a20ab0) ) - - ROM_REGION(0x600000, "k054539", 0) /* Sound data */ - ROM_LOAD( "677a08.5r", 0x000000, 0x200000, CRC(bde38850) SHA1(aaf1bdfc25ecdffc1f6076c9c1b2edbe263171d2) ) - ROM_LOAD( "677a09.3r", 0x200000, 0x200000, CRC(4dfc1ea9) SHA1(4ab264c1902b522bc0589766e42f2b6ca276808d) ) - ROM_LOAD( "677a10.5n", 0x400000, 0x200000, CRC(d8f77a68) SHA1(ff251863ef096f0864f6cbe6caa43b0aa299d9ee) ) -ROM_END - -ROM_START( windheatu ) - ROM_REGION(0x200000, "user1", 0) /* PowerPC program roms */ - ROM_LOAD32_BYTE( "677ubc01.20u", 0x000003, 0x080000, CRC(63198721) SHA1(7f34131bf51d573d0c683b28df2567a0b911c98c) ) /* Program version UBC, v2.22 (USA) */ - ROM_LOAD32_BYTE( "677ubc02.17u", 0x000002, 0x080000, CRC(bdb00e2d) SHA1(c54b2250047576e12e9936300989e40494b4659d) ) - ROM_LOAD32_BYTE( "677ubc03.15u", 0x000001, 0x080000, CRC(0f7d8c1f) SHA1(63de03c7be794b6dae8d0af69e894ac573dbbc11) ) - ROM_LOAD32_BYTE( "677ubc04.13u", 0x000000, 0x080000, CRC(4e42791c) SHA1(a53c6374c6b46db578be4ced2ee7c2af7062d961) ) - - ROM_REGION(0x20000, "audiocpu", 0) /* M68K program */ - ROM_LOAD16_WORD_SWAP( "677a07.19l", 0x000000, 0x020000, CRC(05b14f2d) SHA1(3753f71173594ee741980e08eed0f7c3fc3588c9) ) - - ROM_REGION(0x100000, "k056832", 0) /* Tilemap */ - ROM_LOAD16_BYTE( "677a11.35b", 0x000000, 0x080000, CRC(bf34f00f) SHA1(ca0d390c8b30d0cfdad4cfe5a601cc1f6e8c263d) ) - ROM_LOAD16_BYTE( "677a12.35a", 0x000001, 0x080000, CRC(458f0b1d) SHA1(8e11023c75c80b496dfc62b6645cfedcf2a80db4) ) - - ROM_REGION(0x800000, "gfx1", 0) /* Texture data */ - ROM_LOAD32_BYTE( "677a13.9h", 0x000000, 0x200000, CRC(7937d226) SHA1(c2ba777292c293e31068eeb3a27353ad2595b413) ) - ROM_LOAD32_BYTE( "677a14.7h", 0x000001, 0x200000, CRC(2568cf41) SHA1(6ed01922943486dafbdc863b76b2036c1fbe5281) ) - ROM_LOAD32_BYTE( "677a15.5h", 0x000002, 0x200000, CRC(62e2c3dd) SHA1(c9127ed70bdff947c3da2908a08974091615a685) ) - ROM_LOAD32_BYTE( "677a16.2h", 0x000003, 0x200000, CRC(7cc75539) SHA1(4bd8d88debf7489f30008bd4cbded67cb1a20ab0) ) - - ROM_REGION(0x600000, "k054539", 0) /* Sound data */ - ROM_LOAD( "677a08.5r", 0x000000, 0x200000, CRC(bde38850) SHA1(aaf1bdfc25ecdffc1f6076c9c1b2edbe263171d2) ) - ROM_LOAD( "677a09.3r", 0x200000, 0x200000, CRC(4dfc1ea9) SHA1(4ab264c1902b522bc0589766e42f2b6ca276808d) ) - ROM_LOAD( "677a10.5n", 0x400000, 0x200000, CRC(d8f77a68) SHA1(ff251863ef096f0864f6cbe6caa43b0aa299d9ee) ) -ROM_END - -ROM_START( windheatj ) - ROM_REGION(0x200000, "user1", 0) /* PowerPC program roms */ - ROM_LOAD32_BYTE( "677jaa01.20u", 0x000003, 0x080000, CRC(559b8def) SHA1(6f2e8f29b0d9a950e71015270560813adc20b689) ) /* Program version JAA, v2.11 (JPN) */ - ROM_LOAD32_BYTE( "677jaa02.17u", 0x000002, 0x080000, CRC(cc230575) SHA1(be2da67600ab5edad2e8b7711c4cf985befe28bf) ) - ROM_LOAD32_BYTE( "677jaa03.15u", 0x000001, 0x080000, CRC(20b04701) SHA1(463be36c7f65b4aa3c3f2b1f37d1e6c1f5106cbb) ) - ROM_LOAD32_BYTE( "677jaa04.13u", 0x000000, 0x080000, CRC(f563b2a5) SHA1(b55b486b6af926eff4729f402116d45b61c5d25a) ) - - ROM_REGION(0x20000, "audiocpu", 0) /* M68K program */ - ROM_LOAD16_WORD_SWAP( "677a07.19l", 0x000000, 0x020000, CRC(05b14f2d) SHA1(3753f71173594ee741980e08eed0f7c3fc3588c9) ) - - ROM_REGION(0x100000, "k056832", 0) /* Tilemap */ - ROM_LOAD16_BYTE( "677a11.35b", 0x000000, 0x080000, CRC(bf34f00f) SHA1(ca0d390c8b30d0cfdad4cfe5a601cc1f6e8c263d) ) - ROM_LOAD16_BYTE( "677a12.35a", 0x000001, 0x080000, CRC(458f0b1d) SHA1(8e11023c75c80b496dfc62b6645cfedcf2a80db4) ) - - ROM_REGION(0x800000, "gfx1", 0) /* Texture data */ - ROM_LOAD32_BYTE( "677a13.9h", 0x000000, 0x200000, CRC(7937d226) SHA1(c2ba777292c293e31068eeb3a27353ad2595b413) ) - ROM_LOAD32_BYTE( "677a14.7h", 0x000001, 0x200000, CRC(2568cf41) SHA1(6ed01922943486dafbdc863b76b2036c1fbe5281) ) - ROM_LOAD32_BYTE( "677a15.5h", 0x000002, 0x200000, CRC(62e2c3dd) SHA1(c9127ed70bdff947c3da2908a08974091615a685) ) - ROM_LOAD32_BYTE( "677a16.2h", 0x000003, 0x200000, CRC(7cc75539) SHA1(4bd8d88debf7489f30008bd4cbded67cb1a20ab0) ) - - ROM_REGION(0x600000, "k054539", 0) /* Sound data */ - ROM_LOAD( "677a08.5r", 0x000000, 0x200000, CRC(bde38850) SHA1(aaf1bdfc25ecdffc1f6076c9c1b2edbe263171d2) ) - ROM_LOAD( "677a09.3r", 0x200000, 0x200000, CRC(4dfc1ea9) SHA1(4ab264c1902b522bc0589766e42f2b6ca276808d) ) - ROM_LOAD( "677a10.5n", 0x400000, 0x200000, CRC(d8f77a68) SHA1(ff251863ef096f0864f6cbe6caa43b0aa299d9ee) ) -ROM_END - -ROM_START( windheata ) - ROM_REGION(0x200000, "user1", 0) /* PowerPC program roms */ - ROM_LOAD32_BYTE( "677aaa01.20u", 0x000003, 0x080000, CRC(0d88d0e2) SHA1(93da258bfdb2baa1796916ea8350fff521d43373) ) /* Program version AAA, 2.11 (ASA) */ - ROM_LOAD32_BYTE( "677aaa02.17u", 0x000002, 0x080000, CRC(f71044a3) SHA1(a88990d4a65b610f695f4a6ff42868d04f6ba1b3) ) - ROM_LOAD32_BYTE( "677aaa03.15u", 0x000001, 0x080000, CRC(3c897588) SHA1(718b0eb57f23a3117d2ad3c58e53196f72fc61bf) ) - ROM_LOAD32_BYTE( "677aaa04.13u", 0x000000, 0x080000, CRC(aee84b7d) SHA1(b69a44e51e21f28bcd5cd87297066fc7ba7b5043) ) - - ROM_REGION(0x20000, "audiocpu", 0) /* M68K program */ - ROM_LOAD16_WORD_SWAP( "677a07.19l", 0x000000, 0x020000, CRC(05b14f2d) SHA1(3753f71173594ee741980e08eed0f7c3fc3588c9) ) - - ROM_REGION(0x100000, "k056832", 0) /* Tilemap */ - ROM_LOAD16_BYTE( "677a11.35b", 0x000000, 0x080000, CRC(bf34f00f) SHA1(ca0d390c8b30d0cfdad4cfe5a601cc1f6e8c263d) ) - ROM_LOAD16_BYTE( "677a12.35a", 0x000001, 0x080000, CRC(458f0b1d) SHA1(8e11023c75c80b496dfc62b6645cfedcf2a80db4) ) - - ROM_REGION(0x800000, "gfx1", 0) /* Texture data */ - ROM_LOAD32_BYTE( "677a13.9h", 0x000000, 0x200000, CRC(7937d226) SHA1(c2ba777292c293e31068eeb3a27353ad2595b413) ) - ROM_LOAD32_BYTE( "677a14.7h", 0x000001, 0x200000, CRC(2568cf41) SHA1(6ed01922943486dafbdc863b76b2036c1fbe5281) ) - ROM_LOAD32_BYTE( "677a15.5h", 0x000002, 0x200000, CRC(62e2c3dd) SHA1(c9127ed70bdff947c3da2908a08974091615a685) ) - ROM_LOAD32_BYTE( "677a16.2h", 0x000003, 0x200000, CRC(7cc75539) SHA1(4bd8d88debf7489f30008bd4cbded67cb1a20ab0) ) - - ROM_REGION(0x600000, "k054539", 0) /* Sound data */ - ROM_LOAD( "677a08.5r", 0x000000, 0x200000, CRC(bde38850) SHA1(aaf1bdfc25ecdffc1f6076c9c1b2edbe263171d2) ) - ROM_LOAD( "677a09.3r", 0x200000, 0x200000, CRC(4dfc1ea9) SHA1(4ab264c1902b522bc0589766e42f2b6ca276808d) ) - ROM_LOAD( "677a10.5n", 0x400000, 0x200000, CRC(d8f77a68) SHA1(ff251863ef096f0864f6cbe6caa43b0aa299d9ee) ) -ROM_END - -ROM_START( jetwave ) - ROM_REGION(0x200000, "user1", 0) /* PowerPC program roms */ - ROM_LOAD32_BYTE( "678eab01.20u", 0x000003, 0x080000, CRC(bc657198) SHA1(e521bb2c1b1a3ae934c98ce1656d35821fc287c9) ) /* Program version EAB, EUR v1.04 */ - ROM_LOAD32_BYTE( "678eab02.17u", 0x000002, 0x080000, CRC(a9a57090) SHA1(ae0273b00c64687f8f835aba531580654edd1097) ) - ROM_LOAD32_BYTE( "678eab03.15u", 0x000001, 0x080000, CRC(483aaff0) SHA1(86e011337532f6ff0174393758784b276143ba10) ) - ROM_LOAD32_BYTE( "678eab04.13u", 0x000000, 0x080000, CRC(c7580d72) SHA1(6a5652365a85917ac48b0f1ced70b9c311e89a4f) ) - - ROM_REGION(0x20000, "audiocpu", 0) /* M68K program */ - ROM_LOAD16_WORD_SWAP( "678a07.19l", 0x000000, 0x020000, CRC(bb3f5875) SHA1(97f80d9b55d4177217b7cd1ba14e8ed2d64376bb) ) - - ROM_REGION32_BE(0x400000, "user2", 0) /* data roms */ - ROM_LOAD32_WORD_SWAP( "685a05.10u", 0x000000, 0x200000, CRC(00e59741) SHA1(d799910d4e85482b0e92a3cc9043f81d97b2fb02) ) - ROM_LOAD32_WORD_SWAP( "685a06.8u", 0x000002, 0x200000, CRC(fc98c6a5) SHA1(a84583bb7296fa9e0c284b2ac59e2dc7b2689eee) ) - - ROM_REGION(0x800000, "gfx1", 0) /* Texture data */ - ROM_LOAD32_BYTE( "678a13.18d", 0x000000, 0x200000, CRC(ccf75722) SHA1(f48d21dfc4f82adbb4c9c841a809267cfd028a3d) ) - ROM_LOAD32_BYTE( "678a14.13d", 0x000001, 0x200000, CRC(333a1ab4) SHA1(79df4a98b7871eba4157307a7709da8f8b5da39b) ) - ROM_LOAD32_BYTE( "678a15.9d", 0x000002, 0x200000, CRC(58b670f8) SHA1(5d4facb00e34de3ad11ed60c19835918a9cf6cb9) ) - ROM_LOAD32_BYTE( "678a16.4d", 0x000003, 0x200000, CRC(137b9bff) SHA1(5052c1fa30cc1d6affd78f48d483415dca89d10b) ) - - ROM_REGION(0x600000, "k054539", 0) /* Sound data */ - ROM_LOAD( "678a08.5r", 0x000000, 0x200000, CRC(4aeb61ad) SHA1(ec6872cb2e4776849963f48c1c245ca7697849e0) ) - ROM_LOAD( "678a09.3r", 0x200000, 0x200000, CRC(39baef23) SHA1(9f7bda0f9c06eee94703f9ceb06975c8e28338cc) ) - ROM_LOAD( "678a10.5n", 0x400000, 0x200000, CRC(0508280e) SHA1(a36c5dc377b0ba597f131bd9dfc6019e7fc2d243) ) -ROM_END - -ROM_START( waveshrk ) - ROM_REGION(0x200000, "user1", 0) /* PowerPC program roms */ - ROM_LOAD32_BYTE( "678uab01.20u", 0x000003, 0x080000, CRC(a9b9ceed) SHA1(36f0d18481d7c3e7358e02473e54bc6b52d5c26b) ) /* Program version UAB, USA v1.04 */ - ROM_LOAD32_BYTE( "678uab02.17u", 0x000002, 0x080000, CRC(5ed24ac8) SHA1(d659c751558d4f8d89314466a37c04ac2df46879) ) - ROM_LOAD32_BYTE( "678uab03.15u", 0x000001, 0x080000, CRC(f4a595e7) SHA1(e05e7ea6613ecf70d8470af5fe0c6a7274c6e45b) ) - ROM_LOAD32_BYTE( "678uab04.13u", 0x000000, 0x080000, CRC(fd3320a7) SHA1(03a50a7bba9eb7cdb9f84953d6fb5c09f2d4b2db) ) - - ROM_REGION(0x20000, "audiocpu", 0) /* M68K program */ - ROM_LOAD16_WORD_SWAP( "678a07.19l", 0x000000, 0x020000, CRC(bb3f5875) SHA1(97f80d9b55d4177217b7cd1ba14e8ed2d64376bb) ) - - ROM_REGION32_BE(0x400000, "user2", 0) /* data roms */ - ROM_LOAD32_WORD_SWAP( "685a05.10u", 0x000000, 0x200000, CRC(00e59741) SHA1(d799910d4e85482b0e92a3cc9043f81d97b2fb02) ) - ROM_LOAD32_WORD_SWAP( "685a06.8u", 0x000002, 0x200000, CRC(fc98c6a5) SHA1(a84583bb7296fa9e0c284b2ac59e2dc7b2689eee) ) - - ROM_REGION(0x800000, "gfx1", 0) /* Texture data */ - ROM_LOAD32_BYTE( "678a13.18d", 0x000000, 0x200000, CRC(ccf75722) SHA1(f48d21dfc4f82adbb4c9c841a809267cfd028a3d) ) - ROM_LOAD32_BYTE( "678a14.13d", 0x000001, 0x200000, CRC(333a1ab4) SHA1(79df4a98b7871eba4157307a7709da8f8b5da39b) ) - ROM_LOAD32_BYTE( "678a15.9d", 0x000002, 0x200000, CRC(58b670f8) SHA1(5d4facb00e34de3ad11ed60c19835918a9cf6cb9) ) - ROM_LOAD32_BYTE( "678a16.4d", 0x000003, 0x200000, CRC(137b9bff) SHA1(5052c1fa30cc1d6affd78f48d483415dca89d10b) ) - - ROM_REGION(0x600000, "k054539", 0) /* Sound data */ - ROM_LOAD( "678a08.5r", 0x000000, 0x200000, CRC(4aeb61ad) SHA1(ec6872cb2e4776849963f48c1c245ca7697849e0) ) - ROM_LOAD( "678a09.3r", 0x200000, 0x200000, CRC(39baef23) SHA1(9f7bda0f9c06eee94703f9ceb06975c8e28338cc) ) - ROM_LOAD( "678a10.5n", 0x400000, 0x200000, CRC(0508280e) SHA1(a36c5dc377b0ba597f131bd9dfc6019e7fc2d243) ) -ROM_END - -ROM_START( jetwavej ) - ROM_REGION(0x200000, "user1", 0) /* PowerPC program roms */ - ROM_LOAD32_BYTE( "678jab01.20u", 0x000003, 0x080000, CRC(fa3da5cc) SHA1(33307e701e6eb28d44e0653ac3f1de47fc17779d) ) /* Program version JAB, JPN v1.04 */ - ROM_LOAD32_BYTE( "678jab02.17u", 0x000002, 0x080000, CRC(01c6713e) SHA1(68e27c018f974e820ba2e99d89a743e53faf1e65) ) - ROM_LOAD32_BYTE( "678jab03.15u", 0x000001, 0x080000, CRC(21c757cb) SHA1(1de6df8e4c52d40882cbf771ff7215ed7b53f251) ) - ROM_LOAD32_BYTE( "678jab04.13u", 0x000000, 0x080000, CRC(fdcc1ecc) SHA1(206cb98a6587cd8e5a9287037d85f392bd2f6e82) ) - - ROM_REGION(0x20000, "audiocpu", 0) /* M68K program */ - ROM_LOAD16_WORD_SWAP( "678a07.19l", 0x000000, 0x020000, CRC(bb3f5875) SHA1(97f80d9b55d4177217b7cd1ba14e8ed2d64376bb) ) - - ROM_REGION32_BE(0x400000, "user2", 0) /* data roms */ - ROM_LOAD32_WORD_SWAP( "685a05.10u", 0x000000, 0x200000, CRC(00e59741) SHA1(d799910d4e85482b0e92a3cc9043f81d97b2fb02) ) - ROM_LOAD32_WORD_SWAP( "685a06.8u", 0x000002, 0x200000, CRC(fc98c6a5) SHA1(a84583bb7296fa9e0c284b2ac59e2dc7b2689eee) ) - - ROM_REGION(0x800000, "gfx1", 0) /* Texture data */ - ROM_LOAD32_BYTE( "678a13.18d", 0x000000, 0x200000, CRC(ccf75722) SHA1(f48d21dfc4f82adbb4c9c841a809267cfd028a3d) ) - ROM_LOAD32_BYTE( "678a14.13d", 0x000001, 0x200000, CRC(333a1ab4) SHA1(79df4a98b7871eba4157307a7709da8f8b5da39b) ) - ROM_LOAD32_BYTE( "678a15.9d", 0x000002, 0x200000, CRC(58b670f8) SHA1(5d4facb00e34de3ad11ed60c19835918a9cf6cb9) ) - ROM_LOAD32_BYTE( "678a16.4d", 0x000003, 0x200000, CRC(137b9bff) SHA1(5052c1fa30cc1d6affd78f48d483415dca89d10b) ) - - ROM_REGION(0x600000, "k054539", 0) /* Sound data */ - ROM_LOAD( "678a08.5r", 0x000000, 0x200000, CRC(4aeb61ad) SHA1(ec6872cb2e4776849963f48c1c245ca7697849e0) ) - ROM_LOAD( "678a09.3r", 0x200000, 0x200000, CRC(39baef23) SHA1(9f7bda0f9c06eee94703f9ceb06975c8e28338cc) ) - ROM_LOAD( "678a10.5n", 0x400000, 0x200000, CRC(0508280e) SHA1(a36c5dc377b0ba597f131bd9dfc6019e7fc2d243) ) -ROM_END - -/*****************************************************************************/ - -GAME( 1995, midnrun, 0, midnrun, midnrun, midnrun_state, driver_init, ROT0, "Konami", "Midnight Run: Road Fighter 2 (EAA, Euro v1.11)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NODEVICE_LAN ) -GAME( 1995, midnrunj, midnrun, midnrun, midnrun, midnrun_state, driver_init, ROT0, "Konami", "Midnight Run: Road Fighter 2 (JAD, Japan v1.10)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NODEVICE_LAN ) -GAME( 1995, midnruna, midnrun, midnrun, midnrun, midnrun_state, driver_init, ROT0, "Konami", "Midnight Run: Road Fighter 2 (AAA, Asia v1.10)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NODEVICE_LAN ) -GAME( 1996, windheat, 0, midnrun, midnrun, midnrun_state, driver_init, ROT0, "Konami", "Winding Heat (EAA, Euro v2.11)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NODEVICE_LAN ) -GAME( 1996, windheatu,windheat, midnrun, midnrun, midnrun_state, driver_init, ROT0, "Konami", "Winding Heat (UBC, USA v2.22)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NODEVICE_LAN ) -GAME( 1996, windheatj,windheat, midnrun, midnrun, midnrun_state, driver_init, ROT0, "Konami", "Winding Heat (JAA, Japan v2.11)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NODEVICE_LAN ) -GAME( 1996, windheata,windheat, midnrun, midnrun, midnrun_state, driver_init, ROT0, "Konami", "Winding Heat (AAA, Asia v2.11)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NODEVICE_LAN ) -GAME( 1996, jetwave, 0, jetwave, jetwave, jetwave_state, driver_init, ROT0, "Konami", "Jet Wave (EAB, Euro v1.04)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NODEVICE_LAN ) -GAME( 1996, waveshrk, jetwave, jetwave, jetwave, jetwave_state, driver_init, ROT0, "Konami", "Wave Shark (UAB, USA v1.04)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NODEVICE_LAN ) -GAME( 1996, jetwavej, jetwave, jetwave, jetwave, jetwave_state, driver_init, ROT0, "Konami", "Jet Wave (JAB, Japan v1.04)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NODEVICE_LAN ) |