◉ Pulse
blahm1d avatar
#80 today ▼ 5

blahm1d/wolf-unit

SystemVerilog Other

Midway Wolf unit arcade core for MiSTer - one core, seven cabinets

Created Jul 28, 2026
Stars
10
Today
+1
Forks
3
Quality
70/100
Momentum
14

README

Fetched from GitHub on Oct 30, 2026, 9:23 PM UTC · README.md

View original on GitHub

Third-party content — Open Source Pulse is not the owner of this repository.

This README belongs to blahm1d/wolf-unit and its contributors. We fetch it directly from the project’s public GitHub repository and display it for reference only. All text, code, images and trademarks remain the property of their respective authors. See the repository for its license terms. Copyright / takedown policy.

WOLF UNIT

One core. Seven cabinets. Zero sleep cycles.

Attention, cathode-ray casuals and dial-up remnants. Power down your expectations and behold: the Midway Wolf unit, rebuilt in logic, not in emulation. No interpreter. No approximation. No "close enough." Gates. Wires. Silicon obeying orders.

You think you remember these machines? Cute. I was arbitrating their bus cycles while you were still learning that the quarter goes in the slot.


🔮 THE MANIFEST

One RBF. Seven titles. The MRA whispers a profile byte at index 3 and the fabric becomes the machine you asked for.

profile cabinet romset
00 NHL Open Ice — 2 on 2 Challenge openice.zip
01 WWF WrestleMania wwfmania.zip
02 Mortal Kombat 3 mk3.zip
03 Ultimate Mortal Kombat 3 umk3.zip
04 NBA Hangtime nbahangt.zip
05 NBA Maximum Hangtime nbamht.zip
06 Rampage World Tour rmpgwt.zip

Rampage gets its own clock cadence because Rampage demanded it. The others fell in line.


❄️ THE BLACK ICE — SLAIN, WITNESSED, CLOSED

For as long as anyone has tried, NHL Open Ice on FPGA has drawn a rink of absolute void. Players skated on nothing. The puck crossed an abyss. Every build. Every attempt. Black ice.

Not anymore. And here is the corpse, laid out for inspection:

The blitter's 8-bit-per-pixel source look-ahead was carrying a fetch address across a row boundary. The hardware reloads that pointer from the row base on every single row. How far the previous row actually drew is irrelevant to where the next one reads.

It only bites when a row ends early. The rink is 860 wide with an endskip of 460 — so 400 of 860 pixels draw, and the carried address landed 460 pixels short. Every row after the first read the wrong source data.

And it was rink-only because that look-ahead is gated on bpp==8, and the rink is the only 8-bpp blit in the entire game. One object class dies. Everything else renders flawlessly. That is why it hid for so long.

Diagnosed from the game's own DMA register writes. Isolated by controls that proved it needed bpp==8 and endskip≠0 together — same geometry at 4bpp draws perfectly. Root-caused by experiment before a single line of fix was written.

Confirmed on a real cabinet. The ice draws. 🧊


⚡ WHAT THE ORACLES SAY

I do not ask you to trust me. I ask you to read the numbers.

  • 203/203 blitter cases cross-diffed against an independent model — including 50 real captured UMK3 blits
  • 94.3% of real blit volume now covered, up from 8.2% — because I stopped inventing test cases and started harvesting them from what the ROMs actually issue
  • 87 distinct blitter regimes measured across all seven titles. The old test matrix covered six of them. Six. The bug was never bad luck; it was a map drawn from imagination.
  • Timing closed at all four PVT corners, first fit. No constraint relaxed. No corner dispositioned. No exceptions bolted on to make a number turn green.

📉 WHAT I WILL NOT PRETEND

A technomancer who lies about his own work is just a marketer with better lighting.

  • The DCS startup de-click fix is real and measured against genuine firmware — but it is not gated, and its signature is a click while the reported artifact is a blip. It may not be the thing you hear.
  • The cross-diff is a dual transcription. It catches independent errors. It cannot catch a shared misreading of the reference — and neither can mutation testing. Stated, not buried.
  • Six of the seven titles carry the shared-core change but have not been cabinet-tested at this baseline.

If it breaks, tell me. Reality outranks my opinion of my own code.


🛠️ INSTALLATION RITUAL

  1. Arcade-WolfUnit.rbf → wherever your arcade cores live
  2. *.mra → your _Arcade folder
  3. Supply your own legally-owned romsets

No ROM data lives here. None. Not one byte. Bring your own.


🙏 STANDING ON OTHERS' SHOULDERS

I am loud, not dishonest. This core contains work by people who are owed credit:

  • JT51 (YM2151) — Jose Tejada (jotego) — GPL-3.0
  • VHDL Joust2 / Williams sound + speech board — Dar — darfpga@aol.fr
  • TMS34010 GSP core — Kevin Coleman — MIT
  • MiSTer framework — MiSTer-devel contributors
  • MAME — the MAME development team. The behavioural reference this core was diffed against, line by line. Every register, every edge case, every "why does it do that" was answered by someone else's decades of patient, unglamorous reverse-engineering. The black ice above was found by reading their source and measuring against their emulation. Without MAME this core is guesswork with a soldering iron. Thank you.

Their licence files are preserved in place, in their own directories.

Because JT51 is GPL-3, this combined work is GPL-3. Stated plainly, up front, not buried in a footnote.


The rink draws. The cabinets live. The matrix bends.

Adios, turd nuggets. Verrrrrmmpt. 🤖⚡

Rendered by GitHub from the repository’s README. Scroll to read the full file.
First trending

Jul 28, 2026

first spotted on the list

Best rank

#27

highest position reached

Appearances

2

times on the trending list

Quality score

70

out of 100

Momentum

14

trend strength indicator

Star velocity

0.11

stars per day since creation

Activity — last 60 days

daily counts, collected every 6 hours
  • Stars
  • Forks
  • Merged PRs
  • Issues
  • Closed issues

Collecting activity data since launch — check back in a few days.

Star history

total stars per snapshot
891011blahm1d/wolf-unit · Jul 28, 7 PM UTC: 9 starsblahm1d/wolf-unit · Jul 29, 2 AM UTC: 10 stars7 PM11 PM2 AM

Rank history

position on trending · lower is better
#1#20#30#40#50#60#70#80Jul 28, 7 PM UTC: rank #27Jul 29, 2 AM UTC: rank #807 PM11 PM2 AM

3D card for your website

Live HTML card with a glass surface and pointer tilt. Paste the iframe on any website.

<iframe src="https://www.notionpulse.cc/embed/blahm1d/wolf-unit" width="420" height="240" style="border:0;max-width:100%;background:transparent" loading="lazy" title="blahm1d/wolf-unit — trending on Open Source Pulse"></iframe>

Stars badge

Show current stars in your README or profile. Auto-updates every 6 hours.

blahm1d/wolf-unit stars badge
Markdown
[![blahm1d/wolf-unit](https://www.notionpulse.cc/api/badge/blahm1d/wolf-unit.svg)](https://www.notionpulse.cc/repo/blahm1d/wolf-unit)
HTML
<a href="https://www.notionpulse.cc/repo/blahm1d/wolf-unit"><img src="https://www.notionpulse.cc/api/badge/blahm1d/wolf-unit.svg" alt="blahm1d/wolf-unit stars badge" /></a>

Repository of the Day

#27 Repository of the Day

Repository of the Week

#27 Repository of the Week

Repository of the Month

#27 Repository of the Month