Follow

Ugh, IDA, why are you ignoring the data bank register in this disassembly?? Maybe half the memory references in my disassembly are completely bogus because IDA "helpfully" mapped them into memory, but in the completely wrong place...

This is completely wrong! "word_7Fxxxx" should be "word_00xxxx" (or "word_7Exxxx", since memory is mirrored there for the first 0x8000 bytes).

I don't look forward to fixing all these auto-generated references...

awoo.space/media/FKxqWOjNoopvG

I gave up and split the auto-generated WRAM segment from $7E0000-$7FFFFF into two segments from $7E0000-$7EFFFF and $7F0000-$7FFFFF. This way I can automatically fix references into the second bank instead of rewriting them all manually, and IDA will even keep track of the RAM address's name if/when I name them.

I also figured out that I can manually rewrite code instructions, so I can turn all the one-byte BRK instructions into actual BRK instructions!...that aren't actually marked as code. >.>;; Oh well, at least it will be less ugly this way...

aaaaa IDA doesn't support Unicode comments ;~; I can't just type out the Japanese text into my database as comments...

I'm stuck... in subroutine hell... x.x
I've been tracing out one function for two hours and haven't even come close to finding the end of it... x.x
I think... I'm going to bed now... and then I'll start again in the morning... x.x

I just spent a few hours adding the district and shop names to our translation spreadsheet.

I feel accomplished. ^.^

I also threw together a small tool for testing how dialogue will look before inserting it in-game!

You can play around with it here, if you'd like:
raspberry.rosenthalcastle.org/

Ack, our translation spreadsheet is so huge that I can't open it on my phone anymore... >.>;;;;;

Well, I found which memory address is used for indexing which dialogue line is spoken by AI players.

Unfortunately, because I didn't finish tagging things in my disassembly, I can't cross-reference where the breakpoint I set fired with it, because that section of code is untagged...

I guess I know what I'll be doing today.

Yeesh, this is... a lot of references to this memory address. >.>;;;

I certainly have lots of work left figuring things out...

Oh wow, this is neat.

So, when choosing AI characters you can play against, there are actually two different lines that can appear! I didn't notice that there were multiple lines until I was reading through what @WTCGames@twitter.com had translated so far.

If you choose most characters, you get the first line ("Player # will be ____, right?")... but if you choose Konomi, you get the second ("I'll join as player #, alright?")

I guess Konomi really does host the whole game!

Oh, I had more control codes implemented in my custom code than I thought... I guess I can actually insert some of this text then ^^

Writing a system for dynamically inserting text and automatically updating text pointers.

Using a disassembly would probably be easier, but... that requires a fully reassemblable disassembly...

I probably won't have much new to show on the IS2 project until this is working though. Sorry...! ^^;;;

Hmmm.... That's better, but... if what's causing this problem is what I think it is, I'll be very, very annoyed...

When IS2 draws a dialogue box on screen, it uses a particular 3-byte memory address for loading the window parameters from; and since all window parameters are in the same bank, it never updates the bank byte in that address.

I've moved all my custom code out into a new bank, though, including window parameters, so I have a hack in place that saves, replaces, and restores that bank byte when it loads custom text...

Show newer
Sign in to participate in the conversation
Awoo Space

Awoo.space is a Mastodon instance where members can rely on a team of moderators to help resolve conflict, and limits federation with other instances using a specific access list to minimize abuse.

While mature content is allowed here, we strongly believe in being able to choose to engage with content on your own terms, so please make sure to put mature and potentially sensitive content behind the CW feature with enough description that people know what it's about.

Before signing up, please read our community guidelines. While it's a very broad swath of topics it covers, please do your best! We believe that as long as you're putting forth genuine effort to limit harm you might cause – even if you haven't read the document – you'll be okay!