News: 11 March 2016 - Forum Rules
Current Moderators - DarkSol, KingMike, MathOnNapkins, Azkadellia, Danke

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 - Gyroballer

Pages: [1] 2
Newcomer's Board / Re: Understanding NES text routines
« on: March 01, 2019, 10:53:14 am »
This is awesome, thank you so much! I had already made some changes to the title screen in the meantime and the patch was compatible with that, so everything is working perfectly.

I'd really like to be at your level someday, but for now, I'm just happy that people will be able to enjoy a more quality translation thanks to you.  :D

Newcomer's Board / Re: Understanding NES text routines
« on: February 28, 2019, 11:01:46 pm »
I personally don't like ligatures (I think that's what "squishy tiles" are officially called) due to inconsistent spacing between the same letters but I can understand they may be unavoidable.
(the official "PKMN" thing mentioned before... yeah, they probably wouldn't have fit a few menus without it, and I guess they decided being consistent with its usage was better than not)

I would love to do VWF, but I realize it's impractical/nigh impossible on NES, according to what I've heard.
But at least il, li, and ll tend to look better, regardless of their space saving capacity since taking up 1-2 pixels out of 8, compared to a typical 6 or so out of 8 looks pretty goofy:

So when I have enough screen space and rom space, I'll still use those 3 ligatures, likely.

But I'd love to do DTE or something to save rom space and stop using the other ligatures.

Newcomer's Board / Re: Understanding NES text routines
« on: February 28, 2019, 05:06:57 pm »
Okay, I'm getting to work now, I think I'll change the system completely by having one simple routine and a list of items. That way it's easy to change if need be.

Also, I somehow missed one item, my mistake. Here it is:


I think it's cause it's next to Dragon Radar in the list, so I missed it (and yeah, Radar makes sense :D ).

I'll do what I can, so just let me know your translation of that one word. Only problem I have at the moment is the Turtle Shell since I have a screen limit of 16 characters, and they exceed it when saying if they're on or off... actually, if I just use capital letters instead of brackets or whatever, I think I can JUST fit it.

Senzu can stay as "Senzu" or be "Senzu Bean" if it'll fit.
Even if I go the DTE route, I'd still be using the double-character tiles of at least li, ll, and il so if the 'll' will help Shell fit, then that would work. It's currently tile 42, although if that table for the items is 80-based, I guess that'd be C2.

Newcomer's Board / Re: Understanding NES text routines
« on: February 28, 2019, 11:39:01 am »
I think it's an exhaustive list of the items, but there are "help cards" which act like items and some of those share names with enemies/NPCs, etc., which is frustrating since names seem to repeat a lot in this game.
(Like Krillin is a helper card, but also talks a lot and is also an enemy and a playable character temporarily and he's listed by full name each time)

First item is Dragon Radar

Turtle Shell...put on
/Weighted Gi...put on
/Turtle Shell...removed
/Weighted Gi...removed
Gokuisho (I'll need to find this item, but without seeing the picture, I think it's a scroll)
Flying Nimbus (or just Nimbus)
Baby Gamera

I've been doing everything that I haven't asked for help on. Graphics, translation, and basic hacking.

I know that the ones besides ごくいしょ are good, but I'm seriously confused by that one. I don't think it'd be "goddess", but then I'm not sure what it'd be without seeing the item picture.
There's a line in the game with that word after he beats an enemy that contextually I took to assume he was either reading a scroll, praying, or localized/contextualized to meditating.
He uses it to restore ki/energy, and I'm thinking it probably is a scroll, without seeing the picture, so it's got like secret/mystic teachings in it or something.

Thanks again, Psyklax.

Newcomer's Board / Re: Understanding NES text routines
« on: February 28, 2019, 03:21:10 am »
That's awesome, sure!

I wish I could do that. I need to figure out how to do ASM so I can improve my hacks.

Newcomer's Board / Re: Understanding NES text routines
« on: February 27, 2019, 07:03:14 pm »
Thank you for the help with this, so much!

Oh right, I'm using ligatures, but I'm gonna have to do real DTE and put in stuff like "Go" or "nin" so I can fit all these long Japanese names into the CHR space I have. I used them a lot in DBZ II since screen space was an issue, but it's more rom space in this one. Also connecting 'i' or 't' to other common pairings just looks better with this and most fonts, especially il, li, and ll. But I also think stuff like ki, hi, it, etc. look good. Some of mine are definitely just there to save space temporarily.

Edit: I ended up being able to translate temporarily as DrgnRadr and will hopefully get DTE working at some point to do something flashier. Got rid of the B7 handakuten marks, as well.

Thanks again, for real. I can probably do the rest of the list, but I appreciate the offer and have already past the point of crediting you (and Pennywise) on this, so I'll make sure that people know I didn't figure this out on my own.

I'll probably post again in the Personal Projects section if I need help after this.

Newcomer's Board / Re: A guide for ROM hacking original Game Boy games?
« on: February 27, 2019, 02:02:10 pm »
I have seen plenty of people effect wide reaching changes with fairly basic skills. So many games get improved by altering a few drops, few enemy patterns in a level, tweaking some of said same level, playing with a few cheats, playing a bit with a tile editor, playing a bit with the wording of a script or even a few words within it.

Yeah. Coming from a novice rom hacker, I was able to use the rom space available and some font ligatures to do a decent translation of a game people have been waiting over a decade for. I can see where improvements could be made, but it's fully playable and largely appealing compared to nothing.

Just messing with an experience table, I made a game that was otherwise pretty annoying a lot more tolerable.

Newcomer's Board / Re: Understanding NES text routines
« on: February 27, 2019, 12:37:09 pm »
I'd try to look at it myself, but I've no idea how to see these items in the game, since I've no idea how the game works. Could you give either a simple explanation of how to see that list in your screenshot, or provide a save state? Then I'll get to work. 8)

Closest thing to simplest explanation is "Game Start", press Select for menu, choose Card/s -> Item Cards, and the item list pops up instantly, whereas textual descriptions of the items up top are written character by character, looking from strings in the CHR.

Zip called and contains savestate near end-game with some items, and also contains very early translation ips with savestate that corresponds to the Japanese one:!hclCRAKa!0Zz-aGz-G9e9CwZUBpzjL_eInn5E2aICIhrUvZs1_7s

Thanks so much for looking into this. I really have tried to bang my head for the better part of a week on just this part. There are other annoying things that I'll need to figure out, like learning to use DTE for the first time and learning where the particles during battle come from (like Goku "の" critical hit or Enemy "は" took ## damage), but seeing abbreviations or errant characters isn't as bad as lack of item translations at the current state.

Of course, I'll need to figure out the pointers or whatever they're doing to display numbers on the screen, too, because I have to work around the numbers and leave blank spaces in my strings at present.

Edit/Sidenote: I found out that the item names I was translating are at least used when you can choose items in between Tenkaichi Budoukai matches during events, but possibly also when you earn the items.

Newcomer's Board / Re: Understanding NES text routines
« on: February 27, 2019, 03:19:06 am »
It may very well be sprites, but I couldn't find them using YY-CHR, TLP, TM, etc. or with using YY-CHR's 8x16 mode or switching around where each letter landed.

It definitely loads all of the items at once, but for instance it knows what order it will be in since normally the DR is the first thing you get, but it's 4th on my list, below food, etc. even though it'd be first when you first load the game and don't have food.

Here's three frames in order:

So on the first frame that the screen can possibly be displayed, before any text is written describing the first item, all the items are shown.

Example of 80 tbl that shows where similar windows are:

Example of typical 00 tbl that shows some names of helper cards and some techniques (both selected from windows like the items):

Newcomer's Board / Re: Understanding NES text routines
« on: February 26, 2019, 05:58:16 pm »

I can not for the life of me locate the items in this game. I've seen some stuff in RAM that may indicate addresses for them, but then I go there and only see the "helper cards" nearby with names that I've translated so far. Which kinda makes sense since the items and help cards are really similar. But the hex values or the text-equivalents only seem to be found in the dialogue (like finding ドラゴンレーダー being said by Goku or Bulma for instance).
The closest I've gotten is some sort of list that seemed like the items, but I think it might be referenced when you get the items, which would explain why DragonRadar isn't present and why none of them seem translated after changing the values.

However, I feel like it's weird that I can't find even 1 value even though I've successfully located helper cards.

I've tried tracing the text and didn't understand what was going on or where it may have been referencing.

EDIT: I checked the ROM, RAM, and PPU. Maybe because things are stored in CHR, it seems like the RAM and PPU's roles are reversed from what I'm used to. I see 4 copies of the latest text written in the RAM. But even with that, it's like the item text never seems to be written and I can't find where it's coming from.
I also tried variations on the hex searches (like using +-80 or +-40, so for 39, the ー ㏌ レーダー, I checked f9, 79, and b9 as well, looking for like B9 ?? B9 or like 39 ?? 39 -- ダ is CF, and I tried variations mixing CF, as well, and assuming the one without handakuten, タ at 4F but 39 CF 39 showed nothing after I translated all the dialogue references of the radar).

I've also tried blindly looking for sandwiched values (not necessarily just with x9) in locations in RAM close to where text is written and in the ROM and PPU and have had little luck. Looking up pairs of characters like レー and ダー also seemed fruitless.

EDIT2: Similar screens to these, like the stats page, etc. are just completely written like a whole screen in the ROM, interestingly:

Assuming that maybe it was around the "Items" part, I tried editing things there and only crashed the game, so I was likely editing code or important pointers.
I also tried looking for sections like (B7 01 01 01 B7) because if it's written directly to the ROM like the stat page, then it also writes dakuten/handakuten characters (B8/B7), so I could use my alternate table for those sections and seek out spaced handakuten marks like my cavespeak dragon radar, but I had zero luck.

EDIT3: I should note that the Name Table can't understand tiles being written there. It just shows "03", which is the background color, or nothing written there, basically.

Code data logger from the moment I press the Item menu to the moment the item list pops up (instantly, not 1 letter at a time like the item descriptions), it's like 3-4 frames. There's a lot of stuff from CHR ROM displayed that doesn't resemble the text. It's really confusing.

Side note: I know I'm gonna need DTE (probably for like "Go", "nin", "ro", etc.) since most of the enemy names took like 4 characters in Japanese but are represented with double that amount in English. Only really something like Murasaki was able to be shortened (since his game name is hilariously ムラサキそうちょうじょうにん, which seems to mean something like Master Sergeant Jounin [like master ninja from Naruto] Murasaki -- 14 characters fitting means I should be able to name them whatever if it'll fit).

