Dimedime-d / kptranslation

English translation of the GBA game Kururin Paradise
Other
27 stars 0 forks source link
fan-translation gba kururin kururin-paradise paradise rom romhacking translation

Kururin Paradise Translation

Ready to fly? Explore many worlds in this sequel to Kuru Kuru Kururin, piloting the Helirin with its ever-rotating propeller. In this adventure, your family went missing when they went to see a magic show. It's up to you to search for them and bring them back home. Overcome new challenges using the right shoulder button to speed up the Helirin's rotation. Between all the Helirin mazes, you will encounter the people behind the magic show and be challenged to a variety of minigames. They probably have something to do with your family, and you might even learn a magic trick or two along the way.

Play by yourself in Single Player mode, or with up to 3 friends in Single Pak Versus mode. Race through 30 challenging Helirin mazes and compete in many different minigames for some action-packed fun.

Patching

bps patch (Recommended)

Manual Patch (Windows only)

Extra Features

In addition to the translation aspect of this project, there is some additional functionality on top of the base game:

Screenshots

Newtitle Intro overworld1

newpractice dialog InLevel

KeyGet Minigame menuMinigame Splash

Menu magicdemo magiceng2

Patching Notes

My "patching" program of choice is armips, which lets me write assembly hacks, include binaries, dynamically address labels, etc. Some chunks of the ROM are compressed via the GBA's BIOS method, so the batch script also runs lzss by CUE to decompress those binaries (mainly multiplayer). armips hacks those binaries, and lzss re-compresses them to be inserted into the ROM by invoking armips again. The whole patching process is self-contained, aside from the ROM.

The "encoded" text in the ROM is automatically patched using the above batch script i.e. you can change the contents of the text in the text/ folder, and they will appear in the ROM when you manually patch.

All "graphical" text in the ROM is not automatically formatted and inserted. Should you change the images, there are a smattering of Python scripts in the graphics/ folders to format the images to .dmp files, which has already been done. Python is my fast and dirty way of re-quantizing images to the same palettes used in game, compressing data using the game's custom functions as well as operating grit.exe. You do not need Python to patch the ROM, only to format new images if you choose to do so.

Debug Features

You change the value of DEBUG_VAR in build.bat to a nonzero number to enable one debugging feature. Currently, you can re-watch the "rank up" cutscenes and re-view the location splash screens by holding L after any "level complete" screen.

Known Bugs

Areas of Potential Revision

Other Language Support

There don't appear to be glyphs of extended Latin characters in the ROM, nether in the "ASCII" font nor in the font used in dialogue. Also, I had enough trouble getting lowercase ASCII characters to load properly in some places, as they weren't loaded by default. Should anyone decide to translate into other Romance languages, you would have to implement your own glyphs and load them properly.

License and contributions

Special thanks to E-Sh4rk for documenting one of the compression/decompression routines the game uses.

Special thanks to NewGBAXL for revising the main game scripts (dialogue)

Armips was created by Kingcom.

grit was created by cearn, Jasper Vijn

armips.exe and graphics/grit.exe are licensed under the MIT license.

lzss.exe is by CUE and licensed under GNU GPL, version 3.

The text box "You got the Key for this place!" was taken from a much buggier translation patch of this game, with some slight modifications.

All other files in this repository are licensed under the GNU General Public License v3 (GNU GPL-3)

The LanaPixel font was used to generate some text in some images (minigame instructions). LanaPixel was created by eishiya and is licensed under Creative Commons 4.0 International.

This software uses the FreeImage open source image library. See http://freeimage.sourceforge.net for details.

FreeImage is used under GNU GPL, version 3.

See LICENSE.MD for license texts.