The fun parts: Multiplayer, Netplay & Knuckles
Zero comes to Mega Man X, Sonic 2 and Super Mario Bros. go four-player over netplay, GBA gets link cable netplay, a community Ape Escape two-player mod, Knuckles & Knuckles, and every commercial NES mapper.
Much of my time to date has been spent focused on the not so fun part, building a faithful foundation. Often mis-represented by others as "prepackaged emulators", these are anything but. They are the perfect canvas to create something new from something as accurate of an emulated version of the game, but without the limitations that come with traditional emulation.
The common trend for this article is grafting new things in. Typically the easiest is backporting from other games, though in some cases I am adding something outright. The goal is obviously to have fun, but also some technical showcases are to perhaps inspire others to understand where the boundaries are (or perhaps, aren't) in their own projects.
All of these make use of the modding ecosystem that don't modify the base rom, nor the recompiled output. The output remains as the core engine.
Mega Man X
Bringing the real Zero in
An authentic Zero
Putting Zero into Mega Man X isn't a new idea. ROM hacks have done it before. But they typically work under much tighter constraints. Most of them are a reskin: Zero sprites, but under the hood it's still X. His hitbox, his animations, and his proportions all still belong to X, and his sprite ends up bent to fit X's frame as a result.
I always like to use canonical references as much as possible. The only playable Zero I'm aware in the X series on the SNES was from Megaman X3, which makes it the optimal (and frankly, only target).

This is Zero at his original size, with his original X3 body and saber art, driven by his original X3 animation records. His collision comes from X3 as well, both standing and dashing, translated to line up with X1's. So this isn't just a sprite swap.
He also fights the way he did in X3:
- Charge shots. Zero's charge tiers and firing timing are measured against X3. Hold the charge all the way, and you get his full combo: two charged buster shots, followed by a saber slash.
- Beam saber. His original ground and air slashes, with hitboxes that change over the course of the swing, feeding into X1's own enemy collision.
- Innate dash. Zero can dash from the start, like he could in X3, without touching X's own progression.
- The little things. His X3 health bar badge, his pause screen pose, and the title screen cursor.
- X1 weapons: Divergent, as Zero cannot typically use X's custom abilities, but a liberty added to this hack for sake of continuity of playing through as Zero end to end.



Zero's charged buster, beam saber, and pause screen in Mega Man X
None of Zero's art ships with the mod. You provide your own copy of Mega Man X3, and the launcher extracts Zero from it. Both ROMs stay untouched. Mega Man X still owns the stages, the bosses, and your progression. Zero simply becomes the one playing through it.
Switching between X and Zero
Typical for a ROM hack of this nature is to replace the character's asset with another. But I've always been a big Megaman game and played many of the games, especially the X ones and including the Xtreme games.
In the Xtreme games, once you beat the main campaigns for X and Zero, there was always the Xtreme mode, which was not X or Zero, but X and Zero in a much more first class way than Zero was in X3.
Pressing select swaps you between the two of them. Each character maintains their own health pool and health pickups only work for that one character. Heart pickups currently increase the health for both players, but that may eventually change. I left it out for now since that is going to require modifying the save file structure considerably to account for there being two health bars that hearts can go to.
Swapping between X and Zero in Mega Man X
The first release of the Zero mod (0.0.1) is available now on GitHub.
Not just characters
Zero is a fairly obvious choice to bring back to X1. But I think even more obvious isn't Zero, of course, but the most iconic thing in Megaman and X games: the weapons.
X1 is my favorite game of the SNES ports by far, but I still love the novelty of getting to use new powerups brought after in it. This, plus Zero, have always been as sort of dream for me to see come to life and this new technology has permitted me to actually be the one to do it.
Each X game has 8 special weapons. I'm not looking to "demake" X4 and beyond, so I'm limiting myself to SNES titles of X2 and X3. That gives me 16 weapons to need to backport.
I took a little liberty here to provide Zero the capacity to use all the weapons across the games. Often Zero gets different powerups (or cannot use them at all, as is with X3).
Early work in progress: X3's weapons in Mega Man X
L/R allow you to toggle between each game's set of weapons.
At this time, most of the weapons are still not yet fully implemented. For better or worse, implementing a player actor in these games is quite simple, but special weapon abilities are far more involved and take a considerable amount for each one, especially given the added scope of adapting them to Zero.
Sonic the Hedgehog 2
Four players, four screens
Over in Sega Genesis land, I've been working on Sonic the Hedgehog 2 with not just two players, but four.
I decided to go with Sonic 2 as my testbed since I'm aware that Sonic 3 has Sonic AIR that's going to get a lot of comparison, even though it's a separate project entirely using the Oxygen engine and not being a recompilation* (ported disassembly, really)
The Genesis only ever had two controller ports. Tails could be controlled in a campaign game if you chose to plug something into that second port. But that was it. There never was any opportunity for player 3 or 4. At least, not until now!
Going back to my idea of "grafting" again, I split the difference here. I chose to borrow Knuckles from Sonic 3, but I needed a fourth. Amy exists as DLC in the Sonic Origins collection, but I couldn't find an easy way to get the user to provide that asset, so I elected to borrow from E-122-Psi's Amy in Sonic 2 rom hack instead.
Bringing in recomp-net
In the spirit of bringing the couch console experience forward to the online experience, a spike was done to integrate segagenesirecomp with recomp-net, turning this couch console player experience into an online one.
For those little brothers who remember getting to be Tails, you'd remember the camera always followed Sonic and you were not able to go out on your own. Only versus had actual splitscreen, which was that awful looking squished 2:3 aspect ratio. With all of what we're doing here, that became a shackle to break loose just the same.

Trying to keep up with Sonic as tails is hard enough. Add the chaos of two other players, and it's going to be a bad experience for anyone on player slots 2 through 4. Unless...we give everyone their "own TV". In addition to grafting two new players into the experience, all 4 players now, during netplay, will actually receive their own camera viewports. Their allies are still around, but everyone is able to journey off and go cause havoc throughout the stage.
From a technical standpoint, we aren't video streaming. It's all synchronized input state. Every player is also an important actor. Enemies and stage behavior is now loaded into memory based on each player's proximity, as opposed to only following Sonic.
While the QA is still light on this one, it has passed preliminary testing in a 2-person online environment. If you're feeling adventurous, you can go be one of the early testers, as it is available now.
Sonic 3 & Knuckles
Knuckles & Knuckles & Knuckles
A lot of my projects and initiatives are often noticed at a game level. I think it's not well understood there's an ecosystem behind it being worked on. For target games, like Sonic 3, it's hard to have a conversation that doesn't immediately get conflated to Sonic 3 AIR.
While I don't mind the comparison, my goal is ultimately that people understand the intent. Sega Genesis Recompiled is built to be for all Sega Genesis titles. It's best to start with well documented games, and Sonic 1-3 are amongst the best
In any case, the goal here is to have fun. And just a few days before I built this, one of my Discord communities reposted an over decade old internet meme that always gets a laugh out of me.
The timing was just right. I figured "You know what? Nobody has made this real yet. And who is better positioned than me?"


All it took was a little bit of magic, and you have the ultimate army. They all use Tails player 2 AI, creating a fof Knuckles.

The best part? Is just like Sonic 2, all you need to do is "plug in" a controller and be little brother Knuckles. By re-using the architecture in segagenesisrecomp, you too can have up to 74 of your little brothers join you for this adventure. Though that said, it hasn't been tested online yet, and I doubt that TechnicallyComputers would be too happy about that netplay lobby running on his box.
Knuckles & Knuckles is available now.
Super Mario Bros.
Four-player co-op, online
Super Mario Bros. was never a co-op game. Its two-player mode takes turns: Mario plays, then Luigi plays. In NESRecomp's Super Mario Bros., I took the same idea as Sonic 2 and grafted on simultaneous co-op for two to four players: Mario, Luigi, Wario, and Waluigi.

Co-op Play on the title screen, and the full party in World 1-1
Everyone runs Super Mario Bros.' own movement and physics, each with their own player state, all inside a single shared world. A few of the house rules:
- One shared camera keeps everyone on screen. If someone falls behind at the rear edge, the leader has to wait.
- Score, coins, the timer, and lives belong to the team.
- Whoever hits the ? block decides between the mushroom and the flower.
- Fireballs can't hurt your allies. Kicked shells can. Consider it a strategic feature.
- Die, and you're out until the end of the level. If the whole team goes down, everyone retries from the last checkpoint.
Local co-op is available now. And yes, it goes online too. TechnicallyComputers brought the same rollback netplay here as well, so two to four players can play co-op across separate PCs. That's currently in a playtest release.
GBARecomp
From link cable to netplay
Speaking of netplay, I recently focused on the initial implementation of netplay for GBARecomp. On the Game Boy Advance, multiplayer ran over a link cable, so this ended up being a two-layer approach.
The first layer was the link cable itself. Before anything could go over the internet, GBARecomp needed to understand what it means for two Game Boy Advances to be plugged into each other. That meant modeling the cable: multiplayer transfers between up to four ports, and link cable logic to follow the real hardware. Both GBAs run on a single shared timeline, so the order data moves across the cable is decided by the emulated hardware, never by whichever thread on your PC happens to get there first.
The second layer is recomp-net on top. What's notable is what doesn't get sent over the network: link cable traffic. Only controller inputs go over the wire. Each player's machine simulates both Game Boy Advances, cable and all, from the same inputs. That's what lets rollback work at all.
Mario Kart: Super Circuit was the focus of this work, with Pokémon Emerald serving as test data along the way with an eventual goal of Pokemon Emerald being able to play nice with the union room on an Android friendly build.
Ultimately, the concept is proven: linked races run, stay in sync, and hold up under simulated latency, packet loss, and rollback in testing. What it still needs is a proper playtest over a real netplay session. The first netplay-capable build is on GitHub.

Ape Escape
A community two-player mod
Lastly, this one excites me a ton, because it isn't actually my work.
I released Ape Escape on PSXRecomp some time ago, and beyond widescreen, it didn't offer too much. But much of what my ecosystems aim to provide is a platform for others to come and build on. And someone has. Nikos D. took it upon himself to begin building a two-player mod for Ape Escape. Below is an early look at his work in progress, shared with his permission.
Work-in-progress two-player Ape Escape mod (credit: Nikos D.)
Ape Escape was always a single-player game. Seeing a second player running around alongside Spike is exactly the kind of thing I hoped these ecosystems would enable. A big thank you to Nikos D. for taking this on, and I can't wait to see where it goes.
NESRecomp
The maintenance burden
The less glorious part isn't forgotten, and that is the maintenance burden.
Every commercial mapper
NES cartridges leaned heavily on mappers: extra hardware inside the cartridge for bank switching, scanline interrupts, extra RAM, and in some cases entire extra sound chips. For a recompiler, every mapper is one more way for code and graphics to move around underneath the program.
I spent a lot of time filling these out. NESRecomp now supports 79 mapper IDs, which covers every licensed and unlicensed commercial mapper in the catalog I track against: 67 licensed and 10 unlicensed, spanning 6,776 known dumps. What remains is almost entirely multicarts, pirate boards, copiers, and homebrew. Along the way came expansion audio as well: Konami's VRC6 and VRC7, Namco 163, Sunsoft 5B, and the MMC5.






Gimmick!, Castlevania III, Contra (Japan), Batman: Return of the Joker, Cheetahmen II, and Fantasy Zone II
Every mapper has its own board tests and generated test programs, run natively, on two interpreters, and against an independent reference at every CPU/PPU alignment. Where I had a real game for a mapper, it also got a bounded run (typically 1,500 frames of routed gameplay compared against the reference) and some hands-on time from me. These are spot checks, not full playthroughs, but it's a lot of ground covered:
- Nintendo and common boards: Super Mario Bros., Super Mario Bros. 2, The Legend of Zelda, Dr. Mario, Yoshi, Yoshi's Cookie, Dragon Warrior III, Castlevania III: Dracula's Curse, Gemfire, Fire Emblem, Fire Emblem Gaiden, Battletoads, Cabal, Alpha Mission, Adventures of Dino Riki, Deadly Towers, Alien Syndrome, Goal! Two, High Speed, Crazy Climber, B-Wings, Bird Week
- Konami: Akumajou Densetsu, Contra (Japan), Getsu Fuuma Den, Gradius II, Bio Miracle Bokutte Upa, Ganbare Goemon!, Ganbare Goemon Gaiden 2, Ganbare Pennant Race!, Esper Dream 2
- Namco: Final Lap, Megami Tensei, Megami Tensei II, Famista '89, '90, '91, and '92, Dragon Spirit, Dragon Buster, Devil Man
- Sunsoft: Gimmick!, Batman: Return of the Joker, After Burner, Fantasy Zone, Fantasy Zone II, Atlantis no Nazo
- Bandai: Akuma-kun, Dragon Ball Z II, Gegege no Kitarou 2
- Taito: Akira, The Flintstones, Bubble Bobble 2
- Irem and Jaleco: Ai Sensei no Oshiete, Daiku no Gen-san 2, Holy Diver, Goal!!, Bio Senshi Dan, Choplifter, The Goonies
- Unlicensed: Action 52, Cheetahmen II, Caltron 6-in-1, Captain Comic, Double Strike, Fire Hawk, Fun Blaster Pak
The Famicom Disk System
With cartridges in a good place, I moved on to the Famicom Disk System. The FDS was a disk drive add-on for the Famicom in Japan, with its own RAM adapter, BIOS, and sound chip. Supporting it meant booting from a BIOS and a disk image instead of a cartridge, modeling the disk drive itself along with its timer interrupt and wavetable audio, and handling the code the BIOS loads off the disk into RAM at runtime.
The first title on it is Super Mario Bros. 2. The Japanese one, better known in the US as The Lost Levels. Its first public release is on GitHub. You supply your own FDS BIOS and disk image.



Super Mario Bros. 2 (Japan) booting through the Famicom Disk System BIOS
Closing
The not so glamorous part is building the essential correctness runner. Months were spent trying to win over an audience of other developers and playtesters to help me build the platform and create a blank canvas. There is a point of maturity that these games are now able to start achieving. This has always been the long term version, and I am grateful that there are those who shared this vision instead of being dismissive and misunderstanding the development pipeline.
All of these are great examples of making these games do think that they weren't meant to do, but more importantly, what their systems never were capable of letting them do. Be it adding co-op, expanding the player count beyond the physical ports on the system, adding netplay to local serial connections, or turning a single player game into a multiplayer game. And underneath is the original game with all of it's faithfulness, down to its works, ready to be built from or even just enjoyed as is.
Amongst these, Ape Escape is still a favorite since it is the spirit of what I sought to allow. I am also grateful for the other unsung heroes who have built out these ecosystems to make things like netplay as approachable as they are. A special thank you and shotout to Nikos D and TechnicallyComputers, respectively.
I look forward to continuing to see these projects through and to work closely with these individuals and everyone looking to reach new heights.