Users browsing this thread: 1 Guest(s)
Shorter Rage List? (Battle)
02-17-2020, 08:19 PM
I think I found it. I had been using C2/580C to shorten the list, but your note that the format came from C1 made me look there.
...Which got me thinking that MMMMMagic must have encountered the same scrollbar issue when they added 10 spells, so I looked at the notes from that patch. The scroll limits and scrollbar animation is handled in the C1 bank, in the 8100s... but my version of the C1 disassembly doesn't have any annotation in that section, so I had to compare my full-rage list scrolling to the BNW2.0 Rom to find out where the scroll settings were being changed.
Relevant addresses:
By coupling this information with Assassin's alphabetical rage patch, I was able to create a sorted list of 48 rages arranged by rough level of power (rather than alphanumerically). With a bypass, this list could be made to read from a different spot depending on a variable of your choice, allowing you to change which rages Gau lists and has access to on command. I didn't mess with muddled/berserk rage selection, though; it still draws from the full count. Anyway, that's not QUITE picking your rages, but you could in theory set up rage sets that are changed by relics or an event (something Gau lets you pick on the airship, maybe?).
...Which got me thinking that MMMMMagic must have encountered the same scrollbar issue when they added 10 spells, so I looked at the notes from that patch. The scroll limits and scrollbar animation is handled in the C1 bank, in the 8100s... but my version of the C1 disassembly doesn't have any annotation in that section, so I had to compare my full-rage list scrolling to the BNW2.0 Rom to find out where the scroll settings were being changed.
Relevant addresses:
Code:
[C3]
Initialize Rage menu
C3/21A6: 644A STZ $4A ; List scroll: 0
C3/21A8: 201F09 JSR $091F ; Create scrollbar
C3/21AB: C220 REP #$20 ; 16-bit A
C3/21AD: A9CC00 LDA #$00CC ; V-Speed: 0.8 px [Changed to A9 94 05] {Scroll speed $594}
{The shorter the list, the faster the arrow needs to scroll and the higher this number will need to be.)
{Take the ratio of OLDCOUNT/NEWCOUNT, multiply it by the value here, and round up}
C3/21B0: 9F4A357E STA $7E354A,X ; Set scrollbar's
C3/21B4: A96800 LDA #$0068 ; Y: 104
C3/21B7: 9FCA347E STA $7E34CA,X ; Set scrollbar's
C3/21BB: E220 SEP #$20 ; 8-bit A
C3/21BD: 204C4C JSR $4C4C ; Load navig data
C3/21C0: 20554C JSR $4C55 ; Relocate cursor
C3/21C3: A978 LDA #$78 ; Top row: Tap Dancer [Changed to h10]
{The scroll limit is set by the first item on the screen, so the value here...}
{...will be 16 less than the last rage # actually displayed}
[C1]
C1/84F9: C97C CMP #$7C BNW changes this... [Make #$14 for 48 rages]
{Again, scroll limit represents the upper left element in the menu...}
{...so the last rage displayed will be 8 higher than this}
...
C1/854A: A97C LDA #$7C BNW changes this... [Make #$14 for 48 rages]
{If this doesn't match the number in 84F9, you're gonna have a bad time}
...
C1/854E: A24B00 LDX #$004B BNW changes this... [Make #$01F2 for 48 rages?]
{The shorter the list, the higher this number must be. Again, get a multiplier from OLD/NEW and round up}
By coupling this information with Assassin's alphabetical rage patch, I was able to create a sorted list of 48 rages arranged by rough level of power (rather than alphanumerically). With a bypass, this list could be made to read from a different spot depending on a variable of your choice, allowing you to change which rages Gau lists and has access to on command. I didn't mess with muddled/berserk rage selection, though; it still draws from the full count. Anyway, that's not QUITE picking your rages, but you could in theory set up rage sets that are changed by relics or an event (something Gau lets you pick on the airship, maybe?).
« Next Oldest | Next Newest »
|
||||
Users browsing this thread: 1 Guest(s)