Newcomer's Board / Re: Understanding NES text routines
« on: February 22, 2019, 04:47:33 pm »
Who can say at this point. Best of luck to you.

AFAIK, there is no tutorial on how to use cartographer, Atlas etc. You can either learn how to use them or learn a high level language and code your own utilities to handle everything. If you're gonna be doing NES hacking, the former option will suffice as 95% of the games will work with those tools. They're designed to be generic and flexible and all you have to do is make a batch file to execute them.

For cartographer, just use the example included in the archive to rip the script for practice. Then adapt the command file to the game you're working on.

I was able to dump scripts with Cartographer, but was a bit confused with the pointer part and a bit scared to ruin things, but I think I'll just have to give it the college try. I'd probably rather use their tools than try to make something in C# for an individual game.

I definitely appreciate all the advice.

Newcomer's Board / Re: Understanding NES text routines
« on: February 22, 2019, 04:02:06 pm »
Oh my goodness, that seemed like magic, Psyklax. When I was looking at the PPU and nametables on FCEUX, it was suggesting that there were 3 main tables where one starts at 40 with another at C0, and then another starts at 80, which was what the story dialogue seemed to be referencing, but from what you said, if I understand correctly, it's that ORA #$80 that was causing my main confusion. It shows up as 80, but it comes from 00. Wow.

