Gen2Recomped: Gold, Silver and Crystal rebuilt natively on the Gen1Recomp engine
Generation 2 Pokemon Recomp forked from Gen1Recomp and modified
At a glance
- What is it?
- UNDERdecoded's Gen2Recomped recreates the second-generation Pokemon games in LÖVE2D, decoding game data from a ROM you supply and synthesising its audio at runtime. The fork adds Johto and Kanto, day and night, breeding and the Pokegear to Gen1Recomp's Generation 1 base.
- Who is it for?
- Gen2Recomped fits players who own legal cartridge dumps of the Generation 1 or 2 games and want them running natively on modern hardware, including Switch, Xbox Dev Mode and ARM64 handhelds. It does not fit anyone hoping to download game data with the app, because no build contains a ROM and the SHA-1 gate rejects anything but canonical US dumps.
- Can I use it commercially?
- Check first. The repository uses a licence we do not classify automatically, so read its LICENSE file before any commercial use.
- Is it still maintained?
- Yes. The repository last received commits 1 day ago.
- What is it written in?
- Mainly C, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 30, 2026, and from our analysis. They are not legal advice.
Editorial analysis
A recreation, not an emulator
Gen2Recomped, the repository UNDERdecoded/Gen2Recomped, is a native LÖVE2D recreation of the second-generation Pokemon games, built as a fork of Gen1Recomp by bryanthaboi and BOIS CLUB GAMES. The distinction from emulation is structural, and the README draws it explicitly: the project does not include a ROM, does not emulate the Game Boy, does not transpile assembly and does not download a disassembly. The engine, the script virtual machine and the map behaviour are hand-written Lua; the game data and graphics are decoded from a ROM the player supplies.
That input model has practical consequences. A canonical US ROM for Gold, Silver, Crystal, Red, Blue or Yellow is the only game content accepted, verified by SHA-1 during import. The ROM is used, then released from memory and never copied into the cache, so later launches load the private generated cache and never ask for the cartridge dump again. Each imported version can be played side by side.
What the fork adds on top of Generation 1
Gen2Recomped keeps everything the upstream project does for Generation I and adds the second-generation half, according to the README: the Gen 2 script virtual machine and its command table, the Johto and Kanto world, the day and night cycle, breeding and the Day-Care, the Pokegear, shiny Pokemon, held items, and the Gold and Silver title sequence. That is a wide surface for a fork to carry, and it helps explain version numbers still in the 0.7 range.
Release cadence is brisk. Three releases, v0.7.59 through v0.7.61, were published on 2026-09-16, and the last push was on the same date. The release bodies themselves are terse, listing contributors and pointing at downloads, so changelog detail lives elsewhere than the release text.
Importing a ROM and the SHA-1 gate
First launch is deliberately short. Open the desktop app, choose your legally obtained .gb or .gbc file, or drop it onto the window. Import takes a few seconds for Generation 1 and a couple of minutes for Generation 2, after which the game starts on its own.
The importer accepts only canonical US ROMs and verifies SHA-1 before creating any game data. The README publishes the expected hash for each version in full; for example, Gold's 2 MiB dump must hash to d8b8a3600a465308c9953dfa04f0081c05bdcb94 and Crystal Rev 1's to f2f52230b536214ef7c9924f483392993e226cfb, with the remaining five listed in the README table. A dump that fails the check produces no game data, which is the point of the gate.
Consoles and handhelds have no file picker: the launcher scans a folder instead, and the README's downloads section lists the exact path per device. The packaged app ships neither a ROM nor pre-extracted game data. Music, sound effects and cries are synthesised while the game runs, from compact audio channel programs copied out of the verified ROM.
Windows install, MSIX certificates and a Defender false positive
Windows has two routes. The plain Gen2Recomped-<ver>-windows.zip unzips and runs, where <ver> is the release version. The Store-style .msix needs its companion .cer certificate imported first. Once per machine, in an elevated PowerShell:
Import-Certificate -FilePath .\Gen2Recomped-<ver>-windows.cer `
-CertStoreLocation Cert:\LocalMachine\TrustedPeople
Add-AppxPackage .\Gen2Recomped-<ver>-windows.msixImport-Certificate places the certificate in the machine's TrustedPeople store, and Add-AppxPackage then installs the game itself.
The store location matters: App Installer only reads the machine store, and a certificate placed in the user store produces error 0x800B010A, which looks exactly like having imported nothing. Later releases then install with Add-AppxPackage alone, and the signing details live in docs/msix-signing.md. If certificates sound unappealing, the README's own advice is to take the plain zip, which is the same game.
One warning gets a whole section: Windows Defender sometimes flags these LÖVE builds as Trojan:Win32/Wacatac!ml. The project's explanation is that the executable is the official LÖVE runtime with the game archive appended, the standard way LÖVE games ship, and Defender's heuristics distrust unsigned executables with appended data. Releases publish sha256sums.txt covering every asset, and the README reports the builds coming back clean on VirusTotal under every engine except Defender's heuristic. Verify rather than take anyone's word, including this project's.
Ten platforms, one payload
Every release publishes one archive per platform built from the same payload in the same run: Windows zip and MSIX, macOS zip, Linux x86-64 and ARM64 AppImages, an Android APK, a Switch zip, an Xbox Dev Mode UWP zip, a build for the Anbernic RG34XXSP handheld, an iOS IPA for sideloading, and a plain .love file for anyone who already runs LÖVE 11.5, which runs directly:
love Gen2Recomped-<ver>.loveSteam Deck users take the x86-64 Linux zip, since the Deck is x86.
The Switch path illustrates the pattern. It needs a homebrew-capable console running Atmosphère with hbmenu; you extract the zip at the root of the microSD, merging folders when asked, which delivers this structure:
switch/gen2recomp/gen2recomp.nro the launcher
switch/gen2recomp/Gen2Recomp/imports/ put your cartridge dump here
switch/gen2recomp/Gen2Recomp/exports/ battery saves come back out hereCopy a legal .gb or .gbc dump into the imports folder; dumps are matched by SHA-1, and battery saves come back out through the exports folder. If a platform's asset is missing from a release, the notes say so explicitly rather than omitting it silently, which the README calls out as policy. The .love file is also what the in-app updater downloads, so it doubles as the smallest manual-update package.
The gen1recomp.com warning and the licence question
The README opens with a caution worth repeating: neither this project nor Gen1Recomp is affiliated with the website gen1recomp[.]com. That site was not authorised by anyone involved, and the README instructs readers not to download anything from it and to treat anything it hosts as untrustworthy, even when it links back to the real repository. This GitHub repository is stated to be the only official source.
Licensing is the other open question. GitHub reports NOASSERTION, and the tree carries both LICENSE and LICENSE.MD, so the terms are custom rather than a recognised template. The README does not summarise them, so anyone redistributing builds or writing mods should read both files before relying on assumptions. The tree also holds a mods/ directory with a CONTRIBUTING-mods.md guide, which signals that mods are an expected activity here, and, more curiously, a committed Gen2Recomped.exe and a Claude outputs/ directory at the root.
Against an emulator: what the native rebuild trades
The obvious alternative is playing the same cartridges in a Game Boy emulator. The trade is fidelity versus nativeness. An emulator reproduces the original hardware, quirks and all, on a screen shaped like the original. Gen2Recomped rebuilds the behaviour in hand-written Lua, synthesises audio from channel programs at runtime, and then runs the result anywhere a LÖVE build exists, from an ARM64 single-board computer to a Switch in handheld mode, with saves moving through battery files in both directions.
The other named alternative is Gen1Recomp itself, the upstream project. It covers Red, Blue and Yellow with the same engine approach; gen2recomp is what adds the Generation 2 systems. If your interest stops at Generation 1, the upstream is the smaller dependency to track.
Editorial conclusion
Gen2Recomped fits players who own legal cartridge dumps of the Generation 1 or 2 games and want them running natively on modern hardware, including Switch, Xbox Dev Mode and ARM64 handhelds. It does not fit anyone hoping to download game data with the app, because no build contains a ROM and the SHA-1 gate rejects anything but canonical US dumps. Before installing, compare your dump against the README's hash table, read LICENSE and LICENSE.MD since GitHub shows NOASSERTION, and download only from this repository, given the README's warning about an unauthorised site using a similar name. The last push was on 2026-09-16, with three releases published that day.
Frequently asked questions
What is gen 2?
In the context of this project, Generation 2 means Pokemon Gold, Silver and Crystal. Gen2Recomped recreates those three games natively in LÖVE2D, on top of Gen1Recomp's Generation 1 engine.
Do I need a ROM to play Gen2Recomped?
Yes. No download contains a ROM or extracted game data; the app asks for a legally obtained canonical US .gb or .gbc dump on first launch, verifies its SHA-1, and builds a private cache so later launches never ask again.
Why does Windows Defender flag Gen2Recomped?
The README describes a known false positive: the executable is the official LÖVE runtime with the game archive appended, which Defender's heuristics distrust. Releases include sha256sums.txt so you can verify the download yourself.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/underdecoded-gen2recomped)