Show newer

Okies, I'm falling asleep at my desk, so I think I should sleep for a while, and keep working tomorrow... z.z

Good night, everybody... 💖

I don't even understand how I made this work, but I made it work...!

Show thread

@devurandom@cybre.space @KitRedgrave@glitch.social They used tiles for everything except speech bubbles (like the HUD, in the bottom-right of that last screenshot, for example). Larger text is 12x12, I'm guessing partly for readability and partly because it uses lots of kanji. But because 12x12 doesn't line up on an 8x8 boundary, they can't use tiles for it without duplicating a LOT of tiles (since they would have to draw every single line of text in graphics, and there are well over 2000 lines of text in this game!).

@KitRedgrave@glitch.social I remember spending quite a few days stepping through and commenting that function in the disassembly until I understood exactly what it was doing... ^^;;;

It was a really fun moment when I realized how I could implement the variable-width font, too. ^w^ I originally though I would need separate code paths for every letter width, until I realized something about how letters are drawn that I could exploit and make my code much more concise...

@KitRedgrave@glitch.social Because I had the disassembly handy, I could use that for reference, too, so most of my code is based on that, but instead of always moving forwards 12 pixels (the original font width), it reads from a table based on what letter it drew and moves forwards that amount instead.

@KitRedgrave@glitch.social For speech bubbles, IS2 draws its text straight into memory one (fixed-width) letter at a time. I just replaced that function with a function that draws text in using a variable-width font. It doesn't do word-wrapping or any fancy kerning; it just draws a letter, moves forwards a particular number of pixels, draws another letter, etc, until it reaches an end-of-line control code, then continues on the next line, etc, until it hits an end-of-text code.

@KitRedgrave@glitch.social It's been fun, yes ^w^

I'm super glad I spent so much time documenting this disassembly I'm referencing, too. Repointing function calls is much easier when I know what calls go where ^.^;

Poking through system menu dialogue for Itadaki Street 2 tonight. This game does ... weird things sometimes... but at least I'm understanding better how its code is structured.

Show thread

Pro Tip: it's easy to boycott Amazon if you don't have any money

Then, calmly, everything returned to normal, almost like nothing out of the ordinary had ever happened.

Show thread

It was as if all of Itadaki Street was screaming in unison, in horror of what had happened to their game.

Show thread

stream advert 

I guess I will stream, at least for a little while.

I'll probably be poking at IDA and figuring out what a particularly suspicious function does, and maybe adding tutorial and menu text into my current patch.

twitch.tv/raspberryfloof

@boots@cybre.space is this a horse_ebooks shirt?

This ... took way longer than it should have, but it's done enough that I can rebuild all the changes I wrote by hand using this patcher program. ^w^

I feel like adding new bits will go much faster now!

Show thread

Spending this morning labelling stuff in IDA. At least at some point before I had already properly built arrays for what I'm labelling, so I can just run through and give everything names...

(~) 

@not_on_pizza@weirder.earth @not_on_pizza Because, I don't have any real accomplishments, I guess? I haven't finished any projects, haven't released any code, barely wrote any music at all, don't have a portfolio I can point at and say "hey, I did these things and they are neat and now I am doing these things and they are also neat"...

Basically I feel like I don't fit in with most people in the games industry but I wish I did and also feel like I never will? I guess? I don't know it's complicated ;~;

(~) 

but yet people always tell me how amazing that is and how they are interested in what I am doing. ./////.

It always leaves me so speechless that I forget that I should be telling them how much I thought what they did was much less useless and wished I could be doing what they were doing instead...

Show thread

(~) 

It's so weird, thinking about how I've brushed shoulders with people who are accomplished game designers, or programmers, or artists, or musicians, and when they inevitably ask "So, what do you do?" all I can squeak is

"... um... I reverse-engineer games? Sometimes? and I am working on reverse-engineering a moderately obscure Super Famicom board game video game and producing a translated English version of it?"

That means that, unless all dialogue in our translation takes less than 64 bytes, I'll be rewriting this function call, and possibly be looking for extra empty space in RAM I can use for a text buffer instead of where IS2 usually reads from. :S

Annoying, but doable...

Show thread

Oh, bleh. A realization about character dialogue hit me...

There is a function used during character dialogue in-game that copies data from a temporary buffer into a particular location, which is read later when drawing character dialogue on-screen. This function only copies 64 bytes of data. (There might only even be 64 bytes of free space available in this location; I don't know for sure.)

Show thread
Show older
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!