Newest Hacks

Sonic Genesis Mega Woman Aaahh!!! Real Monsters Improvement Mod Final Fantasy VI Expanded

Newest Translations

Power Soccer Alundra The Legend of Zelda: Spirit Tracks Eternal Legend

Newest Reviews

Lufia: The Legend Returns Text Cleanup Ultimate Mortal Kombat 3 Deluxe [GBA] Zelda: Link to the Past - Between Worlds voices Pokemon Factory Adventure

Featured Hack Images

Pokémon Red - Proud Eyes edition RockMan Overdrive Pokemon Emerald: Complete Hoenn Dex Edition Miracle Warriors Improvement

Featured Translation Images

Star Voyager DuckTales Final Fantasy IV Kunio-kun no Dodge Ball: Zenin Shuugou!

Recent Updates

  • Hacks
    I remove some sentences to let it describe the hack is all about and not pander to woke western political statements
  • Community
    For some unknown reason, the site claimed my account doesn’t exist, so I recreated it using my E-mail and wanted to check if a small edit works just as fine.
  • Community
    Avatar
  • Utilities
    Due to the fact that CajeASM hasn't been updated by me for many years, still has some odd bugs regarding instruction counter and due to the fact that (nowadays) better alternatives exist now, I've decided to delete this tool from this website. An alternative assembler I can recommend is bass, currently maintained by ARM9. To be found here: https://github.com/ARM9/bass
  • Reviews
    Upon further play, I discovered this hack broke an integral system to the game (the dash function).

Romancia Narrow

Description:

This variable-width font was created for Romancia because it was impossible to simply expand the text box. The original game does not write tiles to the text box. Instead the same 30 tiles are permanently used to form the contents of the text box. The tiles’ pattern tables are in VRAM, and the pattern tables are written to with the shapes of the letters from PROM, based on the text that needs to be displayed.

Well, there was no way that English text was going fit in a 30 character box and there were no more tiles to use to expand the size of the box. Also, due to the way the game works, with the text writing and erasing automatically just by the player moving, there was no clean way to make multiple pages of text; no way of reading a button press to indicate done reading the first page. The only thing that was going to work was to display multiple characters per tile. My goal was to make the narrowest font possible.

So, this was my first task. If I couldn’t get it to work, there was no reason to continue working on the game, and we would abandon the project. It was a fun challenge. I knew people implemented VWFs on Genesis and SNES games, but I didn’t look at any of those routines. I just thought about what needed to be done and wrote the code out. I kept editing it until it fit in the location where original text code existed.

Well, after I tested the code that I wrote and ironed out all the bugs to get it to write and erase text correctly, it looked like it wasn’t going to work. There was a timing issue. While it was writing the text, the screen would scroll randomly. This was due to the code for displaying one tile taking too long for the NMI. I had done everything I could think of to make the routine as efficient as possible, but it still had a problem. I looked everywhere in the code to see what I could disable, but nothing worked.

After days, I stumbled upon a solution. I simply made the maximum height of the characters 7 pixels instead of 8. Most characters aren’t 8 pixels high anyway, since you normally need a blank row of pixels to separate lines of characters. That was it. It now looks like the font you see today with no timing issues. A 7-pixel font also had another advantage. The VWF information could be stored on 1st with the 7 pixel bytes following it and now it was easy to view the font and its VFW info together.

Links: