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.
- Original ROM:
Kururin Paradise (J).gba
- SHA-1 Hash:
73BE3B930E2436D1C7BDB74AC281DD27C72E1F9E
bps patch (Recommended)
- Download Floating IPS
- Download the latest release
- Open Floating IPS and patch the original ROM with the bps patch.
Manual Patch (Windows only)
- You will need the Visual C++ 2015 x86 Redistributable to run
armips
. - Clone this repository
- Rename your dumped ROM to
kp.gba
- Put kp.gba in the root of the repository
- Run
build.bat
- Output ROM is
kp_patched.gba
In addition to the translation aspect of this project, there is some additional functionality on top of the base game:
- You can re-watch Adventure Mode cutscenes in Practice Mode.
- The functionality for deleting all save data / reinitializing corrupted save data has been restored. In the original ROM, if you held A, B, L, R, Start, and Select before the Nintendo logo appears, the game would crash. Same thing happens when the SRAM checksum fails. This is due to the game trying to create a buffer in a space that hasn't been initialized yet. This may matter for flashcart testing...
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.
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.
- Some character timings are slightly off, due to my timing of the "rolling" text characters being faster.
- Transferring save data from the original Japanese ROM will result in slightly glitched in-game names, as the Japanese names remain in SRAM. Same thing will probably also happen if you named one of the save files with Japanese characters. I'm okay with this, as this doesn't impact the first-time experience. Use the attached save file fixer for migrating save files from the original Japanese ROM.
- The game scripts (especially the dialogue)
- General graphical polish
- Optimize the credits sequence to display more text at once (currently limited by GBA OAM slots)
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.
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.