BT II - Oscon's Fortress Entrance

Any developer realated stuff
Post Reply
User avatar
Darendor
Posts: 1502
Joined: Wed Jan 14, 2009 1:53 am
Location: Red Deer, Alberta, Canada

BT II - Oscon's Fortress Entrance

Post by Darendor »

BT2 Character Disk
"FILE0637245" PRG ACCESS TO OSCON'S FORTRESS
#$EA | 234 | EOR all bytes against 11101010
2 blocks; 394 bytes (70EA TO 7274 Inclusive)
9a00 to 9b8a


This is the file for when the party attempts to enter Oscon's Fortress.

The file scans the roster of each party member looking for the byte that corresponds to the "Item of K". If it finds it, it branches to the code that allows the party to (T)ake the stairs in. Otherwise, it simply branches to the code that displays the only other option, (E)xit the fortress.

Pretty basic. I guess.

A few revelations were made here. $081b loads the picture file according to the X register. $080f displays the text found at $59 and $58 as a caption. $0899 is the dungeon level loader thingy.

It seems to try to compare #$07; this is probably the item number for the "Item of K".

Code: Select all

.C:9a00  E6 C1       INC $C1
.C:9a02  A2 11       LDX #$11
.C:9a04  20 1B 08    JSR $081B		Display picture #$11
.C:9a07  A9 9A       LDA #$9A
.C:9a09  85 59       STA $59
.C:9a0b  A9 6F       LDA #$6F
.C:9a0d  85 58       STA $58
.C:9a0f  20 0F 08    JSR $080F		Display "Fortress" caption
.C:9a12  A9 00       LDA #$00
.C:9a14  85 44       STA $44
.C:9a16  A6 44       LDX $44
.C:9a18  A9 10       LDA #$10		
.C:9a1a  20 F0 08    JSR $08F0
.C:9a1d  90 1F       BCC $9A3E		Item of K in party?  Yes? $9a3e
.C:9a1f  E6 44       INC $44
.C:9a21  A5 44       LDA $44
.C:9a23  C9 07       CMP #$07
.C:9a25  90 EF       BCC $9A16
.C:9a27  20 E1 08    JSR $08E1
.C:9a2a  A0 9A       LDY #$9A
.C:9a2c  A2 FB       LDX #$FB
.C:9a2e  20 06 08    JSR $0806		"No entrance to upper levels"
.C:9a31  20 78 08    JSR $0878
.C:9a34  20 87 08    JSR $0887
.C:9a37  C9 C5       CMP #$C5		Was "E" pressed?
.C:9a39  D0 F6       BNE $9A31		No?  Wait until "E" is pressed
.C:9a3b  4C 56 9A    JMP $9A56		Yes?  Jump to 9a56...
.C:9a3e  20 E1 08    JSR $08E1
.C:9a41  A0 9A       LDY #$9A
.C:9a43  A2 78       LDX #$78
.C:9a45  20 06 08    JSR $0806		"Take stairs, or exit?"
.C:9a48  20 78 08    JSR $0878
.C:9a4b  20 87 08    JSR $0887
.C:9a4e  C9 D4       CMP #$D4		Was "T" pressed?
.C:9a50  F0 14       BEQ $9A66		Yep, go to 9a66
.C:9a52  C9 C5       CMP #$C5		Was "E" pressed?
.C:9a54  D0 F2       BNE $9A48		Neither?  Wait for either...
.C:9a56  A9 02       LDA #$02		Exiting fortress...
.C:9a58  85 24       STA $24		Face party south?  $24 = 02
.C:9a5a  C6 28       DEC $28		Move party 1 square south
.C:9a5c  A9 00       LDA #$00
.C:9a5e  85 2F       STA $2F
.C:9a60  20 E1 08    JSR $08E1
.C:9a63  4C 00 90    JMP $9000		Back to...combat engine???
.C:9a66  A9 10       LDA #$10
.C:9a68  85 E0       STA $E0
.C:9a6a  A9 01       LDA #$01
.C:9a6c  4C 99 08    JMP $0899		Load dungeon level - Oscon 1
.C:9a6f  C6 EF       DEC $EF		[F][o]
.C:9a71  F2          JAM		[r]
.C:9a72  F4 F2       NOOP $F2,X		[t][r]
.C:9a74  E5 F3       SBC $F3		[e][s]
.C:9a76  F3 DC       ISB ($DC),Y	[s][EOT]
.C:9a78  D9 EF F5    CMP $F5EF,Y	[Y][o][u]
.C:9a7b  A0 F3       LDY #$F3		[_][s]
.C:9a7d  F4 E1       NOOP $E1,X		[t][a]
.C:9a7f  EE E4 A0    INC $A0E4		[n][d][_]
.C:9a82  E9 EE       SBC #$EE		[i][n]
.C:9a84  A0 F4       LDY #$F4		[_][t]
.C:9a86  E8          INX		[h]
.C:9a87  E5 A0       SBC $A0		[e][_]
.C:9a89  E5 EE       SBC $EE		[e][n]
.C:9a8b  F4 F2       NOOP $F2,X		[t][r]
.C:9a8d  F9 A0 F4    SBC $F4A0,Y	[y][_][t]
.C:9a90  EF A0 CF    ISB $CFA0		[o][_][O]
.C:9a93  F3 E3       ISB ($E3),Y	[s][c]
.C:9a95  EF EE A7    ISB $A7EE		[o][n][']
.C:9a98  F3 A0       ISB ($A0),Y	[s][_]
.C:9a9a  C6 EF       DEC $EF		[F][o]
.C:9a9c  F2          JAM		[r]
.C:9a9d  F4 F2       NOOP $F2,X		[t][r]
.C:9a9f  E5 F3       SBC $F3		[e][s]
.C:9aa1  F3 AE       ISB ($AE),Y	[s][.]
.C:9aa3  A0 C1       LDY #$C1		[_][A]
.C:9aa5  A0 F3       LDY #$F3		[_][s]
.C:9aa7  F4 E1       NOOP $E1,X		[t][a]
.C:9aa9  E9 F2       SBC #$F2		[i][r]
.C:9aab  F7 E1       ISB $E1,X		[w][a]
.C:9aad  F9 A0 EC    SBC $ECA0,Y	[y][_][l]
.C:9ab0  E5 E1       SBC $E1		[e][a]
.C:9ab2  E4 F3       CPX $F3		[d][s]
.C:9ab4  A0 F4       LDY #$F4		[_][t]
.C:9ab6  EF A0 F4    ISB $F4A0		[o][_][t]
.C:9ab9  E8          INX		[h]
.C:9aba  E5 A0       SBC $A0		[e][_]
.C:9abc  F5 F0       SBC $F0,X		[u][p]
.C:9abe  F0 E5       BEQ $9AA5		[p][e]
.C:9ac0  F2          JAM		[r]
.C:9ac1  A0 EC       LDY #$EC		[_][l]
.C:9ac3  E5 F6       SBC $F6		[e][v]
.C:9ac5  E5 EC       SBC $EC		[e][l]
.C:9ac7  F3 AE       ISB ($AE),Y	[s][.]
.C:9ac9  A0 D9       LDY #$D9		[_][Y]
.C:9acb  EF F5 A0    ISB $A0F5		[o][u][_]
.C:9ace  E3 E1       ISB ($E1,X)	[c][a]
.C:9ad0  EE 00 00    INC $0000		[n][CR][CR]
.C:9ad3  A8          TAY		[(]
.C:9ad4  D4 A9       NOOP $A9,X		[T][)]
.C:9ad6  E1 EB       SBC ($EB,X)	[a][k]
.C:9ad8  E5 A0       SBC $A0		[e][_]
.C:9ada  F4 E8       NOOP $E8,X		[t][h]
.C:9adc  E5 A0       SBC $A0		[e][_]
.C:9ade  F3 F4       ISB ($F4),Y	[s][t]
.C:9ae0  E1 E9       SBC ($E9,X)	[a][i]
.C:9ae2  F2          JAM		[r]
.C:9ae3  F7 E1       ISB $E1,X		[w][a]
.C:9ae5  F9 00 A8    SBC $A800,Y	[y][CR][(]
.C:9ae8  C5 A9       CMP $A9		[E][)]
.C:9aea  F8          SED		[x]
.C:9aeb  E9 F4       SBC #$F4		[i][t]
.C:9aed  A0 F4       LDY #$F4		[_][t]
.C:9aef  E8          INX		[h]
.C:9af0  E5 A0       SBC $A0		[e][_]
.C:9af2  E6 EF       INC $EF		[f][o]
.C:9af4  F2          JAM		[r]
.C:9af5  F4 F2       NOOP $F2,X		[t][r]
.C:9af7  E5 F3       SBC $F3		[e][s]
.C:9af9  F3 DC       ISB ($DC),Y	[s][EOT]
.C:9afb  D9 EF F5    CMP $F5EF,Y	[Y][o][u]	[
.C:9afe  A0 F3       LDY #$F3		[_][s]
.C:9b00  F4 E1       NOOP $E1,X		[t][a]
.C:9b02  EE E4 A0    INC $A0E4		[n][d][_]
.C:9b05  E9 EE       SBC #$EE		[i][n]
.C:9b07  A0 F4       LDY #$F4		[_][t]
.C:9b09  E8          INX		[h]
.C:9b0a  E5 A0       SBC $A0		[e][_]
.C:9b0c  E5 EE       SBC $EE		[e][n]
.C:9b0e  F4 F2       NOOP $F2,X		[t][r]
.C:9b10  F9 A0 F4    SBC $F4A0,Y	[y][_][t]
.C:9b13  EF A0 CF    ISB $CFA0		[o][_][O]
.C:9b16  F3 E3       ISB ($E3),Y	[s][c]
.C:9b18  EF EE A7    ISB $A7EE		[o][n][']
.C:9b1b  F3 A0       ISB ($A0),Y	[s][_]
.C:9b1d  C6 EF       DEC $EF		[F][o]
.C:9b1f  F2          JAM		[r]
.C:9b20  F4 F2       NOOP $F2,X		[t][r]
.C:9b22  E5 F3       SBC $F3		[e][s]
.C:9b24  F3 AC       ISB ($AC),Y	[s][,]
.C:9b26  A0 F7       LDY #$F7		[_][w]
.C:9b28  E8          INX		[h]
.C:9b29  E9 E3       SBC #$E3		[i][c]
.C:9b2b  E8          INX		[h]
.C:9b2c  A0 E1       LDY #$E1		[_][a]
.C:9b2e  F0 F0       BEQ $9B20		[p][p]
.C:9b30  E5 E1       SBC $E1		[e][a]
.C:9b32  F2          JAM		[r]
.C:9b33  F3 A0       ISB ($A0),Y	[s][_]
.C:9b35  F4 EF       NOOP $EF,X		[t][o]
.C:9b37  A0 E2       LDY #$E2		[_][b]
.C:9b39  E5 A0       SBC $A0		[e][_]
.C:9b3b  E4 E5       CPX $E5		[d][e]
.C:9b3d  F3 E5       ISB ($E5),Y	[s][e]
.C:9b3f  F2          JAM		[r]
.C:9b40  F4 E5       NOOP $E5,X		[t][e]
.C:9b42  E4 AE       CPX $AE		[d][.]
.C:9b44  A0 D9       LDY #$D9		[_][Y]
.C:9b46  EF F5 A0    ISB $A0F5		[o][u][_]
.C:9b49  F3 E5       ISB ($E5),Y	[s][e]
.C:9b4b  E5 A0       SBC $A0		[e][_]
.C:9b4d  EE EF A0    INC $A0EF		[n][o][_]
.C:9b50  E5 EE       SBC $EE		[e][n]
.C:9b52  F4 F2       NOOP $F2,X		[t][r]
.C:9b54  E1 EE       SBC ($EE,X)	[a][n]
.C:9b56  E3 E5       ISB ($E5,X)	[c][e]
.C:9b58  A0 F4       LDY #$F4		[_][t]
.C:9b5a  EF A0 F4    ISB $F4A0		[o][_][t]
.C:9b5d  E8          INX		[h]
.C:9b5e  E5 A0       SBC $A0		[e][_]
.C:9b60  F5 F0       SBC $F0,X		[u][p]
.C:9b62  F0 E5       BEQ $9B49		[p][e]
.C:9b64  F2          JAM		[r]
.C:9b65  A0 EC       LDY #$EC		[_][l]
.C:9b67  E5 F6       SBC $F6		[e][v]
.C:9b69  E5 EC       SBC $EC		[e][l]
.C:9b6b  F3 AE       ISB ($AE),Y	[s][.]
.C:9b6d  A0 D9       LDY #$D9		[_][Y]
.C:9b6f  EF F5 A0    ISB $A0F5		[o][u][_]
.C:9b72  E3 E1       ISB ($E1,X)	[c][a]
.C:9b74  EE 00 00    INC $0000		[n][CR][CR]
.C:9b77  A8          TAY		[(]
.C:9b78  C5 A9       CMP $A9		[E][)]
.C:9b7a  F8          SED		[x]
.C:9b7b  E9 F4       SBC #$F4		[i][t]
.C:9b7d  A0 F4       LDY #$F4		[_][t]
.C:9b7f  E8          INX		[h]
.C:9b80  E5 A0       SBC $A0		[e][_]
.C:9b82  E6 EF       INC $EF		[f][o]
.C:9b84  F2          JAM		[r]
.C:9b85  F4 F2       NOOP $F2,X		[t][r]
.C:9b87  E5 F3       SBC $F3		[e][s]
.C:9b89  F3 DC       ISB ($DC),Y	[s][EOT]
User avatar
Darendor
Posts: 1502
Joined: Wed Jan 14, 2009 1:53 am
Location: Red Deer, Alberta, Canada

Re: BT II - Oscon's Fortress Entrance

Post by Darendor »

Also, party facing is stored in $0024. 0 = north, 1 = east, 2 = south, and 3 = take a wild guess. :?
Post Reply