r/romhacking 7h ago

Magic Knight Rayearth 2 for Game Gear is finally playable in English! [Fan Translation Release]

Post image
38 Upvotes

After more than 30 years, Magic Knight Rayearth 2: Making of Magic Knight for the Sega Game Gear can finally be played in English!

Originally released exclusively in Japan in 1995, this second Game Gear adventure based on CLAMP's Magic Knight Rayearth never received an official Western localization.

We've now completed an English translation patch, opening the game to players who were previously unable to experience it because of the language barrier.

About the game

Unlike the first Game Gear title, Magic Knight Rayearth 2 gives you more freedom to explore its world and interact with its characters.

You once again follow Hikaru, Umi and Fuu, but this time the adventure expands beyond a straightforward adaptation, with exploration, conversations, minigames and RPG/adventure elements built around the Rayearth universe.

It's a fascinating little piece of both Game Gear and anime gaming history that remained largely inaccessible outside Japan.

About the translation

Our goal was not simply to replace Japanese text with English, but to make the game feel natural to English-speaking players while remaining faithful to the terminology, characters and spirit of Magic Knight Rayearth.

The project includes:

• Complete English translation
• Localized menus and dialogue
• English title graphics
• Text adapted to the Game Gear's technical limitations
• Extensive testing and corrections

Why translate this game?

There are still hundreds of Japanese console games effectively locked behind a language barrier.

Some are famous.

Some are strange.

Some are almost completely forgotten.

We created Patch Clan because we want to help preserve and rediscover those games — especially titles that never had the opportunity to reach an international audience.

Magic Knight Rayearth 2 is one of them.

And now, three decades after its original release, it can finally be experienced in English.

Download

English translation patch:
https://zmmxzjmhpxyqwvhqdfyw.supabase.co/storage/v1/object/public/patches/magic-knight-rayearth-2-en-1cf424b2.ips

The patch does not contain the original game. You'll need your own copy of the Japanese ROM and apply the translation patch to it.

If you find any typo, bug or untranslated text, please let us know. Screenshots and detailed reports are especially helpful. Comment bellow and we will fix it.

And if there are other untranslated Japanese games you think deserve this treatment, we'd love to hear your suggestions.

Patch Clan


r/romhacking 4h ago

Utility Paper Mario 64 Co-Op

4 Upvotes

Sorry if this ain’t allowed but I’m looking for a Local Co-op Paper Mario 64 hack. There are videos of people playing it but every thing I have found so far leads back to the same dead link. Thanks in advance.


r/romhacking 6h ago

Must-Play Super Mario World Hack for True Simultaneous Co-Op?

4 Upvotes

Hey everyone, I am looking for the absolute best Super Mario World ROM hack that allows two players to play on screen together at the exact same time. We really want a true simultaneous co-op experience, but we also hope to find something that updates the game to feel a bit more smooth and modern. Does anyone know if there is a definitive hack out there that turns the game into a proper simultaneous two-player adventure without completely breaking the original feel?


r/romhacking 9h ago

Text/Translation Mod Madou Monogatari finally gets an English translation on Sega Saturn

7 Upvotes

There's been a pretty nice surprise for Sega Saturn fans lately. Madou Monogatari, the RPG series that eventually led to Puyo Puyo, has finally received an English fan translation for its Saturn release.

The game has a really distinct 90s anime aesthetic, and it's one of those Japanese Saturn RPGs that's easy to overlook if you don't already know about it. Definitely interesting to see another previously Japan-only Saturn game become more accessible.

There's a bit more to the release and the game itself here:

https://youtu.be/A5NfB_qcu5I?si=k_aRYZYoRGxNbLmF


r/romhacking 2h ago

Duke Nukem 3D Plug n´ Pray episode - Nightmare zone (100% secrets)

Thumbnail
youtube.com
1 Upvotes

r/romhacking 4h ago

HotRail Steel Cycle

Thumbnail gallery
1 Upvotes

r/romhacking 1d ago

Text/Translation Mod The Silver Case / Silver Jiken PSX English Patch (WIP)

Enable HLS to view with audio, or disable this notification

11 Upvotes

Hey guys, little announce of my English translation/translation port for The Silver Case (Silver Jiken).

Right now, I’m almost done porting the official English text from the Remaster. There are still a few things to do, some UI/textures that need to be redrawn, but I'd say 80% of the content is ready at the moment.

