Fixes to Aga Tower staircases
Lots of initial work on key doors and other door pairs
This commit is contained in:
@@ -184,242 +184,4 @@ $a2 - MM 162 idx 0
|
||||
$a8 - EP 168 idx 2
|
||||
$bc - TT 188 idx 1
|
||||
|
||||
Door Data:
|
||||
|
||||
Room 001 : 32 46, 93 46
|
||||
Room 002 : A1 44, A0 40, A1 16
|
||||
Room 003 : 61 0E
|
||||
Room 004 : 00 22, 60 28, 82 28, 80 36, 61 00
|
||||
Room 006 : 61 18
|
||||
Room 008 : B2 48, 81 0E, 91 40, 91 16
|
||||
|
||||
Room 010 : 10 20
|
||||
Room 011 : 60 36, 82 38, 62 1C
|
||||
Room 012 : 71 0A
|
||||
Room 013 : 61 18
|
||||
Room 014 : 60 22, 82 18, 81 0A
|
||||
Room 016 : 61 0A, 82 00
|
||||
Room 017 : 62 28, 82 28, 81 1C
|
||||
Room 018 : 40 02, 40 16, A1 02, A1 12
|
||||
Room 019 : 83 1C, 63 00
|
||||
|
||||
Room 020 : 81 1C, 22 1C, 00 00, 02 00, 61 00, 63 00, 83 00
|
||||
Room 021 : 22 18, 02 00
|
||||
Room 022 : 70 2E, 60 1C, 80 00, 00 00
|
||||
Room 024 : 30 02, 30 16
|
||||
Room 025 : 73 2E, 63 1C
|
||||
Room 026 : 80 1C, 02 1C, 12 2E, 61 1C, 62 00, 81 00
|
||||
Room 027 : 60 36, 61 00
|
||||
Room 028 : 80 36, 82 18, 60 28
|
||||
Room 029 : 00 1E
|
||||
|
||||
Room 030 : 83 18, 82 18, 80 36, 81 00
|
||||
Room 031 : 22 18, 82 38
|
||||
Room 032 : 61 18
|
||||
Room 033 : 20 1C, 70 00, 83 00
|
||||
Room 034 : 71 1C, 22 00
|
||||
Room 035 : 81 2A, 83 00
|
||||
Room 036 : 20 1E, 62 38, 60 38, 80 38, 81 0A, 00 00, 22 00, 82 00
|
||||
Room 038 : 71 1C, 60 36, 80 36, 62 00
|
||||
|
||||
Room 040 : 00 22, 71 0A
|
||||
Room 042 : 20 18, 00 1C, 83 2E, A3 02, 61 00, 81 00
|
||||
Room 043 : 82 2E, 22 2E, 00 18, 42 02
|
||||
Room 044 : 60 2E, 80 2E, 82 2E, 81 2E, 61 0E
|
||||
Room 046 : 20 00
|
||||
Room 047 : 60 2E, 81 0E
|
||||
Room 048 : 00 32, 60 38
|
||||
Room 049 : 60 1E, 82 36
|
||||
|
||||
Room 050 : 10 1C
|
||||
Room 051 : 61 18
|
||||
Room 052 : 63 00, 83 00
|
||||
Room 053 : 63 1C, 02 00, 22 00, 80 00, 83 00, A0 02
|
||||
Room 054 : 63 2E, 10 1C, 02 1C, 22 00, 83 00, A1 02
|
||||
Room 055 : 02 2E, 63 2E, 60 1C, 83 1C, 22 00, A0 02
|
||||
Room 056 : 02 2E, 22 1C
|
||||
Room 057 : 61 18, 82 1C
|
||||
Room 058 : 71 1C, 00 00, 20 00
|
||||
Room 059 : 61 00
|
||||
|
||||
Room 060 : 20 2E, 81 0E
|
||||
Room 061 : 80 36, 62 1C, 61 1C, 60 2E
|
||||
Room 062 : 80 18, 61 1C
|
||||
Room 063 : 82 18
|
||||
Room 064 : B2 40
|
||||
Room 065 : 71 18
|
||||
Room 067 : 00 1E, 80 1C, 81 1C
|
||||
Room 068 : 62 38, 82 1C, 63 00, 83 00
|
||||
Room 069 : 02 18, 60 00, 22 00, 82 00
|
||||
|
||||
Room 070 : 40 02, 90 02, B0 02
|
||||
Room 073 : 00 32, 62 36, 61 1C, 82 00
|
||||
Room 074 : 60 18, 80 18, 10 1C, 70 00, 71 0A
|
||||
Room 075 : 00 18, 60 28, 80 28
|
||||
Room 076 : 83 18
|
||||
Room 077 : 00 1C, 22 00
|
||||
Room 078 : 62 18, 00 1C
|
||||
Room 079 : 22 1C
|
||||
|
||||
Room 080 : 93 46, B1 40
|
||||
Room 081 : 10 00, 10 14
|
||||
Room 082 : 32 46, 91 40, 71 00
|
||||
Room 083 : 60 36, 82 38, 20 1C
|
||||
Room 085 : 90 02, 61 00, 61 12
|
||||
Room 086 : 60 1C, 61 0A, 82 00, 83 00
|
||||
Room 087 : 62 2E, 60 36, 83 1C, 61 0A, 22 00, 81 00
|
||||
Room 088 : 00 30, 22 1C, 81 1C, 62 2E, 61 0A, 82 00
|
||||
Room 089 : 00 1C, 61 0A, 92 40, B2 40
|
||||
|
||||
Room 090 : 81 18
|
||||
Room 091 : 81 1C, 63 18
|
||||
Room 092 : 80 2E, 02 00
|
||||
Room 093 : 60 18, 61 18, 62 18
|
||||
Room 094 : 83 1C, 80 38, 81 00, 82 00
|
||||
Room 095 : 22 1C
|
||||
Room 096 : 50 40, A3 40, A3 16, 63 00, 81 00, 81 12
|
||||
Room 097 : 42 02, 42 16, A3 02, A3 16, A1 02, A1 12, 02 00
|
||||
Room 098 : 42 40, 42 16, 30 40, 10 00, 61 00, 61 12
|
||||
Room 099 : 20 60, 36 61, 0A
|
||||
|
||||
Room 100 : 82 38
|
||||
Room 101 : 82 00
|
||||
Room 102 : B0 08, 91 40, 91 16, 90 40
|
||||
Room 103 : 20 00, 82 00, 83 00
|
||||
Room 104 : 22 18, 20 1C
|
||||
Room 106 : 20 1E
|
||||
Room 107 : 20 1E, 80 36, 82 18, 60 18
|
||||
Room 108 : 82 38, 60 18, 83 00
|
||||
Room 109 : 00 18, 60 18, 22 18
|
||||
|
||||
Room 110 : 20 18
|
||||
Room 113 : 60 1C, 91 44, B2 44
|
||||
Room 114 : 70 1C
|
||||
Room 115 : 60 36, 82 38, 80 00
|
||||
Room 116 : 80 00, 60 00
|
||||
Room 117 : 60 38, 81 00
|
||||
Room 118 : 92 02, B2 02, 30 02, 30 16
|
||||
Room 119 : 30 26, A1 0C
|
||||
|
||||
Room 123 : 61 18, 63 1C, 83 00
|
||||
Room 124 : 20 30, 83 2E, 02 1C, 22 00
|
||||
Room 125 : 81 18, 22 2E, 60 1C
|
||||
Room 126 : 81 1C, 82 36, 63 00
|
||||
Room 127 : 02 18, 60 00
|
||||
Room 129 : 30 40
|
||||
|
||||
Room 131 : 60 36, 61 0A, 82 00
|
||||
Room 132 : 71 0A
|
||||
Room 134 : 20 18, 62 1C, 81 0A, 82 00
|
||||
Room 135 : 62 38, 80 00
|
||||
Room 139 : 62 36, 82 1C, 63 00, 61 00, 00 00
|
||||
|
||||
Room 140 : 63 18, 60 38, 62 1C, 02 00, 61 00, 81 00
|
||||
Room 141 : 81 18, 62 1C, 02 00, 20 00, 82 00
|
||||
Room 142 : 20 1C
|
||||
Room 144 : 61 18
|
||||
Room 145 : 83 00
|
||||
Room 146 : 62 2E, 60 2E, 22 00, 82 00, 83 00
|
||||
Room 147 : 60 38, 80 1C, 22 00
|
||||
Room 149 : 81 00, 63 00
|
||||
|
||||
Room 150 : 82 38, 02 00
|
||||
Room 151 : 82 00, 60 00
|
||||
Room 152 : 61 0A
|
||||
Room 153 : 60 20, 71 1C, 80 00
|
||||
Room 155 : 62 1C, 00 00, 83 00
|
||||
Room 156 : 83 18, 00 00, 20 00, 22 00
|
||||
Room 157 : 20 00, 22 00, 62 00
|
||||
Room 158 : 20 22, 80 1E, 82 00, 83 00
|
||||
Room 159 : 22 18, 61 18
|
||||
|
||||
Room 160 : 00 1E
|
||||
Room 161 : 81 1C, 73 00
|
||||
Room 162 : 71 1C, 12 00, 73 00, 81 00
|
||||
Room 163 : 12 00, 61 00
|
||||
Room 164 : 61 18
|
||||
Room 165 : 20 18, 80 38, 60 38
|
||||
Room 168 : 82 38, 60 36, 81 1C, 92 40, 93 40, 73 00
|
||||
Room 169 : 12 18, 73 18, 10 1E, 32 40, 93 40, 71 00
|
||||
|
||||
Room 170 : 80 38, 32 40, 62 00, 82 00, 12 00, 61 00
|
||||
Room 171 : 60 20, 61 00
|
||||
Room 172 : 81 18
|
||||
Room 174 : 63 00
|
||||
Room 175 : 00 00, 02 00
|
||||
Room 176 : 60 18, 62 18, 82 1C
|
||||
Room 177 : 60 1E, 20 1C, 81 00, 82 00
|
||||
Room 178 : 10 1E, 82 38, 80 36, 93 40, 20 00, 61 00, 81 00, 83 00
|
||||
Room 179 : 60 1C, 32 40, 00 00, 22 00, 61 00
|
||||
|
||||
Room 180 : 00 1E
|
||||
Room 181 : 61 18
|
||||
Room 182 : 00 22, 80 36, 61 1C, 60 1C, 81 00
|
||||
Room 183 : 61 00
|
||||
Room 184 : 20 1E, 63 00
|
||||
Room 185 : 63 1C, 10 00, 71 00, 02 00
|
||||
Room 186 : 02 1C, 00 18, 62 38
|
||||
Room 187 : 00 00, 62 00, 82 00, 80 00, 63 00, 83 00
|
||||
Room 188 : 82 1C, 81 1C, 62 18, 61 2E, 02 00, 22 00, 60 00, 20 00
|
||||
|
||||
Room 190 : 81 18, 83 1C, 80 00
|
||||
Room 191 : 22 1C
|
||||
Room 192 : 62 36, 82 38, 20 20
|
||||
Room 193 : 82 1C, 83 1C, 62 36, 60 36, 61 00, 63 00, 20 00, 81 00
|
||||
Room 194 : 63 1C, 22 1C, 00 00, 02 00, 73 00, 81 00, 83 00, 20 00
|
||||
Room 195 : 02 1C, 62 38, 72 38, 82 36, 00 00, 12 00, 22 00
|
||||
Room 196 : 83 1C
|
||||
Room 197 : 22 1C, 00 00, 61 00
|
||||
Room 198 : 00 1C, 20 00, 63 00, 83 00, 61 00, 81 00
|
||||
Room 199 : 00 18, 02 00, 22 00
|
||||
|
||||
Room 200 : 81 18
|
||||
Room 201 : 70 18, 10 18, 60 00, 80 00, 71 0A
|
||||
Room 203 : 73 28
|
||||
Room 204 : 20 1E, 00 2E, 12 28
|
||||
Room 206 : 20 18
|
||||
Room 208 : 82 1C, 62 38
|
||||
Room 209 : 82 38, 00 00, 20 00, 80 00
|
||||
|
||||
Room 210 : 20 18
|
||||
Room 213 : 61 2A, 00 00
|
||||
Room 215 : 00 1A, 81 0A, 20 00
|
||||
Room 216 : 20 18, 80 36, 83 00
|
||||
Room 217 : 22 18, 82 18, 83 18
|
||||
Room 218 : 22 18
|
||||
Room 219 : 73 18, 71 0A
|
||||
|
||||
Room 220 : 12 00
|
||||
Room 223 : 71 0E
|
||||
Room 224 : 62 38, 60 38, 20 20, 61 0A
|
||||
Room 225 : A2 40, 61 0E
|
||||
Room 226 : 72 00, 81 0E
|
||||
Room 227 : B2 4A, B0 40, 61 0E
|
||||
Room 228 : 91 10, 62 00, 73 00
|
||||
Room 229 : 12 00, 71 0E
|
||||
|
||||
Room 230 : 91 10, 93 02
|
||||
Room 231 : B1 10, 32 02
|
||||
Room 232 : 81 0E
|
||||
Room 233 :
|
||||
Room 234 : 61 0E
|
||||
Room 235 : 81 0E
|
||||
Room 236 :
|
||||
Room 237 : 81 0E
|
||||
Room 238 : 81 0E
|
||||
Room 239 : 80 38, 71 0E
|
||||
|
||||
Room 240 : 61 0E, A3 02
|
||||
Room 241 : B1 10, 42 02
|
||||
Room 242 : 83 00, 81 00, 81 12
|
||||
Room 243 : 22 00, 61 00, 61 12
|
||||
Room 244 : 83 28, 81 00, 81 12
|
||||
Room 245 : 22 28, 61 00, 61 12
|
||||
Room 248 : 71 0E
|
||||
Room 249 : 61 0E
|
||||
|
||||
Room 250 : 91 04
|
||||
Room 251 : 71 0E
|
||||
Room 253 : A1 10
|
||||
Room 254 : B1 10
|
||||
Room 255 : 60 2E, 80 2E, 81 0E
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
; Gfx uses $b1 to for sub-sub-sub-module thing
|
||||
|
||||
; Hooks into various routines
|
||||
incsrc drhooks.asm
|
||||
|
||||
org $02b5c4 ; -- moving right routine 135c4
|
||||
jsl WarpRight
|
||||
@@ -20,8 +21,6 @@ jsl WarpUp
|
||||
org $02bd80
|
||||
jsl AdjustTransition
|
||||
nop
|
||||
org $01b714
|
||||
jsl TrapDoorFixer
|
||||
|
||||
;turn off linking doors -- see .notRoomLinkDoor label in Bank02.asm
|
||||
org $02b5a6
|
||||
|
||||
@@ -1,3 +1,23 @@
|
||||
org $279700
|
||||
KeyDoorOffset:
|
||||
; 0 1 2 3 4 5 6 7 8 9 a b c d e f --Offset Ruler
|
||||
dw $0000,$0001,$0003,$0000,$0006,$0000,$000b,$0000,$0000,$0000,$000c,$000d,$0010,$0011,$0012,$0000
|
||||
dw $0000,$0015,$0018,$001c,$001e,$0025,$0027,$0000,$0000,$002b,$002d,$0033,$0035,$0038,$0039,$003d
|
||||
dw $003f,$0040,$0043,$0045,$0047,$0000,$004f,$0000,$0053,$0000,$0055,$005b,$0000,$0000,$005f,$0000
|
||||
dw $0060,$0062,$0064,$0065,$0066,$0068,$006e,$0074,$007a,$007c,$007e,$0081,$0000,$0082,$0086,$0088
|
||||
dw $0089,$008a,$0000,$008b,$008e,$0092,$0096,$0000,$0000,$0099,$009d,$00a2,$00a5,$00a6,$00a8,$00aa
|
||||
dw $00ab,$00ad,$00af,$00b2,$0000,$0000,$00b5,$00b9,$00bf,$00c5,$00c9,$00ca,$00cc,$00ce,$00d1,$00d5
|
||||
dw $00d6,$00dc,$00e3,$00e9,$00ec,$00ed,$00ee,$00f2,$00f5,$0000,$00f7,$00f8,$00fc,$00ff,$0102,$0000
|
||||
dw $0000,$0103,$0106,$0107,$010a,$010c,$010e,$0112,$0000,$0000,$0000,$0114,$0117,$011b,$011e,$0121
|
||||
dw $0000,$0123,$0000,$0124,$0127,$0128,$0000,$012c,$0000,$0000,$0000,$012e,$0133,$0139,$013e,$0000
|
||||
dw $013f,$0140,$0141,$0146,$0000,$0149,$014b,$014d,$014f,$0150,$0000,$0153,$0156,$015a,$015d,$0161
|
||||
dw $0163,$0164,$0166,$016a,$016c,$016d,$0000,$0000,$0170,$0176,$017c,$0182,$0184,$0000,$0185,$0186
|
||||
dw $0188,$018b,$018f,$0197,$019c,$019d,$019e,$01a3,$01a4,$01a6,$01aa,$01ad,$01b3,$0000,$01bb,$01be
|
||||
dw $01bf,$01c2,$01ca,$01d2,$01d9,$01da,$01dd,$01e3,$01e6,$01e7,$0000,$01ec,$01ed,$0000,$01f0,$0000
|
||||
dw $01f1,$01f3,$01f7,$0000,$0000,$01f8,$01fa,$0000,$01fd,$0200,$0203,$0204,$0206,$0000,$0000,$0000
|
||||
dw $0207
|
||||
|
||||
|
||||
org $279E00
|
||||
SpiralOffset:
|
||||
; 0 1 2 3 4 5 6 7 8 9 a b c d e f --Offset Ruler
|
||||
@@ -273,4 +293,198 @@ dw $0203, $8080, $0203, $8080, $0203, $8080 ;Tower Dark1 (2nd value unused)
|
||||
dw $0203, $8080 ;Mire BK Thang
|
||||
dw $0203, $8080 ;Mire2
|
||||
dw $0203, $8080 ;East Attic Start
|
||||
dw $0203, $8080 ;Tower Entrance
|
||||
dw $0203, $8080 ;Tower Entrance
|
||||
|
||||
|
||||
org $27C000 ;ends around 27C418
|
||||
PairedDoorTable:
|
||||
dw $0000 ; the bad template
|
||||
dw $0000,$0000
|
||||
dw $0000,$0000,$0000
|
||||
dw $0000,$0000,$0000,$0000,$0000
|
||||
dw $0000
|
||||
dw $0000
|
||||
dw $0000,$0000,$0000
|
||||
dw $0000
|
||||
dw $0000
|
||||
dw $0000,$0000,$0000
|
||||
|
||||
dw $0000,$0000,$8021
|
||||
dw $0000,$0000,$0000,$0000
|
||||
dw $4014,$0000
|
||||
dw $8024,$8013,$0000,$0000,$0000,$0000,$0000
|
||||
dw $0000,$0000
|
||||
dw $0000,$0000,$0000,$0000
|
||||
dw $201a,$401a
|
||||
dw $0000,$4019,$8019,$402a,$0000,$0000
|
||||
dw $0000,$0000
|
||||
dw $0000,$0000,$0000
|
||||
dw $0000
|
||||
dw $0000,$0000,$0000,$0000
|
||||
dw $0000,$0000
|
||||
|
||||
dw $0000
|
||||
dw $2011,$0000,$0000
|
||||
dw $8032,$0000
|
||||
dw $0000,$0000
|
||||
dw $8014,$0000,$0000,$0000,$0000,$0000,$0000,$0000
|
||||
dw $4036,$0000,$0000,$0000
|
||||
dw $0000,$0000
|
||||
dw $0000,$101a,$402b,$0000,$0000,$0000
|
||||
dw $0000,$202a,$0000,$0000
|
||||
dw $0000
|
||||
|
||||
dw $0000,$0000
|
||||
dw $0000,$0000
|
||||
dw $8022
|
||||
dw $0000
|
||||
dw $0000,$0000
|
||||
dw $2036,$0000,$0000,$0000,$0000,$0000
|
||||
dw $8037,$8026,$8035,$0000,$0000,$0000
|
||||
dw $8036,$8038,$0000,$4038,$0000,$0000
|
||||
dw $4037,$1037
|
||||
dw $0000,$0000
|
||||
dw $204a,$0000,$0000
|
||||
dw $0000
|
||||
dw $0000,$0000,$804d,$0000
|
||||
dw $0000,$404e
|
||||
dw $0000
|
||||
|
||||
dw $0000
|
||||
dw $0000
|
||||
dw $0000,$0000,$2053
|
||||
dw $0000,$0000,$0000,$0000
|
||||
dw $0000,$0000,$0000,$0000
|
||||
dw $0000,$0000,$0000
|
||||
dw $0000,$0000,$8059,$0000
|
||||
dw $0000,$0000,$803a,$0000,$0000
|
||||
dw $0000,$0000,$0000
|
||||
dw $0000
|
||||
dw $203d,$0000
|
||||
dw $0000,$403e
|
||||
dw $0000 ; this is the odd extra room - shouldn't be used
|
||||
|
||||
dw $0000,$0000
|
||||
dw $0000,$0000
|
||||
dw $0000,$0000,$0000
|
||||
dw $0000,$0000,$2053
|
||||
dw $0000,$0000,$0000,$0000
|
||||
dw $0000,$0000,$4058,$0000,$0000,$0000
|
||||
dw $0000,$2057,$4068,$0000,$0000,$0000
|
||||
dw $2049,$0000,$0000,$0000
|
||||
dw $0000
|
||||
dw $806b,$0000
|
||||
dw $0000,$0000
|
||||
dw $0000,$0000,$0000
|
||||
dw $805f,$0000,$0000,$0000
|
||||
dw $805e
|
||||
|
||||
dw $0000,$0000,$0000,$0000,$0000,$0000
|
||||
dw $0000,$0000,$0000,$0000,$0000,$0000,$0000
|
||||
dw $0000,$0000,$0000,$0000,$0000,$0000
|
||||
dw $0000,$0000,$0000
|
||||
dw $0000
|
||||
dw $0000
|
||||
dw $0000,$0000,$0000,$0000
|
||||
dw $0000,$0000,$0000
|
||||
dw $0000,$2058
|
||||
dw $0000
|
||||
dw $805b,$0000,$0000,$0000
|
||||
dw $0000,$0000,$0000
|
||||
dw $0000,$0000,$0000
|
||||
dw $0000
|
||||
|
||||
dw $0000,$0000,$0000
|
||||
dw $0000
|
||||
dw $0000,$0000,$0000
|
||||
dw $0000,$0000
|
||||
dw $0000,$0000
|
||||
dw $0000,$0000,$0000,$0000
|
||||
dw $0000,$0000
|
||||
dw $0000,$207c,$0000
|
||||
dw $0000,$407d,$407b,$0000
|
||||
dw $0000,$407c,$0000
|
||||
dw $808e,$0000,$0000
|
||||
dw $0000,$0000
|
||||
|
||||
dw $0000
|
||||
dw $0000,$0000,$0000
|
||||
dw $0000
|
||||
dw $0000,$0000,$0000,$0000
|
||||
dw $0000,$0000
|
||||
dw $0000,$0000,$0000,$0000,$0000
|
||||
dw $0000,$0000,$0000,$0000,$0000,$0000
|
||||
dw $0000,$0000,$0000,$0000,$0000
|
||||
dw $807e
|
||||
|
||||
dw $0000
|
||||
dw $0000
|
||||
dw $0000,$0000,$0000,$0000,$0000
|
||||
dw $0000,$0000,$0000
|
||||
dw $0000,$0000
|
||||
dw $0000,$0000
|
||||
dw $0000,$0000
|
||||
dw $0000
|
||||
dw $0000,$20a9,$0000
|
||||
dw $0000,$0000,$0000
|
||||
dw $0000,$0000,$0000,$0000
|
||||
dw $0000,$0000,$0000
|
||||
dw $0000,$0000,$0000,$0000
|
||||
dw $0000,$0000
|
||||
|
||||
dw $0000
|
||||
dw $40b1,$0000
|
||||
dw $80b2,$0000,$0000,$0000
|
||||
dw $0000,$0000
|
||||
dw $0000
|
||||
dw $0000,$0000,$0000
|
||||
dw $0000,$0000,$80b8,$0000,$0000,$0000
|
||||
dw $0000,$0000,$4099,$0000,$0000,$0000
|
||||
dw $0000,$0000,$0000,$0000,$0000,$0000
|
||||
dw $0000,$0000
|
||||
dw $0000
|
||||
dw $0000
|
||||
dw $0000,$0000
|
||||
|
||||
dw $0000,$0000,$0000
|
||||
dw $0000,$80a1,$0000,$0000
|
||||
dw $80a2,$0000,$0000,$0000,$0000,$0000,$0000,$0000
|
||||
dw $0000,$0000,$0000,$0000,$0000
|
||||
dw $0000
|
||||
dw $0000
|
||||
dw $0000,$0000,$80c6,$0000,$0000
|
||||
dw $0000
|
||||
dw $20a8,$0000
|
||||
dw $80ba,$0000,$0000,$0000
|
||||
dw $80b9,$0000,$0000
|
||||
dw $0000,$0000,$0000,$0000,$0000,$0000
|
||||
dw $0000,$80cc,$0000,$40cc,$0000,$0000,$0000,$0000
|
||||
dw $0000,$80bf,$0000
|
||||
dw $40be
|
||||
|
||||
dw $0000,$0000,$0000
|
||||
dw $0000,$40c2,$0000,$0000,$0000,$0000,$0000,$0000
|
||||
dw $80c3,$40c1,$0000,$0000,$0000,$0000,$0000,$0000
|
||||
dw $80c2,$0000,$0000,$0000,$0000,$0000,$0000
|
||||
dw $80c5
|
||||
dw $80c4,$0000,$0000
|
||||
dw $20b6,$0000,$0000,$0000,$0000,$0000
|
||||
dw $0000,$0000,$0000
|
||||
dw $0000
|
||||
dw $0000,$0000,$0000,$0000,$0000
|
||||
dw $20cc
|
||||
dw $40bc,$10bc,$80cb
|
||||
dw $0000
|
||||
|
||||
dw $0000,$0000
|
||||
dw $0000,$0000,$0000,$0000
|
||||
dw $0000
|
||||
dw $0000,$0000
|
||||
dw $0000,$0000,$0000
|
||||
dw $0000,$0000,$0000
|
||||
dw $0000,$0000,$0000
|
||||
dw $0000
|
||||
dw $0000,$0000
|
||||
dw $0000
|
||||
dw $0000,$0000,$0000,$0000
|
||||
dw $ffff ; indicates the end - we can drop this
|
||||
7
asm/drhooks.asm
Normal file
7
asm/drhooks.asm
Normal file
@@ -0,0 +1,7 @@
|
||||
|
||||
org $01b714 ; PC: b714
|
||||
OpenableDoors:
|
||||
jsl CheckIfDoorsOpen
|
||||
bcs .normal
|
||||
rts
|
||||
.normal
|
||||
@@ -15,3 +15,43 @@ dw $3882, $3660, $1e81
|
||||
org $1fd974 ;(PC: 0fd974) TT Bossway 0xbc
|
||||
dw $1c82, $0081
|
||||
|
||||
; code to un-pair or re-pair doors
|
||||
|
||||
; doorlist is loaded into 19A0 but no terminator
|
||||
; new room is in A0
|
||||
; for "each" door do the following: (each could mean the first four doors?)
|
||||
; in lookup table, grab room and corresponding position
|
||||
; find the info at 7ef000, x where x is twice the paired room
|
||||
; check the corresponding bit (there are only 4)
|
||||
; set the bit in 068C
|
||||
|
||||
; Note the carry bit is used to indicate if we should aborted (set) or not
|
||||
CheckIfDoorsOpen: {
|
||||
jsr TrapDoorFixer ; see normal.asm
|
||||
; note we are 16bit mode right now
|
||||
lda $040c : cmp #$00ff ;: bne .gtg
|
||||
lda $a0 : dec : tax : and #$000f ; hijacked code
|
||||
sec : rtl ; set carry to indicate normal behavior
|
||||
|
||||
.gtg
|
||||
phb : phk : plb
|
||||
stx $00 : ldy #$00 : stz $03
|
||||
.nextDoor
|
||||
lda $a0 : asl : tax
|
||||
lda KeyDoorOffset, x : beq .skipDoor
|
||||
asl : sty $05 : !add $05 : tax
|
||||
lda PairedDoorTable, x : beq .skipDoor
|
||||
sta $02 : and #$00ff : asl a : tax
|
||||
lda $7ef000, x : and #$f000 : and $03 : beq .skipDoor
|
||||
tyx : lda $068c : ora $0098c0,x : sta $068c
|
||||
.skipDoor
|
||||
iny #2 : cpy $00 : bne .nextDoor
|
||||
plb : clc : rtl
|
||||
}
|
||||
|
||||
; outstanding issues
|
||||
; how to indicate opening for other (non-first four doors?)
|
||||
; Bank01 Door Register stores the 4 bits in 068c to 400 (depending on type)
|
||||
; Key collision and others depend on F0-F3 attribute not sure if extendable to other numbers
|
||||
; Dungeon_ProcessTorchAndDoorInteractives.isOpenableDoor is the likely culprit fo collision problems
|
||||
; Saving open status to other unused rooms is tricky -- Bank 2 13947 (line 8888)
|
||||
@@ -44,8 +44,7 @@ TrapDoorFixer:
|
||||
stz $0468 : lda $068c : ora $00 : sta $068c
|
||||
.end
|
||||
stz $ab ; clear our ab here because we don't need it anymore
|
||||
lda $a0 : dec : tax
|
||||
rtl
|
||||
rts
|
||||
|
||||
Cleanup:
|
||||
inc $11
|
||||
|
||||
@@ -13,7 +13,7 @@ SpiralWarp: {
|
||||
lda $045e : cmp #$5e : beq .gtg ; abort if not spiral - intended room is in A!
|
||||
cmp #$5f : beq .gtg
|
||||
.abort
|
||||
stz $045e :lda $a2 : and #$0f : rtl ; clear,run highjack code and get out
|
||||
stz $045e : lda $a2 : and #$0f : rtl ; clear,run highjack code and get out
|
||||
|
||||
.gtg
|
||||
phb : phk : plb : phx : phy ; push stuff
|
||||
@@ -61,7 +61,7 @@ SpiralWarp: {
|
||||
lda $01 : and #$20 : sta $07 ; zeroVtCam check
|
||||
ldy #$01 : jsr SetCamera
|
||||
|
||||
stz $045e
|
||||
stz $045e ; clear the staircase flag
|
||||
ply : plx : plb ; pull the stuff we pushed
|
||||
lda $a2 : and #$0f ; this is the code we are hijacking
|
||||
rtl
|
||||
@@ -103,7 +103,7 @@ LookupSpiralOffset: {
|
||||
|
||||
.done
|
||||
lda $a2 : tax : lda SpiralOffset,x
|
||||
!add $01 ;add a thing (0 in .easy)
|
||||
!add $01 ;add a thing (0 in easy case)
|
||||
rts
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user