FF6 Hacking
GrayShadow's 'Giving Gogo Magic' code - Printable Version

+- FF6 Hacking (https://www.ff6hacking.com/forums)
+-- Forum: Discussion Forums (https://www.ff6hacking.com/forums/forum-5.html)
+--- Forum: Magitek Research Facility (https://www.ff6hacking.com/forums/forum-9.html)
+--- Thread: GrayShadow's 'Giving Gogo Magic' code (/thread-3170.html)

Pages: 1 2 3 4 5 6


RE: GrayShadow's 'Giving Gogo Magic' code - madsiur - 04-18-2016

(04-18-2016, 11:20 AM)DrakeyC Wrote: I have 3C1E instead of 281D like you do.

^I'm talking about this, not the offsets C0/1E3C and C0/1D28.


RE: GrayShadow's 'Giving Gogo Magic' code - DrakeyC - 04-18-2016

Okay, so I again ask what I should do? I got the breakpoint thing, where would that go off, at Sabin's recruitment?


RE: GrayShadow's 'Giving Gogo Magic' code - madsiur - 04-18-2016

If you got the breakpoint right you should check the value in the RAM viewer at 7E/1E3C (or just $1E3C). It should be 00. If you got anything else you got a RAM conflict prior to Sabin recruitment. If you got 00, executing the code should loop that portion of code 3 times then continue elsewhere in bank $C0.You'll need to look at that more closely. You can post the disassembly of the 3 loops.


RE: GrayShadow's 'Giving Gogo Magic' code - DrakeyC - 04-18-2016

Okay, thanks. I'll go back to the 3C1E values and start a new game tomorrow.


RE: GrayShadow's 'Giving Gogo Magic' code - madsiur - 04-18-2016

You can view the state of $1E3C anytime in game. I'd take a look at least after the intro to see if its value is 00. Just press "break" outside or inside battle in the debugger and click "RAM Viewer" I think and go to offset $1E3C (or maybe the debugger labels it as $7E1E3C). I'm not 100% sure of the terms used because I rarely use that feature and don't have a debugger copy on my laptop. There is little chance that RAM offset would be altered between SRAM initialization and sabin's recruitment but it's not impossible.


RE: GrayShadow's 'Giving Gogo Magic' code - DrakeyC - 04-18-2016

Okay, looks like 7E1E3C is 17. Please tell me it's as simple as changing that to 00?

[Image: Ram_zpsidguanax.png]

Also, just to say - removing the Blitz from the current save isn't a big deal to me, I can play on the honor system. I just want to fix it so it doesn't happen to other folks who play.


RE: GrayShadow's 'Giving Gogo Magic' code - madsiur - 04-18-2016

This is the RAM (memory) not the ROM so everyone playing your game would have to change it. If the screenshot was taken at game start you've got a problem, if it was taken after sabin's recruitment it is normal its value is not 00. If I understand the code correctly, I don't think 0x17 is a valid value (bit 0, 1, 2, 4 set) meaning he would know blitzes 1, 2, 3 and 5... skipping 4. I'd check the integrity of this data in your hack:

Code:
Data: Bitfields to add SwdTechs/Blitzes
C0/A22C:    00          (none)
C0/A22D:    01          (Pummel/Dispatch)
C0/A22E:    03          (Aura Bolt/Retort + above)
C0/A22F:    07          (Suplex/Slash + above)
C0/A230:    0F          (Fire Dance/Quadra Slam + above)
C0/A231:    1F          (Mantra/Empowerer + above)
C0/A232:    3F          (Air Blade/Stunner + above)
C0/A233:    7F          (Spiraler/Quadra Slice + above)
C0/A234:    FF          (Bum Rush/Cleave + above)


I would also change the following RAM values to $1A3D, $1A3E and $1E3F instead of $1E3A, $1E3B and $1E3C here as mentioned previously. The org value is where the code start:

Code:
org $C0BE17
LDA $E6F564            ; Initialises Strago's known lores at recruit.
STA $1E3A              ; Strago's known lores, byte 1
LDA $E6F565
STA $1E3B              ; Strago's known lores, byte 2
LDA $E6F566
STA $1E3C              ; Strago's known lores, byte 3



RE: GrayShadow's 'Giving Gogo Magic' code - DrakeyC - 04-18-2016

The screenshot was taken from battle after loading a saved game.

The first quote regarding Blitz/Swdtech, all my values match what you posted. And yes, Sabin knows Blitzes 1, 2, 3, and 5 (though he's high enough level to know the first three).

Second post, done.


RE: GrayShadow's 'Giving Gogo Magic' code - madsiur - 04-18-2016

You seem to overlook half of the stuff I say so I'll just quote myself instead of repeating:

madsiur Wrote:Second thing you'll sooner or later need to do is setting a breakpoint where I described ( after C0/D68D at the A6 in A600BF98F4E6 <- [do a hex] search for this). You'll need to run that piece of code to see why Sabin learn 3 Blitzes instead of two.

(04-18-2016, 08:04 PM)Madsiur Wrote: If you got the breakpoint right you should check the value in the RAM viewer at 7E/1E3C (or just $1E3C). It should be 00 [before Sabin's recruitment]. If you got anything else you got a RAM conflict prior to Sabin recruitment. If you got 00, executing the code should loop that portion of code 3 times then continue elsewhere in bank $C0.You'll need to look at that more closely. You can post the disassembly of the 3 loops.

(04-18-2016, 10:41 PM)Madsiur Wrote: This is the RAM (memory) not the ROM so everyone playing your game would have to change it. If the screenshot was taken at game start you've got a problem, if it was taken after sabin's recruitment it is normal its value is not 00.



RE: GrayShadow's 'Giving Gogo Magic' code - DrakeyC - 04-18-2016

Okay, trying to make sure I understand, quote by quote.

I ran the breakpoint at C0/D68D from loading the saved game, at which time 7E/1E3C is 00. I'm not sure what you mean by "run that code" though. Do you mean Step Into?

For checking if it's 00 before Sabin's recruitment, would I have to replay the game and check the value before recruiting Sabin, or does the value at the loading of the saved game work? Again, though, I'm not sure what you mean by executing the code 3 times.

Apologies about the misunderstanding, I see.

One last note. On a downloaded save, I changed $1E3A, $1E3B and $1E3C to $1A3D, $1A3E and $1E3F as you said, and played from a pre-Sabin recruitment save up to his joining. He came knowing his 1, 2, 3, 5, and 7 Blitzes. Is this because the downloaded save file's stuff is messing it up, or is that something else?