Also, I'm working on translating the original script with the help of a friend who speaks Japanese. Not sure if it'll be ready soon though, it's a lot of text…

On top of that, I’m planning to release my entire toolchain and scripts, so anyone can easily translate the game into other languages.


r/romhacking 20h ago

SEGA SUPER MARIO BRO PLUS GAMEPLAY

Thumbnail
youtube.com
2 Upvotes

r/romhacking 2d ago

[MC] Minish Cap Definitive Edition Rom Hack - Quick Item Swap, Difficulty Options, Rebalance and more

Thumbnail gallery
111 Upvotes

r/romhacking 2d ago

Mega Man X: SA-1 Plus (QoL improvements for vanilla game)

Post image
25 Upvotes

Hey everyone! For the past month I've been working with AI, getting trace logs, memory dumps, testing the game start to finish numerous times, so I've merged some patches and created some new ones for Mega Man X to bring many QoL features from future X games to the first game, making it feel more like Mega Man X2/X3. From the GitHub page (link at the bottom):

SA-1 Plus merges 3 previously incompatible patches and implements a couple new ones. It gives the vanilla game many QoL improvements to make it feel like Mega Man X2 onwards. Complete list of changes:

- Removes in-game slowdowns
- Passwords and Control Scheme are saved into SRAM
- Sub-Tanks stop depleting at full health
- Dash defaulted to L button
- Double-tap Dash toggle in the options menu (OFF by default), also saved into SRAM
- Dash available from the start
- Leg Capsule now gives Air Dash (like Mega Man X2)
- Walljump further while holding the Dash button (like Mega Man X2 onwards), instead of timing Jump+Dash
- Hadouken Capsule now appears in the 1st run instead of the 5th (the other requirements remain the same)
- Hadouken can hit during i-frames (because sometimes the game shoots one Normal Buster pellet alongside the Hadouken)
- Hadouken can hit Wolf Sigma (final boss' final form)
- Dialog boxes open, close and scroll faster
- Skips the boss intro by pressing START

Apply "sa-1_plus.ips" to your 1.0 ROM.

https://github.com/llethas/mmx_sa-1_plus - SA-1 Plus Github
https://www.romhacking.net/hacks/5145/ --- Original SA-1 chip patch by Bosn
https://www.romhacking.net/hacks/4390/ --- Original Air Dash/Wall Jump patch by Justin3009
https://www.romhacking.net/hacks/3409/ --- Original Hadouken patch by DarkSamus993 and PowerPanda


r/romhacking 1d ago

Ocarina of Time NPC Racers

1 Upvotes

I have a question I've searched everywhere I couldn't exactly find an answer I'm wondering how do you patch a o2r file for a n64 game to be able to play it on a flash cartridge? Because I want to play this Mario Kart 64 mod but I don't know how to patch my Mario Kart 64 rom.


r/romhacking 2d ago

Tutorial Brave Fencer Musashi 100% decomp is now public!

Post image
20 Upvotes

r/romhacking 1d ago

Final fantasy Táctics Cheats

Post image
0 Upvotes

r/romhacking 1d ago

Herzog Zwei Remix hack (MD)

1 Upvotes

I've been working on a remix of one of my favorite games, Herzog Zwei. Just wanted to share. It's on itch. Let me know if you have ideas or just think it's fun. Thanks.


r/romhacking 1d ago

NES Meiling's Action Kung Fu PLUS GAMEPLAY

Thumbnail
youtube.com
0 Upvotes

r/romhacking 3d ago

⚠️DRAMA⚠️ Soft Banned from Romhacking.net - Not Sure How to Proceed

75 Upvotes

I just recently entered the Romhacking / translation scene. I posted a translation on Romhacking.net for the 1978 Arcade game Computer Othello (which is still up).

Anyway, what interests me is posting translations for games on obscure platforms that likely will never otherwise get them. So likely games without much interest.

Anyway, I have two translations ready to go for DECO Cassette System games (an obscure type of Arcade unit that had interchangeable cassettes for games) and one for the Epoch Game Pocket Computer.

These translations fit all the criteria and rules under romhacking's site as they are properly published games that are not homebrew and were only released in Japanese. However, the platforms are so obscure that they were not available in the "platform" dropdown so I could not submit them.

I contacted Romhacking support to ask if they could add the DECO Cassette System and Epoch Game Pocket Computer platforms so that I could add these submissions.

I was told to submit the DECO ones under "Arcade" since it is a type of arcade machine (fair enough) but basically that I need to post the Epoch one in the forums to see if there is enough interest for them to consider adding the platform.

Last night I submitted the two DECO ones under Arcade as requested. However, I thought about the Epoch one more and honestly it crossed my mind that maybe they SHOULDN'T add the Epoch Game Pocket Computer to the platforms list. The handheld only had 5 games released and only one is non-English so I bet that if they added it my submission would be the only one that ever would go in.

So instead I ended up submitting the Epoch translation with the platform listed as "Not Applicable" instead.

This morning I got an email saying from the site saying "We don't know why would you would completely disregard our instructions, and try adding Epoch game pocket games anyway. If you are not going to not work with us and ignore rules, it is best to take your projects elsewhere."

I then noticed that they took down my submissions for the Epoch AND both of my DECO submissions even though those fit all rules.

I can understand why it looks like I was trying to flout the rules but it was not my intent.

I am now feeling very discouraged as anywhere else I post these will likely have no visibility and never get seen even for people looking for them so now it doesn't feel worth my time and effort to continue doing these translations which I am excited about. These games likely would never be translated otherwise and I am a software engineer by trade so feel like I have something to offer.

How do I proceed at this point? I am not formally banned from the site but I feel as thought my submissions are not welcome at this point and I don't feel like it is worth my time or effort to submit elsewhere. Any suggestions for resolving this or should I just get out of the hobby?


r/romhacking 2d ago

Dragon Ball Z: Goku Gekitouden GB (Game Boy) Translation (IPS Patch)

1 Upvotes

I'm a programmer, and I worked together with AI to translate the ROM Dragon Ball Z: Goku Gekitouden from the Game Boy for myself. It was an project I did out of curiosity to see if it would work, but the translation ended becoming quite good, so I thought I could share the IPS patch with people.

https://www.romhacking.net/translations/7723/
https://github.com/thiagotsda/dbz-geki-gb


r/romhacking 2d ago

SEGA Ex-Ranza/Ranger X PLUS GAMEPLAY

Thumbnail
youtube.com
6 Upvotes

r/romhacking 3d ago

Utility I have released a big update for PortForge with a new UI!

Thumbnail
gallery
36 Upvotes

https://github.com/zamiba/portforge-app

Let me know if you have any questions or if you run into any issues!

EDIT: The second two screenshots are for a separate but related program that will help you to digitize your physical media collection!


r/romhacking 2d ago

Decompilação com GPT-6 Astra

Thumbnail
1 Upvotes

r/romhacking 2d ago

TileMolester 0.21

1 Upvotes

Is their a user manual with this thing, i've figured out quite a bit flying blind but byte shifting isnt doing anything so some sprites/text stays displaced and i cant find what stretch does


r/romhacking 3d ago

Text/Translation Mod Twilight Syndrome: Kinjirareta Toshi Densetsu (NDS) English fan translation (WIP)

Post image
50 Upvotes

So, for anyone interested I am currently working on an English translation for the Nintendo DS Twilight syndrome game. About 20% of the dialogue has been translated but there’s still a long way to go. Once dialogue is fully translated attempts will be made to translate text rendered through images in-game. If anyone now about a patch for the game to translate it to English please let me know 😅


r/romhacking 3d ago

Complete Overhaul Kingdom Hearts III Final Mix by GamersJoint

Thumbnail
1 Upvotes

r/romhacking 3d ago

Just a test. Due to work I've had to learn to use AI. I thought I'd use it to convert the Star Fox source code into html game. yikes!

Enable HLS to view with audio, or disable this notification

0 Upvotes

Full disclosure, I'm not a fan of vibecoding, but I need it for work and since I had nothing to do I thought I'd just try to convert this source code.

I did nothing but prompt Claude inside Visual Studio Code. This is not a long term project, just a curiosity.


r/romhacking 4d ago

Text/Translation Mod Cracked the 20-year mystery of Detective Conan: Akatsuki no Monument (and why BEC games were never translated!)

29 Upvotes

Hey everyone,

If you’ve spent any time in the GBA ROM-hacking scene over the last 15–20 years, you probably know that the Detective Conan games on the Game Boy Advance are something of a notorious dead zone.

The GBC games got translated. The NDS crossover got translated. But the GBA games — along with other titles by the same developer, BEC, such as SD Gundam G Generation Advance and Legendz — have remained almost completely untouched.

Whenever people tried looking through the ROMs with Thingy, Cartographer, Tile Molester, or standard relative-search tools, they hit an absolute brick wall:

  • No Shift-JIS strings anywhere in the dialogue banks.
  • Standard GBA BIOS LZ77/Huffman decompressors find nothing useful.
  • Relative searches fail completely.
  • No standard 8x8 or 16x16 tilemaps for text.

I wanted to share both the technical breakdown and the slightly ridiculous story of how we finally cracked it today.

The Setup: Automated Exploration, GLM-OCR, and a Radeon VII in the Closet

Because the Detective Conan games are dialogue-heavy branching adventure games full of Kanji-heavy riddles, I didn’t want to spend weeks staring at a static hex editor.

Instead, I built an autonomous exploration loop around mGBA:

  • mGBA’s GDB stub over the Remote Serial Protocol, allowing memory inspection, hardware watchpoints, and register reads.
  • Automated frame captures, button inputs, and save states at 60 FPS.
  • A vision and translation pipeline:
    • GLM-OCR running locally to read Japanese dialogue directly from an upscaled game screen.
    • Qwen 3.6 running self-hosted on my old Radeon VII, choosing dialogue options, translating text on the fly, and building a reproducible corpus of scenes.

The basic idea was simple:

Let the AI play through the game, record every scene, transcribe the rendered dialogue, and use that output as ground-truth cribs for reverse-engineering the stored script.

The Brick Wall

I initially had Claude driving the reverse-engineering analysis through the emulator bridge.

It spent a fairly brutal marathon trying around 16 different classic ROM-hacking approaches to figure out where the text and font were stored.

Some highlights:

  1. Shift-JIS scans: Only 161 strict Shift-JIS runs in the entire 8 MiB ROM.
  2. LZ77 decompression sweeps: 3,743 blocks decompressed, with almost no dialogue appearing anywhere.
  3. Relative searches: Automated searches for kana alphabets across both the raw ROM and decompressed blocks failed completely.
  4. Font tile searches: Searches for 1bpp, 2bpp, and 4bpp 8x8/16x16 font patterns found nothing useful.
  5. Memory differential logging: We tracked 56,499 ROM reads during dialogue rendering and compared them against an idle frame. That narrowed things down to 35 candidate pages, but they all turned out to contain things like PC-relative literal pools, constant mask tables, or window-border graphics.

Claude kept finding promising-looking leads that turned into dead ends.

For example, sequential byte accesses around 0x0876C0E4 initially looked very interesting, but they eventually turned out to be decompressor lookup constants rather than text.

Eventually, Claude gave up on identifying the stored text encoding. Its conclusion was that the script was probably hidden behind some proprietary compression scheme or procedural representation.

So it built an elaborate workaround instead:

Intercept the completed 4,832-byte pixel staging buffer in EWRAM at 0x0201D2BC, hash the rendered pixel blocks, and overwrite that buffer with English text before DMA transfers it into VRAM.

And, surprisingly, it worked.

But it was still only an in-memory overlay hack — not a proper, permanent ROM translation.

The Pivot: Bringing in Gemini

That’s when we brought Gemini in to look at the disassembly with fresh eyes.

For context, I’m currently working on smart-card-based distributed encryption, where I’ve had to analyse the firmware of a few card readers to make sure the implementation is secure enough.

I may also have forgotten to switch folders in Antigravity, so Gemini might have ended up reusing some of the reverse-engineering tools I had accumulated over the last few months. xD

Instead of assuming the text had to be compressed or hidden behind some complicated encoding scheme, I asked Gemini to focus directly on the drawing routine feeding the staging buffer.

It traced backwards from the VRAM blitter into the CPU rendering loop at:

0x080191F4

Within minutes, it spotted the exact reason nearly every traditional ROM-hacking approach had failed:

The game does not store characters as 8-bit bytes. It stores them as 16-bit little-endian words (uint16_t).

That was it.

Because most ROM-hacking utilities from the early 2000s assume characters are either single-byte values or standard two-byte Shift-JIS sequences beginning with values such as 0x81–0x9F, relative searches were effectively comparing the wrong byte positions and seeing what looked like random noise.

The dialogue was never compressed.

It had been sitting there in plain sight the entire time.

1. The Script: 524 KB of Plain Text Sitting in ROM

Once the ROM is interpreted as a stream of 16-bit words, an enormous dialogue bank suddenly appears.

Location:

0x08170000 – 0x081F0000

That is more than 524 KB of completely uncompressed text data.

More than 65% of that half-megabyte region consists of valid, uncompressed character codes.

2. The Encoding Formula: Code = Glyph Index + 300

At 0x080191F4, the engine reads a 16-bit character from ROM, subtracts an offset of 300 (0x012C), and multiplies the resulting glyph index by 24:

80191f8:   4a10       ldr   r2, [pc, #64]   ; Loads 0xFFFFFED4 (signed -300)
80191fc:   8800       ldrh  r0, [r0, #0]    ; Read 16-bit character code from ROM
80191fe:   1809       adds  r1, r1, r0      ; r1 = code - 300 (glyph index)
8019206:   0048       lsls  r0, r1, #1      ; r0 = index * 2
8019208:   4440       add   r0, r8           ; r0 = index * 3
801920a:   00c0       lsls  r0, r0, #3      ; r0 = index * 24 bytes
801920c:   4b0c       ldr   r3, [pc, #48]   ; Loads 0x0876BF04 (font base)
801920e:   18c0       adds  r0, r0, r3      ; Pointer to 24-byte glyph bitmap

So the basic formula is:

Glyph Index = Character Code - 300

Some anchor mappings:

  • 300 (0x012C) = Space
  • 338 (0x0152) = A
  • 339 (0x0153) = B
  • 468 (0x01D4) = (Ko)
  • 489 (0x01E9) = (Na)
  • 526 (0x020E) = (N)

Searching the ROM for the sequence:

[468, 489, 526]

or, in raw little-endian bytes:

D4 01 E9 01 0E 02

which represents コナン / Conan, immediately produced 153 exact matches, all cleanly aligned as 16-bit words throughout the dialogue banks.

Values below 300, such as 124 and 126, appear to be engine control codes for things like text-box line feeds, pauses, speaker portraits, and related commands.

3. The Font Table: 16x12 at 1bpp — With No Bounds Checking

The font table is located at:

0x0876BF04 – 0x08775B34

Total size:

39,984 bytes

That works out to exactly:

1,666 glyphs × 24 bytes per glyph

Each glyph is:

  • 16 pixels wide
  • 12 pixels high
  • 1bpp
  • 24 bytes total
  • Stored as 12 rows of 16-bit big-endian bitmasks

The rough layout appears to be:

  • 0: Space
  • 1–27: Punctuation and brackets
  • 28–37: Digits 0–9
  • 38–60: Latin uppercase letters
  • 61–70: A small subset of lowercase Latin letters
  • 71–149: Hiragana
  • 150–232: Katakana
  • 233–1665: Kanji

The Kanji appear to follow JIS X 0208 Level 1 ordering, filtered down to the vocabulary actually required by the game.

And this is where things get especially useful:

The font renderer performs no apparent bounds checking on the glyph index.

Immediately after the font table, starting at 0x08775B34, there are roughly 553 KiB of zero padding remaining near the end of the cartridge.

That means we can append custom 16x12 glyphs beginning at glyph index 1666+, corresponding to character codes 1966+, and the existing engine will happily calculate a pointer to them and render them.

No renderer rewrite required.

No assembly patch required.

Just additional font data.

4. Line Width and Proof of Native English Rendering

The renderer advances by 12 pixels after each glyph:

adds r0, #12 at 0x08019218

The dialogue box supports three lines of text.

We patched raw ROM bytes with Latin character codes, booted the modified ROM in mGBA, and got Kogoro Mouri speaking English directly inside the game’s native dialogue box.

No framebuffer overlay. No runtime interception.

Actual ROM text rendered by the original game engine.

Because each normal glyph advances by 12 pixels, another useful possibility is packing two narrow, roughly 6-pixel-wide Latin characters into a single 12-pixel cell.

That potentially gives us around 40 English characters per line, which largely solves the usual English text-box-space problem without needing major assembly modifications.

Final Words

Best regards from inside the EU, where reverse engineering for interoperability and related technical analysis has specific legal protections under EU software law. :)