From b0defe13afa7f52812c48dc9b05017f6e188cdf8 Mon Sep 17 00:00:00 2001 From: Endprodukt Date: Fri, 28 Nov 2025 16:37:09 +0100 Subject: [PATCH 1/4] Hook outputs ThrillDrive --- src/mame/konami/nwk-tr.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/mame/konami/nwk-tr.cpp b/src/mame/konami/nwk-tr.cpp index adbb33d7182bd..56eceed009f8c 100644 --- a/src/mame/konami/nwk-tr.cpp +++ b/src/mame/konami/nwk-tr.cpp @@ -271,6 +271,7 @@ class nwktr_state : public driver_device m_dsw(*this, "DSW"), m_analog(*this, "ANALOG%u", 1U), m_pcb_digit(*this, "pcbdigit%u", 0U), + m_pcb_output(*this, "pcboutput%u", 0U), m_cg_view(*this, "cg_view") { } @@ -306,6 +307,7 @@ class nwktr_state : public driver_device required_ioport m_dsw; required_ioport_array<5> m_analog; output_finder<2> m_pcb_digit; + output_finder<1> m_pcb_output; memory_view m_cg_view; bool m_sound_irq_enabled = false; @@ -379,7 +381,10 @@ void nwktr_state::sysreg_w(offs_t offset, uint8_t data) case 1: m_pcb_digit[offset] = bitswap<7>(~data , 0, 1, 2, 3, 4, 5, 6); break; - + case 2: + // NWK-TR drive commands + m_pcb_output[0] = data; + break; case 3: /* The bit used for JVSTXEN changes between 3 and 4 based on the lower 2 bits of IN2. @@ -449,6 +454,7 @@ void nwktr_state::soundtimer_ack_w(uint16_t data) void nwktr_state::machine_start() { m_pcb_digit.resolve(); + m_pcb_output.resolve(); // set conservative DRC options m_maincpu->ppcdrc_set_options(PPCDRC_COMPATIBLE_OPTIONS); From 0969c0bbe32b4610c5024a37d18547ffeefd5b02 Mon Sep 17 00:00:00 2001 From: Endprodukt Date: Fri, 28 Nov 2025 19:41:55 +0100 Subject: [PATCH 2/4] name change --- src/mame/konami/nwk-tr.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/mame/konami/nwk-tr.cpp b/src/mame/konami/nwk-tr.cpp index 56eceed009f8c..891e1f3d56b2e 100644 --- a/src/mame/konami/nwk-tr.cpp +++ b/src/mame/konami/nwk-tr.cpp @@ -271,7 +271,7 @@ class nwktr_state : public driver_device m_dsw(*this, "DSW"), m_analog(*this, "ANALOG%u", 1U), m_pcb_digit(*this, "pcbdigit%u", 0U), - m_pcb_output(*this, "pcboutput%u", 0U), + m_wheel(*this, "wheel%u", 0U), m_cg_view(*this, "cg_view") { } @@ -307,7 +307,7 @@ class nwktr_state : public driver_device required_ioport m_dsw; required_ioport_array<5> m_analog; output_finder<2> m_pcb_digit; - output_finder<1> m_pcb_output; + output_finder<1> m_wheel; memory_view m_cg_view; bool m_sound_irq_enabled = false; @@ -383,7 +383,7 @@ void nwktr_state::sysreg_w(offs_t offset, uint8_t data) break; case 2: // NWK-TR drive commands - m_pcb_output[0] = data; + m_wheel[0] = data; break; case 3: /* @@ -454,7 +454,7 @@ void nwktr_state::soundtimer_ack_w(uint16_t data) void nwktr_state::machine_start() { m_pcb_digit.resolve(); - m_pcb_output.resolve(); + m_wheel.resolve(); // set conservative DRC options m_maincpu->ppcdrc_set_options(PPCDRC_COMPATIBLE_OPTIONS); From 13c75261034541d12b18de927a1e3f8987ac7b85 Mon Sep 17 00:00:00 2001 From: Endprodukt Date: Fri, 28 Nov 2025 20:44:42 +0100 Subject: [PATCH 3/4] Name changes , remove array --- src/mame/konami/nwk-tr.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/mame/konami/nwk-tr.cpp b/src/mame/konami/nwk-tr.cpp index 891e1f3d56b2e..fe36c18541771 100644 --- a/src/mame/konami/nwk-tr.cpp +++ b/src/mame/konami/nwk-tr.cpp @@ -271,7 +271,7 @@ class nwktr_state : public driver_device m_dsw(*this, "DSW"), m_analog(*this, "ANALOG%u", 1U), m_pcb_digit(*this, "pcbdigit%u", 0U), - m_wheel(*this, "wheel%u", 0U), + m_wheel_motor(*this, "wheel_motor"), m_cg_view(*this, "cg_view") { } @@ -307,7 +307,7 @@ class nwktr_state : public driver_device required_ioport m_dsw; required_ioport_array<5> m_analog; output_finder<2> m_pcb_digit; - output_finder<1> m_wheel; + output_finder<> m_wheel_motor; memory_view m_cg_view; bool m_sound_irq_enabled = false; @@ -383,7 +383,7 @@ void nwktr_state::sysreg_w(offs_t offset, uint8_t data) break; case 2: // NWK-TR drive commands - m_wheel[0] = data; + m_wheel_motor = data; break; case 3: /* @@ -454,7 +454,7 @@ void nwktr_state::soundtimer_ack_w(uint16_t data) void nwktr_state::machine_start() { m_pcb_digit.resolve(); - m_wheel.resolve(); + m_wheel_motor.resolve(); // set conservative DRC options m_maincpu->ppcdrc_set_options(PPCDRC_COMPATIBLE_OPTIONS); From 1407337b0caf5de9df2b1b82b7c8a9dcc84b910b Mon Sep 17 00:00:00 2001 From: hap Date: Sat, 29 Nov 2025 14:45:44 +0100 Subject: [PATCH 4/4] spacing --- src/mame/konami/nwk-tr.cpp | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/mame/konami/nwk-tr.cpp b/src/mame/konami/nwk-tr.cpp index fe36c18541771..9653559e34c89 100644 --- a/src/mame/konami/nwk-tr.cpp +++ b/src/mame/konami/nwk-tr.cpp @@ -192,9 +192,9 @@ GN676 PWB(B)B TEXELFX - 3DFX 500-0004-02 BD0665.1 TMU (QFP208) PIXELFX - 3DFX 500-0003-03 F001701.1 FBI (QFP240) 001604 - Konami Custom (QFP208) - MC44200FT - Motorola MC44200FT 3 Channel Video D/A Converter (QFP44) + MC44200FT - Motorola MC44200FT 3 Channel Video D/A Converter (QFP44) MACH111 - AMD MACH111 CPLD (Stamped '03161A', PLCC44) - PLCC44_SOCKET - empty PLCC44 socket + PLCC44_SOCKET - empty PLCC44 socket AV9170 - Integrated Circuit Systems Inc. Clock Multiplier (SOIC8) AM7201 - AMD AM7201 FIFO (PLCC32) PAL1 - AMD PALCE16V8 (stamped 'N676B4', DIP20) @@ -336,7 +336,7 @@ uint32_t nwktr_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, 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? + m_k001604[0]->draw_front_layer(screen, bitmap, cliprect); // K001604 on slave board doesn't seem to output anything. Bug or intended? return 0; } @@ -379,12 +379,14 @@ void nwktr_state::sysreg_w(offs_t offset, uint8_t data) { case 0: case 1: - m_pcb_digit[offset] = bitswap<7>(~data , 0, 1, 2, 3, 4, 5, 6); + m_pcb_digit[offset] = bitswap<7>(~data, 0, 1, 2, 3, 4, 5, 6); break; + case 2: // NWK-TR drive commands m_wheel_motor = data; break; + case 3: /* The bit used for JVSTXEN changes between 3 and 4 based on the lower 2 bits of IN2. @@ -421,7 +423,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 = BIT(data, 0); // 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;