And to Pennywise, if you still end up doing it, I'm sure it'll end up better than mine, but I'll probably still go for it anyway if I can make something decent.

Is there a good doc for a "work smarter not harder" way to like dump and reinsert scripts? I'll be honest and say that I manually edited each line and pointer in DBZ II because I didn't quite understand how to use Cartographer and Atlas, but I'd be happy to learn how if there's a good tutorial for me to read or something since you guys already helped a bunch with this  :D

Newcomer's Board / Re: Understanding NES text routines
« on: February 22, 2019, 02:46:18 pm »
There are four nametables on PPU memory: 0x2000-0x23ff, 0x2400-0x27ff, 0x2800-0x2bff and 0x2c00-0x2fff. If it's writing to 0x2084, it's in the first one (top left).

By reverse engineer I mean that you need to set a breakpoint to a write to that address and then read the assembly code and understand what it is doing and where the value is coming from. I admit I hadn't read the thread and Psyklax had already said basically exactly the same thing! Sorry :)

$204 and $203 are the temporary bytes to store the 16bit sized address for where to write to the nametable (since addresses are 16 bit and each byte is 8 bits it needs two bytes).
$205 is the data to write there.

That data is coming from $2007, which is the register to write PPU data to. I don't know exactly what is going on there, but this is the line that does it
07:E0F9:AD 07 20  LDA PPU_DATA = #$B7 (A becomes 02 after this read)
07:E0FC:9D 64 02  STA $0264,X @ $026D = #$93

Maybe it has to do with this, but I'm not sure

Awesome, thank you! I've got a lot of stuff to look at now. I'll try this out over the next couple of days.

Everyone's been a big help.

