CLI-Tool
bryanthaboi/gen1recomp avatar
bryanthaboi/gen1recomp

Gen1Recomp: Pokémon Gen 1 als handgeschriebene LÖVE2D-Engine mit ROM-Import

bryanthaboi/gen1recomp bietet eine praxistaugliche Open-Source-Implementierung mit stabiler Einsatzbarkeit für reale Anwendungsfälle.

3.646 Sterne317 ForksCMIT
GitHub

Auf einen Blick

Was ist das?
Ein Lua-Projekt, das Rot, Blau, Gelb, Gold, Silver und Crystal nativ nachbaut und Spieldaten aus einer vom Spieler gelieferten ROM dekodiert. Analyse von Import, Regelsätzen, Mod-Plattform und Grenzen.
Für wen ist es gedacht?
Gen1Recomp passt für Spieler, die eine kanonische US-ROM der Gen-1- oder Gen-2-Titel legal besitzen und eine native, modbare Fassung ohne Emulator wollen. Ungeeignet ist es, wenn andere ROM-Versionen oder Regionen unterstützt werden sollen, denn der Importer akzeptiert nur die kanonischen US-Images mit exakten SHA-1-Werten.
Darf ich es kommerziell nutzen?
Ja. MIT ist eine freizügige Lizenz: Sie dürfen darauf aufbauende Software nutzen, verändern und verkaufen, solange Sie die Urheberrechts- und Lizenzhinweise beibehalten.
Wird es noch gepflegt?
Ja. Die letzten Commits kamen vor 1 Tag.
In welcher Sprache ist es geschrieben?
Hauptsächlich C, laut der Sprachstatistik von GitHub.

Die Antworten beruhen auf den GitHub-Daten des Projekts (zuletzt abgeglichen am 15. September 2026) und auf unserer Analyse. Sie sind keine Rechtsberatung.

TIEFGEHENDE OPEN-SOURCE-ANALYSE

Gen1Recomp: Lua-Engine statt Game-Boy-Emulator

Gen1Recomp nimmt einen anderen Weg als ein Emulator. Die Engine und das Kartenverhalten sind laut README handgeschriebenes Lua auf LÖVE2D, während Spieldaten und Grafiken aus einer ROM dekodiert werden, die der Spieler selbst liefert. Das Projekt betont explizit, was es nicht ist: Es enthält keine ROM, emuliert keinen Game Boy, transpiliert keinen Assembler und lädt keine Disassemblierung herunter. Einziges Spieldaten-Input ist eine kanonische US-ROM von Rot, Blau, Yellow, Gold, Silver oder Crystal.

Der Scherz im Projektnamen, Recomp als Abkürzung für Reverse Engineering Causes Obsessive Mental Problems, zeigt den Rahmen: Das ist eine Neukonstruktion, kein Recompilat im technischen Sinn. Für die Arbeit am Originalcode dankt das Projekt dem pret-Disassemblierungsprojekt pokered.

Der Stand ist aktiv: Release v0.2.36 erschien am 28. August 2026, kurz nach v0.2.35 und v0.2.34 am selben Tag. Das Repository verzeichnet 3.418 Sterne und 302 Forks, der Standardbranch heißt dev, ein Hinweis darauf, dass die Entwicklungsfront dort läuft.

SHA-1-Import: Was Gen1Recomp mit der ROM macht

Der Import ist der zentrale Mechanismus. Auf dem ersten Start der Desktop-App wählt man eine .gb- oder .gbc-Datei oder zieht sie aufs Fenster, der Import dauert einige Sekunden. Der Importer akzeptiert nur die kanonischen US-Images: Rot, Blau und Yellow mit 1 MiB, Gold, Silver und Crystal mit 2 MiB. Vor dem Anlegen der Spieldaten prüft er die SHA-1-Summe, für Rot etwa ea9bcae617fdf159b045185467ae58b2e4a48b9a, für Crystal 1.1 f2f52230b536214ef7c9924f483392993e226cfb.

Nach der Verifikation wird die ROM für den Import genutzt und dann aus dem Speicher freigegeben. Sie landet nicht im Cache. Spätere Starts laden den privat generierten Cache und fragen nicht erneut nach der ROM. Alle sechs Titel lassen sich nebeneinander importieren.

Ein Limit steckt in dieser Strenge: Gold, Silver und Crystal sind als Gen 2 Phase 1 markiert, also Import plus Launcher, während die Gen-2-Engine noch gebaut wird. Crystal als neuester Titel erscheint im Launcher als Crystal (Beta), Details stehen in docs/gold-phase1.md.

gen1_faithful gegen modern_clean: zwei Regelsätze für Kämpfe

Unter OPTIONS und RULESET wählt man, welche Gen-1-Kampflogik läuft. Der Standard gen1_faithful reproduziert die Originalkassette inklusive berühmter Fehler: der 1-aus-256-Fehlschlag (oneIn256Miss), kritische Treffer, die von der Base Speed abhängen, der FOCUS ENERGY-Fehler, unbegrenzte PP für Gegner und das Ausbleiben der HYPER BEAM-Aufladung bei K.O.

Der zweite Regelsatz modern_clean behält dieselben Schadensformeln, entfernt aber genau diese Eigenheiten: 100 Prozent genaue Attacken treffen immer, Gegner verbrauchen PP, Stufen fließen in die Kritisch-Treffer-Quote ein. Beide Regelsätze teilen sich also die Mathe-Grundlage, sie unterscheiden sich nur in der Frage, ob die Quirken des Originals erhalten bleiben.

