Here's a neat tidbit we found last night:
Each course in Danny Sullivan's Indy Heat (Arcade) has artist credits somewhere on it! Most of these are signed by "SH" (Steve High, credited for Software & Graphics), but a few have other initials on them, including one course which has a completely different style and signature.
I've put up an imgur gallery with all 14 courses and which are signed by which artist here! https://imgur.com/a/xNErJIJ
Oh no... I isolated what is wrong here, and I am not happy at all...
It's another instance of this game always expecting its text to be in a very specific bank. It never, ever updates what bank it searches for dialog boxes in, only what address within that bank is being currently used.
That causes problems like this, where another function is looking for where it should draw (or, in this case, clear) a dialog box, but it runs off into who-knows-where and trashes memory...
mh, -
Oh hey, it's me.
(taken from @Yamayii@twitter.com; https://twitter.com/Yamayii/status/1001388245567946752)
flashing, glitchy graphics
And some other things, well... ... ... >.>;;;;;;;;
I still have lots of work left, I guess...
Well... I have some things working that weren't before, now! ^w^ Almost all menu dialogue has been formatted and inserted, and things look pretty good!
Then, calmly, everything returned to normal, almost like nothing out of the ordinary had ever happened.
It was as if all of Itadaki Street was screaming in unison, in horror of what had happened to their game.
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!
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.)
Yep, there's our culprit, just like I thought. That "func_SearchDialogDefinitionForA" call ends up going off into outer space instead of where it should be looking.
Hopefully copying and modifying this function won't be too hard...?
Hmmm.... That's better, but... if what's causing this problem is what I think it is, I'll be very, very annoyed...
Poly trans cuddlefloof programmer and gamedev(?). I love poking around in and reverse engineering old games. I'm also super shy and have horrible anxiety, so ... please be nice...
I don't mind if you follow request, but if I don't know or recognize you, please send me a message so I know who you are. #nobot