Users browsing this thread: 1 Guest(s)
Finishing Off The Complete Roster Hack

#31
Posts: 377
Threads: 34
Thanks Received: 10
Thanks Given: 7
Joined: Dec 2018
Reputation: 18
Status
Moog
(01-31-2020, 03:20 PM)PowerPanda Wrote:
(01-26-2020, 08:48 PM)C-Dude Wrote: EDIT: I took a cursory look at the BeyondChaos Gogo scrolling status menu, and there most definitely is too much code required for the existing freespace available in the game, even if no other free bytes had been used.
Which raises an interesting question... where do you want to go from here?
(1) We could apply BeyondChaos's base game upgrades before the existing full roster patch and check for compatibility problems.
(2) We could scrap the idea of making Gogo's menu scroll and simply remove some abilities from that menu.  A good candidate is "Fight". The menu is only one command too long thus far.
(3) We change that menu completely... possibly borrowing code from the RAGE or MAGIC menu.

(1) and (2) I can look into, but (3) is beyond me at present; UI is a weak spot for me.

I actually have the ASM that was written, and it's not that extensive. I don't think finding free space will be too much of an issue. I just need TIME to look at it. If you want to check it out, I can send the ASM file to you when I get home from work.
That would be very helpful, yeah.  I was clearing chunks of the expanded code up to RTL calls (6B in hex) and seeing if it broke Gogo's menu code.  That way I could determine which chunks I'd actually have to analyze and annotate.  Unfortunately every chunk with an RTL seems to have shared code with something else, which led me to believe the entire expansion was dedicated to menu drawing.  If I had the ASM I could navigate the raw hex more efficiently.
  Find
Quote  

#32
Posts: 614
Threads: 49
Thanks Received: 0
Thanks Given: 4
Joined: Feb 2017
Reputation: 25
Status
None
Here's the ASM. It won't compile in Xkas, but is otherwise not too hard to follow if you're looking at the hex.

If you can turn this into an individual IPS, I'd be quite grateful. It would be one more major milestone on my hack finished.


Attached Files
.txt  StatusMenu.txt (4.87 KB, 18 downloads)


Projects:
FFVI: Divergent Paths (Completed) - a complete storyline and gameplay hack of FF6 that adds Leo as a playable character
  Find
Quote  

