Talk:Densetsu no Starfy 3: Difference between revisions

From Starfy Wiki
Jump to navigationJump to search
No edit summary
No edit summary
Line 8: Line 8:
Another idea but harder could be to just do a lot more work, and maybe look through both revisions with a debugger until we find the changes. I'm not sure what else though, and I reached out to Jul asking how to find revision differences somewhere (but unsure of the link at the moment). Is it OK if I ask, do you have any other ideas {{user|Dimedime}}? Thanks. [[User:Torchickens|Torchickens]] ([[User talk:Torchickens|talk]]) 03:57, 18 February 2021 (UTC)
Another idea but harder could be to just do a lot more work, and maybe look through both revisions with a debugger until we find the changes. I'm not sure what else though, and I reached out to Jul asking how to find revision differences somewhere (but unsure of the link at the moment). Is it OK if I ask, do you have any other ideas {{user|Dimedime}}? Thanks. [[User:Torchickens|Torchickens]] ([[User talk:Torchickens|talk]]) 03:57, 18 February 2021 (UTC)
:Update: It dumped the file of changes between the ROMs, but it's 197 MB. I could upload it on Mega perhaps but they'd probably think it's suspicious even though it's data mining and take it down. [[User:Torchickens|Torchickens]] ([[User talk:Torchickens|talk]]) 03:58, 18 February 2021 (UTC)
:Update: It dumped the file of changes between the ROMs, but it's 197 MB. I could upload it on Mega perhaps but they'd probably think it's suspicious even though it's data mining and take it down. [[User:Torchickens|Torchickens]] ([[User talk:Torchickens|talk]]) 03:58, 18 February 2021 (UTC)
::Yeah, a byte-by-byte comparison wouldn't really go anywhere. If a function early on is just a little longer or shorter, then basically every byte after that would be different. I'm less familiar with Starfy 3 than Starfy 2, but comparing text/script dumps could be a possibility.
::If Starfy 3 internally is very similar to Starfy 2, then I should be able to dump the objects in every room to see if any (incl. invisible objects) got moved/removed between revisions. Each object has a function it calls to update itself (rendering, collision checking, physics updating, etc.); I'll have to compare each of these functions manually, as it would be highly unlikely that they would line up.
::I'm not too confident about making a Starfy disassembly project. I've never built a ROM from source before. I'm thinking of something more in the line of a reverse engineering project with a program like Ghidra to decompile individual functions, label certain offsets in the ROM, and make my own tables and structs. It's what I did for Starfy 2.
::We could look at both versions though a debugger (like no-cash), combined with decompiling functions above, maybe we could find differences in individual functions. I've never compared revisions of files like this before, so there could be other, more efficient ways to find revision differences. [[User:Dimedime|Dimedime]] ([[User talk:Dimedime|talk]]) 13:50, 18 February 2021 (UTC)

Revision as of 13:50, 18 February 2021

Byte comparison list between v1.0 and rev 1

I'm trying to make one with the FC /b tool for the command prompt. It generated a file but it's taking a while and unfortunately it seems to be getting quite large for us to look at. :( On the other hand, if a change seems suspicious hopefully it may help (e.g. a set of Shift JIS bytes being changed could indicate a typo fix or similar in the later version).

I'm wondering though if I've been approaching this in the wrong way. Maybe the large file could be due to pointer changes/then making the chain result of affecting other pointers. For looking to see if v1.1 fixed a typo, I made a Densetsu no Starfy 3/Text dump for v1.0 with WindHex; so hopefully the same could be repeated for v1.1, and then we could look through both to see if there are any changes. ^^

Perhaps a Starfy disassembly repository could be started; since the pointer problem may be less of an issue; the pointers would be dynamically generated after reassembling the ROM with a SYM file reference, though despite working with disassemblies (just the Pokémon ones), I feel unconfident with them and don't know how to start one. (hmm)

Another idea but harder could be to just do a lot more work, and maybe look through both revisions with a debugger until we find the changes. I'm not sure what else though, and I reached out to Jul asking how to find revision differences somewhere (but unsure of the link at the moment). Is it OK if I ask, do you have any other ideas Dimedime (Talk)? Thanks. Torchickens (talk) 03:57, 18 February 2021 (UTC)

Update: It dumped the file of changes between the ROMs, but it's 197 MB. I could upload it on Mega perhaps but they'd probably think it's suspicious even though it's data mining and take it down. Torchickens (talk) 03:58, 18 February 2021 (UTC)
Yeah, a byte-by-byte comparison wouldn't really go anywhere. If a function early on is just a little longer or shorter, then basically every byte after that would be different. I'm less familiar with Starfy 3 than Starfy 2, but comparing text/script dumps could be a possibility.
If Starfy 3 internally is very similar to Starfy 2, then I should be able to dump the objects in every room to see if any (incl. invisible objects) got moved/removed between revisions. Each object has a function it calls to update itself (rendering, collision checking, physics updating, etc.); I'll have to compare each of these functions manually, as it would be highly unlikely that they would line up.
I'm not too confident about making a Starfy disassembly project. I've never built a ROM from source before. I'm thinking of something more in the line of a reverse engineering project with a program like Ghidra to decompile individual functions, label certain offsets in the ROM, and make my own tables and structs. It's what I did for Starfy 2.
We could look at both versions though a debugger (like no-cash), combined with decompiling functions above, maybe we could find differences in individual functions. I've never compared revisions of files like this before, so there could be other, more efficient ways to find revision differences. Dimedime (talk) 13:50, 18 February 2021 (UTC)