diff options
Diffstat (limited to 'src/mame/drivers/nwk-tr.cpp')
-rw-r--r-- | src/mame/drivers/nwk-tr.cpp | 1099 |
1 files changed, 0 insertions, 1099 deletions
diff --git a/src/mame/drivers/nwk-tr.cpp b/src/mame/drivers/nwk-tr.cpp deleted file mode 100644 index 0c882968841..00000000000 --- a/src/mame/drivers/nwk-tr.cpp +++ /dev/null @@ -1,1099 +0,0 @@ -// license:BSD-3-Clause -// copyright-holders:Ville Linde -/* Konami NWK-TR System - - Driver by Ville Linde - - - - Hardware overview: - - GN676 CPU Board: - ---------------- - IBM PowerPC 403GA at 32MHz (main CPU) - Motorola MC68EC000 at 16MHz (sound CPU) - Konami K056800 (MIRAC), sound system interface - Ricoh RF5c400 sound chip - National Semiconductor ADC12138 - - GN676 GFX Board: - ---------------- - Analog Devices ADSP-21062 SHARC DSP at 36MHz - Konami K001604 (2D tilemaps + 2x ROZ) - Konami 0000033906 (PCI bridge) - 3DFX 500-0003-03 (Voodoo) FBI with 2MB RAM - 2x 3DFX 500-0004-02 (Voodoo) TMU with 2MB RAM - - GN676 LAN Board: - ---------------- - Xilinx XC5210 FPGA - Xilinx XC5204 FPGA - - -Konami 'NWK-TR' Hardware -Konami, 1998-1999 - -Known games on this hardware include.... - -Game (C) Year ---------------------------------------- -Racing Jam Konami 1998 -Racing Jam : Chapter 2 Konami 1998 -Thrill Drive Konami 1998 - -Note: Thrill Drive was released as a conversion kit for Racing Jam. The kit came with a rom swap for CPU and CG boards -and a different network board containing a SOIC8 serial pic. - -PCB Layouts ------------ - -Note, the top board is virtually identical to GN715 used on Hornet. -Some extra RCA connectors have been added (for dual sound output), the LED and -DIPSW are present on the main board (instead of on the filter board) and the -SOIC8 chip (a secured PIC?) is not populated (the solder pads are there though). -There's an extra sound IC AN7395S (it's not populated on Hornet). -The PALs/PLDs are the same on NWK-TR and Hornet. -Both Racing JAM/Chapter 2 and Thrill Drive use two video boards. -The top video board is set to MASTER/TWIN, lower video board is set to SLAVE -They are otherwise identical. - - -Top Board (CPU PCB) -GN676 PWB(A)B -Konami 1997 -|--------------------------------------------------------------| -| SP485CS CN10 CN11 7805 CN9 JP8 JP9 JP10 JP11| -|CN19 7809 PAL1 | -|CN21 JP13 PAL2 68EC000 EPROM.7S | -| NE5532 PAL3 CN12| -| JP12 JP16 DRM1M4SJ8 CN13| -| NE5532 AN7395S MASKROM.9P MASKROM.9T | -| SM5877 JP15 RF5C400 | -|CN18 MASKROM.12P MASKROM.12T| -| SM5877 16.9344MHz CN7| -|CN14 SRAM256K MASKROM.14P MASKROM.14T| -| | -|CN16 SRAM256K MASKROM.16P MASKROM.16T| -| ADC12138 | -|CN15 056800 JP5 | -| JP4 | -|CN17 MACH111 JP3 |---------| | -| TEST_SW EPROM.22P | | | -|CN1 DRAM16X16 |PPC403GA | | -| EPROM.25P | | | -| | | | -| DRAM16X16 EPROM.27P |---------| | -| 4AK16 JP6| -| | -|CN3 | -| PAL4 CN5 7.3728MHz| -| 058232 | -| 50.000MHz| -|CN2 RESET_SW JP1 JP2 | -|M48T58Y-70PC1 CN4 DSW(8) CN6 64.000MHz| -|--------------------------------------------------------------| -Notes: - DRM1M4SJ8 - Fujitsu 81C4256 256kx4 DRAM (SOJ24) - SRAM256K - Cypress CY7C199 32kx8 SRAM (SOJ28) - DRAM16X16 - Fujitsu 8118160A-60 16megx16 DRAM (SOJ42) - M48T58Y-70PC1 - ST Timekeeper RAM - RF5C400 - Ricoh RF5C400 PCM 32Ch, 44.1 kHz Stereo, 3D Effect Spatializer, clock input 16.9344MHz - 056800 - Konami Custom (QFP80) - 058232 - Konami Custom Ceramic Package (SIL14) - ADC12138 - National Semiconductor ADC12138 A/D Converter, 12-bit + Serial I/O With MUX (SOP28) - MACH111 - AMD MACH111 CPLD (Stamped 'N676A1', PLCC44) - 68EC000 - Motorola MC68EC000, running at 16.0MHz (64/4) - PPC403GA - IBM PowerPC 403GA CPU, clock input 32.0MHz (64/2) (QFP160) - SM5877AM - Nippon Precision Circuits 3rd Order 2-Channel D/A Converter (SOIC24) - 4AK16 - Hitachi 4AK16 Silicon N-Channel Power MOS FET Array (SIL10) - NE5532AN - Philips, Dual Low-Noise High-Speed Audio OP Amp (DIP8) - SP485CS - Sipex SP485CS Low Power Half Duplex RS485 Transceiver (DIP8) - AN7395S - Panasonic AM7395S Spatializer Audio Processor IC for 3D surround (SOIC20) - PAL1 - AMD PALCE16V8 (stamped 'N676A4', DIP20) - PAL2 - AMD PALCE16V8 (stamped 'N676A2', DIP20) - PAL3 - AMD PALCE16V8 (stamped 'N676A3', DIP20) - PAL4 - AMD PALCE16V8 (stamped 'N676A5', DIP20) - JP1 - 25M O O-O 32M - JP2 - 25M O O-O 32M - JP3 - RW O O O RO - JP4 - PROG 32M O O-O 16M - JP5 - DATA 32M O-O O 16M - JP6 - BOOT 16 O-O O 32 - JP7 - SRC DOUT2 O O-O 0 - JP8 - 64M&32M O-O O 16M - JP9 - 64M O O-O 32M&16M - JP10 - 64M&32M O-O O 16M - JP11 - 64M O O-O 32M&16M - JP12 - through O-O O SP - JP13 - through O-O O SP - JP14 - WDT O O - JP15 - MONO O-O O SURR - JP16 - HIGH O O O MID (N/C LOW) - CN1 to CN3 - D-SUB Connectors - CN4 - Multi-pin Connector for Network PCB - CN5 - DIN96 connector (pads only, not used) - CN6 - DIN96 joining connector to lower PCB - CN7 - Multi-pin connector (pads only, not used) - CN9 to CN13 - Power Connectors - CN14 to CN17 - RCA Stereo Audio OUT - CN18 - RCA Mono Audio OUT - CN19 - USB Connector - - -ROM Usage ---------- - |------------------------------- ROM Locations -------------------------------------| -Game 27P 25P 22P 16P 14P 12P 9P 16T 14T 12T 9T 7S --------------------------------------------------------------------------------------------------- -Racing Jam 676NC01 - - 676A09 676A10 - - 676A04 676A05 - - 676A08 -Racing Jam 2 888A01 - - 888A09 888A10 - - 676A04 676A05 888A06 - 888A08 -Thrill Drive 713BE01 - - 713A09 713A10 - - 713A04 713A05 - - 713A08 - - -Network PCB (Racing Jam) ------------ -GN676-PWB(H)A -MADE IN JAPAN -(C)1998 KONAMI -|------------------------| -| CY7C199 N676H1 | -| | -|CN3 | -| HYC2485S | -| XC5204 XC5210 | -|CN2 | -| CN1 | -|------------------------| -Notes: - CN1 - Connector joining to CPU board CN4 - CN2/3 - RCA jacks for network cable - HYC2485S - Hybrid ceramic module for RS485 - CY7C199 - 32k x8 SRAM - XC5204 - Xilinx XC5204 FPGA - XC5210 - Xilink XC5210 FPGA - N676H1 - PALCE16V8Q-15 stamped 'N676H1' - -Network PCB (Racing Jam 2 and Thrill Drive) ------------ -GN676-PWB(H)B -MADE IN JAPAN -(C)1998 KONAMI -|------------------------| -| CY7C199 N676H1 | -| 2G| -|CN3 | -| HYC2485S | -| XC5204 XC5210 | -|CN2 | -| CN1 | -|------------------------| -This pcb is the same as the A version but with one added chip: - 2G - Small SOIC8 chip with number 0038323 at location 2G. An identical chip is present on - *some* Hornet games on the GN715 CPU board at location 30C. It may be a PIC or EEPROM. - The chip seems to refresh the data in the Timekeeper RAM when the battery dies and keeps - the game working. Because Racing Jam 2 and Thrill Drive came in a conversion kit, the PIC - would format all old timekeeper data on first power on. It's also possible the PIC was - created as a security measure to prevent changing the game and region. - - -Bottom Board (VIDEO PCB) -GN676 PWB(B)B -|-------------------------------------------------------------------------------------------| -|CN4 CN2 CN8 CN6 CN5| -|JP1 |---------| 4M_EDO 4M_EDO | -| | | |----------| | -| 4M_EDO 4M_EDO | TEXELFX | | | 4M_EDO MASKROM.8X | -|CN3 | | | PIXELFX | MASKROM.8Y | -| 4M_EDO 4M_EDO | | | | | -| |---------| | | 4M_EDO | -| 4M_EDO 4M_EDO |----------| | -| |---------| 50MHz |--------| | -| 4M_EDO 4M_EDO | | |KONAMI | | -| | TEXELFX | |33906 | MASKROM.16X | -| | | | | MASKROM.16Y | -| | | PLCC44_SOCKET |--------| AM7201 | -| MC44200 |---------| | -| | -| | -| PAL3 256KSRAM 36MHz | -| 256KSRAM AM7201 AM7201 |-------------| | -| 256KSRAM |ANALOG | | -| 256KSRAM MACH111 256KSRAM AM7201 AM7201 |DEVICES | | -| 256KSRAM AV9170 |ADSP-21062 | | -| |SHARC | | -| |--------| |KS-160 | | -| |KONAMI | |-------------| | -| |001604 | 1MSRAM 1MSRAM 1MSRAM 1MSRAM | -|1MSRAM | | 1MSRAM 1MSRAM 1MSRAM 1MSRAM | -| |--------| | -|1MSRAM 256KSRAM PAL1 | -| 256KSRAM 256KSRAM JP2 CN1 PAL2 | -|-------------------------------------------------------------------------------------------| -Notes: - 4M_EDO - Silicon Magic SM81C256K16CJ-35 EDO DRAM 66MHz (SOJ40) - 1MSRAM - Cypress CY7C109-25VC 1Meg SRAM (SOJ32) - 256KSRAM - Winbond W24257AJ-15 256k SRAM (SOJ28) - TEXELFX - 3DFX 500-0004-02 BD0665.1 TMU (QFP208) - PIXELFX - 3DFX 500-0003-03 F001701.1 FBI (QFP240) - 001604 - Konami Custom (QFP208) - MC44200FT - Motorola MC44200FT 3 Channel Video D/A Converter (QFP44) - MACH111 - AMD MACH111 CPLD (Stamped '03161A', PLCC44) - PLCC44_SOCKET - empty PLCC44 socket - AV9170 - Integrated Circuit Systems Inc. Clock Multiplier (SOIC8) - AM7201 - AMD AM7201 FIFO (PLCC32) - PAL1 - AMD PALCE16V8 (stamped 'N676B4', DIP20) - PAL2 - AMD PALCE16V8 (stamped 'N676B5', DIP20) - PAL3 - AMD PALCE16V8 (stamped 'N676B2', DIP20) - JP1 - SLV O O-O MST,TWN (sets board to MASTER TWIN or SLAVE) - JP2 - SLV O O-O MST (sets board to MASTER or SLAVE) - CN1 - 96 Pin joining connector to upper PCB - CN2 - 8-Pin 24kHz RGB OUT - CN3 - 15-Pin DSUB VGA Video MAIN OUT - CN4 - 6-Pin Power Connector - CN5 - 4-Pin Power Connector - CN6 - 2-Pin Connector (Not Used) - CN7 - 6-Pin Connector - - -ROM Usage ---------- - |------ ROM Locations -------| -Game 8X 8Y 16X 16Y -------------------------------------------- -Racing Jam 676A13 - 676A14 - -Racing Jam 2 888A13 - 888A14 - -Thrill Drive 713A13 - 713A14 - - -*/ - -#include "emu.h" -#include "cpu/m68000/m68000.h" -#include "cpu/powerpc/ppc.h" -#include "cpu/sharc/sharc.h" -#include "machine/adc1213x.h" -#include "machine/k033906.h" -#include "machine/konppc.h" -#include "machine/timekpr.h" -#include "sound/rf5c400.h" -#include "sound/k056800.h" -#include "video/voodoo.h" -#include "video/k001604.h" -#include "emupal.h" -#include "screen.h" -#include "speaker.h" - - -class nwktr_state : public driver_device -{ -public: - nwktr_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag), - m_work_ram(*this, "work_ram"), - m_maincpu(*this, "maincpu"), - m_audiocpu(*this, "audiocpu"), - m_dsp(*this, "dsp"), - m_dsp2(*this, "dsp2"), - m_k056800(*this, "k056800"), - m_k001604(*this, "k001604"), - m_konppc(*this, "konppc"), - m_adc12138(*this, "adc12138"), - m_voodoo(*this, "voodoo%u", 0U), - m_in0(*this, "IN0"), - m_in1(*this, "IN1"), - m_in2(*this, "IN2"), - m_dsw(*this, "DSW"), - m_analog1(*this, "ANALOG1"), - m_analog2(*this, "ANALOG2"), - m_analog3(*this, "ANALOG3"), - m_analog4(*this, "ANALOG4"), - m_analog5(*this, "ANALOG5"), - m_palette(*this, "palette"), - m_generic_paletteram_32(*this, "paletteram") { } - - void thrilld(machine_config &config); - void nwktr(machine_config &config); - - void init_nwktr(); - -private: - // TODO: Needs verification on real hardware - static const int m_sound_timer_usec = 2400; - - uint8_t m_led_reg0; - uint8_t m_led_reg1; - required_shared_ptr<uint32_t> m_work_ram; - required_device<ppc_device> m_maincpu; - required_device<cpu_device> m_audiocpu; - required_device<adsp21062_device> m_dsp; - required_device<adsp21062_device> m_dsp2; - required_device<k056800_device> m_k056800; - required_device<k001604_device> m_k001604; - required_device<konppc_device> m_konppc; - required_device<adc12138_device> m_adc12138; - required_device_array<voodoo_device, 2> m_voodoo; - required_ioport m_in0, m_in1, m_in2, m_dsw, m_analog1, m_analog2, m_analog3, m_analog4, m_analog5; - required_device<palette_device> m_palette; - required_shared_ptr<uint32_t> m_generic_paletteram_32; - emu_timer *m_sound_irq_timer; - int m_fpga_uploaded; - int m_lanc2_ram_r; - int m_lanc2_ram_w; - uint8_t m_lanc2_reg[3]; - std::unique_ptr<uint8_t[]> m_lanc2_ram; - std::unique_ptr<uint32_t[]> m_sharc0_dataram; - std::unique_ptr<uint32_t[]> m_sharc1_dataram; - DECLARE_WRITE32_MEMBER(paletteram32_w); - DECLARE_READ32_MEMBER(sysreg_r); - DECLARE_WRITE32_MEMBER(sysreg_w); - DECLARE_READ32_MEMBER(lanc1_r); - DECLARE_WRITE32_MEMBER(lanc1_w); - DECLARE_READ32_MEMBER(lanc2_r); - DECLARE_WRITE32_MEMBER(lanc2_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); - DECLARE_WRITE16_MEMBER(soundtimer_en_w); - DECLARE_WRITE16_MEMBER(soundtimer_count_w); - DECLARE_WRITE_LINE_MEMBER(voodoo_vblank_0); - DECLARE_WRITE_LINE_MEMBER(voodoo_vblank_1); - double adc12138_input_callback(uint8_t input); - - TIMER_CALLBACK_MEMBER(sound_irq); - virtual void machine_start() override; - virtual void machine_reset() override; - uint32_t screen_update_lscreen(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); - uint32_t screen_update_rscreen(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); - - void lanc2_init(); - - void nwktr_map(address_map &map); - void sharc0_map(address_map &map); - void sharc1_map(address_map &map); - void sound_memmap(address_map &map); -}; - - - -WRITE32_MEMBER(nwktr_state::paletteram32_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)); -} - -WRITE_LINE_MEMBER(nwktr_state::voodoo_vblank_0) -{ - m_maincpu->set_input_line(INPUT_LINE_IRQ0, state); -} - -WRITE_LINE_MEMBER(nwktr_state::voodoo_vblank_1) -{ -} - - -uint32_t nwktr_state::screen_update_lscreen(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) -{ - bitmap.fill(m_palette->pen(0), cliprect); - - m_voodoo[0]->voodoo_update(bitmap, cliprect); - - const rectangle &visarea = screen.visible_area(); - const rectangle tilemap_rect(visarea.min_x, visarea.max_x, visarea.min_y + 16, visarea.max_y); - - m_k001604->draw_front_layer(screen, bitmap, tilemap_rect); - - draw_7segment_led(bitmap, 3, 3, m_led_reg0); - draw_7segment_led(bitmap, 9, 3, m_led_reg1); - return 0; -} - -uint32_t nwktr_state::screen_update_rscreen(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) -{ - bitmap.fill(m_palette->pen(0), cliprect); - - m_voodoo[1]->voodoo_update(bitmap, cliprect); - - const rectangle &visarea = screen.visible_area(); - const rectangle tilemap_rect(visarea.min_x, visarea.max_x, visarea.min_y + 16, visarea.max_y); - - m_k001604->draw_front_layer(screen, bitmap, tilemap_rect); - - draw_7segment_led(bitmap, 3, 3, m_led_reg0); - draw_7segment_led(bitmap, 9, 3, m_led_reg1); - return 0; -} - -/*****************************************************************************/ - -READ32_MEMBER(nwktr_state::sysreg_r) -{ - uint32_t r = 0; - if (offset == 0) - { - if (ACCESSING_BITS_24_31) - { - r |= m_in0->read() << 24; - } - if (ACCESSING_BITS_16_23) - { - r |= m_in1->read() << 16; - } - if (ACCESSING_BITS_8_15) - { - r |= m_in2->read() << 8; - } - if (ACCESSING_BITS_0_7) - { - r |= m_adc12138->do_r() | (m_adc12138->eoc_r() << 2); - } - } - else if (offset == 1) - { - if (ACCESSING_BITS_24_31) - { - r |= m_dsw->read() << 24; - } - } - return r; -} - -WRITE32_MEMBER(nwktr_state::sysreg_w) -{ - if( offset == 0 ) - { - if (ACCESSING_BITS_24_31) - { - m_led_reg0 = (data >> 24) & 0xff; - } - if (ACCESSING_BITS_16_23) - { - m_led_reg1 = (data >> 16) & 0xff; - } - return; - } - if( offset == 1 ) - { - if (ACCESSING_BITS_24_31) - { - int cs = (data >> 27) & 0x1; - int conv = (data >> 26) & 0x1; - int di = (data >> 25) & 0x1; - int sclk = (data >> 24) & 0x1; - - m_adc12138->cs_w(cs); - m_adc12138->conv_w(conv); - m_adc12138->di_w(di); - m_adc12138->sclk_w(sclk); - } - if (ACCESSING_BITS_0_7) - { - 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) & 1); - } - return; - } -} - - -void nwktr_state::lanc2_init() -{ - m_fpga_uploaded = 0; - m_lanc2_ram_r = 0; - m_lanc2_ram_w = 0; - m_lanc2_ram = std::make_unique<uint8_t[]>(0x8000); -} - -READ32_MEMBER(nwktr_state::lanc1_r) -{ - switch (offset) - { - case 0x40/4: - { - uint32_t r = 0; - - r |= (m_fpga_uploaded) ? (1 << 6) : 0; - r |= 1 << 5; - - return (r) << 24; - } - - default: - { - //printf("lanc1_r: %08X, %08X at %08X\n", offset, mem_mask, m_maincpu->pc()); - return 0xffffffff; - } - } -} - -WRITE32_MEMBER(nwktr_state::lanc1_w) -{ - //printf("lanc1_w: %08X, %08X, %08X at %08X\n", data, offset, mem_mask, m_maincpu->pc()); -} - -READ32_MEMBER(nwktr_state::lanc2_r) -{ - uint32_t r = 0; - - if (offset == 0) - { - if (ACCESSING_BITS_0_7) - { - r |= m_lanc2_ram[m_lanc2_ram_r & 0x7fff]; - m_lanc2_ram_r++; - } - else - { - r |= 0xffffff00; - } - } - - if (offset == 4) - { - if (ACCESSING_BITS_24_31) - { - r |= 0x00000000; - } - } - - //printf("lanc2_r: %08X, %08X at %08X\n", offset, mem_mask, m_maincpu->pc()); - - return r; -} - -WRITE32_MEMBER(nwktr_state::lanc2_w) -{ - if (offset == 0) - { - if (ACCESSING_BITS_24_31) - { - uint8_t value = data >> 24; - - value = ((value >> 7) & 0x01) | - ((value >> 5) & 0x02) | - ((value >> 3) & 0x04) | - ((value >> 1) & 0x08) | - ((value << 1) & 0x10) | - ((value << 3) & 0x20) | - ((value << 5) & 0x40) | - ((value << 7) & 0x80); - - m_fpga_uploaded = 1; - m_lanc2_reg[0] = (uint8_t)(data >> 24); - - //printf("lanc2_fpga_w: %02X at %08X\n", value, m_maincpu->pc()); - } - else if (ACCESSING_BITS_8_15) - { - m_lanc2_ram_r = 0; - m_lanc2_ram_w = 0; - m_lanc2_reg[1] = (uint8_t)(data >> 8); - } - else if (ACCESSING_BITS_16_23) - { - if (m_lanc2_reg[0] != 0) - { - m_lanc2_ram[2] = (data >> 20) & 0xf; - m_lanc2_ram[3] = 0; - } - m_lanc2_reg[2] = (uint8_t)(data >> 16); - } - else if (ACCESSING_BITS_0_7) - { - m_lanc2_ram[m_lanc2_ram_w & 0x7fff] = data & 0xff; - m_lanc2_ram_w++; - } - else - { - //printf("lanc2_w: %08X, %08X, %08X at %08X\n", data, offset, mem_mask, m_maincpu->pc()); - } - } - if (offset == 4) - { - // TODO: check if these should be transferred via PPC DMA. - - if (core_stricmp(machine().system().name, "thrilld") == 0 || - core_stricmp(machine().system().name, "thrilldb") == 0 || - core_stricmp(machine().system().name, "thrilldae") == 0) - { - m_work_ram[(0x3ffed0/4) + 0] = 0x472a3731; // G*71 - m_work_ram[(0x3ffed0/4) + 1] = 0x33202020; // 3 - m_work_ram[(0x3ffed0/4) + 2] = 0x2d2d2a2a; // --** - m_work_ram[(0x3ffed0/4) + 3] = 0x2a207878; // * - - m_work_ram[(0x3fff40/4) + 0] = 0x47433731; // GC71 - m_work_ram[(0x3fff40/4) + 1] = 0x33000000; // 3 - m_work_ram[(0x3fff40/4) + 2] = 0x19994a41; // JA - m_work_ram[(0x3fff40/4) + 3] = 0x4100a9b1; // A - } - else if (core_stricmp(machine().system().name, "racingj2") == 0) - { - m_work_ram[(0x3ffc80/4) + 0] = 0x47453838; // GE88 - m_work_ram[(0x3ffc80/4) + 1] = 0x38003030; // 8 00 - m_work_ram[(0x3ffc80/4) + 2] = 0x39374541; // 97EA - m_work_ram[(0x3ffc80/4) + 3] = 0x410058da; // A - } - } - - //printf("lanc2_w: %08X, %08X, %08X at %08X\n", data, offset, mem_mask, m_maincpu->pc()); -} - -/*****************************************************************************/ - -TIMER_CALLBACK_MEMBER(nwktr_state::sound_irq) -{ - m_audiocpu->set_input_line(M68K_IRQ_1, ASSERT_LINE); -} - - -WRITE16_MEMBER(nwktr_state::soundtimer_en_w) -{ - if (data & 1) - { - // Reset and disable timer - m_sound_irq_timer->adjust(attotime::from_usec(m_sound_timer_usec)); - m_sound_irq_timer->enable(false); - } - else - { - // Enable timer - m_sound_irq_timer->enable(true); - } -} - -WRITE16_MEMBER(nwktr_state::soundtimer_count_w) -{ - // Reset the count - m_sound_irq_timer->adjust(attotime::from_usec(m_sound_timer_usec)); - m_audiocpu->set_input_line(M68K_IRQ_1, CLEAR_LINE); -} - - -void nwktr_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, 0x003fffff, false, m_work_ram); - - m_sound_irq_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(nwktr_state::sound_irq), this)); -} - -void nwktr_state::nwktr_map(address_map &map) -{ - map(0x00000000, 0x003fffff).ram().share("work_ram"); /* Work RAM */ - map(0x74000000, 0x740000ff).rw(m_k001604, FUNC(k001604_device::reg_r), FUNC(k001604_device::reg_w)); - map(0x74010000, 0x74017fff).ram().w(FUNC(nwktr_state::paletteram32_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)); - map(0x780c0000, 0x780c0003).rw(m_konppc, FUNC(konppc_device::cgboard_dsp_comm_r_ppc), FUNC(konppc_device::cgboard_dsp_comm_w_ppc)); - map(0x7d000000, 0x7d00ffff).r(FUNC(nwktr_state::sysreg_r)); - map(0x7d010000, 0x7d01ffff).w(FUNC(nwktr_state::sysreg_w)); - map(0x7d020000, 0x7d021fff).rw("m48t58", FUNC(timekeeper_device::read), FUNC(timekeeper_device::write)); /* M48T58Y RTC/NVRAM */ - map(0x7d030000, 0x7d03000f).rw(m_k056800, FUNC(k056800_device::host_r), FUNC(k056800_device::host_w)); - map(0x7d040000, 0x7d04ffff).rw(FUNC(nwktr_state::lanc1_r), FUNC(nwktr_state::lanc1_w)); - map(0x7d050000, 0x7d05ffff).rw(FUNC(nwktr_state::lanc2_r), FUNC(nwktr_state::lanc2_w)); - map(0x7e000000, 0x7e7fffff).rom().region("user2", 0); /* Data ROM */ - map(0x7f000000, 0x7f1fffff).rom().share("share2"); - map(0x7fe00000, 0x7fffffff).rom().region("user1", 0).share("share2"); /* Program ROM */ -} - -/*****************************************************************************/ - -void nwktr_state::sound_memmap(address_map &map) -{ - map(0x000000, 0x07ffff).rom(); - map(0x100000, 0x10ffff).ram(); - map(0x200000, 0x200fff).rw("rfsnd", FUNC(rf5c400_device::rf5c400_r), FUNC(rf5c400_device::rf5c400_w)); /* Ricoh RF5C400 */ - map(0x300000, 0x30001f).rw(m_k056800, FUNC(k056800_device::sound_r), FUNC(k056800_device::sound_w)).umask16(0x00ff); - map(0x500000, 0x500001).w(FUNC(nwktr_state::soundtimer_en_w)).nopr(); - map(0x600000, 0x600001).w(FUNC(nwktr_state::soundtimer_count_w)).nopr(); -} - -/*****************************************************************************/ - - -READ32_MEMBER(nwktr_state::dsp_dataram0_r) -{ - return m_sharc0_dataram[offset] & 0xffff; -} - -WRITE32_MEMBER(nwktr_state::dsp_dataram0_w) -{ - m_sharc0_dataram[offset] = data; -} - -READ32_MEMBER(nwktr_state::dsp_dataram1_r) -{ - return m_sharc1_dataram[offset] & 0xffff; -} - -WRITE32_MEMBER(nwktr_state::dsp_dataram1_w) -{ - m_sharc1_dataram[offset] = data; -} - -void nwktr_state::sharc0_map(address_map &map) -{ - map(0x0400000, 0x041ffff).rw(m_konppc, FUNC(konppc_device::cgboard_0_shared_sharc_r), FUNC(konppc_device::cgboard_0_shared_sharc_w)); - map(0x0500000, 0x05fffff).rw(FUNC(nwktr_state::dsp_dataram0_r), FUNC(nwktr_state::dsp_dataram0_w)); - map(0x1400000, 0x14fffff).ram(); - map(0x2400000, 0x27fffff).rw(m_konppc, FUNC(konppc_device::nwk_voodoo_0_r), FUNC(konppc_device::nwk_voodoo_0_w)); - map(0x3400000, 0x34000ff).rw(m_konppc, FUNC(konppc_device::cgboard_0_comm_sharc_r), FUNC(konppc_device::cgboard_0_comm_sharc_w)); - map(0x3500000, 0x35000ff).rw(m_konppc, FUNC(konppc_device::K033906_0_r), FUNC(konppc_device::K033906_0_w)); - map(0x3600000, 0x37fffff).bankr("bank5"); -} - -void nwktr_state::sharc1_map(address_map &map) -{ - map(0x0400000, 0x041ffff).rw(m_konppc, FUNC(konppc_device::cgboard_1_shared_sharc_r), FUNC(konppc_device::cgboard_1_shared_sharc_w)); - map(0x0500000, 0x05fffff).rw(FUNC(nwktr_state::dsp_dataram1_r), FUNC(nwktr_state::dsp_dataram1_w)); - map(0x1400000, 0x14fffff).ram(); - map(0x2400000, 0x27fffff).rw(m_konppc, FUNC(konppc_device::nwk_voodoo_0_r), FUNC(konppc_device::nwk_voodoo_0_w)); - map(0x3400000, 0x34000ff).rw(m_konppc, FUNC(konppc_device::cgboard_1_comm_sharc_r), FUNC(konppc_device::cgboard_1_comm_sharc_w)); - map(0x3500000, 0x35000ff).rw(m_konppc, FUNC(konppc_device::K033906_1_r), FUNC(konppc_device::K033906_1_w)); - map(0x3600000, 0x37fffff).bankr("bank6"); -} - -/*****************************************************************************/ - -static INPUT_PORTS_START( nwktr ) - 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( 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( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START("IN2") - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("Service Button") PORT_CODE(KEYCODE_7) - PORT_SERVICE_NO_TOGGLE( 0x10, IP_ACTIVE_LOW ) - PORT_BIT( 0x0f, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START("DSW") - PORT_DIPNAME( 0x80, 0x00, "Skip Post" ) PORT_DIPLOCATION("SW:1") - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x00, "Disable Machine Init" ) PORT_DIPLOCATION("SW:2") - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, "DIP3" ) PORT_DIPLOCATION("SW:3") - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, "DIP4" ) PORT_DIPLOCATION("SW:4") - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, "DIP5" ) PORT_DIPLOCATION("SW:5") - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x04, "DIP6" ) PORT_DIPLOCATION("SW:6") - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, "DIP7" ) PORT_DIPLOCATION("SW:7") - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x01, 0x01, "DIP8" ) PORT_DIPLOCATION("SW:8") - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START("ANALOG1") - PORT_BIT( 0xfff, 0x800, IPT_PADDLE ) PORT_NAME("Steering Wheel") PORT_MINMAX(0x000, 0xfff) PORT_SENSITIVITY(100) PORT_KEYDELTA(60) - - PORT_START("ANALOG2") - PORT_BIT( 0xfff, 0x000, IPT_PEDAL ) PORT_NAME("Gas Pedal") PORT_MINMAX(0x000, 0xfff) PORT_SENSITIVITY(100) PORT_KEYDELTA(60) - - PORT_START("ANALOG3") - PORT_BIT( 0xfff, 0x000, IPT_PEDAL2 ) PORT_NAME("Brake Pedal") PORT_MINMAX(0x000, 0xfff) PORT_SENSITIVITY(100) PORT_KEYDELTA(60) - - PORT_START("ANALOG4") - PORT_BIT( 0xfff, 0x000, IPT_AD_STICK_Y ) PORT_NAME("Handbrake Lever") PORT_MINMAX(0x000, 0xfff) PORT_SENSITIVITY(100) PORT_KEYDELTA(60) - - PORT_START("ANALOG5") - PORT_BIT( 0xfff, 0x000, IPT_PEDAL3 ) PORT_NAME("Clutch Pedal") PORT_MINMAX(0x000, 0xfff) PORT_SENSITIVITY(100) PORT_KEYDELTA(60) -INPUT_PORTS_END - - -double nwktr_state::adc12138_input_callback(uint8_t input) -{ - int value = 0; - switch (input) - { - case 0: value = m_analog1->read(); break; - case 1: value = m_analog2->read(); break; - case 2: value = m_analog3->read(); break; - case 3: value = m_analog4->read(); break; - case 4: value = m_analog5->read(); break; - } - - return (double)(value) / 4095.0; -} - -void nwktr_state::machine_reset() -{ - m_dsp->set_input_line(INPUT_LINE_RESET, ASSERT_LINE); - m_dsp2->set_input_line(INPUT_LINE_RESET, ASSERT_LINE); -} - -void nwktr_state::nwktr(machine_config &config) -{ - /* basic machine hardware */ - PPC403GA(config, m_maincpu, XTAL(64'000'000)/2); /* PowerPC 403GA 32MHz */ - m_maincpu->set_addrmap(AS_PROGRAM, &nwktr_state::nwktr_map); - - M68000(config, m_audiocpu, XTAL(64'000'000)/4); /* 16MHz */ - m_audiocpu->set_addrmap(AS_PROGRAM, &nwktr_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, &nwktr_state::sharc0_map); - - ADSP21062(config, m_dsp2, XTAL(36'000'000)); - m_dsp2->set_boot_mode(adsp21062_device::BOOT_MODE_EPROM); - m_dsp2->set_addrmap(AS_DATA, &nwktr_state::sharc1_map); - - config.set_maximum_quantum(attotime::from_hz(9000)); - - M48T58(config, "m48t58", 0); - - ADC12138(config, m_adc12138, 0); - m_adc12138->set_ipt_convert_callback(FUNC(nwktr_state::adc12138_input_callback)); - - K033906(config, "k033906_1", 0, "voodoo0"); - K033906(config, "k033906_2", 0, "voodoo1"); - - /* video hardware */ - VOODOO_1(config, m_voodoo[0], STD_VOODOO_1_CLOCK); - m_voodoo[0]->set_fbmem(2); - m_voodoo[0]->set_tmumem(2,2); - m_voodoo[0]->set_screen_tag("lscreen"); - m_voodoo[0]->set_cpu_tag(m_dsp); - m_voodoo[0]->vblank_callback().set(FUNC(nwktr_state::voodoo_vblank_0)); - - VOODOO_1(config, m_voodoo[1], STD_VOODOO_1_CLOCK); - m_voodoo[1]->set_fbmem(2); - m_voodoo[1]->set_tmumem(2,2); - m_voodoo[1]->set_screen_tag("rscreen"); - m_voodoo[1]->set_cpu_tag(m_dsp); - m_voodoo[1]->vblank_callback().set(FUNC(nwktr_state::voodoo_vblank_1)); - - screen_device &lscreen(SCREEN(config, "lscreen", SCREEN_TYPE_RASTER)); - lscreen.set_refresh_hz(60); - lscreen.set_size(512, 384); - lscreen.set_visarea(0, 511, 0, 383); - lscreen.set_screen_update(FUNC(nwktr_state::screen_update_lscreen)); - - screen_device &rscreen(SCREEN(config, "rscreen", SCREEN_TYPE_RASTER)); //TODO: Remove. These games never ran on a dual screen setup. - rscreen.set_refresh_hz(60); - rscreen.set_size(512, 384); - rscreen.set_visarea(0, 511, 0, 383); - rscreen.set_screen_update(FUNC(nwktr_state::screen_update_rscreen)); - - PALETTE(config, m_palette).set_entries(65536); - - K001604(config, m_k001604, 0); - m_k001604->set_layer_size(0); - m_k001604->set_roz_size(1); - m_k001604->set_txt_mem_offset(0); // correct? - m_k001604->set_roz_mem_offset(0); // correct? - m_k001604->set_palette(m_palette); - - SPEAKER(config, "lspeaker").front_left(); - SPEAKER(config, "rspeaker").front_right(); - - K056800(config, m_k056800, XTAL(16'934'400)); - m_k056800->int_callback().set_inputline(m_audiocpu, M68K_IRQ_2); - - rf5c400_device &rfsnd(RF5C400(config, "rfsnd", XTAL(16'934'400))); // as per Guru readme above - rfsnd.add_route(0, "lspeaker", 1.0); - rfsnd.add_route(1, "rspeaker", 1.0); - - KONPPC(config, m_konppc, 0); - m_konppc->set_num_boards(2); - m_konppc->set_cbboard_type(konppc_device::CGBOARD_TYPE_NWKTR); -} - -void nwktr_state::thrilld(machine_config &config) -{ - nwktr(config); - - m_k001604->set_layer_size(1); -} - -/*****************************************************************************/ - -void nwktr_state::init_nwktr() -{ - m_konppc->set_cgboard_texture_bank(0, "bank5", memregion("user5")->base()); - m_konppc->set_cgboard_texture_bank(0, "bank6", memregion("user5")->base()); - - m_sharc0_dataram = std::make_unique<uint32_t[]>(0x100000 / 4); - m_sharc1_dataram = std::make_unique<uint32_t[]>(0x100000 / 4); - m_led_reg0 = m_led_reg1 = 0x7f; - - lanc2_init(); -} - -/*****************************************************************************/ - -ROM_START(racingj) - ROM_REGION32_BE(0x200000, "user1", 0) /* PowerPC program roms */ - ROM_LOAD16_WORD_SWAP("676gnc01.27p", 0x000000, 0x200000, CRC(690346b5) SHA1(157ab6788382ef4f5a8772f08819f54d0856fcc8) ) - - ROM_REGION32_BE(0x800000, "user2", 0) /* Data roms */ - ROM_LOAD32_WORD_SWAP("676a04.16t", 0x000000, 0x200000, CRC(d7808cb6) SHA1(0668fae5bb94cc120fe196d4b18200f7b512317f) ) - ROM_LOAD32_WORD_SWAP("676a05.14t", 0x000002, 0x200000, CRC(fb4de1ad) SHA1(f6aa4eb1b5d22901a2aaf899ed3237a9dfdc55b5) ) - - ROM_REGION32_BE(0x800000, "user5", 0) /* CG Board texture roms */ - ROM_LOAD32_WORD_SWAP( "676a13.8x", 0x000000, 0x400000, CRC(29077763) SHA1(ee087ca0d41966ca0fd10727055bb1dcd05a0873) ) - ROM_LOAD32_WORD_SWAP( "676a14.16x", 0x000002, 0x400000, CRC(50a7e3c0) SHA1(7468a66111a3ddf7c043cd400fa175cae5f65632) ) - - ROM_REGION(0x80000, "audiocpu", 0) /* 68k program roms */ - ROM_LOAD16_WORD_SWAP( "676gna08.7s", 0x000000, 0x080000, CRC(8973f6f2) SHA1(f5648a7e0205f7e979ccacbb52936809ce14a184) ) - - ROM_REGION16_LE(0x1000000, "rfsnd", 0) /* PCM sample roms */ - ROM_LOAD( "676a09.16p", 0x000000, 0x400000, CRC(f85c8dc6) SHA1(8b302c80be309b5cc68b75945fcd7b87a56a4c9b) ) - ROM_LOAD( "676a10.14p", 0x400000, 0x400000, CRC(7b5b7828) SHA1(aec224d62e4b1e8fdb929d7947ce70d84ba676cf) ) - - ROM_REGION(0x2000, "m48t58",0) - ROM_LOAD( "676jac_m48t58y.35d", 0x000000, 0x002000, CRC(47e1628c) SHA1(7c42d06ae2f2cd24d083890f333552cbf4f1d3c9) ) -ROM_END - -ROM_START(racingj2j) - ROM_REGION32_BE(0x200000, "user1", 0) /* PowerPC program roms */ - ROM_LOAD16_WORD_SWAP("888a01.27p", 0x000000, 0x200000, CRC(d077890a) SHA1(08b252324cf46fbcdb95e8f9312287920cd87c5d) ) - - ROM_REGION32_BE(0x800000, "user2", 0) /* Data roms */ - ROM_LOAD32_WORD_SWAP( "676a04.16t", 0x000000, 0x200000, CRC(d7808cb6) SHA1(0668fae5bb94cc120fe196d4b18200f7b512317f) ) - ROM_LOAD32_WORD_SWAP( "676a05.14t", 0x000002, 0x200000, CRC(fb4de1ad) SHA1(f6aa4eb1b5d22901a2aaf899ed3237a9dfdc55b5) ) - ROM_LOAD32_WORD_SWAP( "888a06.12t", 0x400000, 0x200000, CRC(00cbec4d) SHA1(1ce7807d86e90edbf4eecba462a27c725f5ad862) ) - - ROM_REGION32_BE(0x800000, "user5", 0) /* CG Board Texture roms */ - ROM_LOAD32_WORD_SWAP( "888a13.8x", 0x000000, 0x400000, CRC(2292f530) SHA1(0f4d1332708fd5366a065e0a928cc9610558b42d) ) - ROM_LOAD32_WORD_SWAP( "888a14.16x", 0x000002, 0x400000, CRC(6a834a26) SHA1(d1fbd7ae6afd05f0edac4efde12a5a45aa2bc7df) ) - - ROM_REGION(0x80000, "audiocpu", 0) /* 68k program roms */ - ROM_LOAD16_WORD_SWAP( "888a08.7s", 0x000000, 0x080000, CRC(55fbea65) SHA1(ad953f758181731efccadcabc4326e6634c359e8) ) - - ROM_REGION16_LE(0x1000000, "rfsnd", 0) /* PCM sample roms */ - ROM_LOAD( "888a09.16p", 0x000000, 0x400000, CRC(11e2fed2) SHA1(24b8a367b59fedb62c56f066342f2fa87b135fc5) ) - ROM_LOAD( "888a10.14p", 0x400000, 0x400000, CRC(328ce610) SHA1(dbbc779a1890c53298c0db129d496df048929496) ) - - ROM_REGION(0x2000, "m48t58",0) - ROM_LOAD( "676eae_m48t58y.35d", 0x000000, 0x002000, CRC(f691f5ab) SHA1(e81f652c5caa2caa8bd1c6d6db488d849bda058e) ) -ROM_END - -ROM_START(racingj2) - ROM_REGION32_BE(0x200000, "user1", 0) /* PowerPC program roms */ - ROM_LOAD16_WORD_SWAP("888a01.27p", 0x000000, 0x200000, CRC(d077890a) SHA1(08b252324cf46fbcdb95e8f9312287920cd87c5d) ) - - ROM_REGION32_BE(0x800000, "user2", 0) /* Data roms */ - ROM_LOAD32_WORD_SWAP( "676a04.16t", 0x000000, 0x200000, CRC(d7808cb6) SHA1(0668fae5bb94cc120fe196d4b18200f7b512317f) ) - ROM_LOAD32_WORD_SWAP( "676a05.14t", 0x000002, 0x200000, CRC(fb4de1ad) SHA1(f6aa4eb1b5d22901a2aaf899ed3237a9dfdc55b5) ) - ROM_LOAD32_WORD_SWAP( "888a06.12t", 0x400000, 0x200000, CRC(00cbec4d) SHA1(1ce7807d86e90edbf4eecba462a27c725f5ad862) ) - - ROM_REGION32_BE(0x800000, "user5", 0) /* CG Board Texture roms */ - ROM_LOAD32_WORD_SWAP( "888a13.8x", 0x000000, 0x400000, CRC(2292f530) SHA1(0f4d1332708fd5366a065e0a928cc9610558b42d) ) - ROM_LOAD32_WORD_SWAP( "888a14.16x", 0x000002, 0x400000, CRC(6a834a26) SHA1(d1fbd7ae6afd05f0edac4efde12a5a45aa2bc7df) ) - - ROM_REGION(0x80000, "audiocpu", 0) /* 68k program roms */ - ROM_LOAD16_WORD_SWAP( "888a08.7s", 0x000000, 0x080000, CRC(55fbea65) SHA1(ad953f758181731efccadcabc4326e6634c359e8) ) - - ROM_REGION16_LE(0x1000000, "rfsnd", 0) /* PCM sample roms */ - ROM_LOAD( "888a09.16p", 0x000000, 0x400000, CRC(11e2fed2) SHA1(24b8a367b59fedb62c56f066342f2fa87b135fc5) ) - ROM_LOAD( "888a10.14p", 0x400000, 0x400000, CRC(328ce610) SHA1(dbbc779a1890c53298c0db129d496df048929496) ) - - ROM_REGION(0x2000, "m48t58",0) - ROM_LOAD( "676jae_m48t58y.35d", 0x000000, 0x002000, CRC(1aa43a1f) SHA1(814b691b8a358bf1545a13d595d17070e612e9a4) ) -ROM_END - -ROM_START(thrilld) - ROM_REGION32_BE(0x200000, "user1", 0) /* PowerPC program roms */ - ROM_LOAD16_WORD_SWAP("713be01.27p", 0x000000, 0x200000, CRC(d84a7723) SHA1(f4e9e08591b7e5e8419266dbe744d56a185384ed) ) - - ROM_REGION32_BE(0x800000, "user2", 0) /* Data roms */ - ROM_LOAD32_WORD_SWAP("713a04.16t", 0x000000, 0x200000, CRC(c994aaa8) SHA1(d82b9930a11e5384ad583684a27c95beec03cd5a) ) - ROM_LOAD32_WORD_SWAP("713a05.14t", 0x000002, 0x200000, CRC(6f1e6802) SHA1(91f8a170327e9b4ee6a64aee0c106b981a317e69) ) - - ROM_REGION32_BE(0x800000, "user5", 0) /* CG Board Texture roms */ - ROM_LOAD32_WORD_SWAP( "713a13.8x", 0x000000, 0x400000, CRC(b795c66b) SHA1(6e50de0d5cc444ffaa0fec7ada8c07f643374bb2) ) - ROM_LOAD32_WORD_SWAP( "713a14.16x", 0x000002, 0x400000, CRC(5275a629) SHA1(16fadef06975f0f3625cac8f84e2e77ed7d75e15) ) - - ROM_REGION(0x80000, "audiocpu", 0) /* 68k program roms */ - ROM_LOAD16_WORD_SWAP( "713a08.7s", 0x000000, 0x080000, CRC(6a72a825) SHA1(abeac99c5343efacabcb0cdff6d34f9f967024db) ) - - ROM_REGION16_LE(0x1000000, "rfsnd", 0) /* PCM sample roms */ - ROM_LOAD( "713a09.16p", 0x000000, 0x400000, CRC(058f250a) SHA1(63b8e60004ec49009633e86b4992c00083def9a8) ) - ROM_LOAD( "713a10.14p", 0x400000, 0x400000, CRC(27f9833e) SHA1(1540f00d2571ecb81b914c553682b67fca94bbbd) ) - - ROM_REGION(0x2000, "m48t58",0) - ROM_LOAD( "713jae_m48t58y.35d", 0x000000, 0x002000, CRC(5d8fbcb2) SHA1(74ad91544d2a200cf599a565005476623075e7d6) ) -ROM_END - -ROM_START(thrilldb) - ROM_REGION32_BE(0x200000, "user1", 0) /* PowerPC program roms */ - ROM_LOAD16_WORD_SWAP("713bb01.27p", 0x000000, 0x200000, CRC(535fe4e8) SHA1(acd8194a4dafce289dbdfd874f0b799f25aeb73f) ) - - ROM_REGION32_BE(0x800000, "user2", 0) /* Data roms */ - ROM_LOAD32_WORD_SWAP("713a04.16t", 0x000000, 0x200000, CRC(c994aaa8) SHA1(d82b9930a11e5384ad583684a27c95beec03cd5a) ) - ROM_LOAD32_WORD_SWAP("713a05.14t", 0x000002, 0x200000, CRC(6f1e6802) SHA1(91f8a170327e9b4ee6a64aee0c106b981a317e69) ) - - ROM_REGION32_BE(0x800000, "user5", 0) /* CG Board Texture roms */ - ROM_LOAD32_WORD_SWAP( "713a13.8x", 0x000000, 0x400000, CRC(b795c66b) SHA1(6e50de0d5cc444ffaa0fec7ada8c07f643374bb2) ) - ROM_LOAD32_WORD_SWAP( "713a14.16x", 0x000002, 0x400000, CRC(5275a629) SHA1(16fadef06975f0f3625cac8f84e2e77ed7d75e15) ) - - ROM_REGION(0x80000, "audiocpu", 0) /* 68k program roms */ - ROM_LOAD16_WORD_SWAP( "713a08.7s", 0x000000, 0x080000, CRC(6a72a825) SHA1(abeac99c5343efacabcb0cdff6d34f9f967024db) ) - - ROM_REGION16_LE(0x1000000, "rfsnd", 0) /* PCM sample roms */ - ROM_LOAD( "713a09.16p", 0x000000, 0x400000, CRC(058f250a) SHA1(63b8e60004ec49009633e86b4992c00083def9a8) ) - ROM_LOAD( "713a10.14p", 0x400000, 0x400000, CRC(27f9833e) SHA1(1540f00d2571ecb81b914c553682b67fca94bbbd) ) - - ROM_REGION(0x2000, "m48t58",0) - ROM_LOAD( "713jab_m48t58y.35d", 0x000000, 0x002000, CRC(5d8fbcb2) SHA1(74ad91544d2a200cf599a565005476623075e7d6) ) -ROM_END - -ROM_START(thrilldae) //incorrect version, supposed to be ver xxB and we already have that clone. May delete as games boots as JAB on rtc test. - ROM_REGION32_BE(0x200000, "user1", 0) /* PowerPC program roms */ - ROM_LOAD16_WORD_SWAP("713bb01.27p", 0x000000, 0x200000, CRC(535fe4e8) SHA1(acd8194a4dafce289dbdfd874f0b799f25aeb73f) ) - - ROM_REGION32_BE(0x800000, "user2", 0) /* Data roms */ - ROM_LOAD32_WORD_SWAP("713a04.16t", 0x000000, 0x200000, CRC(c994aaa8) SHA1(d82b9930a11e5384ad583684a27c95beec03cd5a) ) - ROM_LOAD32_WORD_SWAP("713a05.14t", 0x000002, 0x200000, CRC(6f1e6802) SHA1(91f8a170327e9b4ee6a64aee0c106b981a317e69) ) - - ROM_REGION32_BE(0x800000, "user5", 0) /* CG Board Texture roms */ - ROM_LOAD32_WORD_SWAP( "713a13.8x", 0x000000, 0x400000, CRC(b795c66b) SHA1(6e50de0d5cc444ffaa0fec7ada8c07f643374bb2) ) - ROM_LOAD32_WORD_SWAP( "713a14.16x", 0x000002, 0x400000, CRC(5275a629) SHA1(16fadef06975f0f3625cac8f84e2e77ed7d75e15) ) - - ROM_REGION(0x80000, "audiocpu", 0) /* 68k program roms */ - ROM_LOAD16_WORD_SWAP( "713a08.7s", 0x000000, 0x080000, CRC(6a72a825) SHA1(abeac99c5343efacabcb0cdff6d34f9f967024db) ) - - ROM_REGION16_LE(0x1000000, "rfsnd", 0) /* PCM sample roms */ - ROM_LOAD( "713a09.16p", 0x000000, 0x400000, CRC(058f250a) SHA1(63b8e60004ec49009633e86b4992c00083def9a8) ) - ROM_LOAD( "713a10.14p", 0x400000, 0x400000, CRC(27f9833e) SHA1(1540f00d2571ecb81b914c553682b67fca94bbbd) ) - - ROM_REGION(0x2000, "m48t58",0) - ROM_LOAD( "713eaa_m48t58y.35d", 0x000000, 0x002000, BAD_DUMP CRC(056ea8fa) SHA1(23574e0c1d011dab8644f3d98763d4a2d11a05b3) ) -ROM_END - -/*****************************************************************************/ - -GAME( 1998, racingj, 0, nwktr, nwktr, nwktr_state, init_nwktr, ROT0, "Konami", "Racing Jam (JAC)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NODEVICE_LAN ) -GAME( 1998, racingj2, racingj, nwktr, nwktr, nwktr_state, init_nwktr, ROT0, "Konami", "Racing Jam: Chapter 2 (EAE)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NODEVICE_LAN ) -GAME( 1998, racingj2j, racingj, nwktr, nwktr, nwktr_state, init_nwktr, ROT0, "Konami", "Racing Jam: Chapter 2 (JAE)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NODEVICE_LAN ) -GAME( 1998, thrilld, 0, thrilld, nwktr, nwktr_state, init_nwktr, ROT0, "Konami", "Thrill Drive (JAE)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NODEVICE_LAN ) -GAME( 1998, thrilldb, thrilld, thrilld, nwktr, nwktr_state, init_nwktr, ROT0, "Konami", "Thrill Drive (JAB)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NODEVICE_LAN ) -GAME( 1998, thrilldae, thrilld, thrilld, nwktr, nwktr_state, init_nwktr, ROT0, "Konami", "Thrill Drive (EAA)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NODEVICE_LAN ) |