11 March 2016 - Forum Rules
Started by RaidouJFlo, March 07, 2016, 11:49:33 AM
Quote from: zonk47 on March 07, 2016, 12:11:20 PMThat shouldn't be too hard to find... the routine is used in the opening sequence, which comes right after you press start. Pause right after you press start, then step through until infinite loop. The text routine is right before the loop back.
Quote from: Gideon Zhi on March 07, 2016, 12:23:46 PMSNES games do this all the time. This is the foundation of proportional ("variable-width") fonts. Instead of tiling the font characters to the screen, they're drawn to a discrete section of ram which is then itself tiled to the screen. In the case of a game with a monospace font like this, it's likely done to minimize the amount of PPU memory taken up by the text; it's dramatically cheaper from a memory perspective to use 36 bytes (DC-FF, it looks like) for dynamic text than it would to store entire hiragana+katakana character sets. Of course, the tradeoff is that it takes more CPU time to draw the text, but especially when you're talking a monospace font that tradeoff is minimal.
Quote from: FAST6191 on March 07, 2016, 01:01:15 PMWhat others have said -- it is fairly standard in newer systems.What I mainly want to say though is this is the wrong way to set about text hacking on consoles like those. I might look at memory to maybe get an idea of the hex and the game itself to see what text to search for and other things (do I see something resembling markup) but if I am looking at a font in a VRAM viewer then it is because I am editing the font and not because I am changing the contents of the text, or the text in question is rendered as a picture.Oh and VBA is nice enough for debugging/hacking you are probably better off with BGB http://bgb.bircd.org/
Quote from: RaidouJFlo on March 07, 2016, 01:59:48 PMWith the English Alphabet (assuming only capital letters are being used) combined with punctuation, I'd have less than 36 bytes to use for text. So I guess if it's possible, I could have the PPU display the 26 english characters + 5 punctuation (!?'.,) characters at all times, right?
Quote from: Gideon Zhi on March 07, 2016, 02:47:31 PMTHIS IS POSSIBLE BUT DEVIL CHILDREN IS A FAIRLY LARGE GAME AND YOU DON'T WANT IT TO SEEM LIKE IT'S SCREAMING AT YOU FOR THE FIFTEEN OR TWENTY HOURS IT'D TAKE TO PLAY THROUGH.In all honesty, you're overthinking this. Getting the tile IDs from PPU memory in a situation like this is the wrong approach. Each character will almost certainly map to a specific byte in the game's own encoding; the engine is what causes the tiles to be drawn in that manner. You won't NEED to have all caps; you just need to figure out how the text is actually encoded, replace the Japanese characters with Roman letters, and re-encode the translated script using the new equivalencies. Honestly, this is translation hacking 101 stuff. You should probably read over some of the docs on text replacement in the Getting Started section.
Quote from: zonk47 on March 07, 2016, 02:37:09 PMZ80 is just x86 without neat things like MUL and DIV... no multiplication or division instructions on that early CPU... so you have to do the work in code that would otherwise be done in the processor. A multiply is the same number added X times... a divide is just repeated subtraction with a check for negativity each time (which the processor does automatically via its overflow flag)... the quotient is the number of times you can subtract the divisor from the dividend without going below 0. ASM isn't complicated or difficult... the mnemonics just make it seem that way when you're inexperienced with them. It can be time consuming though when you're doing it by yourself.
Quote from: zonk47 on March 07, 2016, 02:37:09 PMZ80 is just x86 without neat things like MUL and DIV... no multiplication or division instructions on that early CPU...
Quote from: RaidouJFlo on March 07, 2016, 03:45:25 PMFor the sake of making this experience easier, I'll do CAPS for now (I lol'd though).
Quote from: Gideon Zhi on March 07, 2016, 10:41:29 PMAnd what will you do when you need numbers? To put it plainly, 36 tiles is not enough. My point is that the engine is already doing everything you need it to - there's more than 36 tiles in the actual game, after all. Why reinvent the wheel? Why redo the entire system when what's already there works fine?
Page created in 0.055 seconds with 19 queries.