#33
Posts: 377
Threads: 34
Thanks Received: 10
Thanks Given: 7
Joined: Dec 2018
Reputation: 18
Status
Moog
Did it.  There was a call in the ASM to code that was undocumented, which is what originally tripped me up when I tried to work it out with the raw hex (it jumps to a subroutine hundreds of bytes beyond, and I couldn't figure out what that subroutine did).  This time around, I just tacked that subroutine onto the end of everything else and repointed to it, and it works.

Without the ASM, I had also missed the draw data table for the 'empty' slot, as well as a three-argument JMP command (I'd never seen that before, used to seeing 4C XX XX, not 5C YY YY YY).

Anyway, that's all useless blather since it's working now.  Attached are the clean GogoScroll patches as well as v0.96 of the full roster hack.  It should be good to go... after some testing of course.

GogoScroll uses freespace EF/FBC8 to EF/FE59.
I'm unsure if this free space has been used by other hacks, but it was empty in Full Roster v0.8.  Hopefully it won't conflict with something else in your hack.

EDIT: FYI, all I did for this was relocate and repoint hex values. If you use it, be sure to credit user Myself086, who actually wrote this code.


Attached Files
.zip  GogoScroll.zip (1.07 KB, 12 downloads)
.zip  full roster - v0.96.zip (115.06 KB, 23 downloads)
  Find
Quote  
[-] The following 4 users say Thank You to C-Dude for this post:
  • PowerPanda (02-01-2020), Robo Jesus (02-04-2020), Subtraction (02-01-2020), xDaygo (03-31-2020)

#34
Posts: 614
Threads: 49
Thanks Received: 0
Thanks Given: 4
Joined: Feb 2017
Reputation: 25
Status
None
(02-01-2020, 02:44 AM)C-Dude Wrote: Did it.  There was a call in the ASM to code that was undocumented, which is what originally tripped me up when I tried to work it out with the raw hex (it jumps to a subroutine hundreds of bytes beyond, and I couldn't figure out what that subroutine did).  This time around, I just tacked that subroutine onto the end of everything else and repointed to it, and it works.

Without the ASM, I had also missed the draw data table for the 'empty' slot, as well as a three-argument JMP command (I'd never seen that before, used to seeing 4C XX XX, not 5C YY YY YY).

Anyway, that's all useless blather since it's working now.  Attached are the clean GogoScroll patches as well as v0.96 of the full roster hack.  It should be good to go... after some testing of course.

GogoScroll uses freespace EF/FBC8 to EF/FE59.
I'm unsure if this free space has been used by other hacks, but it was empty in Full Roster v0.8.  Hopefully it won't conflict with something else in your hack.

EDIT: FYI, all I did for this was relocate and repoint hex values.  If you use it, be sure to credit user Myself086, who actually wrote this code.

I tested this out on a clean rom, and it's not quite there yet. It correctly adds scrolling to Gogo's menu, but if you scroll to the bottom of the list, and then back to the top, you get a junk entry instead of the blank space. The entry reads:
[space] [graphic] [space] [graphic] I [graphic] q
The "graphic" looks like a long dash, but I don't think it is because it doesn't have a transparent background. Any idea of what could be causing that?


Projects:
FFVI: Divergent Paths (Completed) - a complete storyline and gameplay hack of FF6 that adds Leo as a playable character
  Find
Quote  

#35
Posts: 377
Threads: 34
Thanks Received: 10
Thanks Given: 7
Joined: Dec 2018
Reputation: 18
Status
Moog
I'm not experiencing that problem with either unheadered patch, but I did run into it while I was iterating on the pointers.
The issue is caused by the code loading the wrong raw data.
The line in question is
Code:
EF/FC72: a2 a0 fc      LDA $FCA0
This needs to be pointing to a block of code that is nothing but 07s, $FF bytes long, within the same bank as the call itself (so for instance if you relocated the code to bank DE, the 07s would need to be in bank DE). If not, it will draw random tiles from the small font menu instead, whatever the code is pointing to.


I didn't test the headered patches, I used the Headerizer utility to make them. Could it be introducing a pointer error?
  Find
Quote  

#36
Posts: 614
Threads: 49
Thanks Received: 0
Thanks Given: 4
Joined: Feb 2017
Reputation: 25
Status
None
(02-03-2020, 08:32 PM)C-Dude Wrote: I didn't test the headered patches, I used the Headerizer utility to make them.  Could it be introducing a pointer error?

The same issue is present on the unheadered patch too. I'm using the version that includes "Everybody Gets a Chocobo". The issue doesn't show up unless you scroll all of the way to the bottom and then back up to the top. Exiting the ability selection does not clear the issue, but exiting the status menu does.


Projects:
FFVI: Divergent Paths (Completed) - a complete storyline and gameplay hack of FF6 that adds Leo as a playable character
  Find
Quote  

#37
Posts: 377
Threads: 34
Thanks Received: 10
Thanks Given: 7
Joined: Dec 2018
Reputation: 18
Status
Moog
Well now I'm stumped. It can't be patch conflict because you're only applying one patch. It can't be editor conflict because I went into FF3USME and gave Gogo use of every command and I still didn't encounter scrambled text (Interesting note, though, Shock and Health don't show up in the list by doing so... we might need to look in to that).

Is anybody else encountering this problem? Was there anything else you did before you encountered the problem, other than scrolling?
  Find
Quote  

#38
Posts: 614
Threads: 49
Thanks Received: 0
Thanks Given: 4
Joined: Feb 2017
Reputation: 25
Status
None
(02-04-2020, 03:13 AM)C-Dude Wrote: (Interesting note, though, Shock and Health don't show up in the list by doing so... we might need to look in to that).

Is anybody else encountering this problem?  Was there anything else you did before you encountered the problem, other than scrolling?

Maybe check our roms' hash? I can do that when I get home tonight.

As for Shock and Health... Gogo's list still does a check through all of your collected party members to determine if their ability should be added to the list. So, if you don't have a character with Health and Shock, they won't show on the list. It's also possible that it only goes up through character $0B; I don't remember if I made any edits to something like that.


Projects:
FFVI: Divergent Paths (Completed) - a complete storyline and gameplay hack of FF6 that adds Leo as a playable character
  Find
Quote  

#39
Posts: 377
Threads: 34
Thanks Received: 10
Thanks Given: 7
Joined: Dec 2018
Reputation: 18
Status
Moog
My hash for v0.92Boco UH (from SNES 9X) :

CRC32: 0BADF8E3

My hash from the clean unheadered FF3US1.0:

CRC32: A27F1C7A
  Find
Quote  

#40
Posts: 614
Threads: 49
Thanks Received: 0
Thanks Given: 4
Joined: Feb 2017
Reputation: 25
Status
None
(02-04-2020, 01:55 PM)C-Dude Wrote: My hash for v0.92Boco UH (from SNES 9X) :

CRC32: 0BADF8E3

My hash from the clean unheadered FF3US1.0:

CRC32: A27F1C7A

Mine are the same.

Header: ROM CRC32    A27F1C7A
No Header: ROM CRC32    A27F1C7A
Full Roster v.96 Header: ROM CRC32    0BADF8E3
Full Roster v.96 No Header: ROM CRC32    0BADF8E3

So maybe it's the save file? I'm using the one that I included with the last download file I made.


Projects:
FFVI: Divergent Paths (Completed) - a complete storyline and gameplay hack of FF6 that adds Leo as a playable character
  Find
Quote  



Forum Jump:

Users browsing this thread: 1 Guest(s)


Theme by Madsiur2017Custom Graphics by JamesWhite