diff options
| author | 2025-11-30 19:50:33 +0100 | |
|---|---|---|
| committer | 2025-11-30 19:50:33 +0100 | |
| commit | 15143d6421b11f7ed51c44c5284fb5ef8a1681a5 (patch) | |
| tree | 2fe63c12c1c2235dbe09987efeb71e94f80b2e47 | |
| parent | 4fd09f819688eea4065282541293e270adcf9e53 (diff) | |
nwk-tr.cpp: Wheel FFB outputs for Thrill Drive, Racing Jam 1/2 (#14593)
| -rw-r--r-- | src/mame/konami/nwk-tr.cpp | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/src/mame/konami/nwk-tr.cpp b/src/mame/konami/nwk-tr.cpp index adbb33d7182..9653559e34c 100644 --- a/src/mame/konami/nwk-tr.cpp +++ b/src/mame/konami/nwk-tr.cpp @@ -192,9 +192,9 @@ Notes: 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) @@ -271,6 +271,7 @@ public: m_dsw(*this, "DSW"), m_analog(*this, "ANALOG%u", 1U), m_pcb_digit(*this, "pcbdigit%u", 0U), + m_wheel_motor(*this, "wheel_motor"), m_cg_view(*this, "cg_view") { } @@ -306,6 +307,7 @@ private: required_ioport m_dsw; required_ioport_array<5> m_analog; output_finder<2> m_pcb_digit; + output_finder<> m_wheel_motor; memory_view m_cg_view; bool m_sound_irq_enabled = false; @@ -334,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; } @@ -377,7 +379,12 @@ 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: @@ -416,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; @@ -449,6 +456,7 @@ void nwktr_state::soundtimer_ack_w(uint16_t data) void nwktr_state::machine_start() { m_pcb_digit.resolve(); + m_wheel_motor.resolve(); // set conservative DRC options m_maincpu->ppcdrc_set_options(PPCDRC_COMPATIBLE_OPTIONS); |
