News: 11 March 2016 - Forum Rules

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - Sanky

Pages: [1]
ROM Hacking Discussion / Re: Screenshots
« on: February 01, 2014, 10:38:05 am »
You do realise there's a upside-down T-shaped box-drawing character, right?
Right, but those extra box drawing characters are only used on the tutorial screen.  i.e., this single tilemap (out of over $f0).  No point adding them just for that, especially considering the collisions (like ♥ with upside down T)

ROM Hacking Discussion / Re: Screenshots
« on: February 01, 2014, 07:25:05 am »

I swear, you don't know the amount of work that went into this screen.

All smooth sailing from this point onwards.

Newcomer's Board / Re: Medarot 1 GB Translation
« on: September 19, 2013, 07:59:39 am »
Oh, glad I didn't guess. Is there a document out there somewhere I can look at to learn about this? I found a library called TrueText after googling, but I'm still a little confused since my understanding was that the 8x8 tile thing was a result of the Gameboy only being able to 'draw' 8x8 tiles at a time. Or is it just more of a 'Place Images next to each other' sorta deal?
The tilemap on screen consists of 8x8 tiles.  (Japanese) games usually keep the whole font loaded in memory at once and just set the tilemap to use one of the tiles when printing text.  As you probably know, Japanese characters are all square, so it works out quite well.

The Latin writing system's a bit different, though.  Letters are supposed to have different widths, and if you don't do that, things look ugly.  To implement that on a Gameboy, you have to draw the tiles by combining the letters manually, and then set these on the screen.

If you don't do that, you end up with ugly looking fixed width text like in Pokémon, and you can only fit very little dialogue on screen at once.

Of course, it's possible to add a VWF to Pokémon, too.

Oh. So there's just a function defined somewhere in the ROM that handles all the control codes, and you just added a new case in for EC?

Anyway, thanks for answering all these questions. I really appreciate the information, I'm learning a lot here from this little project.
No problem.  You can also catch me on IRC, me and Kimbles hang out in #telefang on and I recently joined #romhacking too.

Newcomer's Board / Re: Medarot 1 GB Translation
« on: September 19, 2013, 07:32:28 am »
Oh cool, I didn't realize you were still working on this.
Oh, right, you saw that.  Well, I'm a bit more experienced than back then, so I just started over.
From what it looks like, you're working with a ROM that already has the English tileset in?
Yeah.  For dialogue, it uses the Japanese font by default, but switches to english with a new special code ($49).  For all menus it uses an English tileset though, so they're gibberish until translated.  They have priority anyway over dialogue, anyway.
The legend you wrote up is really helpful. Clarifies a lot of the unknowns I was trying to figure out (4A, 4D, 4B).
Actually, Kimbles wrote that ;)  She figured out and wrote down a lot and is the one doing the translating.
This is my first ROM hacking project and I've only been at it 2 days, so sorry if it sounds stupid but... what's a VFW? I can make a guess from context, but I'd rather not confuse myself further.
Oh, right, sorry.  VWF stands for variable width font.  Essentially it means you aren't limited to 8 pixel wide characters when printing text.  I think it looks more professional and also allows more text to fit in menus etc, so programmed it in.  The way Medarot is written means that some static menu text is going to stay fixed-width, but most dialogue and variables (Medarot, item, part names etc) can be variable width which means they don't have to be shortened as much.
Also, from looking at your Telefang patch, it looks like I should find where the text is referenced, and rewrite the ASM at that point to JMP to an empty bank? I'm a little unfamiliar with how the GB arch works, but my assumption is that I'd jump down to an empty bank (probably changing some register that keeps track of the current bank), and then it'd read from there, but then would I change back immediately afterwards?
Essentially, I guess.  When the game is reading text, it reads byte after byte and checks if it's one of the control codes, like newline, speed change, variabe etc.  If it's one of these, it does stuff, otherwise, it just prints the equivalent character on-screen.  What I did in Telefang was adding a new control code it checks for (EC) followed by two bytes, which makes it change the bank and place it's reading text from.

Newcomer's Board / Re: Medarot 1 GB Translation
« on: September 19, 2013, 06:59:08 am »
Hi!  Me and Kimbles have been working on a Medarot 1 translation patch for a bit.  It's currently hosted over at Bitbucket, together with a very partial disassembly:
See "english" branch for the translation patch:
You can also compare them to see what changes were done in the patch. (warning, large)

You can also see all current English translations at the Medapedia wiki:
Unfortunately, the game's texts seem to be ordered in a pretty wild fashion, but at least the battle texts are together:

Anyway, there isn't much to show, but a framework for a translation is being built.  I wrote a VWF for the game, so more text can fit onscreen and Medarot names won't have to be shortened.
Here are some pretty dumb screenshots of the last build:

Text codes are broken, oh well.

Untranslated overworld dialogue still uses Japanese instead of gibberish.

Alas, yeah, that's all we have to show for now.  I should look into it more soonish.

Anyway, to answer some of your questions:
By searching around and finding random tutorials, I managed to replace all the tiles with English ones and make an English table.
Guess you know the game uses Malias compression then.  I didn't really work with is in my patch-since there's plenty of space, I just replaced the compressed graphics with full 1bpp and 2bpp gfx.  I did write a decompressor a while back, though.
4B23C9 is (NAME) and 00 is space. 76 4F seems to indicate the start of dialogue, and 4C seems to indicate the end of the current chatbox (as in, hit A to continue).
Actually, 4F indicates the /end/ of a dialogue, in your case of the previous string.  It's followed by varying end codes, 00 is the most common one which just closes the box.

Anyway, there are pointer tables at the start of the text banks linking to each text in the bank.

is there any way to somehow get this to be a 3 byte pointer so I can point it to the huge amount of spare data at the end address of the ROM?
Theoretically.  It'd be easier to just introduce a new text code to jump to another bank, like I did in the Telefang patch.

Pages: [1]