Conversation
Edited 2 months ago

I pulled up the AstroBoy game for the GBA, and it turns out it turns on EVERY SINGLE SPRITE (at least during dialogue) and just positions them slightly offscreen.

Also, it devotes an entire sprite just to Doctor O'Shay's nose.

1
0
0

oh right, I hate hacking GBA games, I forgot

2
0
0

they're at the right era where they love to do shit like dynamically composing text as background tiles out of decompressed binary fonts, and they also don't tend to use ascii/unicode to encode their text. So hacking them is a PAIN

1
0
0

@foone I'm starting to hate it too, my condolences

1
0
0

but life is short (and the days are long) so I must

1
0
0

@foone (hi, I'm the person who posted those GBA video patches btw. I'm also working on multiple fan translations and quickly realizing what a terrible idea that was)

1
0
0

@onfy oh hey!
yeah, translating GBA games are a pain: I don't do it, but what I do to them is basically the same, just with less work... and it's a nightmare for me! I can only imagine how much more annoying translating a whole game is!

1
0
0

oh god it's got some ad-hoc compression for english text
The line I'm looking for is "I'm here on behalf of your father"
But I see "I am behalf of"

They've got some special character that means, like, "insert the word from N words back"

3
0
0

@foone oh no, I'm working on a ds game that does that and... bizarrely, only for two strings as far as I can tell (but I haven't located 100% of the text)

1
0
0

@onfy yeah that's the other weird thing about these games! frequently they have like 2-3 different encodings in there, and I'm never sure why

0
0
0

but I can inject into the non-compressed parts, so I'm gonna do that and pretend the compression doesn't exist.

1
0
0

@foone yeah, I'd say there's a lot of overlap, but I think you'd more need to just locate the text, rather than inserting lots of new text?

2
0
0

@foone on the bright side I'm working on european games, so they pretty much all use... a form of ASCII

0
0
0

@onfy yeah I usually just find some text I can inject into, then just inject values 0-255.

Sometimes I try to extract all the text just to find out what special characters are defined, because often there's colors and styles and symbols, which I might not find just by enumerating 0-255

1
0
0

@foone that's what I did with the game I'm currently finishing, and it did let me see just what characters the game supports (including some reserved ones it uses for button graphics), but not a ton else. (incidentally, let me know if you want a tool that works on Mistic's GBA games, because they all use nearly the same text format)

1
0
0

@onfy sure!

I've actually said before that I should work with some translator/translation group, because anyone making a translation has already figured out how to inject text, which is often all I need to make a generator

1
0
0

@foone yeah, that'd make a lot of sense, though some groups don't like to share (on the same level, if you figure out something novel a translation group might like that)

the tool is private until the translation is finished but next year I want to make it suck less and release it as open source

these are the games they made http://misticsoftware.com/games.html

1
0
0

@onfy oh yeah, I definitely could see several of those being good fits

1
0
0

@onfy but yeah, I understand. I figured I'd help out with my hacking services in exchange for access

1
0
0

@foone I'll appreciate the hell out of any help I can get with my projects, personally! haha

2
0
0

@foone (honestly though you can have the tool right not for free if you want, if you're okay with it being a wreck (pretty much all my fault)

0
0
0

@onfy well the next time you're stuck on a game-hack lemme know and I can take a stab at it! I'm always looking for more games to hack on

0
0
0

So I injected into the second letter of "behalf", and check out what 0xD2 was:

2
0
0

note that it's not "bultimatehalf". I think it used the "h" as an offset. I bet if I change it too, I'll get different words.

0
0
0

@foone i have seen a game use compression’t for text before

a lz variant but instead of compressing it they just insert “one literal byte” between every character (i have not fully confirmed this but the values checked out)

0
0
2

@foone how much text could Astroboy for the GBA possibly have such that a convoluted custom compression scheme was called for

1
0
0

@0xabad1dea it's also an 8mb rom with 200k unused at the end. They definitely didn't need this.

I'm guessing the company made other GBA games and they just reused some code?

0
0
0