Users browsing this thread: 1 Guest(s)
Command Edit Upgrade patch [WIP] Alpha Patch Available
OK. I have some questions...
What event bit or whatever corresponds to Terra's Morph being unlocked?
What determines if a party member is only a guest?
EDIT:
I just upgraded the command edit routine.
Using the space I saved from optimizing the sustain status screen routine, I moved it up and added 2 minor features to give the whole thing a little polish.
1) When you press the A button to select a command that is not allowed to be changed, for now only Mimic does this, it no longer makes the 'click' sound.
2) Instead it makes the 'buzzer' sound and triggers the mosaic effect.
Here's the code:
EDIT2:
Here is another observation I just made.
The text for the command in the 16th position actually IS drawn to the screen.
It's just in the wrong place.
I tried this with everything the way it is right now; optimized status screen + upgraded command edit.
If I mark Morph as allowed in usME, load up a save from the very end of the game having a full party roster, then the text for Rage is pushed down to the 16th slot when I open the status screen as expected there is nothing in the 16th position even though I can point to it as expected.
However, when I looked at the status screen itself, with the command list closed, there are the letters _ag_ in the lower left corner.
So all that really need to be done is make sure that the text appear in the right place.
Hopefully it doesn't prove to be too much of a hassle.
EDIT3:
I managed to get the commands to read from the default data instead of from the current data.
However, there is a bunch of text corruption caused by my changes.
I double checked the branches and jumps associated with the code for the routine at C3/5DC1, which generates the command list, and everything seems to be pointing to the correct places.
So I guess it's not reading the data the way it should.
Here's the code I changed & I'm attaching a pic of the messed up text:
What event bit or whatever corresponds to Terra's Morph being unlocked?
What determines if a party member is only a guest?
EDIT:
I just upgraded the command edit routine.
Using the space I saved from optimizing the sustain status screen routine, I moved it up and added 2 minor features to give the whole thing a little polish.
1) When you press the A button to select a command that is not allowed to be changed, for now only Mimic does this, it no longer makes the 'click' sound.
2) Instead it makes the 'buzzer' sound and triggers the mosaic effect.
Here's the code:
Code:
One portion of Gogo's custom command setting in status menu
Gogo: C3/2248: 20A622 JSR $22A6
C3/224B: B90000 LDA $0000,Y (get character ID)
C3/224E: C90D CMP #$0D (is character Gogo?)
C3/2250: B05B BCS $22AD (branch if greater than or equal)
C3/2252: 200537 JSR $3705 (set finger positioning data for the four commands in status menu)
C3/2255: A508 LDA $08
C3/2257: 8980 BIT #$80 (did you press A?)
C3/2259: F052 BEQ $22AD
C3/225B: A54B LDA $4B
C3/225D: 85E7 STA $E7
C3/225F: 64E8 STZ $E8
C3/2261: 20A622 JSR $22A5
C3/2264: C220 REP #$20
C3/2266: 98 TYA
C3/2267: 18 CLC
C3/2268: 65E7 ADC $E7
C3/226A: A8 TAY
C3/226B: E220 SEP
C3/226D: B91600 LDA $0016,Y (unmodified commands)
C3/2270: C912 CMP #$12 (is command Mimic?)
C3/2272: F02D BEQ $22A1 (branch to buzzer sound + RTS)
C3/2274: 20062F JSR $2F06
C3/2277: A54E LDA
C3/2279: 855E STA $5E
C3/227B: A54B LDA $4B
C3/227D: 8564 STA $64
C3/227F: A906 LDA #$06
C3/2281: 8520 STA $20
C3/2283: A00C00 LDY #$000C
C3/2286: 849C STY $9C
C3/2288: A96A LDA #$6A
C3/228A: 8527 STA $27 (queue up to execute at C3/63A7)
C3/228C: A965 LDA #$65
C3/228E: 8526 STA $26 (execute at C3/36E7)
C3/2290: 200364 JSR $6403
C3/2293: AF899D7E LDA $7E9D89
C3/2297: 8554 STA $54
C3/2299: 4C0C64 JMP $640C (set finger positioning data for Gogo's customizable commands)
C3/229C: 20B20E JSR $0EB2 (makes the click sound)
C3/229F: 800C BRA $22AD (skip buzzer sound)
GBuzz: C3/22A1: 20C00E JSR $0EC0 (makes the buzzer sound)
C3/22A4: 205D30 JSR $305D (triggers the mosaic effect)
C3/22A7: 8007 BRA $22AD (isolate Sub-routine)
GSub1: C3/22A9: 7B TDC
C3/22AA: A528 LDA $28
C3/22AC: 0A ASL A
C3/22AD: AA TAX
C3/22AE: B46D LDY $6D,X
GEnd: C3/22B0: 60 RTS
C3/22B1: A509 LDA $09
C3/22B3: 8980 BIT #$80 (did you press B?)
C3/22B5: F009 BEQ $22BD
C3/22B7: 20A90E JSR $0EA9
C3/22BA: A904 LDA #$04
C3/22BC: 8527 STA $27 (init the main menu, queue up to execute at C3/1A8A)
C3/22BE: 6426 STZ $26 (fade out)
GEnd2: C3/22C0: 60 RTS
C3/22C1: EAEA Free Space
C3/22C3: EAEA 4 Bytes
EDIT2:
Here is another observation I just made.
The text for the command in the 16th position actually IS drawn to the screen.
It's just in the wrong place.
I tried this with everything the way it is right now; optimized status screen + upgraded command edit.
If I mark Morph as allowed in usME, load up a save from the very end of the game having a full party roster, then the text for Rage is pushed down to the 16th slot when I open the status screen as expected there is nothing in the 16th position even though I can point to it as expected.
However, when I looked at the status screen itself, with the command list closed, there are the letters _ag_ in the lower left corner.
So all that really need to be done is make sure that the text appear in the right place.
Hopefully it doesn't prove to be too much of a hassle.
EDIT3:
I managed to get the commands to read from the default data instead of from the current data.
However, there is a bunch of text corruption caused by my changes.
I double checked the branches and jumps associated with the code for the routine at C3/5DC1, which generates the command list, and everything seems to be pointing to the correct places.
So I guess it's not reading the data the way it should.
Here's the code I changed & I'm attaching a pic of the messed up text:
Code:
C3/5DD6: F027 BEQ $5DFF
C3/5DE1: BFA27CED LDA $ED7CA2,X (command 1) //Is this where the commands are laded from for placement into command list?
C3/5DE5: 8D8021 STA $2180
C3/5DE8: BFA37CED LDA $ED7CA3,X (command 2)
C3/5DEC: 8D8021 STA $2180
C3/5DEF: BFA47CED LDA $ED7CA4,X (command 3)
C3/5DF3: 8D8021 STA $2180
C3/5DF6: BFA57CED LDA $ED7CA5,X (command 4)
C3/5DFA: 8D8021 STA $2180
C3/5DFD: 8010 BRA $5E0F
C3/5DFF: E220 SEP #$20 (8 bit memory/accum.)
C3/5E01: A9FF LDA #$FF
C3/5E03: 8D8021 STA $2180
C3/5E06: 8D8021 STA $2180
C3/5E09: 8D8021 STA $2180
C3/5E0C: 8D8021 STA $2180 (four spaces, 16 loop iterations)
C3/5E0F: FA PLX
C3/5E10: E8 INX
C3/5E11: E01000 CPX #$0010
C3/5E14: D0B3 BNE $5DC9
C3/5E16: 7B TDC (A = #$0000)
C3/5E17: AA TAX (X = #$0000)
C3/5E18: DA PHX (save X)
C3/5E19: BF099E7E LDA $7E9E09,X
C3/5E1D: DF0A9E7E CMP $7E9E0A,X
C3/5E21: D008 BNE $5E2B
C3/5E23: 48 PHA
C3/5E24: A9FF LDA #$FF
C3/5E26: 9F0A9E7E STA $7E9E0A,X
C3/5E2A: 68 PLA
C3/5E2B: E8 INX
C3/5E2C: E04000 CPX #$0040
C3/5E2F: D0EC BNE $5E1D
C3/5E31: FA PLX
C3/5E32: E8 INX
C3/5E33: E04000 CPX #$0040
C3/5E36: D0E0 BNE $5E18
C3/5E38: A28A9D LDX #$9D8A
C3/5E3B: 8E8121 STX $2181
C3/5E3E: A9FF LDA #$FF
C3/5E40: 8D8021 STA $2180
C3/5E43: 7B TDC (A = #$0000)
C3/5E44: AA TAX (X = #$0000)
C3/5E45: A8 TAY (Y = #$0000)
C3/5E46: 7B TDC (A = #$0000)
C3/5E47: DA PHX
C3/5E48: BF099E7E LDA $7E9E09,X (load command?)
C3/5E4C: 3016 BMI $5E64
C3/5E4E: C912 CMP #$12 (is command Mimic?)
C3/5E50: F012 BEQ $5E64 (branch if so)
//Remove this branch in order to allow the Mimic command to be added to the command list.
//Alternatively, this can be used a jumping off point to a more elaborate sub-routine that can limit commands more comprehensively.
C3/5E52: 85E0 STA $E0
C3/5E54: 0A ASL A
C3/5E55: AA TAX
C3/5E56: BF00FECF LDA $CFFE00,X (load command usability data from table)
C3/5E5A: 2901 AND #$01 (can Gogo use this command?)
C3/5E5C: F006 BEQ $5E64 (branch if not)
//Kill this branch to allow all commands to be added to the list.
//The above code is used to add commands to the command list by checking against a table of usable commands.
C3/5E5E: A5E0 LDA $E0
C3/5E60: 8D8021 STA $2180
C3/5E63: C8 INY
C3/5E64: FA PLX
C3/5E65: E8 INX
C3/5E66: E04000 CPX #$0040
C3/5E69: D0DB BNE $5E46
C3/5E6B: C8 INY
C3/5E6C: 98 TYA
C3/5E6D: 8F899D7E STA $7E9D89
C3/5E71: A28DAA LDX #$AA8D
C3/5E74: 8E8121 STX $2181
C3/5E77: 7B TDC (A = #$0000)
C3/5E78: AA TAX (X = #$0000)
C3/5E79: BF855FC3 LDA $C35F85,X (window data for Gogo's command list?)
C3/5E7D: 8D8021 STA $2180
C3/5E80: E8 INX
C3/5E81: E00800 CPX #$0008
C3/5E84: D0F3 BNE $5E79
C3/5E86: A918 TYA //Edit here to hardcode the length of the command menu.
C3/5E88: 4C915E STA $E2 //A918 LDA #$18 ;make window full length of screen
//4C915E JMP $5E91
C3/5E8B: EAEAEAEA ADC $E2 //The rest of the bytes up to 5E90 is now free space.
C3/5E8F: EAEA ADC $E2 //If loading the text of the 16th command is not solvable, change the value to #$17
//This will limit the length of the list to the displayable maximum.
« Next Oldest | Next Newest »
Users browsing this thread: 1 Guest(s)