patchdai
Classic games. Current squads.
Patch your cartridge
Squads for International Superstar Soccer (USA/Europe), Sensible Soccer or FIFA '98. Your ROM never leaves your browser: it is checked and patched on this page.
-
1 Your ROM
It stays in your browser; nothing is uploaded.
-
2 Squads
Preview in game: opens by itself when you pick a patch; see a team on the game's own screens before you download.
-
3 Play or download
Play here: try the patched game on this page, no download needed.
Patched ROM (.gb): a ready-to-play game file for your emulator or flash cart. IPS patch: only the changes, a small file you apply to your own original ROM with a patcher or an emulator. Both are made in your browser; nothing is uploaded.
New to this? See , , then .
Squads
In game
Your ROM boots in an emulator on this page and races through the menus to these screens. Nothing is uploaded.
Play
Keys (click the screen first): arrows move, Z = A, X = B, Enter = Start, Shift = Select. A gamepad works too. No sound yet.
How it works
Your ROM is read and patched on this page. The page arrives with the squads built in, and after that nothing is sent anywhere.
Step by step
-
You bring your own ROM
Drop your International Superstar Soccer file on the page. It is read here, in your browser, and never uploaded.
-
It is checked
Only the USA/Europe release works: the page checks the size (256 KB) and its fingerprint (SHA-1). If it is the wrong file, you get the reason and what to try next.
-
You pick a patch
Premier League, World Cup 2026 and more. Squads come from Football-Data.org, player ratings from Wikidata.
-
The squads are swapped
Team and player names, each player's stats (built from their rating) and the team ratings are written into the game's 36 team slots. The VS-screen banner and flag are redrawn for every team that changed.
-
You download
The .gb is the patched game for an emulator or flash cart: keep it to yourself. The .ips holds only the changes: share that one.
What changes, what stays
Changes
- Team names, in as many of the 36 slots as the patch has teams
- 18 player names per team (A to Z, full stop and space only; long names shortened)
- Player stats and team ratings
- The VS-screen banner and flag of each changed team
Stays
- The one shared kit every team wears
- Each slot's default formation
- Slots the patch doesn't fill: the original national teams
- The rest of the game
The reverse engineering behind it: Python, an emulator, Ghidra and an AI agent in a loop.
But really, how does it work?
The game doesn't document itself. To swap a squad you first need to know where in a 30-year-old cartridge the names, stats and flags live, and what every byte does. That is reverse engineering: slow, fiddly work that is mostly reading long logs and trying the next hunch. This site does it as a loop of small tools with an AI agent (Claude Code) driving them and a person steering.
The loop
-
Scan the ROM in seconds
A Python pass looks for anything shaped like a table of names: fixed-length records, under any letter encoding, plus tables of pointers to them. Every result is labelled a hypothesis with a confidence score, never a fact. On ISS it picked out the player-name and team-name tables as the only strong candidates.
-
Find the screen, then trace one button press
An explorer boots the game and presses Start, A, Down and B, keeping a picture of every new screen, until it reaches one that shows names. Then a tracer replays that path and steps the emulator one CPU instruction at a time around the last button press. It logs every byte read from the cartridge and every letter drawn on screen, and joins them up: "this word on screen came from these bytes". On FIFA International Soccer it found the player records in one run, after blind byte searches had failed.
-
Read the code
Ghidra, the open-source disassembler, with a Game Boy plug-in, turns machine code back into rough C. Out of the box it finds only about 30 functions in a Game Boy game. Seeding it with the instructions the emulator actually ran, plus the game's own way of calling between banks, brings ISS to about 1,050. That is how we learned what each player's six stat bytes really do: kick accuracy, kick power, speed, the two sides of a tackle, and an overall rating that only the squad screen shows.
-
Prove it in the emulator
Nothing counts until it shows up in the game. Python scripts drive the PyBoy emulator with fixed inputs, so a run can be repeated exactly: change one byte, replay, compare. They read the screen back as text by decoding its tiles with the game's own font, which is cheaper and stricter than comparing pictures. Every patch on this site is booted this way on every change: the new team name must reach the screen before kickoff, the big VS banner must change, and the new player names must appear on the squad screen and the in-match display.
-
Write it down
Confirmed facts go into a ROM map and per-game notes in the repo, with a confidence level on each. Ghidra projects and decompiled code stay out of the repo, because they contain the game itself.
Where the AI helps, and where it doesn't
Good at
- Reading thousands of trace lines and spotting the one that matters
- Writing a throwaway probe script for each hunch, then the next one
- Turning Ghidra's raw output into readable routines
- Keeping the notes up to date
Kept honest by
- Hypothesis until proven: only a trace or the emulator makes a fact
- Tests that read the game's own screen, run on every change
- A person choosing the work and reviewing every change
- Trace before searching, text not pixels, short outputs: the expensive habits are measured and cut
How the work is split
Every job is a GitHub issue. Several Claude Code agents work at once, each on its own issue and branch, and each opens a pull request that must pass the checks before a person merges it. A new game gets two sessions: one for reconnaissance that ends with written notes, and a fresh one that builds the patcher from those notes, so nobody redoes the digging.
More on what AI does and doesn't do here: .
What’s new
13 November 2026
- Install it. patchdai can now be installed as an app from your browser, and the page itself loads offline. Your ROM is never stored.
- Release notes. This window. A dot on the toolbar button shows when there is something new.
Earlier
- In game preview. See a team’s VS and MEMBER screens before you download.
- Play here. Run the patched ISS ROM on the page.
- Sensible Soccer. Squad names can now be patched for that game too.
- Window snapping and a new animated logo.
Questions? .
Help
Get started
- Pick a patch in the Patch window (World Cup, a league…). Its teams and players show in Squads right away.
- Drop your ROM on the drop box, or click it to choose the file. The page checks it is a supported game and works out which one.
- Check the preview. Squads now shows names as the game will show them, and In game shows real game screens.
- Download the patched .gb (ready to play) or the .ips (just the changes), or press Play here. The patch is checked before any button turns on.
Which games work
- International Superstar Soccer (Game Boy, USA/Europe), 256 KB: squads, flags, VS banner, Play here.
- Sensible Soccer (Game Boy, Europe), 128 KB: team and player names and team strength.
- Other games and regions are rejected with a reason. There is no way to patch a ROM that is not on this list.
Your ROM and privacy
Your ROM never leaves your browser. It is read, checked and patched on this page. It is not uploaded, and neither are your choices. This site hosts no ROM. You need your own copy of the game.
Something wrong?
- "Not the supported dump": it is a different game or release. Use one from the list above.
- Wrong size: remove a 512-byte copier header. Zip file: unzip it first.
- Names look short or lose accents: the game's font has only A to Z, so names are shortened and simplified.
- The patched game does not start: try the .ips on your original ROM, or another emulator.
More: , .
About
What this does
It swaps the teams and players in International Superstar Soccer (Konami, Game Boy, 1996) for real, current squads. You bring your own copy of the game. It is checked and patched right here in your browser and never uploaded. This site hosts no ROM or game data. .
Sensible Soccer: European Champions
- The Europe release (128 KB) is accepted. It has 40 team slots of 16 players: 20 national and 20 club. A patch of up to 20 teams goes into the 20 club slots, which the game shows by default; a national-teams patch goes into the national slots (switch OPTIONS, TEAMS to NATIONAL). A bigger patch uses all 40.
- Patched: team and player names, which players start (each position is filled best rating first, starters before the bench) and each team's strength tier, set from the patch's ranking (or from its best eleven's ratings). The tier decides how strong the team is in simulated league results; in a match you play it sets how sharp the CPU is, but we have not seen that change results.
- Kept as the original game has them: each team's formation, the star markers, shirt numbers and the line-up positions. This game has no per-team flags, crests or kits.
- Names use A to Z, digits, full stop and hyphen in the squad lists, and team names are limited to 8 characters; long names are shortened (MAN UNTD). Player names read like B SAKA.
- In game shows the SELECT TEAMS and TEAM screens of any team you pick, drawn by the game itself. Play here is only for International Superstar Soccer so far.
How to use the download
- .gb: the patched game, ready for an emulator or a flash cart.
- .ips: just the changes. Apply it to your own ROM with any IPS patcher, or let an emulator soft-patch it (same file name as the ROM, next to it).
- The patched .gb still contains the game, so keep it to yourself. To share a patch, share the .ips.
Limits
- The game has 36 team slots of 18 players. Bigger competitions are trimmed to 36 teams when their dataset is made; smaller ones change only that many slots (the Premier League patch changes 20 of 36) and leave the rest as the original national teams.
- World Cup 2026 had 48 teams, so its patch holds 36: every team that reached the round of 32, plus Iran, Korea, Turkey and Scotland, the best of the group-stage exits. Left out: Uruguay, Saudi Arabia, Czechia, New Zealand, Qatar, Curaçao, Panama, Jordan, Haiti, Uzbekistan, Tunisia and Iraq.
- The game's font has only A to Z, full stop and space, so names lose accents and digits, and long names are shortened.
- Every team plays in the game's one shared kit, and each team slot keeps its original default formation.
FIFA Soccer '98 (USA)
- What is patched: team names (Team Select, the pre-match text) and player names (Player Selection). Both were read back off the game's own screens for every patch on this site.
- Names are measured in pixels, not letters. The game draws its text in a proportional font: player names are cut to 75 pixels and team names to 60, and keep mixed case (R.Santana). Accents and digits are dropped.
- Teams and players: the game has 51 national teams (plus the Tornados, which are never changed) of 20 places each. A team that already has a slot (Brazil, Spain...) goes into that slot, so its flag is right; the others take free slots, the best-ranked team of a ranked dataset (a league table) first into the strongest slot. A dataset with fewer than 20 players fills the spare places with "Reserve A", "Reserve B"...
- Ratings and stats are not rewritten. Each place keeps its position, shirt number and 13 stats from the original game, so a team plays at the level of the slot it lands in. The patch only decides who takes a place: a squad's best player of a position takes the place with the highest original Skill. What each stat does in a match has not been measured, so none is touched.
- Flags and the Tournament bars belong to the slot and are not redrawn: a team in another country's slot shows that country's flag.
- In game and Play here do not apply to this game yet. The squads preview and the downloads work.
Play here
- Play here runs the patched game in this page with a built-in emulator, straight from memory. Nothing is downloaded or uploaded.
- Controls: the on-screen pad on phones and tablets; on a computer the arrow keys, Z (A), X (B), Enter (Start) and Shift (Select), or a gamepad.
- It is silent for now and has no save states. It needs a current browser (Chrome, Edge, Firefox or Safari, desktop or mobile) and runs best on a phone from the last few years.
Troubleshooting
- "Not the supported dump": only the USA/Europe release of International Superstar Soccer (256 KB) the Europe release of Sensible Soccer (128 KB) and the USA release of FIFA Soccer '98 (512 KB) work. Another revision, a patched copy or a ROM hack is refused.
- Wrong size: a ROM with a copier header is 512 bytes over its normal size; remove the header first.
- Zipped ROM: unzip it first and drop the .gb file.
Legal
Not affiliated with or endorsed by Konami, or by any football association, league, club or player. Team and player names are used to describe real squads. The background artwork is illustrative; nobody depicted in it has endorsed this site.
Squads built from Football-Data.org are used under its terms. If that access ends, those patches are withdrawn from this site.
Credits
- International Superstar Soccer © Konami.
- Football data provided by the Football-Data.org API.
- Player ratings derived from Wikidata (CC0).
- Font: Pixelify Sans (SIL Open Font Licence).
- Emulator (Play window and dev view): boytacean by João Magalhães (Apache License 2.0).
Full licence texts: third-party licences. patchdai's own code is MIT licensed.
What this page stores
- Your window layout and which windows are open.
- Preferences from the window: the Play view (handheld or window), whether to skip the intro and squad-news screens, and a reduce-motion override.
All in this browser's localStorage; no cookies, and nothing is uploaded. Clear your browser storage to reset.
How AI is and isn't used here: .
AI use
AI helps build Patchdai. It does not run when you use it.
Where AI is used
- In development only. An AI agent (Claude Code) helps reverse-engineer the games, write code and keep the notes. A person chooses the work and reviews every change before it ships.
- Not in the live site. When you patch a ROM, the work is done by fixed code running in your browser. No AI model is consulted and no prompt is sent. There is no chatbot, recommender or other AI feature on this page.
What is and isn't AI-made
- Squads are real data, not generated. Team and player names come from Football-Data.org; player ratings are derived from Wikidata. They are fetched and converted by scripts, not invented by an AI.
- Reverse engineering was AI-assisted, then proven. AI helped read emulator traces and draft probe scripts, but every fact about the game was confirmed in an emulator before it was trusted. Unconfirmed AI output was treated as a hypothesis, not a fact.
- Site copy and code were written with AI assistance and reviewed by a person.
The limits of AI output
- AI can be inaccurate, incomplete, outdated or misleading. It is not authoritative.
- AI does not replace human review for legal or rights questions, data accuracy, compatibility testing or release decisions. Those stay a human responsibility.
- AI-generated material is not guaranteed safe, correct, original or free of third-party rights concerns.
Your data and AI
Nothing you do on this page reaches an AI provider. Your ROM stays in your browser and is never uploaded; no ROM bytes, squad choices or prompts are sent anywhere. Because there is no runtime AI feature, there is no path by which your data could be sent to one. .
Reporting a concern
If something here looks inaccurate or concerning, please report it. Open an issue on the project's GitHub repository, or reply on the channel you heard about Patchdai from. Reports are read by a person.
See also: and .
Settings
These choices stay in this browser only (localStorage). Nothing is uploaded. Clear your browser storage to reset them.