Skip to content

Commit ed20254

Browse files
committed
igt/gkigt.cpp: hookup OPLL, irq3 ties with the other QUART
1 parent 2831110 commit ed20254

File tree

1 file changed

+13
-6
lines changed

1 file changed

+13
-6
lines changed

src/mame/igt/gkigt.cpp

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,18 +8,18 @@ IGT Gameking 960
88
- complete QUART devices, and fix "QUART COUNTER NOT RUNNING" error message;
99
- interrupt system, wants IAC mode from i960;
1010
\- ms3/ms72c/bmoonii acks irq0 from quart2 CIR block only;
11-
- SENET, CMOS + RTC?
11+
- SENET device. Ties a i2c-like bus named netflex for comms with ticket printers, bill acceptors, touch screen ...
1212
\- bmoonii main board has an Actel A1020B + CY7C128A static RAM;
13-
\- all games will eventually print "RTC device: SOFTWARE", expecting an optional device somewhere;
13+
\- CMOS never get properly initialized, tied on SENET?
14+
- all games will eventually print "RTC device: SOFTWARE", expecting an optional device somewhere. Later boards have a RTC62423;
1415
- bmoonii, ms5, ms14, dblheart, mystjag: crashes in i960 with unhandled 00 after RAM error.
1516
\- Do they all need NVRAM setchips?
1617
\- Crash may be related to lack of irq service;
17-
- understand what's "netflex" device;
18-
- CMOS never get properly initialized?
19-
- Eventually uses a touchscreen;
2018
- watchdog (ADM691AAN on bmoonii board);
2119
- All games are silent;
2220
\- bmoonii has a YM2413 on main board, tied with a XTAL(3'579'545).
21+
\- some extra stuff routes thru QUART chips (namely SRESET comes from there)
22+
\- ymz should require snd roms being hooked up to its internal memory map thru ROM_COPY;
2323
- Hangs on soft reset;
2424
2525
gkigt4 debug hang points:
@@ -119,6 +119,7 @@ More chips (from eBay auction):
119119
#include "machine/nvram.h"
120120
#include "sound/ymz280b.h"
121121
#include "video/ramdac.h"
122+
#include "sound/ymopl.h"
122123

123124
#include "emupal.h"
124125
#include "screen.h"
@@ -139,6 +140,7 @@ class igt_gameking_state : public driver_device
139140
, m_bg_vram(*this, "bg_vram")
140141
, m_gfxdecode(*this, "gfxdecode")
141142
, m_quart(*this, "quart%u", 1U)
143+
, m_opll(*this, "opll")
142144
{ }
143145

144146
void igt_gameking(machine_config &config);
@@ -164,6 +166,7 @@ class igt_gameking_state : public driver_device
164166
required_shared_ptr<uint32_t> m_bg_vram;
165167
required_device<gfxdecode_device> m_gfxdecode;
166168
required_device_array<sc28c94_device, 2> m_quart;
169+
required_device<ym2413_device> m_opll;
167170

168171
tilemap_t *m_bg_tilemap = nullptr;
169172
TILE_GET_INFO_MEMBER(get_bg_tile_info);
@@ -255,6 +258,7 @@ void igt_gameking_state::igt_gameking_map(address_map &map)
255258
// 28050000: SOUND SEL
256259
// 28060000: COLOR SEL
257260
// 28070000: OUT SEL
261+
map(0x28000000, 0x28000003).rw(m_opll, FUNC(ym2413_device::read), FUNC(ym2413_device::write)).umask32(0x00ff00ff);
258262
map(0x28010000, 0x2801007f).rw(m_quart[0], FUNC(sc28c94_device::read), FUNC(sc28c94_device::write)).umask32(0x00ff00ff);
259263
map(0x28020000, 0x280205ff).flags(i960_cpu_device::BURST).ram(); // CMOS?
260264
map(0x28030000, 0x28030003).nopr();
@@ -540,10 +544,10 @@ void igt_gameking_state::igt_gameking(machine_config &config)
540544
m_screen->set_visarea(0, 640-1, 0, 480-1);
541545
m_screen->set_screen_update(FUNC(igt_gameking_state::screen_update));
542546
m_screen->set_palette(m_palette);
543-
// m_screen->screen_vblank().set_inputline(m_maincpu, I960_IRQ2);
544547
// Xilinx used as video chip XTAL(26'666'666) on board
545548

546549
SC28C94(config, m_quart[0], XTAL(24'000'000) / 6);
550+
m_quart[0]->irq_cb().set_inputline(m_maincpu, I960_IRQ3);
547551
m_quart[0]->d_tx_cb().set("diag", FUNC(rs232_port_device::write_txd));
548552

549553
SC28C94(config, m_quart[1], XTAL(24'000'000) / 6);
@@ -563,6 +567,8 @@ void igt_gameking_state::igt_gameking(machine_config &config)
563567
/* sound hardware */
564568
SPEAKER(config, "mono").front_center();
565569

570+
YM2413(config, m_opll, XTAL(3'579'545)).add_route(ALL_OUTPUTS, "mono", 1.0);
571+
566572
YMZ280B(config, "ymz", XTAL(16'934'400)).add_route(ALL_OUTPUTS, "mono", 1.0); // enhanced sound on optional Media-Lite sub board
567573

568574
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_1);
@@ -575,6 +581,7 @@ void igt_gameking_state::igt_ms72c(machine_config &config)
575581

576582
// TODO: pinpoint enable/acknowledge
577583
// clears a bit in $280201fc from there, may really expect vectored irqs from i960 instead ...
584+
// irq2 comes from SENET device
578585
// m_screen->screen_vblank().set_inputline(m_maincpu, I960_IRQ2);
579586
}
580587

0 commit comments

Comments
 (0)