Jotego releases NARC, Arbalester, and Meta Fox FPGA cores
Three arcade games join the public FPGA lineup alongside deep hardware validation updates for CPUs, sound chips, and Capcom's CPS-3.
Spanish FPGA developer Jose Tejada, better known as Jotego, has released public FPGA cores for NARC, Arbalester, and Meta Fox alongside a batch of low-level hardware validation updates. All three games were previously tested as part of Tejada's ongoing development roadmaps, and they now move out of beta into the public repositories on Jotego's GitHub.
Contributed by Chris Watson, the NARC core is available now on MiSTer FPGA and supports six different revisions of Williams' notoriously gory 1988 run-and-gun shooter. The original arcade cabinet ran on the Williams System Z-Unit board powered by a Texas Instruments TMS34010, a 32-bit processor with built-in graphics instructions that let it push digitized sprites at a higher resolution than most 1980s coin-op hardware. Because that chip is a resource hog on modern FPGAs, Tejada's team is currently building a smaller-footprint TMS34010 module so NARC can eventually fit onto platforms beyond MiSTer. A 15 kHz 480i analog output option for arcade monitors and PVMs has also been proposed, though it isn't included in this build and HDMI stays at native resolution.
Arbalester and Meta Fox arrive together in a new Seta hardware core contributed by Andrea Bogazzi for MiSTer, Analogue Pocket, and SiDi128. Both are 1989 vertical shoot-'em-ups built on Seta's early arcade boards, and the public release includes recent fixes to tile and sprite positioning in Meta Fox. Several older cores got maintenance patches at the same time: The Simpsons and Escape Kids return to the public lineup after a starting-line sprite priority fix, Avengers had missing graphics and audio restored, and Bionic Commando will no longer randomly ignore coin, start, or gameplay inputs. Updates also went out for Roc'n Rope HDMI rotation, Kyukyoku Tiger rotated graphics on SiDi128, and CPU timing adjustments for Double Dragon and Double Dragon II on MiST and SiDi.
The Z80 was innocent all along
The more unusual news is how Tejada is changing his team's daily workflow. People are increasingly using AI tools to spin up quick FPGA cores, many of which rely on Tejada's own open-source JTFRAME framework to translate MAME drivers into hardware logic. That trend has taken the pressure off pumping out a constant stream of new game cores, giving the team breathing room to measure their existing Verilog modules against physical arcade silicon.
Over a two-week validation pass, they wired up a real Yamaha YM2151 FM sound chip to test against their JT51 module, checking envelopes, stereo mixing, noise, CSM keying, and timer and interrupt flags. Those hardware captures showed that two existing die-shot models actually disagree with each other in spots, giving Tejada the data needed to bring JT51 closer to the real chip. They also ran extensive checks on their Z80 CPU module and found zero bugs, which has to be a weird combination of relief and mild annoyance after setting up all the test gear.
Other processors needed actual repairs. The Motorola M6809 module had stack-cycle, interrupt, and datasheet timing errors fixed, and the team spun up a dedicated Hitachi HC6309 implementation to handle that chip's extra instructions and modes. That HC6309 module is now wired into Contra, Double Dragon, Ajax, Fast Lane, and Labyrinth Runner, where busy on-screen scenes should behave more like original PCBs. Timing checks also extended to the MC6801, HD6301, MC6805, 68705, Rockwell R65C02, and Data East's DECO222 chip. Even Capcom's CPS-3 hardware got attention: testing on its SH7604 CPU exposed a bug where a pending write could overlap a cache purge and feed stale data, which has now been corrected.
Closing the GitHub merge queue

Alongside the chip measurements, Tejada is developing a software tool to speed up translating physical PCBs into KiCAD schematics, which the team is currently using to repair a broken Wild West C.O.W.-Boys of Moo Mesa board so they can characterize its protection chip.
One frustrating side effect of open development did force a policy change, though. Tejada noted that people have been swiping code files from outside contributors while those pull requests sat waiting in the public GitHub merge queue, reposting the unmerged work elsewhere for a quick burst of clout. To protect contributors, outside submissions will now happen inside a private GitHub project until they're reviewed and merged into the main repository. The finished cores and modules will still be published openly once they pass inspection.
Comments ()