06-05-2011, 06:20 PM
The relevant code for Shadow leaving after combat can be found here:
And here:
Code:
C2/4861: AE 03 30 LDX $3003 (Which character is Shadow)
C2/4864: 30 26 BMI $488C (Branch if Shadow not in party)
C2/4866: 20 5A 4B JSR $4B5A (0 to 255)
C2/4869: C9 10 CMP #$10
C2/486B: B0 1F BCS $488C (15 in 16 chance branch)
C2/486D: AD 1F 20 LDA $201F (get encounter type? 0 = front, 1 = back, 2 = pincer, 3 = side)
C2/4870: D0 1A BNE $488C (if not a front attack, branch)
C2/4872: AD 76 3A LDA $3A76 (Number of characters in party)
C2/4875: C9 02 CMP #$02
C2/4877: 90 13 BCC $488C (Branch if less than 2 characters in party)
C2/4879: BD E4 3E LDA $3EE4,X
C2/487C: 89 C2 BIT #$C2 (Check for Dead, Zombie, or Petrify)
C2/487E: D0 0C BNE $488C (Branch if any set on Shadow)
C2/4880: A9 08 LDA #$08
C2/4882: 2C BD 3E BIT $3EBD
C2/4885: D0 05 BNE $488C
C2/4887: 2C DE 1E BIT $1EDE (Which characters are in party)
C2/488A: D0 1A BNE $48A6 (Branch if Shadow in party)
And here:
Code:
(Shadow randomly leaves after battle)
C2/48A6: 1C DE 1E TRB $1EDE (Remove Shadow from party)
C2/48A9: 20 E3 47 JSR $47E3
C2/48AC: C2 10 REP #$10
C2/48AE: BC 10 30 LDY $3010,X (get offset to character info block)
C2/48B1: A9 FF LDA #$FF
C2/48B3: 99 1E 16 STA $161E,Y (clear his equipped Esper)
C2/48B6: E2 10 SEP #$10
C2/48B8: A9 FE LDA #$FE
C2/48BA: 20 92 07 JSR $0792
C2/48BD: A9 02 LDA #$02
C2/48BF: 0C 49 2F TSB $2F49
C2/48C2: A2 0B LDX #$0B
C2/48C4: 68 PLA
C2/48C5: 68 PLA
C2/48C6: A9 23 LDA #$23
C2/48C8: 20 91 4E JSR $4E91
C2/48CB: 4C 19 00 JMP $0019