Die Einstellung persistiert in options.lua, und Mods können eigene Regelsätze registrieren. Für Geschwindigkeits-Forscher ist das eine seltene Eigenschaft, dieselbe Engine verhält sich je nach Wahl wie 1996 oder wie eine bereinigte Fan-Fassung, ohne dass zwei getrennte Projekte gepflegt werden müssten.

Hotkeys, options.lua und die Leistungsstufen für schwache Hardware

Die Steuerung folgt dem Game-Boy-Schema: WASD oder Pfeiltasten für Bewegung, Z und X für A und B, Escape für Start, Tab für Select. Unter OPTIONS und CONTROLS lässt sich alles umbelegen, Controller funktionieren ohne Konfiguration. Hotkeys regeln den Rest: die Tasten - und = zoomen, Taste 1 schaltet die GAME SPEED, Taste 2 die COLORS, Taste 3 den TILT, Taste 4 den ZOOM, F1 speichert, F2 lädt, F10 öffnet den Mod-Manager.

COLORS, TILT, ZOOM, SHADER FX, GAME SPEED und VOID FILL stehen auch im Optionsmenü und persistieren in options.lua. Für schwächere Geräte skaliert OPTIONS und PERFORMANCE die optionalen Extras: HIGH schaltet alles zu, BALANCED lässt das 3D-Tilt weg, LOW kappt zusätzlich den Survey-Zoom und die FPS, AUTO wählt passend zum Gerät, auf ARM-Handhelds etwa LOW.

Wichtig ist die Trennung: Nur die Darstellung wird skaliert, die Spiellogik mit festen Schritten ist auf allen Stufen identisch. Eine niedrigere Stufe blendet Tilt- und Zoom-Einstellungen aus, ohne sie zu löschen. Details dokumentiert docs/new-features.md im Abschnitt Performance Tier.

Mod-Plattform, portable.txt und Builds für Android bis Switch

Gen1Recomp bringt eine native Mod-Plattform mit Content-Registern, Events und Hooks, eigenen Speicherständen und Optionen pro Mod sowie einem In-Game-Manager unter F10. Ein Wiki deckt den Einstieg, eine zwölfstufige Anleitung, ein Kochbuch und eine generierte Referenz ab. Karten lassen sich in einem eigenen Tiled-Build bearbeiten und als Mods exportieren.

Wer aus dem Quellcode startet, braucht LÖVE 11.x: scripts/setup.sh und scripts/run.sh richten es ein, danach genügt love ., für Windows gibt es PowerShell-Skripte. Der portable Modus nur für Desktop funktioniert durch eine leere Datei portable.txt neben der App; dann landen Save, Optionen und der ROM-abgeleitete Cache im Programmordner statt im Betriebssystem-Verzeichnis.

Die Releases enthalten neben den Desktop-Builds eine .ipa für iOS-Sideloading, einen PortMaster-artigen Build für den Anbernic RG34XXSP und ein SD-fertiges Switch-ZIP, das auf love-nx 11.5-nx1 festgelegt ist. Switch setzt Homebrew-Hardware voraus; die Nachweise listen ein OLED-Gerät des Autors und einen V1-Boot eines Community-Testers, weitere Modelle sind also nicht bestätigt.

Windows Defender, sha256sums.txt und die Nachahmerseite gen1recomp.com

Zwei Sicherheitsaspekte behandelt das README ausführlich. Erstens meldet Windows Defender die Windows-Builds gelegentlich als Trojan:Win32/Wacatac!ml, Issue 621. Die Erklärung des Projekts: Die exe ist die offizielle LÖVE-Runtime mit angehängtem Spielarchiv, dem üblichen Auslieferungsweg von LÖVE-Spielen, und Defender misstraut unsignierten Executables mit angehängten Daten. Jede Release veröffentlicht SHA-256-Prüfsummen in sha256sums.txt, und auf VirusTotal fallen die Builds laut README bei allen Engines außer Defender-Heuristik sauber aus.

Zweitens warnt das Projekt ausdrücklich vor der Website gen1recomp.com, die nicht vom Projekt betrieben und nicht autorisiert sei. Das Team kennt die Betreiber nicht und stuft alles, was die Seite hostet, als unzuverlässig ein; zwischenzeitlich habe die Seite laut README Adware eingebaut. Offizielle Quellen sind nur dieses GitHub-Repository, der verlinkte Discord und gen1re.com.

Ein eigener Abschnitt AIDisclosure.md erklärt den Einsatz von KI im Projekt, ein seltener, aber zunehmend relevanter Beleg für die Transparenz. Der aufmerksame Download-Pfad lautet damit: Release auf GitHub holen, gegen sha256sums.txt prüfen, erst dann ausführen.

Redaktionelles Fazit

Gen1Recomp passt für Spieler, die eine kanonische US-ROM der Gen-1- oder Gen-2-Titel legal besitzen und eine native, modbare Fassung ohne Emulator wollen. Ungeeignet ist es, wenn andere ROM-Versionen oder Regionen unterstützt werden sollen, denn der Importer akzeptiert nur die kanonischen US-Images mit exakten SHA-1-Werten. Vor dem Download sollte man die Version aus den Releases mit der Datei sha256sums.txt prüfen und das Projekt nur über dieses Repository, den verlinkten Discord oder gen1re.com beziehen, weil eine nicht autorisierte Nachahmerseite existiert.

Offizielle Quellen

  1. Official README
  2. Project repository
  3. Release notes
Community-Notizen

Community-Notizen