Newcomer's Board / Re: Understanding NES text routines
« on: February 22, 2019, 01:43:08 pm »
I believe that the text in DB 3 is stored in CHR-ROM, kinda like what Culture Brain tend to do with their games, so the pointers are not normal. If that's the case, even just finding and dumping it will be very difficult. Maybe DvD or some other hacker who's done that could give you some tips there.

Thanks for this lead. I thought maybe it was just compressed like DTE and I didn't understand how to handle that (probably still don't, but maybe I'd figure it out eventually, whereas with this, maybe it makes sense I'm so confused).

Newcomer's Board / Re: Understanding NES text routines
« on: February 22, 2019, 12:12:23 pm »
You're gonna have to look in the PPU memory, find the address for one specific letter, then set a breakpoint to a write to that PPU address and work your way back from there to reverse engineer what it is doing.

The last few words are the confusing part for me. I figured out the values using the PPU viewer and then figured out that, ignoring mirroring, the dialogue is written starting at $2084 in PPU MEM.

It seems like $204 or $205 corresponds with that in the RAM, but that's about as far as I get. I know that the value in 205 for instance gets changed all the time and thrown to the next spot around the 2085 area until the string is complete.

My problem is that if I wanna go into the ROM and change what dialogue is there, and therefore gets stored in $205 and then PPU $2085-$20XX, I have no idea how to do that.

Newcomer's Board / Re: Understanding NES text routines
« on: February 22, 2019, 11:57:18 am »
Sorry about that. I'm working with Dragon Ball 3 - Gokuu Den. The text seems like it must be compressed in some way because I've made accurate tables but can't find any of the strings except for the stats page.

If I try to search for any consecutive hex values in the dialogue, I don't find them.

I translated DBZ2 so I'm familiar with tables and how hex editing roms work, but I'm completely unfamiliar with what to do when the text isn't just stored normally.

I'm guessing it could be DTE or some other compression method because I can't even find dictionary entries for something like Gokuu.

Newcomer's Board / Re: Understanding NES text routines
« on: February 21, 2019, 07:58:04 pm »
This is the part where it's really confusing for me. I didn't realize that the 21C part is the string length, but it definitely is, after going through the text. I also didn't know the 21E-F part was the VRAM address written to.
I sort of at a basic level get what each operator does, but I'm not getting the big picture at all and I'm not sure how to reason out what you did.

Worse, I get really confused on if I break @ 220. It seems like the tile values get written to 204 and 205, maybe others, and yet 220 has something to do with this? If I break at 220 and try to continue, it will break a few more times and then go on with the entire string.

I can't figure out what to get from the parts before 220 is written to.

I did see that these instructions are stored really early in the ROM, like $1536, but I'm just seeing the assembly instructions that I see on the debugger.


These two instructions will bounce back and forth (with "Run"). 204 in RAM just keeps just STX $01.
205 is always the tile value printed to screen.

LDA, $0441,Y @ $044D <- that address goes up by 1 each time

But the value doesn't match up with anything I'm familiar with in the nametable, so it must do something else?

If I "Step Into" these functions, they jump around to different subroutines and do all sorts of stuff that I have trouble comprehending, but probably necessary stuff in order to draw a character.

What's going on at 440 is the current character of the current line of the string, 0-indexed. So $00 at 440 is the first char and $17 at 440 is the last character on that line (aka before a line break character or something like that is reached).


This image shows that while 440 is incrementing, so is 202, although from something like 60 or 70 instead of 00

Newcomer's Board / Re: Understanding NES text routines
« on: February 21, 2019, 05:48:36 pm »
Not sure I understand the problem you're having.

Like in this photo, the PPU's snapped before the first text tile is written, since the breakpoint is any write to that particular space on the PPU (first text tile in the window, in this case). I know it's going to be A0, but I don't see that anywhere. But if I have it snap at the tile after that, I see A0 one of the times it breaks.

Interestingly, neither character's been drawn yet, but breaking at the spot where the 2nd character would go shows me an A0 that I was anticipating.

Newcomer's Board / Re: Understanding NES text routines
« on: February 21, 2019, 03:13:29 pm »
I used this* last night and was able to get to the point where the CPU/RAM was snapping during writing text, but if I picked a specific value, it was snapping 1 tile before or after (can't remember which, sorry), and then it was hard to find an instruction like:
Code: [Select]
LDA ($40), Y @0123 = #$A0

Newcomer's Board / Re: Understanding NES text routines
« on: February 21, 2019, 01:32:48 pm »
Thank you very much, Psyklax. I was looking for some direction/motivation and you gave both.

I'll try again on some stuff and see what I can figure out.

Detective Conan is awesome, by the way.

Pages: [1] 2