From dcdde1fb5b32589c677ee4f71fe982e6a1621b36 Mon Sep 17 00:00:00 2001 From: cam900 Date: Sat, 1 Feb 2025 15:44:15 +0900 Subject: -konami/konppc.cpp, konami/gticlub.cpp, konami/hornet.cpp, konami/nwk-tr.cpp, konami/zr107.cpp: Cleaned up code: (#13300) * Removed hard-coded tags and reduced code duplication. * Improved save state support, suppress side effects for debugger reads. * Increased size of CG board ROM regions to avoid out-of-bounds errors if higher banks are selected. * Use bitfield extraction helpers, reduced literal tag usage, use logmacro.h for logging, made some variables const. * Reduced preprocessor macros, updated comments. -konami/gticlub.cpp: Removed unnecessary code. -konami/hornet.cpp: Split driver state class for different configurations, moved bank configuration into machine_start(). -konami/nwk-tr.cpp: Split palette per CG boards (K001604 also has palette RAM interface?). --- src/mame/konami/gticlub.cpp | 113 ++++----- src/mame/konami/hornet.cpp | 555 +++++++++++++++++++++++++------------------- src/mame/konami/konppc.cpp | 387 ++++++++++++------------------ src/mame/konami/konppc.h | 103 ++++---- src/mame/konami/nwk-tr.cpp | 245 +++++++++---------- src/mame/konami/zr107.cpp | 87 ++++--- 6 files changed, 739 insertions(+), 751 deletions(-) diff --git a/src/mame/konami/gticlub.cpp b/src/mame/konami/gticlub.cpp index a042b84d352..81bbd0c30d8 100644 --- a/src/mame/konami/gticlub.cpp +++ b/src/mame/konami/gticlub.cpp @@ -124,7 +124,7 @@ Check zr107.cpp for details on the top board. Operation Thunder Hurricane uses an additional top board gun/analog controls. Analog inputs are controlled by two CCD cameras, one from each gun. This specific variation uses a K056230 for networking between the cpu board to receive -the analog values that way. Teraburst uses a different variation of this I/O board replacing the K056230 with a K056800 (see hornet.cpp). +the analog values that way. Teraburst uses a different variation of this I/O board replacing the K056230 with a K056800 (see konami/hornet.cpp). GN680 PWB(E)403381B |------------------------------------------| @@ -245,6 +245,16 @@ Hang Pilot (uses an unknown but similar video board) 12W #include "speaker.h" +#define LOG_SYSREG (1 << 1) + +#define LOG_ALL (LOG_SYSREG) + +#define VERBOSE (0) + +#include "logmacro.h" + +#define LOGSYSREG(...) LOGMASKED(LOG_SYSREG, __VA_ARGS__) + namespace { #define DEBUG_GTI (0) @@ -256,7 +266,7 @@ protected: : driver_device(mconfig, type, tag) , m_maincpu(*this, "maincpu") , m_audiocpu(*this, "audiocpu") - , m_dsp(*this, {"dsp", "dsp2"}) // TODO: hardcoded tags in machine/konpc.cpp + , m_dsp(*this, "dsp%u", 1U) , m_k056800(*this, "k056800") , m_adc1038(*this, "adc1038") , m_eeprom(*this, "eeprom") @@ -266,6 +276,7 @@ protected: , m_k001604(*this, "k001604%u", 1U) , m_work_ram(*this, "work_ram") , m_sharc_dataram(*this, "sharc%u_dataram", 0U) + , m_cgboard_bank(*this, "cgboard_%u_bank", 0U) , m_analog(*this, "AN%u", 0U) , m_ports(*this, "IN%u", 0) , m_pcb_digit(*this, "pcbdigit%u", 0U) @@ -290,12 +301,14 @@ protected: optional_device_array m_k001604; required_shared_ptr m_work_ram; optional_shared_ptr_array m_sharc_dataram; + optional_memory_bank_array<2> m_cgboard_bank; optional_ioport_array<4> m_analog; required_ioport_array<4> m_ports; output_finder<2> m_pcb_digit; memory_view m_cg_view; - static rgb_t gticlub_XR5G5B5(uint32_t raw); + emu_timer *m_sound_irq_timer = nullptr; + uint8_t sysreg_r(offs_t offset); void sysreg_w(offs_t offset, uint8_t data); void soundtimer_en_w(uint16_t data); @@ -306,8 +319,6 @@ protected: int adc1038_input_callback(int input); void sound_memmap(address_map &map) ATTR_COLD; - - emu_timer *m_sound_irq_timer = nullptr; }; // with GN678 Video board @@ -361,7 +372,6 @@ private: }; // with Voodoo based video board - class hangplt_state : public gticlub_base_state { public: @@ -382,16 +392,10 @@ private: template uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); void hangplt_map(address_map &map) ATTR_COLD; - void hangplt_sharc0_map(address_map &map) ATTR_COLD; - void hangplt_sharc1_map(address_map &map) ATTR_COLD; + template void hangplt_sharc_map(address_map &map) ATTR_COLD; }; -rgb_t gticlub_base_state::gticlub_XR5G5B5(uint32_t raw) -{ - return rgb_t(pal5bit(raw >> 10), pal5bit(raw >> 5), pal5bit(raw >> 0)); -} - /******************************************************************/ uint8_t gticlub_base_state::sysreg_r(offs_t offset) @@ -420,7 +424,8 @@ uint8_t gticlub_base_state::sysreg_r(offs_t offset) } default: - osd_printf_debug("sysreg_r %d\n", offset); + if (!machine().side_effects_disabled()) + LOGSYSREG("sysreg_r %d\n", offset); break; } return 0; @@ -436,20 +441,20 @@ void gticlub_base_state::sysreg_w(offs_t offset, uint8_t data) break; case 3: - m_eeprom->di_write((data & 0x01) ? 1 : 0); - m_eeprom->clk_write((data & 0x02) ? ASSERT_LINE : CLEAR_LINE); - m_eeprom->cs_write((data & 0x04) ? ASSERT_LINE : CLEAR_LINE); + m_eeprom->di_write(BIT(data, 0)); + m_eeprom->clk_write(BIT(data, 1)); + m_eeprom->cs_write(BIT(data, 2)); break; case 4: - if (data & 0x80) // CG Board 1 IRQ Ack + if (BIT(data, 7)) // CG Board 1 IRQ Ack m_maincpu->set_input_line(INPUT_LINE_IRQ1, CLEAR_LINE); - if (data & 0x40) // CG Board 0 IRQ Ack + if (BIT(data, 6)) // CG Board 0 IRQ Ack m_maincpu->set_input_line(INPUT_LINE_IRQ0, CLEAR_LINE); - m_adc1038->di_write((data >> 0) & 1); - m_adc1038->clk_write((data >> 1) & 1); + m_adc1038->di_write(BIT(data, 0)); + m_adc1038->clk_write(BIT(data, 1)); m_konppc->set_cgboard_id((data >> 4) & 0x3); m_cg_view.select(m_konppc->get_cgboard_id() ? 1 : 0); @@ -470,7 +475,7 @@ TIMER_CALLBACK_MEMBER(gticlub_base_state::sound_irq) void gticlub_base_state::soundtimer_en_w(uint16_t data) { - if (data & 1) + if (BIT(data, 0)) { // Reset and disable timer m_sound_irq_timer->adjust(attotime::from_usec(m_sound_timer_usec)); @@ -585,34 +590,23 @@ void thunderh_state::gn680_memmap(address_map &map) void gticlub_state::sharc_map(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(0x400000, 0x41ffff).rw(m_konppc, FUNC(konppc_device::cgboard_shared_sharc_r<0>), FUNC(konppc_device::cgboard_shared_sharc_w<0>)); map(0x500000, 0x5fffff).ram().share(m_sharc_dataram[0]).lr32(NAME([this](offs_t offset) { return m_sharc_dataram[0][offset] & 0xffff; })); 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)); -} - -void hangplt_state::hangplt_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).ram().share(m_sharc_dataram[0]).lr32(NAME([this](offs_t offset) { return m_sharc_dataram[0][offset] & 0xffff; })); - map(0x1400000, 0x14fffff).ram(); - map(0x2400000, 0x27fffff).r(m_konppc, FUNC(konppc_device::nwk_voodoo_0_r)).w(m_voodoo[0], FUNC(generic_voodoo_device::write)); - map(0x3400000, 0x34000ff).rw(m_konppc, FUNC(konppc_device::cgboard_0_comm_sharc_r), FUNC(konppc_device::cgboard_0_comm_sharc_w)); - map(0x3401000, 0x34fffff).w(m_konppc, FUNC(konppc_device::nwk_fifo_0_w)); - map(0x3500000, 0x3507fff).rw(m_konppc, FUNC(konppc_device::K033906_0_r), FUNC(konppc_device::K033906_0_w)); - map(0x3600000, 0x37fffff).bankr("master_cgboard_bank"); + map(0x700000, 0x7000ff).rw(m_konppc, FUNC(konppc_device::cgboard_comm_sharc_r<0>), FUNC(konppc_device::cgboard_comm_sharc_w<0>)); } -void hangplt_state::hangplt_sharc1_map(address_map &map) +template +void hangplt_state::hangplt_sharc_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).ram().share(m_sharc_dataram[1]).lr32(NAME([this](offs_t offset) { return m_sharc_dataram[1][offset] & 0xffff; })); + map(0x0400000, 0x041ffff).rw(m_konppc, FUNC(konppc_device::cgboard_shared_sharc_r), FUNC(konppc_device::cgboard_shared_sharc_w)); + map(0x0500000, 0x05fffff).ram().share(m_sharc_dataram[Board]).lr32(NAME([this](offs_t offset) { return m_sharc_dataram[Board][offset] & 0xffff; })); map(0x1400000, 0x14fffff).ram(); - map(0x2400000, 0x27fffff).r(m_konppc, FUNC(konppc_device::nwk_voodoo_1_r)).w(m_voodoo[1], FUNC(generic_voodoo_device::write)); - map(0x3400000, 0x34000ff).rw(m_konppc, FUNC(konppc_device::cgboard_1_comm_sharc_r), FUNC(konppc_device::cgboard_1_comm_sharc_w)); - map(0x3401000, 0x34fffff).w(m_konppc, FUNC(konppc_device::nwk_fifo_1_w)); - map(0x3500000, 0x3507fff).rw(m_konppc, FUNC(konppc_device::K033906_1_r), FUNC(konppc_device::K033906_1_w)); - map(0x3600000, 0x37fffff).bankr("slave_cgboard_bank"); + map(0x2400000, 0x27fffff).r(m_konppc, FUNC(konppc_device::nwk_voodoo_r)).w(m_voodoo[Board], FUNC(generic_voodoo_device::write)); + map(0x3400000, 0x34000ff).rw(m_konppc, FUNC(konppc_device::cgboard_comm_sharc_r), FUNC(konppc_device::cgboard_comm_sharc_w)); + map(0x3401000, 0x34fffff).w(m_konppc, FUNC(konppc_device::nwk_voodoo_fifo_w)); + map(0x3500000, 0x3507fff).rw(m_konppc, FUNC(konppc_device::cgboard_k033906_r), FUNC(konppc_device::cgboard_k033906_w)); + map(0x3600000, 0x37fffff).bankr(m_cgboard_bank[Board]); } /*****************************************************************************/ @@ -918,7 +912,7 @@ void gticlub_state::gticlub(machine_config &config) screen.set_visarea(40, 511+40, 28, 383+28); // needs CRTC emulation screen.set_screen_update(FUNC(gticlub_state::screen_update)); - PALETTE(config, m_palette[0]).set_format(4, >iclub_state::gticlub_XR5G5B5, 16384); + PALETTE(config, m_palette[0]).set_format(4, raw_to_rgb_converter::standard_rgb_decoder<5,5,5, 10,5,0>, 16384); K001604(config, m_k001604[0], 0); m_k001604[0]->set_palette(m_palette[0]); @@ -944,8 +938,9 @@ void gticlub_state::gticlub(machine_config &config) rfsnd.add_route(1, "rspeaker", 1.0); KONPPC(config, m_konppc, 0); + m_konppc->set_dsp_tag(0, m_dsp[0]); m_konppc->set_num_boards(1); - m_konppc->set_cbboard_type(konppc_device::CGBOARD_TYPE_GTICLUB); + m_konppc->set_cgboard_type(konppc_device::CGBOARD_TYPE_GTICLUB); } void thunderh_state::thunderh(machine_config &config) @@ -978,11 +973,11 @@ void hangplt_state::hangplt(machine_config &config) ADSP21062(config, m_dsp[0], XTAL(36'000'000)); m_dsp[0]->set_boot_mode(adsp21062_device::BOOT_MODE_EPROM); - m_dsp[0]->set_addrmap(AS_DATA, &hangplt_state::hangplt_sharc0_map); + m_dsp[0]->set_addrmap(AS_DATA, &hangplt_state::hangplt_sharc_map<0>); ADSP21062(config, m_dsp[1], XTAL(36'000'000)); m_dsp[1]->set_boot_mode(adsp21062_device::BOOT_MODE_EPROM); - m_dsp[1]->set_addrmap(AS_DATA, &hangplt_state::hangplt_sharc1_map); + m_dsp[1]->set_addrmap(AS_DATA, &hangplt_state::hangplt_sharc_map<1>); config.set_maximum_quantum(attotime::from_hz(6000)); @@ -1016,8 +1011,8 @@ void hangplt_state::hangplt(machine_config &config) K033906(config, "k033906_2", 0, m_voodoo[1]); // video hardware - PALETTE(config, m_palette[0]).set_format(4, >iclub_state::gticlub_XR5G5B5, 16384); - PALETTE(config, m_palette[1]).set_format(4, >iclub_state::gticlub_XR5G5B5, 16384); + PALETTE(config, m_palette[0]).set_format(4, raw_to_rgb_converter::standard_rgb_decoder<5,5,5, 10,5,0>, 16384); + PALETTE(config, m_palette[1]).set_format(4, raw_to_rgb_converter::standard_rgb_decoder<5,5,5, 10,5,0>, 16384); screen_device &lscreen(SCREEN(config, "lscreen", SCREEN_TYPE_RASTER)); lscreen.set_refresh_hz(60); @@ -1048,8 +1043,16 @@ void hangplt_state::hangplt(machine_config &config) rfsnd.add_route(1, "rspeaker", 1.0); KONPPC(config, m_konppc, 0); + m_konppc->set_dsp_tag(0, m_dsp[0]); + m_konppc->set_dsp_tag(1, m_dsp[1]); + m_konppc->set_k033906_tag(0, "k033906_1"); + m_konppc->set_k033906_tag(1, "k033906_2"); + m_konppc->set_voodoo_tag(0, m_voodoo[0]); + m_konppc->set_voodoo_tag(1, m_voodoo[1]); + m_konppc->set_texture_bank_tag(0, m_cgboard_bank[0]); + m_konppc->set_texture_bank_tag(1, m_cgboard_bank[1]); m_konppc->set_num_boards(2); - m_konppc->set_cbboard_type(konppc_device::CGBOARD_TYPE_HANGPLT); + m_konppc->set_cgboard_type(konppc_device::CGBOARD_TYPE_HANGPLT); } /*************************************************************************/ @@ -1348,7 +1351,7 @@ ROM_START( hangplt ) // Japan version JAB ROM_LOAD( "685a09.9s", 0x000000, 0x400000, CRC(b8ae40aa) SHA1(eee27a8929e0e805f1045fd9638e661b36a1e3c7) ) ROM_LOAD( "685a10.7s", 0x400000, 0x400000, CRC(fef3dc36) SHA1(566c7469fc452b5965a31fa42291082ec8e48a24) ) - ROM_REGION(0x800000, "master_cgboard", 0) // texture roms + ROM_REGION(0x1000000, "cgboard_0", ROMREGION_ERASE00) // texture roms ROM_LOAD32_WORD( "685a13.4w", 0x000002, 0x400000, CRC(06329af4) SHA1(76cad9db604751ce48bb67bfd29e57bac0ee9a16) ) ROM_LOAD32_WORD( "685a14.12w", 0x000000, 0x400000, CRC(87437739) SHA1(0d45637af40938a54d5efd29c125b0fafd55f9a4) ) @@ -1374,7 +1377,7 @@ ROM_START( hangpltu ) // USA version UAA ROM_LOAD( "685a09.9s", 0x000000, 0x400000, CRC(b8ae40aa) SHA1(eee27a8929e0e805f1045fd9638e661b36a1e3c7) ) ROM_LOAD( "685a10.7s", 0x400000, 0x400000, CRC(fef3dc36) SHA1(566c7469fc452b5965a31fa42291082ec8e48a24) ) - ROM_REGION(0x800000, "master_cgboard", 0) // texture roms + ROM_REGION(0x1000000, "cgboard_0", ROMREGION_ERASE00) // texture roms ROM_LOAD32_WORD( "685a13.4w", 0x000002, 0x400000, CRC(06329af4) SHA1(76cad9db604751ce48bb67bfd29e57bac0ee9a16) ) ROM_LOAD32_WORD( "685a14.12w", 0x000000, 0x400000, CRC(87437739) SHA1(0d45637af40938a54d5efd29c125b0fafd55f9a4) ) @@ -1390,8 +1393,8 @@ void gticlub_state::init_gticlub() void hangplt_state::init_hangplt_common() { - m_konppc->set_cgboard_texture_bank(0, "master_cgboard_bank", memregion("master_cgboard")->base()); - m_konppc->set_cgboard_texture_bank(1, "slave_cgboard_bank", memregion("master_cgboard")->base()); + m_cgboard_bank[0]->configure_entries(0, 2, memregion("cgboard_0")->base(), 0x800000); + m_cgboard_bank[1]->configure_entries(0, 2, memregion("cgboard_0")->base(), 0x800000); } void hangplt_state::init_hangplt() //fixme: remove hacks and actually emulate the step lock. Possibly similar to Alpine Racer 1/2 and Alpine Surfer? diff --git a/src/mame/konami/hornet.cpp b/src/mame/konami/hornet.cpp index a89d074668f..c1d047efa1a 100644 --- a/src/mame/konami/hornet.cpp +++ b/src/mame/konami/hornet.cpp @@ -376,6 +376,18 @@ Jumpers set on GFX PCB to scope monitor: #include "layout/generic.h" +#define LOG_SYSREG (1 << 1) +#define LOG_COMM (1 << 2) + +#define LOG_ALL (LOG_SYSREG | LOG_COMM) + +#define VERBOSE (0) + +#include "logmacro.h" + +#define LOGSYSREG(...) LOGMASKED(LOG_SYSREG, __VA_ARGS__) +#define LOGCOMM(...) LOGMASKED(LOG_COMM, __VA_ARGS__) + namespace { class hornet_state : public driver_device @@ -388,50 +400,41 @@ public: m_maincpu(*this, "maincpu"), m_audiocpu(*this, "audiocpu"), m_k056800(*this, "k056800"), - m_gn680(*this, "gn680"), - m_dsp(*this, {"dsp", "dsp2"}), // TODO: hardcoded tags in machine/konpc.cpp + m_dsp(*this, "dsp%u", 1U), m_k037122(*this, "k037122_%u", 0U), m_adc12138(*this, "adc12138"), m_adc12138_sscope(*this, "adc12138_sscope"), m_konppc(*this, "konppc"), - m_lan_eeprom(*this, "lan_eeprom"), m_x76f041(*this, "security_eeprom"), m_voodoo(*this, "voodoo%u", 0U), + m_watchdog(*this, "watchdog"), + m_jvs_host(*this, "jvs_host"), + m_k033906(*this, "k033906_%u", 1U), + m_gn676_lan(*this, "gn676_lan"), + m_cgboard_bank(*this, "cgboard_%u_bank", 0U), m_in(*this, "IN%u", 0U), m_dsw(*this, "DSW"), m_eepromout(*this, "EEPROMOUT"), m_analog(*this, "ANALOG%u", 1U), m_pcb_digit(*this, "pcbdigit%u", 0U), - m_comm_board_rom(*this, "comm_board"), - m_comm_bank(*this, "comm_bank"), - m_lan_ds2401(*this, "lan_serial_id"), - m_watchdog(*this, "watchdog"), - m_jvs_host(*this, "jvs_host"), - m_cg_view(*this, "cg_view"), - m_k033906(*this, "k033906_%u", 1U), - m_gn676_lan(*this, "gn676_lan") + m_cg_view(*this, "cg_view") { } void hornet(machine_config &config); void hornet_x76(machine_config &config); void hornet_lan(machine_config &config); void nbapbp(machine_config &config); - void terabrst(machine_config &config); void sscope(machine_config &config); - void sscope2(machine_config &config); void sscope_voodoo2(machine_config& config); - void sscope2_voodoo1(machine_config& config); void init_hornet(); void init_sscope(); - void init_sscope2(); void init_gradius4(); protected: virtual void machine_start() override ATTR_COLD; virtual void machine_reset() override ATTR_COLD; -private: // TODO: Needs verification on real hardware static const int m_sound_timer_usec = 2800; @@ -440,69 +443,116 @@ private: required_device m_maincpu; required_device m_audiocpu; required_device m_k056800; - optional_device m_gn680; optional_device_array m_dsp; optional_device_array m_k037122; required_device m_adc12138; optional_device m_adc12138_sscope; required_device m_konppc; - optional_device m_lan_eeprom; optional_device m_x76f041; optional_device_array m_voodoo; + required_device m_watchdog; + required_device m_jvs_host; + optional_device_array m_k033906; + optional_device m_gn676_lan; + optional_memory_bank_array<2> m_cgboard_bank; required_ioport_array<3> m_in; required_ioport m_dsw; optional_ioport m_eepromout; optional_ioport_array<5> m_analog; output_finder<2> m_pcb_digit; - optional_region_ptr m_comm_board_rom; - optional_memory_bank m_comm_bank; - optional_device m_lan_ds2401; - required_device m_watchdog; - required_device m_jvs_host; memory_view m_cg_view; - optional_device_array m_k033906; - optional_device m_gn676_lan; - - emu_timer *m_sound_irq_timer; - uint16_t m_gn680_latch; - uint16_t m_gn680_ret0; - uint16_t m_gn680_ret1; - uint16_t m_gn680_check; - uint16_t m_gn680_reg0e; + emu_timer *m_sound_irq_timer = nullptr; - bool m_sndres; + bool m_sndres = false; uint8_t sysreg_r(offs_t offset); void sysreg_w(offs_t offset, uint8_t data); - void comm1_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0); - void comm_rombank_w(uint32_t data); - uint32_t comm0_unk_r(offs_t offset, uint32_t mem_mask = ~0); - uint16_t gun_r(offs_t offset); - void gun_w(offs_t offset, uint16_t data); - void gn680_sysctrl(uint16_t data); - uint16_t gn680_latch_r(); - void gn680_latch_w(offs_t offset, uint16_t data); void soundtimer_en_w(uint16_t data); void soundtimer_count_w(uint16_t data); double adc12138_input_callback(uint8_t input); void jamma_jvs_w(uint8_t data); - uint8_t comm_eeprom_r(); - void comm_eeprom_w(uint8_t data); template uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); TIMER_CALLBACK_MEMBER(sound_irq); + void hornet_map(address_map &map) ATTR_COLD; void hornet_lan_map(address_map &map) ATTR_COLD; - void terabrst_map(address_map &map) ATTR_COLD; void sscope_map(address_map &map) ATTR_COLD; - void sscope2_map(address_map &map) ATTR_COLD; - void gn680_memmap(address_map &map) ATTR_COLD; - void sharc0_map(address_map &map) ATTR_COLD; - void sharc1_map(address_map &map) ATTR_COLD; + template void sharc_map(address_map &map) ATTR_COLD; void sound_memmap(address_map &map) ATTR_COLD; }; +// with GN680 I/O board +class terabrst_state : public hornet_state +{ +public: + terabrst_state(const machine_config &mconfig, device_type type, const char *tag) : + hornet_state(mconfig, type, tag), + m_gn680(*this, "gn680") + { } + + void terabrst(machine_config &config); + +protected: + virtual void machine_start() override ATTR_COLD; + virtual void machine_reset() override ATTR_COLD; + +private: + required_device m_gn680; + + uint16_t m_gn680_latch = 0; + uint16_t m_gn680_ret0 = 0; + uint16_t m_gn680_ret1 = 0; + uint16_t m_gn680_check = 0; + uint16_t m_gn680_reg0e = 0; + + uint16_t gun_r(offs_t offset); + void gun_w(offs_t offset, uint16_t data); + void gn680_sysctrl(uint16_t data); + uint16_t gn680_latch_r(); + void gn680_latch_w(offs_t offset, uint16_t data); + + void terabrst_map(address_map &map) ATTR_COLD; + void gn680_memmap(address_map &map) ATTR_COLD; +}; + +// with GQ931 LAN board +class sscope2_state : public hornet_state +{ +public: + sscope2_state(const machine_config &mconfig, device_type type, const char *tag) : + hornet_state(mconfig, type, tag), + m_lan_eeprom(*this, "lan_eeprom"), + m_lan_ds2401(*this, "lan_serial_id"), + m_comm_board_rom(*this, "comm_board"), + m_comm_bank(*this, "comm_bank") + { } + + void sscope2(machine_config &config); + void sscope2_voodoo1(machine_config& config); + + void init_sscope2(); + +protected: + virtual void machine_start() override ATTR_COLD; + virtual void machine_reset() override ATTR_COLD; + +private: + required_device m_lan_eeprom; + required_device m_lan_ds2401; + required_region_ptr m_comm_board_rom; + required_memory_bank m_comm_bank; + + void comm1_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0); + void comm_rombank_w(uint32_t data); + uint32_t comm0_unk_r(offs_t offset, uint32_t mem_mask = ~0); + uint8_t comm_eeprom_r(); + void comm_eeprom_w(uint8_t data); + + void sscope2_map(address_map &map) ATTR_COLD; +}; + template uint32_t hornet_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) @@ -574,7 +624,7 @@ void hornet_state::sysreg_w(offs_t offset, uint8_t data) break; case 2: // Parallel data register - osd_printf_debug("Parallel data = %02X\n", data); + LOGSYSREG("Parallel data = %02X\n", data); if (m_adc12138_sscope) { @@ -602,7 +652,7 @@ void hornet_state::sysreg_w(offs_t offset, uint8_t data) if (m_x76f041) m_x76f041->write_cs(BIT(data, 6)); - osd_printf_debug("System register 0 = %02X\n", data); + LOGSYSREG("System register 0 = %02X\n", data); break; case 4: // System Register 1 @@ -641,8 +691,8 @@ void hornet_state::sysreg_w(offs_t offset, uint8_t data) m_adc12138->sclk_w(BIT(data, 0)); } - bool sndres = (data & 0x80) ? true : false; - m_audiocpu->set_input_line(INPUT_LINE_RESET, (sndres) ? CLEAR_LINE : ASSERT_LINE); + bool const sndres = BIT(data, 7); + m_audiocpu->set_input_line(INPUT_LINE_RESET, sndres ? CLEAR_LINE : ASSERT_LINE); if (sndres != m_sndres) { // clear interrupts when reset line is triggered @@ -651,7 +701,7 @@ void hornet_state::sysreg_w(offs_t offset, uint8_t data) m_sndres = sndres; - osd_printf_debug("System register 1 = %02X\n", data); + LOGSYSREG("System register 1 = %02X\n", data); break; } @@ -666,7 +716,7 @@ void hornet_state::sysreg_w(offs_t offset, uint8_t data) 0x02 = DEEN0 0x01 = ATCK0 */ - osd_printf_debug("Sound control register = %02X\n", data); + LOGSYSREG("Sound control register = %02X\n", data); break; case 6: // WDT Register @@ -691,9 +741,9 @@ void hornet_state::sysreg_w(offs_t offset, uint8_t data) // hasn't been called so they don't appear to be responsible for clearing IRQs, // and ends up clearing IRQs out of turn. // The IRQ0 clear bit is also questionable but games run too fast and crash without it. - // if (data & 0x80) + // if (BIT(data, 7)) // m_maincpu->set_input_line(INPUT_LINE_IRQ1, CLEAR_LINE); - if (data & 0x40) + if (BIT(data, 6)) m_maincpu->set_input_line(INPUT_LINE_IRQ0, CLEAR_LINE); m_konppc->set_cgboard_id((data >> 4) & 3); @@ -704,7 +754,7 @@ void hornet_state::sysreg_w(offs_t offset, uint8_t data) /*****************************************************************************/ -uint8_t hornet_state::comm_eeprom_r() +uint8_t sscope2_state::comm_eeprom_r() { uint8_t r = 0; r |= (m_lan_eeprom->do_read() & 1) << 1; @@ -712,32 +762,31 @@ uint8_t hornet_state::comm_eeprom_r() return r; } -void hornet_state::comm_eeprom_w(uint8_t data) +void sscope2_state::comm_eeprom_w(uint8_t data) { m_eepromout->write(data, 0xff); - m_lan_ds2401->write((data >> 4) & 1); + m_lan_ds2401->write(BIT(data, 4)); } -void hornet_state::comm1_w(offs_t offset, uint32_t data, uint32_t mem_mask) +void sscope2_state::comm1_w(offs_t offset, uint32_t data, uint32_t mem_mask) { - printf("comm1_w: %08X, %08X, %08X\n", offset, data, mem_mask); + LOGCOMM("comm1_w: %08X = %08X & %08X\n", offset, data, mem_mask); } -void hornet_state::comm_rombank_w(uint32_t data) +void sscope2_state::comm_rombank_w(uint32_t data) { - int bank = data >> 24; - if (m_comm_board_rom.found()) - m_comm_bank->set_entry(bank & 0x7f); + m_comm_bank->set_entry((data >> 24) & 0x7f); } -uint32_t hornet_state::comm0_unk_r(offs_t offset, uint32_t mem_mask) +uint32_t sscope2_state::comm0_unk_r(offs_t offset, uint32_t mem_mask) { -// printf("comm0_unk_r: %08X, %08X\n", offset, mem_mask); + if (!machine().side_effects_disabled()) + LOGCOMM("comm0_unk_r: %08X & %08X\n", offset, mem_mask); return 0xffffffff; } -uint16_t hornet_state::gun_r(offs_t offset) +uint16_t terabrst_state::gun_r(offs_t offset) { uint16_t r = 0; @@ -751,7 +800,7 @@ uint16_t hornet_state::gun_r(offs_t offset) // Parts of Player 2's Y axis value is included with every read, // so it doesn't have its own index for reading. - int16_t p2y = (int16_t)m_analog[3].read_safe(0) - 220; + int16_t const p2y = (int16_t)m_analog[3].read_safe(0) - 220; r = m_gn680_check; @@ -778,7 +827,8 @@ uint16_t hornet_state::gun_r(offs_t offset) break; case 1: r &= 0xff; - m_gn680_check ^= 0x8000; // Must be in sync with the game every read or the update will be rejected + if (!machine().side_effects_disabled()) + m_gn680_check ^= 0x8000; // Must be in sync with the game every read or the update will be rejected break; } } @@ -793,7 +843,7 @@ uint16_t hornet_state::gun_r(offs_t offset) return r; } -void hornet_state::gun_w(offs_t offset, uint16_t data) +void terabrst_state::gun_w(offs_t offset, uint16_t data) { if (offset == 0) { @@ -817,7 +867,7 @@ TIMER_CALLBACK_MEMBER(hornet_state::sound_irq) void hornet_state::soundtimer_en_w(uint16_t data) { - if (data & 1) + if (BIT(data, 0)) { // Reset and disable timer m_sound_irq_timer->adjust(attotime::from_usec(m_sound_timer_usec)); @@ -865,10 +915,10 @@ void hornet_state::hornet_lan_map(address_map &map) map(0x7d050000, 0x7d05ffff).rw(m_gn676_lan, FUNC(konami_gn676_lan_device::lanc2_r), FUNC(konami_gn676_lan_device::lanc2_w)); } -void hornet_state::terabrst_map(address_map &map) +void terabrst_state::terabrst_map(address_map &map) { hornet_map(map); - map(0x74080000, 0x7408000f).rw(FUNC(hornet_state::gun_r), FUNC(hornet_state::gun_w)); + map(0x74080000, 0x7408000f).rw(FUNC(terabrst_state::gun_r), FUNC(terabrst_state::gun_w)); } void hornet_state::sscope_map(address_map &map) @@ -880,14 +930,14 @@ void hornet_state::sscope_map(address_map &map) m_cg_view[1](0x74040000, 0x7407ffff).rw(m_k037122[1], FUNC(k037122_device::char_r), FUNC(k037122_device::char_w)); } -void hornet_state::sscope2_map(address_map &map) +void sscope2_state::sscope2_map(address_map &map) { sscope_map(map); - map(0x7d040004, 0x7d040007).rw(FUNC(hornet_state::comm_eeprom_r), FUNC(hornet_state::comm_eeprom_w)); + map(0x7d040004, 0x7d040007).rw(FUNC(sscope2_state::comm_eeprom_r), FUNC(sscope2_state::comm_eeprom_w)); map(0x7d042000, 0x7d043fff).ram(); // COMM BOARD 0 - map(0x7d044000, 0x7d044007).r(FUNC(hornet_state::comm0_unk_r)); - map(0x7d048000, 0x7d048003).w(FUNC(hornet_state::comm1_w)); - map(0x7d04a000, 0x7d04a003).w(FUNC(hornet_state::comm_rombank_w)); + map(0x7d044000, 0x7d044007).r(FUNC(sscope2_state::comm0_unk_r)); + map(0x7d048000, 0x7d048003).w(FUNC(sscope2_state::comm1_w)); + map(0x7d04a000, 0x7d04a003).w(FUNC(sscope2_state::comm_rombank_w)); map(0x7d050000, 0x7d05ffff).bankr(m_comm_bank); // COMM BOARD 1 } @@ -907,20 +957,21 @@ void hornet_state::sound_memmap(address_map &map) /*****************************************************************************/ -void hornet_state::gn680_sysctrl(uint16_t data) +void terabrst_state::gn680_sysctrl(uint16_t data) { // bit 15 = watchdog toggle // lower 4 bits = LEDs? } -uint16_t hornet_state::gn680_latch_r() +uint16_t terabrst_state::gn680_latch_r() { - m_gn680->set_input_line(M68K_IRQ_6, CLEAR_LINE); + if (!machine().side_effects_disabled()) + m_gn680->set_input_line(M68K_IRQ_6, CLEAR_LINE); return m_gn680_latch; } -void hornet_state::gn680_latch_w(offs_t offset, uint16_t data) +void terabrst_state::gn680_latch_w(offs_t offset, uint16_t data) { if (offset) { @@ -935,38 +986,28 @@ void hornet_state::gn680_latch_w(offs_t offset, uint16_t data) // WORD at 30000e: IRQ 4 tests bits 6 and 7, IRQ5 tests bits 4 and 5 // (vsync and hsync status for each of the two screens?) -void hornet_state::gn680_memmap(address_map &map) +void terabrst_state::gn680_memmap(address_map &map) { map(0x000000, 0x01ffff).rom(); map(0x200000, 0x203fff).ram(); - map(0x300000, 0x300001).w(FUNC(hornet_state::gn680_sysctrl)); + map(0x300000, 0x300001).w(FUNC(terabrst_state::gn680_sysctrl)); map(0x314000, 0x317fff).ram(); - map(0x400000, 0x400003).rw(FUNC(hornet_state::gn680_latch_r), FUNC(hornet_state::gn680_latch_w)); + map(0x400000, 0x400003).rw(FUNC(terabrst_state::gn680_latch_r), FUNC(terabrst_state::gn680_latch_w)); map(0x400008, 0x400009).nopw(); // writes 0001 00fe each time IRQ 6 triggers } /*****************************************************************************/ -void hornet_state::sharc0_map(address_map &map) +template +void hornet_state::sharc_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).ram().share(m_sharc_dataram[0]).lr32(NAME([this](offs_t offset) { return m_sharc_dataram[0][offset] & 0xffff; })); + map(0x0400000, 0x041ffff).rw(m_konppc, FUNC(konppc_device::cgboard_shared_sharc_r), FUNC(konppc_device::cgboard_shared_sharc_w)); + map(0x0500000, 0x05fffff).ram().share(m_sharc_dataram[Board]).lr32(NAME([this](offs_t offset) { return m_sharc_dataram[Board][offset] & 0xffff; })); map(0x1400000, 0x14fffff).ram(); - map(0x2400000, 0x27fffff).m(m_voodoo[0], FUNC(generic_voodoo_device::core_map)); - 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("master_cgboard_bank"); -} - -void hornet_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).ram().share(m_sharc_dataram[1]).lr32(NAME([this](offs_t offset) { return m_sharc_dataram[1][offset] & 0xffff; })); - map(0x1400000, 0x14fffff).ram(); - map(0x2400000, 0x27fffff).m(m_voodoo[1], FUNC(generic_voodoo_device::core_map)); - 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("slave_cgboard_bank"); + map(0x2400000, 0x27fffff).m(m_voodoo[Board], FUNC(generic_voodoo_device::core_map)); + map(0x3400000, 0x34000ff).rw(m_konppc, FUNC(konppc_device::cgboard_comm_sharc_r), FUNC(konppc_device::cgboard_comm_sharc_w)); + map(0x3500000, 0x35000ff).rw(m_konppc, FUNC(konppc_device::cgboard_k033906_r), FUNC(konppc_device::cgboard_k033906_w)); + map(0x3600000, 0x37fffff).bankr(m_cgboard_bank[Board]); } /*****************************************************************************/ @@ -1232,35 +1273,61 @@ void hornet_state::machine_start() m_maincpu->ppcdrc_add_fastram(0x00000000, 0x003fffff, false, m_workram); m_sound_irq_timer = timer_alloc(FUNC(hornet_state::sound_irq), this); + + save_item(NAME(m_sndres)); } -void hornet_state::machine_reset() +void terabrst_state::machine_start() { - if (m_comm_board_rom.found()) - { - m_comm_bank->configure_entries(0, m_comm_board_rom.bytes() / 0x10000, &m_comm_board_rom[0], 0x10000); - m_comm_bank->set_entry(0); - } + hornet_state::machine_start(); + + save_item(NAME(m_gn680_latch)); + save_item(NAME(m_gn680_ret0)); + save_item(NAME(m_gn680_ret1)); + save_item(NAME(m_gn680_check)); + save_item(NAME(m_gn680_reg0e)); +} +void sscope2_state::machine_start() +{ + hornet_state::machine_start(); + + m_comm_bank->configure_entries(0, m_comm_board_rom.bytes() / 0x10000, &m_comm_board_rom[0], 0x10000); +} + +void hornet_state::machine_reset() +{ m_dsp[0]->set_input_line(INPUT_LINE_RESET, ASSERT_LINE); if (m_dsp[1].found()) m_dsp[1]->set_input_line(INPUT_LINE_RESET, ASSERT_LINE); - if (memregion("master_cgboard")) + if (memregion("cgboard_0")) { - membank("master_cgboard_bank")->set_base(memregion("master_cgboard")->base()); - if (membank("slave_cgboard_bank")) - membank("slave_cgboard_bank")->set_base(memregion("master_cgboard")->base()); + m_cgboard_bank[0]->set_entry(0); + if (m_cgboard_bank[1]) + m_cgboard_bank[1]->set_entry(0); } +} + +void terabrst_state::machine_reset() +{ + hornet_state::machine_reset(); m_gn680_check = 0x8000; } +void sscope2_state::machine_reset() +{ + hornet_state::machine_reset(); + + m_comm_bank->set_entry(0); +} + double hornet_state::adc12138_input_callback(uint8_t input) { if (input < m_analog.size()) { - int value = m_analog[input].read_safe(0); + int const value = m_analog[input].read_safe(0); return (double)(value) / 2047.0; } @@ -1284,7 +1351,7 @@ void hornet_state::hornet(machine_config &config) ADSP21062(config, m_dsp[0], XTAL(36'000'000)); m_dsp[0]->set_boot_mode(adsp21062_device::BOOT_MODE_EPROM); - m_dsp[0]->set_addrmap(AS_DATA, &hornet_state::sharc0_map); + m_dsp[0]->set_addrmap(AS_DATA, &hornet_state::sharc_map<0>); config.set_maximum_quantum(attotime::from_hz(6000)); @@ -1329,8 +1396,12 @@ void hornet_state::hornet(machine_config &config) m_adc12138->set_ipt_convert_callback(FUNC(hornet_state::adc12138_input_callback)); KONPPC(config, m_konppc, 0); + m_konppc->set_dsp_tag(0, m_dsp[0]); + m_konppc->set_k033906_tag(0, m_k033906[0]); + m_konppc->set_voodoo_tag(0, m_voodoo[0]); + m_konppc->set_texture_bank_tag(0, m_cgboard_bank[0]); m_konppc->set_num_boards(1); - m_konppc->set_cbboard_type(konppc_device::CGBOARD_TYPE_HORNET); + m_konppc->set_cgboard_type(konppc_device::CGBOARD_TYPE_HORNET); KONPPC_JVS_HOST(config, m_jvs_host, 0); m_jvs_host->output_callback().set([this](uint8_t c) { m_maincpu->ppc4xx_spu_receive_byte(c); }); @@ -1362,14 +1433,14 @@ void hornet_state::nbapbp(machine_config &config) KONAMI_WINDY2_JVS_IO_2L6B_PANEL(config, "windy2_jvsio", 0, m_jvs_host); } -void hornet_state::terabrst(machine_config &config) //todo: add K056800 from I/O board +void terabrst_state::terabrst(machine_config &config) //todo: add K056800 from I/O board { hornet(config); - m_maincpu->set_addrmap(AS_PROGRAM, &hornet_state::terabrst_map); + m_maincpu->set_addrmap(AS_PROGRAM, &terabrst_state::terabrst_map); M68000(config, m_gn680, XTAL(32'000'000) / 2); // 16MHz - m_gn680->set_addrmap(AS_PROGRAM, &hornet_state::gn680_memmap); + m_gn680->set_addrmap(AS_PROGRAM, &terabrst_state::gn680_memmap); } void hornet_state::sscope(machine_config &config) @@ -1380,7 +1451,7 @@ void hornet_state::sscope(machine_config &config) ADSP21062(config, m_dsp[1], XTAL(36'000'000)); m_dsp[1]->set_boot_mode(adsp21062_device::BOOT_MODE_EPROM); - m_dsp[1]->set_addrmap(AS_DATA, &hornet_state::sharc1_map); + m_dsp[1]->set_addrmap(AS_DATA, &hornet_state::sharc_map<1>); m_k037122[0]->set_screen("lscreen"); @@ -1417,6 +1488,10 @@ void hornet_state::sscope(machine_config &config) ADC12138(config, m_adc12138_sscope, 0); m_adc12138_sscope->set_ipt_convert_callback(FUNC(hornet_state::adc12138_input_callback)); + m_konppc->set_dsp_tag(1, m_dsp[1]); + m_konppc->set_k033906_tag(1, m_k033906[1]); + m_konppc->set_voodoo_tag(1, m_voodoo[1]); + m_konppc->set_texture_bank_tag(1, m_cgboard_bank[1]); m_konppc->set_num_boards(2); } @@ -1446,31 +1521,31 @@ void hornet_state::sscope_voodoo2(machine_config& config) m_k033906[1]->set_pciid(0x0002121a); // PCI Vendor ID (0x121a = 3dfx), Device ID (0x0002 = Voodoo 2) } -void hornet_state::sscope2(machine_config &config) +void sscope2_state::sscope2(machine_config &config) { sscope_voodoo2(config); - m_maincpu->set_addrmap(AS_PROGRAM, &hornet_state::sscope2_map); + m_maincpu->set_addrmap(AS_PROGRAM, &sscope2_state::sscope2_map); - DS2401(config, "lan_serial_id"); - EEPROM_93C46_16BIT(config, "lan_eeprom"); + DS2401(config, m_lan_ds2401); + EEPROM_93C46_16BIT(config, m_lan_eeprom); } -void hornet_state::sscope2_voodoo1(machine_config& config) +void sscope2_state::sscope2_voodoo1(machine_config& config) { sscope(config); - m_maincpu->set_addrmap(AS_PROGRAM, &hornet_state::sscope2_map); + m_maincpu->set_addrmap(AS_PROGRAM, &sscope2_state::sscope2_map); - DS2401(config, "lan_serial_id"); - EEPROM_93C46_16BIT(config, "lan_eeprom"); + DS2401(config, m_lan_ds2401); + EEPROM_93C46_16BIT(config, m_lan_eeprom); } /*****************************************************************************/ void hornet_state::jamma_jvs_w(uint8_t data) { - bool accepted = m_jvs_host->write(data); + bool const accepted = m_jvs_host->write(data); if (accepted) m_jvs_host->read(); } @@ -1479,7 +1554,7 @@ void hornet_state::jamma_jvs_w(uint8_t data) void hornet_state::init_hornet() { - m_konppc->set_cgboard_texture_bank(0, "master_cgboard_bank", memregion("master_cgboard")->base()); + m_cgboard_bank[0]->configure_entries(0, 2, memregion("cgboard_0")->base(), 0x800000); m_maincpu->ppc4xx_spu_set_tx_handler(write8smo_delegate(*this, FUNC(hornet_state::jamma_jvs_w))); @@ -1495,18 +1570,18 @@ void hornet_state::init_gradius4() void hornet_state::init_sscope() { - m_konppc->set_cgboard_texture_bank(0, "master_cgboard_bank", memregion("master_cgboard")->base()); - m_konppc->set_cgboard_texture_bank(1, "slave_cgboard_bank", memregion("master_cgboard")->base()); + m_cgboard_bank[0]->configure_entries(0, 2, memregion("cgboard_0")->base(), 0x800000); + m_cgboard_bank[1]->configure_entries(0, 2, memregion("cgboard_0")->base(), 0x800000); m_maincpu->ppc4xx_spu_set_tx_handler(write8smo_delegate(*this, FUNC(hornet_state::jamma_jvs_w))); } -void hornet_state::init_sscope2() //fixme: eventually set sscope2 to load gfx roms from the comm board +void sscope2_state::init_sscope2() //fixme: eventually set sscope2 to load gfx roms from the comm board { - m_konppc->set_cgboard_texture_bank(0, "master_cgboard_bank", memregion("master_cgboard")->base()); - m_konppc->set_cgboard_texture_bank(1, "slave_cgboard_bank", memregion("master_cgboard")->base()); + m_cgboard_bank[0]->configure_entries(0, 2, memregion("cgboard_0")->base(), 0x800000); + m_cgboard_bank[1]->configure_entries(0, 2, memregion("cgboard_0")->base(), 0x800000); - m_maincpu->ppc4xx_spu_set_tx_handler(write8smo_delegate(*this, FUNC(hornet_state::jamma_jvs_w))); + m_maincpu->ppc4xx_spu_set_tx_handler(write8smo_delegate(*this, FUNC(sscope2_state::jamma_jvs_w))); } /*****************************************************************************/ @@ -1521,7 +1596,7 @@ ROM_START(sscope) ROM_REGION(0x80000, "audiocpu", 0) // 68K Program ROM_LOAD16_WORD_SWAP("830a08.7s", 0x000000, 0x80000, CRC(2805ea1d) SHA1(2556a51ee98cb8f59bf081e916c69a24532196f1) ) - ROM_REGION(0x1000000, "master_cgboard", 0) // CG Board texture roms + ROM_REGION(0x1000000, "cgboard_0", ROMREGION_ERASE00) // CG Board texture roms ROM_LOAD32_WORD( "830a14.32u", 0x000000, 0x400000, CRC(335793e1) SHA1(d582b53c3853abd59bc728f619a30c27cfc9497c) ) ROM_LOAD32_WORD( "830a13.24u", 0x000002, 0x400000, CRC(d6e7877e) SHA1(b4d0e17ada7dd126ec564a20e7140775b4b3fdb7) ) @@ -1543,7 +1618,7 @@ ROM_START(sscopee) ROM_REGION(0x80000, "audiocpu", 0) // 68K Program ROM_LOAD16_WORD_SWAP("830a08.7s", 0x000000, 0x80000, CRC(2805ea1d) SHA1(2556a51ee98cb8f59bf081e916c69a24532196f1) ) - ROM_REGION(0x1000000, "master_cgboard", 0) // CG Board texture roms + ROM_REGION(0x1000000, "cgboard_0", ROMREGION_ERASE00) // CG Board texture roms ROM_LOAD32_WORD( "830a14.32u", 0x000000, 0x400000, CRC(335793e1) SHA1(d582b53c3853abd59bc728f619a30c27cfc9497c) ) ROM_LOAD32_WORD( "830a13.24u", 0x000002, 0x400000, CRC(d6e7877e) SHA1(b4d0e17ada7dd126ec564a20e7140775b4b3fdb7) ) @@ -1565,7 +1640,7 @@ ROM_START(sscopea) ROM_REGION(0x80000, "audiocpu", 0) // 68K Program ROM_LOAD16_WORD_SWAP("830a08.7s", 0x000000, 0x80000, CRC(2805ea1d) SHA1(2556a51ee98cb8f59bf081e916c69a24532196f1) ) - ROM_REGION(0x1000000, "master_cgboard", 0) // CG Board texture roms + ROM_REGION(0x1000000, "cgboard_0", ROMREGION_ERASE00) // CG Board texture roms ROM_LOAD32_WORD( "830a14.32u", 0x000000, 0x400000, CRC(335793e1) SHA1(d582b53c3853abd59bc728f619a30c27cfc9497c) ) ROM_LOAD32_WORD( "830a13.24u", 0x000002, 0x400000, CRC(d6e7877e) SHA1(b4d0e17ada7dd126ec564a20e7140775b4b3fdb7) ) @@ -1587,7 +1662,7 @@ ROM_START(sscopeuc) ROM_REGION(0x80000, "audiocpu", 0) // 68K Program ROM_LOAD16_WORD_SWAP("830a08.7s", 0x000000, 0x80000, CRC(2805ea1d) SHA1(2556a51ee98cb8f59bf081e916c69a24532196f1) ) - ROM_REGION(0x1000000, "master_cgboard", 0) // CG Board texture roms + ROM_REGION(0x1000000, "cgboard_0", ROMREGION_ERASE00) // CG Board texture roms ROM_LOAD32_WORD( "830a14.32u", 0x000000, 0x400000, CRC(335793e1) SHA1(d582b53c3853abd59bc728f619a30c27cfc9497c) ) ROM_LOAD32_WORD( "830a13.24u", 0x000002, 0x400000, CRC(d6e7877e) SHA1(b4d0e17ada7dd126ec564a20e7140775b4b3fdb7) ) @@ -1609,7 +1684,7 @@ ROM_START(sscopeec) ROM_REGION(0x80000, "audiocpu", 0) // 68K Program ROM_LOAD16_WORD_SWAP("830a08.7s", 0x000000, 0x80000, CRC(2805ea1d) SHA1(2556a51ee98cb8f59bf081e916c69a24532196f1) ) - ROM_REGION(0x1000000, "master_cgboard", 0) // CG Board texture roms + ROM_REGION(0x1000000, "cgboard_0", ROMREGION_ERASE00) // CG Board texture roms ROM_LOAD32_WORD( "830a14.32u", 0x000000, 0x400000, CRC(335793e1) SHA1(d582b53c3853abd59bc728f619a30c27cfc9497c) ) ROM_LOAD32_WORD( "830a13.24u", 0x000002, 0x400000, CRC(d6e7877e) SHA1(b4d0e17ada7dd126ec564a20e7140775b4b3fdb7) ) @@ -1631,7 +1706,7 @@ ROM_START(sscopeac) ROM_REGION(0x80000, "audiocpu", 0) // 68K Program ROM_LOAD16_WORD_SWAP("830a08.7s", 0x000000, 0x80000, CRC(2805ea1d) SHA1(2556a51ee98cb8f59bf081e916c69a24532196f1) ) - ROM_REGION(0x1000000, "master_cgboard", 0) // CG Board texture roms + ROM_REGION(0x1000000, "cgboard_0", ROMREGION_ERASE00) // CG Board texture roms ROM_LOAD32_WORD( "830a14.32u", 0x000000, 0x400000, CRC(335793e1) SHA1(d582b53c3853abd59bc728f619a30c27cfc9497c) ) ROM_LOAD32_WORD( "830a13.24u", 0x000002, 0x400000, CRC(d6e7877e) SHA1(b4d0e17ada7dd126ec564a20e7140775b4b3fdb7) ) @@ -1653,7 +1728,7 @@ ROM_START(sscopeub) ROM_REGION(0x80000, "audiocpu", 0) // 68K Program ROM_LOAD16_WORD_SWAP("830a08.7s", 0x000000, 0x80000, CRC(2805ea1d) SHA1(2556a51ee98cb8f59bf081e916c69a24532196f1) ) - ROM_REGION(0x1000000, "master_cgboard", 0) // CG Board texture roms + ROM_REGION(0x1000000, "cgboard_0", ROMREGION_ERASE00) // CG Board texture roms ROM_LOAD32_WORD( "830a14.32u", 0x000000, 0x400000, CRC(335793e1) SHA1(d582b53c3853abd59bc728f619a30c27cfc9497c) ) ROM_LOAD32_WORD( "830a13.24u", 0x000002, 0x400000, CRC(d6e7877e) SHA1(b4d0e17ada7dd126ec564a20e7140775b4b3fdb7) ) @@ -1675,7 +1750,7 @@ ROM_START(sscopeeb) ROM_REGION(0x80000, "audiocpu", 0) // 68K Program ROM_LOAD16_WORD_SWAP("830a08.7s", 0x000000, 0x80000, CRC(2805ea1d) SHA1(2556a51ee98cb8f59bf081e916c69a24532196f1) ) - ROM_REGION(0x1000000, "master_cgboard", 0) // CG Board texture roms + ROM_REGION(0x1000000, "cgboard_0", ROMREGION_ERASE00) // CG Board texture roms ROM_LOAD32_WORD( "830a14.32u", 0x000000, 0x400000, CRC(335793e1) SHA1(d582b53c3853abd59bc728f619a30c27cfc9497c) ) ROM_LOAD32_WORD( "830a13.24u", 0x000002, 0x400000, CRC(d6e7877e) SHA1(b4d0e17ada7dd126ec564a20e7140775b4b3fdb7) ) @@ -1697,7 +1772,7 @@ ROM_START(sscopejb) ROM_REGION(0x80000, "audiocpu", 0) // 68K Program ROM_LOAD16_WORD_SWAP("830a08.7s", 0x000000, 0x80000, CRC(2805ea1d) SHA1(2556a51ee98cb8f59bf081e916c69a24532196f1) ) - ROM_REGION(0x1000000, "master_cgboard", 0) // CG Board texture roms + ROM_REGION(0x1000000, "cgboard_0", ROMREGION_ERASE00) // CG Board texture roms ROM_LOAD32_WORD( "830a14.32u", 0x000000, 0x400000, CRC(335793e1) SHA1(d582b53c3853abd59bc728f619a30c27cfc9497c) ) ROM_LOAD32_WORD( "830a13.24u", 0x000002, 0x400000, CRC(d6e7877e) SHA1(b4d0e17ada7dd126ec564a20e7140775b4b3fdb7) ) @@ -1719,7 +1794,7 @@ ROM_START(sscopeab) ROM_REGION(0x80000, "audiocpu", 0) // 68K Program ROM_LOAD16_WORD_SWAP("830a08.7s", 0x000000, 0x80000, CRC(2805ea1d) SHA1(2556a51ee98cb8f59bf081e916c69a24532196f1) ) - ROM_REGION(0x1000000, "master_cgboard", 0) // CG Board texture roms + ROM_REGION(0x1000000, "cgboard_0", ROMREGION_ERASE00) // CG Board texture roms ROM_LOAD32_WORD( "830a14.32u", 0x000000, 0x400000, CRC(335793e1) SHA1(d582b53c3853abd59bc728f619a30c27cfc9497c) ) ROM_LOAD32_WORD( "830a13.24u", 0x000002, 0x400000, CRC(d6e7877e) SHA1(b4d0e17ada7dd126ec564a20e7140775b4b3fdb7) ) @@ -1741,7 +1816,7 @@ ROM_START(sscopeua) ROM_REGION(0x80000, "audiocpu", 0) // 68K Program ROM_LOAD16_WORD_SWAP("830a08.7s", 0x000000, 0x80000, CRC(2805ea1d) SHA1(2556a51ee98cb8f59bf081e916c69a24532196f1) ) - ROM_REGION(0x1000000, "master_cgboard", 0) // CG Board texture roms + ROM_REGION(0x1000000, "cgboard_0", ROMREGION_ERASE00) // CG Board texture roms ROM_LOAD32_WORD( "830a14.32u", 0x000000, 0x400000, CRC(335793e1) SHA1(d582b53c3853abd59bc728f619a30c27cfc9497c) ) ROM_LOAD32_WORD( "830a13.24u", 0x000002, 0x400000, CRC(d6e7877e) SHA1(b4d0e17ada7dd126ec564a20e7140775b4b3fdb7) ) @@ -1763,7 +1838,7 @@ ROM_START(sscopeea) ROM_REGION(0x80000, "audiocpu", 0) // 68K Program ROM_LOAD16_WORD_SWAP("830a08.7s", 0x000000, 0x80000, CRC(2805ea1d) SHA1(2556a51ee98cb8f59bf081e916c69a24532196f1) ) - ROM_REGION(0x1000000, "master_cgboard", 0) // CG Board texture roms + ROM_REGION(0x1000000, "cgboard_0", ROMREGION_ERASE00) // CG Board texture roms ROM_LOAD32_WORD( "830a14.32u", 0x000000, 0x400000, CRC(335793e1) SHA1(d582b53c3853abd59bc728f619a30c27cfc9497c) ) ROM_LOAD32_WORD( "830a13.24u", 0x000002, 0x400000, CRC(d6e7877e) SHA1(b4d0e17ada7dd126ec564a20e7140775b4b3fdb7) ) @@ -1785,7 +1860,7 @@ ROM_START(sscopeja) ROM_REGION(0x80000, "audiocpu", 0) // 68K Program ROM_LOAD16_WORD_SWAP("830a08.7s", 0x000000, 0x80000, CRC(2805ea1d) SHA1(2556a51ee98cb8f59bf081e916c69a24532196f1) ) - ROM_REGION(0x1000000, "master_cgboard", 0) // CG Board texture roms + ROM_REGION(0x1000000, "cgboard_0", ROMREGION_ERASE00) // CG Board texture roms ROM_LOAD32_WORD( "830a14.32u", 0x000000, 0x400000, CRC(335793e1) SHA1(d582b53c3853abd59bc728f619a30c27cfc9497c) ) ROM_LOAD32_WORD( "830a13.24u", 0x000002, 0x400000, CRC(d6e7877e) SHA1(b4d0e17ada7dd126ec564a20e7140775b4b3fdb7) ) @@ -1807,7 +1882,7 @@ ROM_START(sscopeaa) ROM_REGION(0x80000, "audiocpu", 0) // 68K Program ROM_LOAD16_WORD_SWAP("830a08.7s", 0x000000, 0x80000, CRC(2805ea1d) SHA1(2556a51ee98cb8f59bf081e916c69a24532196f1) ) - ROM_REGION(0x1000000, "master_cgboard", 0) // CG Board texture roms + ROM_REGION(0x1000000, "cgboard_0", ROMREGION_ERASE00) // CG Board texture roms ROM_LOAD32_WORD( "830a14.32u", 0x000000, 0x400000, CRC(335793e1) SHA1(d582b53c3853abd59bc728f619a30c27cfc9497c) ) ROM_LOAD32_WORD( "830a13.24u", 0x000002, 0x400000, CRC(d6e7877e) SHA1(b4d0e17ada7dd126ec564a20e7140775b4b3fdb7) ) @@ -1829,7 +1904,7 @@ ROM_START(sscopevd2) ROM_REGION(0x80000, "audiocpu", 0) // 68K Program ROM_LOAD16_WORD_SWAP("830a08.7s", 0x000000, 0x80000, CRC(2805ea1d) SHA1(2556a51ee98cb8f59bf081e916c69a24532196f1) ) - ROM_REGION(0x1000000, "master_cgboard", 0) // CG Board texture roms + ROM_REGION(0x1000000, "cgboard_0", ROMREGION_ERASE00) // CG Board texture roms ROM_LOAD32_WORD( "830a14.32u", 0x000000, 0x400000, CRC(335793e1) SHA1(d582b53c3853abd59bc728f619a30c27cfc9497c) ) ROM_LOAD32_WORD( "830a13.24u", 0x000002, 0x400000, CRC(d6e7877e) SHA1(b4d0e17ada7dd126ec564a20e7140775b4b3fdb7) ) @@ -1851,7 +1926,7 @@ ROM_START(sscopeevd2) ROM_REGION(0x80000, "audiocpu", 0) // 68K Program ROM_LOAD16_WORD_SWAP("830a08.7s", 0x000000, 0x80000, CRC(2805ea1d) SHA1(2556a51ee98cb8f59bf081e916c69a24532196f1) ) - ROM_REGION(0x1000000, "master_cgboard", 0) // CG Board texture roms + ROM_REGION(0x1000000, "cgboard_0", ROMREGION_ERASE00) // CG Board texture roms ROM_LOAD32_WORD( "830a14.32u", 0x000000, 0x400000, CRC(335793e1) SHA1(d582b53c3853abd59bc728f619a30c27cfc9497c) ) ROM_LOAD32_WORD( "830a13.24u", 0x000002, 0x400000, CRC(d6e7877e) SHA1(b4d0e17ada7dd126ec564a20e7140775b4b3fdb7) ) @@ -1873,7 +1948,7 @@ ROM_START(sscopeavd2) ROM_REGION(0x80000, "audiocpu", 0) // 68K Program ROM_LOAD16_WORD_SWAP("830a08.7s", 0x000000, 0x80000, CRC(2805ea1d) SHA1(2556a51ee98cb8f59bf081e916c69a24532196f1) ) - ROM_REGION(0x1000000, "master_cgboard", 0) // CG Board texture roms + ROM_REGION(0x1000000, "cgboard_0", ROMREGION_ERASE00) // CG Board texture roms ROM_LOAD32_WORD( "830a14.32u", 0x000000, 0x400000, CRC(335793e1) SHA1(d582b53c3853abd59bc728f619a30c27cfc9497c) ) ROM_LOAD32_WORD( "830a13.24u", 0x000002, 0x400000, CRC(d6e7877e) SHA1(b4d0e17ada7dd126ec564a20e7140775b4b3fdb7) ) @@ -1895,7 +1970,7 @@ ROM_START(sscopeucvd2) ROM_REGION(0x80000, "audiocpu", 0) // 68K Program ROM_LOAD16_WORD_SWAP("830a08.7s", 0x000000, 0x80000, CRC(2805ea1d) SHA1(2556a51ee98cb8f59bf081e916c69a24532196f1) ) - ROM_REGION(0x1000000, "master_cgboard", 0) // CG Board texture roms + ROM_REGION(0x1000000, "cgboard_0", ROMREGION_ERASE00) // CG Board texture roms ROM_LOAD32_WORD( "830a14.32u", 0x000000, 0x400000, CRC(335793e1) SHA1(d582b53c3853abd59bc728f619a30c27cfc9497c) ) ROM_LOAD32_WORD( "830a13.24u", 0x000002, 0x400000, CRC(d6e7877e) SHA1(b4d0e17ada7dd126ec564a20e7140775b4b3fdb7) ) @@ -1917,7 +1992,7 @@ ROM_START(sscopeecvd2) ROM_REGION(0x80000, "audiocpu", 0) // 68K Program ROM_LOAD16_WORD_SWAP("830a08.7s", 0x000000, 0x80000, CRC(2805ea1d) SHA1(2556a51ee98cb8f59bf081e916c69a24532196f1) ) - ROM_REGION(0x1000000, "master_cgboard", 0) // CG Board texture roms + ROM_REGION(0x1000000, "cgboard_0", ROMREGION_ERASE00) // CG Board texture roms ROM_LOAD32_WORD( "830a14.32u", 0x000000, 0x400000, CRC(335793e1) SHA1(d582b53c3853abd59bc728f619a30c27cfc9497c) ) ROM_LOAD32_WORD( "830a13.24u", 0x000002, 0x400000, CRC(d6e7877e) SHA1(b4d0e17ada7dd126ec564a20e7140775b4b3fdb7) ) @@ -1939,7 +2014,7 @@ ROM_START(sscopeacvd2) ROM_REGION(0x80000, "audiocpu", 0) // 68K Program ROM_LOAD16_WORD_SWAP("830a08.7s", 0x000000, 0x80000, CRC(2805ea1d) SHA1(2556a51ee98cb8f59bf081e916c69a24532196f1) ) - ROM_REGION(0x1000000, "master_cgboard", 0) // CG Board texture roms + ROM_REGION(0x1000000, "cgboard_0", ROMREGION_ERASE00) // CG Board texture roms ROM_LOAD32_WORD( "830a14.32u", 0x000000, 0x400000, CRC(335793e1) SHA1(d582b53c3853abd59bc728f619a30c27cfc9497c) ) ROM_LOAD32_WORD( "830a13.24u", 0x000002, 0x400000, CRC(d6e7877e) SHA1(b4d0e17ada7dd126ec564a20e7140775b4b3fdb7) ) @@ -1961,7 +2036,7 @@ ROM_START(sscopeubvd2) ROM_REGION(0x80000, "audiocpu", 0) // 68K Program ROM_LOAD16_WORD_SWAP("830a08.7s", 0x000000, 0x80000, CRC(2805ea1d) SHA1(2556a51ee98cb8f59bf081e916c69a24532196f1) ) - ROM_REGION(0x1000000, "master_cgboard", 0) // CG Board texture roms + ROM_REGION(0x1000000, "cgboard_0", ROMREGION_ERASE00) // CG Board texture roms ROM_LOAD32_WORD( "830a14.32u", 0x000000, 0x400000, CRC(335793e1) SHA1(d582b53c3853abd59bc728f619a30c27cfc9497c) ) ROM_LOAD32_WORD( "830a13.24u", 0x000002, 0x400000, CRC(d6e7877e) SHA1(b4d0e17ada7dd126ec564a20e7140775b4b3fdb7) ) @@ -1985,7 +2060,7 @@ ROM_START(sscope2) ROM_LOAD("931a19.8e", 0x000000, 0x400000, CRC(0417b528) SHA1(ebd7f06b83256b94784de164f9d0642bfb2c94d4) ) ROM_LOAD("931a20.6e", 0x400000, 0x400000, CRC(d367a4c9) SHA1(8bf029841d9d3be20dea0423240bfec825477a1d) ) - ROM_REGION(0x800000, "master_cgboard", ROMREGION_ERASE00) // CG Board texture roms + ROM_REGION(0x1000000, "cgboard_0", ROMREGION_ERASE00) // CG Board texture roms ROM_REGION(0x80000, "audiocpu", 0) // 68K Program ROM_LOAD16_WORD_SWAP("931a08.7s", 0x000000, 0x80000, CRC(1597d604) SHA1(a1eab4d25907930b59ea558b484c3b6ddcb9303c) ) @@ -2017,7 +2092,7 @@ ROM_START(sscope2e) ROM_LOAD("931a19.8e", 0x000000, 0x400000, CRC(0417b528) SHA1(ebd7f06b83256b94784de164f9d0642bfb2c94d4) ) ROM_LOAD("931a20.6e", 0x400000, 0x400000, CRC(d367a4c9) SHA1(8bf029841d9d3be20dea0423240bfec825477a1d) ) - ROM_REGION(0x800000, "master_cgboard", ROMREGION_ERASE00) // CG Board texture roms + ROM_REGION(0x1000000, "cgboard_0", ROMREGION_ERASE00) // CG Board texture roms ROM_REGION(0x80000, "audiocpu", 0) // 68K Program ROM_LOAD16_WORD_SWAP("931a08.7s", 0x000000, 0x80000, CRC(1597d604) SHA1(a1eab4d25907930b59ea558b484c3b6ddcb9303c) ) @@ -2049,7 +2124,7 @@ ROM_START(sscope2j) ROM_LOAD("931a19.8e", 0x000000, 0x400000, CRC(0417b528) SHA1(ebd7f06b83256b94784de164f9d0642bfb2c94d4) ) ROM_LOAD("931a20.6e", 0x400000, 0x400000, CRC(d367a4c9) SHA1(8bf029841d9d3be20dea0423240bfec825477a1d) ) - ROM_REGION(0x800000, "master_cgboard", ROMREGION_ERASE00) // CG Board texture roms + ROM_REGION(0x1000000, "cgboard_0", ROMREGION_ERASE00) // CG Board texture roms ROM_REGION(0x80000, "audiocpu", 0) // 68K Program ROM_LOAD16_WORD_SWAP("931a08.7s", 0x000000, 0x80000, CRC(1597d604) SHA1(a1eab4d25907930b59ea558b484c3b6ddcb9303c) ) @@ -2081,7 +2156,7 @@ ROM_START(sscope2a) ROM_LOAD("931a19.8e", 0x000000, 0x400000, CRC(0417b528) SHA1(ebd7f06b83256b94784de164f9d0642bfb2c94d4) ) ROM_LOAD("931a20.6e", 0x400000, 0x400000, CRC(d367a4c9) SHA1(8bf029841d9d3be20dea0423240bfec825477a1d) ) - ROM_REGION(0x800000, "master_cgboard", ROMREGION_ERASE00) // CG Board texture roms + ROM_REGION(0x1000000, "cgboard_0", ROMREGION_ERASE00) // CG Board texture roms ROM_REGION(0x80000, "audiocpu", 0) // 68K Program ROM_LOAD16_WORD_SWAP("931a08.7s", 0x000000, 0x80000, CRC(1597d604) SHA1(a1eab4d25907930b59ea558b484c3b6ddcb9303c) ) @@ -2113,7 +2188,7 @@ ROM_START(sscope2uc) ROM_LOAD("931a19.8e", 0x000000, 0x400000, CRC(0417b528) SHA1(ebd7f06b83256b94784de164f9d0642bfb2c94d4) ) ROM_LOAD("931a20.6e", 0x400000, 0x400000, CRC(d367a4c9) SHA1(8bf029841d9d3be20dea0423240bfec825477a1d) ) - ROM_REGION(0x800000, "master_cgboard", ROMREGION_ERASE00) // CG Board texture roms + ROM_REGION(0x1000000, "cgboard_0", ROMREGION_ERASE00) // CG Board texture roms ROM_REGION(0x80000, "audiocpu", 0) // 68K Program ROM_LOAD16_WORD_SWAP("931a08.7s", 0x000000, 0x80000, CRC(1597d604) SHA1(a1eab4d25907930b59ea558b484c3b6ddcb9303c) ) @@ -2145,7 +2220,7 @@ ROM_START(sscope2ec) ROM_LOAD("931a19.8e", 0x000000, 0x400000, CRC(0417b528) SHA1(ebd7f06b83256b94784de164f9d0642bfb2c94d4) ) ROM_LOAD("931a20.6e", 0x400000, 0x400000, CRC(d367a4c9) SHA1(8bf029841d9d3be20dea0423240bfec825477a1d) ) - ROM_REGION(0x800000, "master_cgboard", ROMREGION_ERASE00) // CG Board texture roms + ROM_REGION(0x1000000, "cgboard_0", ROMREGION_ERASE00) // CG Board texture roms ROM_REGION(0x80000, "audiocpu", 0) // 68K Program ROM_LOAD16_WORD_SWAP("931a08.7s", 0x000000, 0x80000, CRC(1597d604) SHA1(a1eab4d25907930b59ea558b484c3b6ddcb9303c) ) @@ -2177,7 +2252,7 @@ ROM_START(sscope2jc) ROM_LOAD("931a19.8e", 0x000000, 0x400000, CRC(0417b528) SHA1(ebd7f06b83256b94784de164f9d0642bfb2c94d4) ) ROM_LOAD("931a20.6e", 0x400000, 0x400000, CRC(d367a4c9) SHA1(8bf029841d9d3be20dea0423240bfec825477a1d) ) - ROM_REGION(0x800000, "master_cgboard", ROMREGION_ERASE00) // CG Board texture roms + ROM_REGION(0x1000000, "cgboard_0", ROMREGION_ERASE00) // CG Board texture roms ROM_REGION(0x80000, "audiocpu", 0) // 68K Program ROM_LOAD16_WORD_SWAP("931a08.7s", 0x000000, 0x80000, CRC(1597d604) SHA1(a1eab4d25907930b59ea558b484c3b6ddcb9303c) ) @@ -2209,7 +2284,7 @@ ROM_START(sscope2ac) ROM_LOAD("931a19.8e", 0x000000, 0x400000, CRC(0417b528) SHA1(ebd7f06b83256b94784de164f9d0642bfb2c94d4) ) ROM_LOAD("931a20.6e", 0x400000, 0x400000, CRC(d367a4c9) SHA1(8bf029841d9d3be20dea0423240bfec825477a1d) ) - ROM_REGION(0x800000, "master_cgboard", ROMREGION_ERASE00) // CG Board texture roms + ROM_REGION(0x1000000, "cgboard_0", ROMREGION_ERASE00) // CG Board texture roms ROM_REGION(0x80000, "audiocpu", 0) // 68K Program ROM_LOAD16_WORD_SWAP("931a08.7s", 0x000000, 0x80000, CRC(1597d604) SHA1(a1eab4d25907930b59ea558b484c3b6ddcb9303c) ) @@ -2241,7 +2316,7 @@ ROM_START(sscope2ub) ROM_LOAD("931a19.8e", 0x000000, 0x400000, CRC(0417b528) SHA1(ebd7f06b83256b94784de164f9d0642bfb2c94d4) ) ROM_LOAD("931a20.6e", 0x400000, 0x400000, CRC(d367a4c9) SHA1(8bf029841d9d3be20dea0423240bfec825477a1d) ) - ROM_REGION(0x800000, "master_cgboard", ROMREGION_ERASE00) // CG Board texture roms + ROM_REGION(0x1000000, "cgboard_0", ROMREGION_ERASE00) // CG Board texture roms ROM_REGION(0x80000, "audiocpu", 0) // 68K Program ROM_LOAD16_WORD_SWAP("931a08.7s", 0x000000, 0x80000, CRC(1597d604) SHA1(a1eab4d25907930b59ea558b484c3b6ddcb9303c) ) @@ -2273,7 +2348,7 @@ ROM_START(sscope2eb) ROM_LOAD("931a19.8e", 0x000000, 0x400000, CRC(0417b528) SHA1(ebd7f06b83256b94784de164f9d0642bfb2c94d4) ) ROM_LOAD("931a20.6e", 0x400000, 0x400000, CRC(d367a4c9) SHA1(8bf029841d9d3be20dea0423240bfec825477a1d) ) - ROM_REGION(0x800000, "master_cgboard", ROMREGION_ERASE00) // CG Board texture roms + ROM_REGION(0x1000000, "cgboard_0", ROMREGION_ERASE00) // CG Board texture roms ROM_REGION(0x80000, "audiocpu", 0) // 68K Program ROM_LOAD16_WORD_SWAP("931a08.7s", 0x000000, 0x80000, CRC(1597d604) SHA1(a1eab4d25907930b59ea558b484c3b6ddcb9303c) ) @@ -2305,7 +2380,7 @@ ROM_START(sscope2jb) ROM_LOAD("931a19.8e", 0x000000, 0x400000, CRC(0417b528) SHA1(ebd7f06b83256b94784de164f9d0642bfb2c94d4) ) ROM_LOAD("931a20.6e", 0x400000, 0x400000, CRC(d367a4c9) SHA1(8bf029841d9d3be20dea0423240bfec825477a1d) ) - ROM_REGION(0x800000, "master_cgboard", ROMREGION_ERASE00) // CG Board texture roms + ROM_REGION(0x1000000, "cgboard_0", ROMREGION_ERASE00) // CG Board texture roms ROM_REGION(0x80000, "audiocpu", 0) // 68K Program ROM_LOAD16_WORD_SWAP("931a08.7s", 0x000000, 0x80000, CRC(1597d604) SHA1(a1eab4d25907930b59ea558b484c3b6ddcb9303c) ) @@ -2337,7 +2412,7 @@ ROM_START(sscope2ab) ROM_LOAD("931a19.8e", 0x000000, 0x400000, CRC(0417b528) SHA1(ebd7f06b83256b94784de164f9d0642bfb2c94d4) ) ROM_LOAD("931a20.6e", 0x400000, 0x400000, CRC(d367a4c9) SHA1(8bf029841d9d3be20dea0423240bfec825477a1d) ) - ROM_REGION(0x800000, "master_cgboard", ROMREGION_ERASE00) // CG Board texture roms + ROM_REGION(0x1000000, "cgboard_0", ROMREGION_ERASE00) // CG Board texture roms ROM_REGION(0x80000, "audiocpu", 0) // 68K Program ROM_LOAD16_WORD_SWAP("931a08.7s", 0x000000, 0x80000, CRC(1597d604) SHA1(a1eab4d25907930b59ea558b484c3b6ddcb9303c) ) @@ -2369,7 +2444,7 @@ ROM_START(sscope2vd1) ROM_LOAD("931a19.8e", 0x000000, 0x400000, CRC(0417b528) SHA1(ebd7f06b83256b94784de164f9d0642bfb2c94d4) ) ROM_LOAD("931a20.6e", 0x400000, 0x400000, CRC(d367a4c9) SHA1(8bf029841d9d3be20dea0423240bfec825477a1d) ) - ROM_REGION(0x800000, "master_cgboard", ROMREGION_ERASE00) // CG Board texture roms + ROM_REGION(0x1000000, "cgboard_0", ROMREGION_ERASE00) // CG Board texture roms ROM_REGION(0x80000, "audiocpu", 0) // 68K Program ROM_LOAD16_WORD_SWAP("931a08.7s", 0x000000, 0x80000, CRC(1597d604) SHA1(a1eab4d25907930b59ea558b484c3b6ddcb9303c) ) @@ -2401,7 +2476,7 @@ ROM_START(sscope2evd1) ROM_LOAD("931a19.8e", 0x000000, 0x400000, CRC(0417b528) SHA1(ebd7f06b83256b94784de164f9d0642bfb2c94d4) ) ROM_LOAD("931a20.6e", 0x400000, 0x400000, CRC(d367a4c9) SHA1(8bf029841d9d3be20dea0423240bfec825477a1d) ) - ROM_REGION(0x800000, "master_cgboard", ROMREGION_ERASE00) // CG Board texture roms + ROM_REGION(0x1000000, "cgboard_0", ROMREGION_ERASE00) // CG Board texture roms ROM_REGION(0x80000, "audiocpu", 0) // 68K Program ROM_LOAD16_WORD_SWAP("931a08.7s", 0x000000, 0x80000, CRC(1597d604) SHA1(a1eab4d25907930b59ea558b484c3b6ddcb9303c) ) @@ -2433,7 +2508,7 @@ ROM_START(sscope2jvd1) ROM_LOAD("931a19.8e", 0x000000, 0x400000, CRC(0417b528) SHA1(ebd7f06b83256b94784de164f9d0642bfb2c94d4) ) ROM_LOAD("931a20.6e", 0x400000, 0x400000, CRC(d367a4c9) SHA1(8bf029841d9d3be20dea0423240bfec825477a1d) ) - ROM_REGION(0x800000, "master_cgboard", ROMREGION_ERASE00) // CG Board texture roms + ROM_REGION(0x1000000, "cgboard_0", ROMREGION_ERASE00) // CG Board texture roms ROM_REGION(0x80000, "audiocpu", 0) // 68K Program ROM_LOAD16_WORD_SWAP("931a08.7s", 0x000000, 0x80000, CRC(1597d604) SHA1(a1eab4d25907930b59ea558b484c3b6ddcb9303c) ) @@ -2465,7 +2540,7 @@ ROM_START(sscope2avd1) ROM_LOAD("931a19.8e", 0x000000, 0x400000, CRC(0417b528) SHA1(ebd7f06b83256b94784de164f9d0642bfb2c94d4) ) ROM_LOAD("931a20.6e", 0x400000, 0x400000, CRC(d367a4c9) SHA1(8bf029841d9d3be20dea0423240bfec825477a1d) ) - ROM_REGION(0x800000, "master_cgboard", ROMREGION_ERASE00) // CG Board texture roms + ROM_REGION(0x1000000, "cgboard_0", ROMREGION_ERASE00) // CG Board texture roms ROM_REGION(0x80000, "audiocpu", 0) // 68K Program ROM_LOAD16_WORD_SWAP("931a08.7s", 0x000000, 0x80000, CRC(1597d604) SHA1(a1eab4d25907930b59ea558b484c3b6ddcb9303c) ) @@ -2497,7 +2572,7 @@ ROM_START(sscope2ucvd1) ROM_LOAD("931a19.8e", 0x000000, 0x400000, CRC(0417b528) SHA1(ebd7f06b83256b94784de164f9d0642bfb2c94d4) ) ROM_LOAD("931a20.6e", 0x400000, 0x400000, CRC(d367a4c9) SHA1(8bf029841d9d3be20dea0423240bfec825477a1d) ) - ROM_REGION(0x800000, "master_cgboard", ROMREGION_ERASE00) // CG Board texture roms + ROM_REGION(0x1000000, "cgboard_0", ROMREGION_ERASE00) // CG Board texture roms ROM_REGION(0x80000, "audiocpu", 0) // 68K Program ROM_LOAD16_WORD_SWAP("931a08.7s", 0x000000, 0x80000, CRC(1597d604) SHA1(a1eab4d25907930b59ea558b484c3b6ddcb9303c) ) @@ -2529,7 +2604,7 @@ ROM_START(sscope2ecvd1) ROM_LOAD("931a19.8e", 0x000000, 0x400000, CRC(0417b528) SHA1(ebd7f06b83256b94784de164f9d0642bfb2c94d4) ) ROM_LOAD("931a20.6e", 0x400000, 0x400000, CRC(d367a4c9) SHA1(8bf029841d9d3be20dea0423240bfec825477a1d) ) - ROM_REGION(0x800000, "master_cgboard", ROMREGION_ERASE00) // CG Board texture roms + ROM_REGION(0x1000000, "cgboard_0", ROMREGION_ERASE00) // CG Board texture roms ROM_REGION(0x80000, "audiocpu", 0) // 68K Program ROM_LOAD16_WORD_SWAP("931a08.7s", 0x000000, 0x80000, CRC(1597d604) SHA1(a1eab4d25907930b59ea558b484c3b6ddcb9303c) ) @@ -2561,7 +2636,7 @@ ROM_START(sscope2jcvd1) ROM_LOAD("931a19.8e", 0x000000, 0x400000, CRC(0417b528) SHA1(ebd7f06b83256b94784de164f9d0642bfb2c94d4) ) ROM_LOAD("931a20.6e", 0x400000, 0x400000, CRC(d367a4c9) SHA1(8bf029841d9d3be20dea0423240bfec825477a1d) ) - ROM_REGION(0x800000, "master_cgboard", ROMREGION_ERASE00) // CG Board texture roms + ROM_REGION(0x1000000, "cgboard_0", ROMREGION_ERASE00) // CG Board texture roms ROM_REGION(0x80000, "audiocpu", 0) // 68K Program ROM_LOAD16_WORD_SWAP("931a08.7s", 0x000000, 0x80000, CRC(1597d604) SHA1(a1eab4d25907930b59ea558b484c3b6ddcb9303c) ) @@ -2593,7 +2668,7 @@ ROM_START(sscope2acvd1) ROM_LOAD("931a19.8e", 0x000000, 0x400000, CRC(0417b528) SHA1(ebd7f06b83256b94784de164f9d0642bfb2c94d4) ) ROM_LOAD("931a20.6e", 0x400000, 0x400000, CRC(d367a4c9) SHA1(8bf029841d9d3be20dea0423240bfec825477a1d) ) - ROM_REGION(0x800000, "master_cgboard", ROMREGION_ERASE00) // CG Board texture roms + ROM_REGION(0x1000000, "cgboard_0", ROMREGION_ERASE00) // CG Board texture roms ROM_REGION(0x80000, "audiocpu", 0) // 68K Program ROM_LOAD16_WORD_SWAP("931a08.7s", 0x000000, 0x80000, CRC(1597d604) SHA1(a1eab4d25907930b59ea558b484c3b6ddcb9303c) ) @@ -2625,7 +2700,7 @@ ROM_START(sscope2ubvd1) ROM_LOAD("931a19.8e", 0x000000, 0x400000, CRC(0417b528) SHA1(ebd7f06b83256b94784de164f9d0642bfb2c94d4) ) ROM_LOAD("931a20.6e", 0x400000, 0x400000, CRC(d367a4c9) SHA1(8bf029841d9d3be20dea0423240bfec825477a1d) ) - ROM_REGION(0x800000, "master_cgboard", ROMREGION_ERASE00) // CG Board texture roms + ROM_REGION(0x1000000, "cgboard_0", ROMREGION_ERASE00) // CG Board texture roms ROM_REGION(0x80000, "audiocpu", 0) // 68K Program ROM_LOAD16_WORD_SWAP("931a08.7s", 0x000000, 0x80000, CRC(1597d604) SHA1(a1eab4d25907930b59ea558b484c3b6ddcb9303c) ) @@ -2657,7 +2732,7 @@ ROM_START(sscope2ebvd1) ROM_LOAD("931a19.8e", 0x000000, 0x400000, CRC(0417b528) SHA1(ebd7f06b83256b94784de164f9d0642bfb2c94d4) ) ROM_LOAD("931a20.6e", 0x400000, 0x400000, CRC(d367a4c9) SHA1(8bf029841d9d3be20dea0423240bfec825477a1d) ) - ROM_REGION(0x800000, "master_cgboard", ROMREGION_ERASE00) // CG Board texture roms + ROM_REGION(0x1000000, "cgboard_0", ROMREGION_ERASE00) // CG Board texture roms ROM_REGION(0x80000, "audiocpu", 0) // 68K Program ROM_LOAD16_WORD_SWAP("931a08.7s", 0x000000, 0x80000, CRC(1597d604) SHA1(a1eab4d25907930b59ea558b484c3b6ddcb9303c) ) @@ -2689,7 +2764,7 @@ ROM_START(sscope2jbvd1) ROM_LOAD("931a19.8e", 0x000000, 0x400000, CRC(0417b528) SHA1(ebd7f06b83256b94784de164f9d0642bfb2c94d4) ) ROM_LOAD("931a20.6e", 0x400000, 0x400000, CRC(d367a4c9) SHA1(8bf029841d9d3be20dea0423240bfec825477a1d) ) - ROM_REGION(0x800000, "master_cgboard", ROMREGION_ERASE00) // CG Board texture roms + ROM_REGION(0x1000000, "cgboard_0", ROMREGION_ERASE00) // CG Board texture roms ROM_REGION(0x80000, "audiocpu", 0) // 68K Program ROM_LOAD16_WORD_SWAP("931a08.7s", 0x000000, 0x80000, CRC(1597d604) SHA1(a1eab4d25907930b59ea558b484c3b6ddcb9303c) ) @@ -2721,7 +2796,7 @@ ROM_START(sscope2abvd1) ROM_LOAD("931a19.8e", 0x000000, 0x400000, CRC(0417b528) SHA1(ebd7f06b83256b94784de164f9d0642bfb2c94d4) ) ROM_LOAD("931a20.6e", 0x400000, 0x400000, CRC(d367a4c9) SHA1(8bf029841d9d3be20dea0423240bfec825477a1d) ) - ROM_REGION(0x800000, "master_cgboard", ROMREGION_ERASE00) // CG Board texture roms + ROM_REGION(0x1000000, "cgboard_0", ROMREGION_ERASE00) // CG Board texture roms ROM_REGION(0x80000, "audiocpu", 0) // 68K Program ROM_LOAD16_WORD_SWAP("931a08.7s", 0x000000, 0x80000, CRC(1597d604) SHA1(a1eab4d25907930b59ea558b484c3b6ddcb9303c) ) @@ -2750,7 +2825,7 @@ ROM_START(gradius4) ROM_LOAD32_WORD_SWAP( "837a04.16t", 0x000000, 0x200000, CRC(18453b59) SHA1(3c75a54d8c09c0796223b42d30fb3867a911a074) ) ROM_LOAD32_WORD_SWAP( "837a05.14t", 0x000002, 0x200000, CRC(77178633) SHA1(ececdd501d0692390325c8dad6dbb068808a8b26) ) - ROM_REGION32_BE(0x1000000, "master_cgboard", 0) // CG Board texture roms + ROM_REGION32_BE(0x1000000, "cgboard_0", 0) // CG Board texture roms ROM_LOAD32_WORD_SWAP( "837a14.32u", 0x000002, 0x400000, CRC(ff1b5d18) SHA1(7a38362170133dcc6ea01eb62981845917b85c36) ) ROM_LOAD32_WORD_SWAP( "837a13.24u", 0x000000, 0x400000, CRC(d86e10ff) SHA1(6de1179d7081d9a93ab6df47692d3efc190c38ba) ) ROM_LOAD32_WORD_SWAP( "837a16.32v", 0x800002, 0x400000, CRC(bb7a7558) SHA1(8c8cc062793c2dcfa72657b6ea0813d7223a0b87) ) @@ -2779,7 +2854,7 @@ ROM_START(gradius4u) ROM_LOAD32_WORD_SWAP( "837a04.16t", 0x000000, 0x200000, CRC(18453b59) SHA1(3c75a54d8c09c0796223b42d30fb3867a911a074) ) ROM_LOAD32_WORD_SWAP( "837a05.14t", 0x000002, 0x200000, CRC(77178633) SHA1(ececdd501d0692390325c8dad6dbb068808a8b26) ) - ROM_REGION32_BE(0x1000000, "master_cgboard", 0) // CG Board texture roms + ROM_REGION32_BE(0x1000000, "cgboard_0", 0) // CG Board texture roms ROM_LOAD32_WORD_SWAP( "837a14.32u", 0x000002, 0x400000, CRC(ff1b5d18) SHA1(7a38362170133dcc6ea01eb62981845917b85c36) ) ROM_LOAD32_WORD_SWAP( "837a13.24u", 0x000000, 0x400000, CRC(d86e10ff) SHA1(6de1179d7081d9a93ab6df47692d3efc190c38ba) ) ROM_LOAD32_WORD_SWAP( "837a16.32v", 0x800002, 0x400000, CRC(bb7a7558) SHA1(8c8cc062793c2dcfa72657b6ea0813d7223a0b87) ) @@ -2808,7 +2883,7 @@ ROM_START(gradius4a) ROM_LOAD32_WORD_SWAP( "837a04.16t", 0x000000, 0x200000, CRC(18453b59) SHA1(3c75a54d8c09c0796223b42d30fb3867a911a074) ) ROM_LOAD32_WORD_SWAP( "837a05.14t", 0x000002, 0x200000, CRC(77178633) SHA1(ececdd501d0692390325c8dad6dbb068808a8b26) ) - ROM_REGION32_BE(0x1000000, "master_cgboard", 0) // CG Board texture roms + ROM_REGION32_BE(0x1000000, "cgboard_0", 0) // CG Board texture roms ROM_LOAD32_WORD_SWAP( "837a14.32u", 0x000002, 0x400000, CRC(ff1b5d18) SHA1(7a38362170133dcc6ea01eb62981845917b85c36) ) ROM_LOAD32_WORD_SWAP( "837a13.24u", 0x000000, 0x400000, CRC(d86e10ff) SHA1(6de1179d7081d9a93ab6df47692d3efc190c38ba) ) ROM_LOAD32_WORD_SWAP( "837a16.32v", 0x800002, 0x400000, CRC(bb7a7558) SHA1(8c8cc062793c2dcfa72657b6ea0813d7223a0b87) ) @@ -2837,7 +2912,7 @@ ROM_START(gradius4ja) ROM_LOAD32_WORD_SWAP( "837a04.16t", 0x000000, 0x200000, CRC(18453b59) SHA1(3c75a54d8c09c0796223b42d30fb3867a911a074) ) ROM_LOAD32_WORD_SWAP( "837a05.14t", 0x000002, 0x200000, CRC(77178633) SHA1(ececdd501d0692390325c8dad6dbb068808a8b26) ) - ROM_REGION32_BE(0x1000000, "master_cgboard", 0) // CG Board texture roms + ROM_REGION32_BE(0x1000000, "cgboard_0", 0) // CG Board texture roms ROM_LOAD32_WORD_SWAP( "837a14.32u", 0x000002, 0x400000, CRC(ff1b5d18) SHA1(7a38362170133dcc6ea01eb62981845917b85c36) ) ROM_LOAD32_WORD_SWAP( "837a13.24u", 0x000000, 0x400000, CRC(d86e10ff) SHA1(6de1179d7081d9a93ab6df47692d3efc190c38ba) ) ROM_LOAD32_WORD_SWAP( "837a16.32v", 0x800002, 0x400000, CRC(bb7a7558) SHA1(8c8cc062793c2dcfa72657b6ea0813d7223a0b87) ) @@ -2866,7 +2941,7 @@ ROM_START(gradius4ua) ROM_LOAD32_WORD_SWAP( "837a04.16t", 0x000000, 0x200000, CRC(18453b59) SHA1(3c75a54d8c09c0796223b42d30fb3867a911a074) ) ROM_LOAD32_WORD_SWAP( "837a05.14t", 0x000002, 0x200000, CRC(77178633) SHA1(ececdd501d0692390325c8dad6dbb068808a8b26) ) - ROM_REGION32_BE(0x1000000, "master_cgboard", 0) // CG Board texture roms + ROM_REGION32_BE(0x1000000, "cgboard_0", 0) // CG Board texture roms ROM_LOAD32_WORD_SWAP( "837a14.32u", 0x000002, 0x400000, CRC(ff1b5d18) SHA1(7a38362170133dcc6ea01eb62981845917b85c36) ) ROM_LOAD32_WORD_SWAP( "837a13.24u", 0x000000, 0x400000, CRC(d86e10ff) SHA1(6de1179d7081d9a93ab6df47692d3efc190c38ba) ) ROM_LOAD32_WORD_SWAP( "837a16.32v", 0x800002, 0x400000, CRC(bb7a7558) SHA1(8c8cc062793c2dcfa72657b6ea0813d7223a0b87) ) @@ -2895,7 +2970,7 @@ ROM_START(gradius4aa) ROM_LOAD32_WORD_SWAP( "837a04.16t", 0x000000, 0x200000, CRC(18453b59) SHA1(3c75a54d8c09c0796223b42d30fb3867a911a074) ) ROM_LOAD32_WORD_SWAP( "837a05.14t", 0x000002, 0x200000, CRC(77178633) SHA1(ececdd501d0692390325c8dad6dbb068808a8b26) ) - ROM_REGION32_BE(0x1000000, "master_cgboard", 0) // CG Board texture roms + ROM_REGION32_BE(0x1000000, "cgboard_0", 0) // CG Board texture roms ROM_LOAD32_WORD_SWAP( "837a14.32u", 0x000002, 0x400000, CRC(ff1b5d18) SHA1(7a38362170133dcc6ea01eb62981845917b85c36) ) ROM_LOAD32_WORD_SWAP( "837a13.24u", 0x000000, 0x400000, CRC(d86e10ff) SHA1(6de1179d7081d9a93ab6df47692d3efc190c38ba) ) ROM_LOAD32_WORD_SWAP( "837a16.32v", 0x800002, 0x400000, CRC(bb7a7558) SHA1(8c8cc062793c2dcfa72657b6ea0813d7223a0b87) ) @@ -2924,7 +2999,7 @@ ROM_START(nbapbp) // only the PowerPC program rom present in the archive ROM_LOAD32_WORD_SWAP( "778a04.16t", 0x000000, 0x400000, CRC(62c70132) SHA1(405aed149fc51e0adfa3ace3c644e47d53cf1ee3) ) ROM_LOAD32_WORD_SWAP( "778a05.14t", 0x000002, 0x400000, CRC(03249803) SHA1(f632a5f1dfa0a8500407214df0ec8d98ce09bc2b) ) - ROM_REGION32_BE(0x1000000, "master_cgboard", 0) // CG Board texture roms + ROM_REGION32_BE(0x1000000, "cgboard_0", 0) // CG Board texture roms ROM_LOAD32_WORD_SWAP( "778a14.32u", 0x000002, 0x400000, CRC(db0c278d) SHA1(bb9884b6cdcdb707fff7e56e92e2ede062abcfd3) ) ROM_LOAD32_WORD_SWAP( "778a13.24u", 0x000000, 0x400000, CRC(47fda9cc) SHA1(4aae01c1f1861b4b12a3f9de6b39eb4d11a9736b) ) ROM_LOAD32_WORD_SWAP( "778a16.32v", 0x800002, 0x400000, CRC(6c0f46ea) SHA1(c6b9fbe14e13114a91a5925a0b46496260539687) ) @@ -2955,7 +3030,7 @@ ROM_START(nbapbpa) // only the PowerPC program rom present in the archive ROM_LOAD32_WORD_SWAP( "778a04.16t", 0x000000, 0x400000, CRC(62c70132) SHA1(405aed149fc51e0adfa3ace3c644e47d53cf1ee3) ) ROM_LOAD32_WORD_SWAP( "778a05.14t", 0x000002, 0x400000, CRC(03249803) SHA1(f632a5f1dfa0a8500407214df0ec8d98ce09bc2b) ) - ROM_REGION32_BE(0x1000000, "master_cgboard", 0) // CG Board texture roms + ROM_REGION32_BE(0x1000000, "cgboard_0", 0) // CG Board texture roms ROM_LOAD32_WORD_SWAP( "778a14.32u", 0x000002, 0x400000, CRC(db0c278d) SHA1(bb9884b6cdcdb707fff7e56e92e2ede062abcfd3) ) ROM_LOAD32_WORD_SWAP( "778a13.24u", 0x000000, 0x400000, CRC(47fda9cc) SHA1(4aae01c1f1861b4b12a3f9de6b39eb4d11a9736b) ) ROM_LOAD32_WORD_SWAP( "778a16.32v", 0x800002, 0x400000, CRC(6c0f46ea) SHA1(c6b9fbe14e13114a91a5925a0b46496260539687) ) @@ -2986,7 +3061,7 @@ ROM_START(nbapbpj) // only the PowerPC program rom present in the archive ROM_LOAD32_WORD_SWAP( "778a04.16t", 0x000000, 0x400000, CRC(62c70132) SHA1(405aed149fc51e0adfa3ace3c644e47d53cf1ee3) ) ROM_LOAD32_WORD_SWAP( "778a05.14t", 0x000002, 0x400000, CRC(03249803) SHA1(f632a5f1dfa0a8500407214df0ec8d98ce09bc2b) ) - ROM_REGION32_BE(0x1000000, "master_cgboard", 0) // CG Board texture roms + ROM_REGION32_BE(0x1000000, "cgboard_0", 0) // CG Board texture roms ROM_LOAD32_WORD_SWAP( "778a14.32u", 0x000002, 0x400000, CRC(db0c278d) SHA1(bb9884b6cdcdb707fff7e56e92e2ede062abcfd3) ) ROM_LOAD32_WORD_SWAP( "778a13.24u", 0x000000, 0x400000, CRC(47fda9cc) SHA1(4aae01c1f1861b4b12a3f9de6b39eb4d11a9736b) ) ROM_LOAD32_WORD_SWAP( "778a16.32v", 0x800002, 0x400000, CRC(6c0f46ea) SHA1(c6b9fbe14e13114a91a5925a0b46496260539687) ) @@ -3017,7 +3092,7 @@ ROM_START(nbapbpua) ROM_LOAD32_WORD_SWAP( "778a04.16t", 0x000000, 0x400000, CRC(62c70132) SHA1(405aed149fc51e0adfa3ace3c644e47d53cf1ee3) ) ROM_LOAD32_WORD_SWAP( "778a05.14t", 0x000002, 0x400000, CRC(03249803) SHA1(f632a5f1dfa0a8500407214df0ec8d98ce09bc2b) ) - ROM_REGION32_BE(0x1000000, "master_cgboard", 0) // CG Board texture roms + ROM_REGION32_BE(0x1000000, "cgboard_0", 0) // CG Board texture roms ROM_LOAD32_WORD_SWAP( "778a14.32u", 0x000002, 0x400000, CRC(db0c278d) SHA1(bb9884b6cdcdb707fff7e56e92e2ede062abcfd3) ) ROM_LOAD32_WORD_SWAP( "778a13.24u", 0x000000, 0x400000, CRC(47fda9cc) SHA1(4aae01c1f1861b4b12a3f9de6b39eb4d11a9736b) ) ROM_LOAD32_WORD_SWAP( "778a16.32v", 0x800002, 0x400000, CRC(6c0f46ea) SHA1(c6b9fbe14e13114a91a5925a0b46496260539687) ) @@ -3048,7 +3123,7 @@ ROM_START(nbapbpaa) ROM_LOAD32_WORD_SWAP( "778a04.16t", 0x000000, 0x400000, CRC(62c70132) SHA1(405aed149fc51e0adfa3ace3c644e47d53cf1ee3) ) ROM_LOAD32_WORD_SWAP( "778a05.14t", 0x000002, 0x400000, CRC(03249803) SHA1(f632a5f1dfa0a8500407214df0ec8d98ce09bc2b) ) - ROM_REGION32_BE(0x1000000, "master_cgboard", 0) // CG Board texture roms + ROM_REGION32_BE(0x1000000, "cgboard_0", 0) // CG Board texture roms ROM_LOAD32_WORD_SWAP( "778a14.32u", 0x000002, 0x400000, CRC(db0c278d) SHA1(bb9884b6cdcdb707fff7e56e92e2ede062abcfd3) ) ROM_LOAD32_WORD_SWAP( "778a13.24u", 0x000000, 0x400000, CRC(47fda9cc) SHA1(4aae01c1f1861b4b12a3f9de6b39eb4d11a9736b) ) ROM_LOAD32_WORD_SWAP( "778a16.32v", 0x800002, 0x400000, CRC(6c0f46ea) SHA1(c6b9fbe14e13114a91a5925a0b46496260539687) ) @@ -3079,7 +3154,7 @@ ROM_START(nbapbpja) ROM_LOAD32_WORD_SWAP( "778a04.16t", 0x000000, 0x400000, CRC(62c70132) SHA1(405aed149fc51e0adfa3ace3c644e47d53cf1ee3) ) ROM_LOAD32_WORD_SWAP( "778a05.14t", 0x000002, 0x400000, CRC(03249803) SHA1(f632a5f1dfa0a8500407214df0ec8d98ce09bc2b) ) - ROM_REGION32_BE(0x1000000, "master_cgboard", 0) // CG Board texture roms + ROM_REGION32_BE(0x1000000, "cgboard_0", 0) // CG Board texture roms ROM_LOAD32_WORD_SWAP( "778a14.32u", 0x000002, 0x400000, CRC(db0c278d) SHA1(bb9884b6cdcdb707fff7e56e92e2ede062abcfd3) ) ROM_LOAD32_WORD_SWAP( "778a13.24u", 0x000000, 0x400000, CRC(47fda9cc) SHA1(4aae01c1f1861b4b12a3f9de6b39eb4d11a9736b) ) ROM_LOAD32_WORD_SWAP( "778a16.32v", 0x800002, 0x400000, CRC(6c0f46ea) SHA1(c6b9fbe14e13114a91a5925a0b46496260539687) ) @@ -3110,7 +3185,7 @@ ROM_START(nbaatw) // only the PowerPC program rom present in the archive ROM_LOAD32_WORD_SWAP( "778a04.16t", 0x000000, 0x400000, CRC(62c70132) SHA1(405aed149fc51e0adfa3ace3c644e47d53cf1ee3) ) ROM_LOAD32_WORD_SWAP( "778a05.14t", 0x000002, 0x400000, CRC(03249803) SHA1(f632a5f1dfa0a8500407214df0ec8d98ce09bc2b) ) - ROM_REGION32_BE(0x1000000, "master_cgboard", 0) // CG Board texture roms + ROM_REGION32_BE(0x1000000, "cgboard_0", 0) // CG Board texture roms ROM_LOAD32_WORD_SWAP( "778a14.32u", 0x000002, 0x400000, CRC(db0c278d) SHA1(bb9884b6cdcdb707fff7e56e92e2ede062abcfd3) ) ROM_LOAD32_WORD_SWAP( "778a13.24u", 0x000000, 0x400000, CRC(47fda9cc) SHA1(4aae01c1f1861b4b12a3f9de6b39eb4d11a9736b) ) ROM_LOAD32_WORD_SWAP( "778a16.32v", 0x800002, 0x400000, CRC(6c0f46ea) SHA1(c6b9fbe14e13114a91a5925a0b46496260539687) ) @@ -3141,7 +3216,7 @@ ROM_START(nbaatwa) ROM_LOAD32_WORD_SWAP( "778a04.16t", 0x000000, 0x400000, CRC(62c70132) SHA1(405aed149fc51e0adfa3ace3c644e47d53cf1ee3) ) ROM_LOAD32_WORD_SWAP( "778a05.14t", 0x000002, 0x400000, CRC(03249803) SHA1(f632a5f1dfa0a8500407214df0ec8d98ce09bc2b) ) - ROM_REGION32_BE(0x1000000, "master_cgboard", 0) // CG Board texture roms + ROM_REGION32_BE(0x1000000, "cgboard_0", 0) // CG Board texture roms ROM_LOAD32_WORD_SWAP( "778a14.32u", 0x000002, 0x400000, CRC(db0c278d) SHA1(bb9884b6cdcdb707fff7e56e92e2ede062abcfd3) ) ROM_LOAD32_WORD_SWAP( "778a13.24u", 0x000000, 0x400000, CRC(47fda9cc) SHA1(4aae01c1f1861b4b12a3f9de6b39eb4d11a9736b) ) ROM_LOAD32_WORD_SWAP( "778a16.32v", 0x800002, 0x400000, CRC(6c0f46ea) SHA1(c6b9fbe14e13114a91a5925a0b46496260539687) ) @@ -3172,7 +3247,7 @@ ROM_START(terabrst) ROM_LOAD32_WORD_SWAP( "715a04.16t", 0x000000, 0x200000, CRC(00d9567e) SHA1(fe372399ad0ae89d557c93c3145b38e3ed0f714d) ) ROM_LOAD32_WORD_SWAP( "715a05.14t", 0x000002, 0x200000, CRC(462d53bf) SHA1(0216a84358571de6791365c69a1fa8fe2784148d) ) - ROM_REGION32_BE(0x1000000, "master_cgboard", 0) // CG Board texture roms + ROM_REGION32_BE(0x1000000, "cgboard_0", ROMREGION_ERASE00) // CG Board texture roms ROM_LOAD32_WORD_SWAP( "715a14.32u", 0x000002, 0x400000, CRC(bbb36be3) SHA1(c828d0af0546db02e87afe68423b9447db7c7e51) ) ROM_LOAD32_WORD_SWAP( "715a13.24u", 0x000000, 0x400000, CRC(dbff58a1) SHA1(f0c60bb2cbf268cfcbdd65606ebb18f1b4839c0e) ) @@ -3202,7 +3277,7 @@ ROM_START(terabrstj) ROM_LOAD32_WORD_SWAP( "715a04.16t", 0x000000, 0x200000, CRC(00d9567e) SHA1(fe372399ad0ae89d557c93c3145b38e3ed0f714d) ) ROM_LOAD32_WORD_SWAP( "715a05.14t", 0x000002, 0x200000, CRC(462d53bf) SHA1(0216a84358571de6791365c69a1fa8fe2784148d) ) - ROM_REGION32_BE(0x1000000, "master_cgboard", 0) // CG Board texture roms + ROM_REGION32_BE(0x1000000, "cgboard_0", ROMREGION_ERASE00) // CG Board texture roms ROM_LOAD32_WORD_SWAP( "715a14.32u", 0x000002, 0x400000, CRC(bbb36be3) SHA1(c828d0af0546db02e87afe68423b9447db7c7e51) ) ROM_LOAD32_WORD_SWAP( "715a13.24u", 0x000000, 0x400000, CRC(dbff58a1) SHA1(f0c60bb2cbf268cfcbdd65606ebb18f1b4839c0e) ) @@ -3232,7 +3307,7 @@ ROM_START(terabrsta) ROM_LOAD32_WORD_SWAP( "715a04.16t", 0x000000, 0x200000, CRC(00d9567e) SHA1(fe372399ad0ae89d557c93c3145b38e3ed0f714d) ) ROM_LOAD32_WORD_SWAP( "715a05.14t", 0x000002, 0x200000, CRC(462d53bf) SHA1(0216a84358571de6791365c69a1fa8fe2784148d) ) - ROM_REGION32_BE(0x1000000, "master_cgboard", 0) // CG Board texture roms + ROM_REGION32_BE(0x1000000, "cgboard_0", ROMREGION_ERASE00) // CG Board texture roms ROM_LOAD32_WORD_SWAP( "715a14.32u", 0x000002, 0x400000, CRC(bbb36be3) SHA1(c828d0af0546db02e87afe68423b9447db7c7e51) ) ROM_LOAD32_WORD_SWAP( "715a13.24u", 0x000000, 0x400000, CRC(dbff58a1) SHA1(f0c60bb2cbf268cfcbdd65606ebb18f1b4839c0e) ) @@ -3262,7 +3337,7 @@ ROM_START(terabrstua) ROM_LOAD32_WORD_SWAP( "715a04.16t", 0x000000, 0x200000, CRC(00d9567e) SHA1(fe372399ad0ae89d557c93c3145b38e3ed0f714d) ) ROM_LOAD32_WORD_SWAP( "715a05.14t", 0x000002, 0x200000, CRC(462d53bf) SHA1(0216a84358571de6791365c69a1fa8fe2784148d) ) - ROM_REGION32_BE(0x1000000, "master_cgboard", 0) // CG Board texture roms + ROM_REGION32_BE(0x1000000, "cgboard_0", ROMREGION_ERASE00) // CG Board texture roms ROM_LOAD32_WORD_SWAP( "715a14.32u", 0x000002, 0x400000, CRC(bbb36be3) SHA1(c828d0af0546db02e87afe68423b9447db7c7e51) ) ROM_LOAD32_WORD_SWAP( "715a13.24u", 0x000000, 0x400000, CRC(dbff58a1) SHA1(f0c60bb2cbf268cfcbdd65606ebb18f1b4839c0e) ) @@ -3292,7 +3367,7 @@ ROM_START(terabrstja) ROM_LOAD32_WORD_SWAP( "715a04.16t", 0x000000, 0x200000, CRC(00d9567e) SHA1(fe372399ad0ae89d557c93c3145b38e3ed0f714d) ) ROM_LOAD32_WORD_SWAP( "715a05.14t", 0x000002, 0x200000, CRC(462d53bf) SHA1(0216a84358571de6791365c69a1fa8fe2784148d) ) - ROM_REGION32_BE(0x1000000, "master_cgboard", 0) // CG Board texture roms + ROM_REGION32_BE(0x1000000, "cgboard_0", ROMREGION_ERASE00) // CG Board texture roms ROM_LOAD32_WORD_SWAP( "715a14.32u", 0x000002, 0x400000, CRC(bbb36be3) SHA1(c828d0af0546db02e87afe68423b9447db7c7e51) ) ROM_LOAD32_WORD_SWAP( "715a13.24u", 0x000000, 0x400000, CRC(dbff58a1) SHA1(f0c60bb2cbf268cfcbdd65606ebb18f1b4839c0e) ) @@ -3322,7 +3397,7 @@ ROM_START(terabrstaa) ROM_LOAD32_WORD_SWAP( "715a04.16t", 0x000000, 0x200000, CRC(00d9567e) SHA1(fe372399ad0ae89d557c93c3145b38e3ed0f714d) ) ROM_LOAD32_WORD_SWAP( "715a05.14t", 0x000002, 0x200000, CRC(462d53bf) SHA1(0216a84358571de6791365c69a1fa8fe2784148d) ) - ROM_REGION32_BE(0x1000000, "master_cgboard", 0) // CG Board texture roms + ROM_REGION32_BE(0x1000000, "cgboard_0", ROMREGION_ERASE00) // CG Board texture roms ROM_LOAD32_WORD_SWAP( "715a14.32u", 0x000002, 0x400000, CRC(bbb36be3) SHA1(c828d0af0546db02e87afe68423b9447db7c7e51) ) ROM_LOAD32_WORD_SWAP( "715a13.24u", 0x000000, 0x400000, CRC(dbff58a1) SHA1(f0c60bb2cbf268cfcbdd65606ebb18f1b4839c0e) ) @@ -3352,7 +3427,7 @@ ROM_START(thrilldgeu) // GE713UF sticker, does not have the chip at 2G since it 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, "master_cgboard", 0) // CG Board texture roms + ROM_REGION32_BE(0x1000000, "cgboard_0", ROMREGION_ERASE00) // CG Board texture roms ROM_LOAD32_WORD_SWAP( "713a13.24u", 0x000000, 0x400000, CRC(b795c66b) SHA1(6e50de0d5cc444ffaa0fec7ada8c07f643374bb2) ) ROM_LOAD32_WORD_SWAP( "713a14.32u", 0x000002, 0x400000, CRC(5275a629) SHA1(16fadef06975f0f3625cac8f84e2e77ed7d75e15) ) @@ -3376,7 +3451,7 @@ ROM_START(thrilldgnj) 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, "master_cgboard", 0) // CG Board texture roms + ROM_REGION32_BE(0x1000000, "cgboard_0", ROMREGION_ERASE00) // CG Board texture roms ROM_LOAD32_WORD_SWAP( "713a13.24u", 0x000000, 0x400000, CRC(b795c66b) SHA1(6e50de0d5cc444ffaa0fec7ada8c07f643374bb2) ) ROM_LOAD32_WORD_SWAP( "713a14.32u", 0x000002, 0x400000, CRC(5275a629) SHA1(16fadef06975f0f3625cac8f84e2e77ed7d75e15) ) @@ -3400,7 +3475,7 @@ ROM_START(thrilldgmj) 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, "master_cgboard", 0) // CG Board texture roms + ROM_REGION32_BE(0x1000000, "cgboard_0", ROMREGION_ERASE00) // CG Board texture roms ROM_LOAD32_WORD_SWAP( "713a13.24u", 0x000000, 0x400000, CRC(b795c66b) SHA1(6e50de0d5cc444ffaa0fec7ada8c07f643374bb2) ) ROM_LOAD32_WORD_SWAP( "713a14.32u", 0x000002, 0x400000, CRC(5275a629) SHA1(16fadef06975f0f3625cac8f84e2e77ed7d75e15) ) @@ -3424,7 +3499,7 @@ ROM_START(thrilldgpj) 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, "master_cgboard", 0) // CG Board texture roms + ROM_REGION32_BE(0x1000000, "cgboard_0", ROMREGION_ERASE00) // CG Board texture roms ROM_LOAD32_WORD_SWAP( "713a13.24u", 0x000000, 0x400000, CRC(b795c66b) SHA1(6e50de0d5cc444ffaa0fec7ada8c07f643374bb2) ) ROM_LOAD32_WORD_SWAP( "713a14.32u", 0x000002, 0x400000, CRC(5275a629) SHA1(16fadef06975f0f3625cac8f84e2e77ed7d75e15) ) @@ -3448,7 +3523,7 @@ ROM_START(thrilldgej) 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, "master_cgboard", 0) // CG Board texture roms + ROM_REGION32_BE(0x1000000, "cgboard_0", ROMREGION_ERASE00) // CG Board texture roms ROM_LOAD32_WORD_SWAP( "713a13.24u", 0x000000, 0x400000, CRC(b795c66b) SHA1(6e50de0d5cc444ffaa0fec7ada8c07f643374bb2) ) ROM_LOAD32_WORD_SWAP( "713a14.32u", 0x000002, 0x400000, CRC(5275a629) SHA1(16fadef06975f0f3625cac8f84e2e77ed7d75e15) ) @@ -3472,7 +3547,7 @@ ROM_START(thrilldgke) 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, "master_cgboard", 0) // CG Board texture roms + ROM_REGION32_BE(0x1000000, "cgboard_0", ROMREGION_ERASE00) // CG Board texture roms ROM_LOAD32_WORD_SWAP( "713a13.24u", 0x000000, 0x400000, CRC(b795c66b) SHA1(6e50de0d5cc444ffaa0fec7ada8c07f643374bb2) ) ROM_LOAD32_WORD_SWAP( "713a14.32u", 0x000002, 0x400000, CRC(5275a629) SHA1(16fadef06975f0f3625cac8f84e2e77ed7d75e15) ) @@ -3496,7 +3571,7 @@ ROM_START(thrilldgkee) 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, "master_cgboard", 0) // CG Board texture roms + ROM_REGION32_BE(0x1000000, "cgboard_0", ROMREGION_ERASE00) // CG Board texture roms ROM_LOAD32_WORD_SWAP( "713a13.24u", 0x000000, 0x400000, CRC(b795c66b) SHA1(6e50de0d5cc444ffaa0fec7ada8c07f643374bb2) ) ROM_LOAD32_WORD_SWAP( "713a14.32u", 0x000002, 0x400000, CRC(5275a629) SHA1(16fadef06975f0f3625cac8f84e2e77ed7d75e15) ) @@ -3520,7 +3595,7 @@ ROM_START(thrilldgkk) 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, "master_cgboard", 0) // CG Board texture roms + ROM_REGION32_BE(0x1000000, "cgboard_0", ROMREGION_ERASE00) // CG Board texture roms ROM_LOAD32_WORD_SWAP( "713a13.24u", 0x000000, 0x400000, CRC(b795c66b) SHA1(6e50de0d5cc444ffaa0fec7ada8c07f643374bb2) ) ROM_LOAD32_WORD_SWAP( "713a14.32u", 0x000002, 0x400000, CRC(5275a629) SHA1(16fadef06975f0f3625cac8f84e2e77ed7d75e15) ) @@ -3557,9 +3632,9 @@ GAME( 1998, nbapbpja, nbapbp, nbapbp, nbapbp, hornet_state, init_hornet, ROT0, GAME( 1998, nbaatw, nbapbp, nbapbp, nbapbp, hornet_state, init_hornet, ROT0, "Konami", "NBA All The Way (ver EAB)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) GAME( 1998, nbaatwa, nbapbp, nbapbp, nbapbp, hornet_state, init_hornet, ROT0, "Konami", "NBA All The Way (ver EAA)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1998, terabrst, 0, terabrst, terabrst, hornet_state, init_hornet, ROT0, "Konami", "Teraburst (1998/07/17 ver UEL)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1998, terabrstj, terabrst, terabrst, terabrst, hornet_state, init_hornet, ROT0, "Konami", "Teraburst (1998/07/17 ver JEL)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1998, terabrsta, terabrst, terabrst, terabrst, hornet_state, init_hornet, ROT0, "Konami", "Teraburst (1998/07/17 ver HEL)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1998, terabrst, 0, terabrst, terabrst, terabrst_state, init_hornet, ROT0, "Konami", "Teraburst (1998/07/17 ver UEL)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1998, terabrstj, terabrst, terabrst, terabrst, terabrst_state, init_hornet, ROT0, "Konami", "Teraburst (1998/07/17 ver JEL)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1998, terabrsta, terabrst, terabrst, terabrst, terabrst_state, init_hornet, ROT0, "Konami", "Teraburst (1998/07/17 ver HEL)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // A revision set won't boot due to issues with the cgboard/konppc. // All instances of the hanging I can find involve the 0x780c0003 register not returning how the game expected (checks against bit 7 and/or bit 6 and loops while non-zero, some kind of state?). // You can patch the following values to get the game to boot with poor performance. @@ -3567,9 +3642,9 @@ GAME( 1998, terabrsta, terabrst, terabrst, terabrst, hornet_state, init_horn // 80008a70: 40820090 -> 38600000 // 80002540: 4082fff8 -> 81810048 // 80040a88: 4082ffe8 -> 38603e80 -GAME( 1998, terabrstua, terabrst, terabrst, terabrst, hornet_state, init_hornet, ROT0, "Konami", "Teraburst (1998/02/25 ver UAA)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1998, terabrstja, terabrst, terabrst, terabrst, hornet_state, init_hornet, ROT0, "Konami", "Teraburst (1998/02/25 ver JAA)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1998, terabrstaa, terabrst, terabrst, terabrst, hornet_state, init_hornet, ROT0, "Konami", "Teraburst (1998/02/25 ver HAA)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1998, terabrstua, terabrst, terabrst, terabrst, terabrst_state, init_hornet, ROT0, "Konami", "Teraburst (1998/02/25 ver UAA)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1998, terabrstja, terabrst, terabrst, terabrst, terabrst_state, init_hornet, ROT0, "Konami", "Teraburst (1998/02/25 ver JAA)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1998, terabrstaa, terabrst, terabrst, terabrst, terabrst_state, init_hornet, ROT0, "Konami", "Teraburst (1998/02/25 ver HAA)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // identifies as NWK-LC system // heavy GFX glitches, fails wheel motor test, for now it's possible to get in game by switching "SW:2" to on @@ -3614,28 +3689,28 @@ GAMEL( 1999, sscopeucvd2, sscope, sscope_voodoo2, sscope, hornet_state, init_ssc GAMEL( 1999, sscopeecvd2, sscope, sscope_voodoo2, sscope, hornet_state, init_sscope, ROT0, "Konami", "Silent Scope (ver EAC, Ver 1.30, GQ871 Voodoo 2 video board)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE, layout_dualhsxs ) GAMEL( 1999, sscopeacvd2, sscope, sscope_voodoo2, sscope, hornet_state, init_sscope, ROT0, "Konami", "Silent Scope (ver AAC, Ver 1.30, GQ871 Voodoo 2 video board)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE, layout_dualhsxs ) -GAMEL( 2000, sscope2, 0, sscope2, sscope2, hornet_state, init_sscope2, ROT0, "Konami", "Silent Scope 2 : Dark Silhouette (ver UAD, Ver 1.03)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN, layout_dualhsxs ) -GAMEL( 2000, sscope2e, sscope2, sscope2, sscope2, hornet_state, init_sscope2, ROT0, "Konami", "Silent Scope 2 : Fatal Judgement (ver EAD, Ver 1.03)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN, layout_dualhsxs ) -GAMEL( 2000, sscope2j, sscope2, sscope2, sscope2, hornet_state, init_sscope2, ROT0, "Konami", "Silent Scope 2 : Innocent Sweeper (ver JAD, Ver 1.03)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN, layout_dualhsxs ) -GAMEL( 2000, sscope2a, sscope2, sscope2, sscope2, hornet_state, init_sscope2, ROT0, "Konami", "Silent Scope 2 : Innocent Sweeper (ver AAD, Ver 1.03)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN, layout_dualhsxs ) -GAMEL( 2000, sscope2uc, sscope2, sscope2, sscope2, hornet_state, init_sscope2, ROT0, "Konami", "Silent Scope 2 : Dark Silhouette (ver UAC, Ver 1.02)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN, layout_dualhsxs ) -GAMEL( 2000, sscope2ec, sscope2, sscope2, sscope2, hornet_state, init_sscope2, ROT0, "Konami", "Silent Scope 2 : Fatal Judgement (ver EAC, Ver 1.02)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN, layout_dualhsxs ) -GAMEL( 2000, sscope2jc, sscope2, sscope2, sscope2, hornet_state, init_sscope2, ROT0, "Konami", "Silent Scope 2 : Innocent Sweeper (ver JAC, Ver 1.02)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN, layout_dualhsxs ) -GAMEL( 2000, sscope2ac, sscope2, sscope2, sscope2, hornet_state, init_sscope2, ROT0, "Konami", "Silent Scope 2 : Innocent Sweeper (ver AAC, Ver 1.02)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN, layout_dualhsxs ) -GAMEL( 2000, sscope2ub, sscope2, sscope2, sscope2, hornet_state, init_sscope2, ROT0, "Konami", "Silent Scope 2 : Dark Silhouette (ver UAB, Ver 1.01)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN, layout_dualhsxs ) -GAMEL( 2000, sscope2eb, sscope2, sscope2, sscope2, hornet_state, init_sscope2, ROT0, "Konami", "Silent Scope 2 : Fatal Judgement (ver EAB, Ver 1.01)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN, layout_dualhsxs ) -GAMEL( 2000, sscope2jb, sscope2, sscope2, sscope2, hornet_state, init_sscope2, ROT0, "Konami", "Silent Scope 2 : Innocent Sweeper (ver JAB, Ver 1.01)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN, layout_dualhsxs ) -GAMEL( 2000, sscope2ab, sscope2, sscope2, sscope2, hornet_state, init_sscope2, ROT0, "Konami", "Silent Scope 2 : Innocent Sweeper (ver AAB, Ver 1.01)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN, layout_dualhsxs ) +GAMEL( 2000, sscope2, 0, sscope2, sscope2, sscope2_state, init_sscope2, ROT0, "Konami", "Silent Scope 2 : Dark Silhouette (ver UAD, Ver 1.03)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN, layout_dualhsxs ) +GAMEL( 2000, sscope2e, sscope2, sscope2, sscope2, sscope2_state, init_sscope2, ROT0, "Konami", "Silent Scope 2 : Fatal Judgement (ver EAD, Ver 1.03)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN, layout_dualhsxs ) +GAMEL( 2000, sscope2j, sscope2, sscope2, sscope2, sscope2_state, init_sscope2, ROT0, "Konami", "Silent Scope 2 : Innocent Sweeper (ver JAD, Ver 1.03)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN, layout_dualhsxs ) +GAMEL( 2000, sscope2a, sscope2, sscope2, sscope2, sscope2_state, init_sscope2, ROT0, "Konami", "Silent Scope 2 : Innocent Sweeper (ver AAD, Ver 1.03)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN, layout_dualhsxs ) +GAMEL( 2000, sscope2uc, sscope2, sscope2, sscope2, sscope2_state, init_sscope2, ROT0, "Konami", "Silent Scope 2 : Dark Silhouette (ver UAC, Ver 1.02)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN, layout_dualhsxs ) +GAMEL( 2000, sscope2ec, sscope2, sscope2, sscope2, sscope2_state, init_sscope2, ROT0, "Konami", "Silent Scope 2 : Fatal Judgement (ver EAC, Ver 1.02)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN, layout_dualhsxs ) +GAMEL( 2000, sscope2jc, sscope2, sscope2, sscope2, sscope2_state, init_sscope2, ROT0, "Konami", "Silent Scope 2 : Innocent Sweeper (ver JAC, Ver 1.02)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN, layout_dualhsxs ) +GAMEL( 2000, sscope2ac, sscope2, sscope2, sscope2, sscope2_state, init_sscope2, ROT0, "Konami", "Silent Scope 2 : Innocent Sweeper (ver AAC, Ver 1.02)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN, layout_dualhsxs ) +GAMEL( 2000, sscope2ub, sscope2, sscope2, sscope2, sscope2_state, init_sscope2, ROT0, "Konami", "Silent Scope 2 : Dark Silhouette (ver UAB, Ver 1.01)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN, layout_dualhsxs ) +GAMEL( 2000, sscope2eb, sscope2, sscope2, sscope2, sscope2_state, init_sscope2, ROT0, "Konami", "Silent Scope 2 : Fatal Judgement (ver EAB, Ver 1.01)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN, layout_dualhsxs ) +GAMEL( 2000, sscope2jb, sscope2, sscope2, sscope2, sscope2_state, init_sscope2, ROT0, "Konami", "Silent Scope 2 : Innocent Sweeper (ver JAB, Ver 1.01)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN, layout_dualhsxs ) +GAMEL( 2000, sscope2ab, sscope2, sscope2, sscope2, sscope2_state, init_sscope2, ROT0, "Konami", "Silent Scope 2 : Innocent Sweeper (ver AAB, Ver 1.01)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN, layout_dualhsxs ) // These versions of Silent Scope 2 run on GN715 video boards (Voodoo 1 instead of Voodoo 2) -GAMEL( 2000, sscope2vd1, sscope2, sscope2_voodoo1, sscope2, hornet_state, init_sscope2, ROT0, "Konami", "Silent Scope 2 : Dark Silhouette (ver UAD, Ver 1.03, GN715 Voodoo 1 video board)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN, layout_dualhsxs ) -GAMEL( 2000, sscope2evd1, sscope2, sscope2_voodoo1, sscope2, hornet_state, init_sscope2, ROT0, "Konami", "Silent Scope 2 : Fatal Judgement (ver EAD, Ver 1.03, GN715 Voodoo 1 video board)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN, layout_dualhsxs ) -GAMEL( 2000, sscope2jvd1, sscope2, sscope2_voodoo1, sscope2, hornet_state, init_sscope2, ROT0, "Konami", "Silent Scope 2 : Innocent Sweeper (ver JAD, Ver 1.03, GN715 Voodoo 1 video board)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN, layout_dualhsxs ) -GAMEL( 2000, sscope2avd1, sscope2, sscope2_voodoo1, sscope2, hornet_state, init_sscope2, ROT0, "Konami", "Silent Scope 2 : Innocent Sweeper (ver AAD, Ver 1.03, GN715 Voodoo 1 video board)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN, layout_dualhsxs ) -GAMEL( 2000, sscope2ucvd1, sscope2, sscope2_voodoo1, sscope2, hornet_state, init_sscope2, ROT0, "Konami", "Silent Scope 2 : Dark Silhouette (ver UAC, Ver 1.02, GN715 Voodoo 1 video board)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN, layout_dualhsxs ) -GAMEL( 2000, sscope2ecvd1, sscope2, sscope2_voodoo1, sscope2, hornet_state, init_sscope2, ROT0, "Konami", "Silent Scope 2 : Fatal Judgement (ver EAC, Ver 1.02, GN715 Voodoo 1 video board)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN, layout_dualhsxs ) -GAMEL( 2000, sscope2jcvd1, sscope2, sscope2_voodoo1, sscope2, hornet_state, init_sscope2, ROT0, "Konami", "Silent Scope 2 : Innocent Sweeper (ver JAC, Ver 1.02, GN715 Voodoo 1 video board)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN, layout_dualhsxs ) -GAMEL( 2000, sscope2acvd1, sscope2, sscope2_voodoo1, sscope2, hornet_state, init_sscope2, ROT0, "Konami", "Silent Scope 2 : Innocent Sweeper (ver AAC, Ver 1.02, GN715 Voodoo 1 video board)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN, layout_dualhsxs ) -GAMEL( 2000, sscope2ubvd1, sscope2, sscope2_voodoo1, sscope2, hornet_state, init_sscope2, ROT0, "Konami", "Silent Scope 2 : Dark Silhouette (ver UAB, Ver 1.01, GN715 Voodoo 1 video board)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN, layout_dualhsxs ) -GAMEL( 2000, sscope2ebvd1, sscope2, sscope2_voodoo1, sscope2, hornet_state, init_sscope2, ROT0, "Konami", "Silent Scope 2 : Fatal Judgement (ver EAB, Ver 1.01, GN715 Voodoo 1 video board)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN, layout_dualhsxs ) -GAMEL( 2000, sscope2jbvd1, sscope2, sscope2_voodoo1, sscope2, hornet_state, init_sscope2, ROT0, "Konami", "Silent Scope 2 : Innocent Sweeper (ver JAB, Ver 1.01, GN715 Voodoo 1 video board)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN, layout_dualhsxs ) -GAMEL( 2000, sscope2abvd1, sscope2, sscope2_voodoo1, sscope2, hornet_state, init_sscope2, ROT0, "Konami", "Silent Scope 2 : Innocent Sweeper (ver AAB, Ver 1.01, GN715 Voodoo 1 video board)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN, layout_dualhsxs ) +GAMEL( 2000, sscope2vd1, sscope2, sscope2_voodoo1, sscope2, sscope2_state, init_sscope2, ROT0, "Konami", "Silent Scope 2 : Dark Silhouette (ver UAD, Ver 1.03, GN715 Voodoo 1 video board)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN, layout_dualhsxs ) +GAMEL( 2000, sscope2evd1, sscope2, sscope2_voodoo1, sscope2, sscope2_state, init_sscope2, ROT0, "Konami", "Silent Scope 2 : Fatal Judgement (ver EAD, Ver 1.03, GN715 Voodoo 1 video board)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN, layout_dualhsxs ) +GAMEL( 2000, sscope2jvd1, sscope2, sscope2_voodoo1, sscope2, sscope2_state, init_sscope2, ROT0, "Konami", "Silent Scope 2 : Innocent Sweeper (ver JAD, Ver 1.03, GN715 Voodoo 1 video board)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN, layout_dualhsxs ) +GAMEL( 2000, sscope2avd1, sscope2, sscope2_voodoo1, sscope2, sscope2_state, init_sscope2, ROT0, "Konami", "Silent Scope 2 : Innocent Sweeper (ver AAD, Ver 1.03, GN715 Voodoo 1 video board)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN, layout_dualhsxs ) +GAMEL( 2000, sscope2ucvd1, sscope2, sscope2_voodoo1, sscope2, sscope2_state, init_sscope2, ROT0, "Konami", "Silent Scope 2 : Dark Silhouette (ver UAC, Ver 1.02, GN715 Voodoo 1 video board)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN, layout_dualhsxs ) +GAMEL( 2000, sscope2ecvd1, sscope2, sscope2_voodoo1, sscope2, sscope2_state, init_sscope2, ROT0, "Konami", "Silent Scope 2 : Fatal Judgement (ver EAC, Ver 1.02, GN715 Voodoo 1 video board)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN, layout_dualhsxs ) +GAMEL( 2000, sscope2jcvd1, sscope2, sscope2_voodoo1, sscope2, sscope2_state, init_sscope2, ROT0, "Konami", "Silent Scope 2 : Innocent Sweeper (ver JAC, Ver 1.02, GN715 Voodoo 1 video board)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN, layout_dualhsxs ) +GAMEL( 2000, sscope2acvd1, sscope2, sscope2_voodoo1, sscope2, sscope2_state, init_sscope2, ROT0, "Konami", "Silent Scope 2 : Innocent Sweeper (ver AAC, Ver 1.02, GN715 Voodoo 1 video board)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN, layout_dualhsxs ) +GAMEL( 2000, sscope2ubvd1, sscope2, sscope2_voodoo1, sscope2, sscope2_state, init_sscope2, ROT0, "Konami", "Silent Scope 2 : Dark Silhouette (ver UAB, Ver 1.01, GN715 Voodoo 1 video board)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN, layout_dualhsxs ) +GAMEL( 2000, sscope2ebvd1, sscope2, sscope2_voodoo1, sscope2, sscope2_state, init_sscope2, ROT0, "Konami", "Silent Scope 2 : Fatal Judgement (ver EAB, Ver 1.01, GN715 Voodoo 1 video board)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN, layout_dualhsxs ) +GAMEL( 2000, sscope2jbvd1, sscope2, sscope2_voodoo1, sscope2, sscope2_state, init_sscope2, ROT0, "Konami", "Silent Scope 2 : Innocent Sweeper (ver JAB, Ver 1.01, GN715 Voodoo 1 video board)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN, layout_dualhsxs ) +GAMEL( 2000, sscope2abvd1, sscope2, sscope2_voodoo1, sscope2, sscope2_state, init_sscope2, ROT0, "Konami", "Silent Scope 2 : Innocent Sweeper (ver AAB, Ver 1.01, GN715 Voodoo 1 video board)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN, layout_dualhsxs ) diff --git a/src/mame/konami/konppc.cpp b/src/mame/konami/konppc.cpp index 331be121e5f..1dcbd49af86 100644 --- a/src/mame/konami/konppc.cpp +++ b/src/mame/konami/konppc.cpp @@ -5,8 +5,20 @@ #include "emu.h" #include "konppc.h" -#define DSP_BANK_SIZE 0x10000 -#define DSP_BANK_SIZE_WORD (DSP_BANK_SIZE / 4) +#define LOG_COMM (1 << 1) +#define LOG_SHARED (1 << 2) + +#define LOG_ALL (LOG_COMM | LOG_SHARED) + +#define VERBOSE (0) + +#include "logmacro.h" + +#define LOGCOMM(...) LOGMASKED(LOG_COMM, __VA_ARGS__) +#define LOGSHARED(...) LOGMASKED(LOG_SHARED, __VA_ARGS__) + +static constexpr unsigned DSP_BANK_SIZE = 0x10000; +static constexpr unsigned DSP_BANK_SIZE_WORD = (DSP_BANK_SIZE / 4); /*****************************************************************************/ @@ -15,12 +27,13 @@ DEFINE_DEVICE_TYPE(KONPPC, konppc_device, "konppc", "Konami PowerPC Common Funct konppc_device::konppc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : device_t(mconfig, KONPPC, tag, owner, clock) - , m_dsp(*this, {"^dsp", "^dsp2"}) - , m_k033906(*this, "^k033906_%u", 1U) - , m_voodoo(*this, "^voodoo%u", 0U) - , cgboard_type(0) - , num_cgboards(0) - //, cgboard_id(MAX_CG_BOARDS) + , m_dsp(*this, {finder_base::DUMMY_TAG, finder_base::DUMMY_TAG}) + , m_k033906(*this, {finder_base::DUMMY_TAG, finder_base::DUMMY_TAG}) + , m_voodoo(*this, {finder_base::DUMMY_TAG, finder_base::DUMMY_TAG}) + , m_texture_bank(*this, {finder_base::DUMMY_TAG, finder_base::DUMMY_TAG}) + , m_cgboard_type(0) + , m_num_cgboards(0) + //, m_cgboard_id(MAX_CG_BOARDS) { } @@ -28,91 +41,81 @@ konppc_device::konppc_device(const machine_config &mconfig, const char *tag, dev void konppc_device::device_start() { - int i; - - for (i=0; i < num_cgboards; i++) + for (int i = 0; i < m_num_cgboards; i++) { - dsp_comm_ppc[i][0] = 0x00; - dsp_comm_ppc[i][1] = 0x00; - dsp_comm_sharc[i][0] = 0x00; - dsp_comm_sharc[i][1] = 0x00; - dsp_shared_ram[i] = std::make_unique(DSP_BANK_SIZE * 2/4); - dsp_shared_ram_bank[i] = 0; + m_dsp_comm_ppc[i][0] = 0x00; + m_dsp_comm_ppc[i][1] = 0x00; + m_dsp_comm_sharc[i][0] = 0x00; + m_dsp_comm_sharc[i][1] = 0x00; + m_dsp_shared_ram[i] = std::make_unique(DSP_BANK_SIZE * 2/4); + m_dsp_shared_ram_bank[i] = 0; - dsp_state[i] = 0x80; - texture_bank[i] = nullptr; + m_dsp_state[i] = 0x80; - nwk_device_sel[i] = 0; - nwk_fifo_read_ptr[i] = 0; - nwk_fifo_write_ptr[i] = 0; + m_nwk_device_sel[i] = 0; + m_nwk_fifo_read_ptr[i] = 0; + m_nwk_fifo_write_ptr[i] = 0; - nwk_fifo[i] = std::make_unique(0x800); - nwk_ram[i] = std::make_unique(0x2000); + m_nwk_fifo[i] = std::make_unique(0x800); + m_nwk_ram[i] = std::make_unique(0x2000); - save_item(NAME(dsp_comm_ppc[i]), i); - save_item(NAME(dsp_comm_sharc[i]), i); - save_item(NAME(dsp_shared_ram_bank[i]), i); - save_pointer(NAME(dsp_shared_ram[i]), DSP_BANK_SIZE * 2 / sizeof(dsp_shared_ram[i][0]), i); - save_item(NAME(dsp_state[i]), i); - save_item(NAME(nwk_device_sel[i]), i); - save_item(NAME(nwk_fifo_read_ptr[i]), i); - save_item(NAME(nwk_fifo_write_ptr[i]), i); - save_pointer(NAME(nwk_fifo[i]), 0x800, i); - save_pointer(NAME(nwk_ram[i]), 0x2000, i); + save_item(NAME(m_dsp_comm_ppc[i]), i); + save_item(NAME(m_dsp_comm_sharc[i]), i); + save_item(NAME(m_dsp_shared_ram_bank[i]), i); + save_pointer(NAME(m_dsp_shared_ram[i]), DSP_BANK_SIZE * 2 / sizeof(m_dsp_shared_ram[i][0]), i); + save_item(NAME(m_dsp_state[i]), i); + save_item(NAME(m_nwk_device_sel[i]), i); + save_item(NAME(m_nwk_fifo_read_ptr[i]), i); + save_item(NAME(m_nwk_fifo_write_ptr[i]), i); + save_pointer(NAME(m_nwk_fifo[i]), 0x800, i); + save_pointer(NAME(m_nwk_ram[i]), 0x2000, i); } - save_item(NAME(cgboard_id)); + save_item(NAME(m_cgboard_id)); - if (cgboard_type == CGBOARD_TYPE_NWKTR) + if (m_cgboard_type == CGBOARD_TYPE_NWKTR) { - nwk_fifo_half_full_r = 0x100; - nwk_fifo_half_full_w = 0xff; - nwk_fifo_full = 0x1ff; - nwk_fifo_mask = 0x1ff; + m_nwk_fifo_half_full_r = 0x100; + m_nwk_fifo_half_full_w = 0xff; + m_nwk_fifo_full = 0x1ff; + m_nwk_fifo_mask = 0x1ff; } - if (cgboard_type == CGBOARD_TYPE_HANGPLT) + if (m_cgboard_type == CGBOARD_TYPE_HANGPLT) { - nwk_fifo_half_full_r = 0x3ff; - nwk_fifo_half_full_w = 0x400; - nwk_fifo_full = 0x7ff; - nwk_fifo_mask = 0x7ff; + m_nwk_fifo_half_full_r = 0x3ff; + m_nwk_fifo_half_full_w = 0x400; + m_nwk_fifo_full = 0x7ff; + m_nwk_fifo_mask = 0x7ff; } } void konppc_device::set_cgboard_id(int board_id) { - if (board_id > num_cgboards-1) + if (board_id > (m_num_cgboards - 1)) { - cgboard_id = MAX_CG_BOARDS; + m_cgboard_id = MAX_CG_BOARDS; } else { - cgboard_id = board_id; + m_cgboard_id = board_id; } } int konppc_device::get_cgboard_id(void) { - if (cgboard_id > num_cgboards-1) + if (m_cgboard_id > (m_num_cgboards - 1)) { return 0; } else { - return cgboard_id; + return m_cgboard_id; } } -void konppc_device::set_cgboard_texture_bank(int board, const char *bank, uint8_t *rom) -{ - texture_bank[board] = bank; - - machine().root_device().membank(bank)->configure_entries(0, 2, rom, 0x800000); -} - bool konppc_device::output_3d_enabled() { - if (cgboard_id < MAX_CG_BOARDS) - return enable_3d[cgboard_id]; + if (m_cgboard_id < MAX_CG_BOARDS) + return m_enable_3d[m_cgboard_id]; else return false; } @@ -123,10 +126,11 @@ bool konppc_device::output_3d_enabled() uint32_t konppc_device::cgboard_dsp_comm_r_ppc(offs_t offset, uint32_t mem_mask) { - if (cgboard_id < MAX_CG_BOARDS) + if (m_cgboard_id < MAX_CG_BOARDS) { -// osd_printf_debug("%s dsp_cmd_r: (board %d) %08X, %08X\n", machine().describe_context(), cgboard_id, offset, mem_mask); - return dsp_comm_sharc[cgboard_id][offset] | (dsp_state[cgboard_id] << 16); + if (!machine().side_effects_disabled()) + LOGCOMM("%s cgboard_dsp_comm_r_ppc: (board %d) %08X & %08X\n", machine().describe_context(), m_cgboard_id, offset, mem_mask); + return m_dsp_comm_sharc[m_cgboard_id][offset] | (m_dsp_state[m_cgboard_id] << 16); } else { @@ -136,46 +140,46 @@ uint32_t konppc_device::cgboard_dsp_comm_r_ppc(offs_t offset, uint32_t mem_mask) void konppc_device::cgboard_dsp_comm_w_ppc(offs_t offset, uint32_t data, uint32_t mem_mask) { -// osd_printf_debug("%s dsp_cmd_w: (board %d) %08X, %08X, %08X\n", machine().describe_context(), cgboard_id, data, offset, mem_mask); + LOGCOMM("%s cgboard_dsp_comm_w_ppc: (board %d) %08X = %08X & %08X\n", machine().describe_context(), m_cgboard_id, offset, data, mem_mask); - if (cgboard_id < MAX_CG_BOARDS) + if (m_cgboard_id < MAX_CG_BOARDS) { - cpu_device &dsp = *m_dsp[cgboard_id]; + cpu_device &dsp = *m_dsp[m_cgboard_id]; if (offset == 0) { if (ACCESSING_BITS_24_31) { - assert(cgboard_id >= 0); - dsp_shared_ram_bank[cgboard_id] = (data >> 24) & 0x1; + assert(m_cgboard_id >= 0); + m_dsp_shared_ram_bank[m_cgboard_id] = BIT(data, 24); - if (data & 0x80000000) - dsp_state[cgboard_id] |= 0x10; + if (BIT(data, 31)) + m_dsp_state[m_cgboard_id] |= 0x10; - if (m_k033906[cgboard_id].found()) /* zr107.c has no PCI and some games only have one PCI Bridge */ - m_k033906[cgboard_id]->set_reg((data & 0x20000000) ? 1 : 0); + if (m_k033906[m_cgboard_id].found()) /* konami/zr107.cpp has no PCI and some games only have one PCI Bridge */ + m_k033906[m_cgboard_id]->set_reg(BIT(data, 29)); - if (data & 0x10000000) + if (BIT(data, 28)) dsp.set_input_line(INPUT_LINE_RESET, CLEAR_LINE); else dsp.set_input_line(INPUT_LINE_RESET, ASSERT_LINE); - if (data & 0x02000000) + if (BIT(data, 25)) dsp.set_input_line(INPUT_LINE_IRQ0, ASSERT_LINE); - if (data & 0x04000000) + if (BIT(data, 26)) dsp.set_input_line(INPUT_LINE_IRQ1, ASSERT_LINE); } if (ACCESSING_BITS_16_23) { - enable_3d[cgboard_id] = (data & 0x400000) ? true : false; + m_enable_3d[m_cgboard_id] = BIT(data, 22) ? true : false; } if (ACCESSING_BITS_0_7) - dsp_comm_ppc[cgboard_id][offset] = data & 0xff; + m_dsp_comm_ppc[m_cgboard_id][offset] = data & 0xff; } else - dsp_comm_ppc[cgboard_id][offset] = data; + m_dsp_comm_ppc[m_cgboard_id][offset] = data; } } @@ -183,9 +187,9 @@ void konppc_device::cgboard_dsp_comm_w_ppc(offs_t offset, uint32_t data, uint32_ uint32_t konppc_device::cgboard_dsp_shared_r_ppc(offs_t offset) { - if (cgboard_id < MAX_CG_BOARDS) + if (m_cgboard_id < MAX_CG_BOARDS) { - return dsp_shared_ram[cgboard_id][offset + (dsp_shared_ram_bank[cgboard_id] * DSP_BANK_SIZE_WORD)]; + return m_dsp_shared_ram[m_cgboard_id][offset + (m_dsp_shared_ram_bank[m_cgboard_id] * DSP_BANK_SIZE_WORD)]; } else { @@ -195,10 +199,10 @@ uint32_t konppc_device::cgboard_dsp_shared_r_ppc(offs_t offset) void konppc_device::cgboard_dsp_shared_w_ppc(offs_t offset, uint32_t data, uint32_t mem_mask) { - if (cgboard_id < MAX_CG_BOARDS) + if (m_cgboard_id < MAX_CG_BOARDS) { machine().scheduler().trigger(10000); // Remove the timeout (a part of the GTI Club FIFO test workaround) - COMBINE_DATA(dsp_shared_ram[cgboard_id].get() + (offset + (dsp_shared_ram_bank[cgboard_id] * DSP_BANK_SIZE_WORD))); + COMBINE_DATA(m_dsp_shared_ram[m_cgboard_id].get() + (offset + (m_dsp_shared_ram_bank[m_cgboard_id] * DSP_BANK_SIZE_WORD))); } } @@ -208,7 +212,7 @@ void konppc_device::cgboard_dsp_shared_w_ppc(offs_t offset, uint32_t data, uint3 uint32_t konppc_device::dsp_comm_sharc_r(int board, int offset) { - return dsp_comm_ppc[board][offset]; + return m_dsp_comm_ppc[board][offset]; } void konppc_device::dsp_comm_sharc_w(int board, int offset, uint32_t data) @@ -218,20 +222,20 @@ void konppc_device::dsp_comm_sharc_w(int board, int offset, uint32_t data) fatalerror("dsp_comm_w: %08X, %08X\n", data, offset); } - switch (cgboard_type) + switch (m_cgboard_type) { case CGBOARD_TYPE_ZR107: case CGBOARD_TYPE_GTICLUB: { - //m_dsp[0]->set_input_line(SHARC_INPUT_FLAG0, ASSERT_LINE); - m_dsp[0]->set_flag_input(0, ASSERT_LINE); + //m_dsp[board]->set_input_line(SHARC_INPUT_FLAG0, ASSERT_LINE); + m_dsp[board]->set_flag_input(0, ASSERT_LINE); if (offset == 1) { if (data & 0x03) { - m_dsp[0]->set_input_line(INPUT_LINE_IRQ2, ASSERT_LINE); - m_dsp[0]->abort_timeslice(); + m_dsp[board]->set_input_line(INPUT_LINE_IRQ2, ASSERT_LINE); + m_dsp[board]->abort_timeslice(); } } break; @@ -242,17 +246,16 @@ void konppc_device::dsp_comm_sharc_w(int board, int offset, uint32_t data) { if (offset == 1) { - nwk_device_sel[board] = data; + m_nwk_device_sel[board] = data; - if (data & 0x01 || data & 0x10) + if (BIT(data, 0) || BIT(data, 4)) { m_dsp[board]->set_flag_input(1, ASSERT_LINE); } - if (texture_bank[board] != nullptr) + if (m_texture_bank[board] != nullptr) { - int offset = (data & 0x08) ? 1 : 0; - machine().root_device().membank(texture_bank[board])->set_entry(offset); + m_texture_bank[board]->set_entry(BIT(data, 3)); } } break; @@ -262,96 +265,55 @@ void konppc_device::dsp_comm_sharc_w(int board, int offset, uint32_t data) { if (offset == 1) { - if (texture_bank[board] != nullptr) + if (m_texture_bank[board] != nullptr) { - int offset = (data & 0x08) ? 1 : 0; - - machine().root_device().membank(texture_bank[board])->set_entry(offset); + m_texture_bank[board]->set_entry(BIT(data, 3)); } } break; } } -// printf("%s:cgboard_dsp_comm_w_sharc: %08X, %08X, %08X\n", machine().describe_context().c_str(), data, offset, mem_mask); + LOGCOMM("%s:dsp_comm_sharc_w: %08X = %08X\n", machine().describe_context().c_str(), offset, data); - dsp_comm_sharc[board][offset] = data; + m_dsp_comm_sharc[board][offset] = data; } uint32_t konppc_device::dsp_shared_ram_r_sharc(int board, int offset) { -// printf("dsp_shared_r: (board %d) %08X, (%08X, %08X)\n", cgboard_id, offset, (uint32_t)dsp_shared_ram[(offset >> 1)], (uint32_t)dsp_shared_ram[offset]); + if (!machine().side_effects_disabled()) + LOGSHARED("dsp_shared_ram_r_sharc: (board %d) %08X = %08X\n", board, offset, (uint32_t)m_dsp_shared_ram[board][ + ((m_dsp_shared_ram_bank[board] ^ 1) * DSP_BANK_SIZE_WORD)]); - if (offset & 0x1) + if (BIT(offset, 0)) { - return (dsp_shared_ram[board][(offset >> 1) + ((dsp_shared_ram_bank[board] ^ 1) * DSP_BANK_SIZE_WORD)] >> 0) & 0xffff; + return (m_dsp_shared_ram[board][(offset >> 1) + ((m_dsp_shared_ram_bank[board] ^ 1) * DSP_BANK_SIZE_WORD)] >> 0) & 0xffff; } else { - return (dsp_shared_ram[board][(offset >> 1) + ((dsp_shared_ram_bank[board] ^ 1) * DSP_BANK_SIZE_WORD)] >> 16) & 0xffff; + return (m_dsp_shared_ram[board][(offset >> 1) + ((m_dsp_shared_ram_bank[board] ^ 1) * DSP_BANK_SIZE_WORD)] >> 16) & 0xffff; } } void konppc_device::dsp_shared_ram_w_sharc(int board, int offset, uint32_t data) { -// printf("dsp_shared_w: (board %d) %08X, %08X\n", cgboard_id, offset, data); - if (offset & 0x1) + LOGSHARED("dsp_shared_ram_w_sharc: (board %d) %08X = %08X\n", board, offset, data); + if (BIT(offset, 0)) { - dsp_shared_ram[board][(offset >> 1) + ((dsp_shared_ram_bank[board] ^ 1) * DSP_BANK_SIZE_WORD)] &= 0xffff0000; - dsp_shared_ram[board][(offset >> 1) + ((dsp_shared_ram_bank[board] ^ 1) * DSP_BANK_SIZE_WORD)] |= (data & 0xffff); + m_dsp_shared_ram[board][(offset >> 1) + ((m_dsp_shared_ram_bank[board] ^ 1) * DSP_BANK_SIZE_WORD)] &= 0xffff0000; + m_dsp_shared_ram[board][(offset >> 1) + ((m_dsp_shared_ram_bank[board] ^ 1) * DSP_BANK_SIZE_WORD)] |= (data & 0xffff); } else { - dsp_shared_ram[board][(offset >> 1) + ((dsp_shared_ram_bank[board] ^ 1) * DSP_BANK_SIZE_WORD)] &= 0x0000ffff; - dsp_shared_ram[board][(offset >> 1) + ((dsp_shared_ram_bank[board] ^ 1) * DSP_BANK_SIZE_WORD)] |= ((data & 0xffff) << 16); + m_dsp_shared_ram[board][(offset >> 1) + ((m_dsp_shared_ram_bank[board] ^ 1) * DSP_BANK_SIZE_WORD)] &= 0x0000ffff; + m_dsp_shared_ram[board][(offset >> 1) + ((m_dsp_shared_ram_bank[board] ^ 1) * DSP_BANK_SIZE_WORD)] |= ((data & 0xffff) << 16); } } -uint32_t konppc_device::cgboard_0_comm_sharc_r(offs_t offset) -{ - return dsp_comm_sharc_r(0, offset); -} - -void konppc_device::cgboard_0_comm_sharc_w(offs_t offset, uint32_t data) -{ - dsp_comm_sharc_w(0, offset, data); -} - -uint32_t konppc_device::cgboard_0_shared_sharc_r(offs_t offset) -{ - return dsp_shared_ram_r_sharc(0, offset); -} - -void konppc_device::cgboard_0_shared_sharc_w(offs_t offset, uint32_t data) -{ - dsp_shared_ram_w_sharc(0, offset, data); -} - -uint32_t konppc_device::cgboard_1_comm_sharc_r(offs_t offset) -{ - return dsp_comm_sharc_r(1, offset); -} - -void konppc_device::cgboard_1_comm_sharc_w(offs_t offset, uint32_t data) -{ - dsp_comm_sharc_w(1, offset, data); -} - -uint32_t konppc_device::cgboard_1_shared_sharc_r(offs_t offset) -{ - return dsp_shared_ram_r_sharc(1, offset); -} - -void konppc_device::cgboard_1_shared_sharc_w(offs_t offset, uint32_t data) -{ - dsp_shared_ram_w_sharc(1, offset, data); -} - /*****************************************************************************/ uint32_t konppc_device::nwk_fifo_r(int board) { - if (nwk_fifo_read_ptr[board] < nwk_fifo_half_full_r) + if (m_nwk_fifo_read_ptr[board] < m_nwk_fifo_half_full_r) { m_dsp[board]->set_flag_input(1, CLEAR_LINE); } @@ -360,7 +322,7 @@ uint32_t konppc_device::nwk_fifo_r(int board) m_dsp[board]->set_flag_input(1, ASSERT_LINE); } - if (nwk_fifo_read_ptr[board] < nwk_fifo_full) + if (m_nwk_fifo_read_ptr[board] < m_nwk_fifo_full) { m_dsp[board]->set_flag_input(2, ASSERT_LINE); } @@ -369,16 +331,18 @@ uint32_t konppc_device::nwk_fifo_r(int board) m_dsp[board]->set_flag_input(2, CLEAR_LINE); } - uint32_t data = nwk_fifo[board][nwk_fifo_read_ptr[board]]; - nwk_fifo_read_ptr[board]++; - nwk_fifo_read_ptr[board] &= nwk_fifo_mask; - + uint32_t const data = m_nwk_fifo[board][m_nwk_fifo_read_ptr[board]]; + if (!machine().side_effects_disabled()) + { + m_nwk_fifo_read_ptr[board]++; + m_nwk_fifo_read_ptr[board] &= m_nwk_fifo_mask; + } return data; } void konppc_device::nwk_fifo_w(int board, uint32_t data) { - if (nwk_fifo_write_ptr[board] < nwk_fifo_half_full_w) + if (m_nwk_fifo_write_ptr[board] < m_nwk_fifo_half_full_w) { m_dsp[board]->set_flag_input(1, ASSERT_LINE); } @@ -389,131 +353,72 @@ void konppc_device::nwk_fifo_w(int board, uint32_t data) m_dsp[board]->set_flag_input(2, ASSERT_LINE); - nwk_fifo[board][nwk_fifo_write_ptr[board]] = data; - nwk_fifo_write_ptr[board]++; - nwk_fifo_write_ptr[board] &= nwk_fifo_mask; + m_nwk_fifo[board][m_nwk_fifo_write_ptr[board]] = data; + m_nwk_fifo_write_ptr[board]++; + m_nwk_fifo_write_ptr[board] &= m_nwk_fifo_mask; } /*****************************************************************************/ /* Konami K033906 PCI bridge (most emulation is now in src/devices/machine/k033906.cpp ) */ -uint32_t konppc_device::K033906_0_r(offs_t offset) +uint32_t konppc_device::k033906_r(int board, offs_t offset) { - if (nwk_device_sel[0] & 0x01) - return nwk_fifo_r(0); + if (BIT(m_nwk_device_sel[board], 0)) + return nwk_fifo_r(board); else - return m_k033906[0]->read(offset); + return m_k033906[board]->read(offset); } -void konppc_device::K033906_0_w(offs_t offset, uint32_t data) +void konppc_device::k033906_w(int board, offs_t offset, uint32_t data) { - m_k033906[0]->write(offset, data); -} - -uint32_t konppc_device::K033906_1_r(offs_t offset) -{ - if (nwk_device_sel[1] & 0x01) - return nwk_fifo_r(1); - else - return m_k033906[1]->read(offset); -} - -void konppc_device::K033906_1_w(offs_t offset, uint32_t data) -{ - m_k033906[1]->write(offset, data); + m_k033906[board]->write(offset, data); } /*****************************************************************************/ -void konppc_device::nwk_fifo_0_w(offs_t offset, uint32_t data, uint32_t mem_mask) -{ - if (nwk_device_sel[0] & 0x01) - { - nwk_fifo_w(0, data); - } - else if (nwk_device_sel[0] & 0x02) - { - int addr = ((offset >> 8) << 9) | (offset & 0xff); - nwk_ram[0][addr] = data; - } - else - { - m_voodoo[0]->write(offset ^ 0x80000, data, mem_mask); - } -} - -void konppc_device::nwk_fifo_1_w(offs_t offset, uint32_t data, uint32_t mem_mask) -{ - if (nwk_device_sel[1] & 0x01) - { - nwk_fifo_w(1, data); - } - else if (nwk_device_sel[1] & 0x02) - { - int addr = ((offset >> 8) << 9) | (offset & 0xff); - nwk_ram[1][addr] = data; - } - else - { - m_voodoo[1]->write(offset ^ 0x80000, data, mem_mask); - } -} - -uint32_t konppc_device::nwk_voodoo_0_r(offs_t offset) -{ - if ((nwk_device_sel[0] == 0x4) && offset >= 0x100000 && offset < 0x200000) - { - return nwk_ram[0][offset & 0x1fff]; - } - else - { - return m_voodoo[0]->read(offset); - } -} - -uint32_t konppc_device::nwk_voodoo_1_r(offs_t offset) +uint32_t konppc_device::voodoo_r(int board, offs_t offset) { - if ((nwk_device_sel[1] == 0x4) && offset >= 0x100000 && offset < 0x200000) + if ((m_nwk_device_sel[board] == 0x4) && offset >= 0x100000 && offset < 0x200000) { - return nwk_ram[1][offset & 0x1fff]; + return m_nwk_ram[board][offset & 0x1fff]; } else { - return m_voodoo[1]->read(offset); + return m_voodoo[board]->read(offset); } } -void konppc_device::nwk_voodoo_0_w(offs_t offset, uint32_t data, uint32_t mem_mask) +void konppc_device::voodoo_w(int board, offs_t offset, uint32_t data, uint32_t mem_mask) { - if (nwk_device_sel[0] & 0x01) + if (BIT(m_nwk_device_sel[board], 0)) { - nwk_fifo_w(0, data); + nwk_fifo_w(board, data); } - else if (nwk_device_sel[0] & 0x02) + else if (BIT(m_nwk_device_sel[board], 1)) { - int addr = ((offset >> 8) << 9) | (offset & 0xff); - nwk_ram[0][addr] = data; + int const addr = ((offset >> 8) << 9) | (offset & 0xff); + m_nwk_ram[board][addr] = data; } else { - m_voodoo[0]->write(offset, data, mem_mask); + m_voodoo[board]->write(offset, data, mem_mask); } } -void konppc_device::nwk_voodoo_1_w(offs_t offset, uint32_t data, uint32_t mem_mask) +void konppc_device::voodoo_fifo_w(int board, offs_t offset, uint32_t data, uint32_t mem_mask) { - if (nwk_device_sel[1] & 0x01) + if (BIT(m_nwk_device_sel[board], 0)) { - nwk_fifo_w(1, data); + nwk_fifo_w(board, data); } - else if (nwk_device_sel[1] & 0x02) + else if (BIT(m_nwk_device_sel[board], 1)) { - int addr = ((offset >> 8) << 9) | (offset & 0xff); - nwk_ram[1][addr] = data; + int const addr = ((offset >> 8) << 9) | (offset & 0xff); + m_nwk_ram[board][addr] = data; } else { - m_voodoo[1]->write(offset, data, mem_mask); + m_voodoo[board]->write(offset ^ 0x80000, data, mem_mask); } } diff --git a/src/mame/konami/konppc.h b/src/mame/konami/konppc.h index e6daac9bfd2..6ee1630f387 100644 --- a/src/mame/konami/konppc.h +++ b/src/mame/konami/konppc.h @@ -23,12 +23,17 @@ public: // construction/destruction konppc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - void set_num_boards(int num) { num_cgboards = num; } - void set_cbboard_type(int cgtype) { cgboard_type = cgtype; } + // configurations + template void set_dsp_tag(int which, T &&tag) { m_dsp[which].set_tag(std::forward(tag)); } + template void set_k033906_tag(int which, T &&tag) { m_k033906[which].set_tag(std::forward(tag)); } + template void set_voodoo_tag(int which, T &&tag) { m_voodoo[which].set_tag(std::forward(tag)); } + template void set_texture_bank_tag(int which, T &&tag) { m_texture_bank[which].set_tag(std::forward(tag)); } + + void set_num_boards(int num) { m_num_cgboards = num; } + void set_cgboard_type(int cgtype) { m_cgboard_type = cgtype; } void set_cgboard_id(int board_id); int get_cgboard_id(void); - void set_cgboard_texture_bank(int board, const char *bank, uint8_t *rom); bool output_3d_enabled(); @@ -38,70 +43,70 @@ public: uint32_t cgboard_dsp_shared_r_ppc(offs_t offset); void cgboard_dsp_shared_w_ppc(offs_t offset, uint32_t data, uint32_t mem_mask = ~0); - uint32_t cgboard_0_comm_sharc_r(offs_t offset); - void cgboard_0_comm_sharc_w(offs_t offset, uint32_t data); - uint32_t cgboard_0_shared_sharc_r(offs_t offset); - void cgboard_0_shared_sharc_w(offs_t offset, uint32_t data); - uint32_t cgboard_1_comm_sharc_r(offs_t offset); - void cgboard_1_comm_sharc_w(offs_t offset, uint32_t data); - uint32_t cgboard_1_shared_sharc_r(offs_t offset); - void cgboard_1_shared_sharc_w(offs_t offset, uint32_t data); - - uint32_t K033906_0_r(offs_t offset); - void K033906_0_w(offs_t offset, uint32_t data); - uint32_t K033906_1_r(offs_t offset); - void K033906_1_w(offs_t offset, uint32_t data); - - void nwk_fifo_0_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0); - void nwk_fifo_1_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0); - uint32_t nwk_voodoo_0_r(offs_t offset); - uint32_t nwk_voodoo_1_r(offs_t offset); - void nwk_voodoo_0_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0); - void nwk_voodoo_1_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0); + template uint32_t cgboard_comm_sharc_r(offs_t offset) { return dsp_comm_sharc_r(Board, offset); } + template void cgboard_comm_sharc_w(offs_t offset, uint32_t data) { dsp_comm_sharc_w(Board, offset, data); } + template uint32_t cgboard_shared_sharc_r(offs_t offset) { return dsp_shared_ram_r_sharc(Board, offset); } + template void cgboard_shared_sharc_w(offs_t offset, uint32_t data) { dsp_shared_ram_w_sharc(Board, offset, data); } + + template uint32_t cgboard_k033906_r(offs_t offset) { return k033906_r(Board, offset); } + template void cgboard_k033906_w(offs_t offset, uint32_t data) { k033906_w(Board, offset, data); } + + template void nwk_voodoo_fifo_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0) { voodoo_fifo_w(Board, offset, data, mem_mask); } + template uint32_t nwk_voodoo_r(offs_t offset) { return voodoo_r(Board, offset); } + template void nwk_voodoo_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0) { voodoo_w(Board, offset, data, mem_mask); } + protected: // device-level overrides virtual void device_start() override ATTR_COLD; - uint32_t dsp_comm_sharc_r(int board, int offset); - void dsp_comm_sharc_w(int board, int offset, uint32_t data); - uint32_t dsp_shared_ram_r_sharc(int board, int offset); - void dsp_shared_ram_w_sharc(int board, int offset, uint32_t data); - - uint32_t nwk_fifo_r(int board); - void nwk_fifo_w(int board, uint32_t data); private: // device finders optional_device_array m_dsp; optional_device_array m_k033906; optional_device_array m_voodoo; + optional_memory_bank_array<2> m_texture_bank; // internal state - uint32_t dsp_comm_ppc[MAX_CG_BOARDS][2]; - uint32_t dsp_comm_sharc[MAX_CG_BOARDS][2]; - uint8_t dsp_shared_ram_bank[MAX_CG_BOARDS]; + uint32_t m_dsp_comm_ppc[MAX_CG_BOARDS][2]; + uint32_t m_dsp_comm_sharc[MAX_CG_BOARDS][2]; + uint8_t m_dsp_shared_ram_bank[MAX_CG_BOARDS]; - int32_t cgboard_id = 0; - int32_t cgboard_type; - int32_t num_cgboards; + int32_t m_cgboard_id = 0; + int32_t m_cgboard_type; + int32_t m_num_cgboards; - std::unique_ptr dsp_shared_ram[MAX_CG_BOARDS]; + std::unique_ptr m_dsp_shared_ram[MAX_CG_BOARDS]; - uint32_t dsp_state[MAX_CG_BOARDS]{}; - uint32_t nwk_device_sel[MAX_CG_BOARDS]{}; - const char *texture_bank[MAX_CG_BOARDS]{}; + uint32_t m_dsp_state[MAX_CG_BOARDS]{}; + uint32_t m_nwk_device_sel[MAX_CG_BOARDS]{}; - int nwk_fifo_half_full_r = 0; - int nwk_fifo_half_full_w = 0; - int nwk_fifo_full = 0; - int nwk_fifo_mask = 0; + int m_nwk_fifo_half_full_r = 0; + int m_nwk_fifo_half_full_w = 0; + int m_nwk_fifo_full = 0; + int m_nwk_fifo_mask = 0; - bool enable_3d[MAX_CG_BOARDS]{}; + bool m_enable_3d[MAX_CG_BOARDS]{}; + + std::unique_ptr m_nwk_fifo[MAX_CG_BOARDS]; + int32_t m_nwk_fifo_read_ptr[MAX_CG_BOARDS]; + int32_t m_nwk_fifo_write_ptr[MAX_CG_BOARDS]; + + std::unique_ptr m_nwk_ram[MAX_CG_BOARDS]; + + uint32_t dsp_comm_sharc_r(int board, int offset); + void dsp_comm_sharc_w(int board, int offset, uint32_t data); + uint32_t dsp_shared_ram_r_sharc(int board, int offset); + void dsp_shared_ram_w_sharc(int board, int offset, uint32_t data); + + uint32_t nwk_fifo_r(int board); + void nwk_fifo_w(int board, uint32_t data); - std::unique_ptr nwk_fifo[MAX_CG_BOARDS]; - int32_t nwk_fifo_read_ptr[MAX_CG_BOARDS]; - int32_t nwk_fifo_write_ptr[MAX_CG_BOARDS]; + uint32_t k033906_r(int board, offs_t offset); + void k033906_w(int board, offs_t offset, uint32_t data); - std::unique_ptr nwk_ram[MAX_CG_BOARDS]; + uint32_t voodoo_r(int board, offs_t offset); + void voodoo_w(int board, offs_t offset, uint32_t data, uint32_t mem_mask); + void voodoo_fifo_w(int board, offs_t offset, uint32_t data, uint32_t mem_mask); }; diff --git a/src/mame/konami/nwk-tr.cpp b/src/mame/konami/nwk-tr.cpp index c110a753c57..7964e2ef5e8 100644 --- a/src/mame/konami/nwk-tr.cpp +++ b/src/mame/konami/nwk-tr.cpp @@ -257,22 +257,22 @@ public: m_work_ram(*this, "work_ram"), m_maincpu(*this, "maincpu"), m_audiocpu(*this, "audiocpu"), - m_dsp(*this, {"dsp", "dsp2"}), // TODO: hardcoded tags in machine/konpc.cpp + m_dsp(*this, "dsp%u", 1U), m_k056800(*this, "k056800"), m_k001604(*this, "k001604_%u", 1U), m_konppc(*this, "konppc"), m_adc12138(*this, "adc12138"), m_voodoo(*this, "voodoo%u", 0U), + m_palette(*this, "palette%u", 1U), + m_sharc_dataram(*this, "sharc%u_dataram", 0U), + m_jvs_host(*this, "jvs_host"), + m_gn676_lan(*this, "gn676_lan"), + m_cgboard_bank(*this, "cgboard_%u_bank", 0U), m_in(*this, "IN%u", 0U), m_dsw(*this, "DSW"), m_analog(*this, "ANALOG%u", 1U), m_pcb_digit(*this, "pcbdigit%u", 0U), - m_palette(*this, "palette"), - m_generic_paletteram_32(*this, "paletteram"), - m_sharc_dataram(*this, "sharc%u_dataram", 0U), - m_cg_view(*this, "cg_view"), - m_jvs_host(*this, "jvs_host"), - m_gn676_lan(*this, "gn676_lan") + m_cg_view(*this, "cg_view") { } void nwktr(machine_config &config); @@ -300,21 +300,20 @@ private: required_device m_konppc; required_device m_adc12138; required_device_array m_voodoo; + required_device_array m_palette; + optional_shared_ptr_array m_sharc_dataram; + required_device m_jvs_host; + required_device m_gn676_lan; + required_memory_bank_array<2> m_cgboard_bank; required_ioport_array<3> m_in; required_ioport m_dsw; required_ioport_array<5> m_analog; output_finder<2> m_pcb_digit; - required_device m_palette; - required_shared_ptr m_generic_paletteram_32; - optional_shared_ptr_array m_sharc_dataram; memory_view m_cg_view; - required_device m_jvs_host; - required_device m_gn676_lan; - emu_timer *m_sound_irq_timer; - bool m_exrgb; + emu_timer *m_sound_irq_timer = nullptr; + bool m_exrgb = false; - void paletteram32_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0); uint8_t sysreg_r(offs_t offset); void sysreg_w(offs_t offset, uint8_t data); void soundtimer_en_w(uint16_t data); @@ -327,23 +326,15 @@ private: uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); void ppc_map(address_map &map) ATTR_COLD; - void sharc0_map(address_map &map) ATTR_COLD; - void sharc1_map(address_map &map) ATTR_COLD; + template void sharc_map(address_map &map) ATTR_COLD; void sound_memmap(address_map &map) ATTR_COLD; }; -void nwktr_state::paletteram32_w(offs_t offset, uint32_t data, uint32_t mem_mask) -{ - 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)); -} - uint32_t nwktr_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - bitmap.fill(m_palette->pen(0), cliprect); + bitmap.fill(m_palette[0]->pen(0), cliprect); - int board = m_exrgb ? 1 : 0; + int const board = m_exrgb ? 1 : 0; m_voodoo[board]->update(bitmap, cliprect); m_k001604[0]->draw_front_layer(screen, bitmap, cliprect); // K001604 on slave board doesn't seem to output anything. Bug or intended? @@ -403,15 +394,11 @@ void nwktr_state::sysreg_w(offs_t offset, uint8_t data) { m_gn676_lan->reset_fpga_state(BIT(data, 6)); - int cs = BIT(data, 3); - int conv = BIT(data, 2); - int di = BIT(data, 1); - int sclk = BIT(data, 0); - m_adc12138->cs_w(cs); - m_adc12138->conv_w(conv); - m_adc12138->di_w(di); - m_adc12138->sclk_w(sclk); + m_adc12138->cs_w(BIT(data, 3)); + m_adc12138->conv_w(BIT(data, 2)); + m_adc12138->di_w(BIT(data, 1)); + m_adc12138->sclk_w(BIT(data, 0)); break; } @@ -423,9 +410,9 @@ void nwktr_state::sysreg_w(offs_t offset, uint8_t data) 0x10 = EXID0 0x01 = EXRGB */ - if (data & 0x80) // CG Board 1 IRQ Ack + if (BIT(data, 7)) // CG Board 1 IRQ Ack m_maincpu->set_input_line(INPUT_LINE_IRQ1, CLEAR_LINE); - if (data & 0x40) // CG Board 0 IRQ Ack + if (BIT(data, 6)) // CG Board 0 IRQ Ack m_maincpu->set_input_line(INPUT_LINE_IRQ0, CLEAR_LINE); m_konppc->set_cgboard_id((data >> 4) & 0x3); @@ -433,7 +420,7 @@ void nwktr_state::sysreg_w(offs_t offset, uint8_t data) // Racing Jam sets CG board ID to 2 when writing to the tilemap chip. // This could mean broadcast to both CG boards? - m_exrgb = data & 0x1; // Select which CG Board outputs signal + m_exrgb = BIT(data, 0); // Select which CG Board outputs signal m_cg_view.select(m_konppc->get_cgboard_id() ? 1 : 0); break; @@ -454,7 +441,7 @@ TIMER_CALLBACK_MEMBER(nwktr_state::sound_irq) void nwktr_state::soundtimer_en_w(uint16_t data) { - if (data & 1) + if (BIT(data, 0)) { // Reset and disable timer m_sound_irq_timer->adjust(attotime::from_usec(m_sound_timer_usec)); @@ -497,10 +484,11 @@ void nwktr_state::ppc_map(address_map &map) map(0x00000000, 0x003fffff).ram().share(m_work_ram); map(0x74000000, 0x7407ffff).view(m_cg_view); m_cg_view[0](0x74000000, 0x740000ff).rw(m_k001604[0], FUNC(k001604_device::reg_r), FUNC(k001604_device::reg_w)); - m_cg_view[1](0x74000000, 0x740000ff).rw(m_k001604[1], FUNC(k001604_device::reg_r), FUNC(k001604_device::reg_w)); - map(0x74010000, 0x7401ffff).ram().w(FUNC(nwktr_state::paletteram32_w)).share("paletteram"); + m_cg_view[0](0x74010000, 0x7401ffff).ram().w(m_palette[0], FUNC(palette_device::write32)).share("palette1"); m_cg_view[0](0x74020000, 0x7403ffff).rw(m_k001604[0], FUNC(k001604_device::tile_r), FUNC(k001604_device::tile_w)); m_cg_view[0](0x74040000, 0x7407ffff).rw(m_k001604[0], FUNC(k001604_device::char_r), FUNC(k001604_device::char_w)); + m_cg_view[1](0x74000000, 0x740000ff).rw(m_k001604[1], FUNC(k001604_device::reg_r), FUNC(k001604_device::reg_w)); + m_cg_view[1](0x74010000, 0x7401ffff).ram().w(m_palette[1], FUNC(palette_device::write32)).share("palette2"); m_cg_view[1](0x74020000, 0x7403ffff).rw(m_k001604[1], FUNC(k001604_device::tile_r), FUNC(k001604_device::tile_w)); m_cg_view[1](0x74040000, 0x7407ffff).rw(m_k001604[1], 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)); @@ -530,26 +518,16 @@ void nwktr_state::sound_memmap(address_map &map) /*****************************************************************************/ -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).ram().share(m_sharc_dataram[0]).lr32(NAME([this](offs_t offset) { return m_sharc_dataram[0][offset] & 0xffff; })); - 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("master_cgboard_bank"); -} - -void nwktr_state::sharc1_map(address_map &map) +template +void nwktr_state::sharc_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).ram().share(m_sharc_dataram[1]).lr32(NAME([this](offs_t offset) { return m_sharc_dataram[1][offset] & 0xffff; })); + map(0x0400000, 0x041ffff).rw(m_konppc, FUNC(konppc_device::cgboard_shared_sharc_r), FUNC(konppc_device::cgboard_shared_sharc_w)); + map(0x0500000, 0x05fffff).ram().share(m_sharc_dataram[Board]).lr32(NAME([this](offs_t offset) { return m_sharc_dataram[Board][offset] & 0xffff; })); map(0x1400000, 0x14fffff).ram(); - map(0x2400000, 0x27fffff).rw(m_konppc, FUNC(konppc_device::nwk_voodoo_1_r), FUNC(konppc_device::nwk_voodoo_1_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("slave_cgboard_bank"); + map(0x2400000, 0x27fffff).rw(m_konppc, FUNC(konppc_device::nwk_voodoo_r), FUNC(konppc_device::nwk_voodoo_w)); + map(0x3400000, 0x34000ff).rw(m_konppc, FUNC(konppc_device::cgboard_comm_sharc_r), FUNC(konppc_device::cgboard_comm_sharc_w)); + map(0x3500000, 0x35000ff).rw(m_konppc, FUNC(konppc_device::cgboard_k033906_r), FUNC(konppc_device::cgboard_k033906_w)); + map(0x3600000, 0x37fffff).bankr(m_cgboard_bank[Board]); } /*****************************************************************************/ @@ -675,11 +653,11 @@ void nwktr_state::nwktr(machine_config &config) ADSP21062(config, m_dsp[0], XTAL(36'000'000)); m_dsp[0]->set_boot_mode(adsp21062_device::BOOT_MODE_EPROM); - m_dsp[0]->set_addrmap(AS_DATA, &nwktr_state::sharc0_map); + m_dsp[0]->set_addrmap(AS_DATA, &nwktr_state::sharc_map<0>); ADSP21062(config, m_dsp[1], XTAL(36'000'000)); m_dsp[1]->set_boot_mode(adsp21062_device::BOOT_MODE_EPROM); - m_dsp[1]->set_addrmap(AS_DATA, &nwktr_state::sharc1_map); + m_dsp[1]->set_addrmap(AS_DATA, &nwktr_state::sharc_map<1>); config.set_maximum_quantum(attotime::from_hz(9000)); @@ -715,13 +693,14 @@ void nwktr_state::nwktr(machine_config &config) screen.set_raw(XTAL(64'000'000) / 4, 644, 44, 44 + 512, 450, 31, 31 + 400); screen.set_screen_update(FUNC(nwktr_state::screen_update)); - PALETTE(config, m_palette).set_entries(65536); + PALETTE(config, m_palette[0]).set_format(4, raw_to_rgb_converter::standard_rgb_decoder<5,5,5, 10,5,0>, 65536 / 4); + PALETTE(config, m_palette[1]).set_format(4, raw_to_rgb_converter::standard_rgb_decoder<5,5,5, 10,5,0>, 65536 / 4); K001604(config, m_k001604[0], 0); - m_k001604[0]->set_palette(m_palette); + m_k001604[0]->set_palette(m_palette[0]); K001604(config, m_k001604[1], 0); - m_k001604[1]->set_palette(m_palette); + m_k001604[1]->set_palette(m_palette[1]); SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); @@ -734,8 +713,16 @@ void nwktr_state::nwktr(machine_config &config) rfsnd.add_route(1, "rspeaker", 1.0); KONPPC(config, m_konppc, 0); + m_konppc->set_dsp_tag(0, m_dsp[0]); + m_konppc->set_dsp_tag(1, m_dsp[1]); + m_konppc->set_k033906_tag(0, "k033906_1"); + m_konppc->set_k033906_tag(1, "k033906_2"); + m_konppc->set_voodoo_tag(0, m_voodoo[0]); + m_konppc->set_voodoo_tag(1, m_voodoo[1]); + m_konppc->set_texture_bank_tag(0, m_cgboard_bank[0]); + m_konppc->set_texture_bank_tag(1, m_cgboard_bank[1]); m_konppc->set_num_boards(2); - m_konppc->set_cbboard_type(konppc_device::CGBOARD_TYPE_NWKTR); + m_konppc->set_cgboard_type(konppc_device::CGBOARD_TYPE_NWKTR); KONAMI_GN676A_LAN(config, m_gn676_lan, 0); @@ -754,7 +741,7 @@ void nwktr_state::nwktr_lan_b(machine_config &config) void nwktr_state::jamma_jvs_w(uint8_t data) { - bool accepted = m_jvs_host->write(data); + bool const accepted = m_jvs_host->write(data); if (accepted) m_jvs_host->read(); } @@ -769,15 +756,15 @@ void nwktr_state::init_nwktr() void nwktr_state::init_racingj() { init_nwktr(); - m_konppc->set_cgboard_texture_bank(0, "master_cgboard_bank", memregion("master_cgboard")->base()); - m_konppc->set_cgboard_texture_bank(0, "slave_cgboard_bank", memregion("slave_cgboard")->base()); // for some reason, additional CG roms are located on the slave CG board... + m_cgboard_bank[0]->configure_entries(0, 2, memregion("cgboard_0")->base(), 0x800000); + m_cgboard_bank[1]->configure_entries(0, 2, memregion("cgboard_1")->base(), 0x800000); // for some reason, additional CG roms are located on the slave CG board... } void nwktr_state::init_thrilld() { init_nwktr(); - m_konppc->set_cgboard_texture_bank(0, "master_cgboard_bank", memregion("master_cgboard")->base()); - m_konppc->set_cgboard_texture_bank(0, "slave_cgboard_bank", memregion("master_cgboard")->base()); // ...while this is not the case for thrilld + m_cgboard_bank[0]->configure_entries(0, 2, memregion("cgboard_0")->base(), 0); + m_cgboard_bank[1]->configure_entries(0, 2, memregion("cgboard_0")->base(), 0); // ...while this is not the case for thrilld } /*****************************************************************************/ @@ -790,11 +777,11 @@ ROM_START(racingj) 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, "master_cgboard", 0) // Master CG Board texture roms + ROM_REGION32_BE(0x1000000, "cgboard_0", ROMREGION_ERASE00) // Master 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_REGION32_BE(0x800000, "slave_cgboard", 0) // Slave CG Board texture roms + ROM_REGION32_BE(0x1000000, "cgboard_1", ROMREGION_ERASE00) // Slave 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) ) @@ -817,11 +804,11 @@ ROM_START(racingje) 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, "master_cgboard", 0) // Master CG Board texture roms + ROM_REGION32_BE(0x1000000, "cgboard_0", ROMREGION_ERASE00) // Master 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_REGION32_BE(0x800000, "slave_cgboard", 0) // Slave CG Board texture roms + ROM_REGION32_BE(0x1000000, "cgboard_1", ROMREGION_ERASE00) // Slave 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) ) @@ -844,11 +831,11 @@ ROM_START(racingjj) 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, "master_cgboard", 0) // Master CG Board texture roms + ROM_REGION32_BE(0x1000000, "cgboard_0", ROMREGION_ERASE00) // Master 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_REGION32_BE(0x800000, "slave_cgboard", 0) // Slave CG Board texture roms + ROM_REGION32_BE(0x1000000, "cgboard_1", ROMREGION_ERASE00) // Slave 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) ) @@ -871,11 +858,11 @@ ROM_START(racingja) 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, "master_cgboard", 0) // Master CG Board texture roms + ROM_REGION32_BE(0x1000000, "cgboard_0", ROMREGION_ERASE00) // Master 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_REGION32_BE(0x800000, "slave_cgboard", 0) // Slave CG Board texture roms + ROM_REGION32_BE(0x1000000, "cgboard_1", ROMREGION_ERASE00) // Slave 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) ) @@ -898,11 +885,11 @@ ROM_START(racingjm) 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, "master_cgboard", 0) // Master CG Board texture roms + ROM_REGION32_BE(0x1000000, "cgboard_0", ROMREGION_ERASE00) // Master 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_REGION32_BE(0x800000, "slave_cgboard", 0) // Slave CG Board texture roms + ROM_REGION32_BE(0x1000000, "cgboard_1", ROMREGION_ERASE00) // Slave 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) ) @@ -925,11 +912,11 @@ ROM_START(racingjme) 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, "master_cgboard", 0) // Master CG Board texture roms + ROM_REGION32_BE(0x1000000, "cgboard_0", ROMREGION_ERASE00) // Master 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_REGION32_BE(0x800000, "slave_cgboard", 0) // Slave CG Board texture roms + ROM_REGION32_BE(0x1000000, "cgboard_1", ROMREGION_ERASE00) // Slave 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) ) @@ -952,11 +939,11 @@ ROM_START(racingjmj) 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, "master_cgboard", 0) // Master CG Board texture roms + ROM_REGION32_BE(0x1000000, "cgboard_0", ROMREGION_ERASE00) // Master 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_REGION32_BE(0x800000, "slave_cgboard", 0) // Slave CG Board texture roms + ROM_REGION32_BE(0x1000000, "cgboard_1", ROMREGION_ERASE00) // Slave 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) ) @@ -979,11 +966,11 @@ ROM_START(racingjma) 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, "master_cgboard", 0) // Master CG Board texture roms + ROM_REGION32_BE(0x1000000, "cgboard_0", ROMREGION_ERASE00) // Master 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_REGION32_BE(0x800000, "slave_cgboard", 0) // Slave CG Board texture roms + ROM_REGION32_BE(0x1000000, "cgboard_1", ROMREGION_ERASE00) // Slave 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) ) @@ -1006,11 +993,11 @@ ROM_START(racingjn) 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, "master_cgboard", 0) // Master CG Board texture roms + ROM_REGION32_BE(0x1000000, "cgboard_0", ROMREGION_ERASE00) // Master 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_REGION32_BE(0x800000, "slave_cgboard", 0) // Slave CG Board texture roms + ROM_REGION32_BE(0x1000000, "cgboard_1", ROMREGION_ERASE00) // Slave 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) ) @@ -1033,11 +1020,11 @@ ROM_START(racingjne) 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, "master_cgboard", 0) // Master CG Board texture roms + ROM_REGION32_BE(0x1000000, "cgboard_0", ROMREGION_ERASE00) // Master 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_REGION32_BE(0x800000, "slave_cgboard", 0) // Slave CG Board texture roms + ROM_REGION32_BE(0x1000000, "cgboard_1", ROMREGION_ERASE00) // Slave 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) ) @@ -1060,11 +1047,11 @@ ROM_START(racingjnj) 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, "master_cgboard", 0) // Master CG Board texture roms + ROM_REGION32_BE(0x1000000, "cgboard_0", ROMREGION_ERASE00) // Master 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_REGION32_BE(0x800000, "slave_cgboard", 0) // Slave CG Board texture roms + ROM_REGION32_BE(0x1000000, "cgboard_1", ROMREGION_ERASE00) // Slave 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) ) @@ -1087,11 +1074,11 @@ ROM_START(racingjna) 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, "master_cgboard", 0) // Master CG Board texture roms + ROM_REGION32_BE(0x1000000, "cgboard_0", ROMREGION_ERASE00) // Master 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_REGION32_BE(0x800000, "slave_cgboard", 0) // Slave CG Board texture roms + ROM_REGION32_BE(0x1000000, "cgboard_1", ROMREGION_ERASE00) // Slave 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) ) @@ -1115,11 +1102,11 @@ ROM_START(racingj2) 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, "master_cgboard", 0) // Master CG Board texture roms + ROM_REGION32_BE(0x1000000, "cgboard_0", ROMREGION_ERASE00) // Master 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_REGION32_BE(0x800000, "slave_cgboard", 0) // Slave CG Board texture roms + ROM_REGION32_BE(0x1000000, "cgboard_1", ROMREGION_ERASE00) // Slave 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) ) @@ -1143,11 +1130,11 @@ ROM_START(racingj2e) 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, "master_cgboard", 0) // Master CG Board texture roms + ROM_REGION32_BE(0x1000000, "cgboard_0", ROMREGION_ERASE00) // Master 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_REGION32_BE(0x800000, "slave_cgboard", 0) // Slave CG Board texture roms + ROM_REGION32_BE(0x1000000, "cgboard_1", ROMREGION_ERASE00) // Slave 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) ) @@ -1171,11 +1158,11 @@ ROM_START(racingj2j) 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, "master_cgboard", 0) // Master CG Board texture roms + ROM_REGION32_BE(0x1000000, "cgboard_0", ROMREGION_ERASE00) // Master 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_REGION32_BE(0x800000, "slave_cgboard", 0) // Slave CG Board texture roms + ROM_REGION32_BE(0x1000000, "cgboard_1", ROMREGION_ERASE00) // Slave 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) ) @@ -1199,11 +1186,11 @@ ROM_START(racingj2a) 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, "master_cgboard", 0) // Master CG Board texture roms + ROM_REGION32_BE(0x1000000, "cgboard_0", ROMREGION_ERASE00) // Master 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_REGION32_BE(0x800000, "slave_cgboard", 0) // Slave CG Board texture roms + ROM_REGION32_BE(0x1000000, "cgboard_1", ROMREGION_ERASE00) // Slave 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) ) @@ -1227,11 +1214,11 @@ ROM_START(racingj2m) 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, "master_cgboard", 0) // Master CG Board texture roms + ROM_REGION32_BE(0x1000000, "cgboard_0", ROMREGION_ERASE00) // Master 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_REGION32_BE(0x800000, "slave_cgboard", 0) // Slave CG Board texture roms + ROM_REGION32_BE(0x1000000, "cgboard_1", ROMREGION_ERASE00) // Slave 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) ) @@ -1255,11 +1242,11 @@ ROM_START(racingj2me) 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, "master_cgboard", 0) // Master CG Board texture roms + ROM_REGION32_BE(0x1000000, "cgboard_0", ROMREGION_ERASE00) // Master 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_REGION32_BE(0x800000, "slave_cgboard", 0) // Slave CG Board texture roms + ROM_REGION32_BE(0x1000000, "cgboard_1", ROMREGION_ERASE00) // Slave 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) ) @@ -1283,11 +1270,11 @@ ROM_START(racingj2mj) 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, "master_cgboard", 0) // Master CG Board texture roms + ROM_REGION32_BE(0x1000000, "cgboard_0", ROMREGION_ERASE00) // Master 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_REGION32_BE(0x800000, "slave_cgboard", 0) // Slave CG Board texture roms + ROM_REGION32_BE(0x1000000, "cgboard_1", ROMREGION_ERASE00) // Slave 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) ) @@ -1311,11 +1298,11 @@ ROM_START(racingj2ma) 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, "master_cgboard", 0) // Master CG Board texture roms + ROM_REGION32_BE(0x1000000, "cgboard_0", ROMREGION_ERASE00) // Master 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_REGION32_BE(0x800000, "slave_cgboard", 0) // Slave CG Board texture roms + ROM_REGION32_BE(0x1000000, "cgboard_1", ROMREGION_ERASE00) // Slave 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) ) @@ -1339,11 +1326,11 @@ ROM_START(racingj2n) 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, "master_cgboard", 0) // Master CG Board texture roms + ROM_REGION32_BE(0x1000000, "cgboard_0", ROMREGION_ERASE00) // Master 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_REGION32_BE(0x800000, "slave_cgboard", 0) // Slave CG Board texture roms + ROM_REGION32_BE(0x1000000, "cgboard_1", ROMREGION_ERASE00) // Slave 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) ) @@ -1367,11 +1354,11 @@ ROM_START(racingj2ne) 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, "master_cgboard", 0) // Master CG Board texture roms + ROM_REGION32_BE(0x1000000, "cgboard_0", ROMREGION_ERASE00) // Master 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_REGION32_BE(0x800000, "slave_cgboard", 0) // Slave CG Board texture roms + ROM_REGION32_BE(0x1000000, "cgboard_1", ROMREGION_ERASE00) // Slave 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) ) @@ -1395,11 +1382,11 @@ ROM_START(racingj2nj) 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, "master_cgboard", 0) // Master CG Board texture roms + ROM_REGION32_BE(0x1000000, "cgboard_0", ROMREGION_ERASE00) // Master 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_REGION32_BE(0x800000, "slave_cgboard", 0) // Slave CG Board texture roms + ROM_REGION32_BE(0x1000000, "cgboard_1", ROMREGION_ERASE00) // Slave 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) ) @@ -1423,11 +1410,11 @@ ROM_START(racingj2na) 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, "master_cgboard", 0) // Master CG Board texture roms + ROM_REGION32_BE(0x1000000, "cgboard_0", ROMREGION_ERASE00) // Master 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_REGION32_BE(0x800000, "slave_cgboard", 0) // Slave CG Board texture roms + ROM_REGION32_BE(0x1000000, "cgboard_1", ROMREGION_ERASE00) // Slave 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) ) @@ -1450,7 +1437,7 @@ ROM_START(thrilld) 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, "master_cgboard", 0) // CG Board texture roms + ROM_REGION32_BE(0x1000000, "cgboard_0", ROMREGION_ERASE00) // 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) ) @@ -1476,7 +1463,7 @@ ROM_START(thrilldj) 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, "master_cgboard", 0) // CG Board texture roms + ROM_REGION32_BE(0x1000000, "cgboard_0", ROMREGION_ERASE00) // 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) ) @@ -1502,7 +1489,7 @@ ROM_START(thrilldja) 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, "master_cgboard", 0) // CG Board texture roms + ROM_REGION32_BE(0x1000000, "cgboard_0", ROMREGION_ERASE00) // 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) ) @@ -1528,7 +1515,7 @@ ROM_START(thrillde) 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, "master_cgboard", 0) // CG Board texture roms + ROM_REGION32_BE(0x1000000, "cgboard_0", ROMREGION_ERASE00) // 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) ) @@ -1554,7 +1541,7 @@ ROM_START(thrillda) 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, "master_cgboard", 0) // CG Board texture roms + ROM_REGION32_BE(0x1000000, "cgboard_0", ROMREGION_ERASE00) // 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) ) @@ -1580,7 +1567,7 @@ ROM_START(thrilldab) 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, "master_cgboard", 0) // CG Board texture roms + ROM_REGION32_BE(0x1000000, "cgboard_0", ROMREGION_ERASE00) // 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) ) @@ -1606,7 +1593,7 @@ ROM_START(thrilldb) 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, "master_cgboard", 0) // CG Board texture roms + ROM_REGION32_BE(0x1000000, "cgboard_0", ROMREGION_ERASE00) // 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) ) @@ -1632,7 +1619,7 @@ ROM_START(thrilldbj) 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, "master_cgboard", 0) // CG Board texture roms + ROM_REGION32_BE(0x1000000, "cgboard_0", ROMREGION_ERASE00) // 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) ) @@ -1658,7 +1645,7 @@ ROM_START(thrilldbja) 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, "master_cgboard", 0) // CG Board texture roms + ROM_REGION32_BE(0x1000000, "cgboard_0", ROMREGION_ERASE00) // 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) ) @@ -1684,7 +1671,7 @@ ROM_START(thrilldbe) 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, "master_cgboard", 0) // CG Board texture roms + ROM_REGION32_BE(0x1000000, "cgboard_0", ROMREGION_ERASE00) // 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) ) @@ -1710,7 +1697,7 @@ ROM_START(thrilldba) 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, "master_cgboard", 0) // CG Board texture roms + ROM_REGION32_BE(0x1000000, "cgboard_0", ROMREGION_ERASE00) // 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) ) @@ -1736,7 +1723,7 @@ ROM_START(thrilldbab) 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, "master_cgboard", 0) // CG Board texture roms + ROM_REGION32_BE(0x1000000, "cgboard_0", ROMREGION_ERASE00) // 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) ) diff --git a/src/mame/konami/zr107.cpp b/src/mame/konami/zr107.cpp index 037c26f7507..3df56517c8f 100644 --- a/src/mame/konami/zr107.cpp +++ b/src/mame/konami/zr107.cpp @@ -190,6 +190,15 @@ Check drivers/gticlub.cpp for details on the bottom board. #include "emupal.h" #include "speaker.h" +#define LOG_SYSREG (1 << 1) + +#define LOG_ALL (LOG_SYSREG) + +#define VERBOSE (0) + +#include "logmacro.h" + +#define LOGSYSREG(...) LOGMASKED(LOG_SYSREG, __VA_ARGS__) namespace { @@ -207,15 +216,15 @@ public: m_workram(*this, "workram"), m_k001005(*this, "k001005"), m_k001006_1(*this, "k001006_1"), + m_screen(*this, "screen"), + m_palette(*this, "palette"), + m_sharc_dataram(*this, "sharc_dataram"), + m_konppc(*this, "konppc"), m_in(*this, "IN%u", 0U), m_out4(*this, "OUT4"), m_eepromout(*this, "EEPROMOUT"), m_analog(*this, "ANALOG%u", 1U), - m_pcb_digit(*this, "pcbdigit%u", 0U), - m_screen(*this, "screen"), - m_palette(*this, "palette"), - m_sharc_dataram(*this, "sharc_dataram"), - m_konppc(*this, "konppc") + m_pcb_digit(*this, "pcbdigit%u", 0U) { } void zr107(machine_config &config); @@ -223,6 +232,9 @@ public: void driver_init(); protected: + virtual void machine_start() override ATTR_COLD; + virtual void machine_reset() override ATTR_COLD; + required_device m_maincpu; required_device m_audiocpu; required_device m_dsp; @@ -232,17 +244,17 @@ protected: required_shared_ptr m_workram; required_device m_k001005; required_device m_k001006_1; - required_ioport_array<5> m_in; - required_ioport m_out4, m_eepromout; - optional_ioport_array<3> m_analog; - output_finder<2> m_pcb_digit; required_device m_screen; required_device m_palette; required_shared_ptr m_sharc_dataram; required_device m_konppc; + required_ioport_array<5> m_in; + required_ioport m_out4, m_eepromout; + optional_ioport_array<3> m_analog; + output_finder<2> m_pcb_digit; - int m_ccu_vcth = 0; - int m_ccu_vctl = 0; + int32_t m_ccu_vcth = 0; + int32_t m_ccu_vctl = 0; uint8_t m_sound_ctrl = 0; uint8_t m_sound_intck = 0; @@ -258,9 +270,6 @@ protected: void sharc_memmap(address_map &map) ATTR_COLD; void sound_memmap(address_map &map) ATTR_COLD; - - virtual void machine_start() override ATTR_COLD; - virtual void machine_reset() override ATTR_COLD; }; class midnrun_state : public zr107_state @@ -394,7 +403,7 @@ void zr107_state::sysreg_w(offs_t offset, uint8_t data) break; case 2: // Parallel data register - osd_printf_debug("Parallel data = %02X\n", data); + LOGSYSREG("Parallel data = %02X\n", data); break; case 3: // System Register 0 @@ -410,7 +419,7 @@ void zr107_state::sysreg_w(offs_t offset, uint8_t data) */ 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); + LOGSYSREG("System register 0 = %02X\n", data); break; case 4: // System Register 1 @@ -424,20 +433,20 @@ void zr107_state::sysreg_w(offs_t offset, uint8_t data) 0x02 = ADDI (ADC DI) 0x01 = ADDSCLK (ADC SCLK) */ - if (data & 0x80) // CG Board 1 IRQ Ack + if (BIT(data, 7)) // CG Board 1 IRQ Ack m_maincpu->set_input_line(INPUT_LINE_IRQ1, CLEAR_LINE); - if (data & 0x40) // CG Board 0 IRQ Ack + if (BIT(data, 6)) // 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); + LOGSYSREG("System register 1 = %02X\n", data); break; case 5: // System Register 2 /* 0x01 = AFE */ - m_watchdog->reset_line_w(data & 0x01); + m_watchdog->reset_line_w(BIT(data, 0)); break; default: @@ -455,14 +464,17 @@ uint32_t zr107_state::ccu_r(offs_t offset, uint32_t mem_mask) // Midnight Run polls the vertical counter in vblank if (ACCESSING_BITS_24_31) { - m_ccu_vcth ^= 0xff; - r |= m_ccu_vcth << 24; + int32_t const vcth = m_ccu_vcth ^ 0xff; + if (!machine().side_effects_disabled()) + m_ccu_vcth = vcth; + r |= vcth << 24; } if (ACCESSING_BITS_8_15) { - m_ccu_vctl++; - m_ccu_vctl &= 0x1ff; - r |= (m_ccu_vctl >> 2) << 8; + int32_t const vctl = (m_ccu_vctl + 1) & 0x1ff; + if (!machine().side_effects_disabled()) + m_ccu_vctl = vctl; + r |= (vctl >> 2) << 8; } } } @@ -485,6 +497,13 @@ void zr107_state::machine_start() // configure fast RAM regions for DRC m_maincpu->ppcdrc_add_fastram(0x00000000, 0x000fffff, false, m_workram); + + m_ccu_vcth = m_ccu_vctl = 0; + + save_item(NAME(m_ccu_vcth)); + save_item(NAME(m_ccu_vctl)); + save_item(NAME(m_sound_ctrl)); + save_item(NAME(m_sound_intck)); } void midnrun_state::main_memmap(address_map &map) @@ -535,7 +554,7 @@ void jetwave_state::main_memmap(address_map &map) void zr107_state::sound_ctrl_w(uint8_t data) { - if (!(data & 1)) + if (BIT(~data, 0)) m_audiocpu->set_input_line(M68K_IRQ_2, CLEAR_LINE); m_sound_ctrl = data; @@ -556,10 +575,10 @@ void zr107_state::sound_memmap(address_map &map) 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(0x400000, 0x41ffff).rw(m_konppc, FUNC(konppc_device::cgboard_shared_sharc_r<0>), FUNC(konppc_device::cgboard_shared_sharc_w<0>)); map(0x500000, 0x5fffff).ram().share(m_sharc_dataram).lr32(NAME([this](offs_t offset) { return m_sharc_dataram[offset] & 0xffff; })); 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)); + map(0x700000, 0x7000ff).rw(m_konppc, FUNC(konppc_device::cgboard_comm_sharc_r<0>), FUNC(konppc_device::cgboard_comm_sharc_w<0>)); } /*****************************************************************************/ @@ -779,8 +798,9 @@ void zr107_state::zr107(machine_config &config) adc.set_input_callback(FUNC(zr107_state::adc0838_callback)); KONPPC(config, m_konppc, 0); + m_konppc->set_dsp_tag(0, m_dsp); m_konppc->set_num_boards(1); - m_konppc->set_cbboard_type(konppc_device::CGBOARD_TYPE_ZR107); + m_konppc->set_cgboard_type(konppc_device::CGBOARD_TYPE_ZR107); } void midnrun_state::midnrun(machine_config &config) @@ -821,20 +841,13 @@ void jetwave_state::jetwave(machine_config &config) K001006(config, m_k001006_2, 0); m_k001006_2->set_gfx_region("textures"); - m_konppc->set_cbboard_type(konppc_device::CGBOARD_TYPE_GTICLUB); + m_konppc->set_cgboard_type(konppc_device::CGBOARD_TYPE_GTICLUB); } /*****************************************************************************/ void zr107_state::driver_init() { - m_ccu_vcth = m_ccu_vctl = 0; - - save_item(NAME(m_ccu_vcth)); - save_item(NAME(m_ccu_vctl)); - save_item(NAME(m_sound_ctrl)); - save_item(NAME(m_sound_intck)); - m_dsp->enable_recompiler(); } -- cgit v1.2.3-70-g09d2