Users browsing this thread: 1 Guest(s)
The colosseum, temporary character , FF6LE and graphics change
(10-30-2011, 07:42 PM)Madsiur Wrote: On a another subject for my new WOB collosseum I found that:According to what you show, and if I'm right, there are 4 bytes used when handling things in the colloseum: Starting at DFB600, the first two bytes are for the check for the monster you'll fight. The third byte corresponds to the item you'll win; and the last is to mask the item.
Code:Colliseum: Determine prize and monster based on item bet
C3/B22C: 7B TDC
C3/B22D: AD0502 LDA $0205 (item bet)
C3/B230: C220 REP #$20 (16 bit memory/accum.)
C3/B232: 0A ASL A
C3/B233: 0A ASL A
C3/B234: AA TAX
C3/B235: E220 SEP #$20 (8 bit memory/accum.)
C3/B237: BF00B6DF LDA $DFB600,X (monster to face)
C3/B23B: 8D0602 STA $0206
C3/B23E: BF02B6DF LDA $DFB602,X (item to win)
C3/B242: 8D0702 STA $0207
C3/B245: BF03B6DF LDA $DFB603,X (mask item to win)
C3/B249: 8D0902 STA $0209
C3/B24C: 60 RTS
DFB600 is where the game goes and checks for the monster you'll fight.
DFB602 is where the item you'll win is stored.
(10-30-2011, 07:42 PM)Madsiur Wrote: You have to create a subroutine similar to this one and the game would branch to that subroutine if a certain bit is set/clear depending if you are before of after the start of the WOR. I don't know how you write that in assembly but I think it's possible...Sounds like you're on the right track . I'll support yo as long as I can, but keep in mind that my assembly knowledge is limited, restricted to simple things like loading addresses, comparing, jumping, jumping to subroutines, return to subroutines, and loading and storing numbers in the accumulator.
EDIT: There's some other code that calls the subroutine at C3/B22C that you posted: The code at C3/AF46 is calling the subroutine at C3/B22C.
Code:
Colliseum setup?
C3/AF46: 202CB2 JSR $B22C (Determine prize and monster based on item bet)
C3/AF49: AD0602 LDA $0206 (Monster to fight)
C3/AF4C: 8D0242 STA $4202
C3/AF4F: A905 LDA #$05
C3/AF51: 8D0342 STA $4203
C3/AF54: A01050 LDY #$5010
C3/AF57: 8C1621 STY $2116
C3/AF5A: EA NOP
C3/AF5B: EA NOP
C3/AF5C: AE1642 LDX $4216
C3/AF5F: BF0070D2 LDA $D27000,X (Monster visual specs, byte 1)
C3/AF63: 85E7 STA $E7
C3/AF65: BF0170D2 LDA $D27001,X (Monster visual specs, byte 2)
C3/AF69: 85E8 STA $E8
C3/AF6B: BF0270D2 LDA $D27002,X (Monster visual specs, byte 3)
C3/AF6F: 85F2 STA $F2
C3/AF71: BF0370D2 LDA $D27003,X (Monster visual specs, byte 4)
C3/AF75: 85F1 STA $F1
C3/AF77: BF0470D2 LDA $D27004,X (Monster visual specs, byte 5)
C3/AF7B: 85E9 STA $E9
C3/AF7D: A5E8 LDA $E8
C3/AF7F: 3004 BMI $AF85
C3/AF81: 64FF STZ $FF
C3/AF83: 8008 BRA $AF8D
C3/AF85: A901 LDA #$01
C3/AF87: 85FF STA $FF
C3/AF89: A980 LDA #$80
C3/AF8B: 14E8 TRB $E8
C3/AF8D: A9E9 LDA #$E9
C3/AF8F: 85F7 STA $F7
C3/AF91: C220 REP #$20 (16 bit memory/accum.)
C3/AF93: A90070 LDA #$7000
C3/AF96: 85F5 STA $F5
C3/AF98: A5E7 LDA $E7
C3/AF9A: 85F9 STA $F9
C3/AF9C: 64FB STZ $FB
C3/AF9E: 06F9 ASL $F9
C3/AFA0: 26FB ROL $FB
C3/AFA2: 06F9 ASL $F9
C3/AFA4: 26FB ROL $FB
C3/AFA6: 06F9 ASL $F9
C3/AFA8: 26FB ROL $FB
C3/AFAA: 18 CLC
C3/AFAB: A5F9 LDA $F9
C3/AFAD: 65F5 ADC $F5
C3/AFAF: 85F5 STA $F5
C3/AFB1: A5FB LDA $FB
C3/AFB3: 65F7 ADC $F7
C3/AFB5: 85F7 STA $F7
C3/AFB7: A600 LDX $00
C3/AFB9: E220 SEP #$20 (8 bit memory/accum.)
C3/AFBB: A5F2 LDA $F2
C3/AFBD: 3009 BMI $AFC8
C3/AFBF: A020A8 LDY #$A820
C3/AFC2: 84E3 STY $E3
C3/AFC4: A908 LDA #$08
C3/AFC6: 8007 BRA $AFCF
C3/AFC8: A022A8 LDY #$A822
C3/AFCB: 84E3 STY $E3
C3/AFCD: A920 LDA #$20
C3/AFCF: 85E6 STA $E6
C3/AFD1: 8599 STA $99
C3/AFD3: A9D2 LDA #$D2
C3/AFD5: 85E5 STA $E5
C3/AFD7: A5F2 LDA $F2
C3/AFD9: 2940 AND #$40
C3/AFDB: 2A ROL A
C3/AFDC: 2A ROL A
C3/AFDD: 2A ROL A
C3/AFDE: 85EA STA $EA
C3/AFE0: A5F2 LDA $F2
C3/AFE2: 3009 BMI $AFED
C3/AFE4: C220 REP #$20 (16 bit memory/accum.)
C3/AFE6: A5E9 LDA $E9
C3/AFE8: 0A ASL A
C3/AFE9: 0A ASL A
C3/AFEA: 0A ASL A
C3/AFEB: 8009 BRA $AFF6
C3/AFED: C220 REP #$20 (16 bit memory/accum.)
C3/AFEF: A5E9 LDA $E9
C3/AFF1: 0A ASL A
C3/AFF2: 0A ASL A
C3/AFF3: 0A ASL A
C3/AFF4: 0A ASL A
C3/AFF5: 0A ASL A
C3/AFF6: 18 CLC
C3/AFF7: 67E3 ADC [$E3]
C3/AFF9: 85E0 STA $E0
C3/AFFB: E220 SEP #$20 (8 bit memory/accum.)
C3/AFFD: A9D2 LDA #$D2
C3/AFFF: 85E2 STA $E2
C3/B001: A00800 LDY #$0008
C3/B004: DA PHX
C3/B005: 7B TDC
C3/B006: A5E6 LDA $E6
C3/B008: AA TAX
C3/B009: A7E0 LDA [$E0]
C3/B00B: 9F889D7E STA $7E9D88,X
C3/B00F: FA PLX
C3/B010: 18 CLC
C3/B011: 5A PHY
C3/B012: 2A ROL A
C3/B013: 48 PHA
C3/B014: 9005 BCC $B01B
C3/B016: 201EB1 JSR $B11E
C3/B019: 8003 BRA $B01E
C3/B01B: 200AB1 JSR $B10A
C3/B01E: 68 PLA
C3/B01F: 7A PLY
C3/B020: 88 DEY
C3/B021: D0ED BNE $B010
C3/B023: C220 REP #$20 (16 bit memory/accum.)
C3/B025: E6E0 INC $E0
C3/B027: E220 SEP #$20 (8 bit memory/accum.)
C3/B029: C6E6 DEC $E6
C3/B02B: D0D4 BNE $B001
C3/B02D: 2033B0 JSR $B033
C3/B030: 4C5AB1 JMP $B15A
« Next Oldest | Next Newest »
Users browsing this thread: 1 Guest(s)