1495 lines
30 KiB
NASM
1495 lines
30 KiB
NASM
;===================================================================================================
|
|
|
|
OWWriteSize = $00
|
|
OWWriteIncrement = $02
|
|
OWWriteTile = $06
|
|
OWWriteCommand = $08
|
|
|
|
OWSkipLookup = $00
|
|
OWSkipFlags = $03
|
|
|
|
;---------------------------------------------------------------------------------------------------
|
|
|
|
function OWW_RLESize(s) = s<<8
|
|
|
|
!OWW_STOP = $8000
|
|
!OWW_END = $FFFF
|
|
|
|
!OWW_SKIP = $FFFF
|
|
|
|
!OWW_Vertical = $0080
|
|
!OWW_Horizontal = $0000
|
|
|
|
;===================================================================================================
|
|
|
|
Overworld_LoadNewTiles:
|
|
JSL Overworld_LoadBonkTiles
|
|
|
|
LDA.b OverworldIndex
|
|
CMP.w #$0080
|
|
BCS .exit
|
|
|
|
ASL
|
|
TAX
|
|
|
|
LDA.l OverworldMapChangePointers2,X
|
|
BNE .do_overlay
|
|
|
|
.exit
|
|
LDX.w #$001E
|
|
LDA.w #$0DBE
|
|
|
|
RTL
|
|
|
|
.end
|
|
PLB
|
|
BRA .exit
|
|
|
|
.do_overlay
|
|
PHB
|
|
PHK
|
|
PLB
|
|
|
|
; give Y the pointer to our data
|
|
TAY
|
|
|
|
.next_tile
|
|
; format:
|
|
; dw <tile>, <pos>
|
|
; or if bit 15 is set
|
|
; dw <command>, <params>...
|
|
; commands are:
|
|
; 1sss ssss dccc cccc
|
|
; s - size (if applicable)
|
|
; d - direction (if applicable)
|
|
; c - command id
|
|
; FFFF is end
|
|
LDA.w $0000,Y
|
|
INY
|
|
INY
|
|
TAX
|
|
BMI .command
|
|
|
|
LDX.w $0000,Y
|
|
STA.l $7E0000,X
|
|
|
|
INY
|
|
INY
|
|
|
|
BRA .next_tile
|
|
|
|
; when using commands, list parameters will never have bit-15 set
|
|
; so we use that as our sentinel in data lists
|
|
; we could encode the size for everything
|
|
; but that makes adjustments more burdensome
|
|
.command
|
|
CMP.w #!OWW_END
|
|
BEQ .end
|
|
|
|
STA.b OWWriteCommand
|
|
|
|
AND.w #$007F
|
|
ASL
|
|
TAX
|
|
|
|
JSR (.command_vectors,X)
|
|
|
|
BRA .next_tile
|
|
|
|
.command_vectors
|
|
; dw !OWW_Stripe|!OWW_<direction>
|
|
; dw <start>
|
|
; dw <tile1>, <tile2>, ... <tileN>|!OWW_STOP
|
|
; use !SKIP to not place a tile but continue the stripe
|
|
!OWW_Stripe = $8000
|
|
dw .stripe ; 00
|
|
|
|
; dw !OWW_StripeRLE|!OWW_<direction>|RLESize(<size>)
|
|
; dw <tile>, <start>
|
|
!OWW_StripeRLE = $8001
|
|
dw .stripe_rle ; 01
|
|
|
|
; dw !OWW_StripeRLEINC|!OWW_<direction>|RLESize(<size>)
|
|
; dw <tile>, <start>
|
|
!OWW_StripeRLEINC = $8002
|
|
dw .stripe_rle_inc ; 02
|
|
|
|
; dw !OWW_ArbTileCopy
|
|
; dw <tile>
|
|
; dw <pos1>, <pos2>, ... <posN>|!OWW_STOP
|
|
!OWW_ArbTileCopy = $8003
|
|
dw .arbitrary_tile_copy ; 03
|
|
|
|
dw .nothing ; 04
|
|
dw .nothing ; 05
|
|
dw .nothing ; 06
|
|
dw .nothing ; 07
|
|
dw .nothing ; 08
|
|
dw .nothing ; 09
|
|
|
|
; dw !OWW_SkipAhead, <address>
|
|
; skips to <address> unconditionally
|
|
!OWW_SkipAhead = $800A
|
|
dw .skip_ahead ; 0A
|
|
|
|
; dw !OWW_SkipIfFlagSet, <lookup>, <bitflags>, <address>
|
|
; skips to <address> when value at <lookup> has bits matching <bitflags>
|
|
!OWW_SkipIfFlagSet = $800B
|
|
dw .flag_skip ; 0B
|
|
|
|
; dw !OWW_SkipIfNotFlagSet, <lookup>, <bitflags>, <address>
|
|
; skips to <address> when value at <lookup> has bits not matching <bitflags>
|
|
!OWW_SkipIfNotFlagSet = $800C
|
|
dw .flag_block ; 0C
|
|
|
|
; dw !OWW_SkipIfInverted, <address>
|
|
; skips to <address> when inverted mode
|
|
!OWW_SkipIfInverted = $800D
|
|
dw .inverted_skip ; 0D
|
|
|
|
; dw !OWW_SkipIfNotInverted, <address>
|
|
; skips to <address> when not inverted
|
|
!OWW_SkipIfNotInverted = $800E
|
|
dw .inverted_block ; 0E
|
|
|
|
; dw !OWW_InvertedOnly
|
|
; cancels everything if not inverted
|
|
!OWW_InvertedOnly = $800F
|
|
dw .inverted_only ; 0F
|
|
|
|
; dw !OWW_CustomCommand, <vector>
|
|
!OWW_CustomCommand = $8010
|
|
dw .custom_command ; 10
|
|
|
|
dw .nothing ; 11
|
|
dw .nothing ; 12
|
|
dw .nothing ; 13
|
|
dw .nothing ; 14
|
|
dw .nothing ; 15
|
|
dw .nothing ; 16
|
|
dw .nothing ; 17
|
|
dw .nothing ; 18
|
|
dw .nothing ; 19
|
|
|
|
;---------------------------------------------------------------------------------------------------
|
|
|
|
.custom_command
|
|
TYX
|
|
|
|
INY
|
|
INY
|
|
|
|
JMP.w ($0000,X)
|
|
|
|
;---------------------------------------------------------------------------------------------------
|
|
|
|
.skip_ahead
|
|
LDX.w $0000,Y
|
|
INY : INY
|
|
|
|
TXY
|
|
|
|
RTS
|
|
|
|
;---------------------------------------------------------------------------------------------------
|
|
|
|
.flag_skip
|
|
LDX.w $0000,Y : STX.b OWSkipLookup
|
|
INY : INY
|
|
LDX.w $0000,Y : STX.b OWSkipFlags-1
|
|
INY : INY
|
|
LDX.w $0000,Y
|
|
INY : INY
|
|
|
|
SEP #$20
|
|
LDA.b [OWSkipLookup]
|
|
AND.b OWSkipFlags
|
|
CMP.b OWSkipFlags
|
|
REP #$20
|
|
BNE .nothing
|
|
|
|
TXY
|
|
|
|
RTS
|
|
|
|
;---------------------------------------------------------------------------------------------------
|
|
|
|
.flag_block
|
|
LDX.w $0000,Y : STX.b OWSkipLookup
|
|
INY : INY
|
|
LDX.w $0000,Y : STX.b OWSkipFlags-1
|
|
INY : INY
|
|
LDX.w $0000,Y
|
|
INY : INY
|
|
|
|
SEP #$20
|
|
LDA.b [OWSkipLookup]
|
|
AND.b OWSkipFlags
|
|
CMP.b OWSkipFlags
|
|
REP #$20
|
|
BEQ .nothing
|
|
|
|
TXY
|
|
|
|
RTS
|
|
|
|
;---------------------------------------------------------------------------------------------------
|
|
|
|
.inverted_skip
|
|
LDX.w $0000,Y
|
|
|
|
INY
|
|
INY
|
|
|
|
PHX
|
|
SEP #$20
|
|
LDX.b OverworldIndex : LDA.l OWTileMapAlt, X
|
|
REP #$20
|
|
PLX
|
|
AND.w #$0001
|
|
BEQ .nothing
|
|
|
|
TXY
|
|
|
|
.nothing
|
|
RTS
|
|
|
|
;---------------------------------------------------------------------------------------------------
|
|
|
|
.inverted_block
|
|
LDX.w $0000,Y
|
|
INY
|
|
INY
|
|
BRA .check_inverted
|
|
|
|
#ReliableOWWSentinel:
|
|
dw !OWW_END
|
|
|
|
.inverted_only
|
|
LDX.w #ReliableOWWSentinel
|
|
|
|
.check_inverted
|
|
PHX
|
|
SEP #$20
|
|
LDX.b OverworldIndex : LDA.l OWTileMapAlt, X
|
|
REP #$20
|
|
PLX
|
|
AND.w #$0001
|
|
BNE .nothing
|
|
|
|
TXY
|
|
|
|
RTS
|
|
|
|
;---------------------------------------------------------------------------------------------------
|
|
|
|
.get_increment
|
|
LDA.b OWWriteCommand
|
|
AND.w #$0080
|
|
BNE .vertical_increment
|
|
|
|
LDA.w #$0002
|
|
|
|
.vertical_increment
|
|
STA.b OWWriteIncrement
|
|
|
|
RTS
|
|
|
|
;---------------------------------------------------------------------------------------------------
|
|
|
|
.stripe
|
|
JSR .get_increment
|
|
|
|
LDX.w $0000,Y
|
|
|
|
BRA ++ ; to increment at start of loop properly
|
|
|
|
-- TXA
|
|
CLC
|
|
ADC.b OWWriteIncrement
|
|
TAX
|
|
|
|
++ INY
|
|
INY
|
|
|
|
LDA.w $0000,Y
|
|
BMI .end_stripe_maybe
|
|
|
|
STA.l $7E0000,X
|
|
BRA --
|
|
|
|
.end_stripe_maybe
|
|
CMP.w #!OWW_SKIP ; just skip, so we can have fewer discontinuous commands
|
|
BEQ --
|
|
|
|
AND.w #$7FFF
|
|
STA.l $7E0000,X
|
|
|
|
INY
|
|
INY
|
|
|
|
RTS
|
|
|
|
;---------------------------------------------------------------------------------------------------
|
|
|
|
.stripe_rle_inc
|
|
JSR .get_increment
|
|
JSR .get_rle_size_and_tile
|
|
|
|
LDX.w $0000,Y
|
|
BRA ++
|
|
|
|
-- TXA
|
|
CLC
|
|
ADC.b OWWriteIncrement
|
|
TAX
|
|
|
|
LDA.b OWWriteTile
|
|
INC
|
|
STA.b OWWriteTile
|
|
|
|
++ STA.l $7E0000,X
|
|
|
|
DEC.b OWWriteSize
|
|
BNE --
|
|
|
|
INY
|
|
INY
|
|
|
|
RTS
|
|
|
|
;---------------------------------------------------------------------------------------------------
|
|
|
|
.get_rle_size_and_tile
|
|
LDA.b OWWriteCommand+1
|
|
AND.w #$007F
|
|
STA.b OWWriteSize
|
|
|
|
LDA.w $0000,Y
|
|
STA.b OWWriteTile
|
|
|
|
INY
|
|
INY
|
|
|
|
RTS
|
|
|
|
;---------------------------------------------------------------------------------------------------
|
|
|
|
.stripe_rle
|
|
JSR .get_increment
|
|
JSR .get_rle_size_and_tile
|
|
|
|
LDX.w $0000,Y
|
|
BRA ++
|
|
|
|
-- TXA
|
|
CLC
|
|
ADC.b OWWriteIncrement
|
|
TAX
|
|
|
|
LDA.b OWWriteTile
|
|
|
|
++ STA.l $7E0000,X
|
|
|
|
DEC.b OWWriteSize
|
|
BNE --
|
|
|
|
INY
|
|
INY
|
|
|
|
RTS
|
|
|
|
;---------------------------------------------------------------------------------------------------
|
|
; Don't use SKIP with this, since that's not really meaningful anyways...
|
|
;---------------------------------------------------------------------------------------------------
|
|
.arbitrary_tile_copy
|
|
LDA.w $0000,Y
|
|
|
|
-- INY
|
|
INY
|
|
|
|
LDX.w $0000,Y
|
|
BMI .last_arb
|
|
|
|
STA.l $7E0000,X
|
|
BRA --
|
|
|
|
.last_arb
|
|
PHA
|
|
|
|
TXA
|
|
AND.w #$7FFF
|
|
TAX
|
|
|
|
PLA
|
|
|
|
STA.l $7E0000,X
|
|
|
|
INY
|
|
INY
|
|
|
|
RTS
|
|
|
|
;---------------------------------------------------------------------------------------------------
|
|
|
|
;===================================================================================================
|
|
|
|
OverworldMapChangePointers:
|
|
; light world
|
|
dw $0000 ; 00
|
|
dw $0000 ; 01
|
|
dw $0000 ; 02
|
|
dw .map03 ; 03
|
|
dw $0000 ; 04
|
|
dw .map05 ; 05
|
|
dw $0000 ; 06
|
|
dw .map07 ; 07
|
|
dw $0000 ; 08
|
|
dw $0000 ; 09
|
|
dw $0000 ; 0A
|
|
dw $0000 ; 0B
|
|
dw $0000 ; 0C
|
|
dw $0000 ; 0D
|
|
dw $0000 ; 0E
|
|
dw $0000 ; 0F
|
|
dw .map10 ; 10
|
|
dw $0000 ; 11
|
|
dw $0000 ; 12
|
|
dw $0000 ; 13
|
|
dw .map14 ; 14
|
|
dw $0000 ; 15
|
|
dw $0000 ; 16
|
|
dw $0000 ; 17
|
|
dw $0000 ; 18
|
|
dw $0000 ; 19
|
|
dw $0000 ; 1A
|
|
dw .map1B ; 1B
|
|
dw $0000 ; 1C
|
|
dw $0000 ; 1D
|
|
dw $0000 ; 1E
|
|
dw $0000 ; 1F
|
|
dw $0000 ; 20
|
|
dw $0000 ; 21
|
|
dw $0000 ; 22
|
|
dw $0000 ; 23
|
|
dw $0000 ; 24
|
|
dw $0000 ; 25
|
|
dw $0000 ; 26
|
|
dw $0000 ; 27
|
|
dw $0000 ; 28
|
|
dw .map29 ; 29
|
|
dw $0000 ; 2A
|
|
dw $0000 ; 2B
|
|
dw $0000 ; 2C
|
|
dw $0000 ; 2D
|
|
dw $0000 ; 2E
|
|
dw $0000 ; 2F
|
|
dw .map30 ; 30
|
|
dw $0000 ; 31
|
|
dw .map32 ; 32
|
|
dw .map33 ; 33
|
|
dw $0000 ; 34
|
|
dw .map35 ; 35
|
|
dw $0000 ; 36
|
|
dw $0000 ; 37
|
|
dw $0000 ; 38
|
|
dw $0000 ; 39
|
|
dw .map3A ; 3A
|
|
dw $0000 ; 3B
|
|
dw $0000 ; 3C
|
|
dw $0000 ; 3D
|
|
dw $0000 ; 3E
|
|
dw $0000 ; 3F
|
|
|
|
; dark world
|
|
dw $0000 ; 40
|
|
dw $0000 ; 41
|
|
dw $0000 ; 42
|
|
dw .map43 ; 43
|
|
dw $0000 ; 44
|
|
dw .map45 ; 45
|
|
dw $0000 ; 46
|
|
dw .map47 ; 47
|
|
dw $0000 ; 48
|
|
dw $0000 ; 49
|
|
dw $0000 ; 4A
|
|
dw $0000 ; 4B
|
|
dw $0000 ; 4C
|
|
dw $0000 ; 4D
|
|
dw $0000 ; 4E
|
|
dw $0000 ; 4F
|
|
dw .map50 ; 50
|
|
dw $0000 ; 51
|
|
dw $0000 ; 52
|
|
dw $0000 ; 53
|
|
dw .map54 ; 54
|
|
dw $0000 ; 55
|
|
dw $0000 ; 56
|
|
dw $0000 ; 57
|
|
dw $0000 ; 58
|
|
dw $0000 ; 59
|
|
dw $0000 ; 5A
|
|
dw .map5B ; 5B
|
|
dw $0000 ; 5C
|
|
dw $0000 ; 5D
|
|
dw $0000 ; 5E
|
|
dw $0000 ; 5F
|
|
dw $0000 ; 60
|
|
dw $0000 ; 61
|
|
dw $0000 ; 62
|
|
dw $0000 ; 63
|
|
dw $0000 ; 64
|
|
dw $0000 ; 65
|
|
dw $0000 ; 66
|
|
dw $0000 ; 67
|
|
dw $0000 ; 68
|
|
dw $0000 ; 69
|
|
dw $0000 ; 6A
|
|
dw $0000 ; 6B
|
|
dw $0000 ; 6C
|
|
dw $0000 ; 6D
|
|
dw $0000 ; 6E
|
|
dw .map6F ; 6F
|
|
dw .map70 ; 70
|
|
dw $0000 ; 71
|
|
dw $0000 ; 72
|
|
dw .map73 ; 73
|
|
dw $0000 ; 74
|
|
dw .map75 ; 75
|
|
dw $0000 ; 76
|
|
dw $0000 ; 77
|
|
dw $0000 ; 78
|
|
dw $0000 ; 79
|
|
dw $0000 ; 7A
|
|
dw $0000 ; 7B
|
|
dw $0000 ; 7C
|
|
dw $0000 ; 7D
|
|
dw $0000 ; 7E
|
|
dw $0000 ; 7F
|
|
|
|
;---------------------------------------------------------------------------------------------------
|
|
|
|
.map03
|
|
dw !OWW_InvertedOnly
|
|
|
|
; singles
|
|
dw $0034, $2BE0
|
|
|
|
dw !OWW_Stripe|!OWW_Horizontal
|
|
dw $29B6 ; address
|
|
dw $021A, $01F3, $00A0, $0104|!OWW_STOP
|
|
|
|
dw !OWW_ArbTileCopy
|
|
dw $00C6 ; tile
|
|
dw $2A34, $2A38, $2A3A|!OWW_STOP
|
|
|
|
dw !OWW_END
|
|
|
|
;---------------------------------------------------------------------------------------------------
|
|
|
|
.map05
|
|
dw $0101, $2E18 ; OWG sign
|
|
|
|
dw !OWW_InvertedOnly
|
|
|
|
; singles
|
|
dw $0034, $21F2
|
|
dw $0034, $3D4A
|
|
dw $0116, $216E
|
|
dw $0126, $21F4
|
|
|
|
dw $0139, $2C6C
|
|
dw $014B, $2C6E
|
|
dw $016B, $29F0
|
|
dw $016B, $2CEC
|
|
dw $0182, $29F2
|
|
dw $0182, $2CEE
|
|
|
|
dw !OWW_Stripe|!OWW_Horizontal
|
|
dw $206E ; address
|
|
dw $0112, $0113, $0113, $0112|!OWW_STOP
|
|
|
|
dw !OWW_StripeRLEINC|!OWW_Horizontal|OWW_RLESize(2)
|
|
dw $0111, $20EC ; tile, start
|
|
|
|
dw !OWW_StripeRLEINC|!OWW_Horizontal|OWW_RLESize(3)
|
|
dw $0116, $20F0 ; tile, start
|
|
|
|
dw !OWW_Stripe|!OWW_Horizontal
|
|
dw $216C ; address
|
|
dw $0112, $0116, $011C, $011D, $011E|!OWW_STOP
|
|
|
|
dw !OWW_StripeRLEINC|!OWW_Horizontal|OWW_RLESize(3)
|
|
dw $011C, $2170 ; tile, start
|
|
|
|
dw !OWW_StripeRLEINC|!OWW_Horizontal|OWW_RLESize(2)
|
|
dw $0123, $21EC ; tile, start
|
|
|
|
dw !OWW_StripeRLEINC|!OWW_Horizontal|OWW_RLESize(4)
|
|
dw $0144, $2364 ; tile, start
|
|
|
|
dw !OWW_StripeRLEINC|!OWW_Horizontal|OWW_RLESize(2)
|
|
dw $01B3, $236C ; tile, start
|
|
|
|
dw !OWW_Stripe|!OWW_Horizontal
|
|
dw $2970 ; address
|
|
dw $0139, $014B|!OWW_STOP
|
|
|
|
dw !OWW_ArbTileCopy
|
|
dw $0130 ; tile
|
|
dw $21E2, $21F0, $22E2, $22F0|!OWW_STOP
|
|
|
|
dw !OWW_ArbTileCopy
|
|
dw $0135 ; tile
|
|
dw $2262, $2270, $2362, $2370|!OWW_STOP
|
|
|
|
dw !OWW_ArbTileCopy
|
|
dw $0136 ; tile
|
|
dw $2264, $2266, $226C, $226E|!OWW_STOP
|
|
|
|
dw !OWW_ArbTileCopy
|
|
dw $0137 ; tile
|
|
dw $2268, $226A|!OWW_STOP
|
|
|
|
dw !OWW_Stripe|!OWW_Horizontal
|
|
dw $22E4 ; start
|
|
dw $013C, $013C, $013D, $013D, $013C, $013C|!OWW_STOP
|
|
|
|
dw !OWW_END
|
|
|
|
;---------------------------------------------------------------------------------------------------
|
|
|
|
.map07
|
|
dw !OWW_InvertedOnly
|
|
|
|
; singles
|
|
dw $0134, $269E
|
|
dw $0134, $26A4
|
|
dw $0034, $2826
|
|
|
|
dw !OWW_ArbTileCopy
|
|
dw $021B ; tile
|
|
dw $259E, $25A2, $25A4, $261C
|
|
dw $2626, $269A, $26A8, $271A
|
|
dw $2728, $279A, $27A8, $281E
|
|
dw $2820, $2822, $2824, $2828
|
|
dw $289C, $28A6, $291E, $2924|!OWW_STOP
|
|
|
|
dw !OWW_END
|
|
|
|
;---------------------------------------------------------------------------------------------------
|
|
|
|
.map10
|
|
dw !OWW_InvertedOnly
|
|
|
|
dw $0034, $2B2E
|
|
|
|
dw !OWW_END
|
|
|
|
;---------------------------------------------------------------------------------------------------
|
|
|
|
.map14
|
|
dw !OWW_InvertedOnly
|
|
|
|
dw !OWW_Stripe|!OWW_Vertical
|
|
dw $2422
|
|
dw $02F1, $0184, $0184|!OWW_STOP
|
|
|
|
dw !OWW_Stripe|!OWW_Vertical
|
|
dw $2424
|
|
dw $02F2, $0185, $0185|!OWW_STOP
|
|
|
|
dw !OWW_END
|
|
|
|
;===================================================================================================
|
|
|
|
.map1B
|
|
dw !OWW_InvertedOnly
|
|
|
|
; singles
|
|
dw $0476, $2522
|
|
dw $04D7, $2528
|
|
|
|
dw !OWW_Stripe|!OWW_Vertical
|
|
dw $2424 ; address
|
|
dw $0485, $0454, $0460, !OWW_SKIP
|
|
dw $04DD, $04E0, $04E4, $0034|!OWW_STOP
|
|
|
|
dw !OWW_Stripe|!OWW_Vertical
|
|
dw $2426 ; address
|
|
dw $0485, $0454, $0460, !OWW_SKIP
|
|
dw $04DE, $04E1, $04E5, $0034|!OWW_STOP
|
|
|
|
|
|
; Eye removed
|
|
dw !OWW_ArbTileCopy
|
|
dw $046D ; tile
|
|
dw $243E, $24BC, $24BE, $253E
|
|
dw $2440, $24C0, $24C2, $2540|!OWW_STOP
|
|
|
|
; new trees
|
|
|
|
dw !OWW_Stripe|!OWW_Horizontal
|
|
dw $2D2C ; address
|
|
dw $00B0, $0014, $0015, $00A8
|
|
dw $04BB, $0034|!OWW_STOP
|
|
|
|
dw !OWW_Stripe|!OWW_Horizontal
|
|
dw $2DAC ; address
|
|
dw $0089, $001C, $001D, $0076
|
|
dw $04BA, $0034|!OWW_STOP
|
|
|
|
dw !OWW_Stripe|!OWW_Horizontal
|
|
dw $2E2C ; address
|
|
dw $00F1, $004E, $004F, $00D9
|
|
dw $04BB|!OWW_STOP
|
|
|
|
dw !OWW_ArbTileCopy
|
|
dw $0034 ; tile
|
|
dw $28AC, $28AE
|
|
dw $28B0, $28CE, $28D0, $28D2
|
|
dw $2C2C, $2C2E, $2CB6, $2EB6
|
|
dw $2F30, $2F36, $2FAA, $2FB0
|
|
dw $2FB4, $2FB6, $3028, $302C|!OWW_STOP
|
|
|
|
; TODO still need to optimize this last section ugh
|
|
dw $0035, $2C28
|
|
dw $0035, $2FAE
|
|
dw $0035, $302A
|
|
dw $0035, $3032
|
|
dw $007E, $2CB0
|
|
dw $007F, $2CB2
|
|
dw $0095, $2EB2
|
|
dw $009A, $2EAC
|
|
dw $009B, $2EAE
|
|
dw $009C, $2EB0
|
|
dw $00AE, $2CAC
|
|
dw $00AF, $2CAE
|
|
dw $00DA, $302E
|
|
dw $00E2, $2C36
|
|
dw $00E2, $2FA8
|
|
dw $00E2, $3030
|
|
dw $0451, $282E
|
|
dw $0451, $2830
|
|
dw $0451, $284E
|
|
dw $0451, $2850
|
|
dw $0451, $2852
|
|
dw $0454, $272C
|
|
dw $0454, $272E
|
|
dw $0454, $274E
|
|
dw $0454, $2750
|
|
dw $0459, $27CE
|
|
dw $0459, $27D0
|
|
dw $045E, $27AE
|
|
dw $045E, $27D2
|
|
dw $0476, $2522
|
|
dw $0486, $26B0
|
|
dw $0487, $26B2
|
|
dw $048E, $2730
|
|
dw $048F, $2732
|
|
dw $0494, $27B0
|
|
dw $0495, $27B2
|
|
dw $0499, $282C
|
|
dw $049E, $27B4
|
|
dw $04BA, $2CB4
|
|
dw $04BA, $2EB4
|
|
dw $04BB, $2F34
|
|
dw $04CA, $27AC
|
|
dw $04D7, $2528
|
|
dw $0608, $2752
|
|
|
|
dw !OWW_CustomCommand, .map1B_check_aga
|
|
|
|
dw $046D, $243E
|
|
dw $0E39, $2440
|
|
|
|
dw !OWW_StripeRLEINC|!OWW_Horizontal|OWW_RLESize(4)
|
|
dw $0E3A, $24BC ; tile, start
|
|
|
|
dw !OWW_StripeRLEINC|!OWW_Horizontal|OWW_RLESize(4)
|
|
dw $0E3E, $253C ; tile, start
|
|
|
|
dw $0490, $25BE
|
|
dw $0491, $25C0
|
|
|
|
.map1B_no_hole
|
|
; add sign for tower entry
|
|
dw $0101, $222C
|
|
dw $0101, $2252
|
|
|
|
dw !OWW_END
|
|
|
|
.map1B_check_aga
|
|
LDA.l OverworldEventDataWRAM+$5B
|
|
AND.w #$0020
|
|
BNE ++
|
|
|
|
LDY.w #.map1B_no_hole
|
|
|
|
++ RTS
|
|
|
|
;---------------------------------------------------------------------------------------------------
|
|
|
|
.map29
|
|
dw !OWW_InvertedOnly
|
|
|
|
; singles
|
|
dw $0036, $2386
|
|
|
|
dw !OWW_ArbTileCopy
|
|
dw $0034 ; tile
|
|
dw $2288, $2308, $2388, $2408
|
|
dw $2488, $248A|!OWW_STOP
|
|
|
|
dw !OWW_END
|
|
|
|
;---------------------------------------------------------------------------------------------------
|
|
.map30
|
|
dw !OWW_InvertedOnly
|
|
|
|
dw $0178, $224E
|
|
dw $00D3, $22E2
|
|
dw $0302, $22E4
|
|
dw $00AA, $2368
|
|
dw $00AB, $236C
|
|
dw $01C2, $245C
|
|
dw $015C, $23E0
|
|
dw $0218, $245E
|
|
dw $0162, $2460
|
|
dw $0105, $255A
|
|
dw $01D4, $24DC
|
|
dw $0219, $24DE
|
|
dw $0171, $25DE
|
|
dw $0166, $255E
|
|
dw $0766, $2560
|
|
dw $06E1, $27D6
|
|
dw $00CF, $27DA
|
|
dw $0034, $3D94
|
|
|
|
dw !OWW_ArbTileCopy
|
|
dw $017E
|
|
dw $2050, $20CE|!OWW_STOP
|
|
|
|
dw !OWW_StripeRLE|!OWW_Horizontal|OWW_RLESize(7)
|
|
dw $00D1, $2052
|
|
|
|
dw !OWW_StripeRLE|!OWW_Horizontal|OWW_RLESize(6)
|
|
dw $00D1, $21E6
|
|
|
|
dw !OWW_ArbTileCopy
|
|
dw $00D2
|
|
dw $2060, $20E2, $2164|!OWW_STOP
|
|
|
|
dw !OWW_ArbTileCopy
|
|
dw $0183
|
|
dw $20D0, $214E|!OWW_STOP
|
|
|
|
dw !OWW_StripeRLE|!OWW_Horizontal|OWW_RLESize(7)
|
|
dw $00C9, $20D2
|
|
|
|
dw !OWW_StripeRLE|!OWW_Horizontal|OWW_RLESize(7)
|
|
dw $00C9, $2152
|
|
|
|
dw !OWW_StripeRLE|!OWW_Horizontal|OWW_RLESize(6)
|
|
dw $00C9, $2266
|
|
dw $00C9, $22CC
|
|
|
|
dw !OWW_ArbTileCopy
|
|
dw $00D0
|
|
dw $20E0, $2162, $21E4|!OWW_STOP
|
|
|
|
dw !OWW_StripeRLE|!OWW_Vertical|OWW_RLESize(3)
|
|
dw $0153, $2150
|
|
|
|
dw !OWW_ArbTileCopy
|
|
dw $0153
|
|
dw $21CE, $22CE|!OWW_STOP
|
|
|
|
dw !OWW_ArbTileCopy
|
|
dw $00C8
|
|
dw $2160, $21E2, $2264, $28DA, $295C|!OWW_STOP
|
|
|
|
dw !OWW_ArbTileCopy
|
|
dw $00CA
|
|
dw $21E0, $2262, $285A, $28DC|!OWW_STOP
|
|
|
|
dw !OWW_StripeRLE|!OWW_Horizontal|OWW_RLESize(7)
|
|
dw $00DC, $21D2
|
|
dw $00DC, $224C
|
|
|
|
dw !OWW_StripeRLE|!OWW_Horizontal|OWW_RLESize(2)
|
|
dw $00E3, $2252
|
|
|
|
dw !OWW_ArbTileCopy
|
|
dw $0186
|
|
dw $22D0, $234E|!OWW_STOP
|
|
|
|
dw !OWW_StripeRLE|!OWW_Vertical|OWW_RLESize(4)
|
|
dw $0034, $22D2
|
|
|
|
dw !OWW_StripeRLE|!OWW_Vertical|OWW_RLESize(7)
|
|
dw $0034, $22D4
|
|
|
|
dw !OWW_StripeRLE|!OWW_Vertical|OWW_RLESize(7)
|
|
dw $0034, $22D6
|
|
|
|
dw !OWW_StripeRLE|!OWW_Vertical|OWW_RLESize(2)
|
|
dw $0034, $2350
|
|
|
|
dw !OWW_ArbTileCopy
|
|
dw $0034
|
|
dw $2458, $2656|!OWW_STOP
|
|
|
|
dw !OWW_StripeRLE|!OWW_Horizontal|OWW_RLESize(6)
|
|
dw $00CC, $22E6
|
|
dw $00CC, $234C
|
|
|
|
dw !OWW_StripeRLE|!OWW_Vertical|OWW_RLESize(2)
|
|
dw $00CE, $2362
|
|
|
|
dw !OWW_StripeRLE|!OWW_Vertical|OWW_RLESize(4)
|
|
dw $00CE, $25D8
|
|
|
|
dw !OWW_StripeRLE|!OWW_Vertical|OWW_RLESize(2)
|
|
dw $00C5, $2364
|
|
|
|
dw !OWW_StripeRLE|!OWW_Vertical|OWW_RLESize(4)
|
|
dw $00C5, $25DC
|
|
|
|
dw !OWW_StripeRLE|!OWW_Vertical|OWW_RLESize(4)
|
|
dw $06AB, $2366
|
|
|
|
dw !OWW_ArbTileCopy
|
|
dw $06AB
|
|
dw $24E4, $2760|!OWW_STOP
|
|
|
|
dw !OWW_ArbTileCopy
|
|
dw $0384
|
|
dw $236A, $236E, $23EC, $246A|!OWW_STOP
|
|
|
|
dw !OWW_StripeRLE|!OWW_Horizontal|OWW_RLESize(4)
|
|
dw $0384, $24E8
|
|
|
|
dw !OWW_ArbTileCopy
|
|
dw $0759
|
|
dw $23C8, $244A, $24CC, $254E, $26D0, $2752, $27D4|!OWW_STOP
|
|
|
|
dw !OWW_ArbTileCopy
|
|
dw $0757
|
|
dw $23CA, $244C, $24CE, $2550, $26D2, $2754|!OWW_STOP
|
|
|
|
dw !OWW_ArbTileCopy
|
|
dw $01FF
|
|
dw $23CC, $244E, $24D0, $2652, $26D4, $2756|!OWW_STOP
|
|
|
|
dw !OWW_ArbTileCopy
|
|
dw $017C
|
|
dw $23CE, $2450, $24D2, $2654, $26D6|!OWW_STOP
|
|
|
|
dw !OWW_ArbTileCopy
|
|
dw $0100
|
|
dw $245A, $24D8|!OWW_STOP
|
|
|
|
dw !OWW_ArbTileCopy
|
|
dw $0104
|
|
dw $24DA, $2558|!OWW_STOP
|
|
|
|
dw !OWW_ArbTileCopy
|
|
dw $0106
|
|
dw $2462, $24E0, $255C|!OWW_STOP
|
|
|
|
dw !OWW_ArbTileCopy
|
|
dw $0107
|
|
dw $2464, $24E2|!OWW_STOP
|
|
|
|
dw !OWW_StripeRLE|!OWW_Vertical|OWW_RLESize(2)
|
|
dw $0179, $2552
|
|
|
|
dw !OWW_StripeRLE|!OWW_Horizontal|OWW_RLESize(8)
|
|
dw $06B4, $2562
|
|
|
|
dw !OWW_StripeRLE|!OWW_Vertical|OWW_RLESize(2)
|
|
dw $06E5, $25D0
|
|
|
|
dw !OWW_StripeRLE|!OWW_Vertical|OWW_RLESize(4)
|
|
dw $00C4, $25DA
|
|
|
|
dw !OWW_StripeRLE|!OWW_Horizontal|OWW_RLESize(7)
|
|
dw $0165, $25E4
|
|
|
|
dw !OWW_StripeRLE|!OWW_Vertical|OWW_RLESize(2)
|
|
dw $06E4, $27D2
|
|
|
|
dw !OWW_StripeRLE|!OWW_Vertical|OWW_RLESize(2)
|
|
dw $06E4, $2854
|
|
|
|
dw !OWW_StripeRLE|!OWW_Vertical|OWW_RLESize(3)
|
|
dw $06E4, $2856
|
|
|
|
dw !OWW_StripeRLE|!OWW_Vertical|OWW_RLESize(2)
|
|
dw $06E4, $2958
|
|
dw $06E4, $29DA
|
|
|
|
dw !OWW_StripeRLE|!OWW_Vertical|OWW_RLESize(2)
|
|
dw $02FD, $27D8
|
|
|
|
dw !OWW_ArbTileCopy
|
|
dw $06E7
|
|
dw $28D8, $295A, $29DC|!OWW_STOP
|
|
|
|
dw !OWW_END
|
|
|
|
;---------------------------------------------------------------------------------------------------
|
|
|
|
.map32
|
|
dw !OWW_InvertedOnly
|
|
|
|
dw !OWW_Stripe|!OWW_Vertical
|
|
dw $2486
|
|
dw $01D5, $0165, $00C6|!OWW_STOP
|
|
|
|
dw $0166, $2508
|
|
dw $0171, $2588
|
|
|
|
dw !OWW_StripeRLE|!OWW_Vertical|OWW_RLESize(5)
|
|
dw $00C6, $2608
|
|
|
|
dw $0166, $258A
|
|
dw $016A, $278C
|
|
dw $016A, $280C
|
|
dw $00C6, $2806
|
|
|
|
dw !OWW_StripeRLE|!OWW_Vertical|OWW_RLESize(5)
|
|
dw $021C, $260A
|
|
|
|
dw !OWW_ArbTileCopy
|
|
dw $0034
|
|
dw $270E, $278E, $2790, $2918, $291A, $2998, $299A, $291C, $291E, $2920|!OWW_STOP
|
|
|
|
dw !OWW_StripeRLE|!OWW_Horizontal|OWW_RLESize(8)
|
|
dw $0034, $280E
|
|
|
|
dw !OWW_StripeRLE|!OWW_Horizontal|OWW_RLESize(7)
|
|
dw $0034, $2892
|
|
|
|
dw !OWW_Stripe|!OWW_Horizontal
|
|
dw $288C
|
|
dw $01FA, $0034, $00DA|!OWW_STOP
|
|
|
|
dw !OWW_Stripe|!OWW_Horizontal
|
|
dw $290C
|
|
dw $0186
|
|
dw $0034, $0034, $0034
|
|
dw $0036, $0036|!OWW_STOP
|
|
|
|
dw !OWW_StripeRLE|!OWW_Horizontal|OWW_RLESize(7)
|
|
dw $0034, $2818
|
|
|
|
dw !OWW_Stripe|!OWW_Horizontal
|
|
dw $2986
|
|
dw $00E4, $00E5, $0186
|
|
dw $0034, $0034, $0034, $0034
|
|
dw $0036, $0036
|
|
dw $0034, $0034
|
|
dw $00DA
|
|
dw $0034, $0034
|
|
dw $0100|!OWW_STOP
|
|
|
|
dw $0186, $2A04
|
|
|
|
; a couple of these will be overwritten in a second
|
|
dw !OWW_StripeRLE|!OWW_Horizontal|OWW_RLESize(13)
|
|
dw $0034, $2A06
|
|
|
|
dw !OWW_StripeRLE|!OWW_Horizontal|OWW_RLESize(13)
|
|
dw $0034, $2A84
|
|
|
|
; leave these after the above
|
|
dw $0071, $2A0E
|
|
dw $0071, $2A1A
|
|
dw $0035, $2A8C
|
|
|
|
dw !OWW_StripeRLE|!OWW_Horizontal|OWW_RLESize(5)
|
|
dw $0034, $2B84
|
|
|
|
dw !OWW_StripeRLE|!OWW_Horizontal|OWW_RLESize(6)
|
|
dw $0034, $2C86
|
|
|
|
dw !OWW_ArbTileCopy
|
|
dw $0034 ; tile
|
|
dw $2B06, $2B0A, $2B0E, $2B12
|
|
dw $2B1A, $2B92, $2B94
|
|
dw $2B98, $2B9A, $2C04, $2C08
|
|
dw $2C0A, $2C0E, $2C12, $2C14
|
|
dw $2C18, $2C98
|
|
dw $2D0A, $2D0C, $2D10, $2D14
|
|
dw $2D16, $2D8A, $2D8C, $2D8E
|
|
dw $2C94, $2C92, $2B8E
|
|
dw $2D94|!OWW_STOP
|
|
|
|
dw !OWW_ArbTileCopy
|
|
dw $0035 ; tile
|
|
dw $2B08, $2C06, $2D0E, $2D90|!OWW_STOP
|
|
|
|
dw $0104, $2A22
|
|
dw $01D4, $2A24
|
|
dw $00F8, $2C1A
|
|
dw $00CE, $2C1C
|
|
dw $0071, $2C8C
|
|
dw $00CE, $2C9C
|
|
dw $0167, $2D04
|
|
dw $0036, $2D12
|
|
dw $0167, $2D86
|
|
dw $0172, $2E08
|
|
dw $0174, $2E16
|
|
|
|
dw !OWW_ArbTileCopy
|
|
dw $00DA ; tile
|
|
dw $2B14, $2B16, $2B18, $2B96
|
|
dw $2C16, $2C96, $2D08, $2D92|!OWW_STOP
|
|
|
|
dw !OWW_ArbTileCopy
|
|
dw $00E2 ; tile
|
|
dw $2B04, $2B0C, $2B10, $2B8C, $2B90
|
|
dw $2C0C, $2C10, $2C8E|!OWW_STOP
|
|
|
|
dw !OWW_ArbTileCopy
|
|
dw $015C ; tile
|
|
dw $2A20, $2A9E, $2B1C, $2C9A, $2D18
|
|
dw $2D96|!OWW_STOP
|
|
|
|
dw !OWW_ArbTileCopy
|
|
dw $015E ; tile
|
|
dw $2E0A, $2E0C, $2E0E, $2E10
|
|
dw $2E12, $2E14|!OWW_STOP
|
|
|
|
dw !OWW_ArbTileCopy
|
|
dw $0160 ; tile
|
|
dw $2C84, $2D06, $2D88|!OWW_STOP
|
|
|
|
dw !OWW_ArbTileCopy
|
|
dw $0162 ; tile
|
|
dw $2AA0, $2B1E, $2B9C, $2D1A
|
|
dw $2D98|!OWW_STOP
|
|
|
|
dw !OWW_ArbTileCopy
|
|
dw $016A ; tile
|
|
dw $2A82, $2B02, $2B82, $2C02
|
|
dw $2C82|!OWW_STOP
|
|
|
|
dw !OWW_END
|
|
|
|
;---------------------------------------------------------------------------------------------------
|
|
|
|
.map33
|
|
dw !OWW_InvertedOnly
|
|
|
|
dw $0034, $22A8
|
|
|
|
dw !OWW_END
|
|
|
|
;---------------------------------------------------------------------------------------------------
|
|
|
|
.map35
|
|
dw !OWW_InvertedOnly
|
|
|
|
dw !OWW_Stripe|!OWW_Vertical
|
|
dw $2BB0
|
|
dw $02F1, $0184, $0392, $0394|!OWW_STOP
|
|
|
|
dw !OWW_Stripe|!OWW_Vertical
|
|
dw $2BB2
|
|
dw $02F2, $0185, $0393, $0395|!OWW_STOP
|
|
|
|
dw $0034, $2F56
|
|
|
|
dw !OWW_END
|
|
|
|
;---------------------------------------------------------------------------------------------------
|
|
|
|
.map3A
|
|
dw !OWW_InvertedOnly
|
|
|
|
dw !OWW_Stripe|!OWW_Horizontal
|
|
dw $2800
|
|
dw $0774, $06E1, $0757|!OWW_STOP
|
|
|
|
dw !OWW_Stripe|!OWW_Horizontal
|
|
dw $2880
|
|
dw $0779, $02EC, $0759, $0757|!OWW_STOP
|
|
|
|
dw !OWW_Stripe|!OWW_Horizontal
|
|
dw $2900
|
|
dw $02E5, $02E5, $02E5, $0759, $076A|!OWW_STOP
|
|
|
|
dw !OWW_Stripe|!OWW_Horizontal
|
|
dw $2980
|
|
dw $02F3, $02F3, $02F1, $02F2, $038A|!OWW_STOP
|
|
|
|
dw !OWW_StripeRLE|!OWW_Vertical|OWW_RLESize(4)
|
|
dw $0184, $2A04
|
|
|
|
dw !OWW_StripeRLE|!OWW_Vertical|OWW_RLESize(4)
|
|
dw $0185, $2A06
|
|
|
|
dw !OWW_END
|
|
|
|
;---------------------------------------------------------------------------------------------------
|
|
|
|
.map43
|
|
dw !OWW_SkipIfInverted, .map43_inverted
|
|
dw $0101, $2550 ; GT sign
|
|
|
|
.map43_inverted
|
|
dw !OWW_InvertedOnly
|
|
|
|
dw $0212, $2BE0
|
|
|
|
dw !OWW_StripeRLE|!OWW_Vertical|OWW_RLESize(5)
|
|
dw $0E96, $235E
|
|
|
|
dw !OWW_StripeRLE|!OWW_Vertical|OWW_RLESize(5)
|
|
dw $0E97, $2360
|
|
|
|
dw !OWW_StripeRLEINC|!OWW_Horizontal|OWW_RLESize(2)
|
|
dw $0E94, $25DE ; tile, start
|
|
|
|
dw !OWW_StripeRLEINC|!OWW_Horizontal|OWW_RLESize(2)
|
|
dw $0180, $275E
|
|
|
|
dw !OWW_StripeRLE|!OWW_Vertical|OWW_RLESize(2)
|
|
dw $0184, $27DE
|
|
|
|
dw !OWW_StripeRLE|!OWW_Vertical|OWW_RLESize(2)
|
|
dw $0185, $27E0
|
|
|
|
dw !OWW_END
|
|
|
|
;---------------------------------------------------------------------------------------------------
|
|
.map45
|
|
dw !OWW_InvertedOnly
|
|
|
|
dw $0239, $3D4A
|
|
|
|
dw !OWW_END
|
|
|
|
;---------------------------------------------------------------------------------------------------
|
|
|
|
.map47
|
|
dw !OWW_InvertedOnly
|
|
|
|
dw $0398, $25A0
|
|
dw $0522, $25A2
|
|
dw $0125, $2620
|
|
dw $0126, $2622
|
|
dw $0239, $269E
|
|
dw $0239, $26A4
|
|
|
|
dw !OWW_END
|
|
|
|
;---------------------------------------------------------------------------------------------------
|
|
|
|
.map50
|
|
dw !OWW_InvertedOnly
|
|
|
|
dw $020F, $2B2E
|
|
|
|
dw !OWW_END
|
|
|
|
;---------------------------------------------------------------------------------------------------
|
|
|
|
.map54
|
|
dw !OWW_InvertedOnly
|
|
|
|
dw !OWW_Stripe|!OWW_Vertical
|
|
dw $2422
|
|
dw $02F3, $00C9, $00E3|!OWW_STOP
|
|
|
|
dw !OWW_Stripe|!OWW_Vertical
|
|
dw $2424
|
|
dw $02F3, $00C9, $00E3|!OWW_STOP
|
|
|
|
dw !OWW_END
|
|
|
|
;---------------------------------------------------------------------------------------------------
|
|
|
|
; Pyramid
|
|
.map5B
|
|
dw !OWW_SkipIfInverted, .map5B_inverted_mode
|
|
|
|
dw $0101, $27B6 ; sign to statue
|
|
dw $05C2, $27B4 ; peg left of sign
|
|
|
|
.map5B_inverted_mode
|
|
dw !OWW_InvertedOnly
|
|
|
|
dw $0323, $39B6
|
|
|
|
dw !OWW_StripeRLE|!OWW_Horizontal|OWW_RLESize(4)
|
|
dw $0324, $39B8
|
|
|
|
dw $02FE, $3A34
|
|
dw $02FF, $3A36
|
|
dw $0235, $3BB4
|
|
|
|
dw !OWW_StripeRLE|!OWW_Horizontal|OWW_RLESize(4)
|
|
dw $0326, $3A38
|
|
|
|
dw !OWW_Stripe|!OWW_Horizontal
|
|
dw $3AB2
|
|
dw $039D, $0303, $0232
|
|
dw $0233, $0233, $0233, $0233|!OWW_STOP
|
|
|
|
dw !OWW_Stripe|!OWW_Horizontal
|
|
dw $3B32
|
|
dw $03A2, $0232, $0235, $046A
|
|
dw $0333, $0333, $0333|!OWW_STOP
|
|
|
|
dw !OWW_ArbTileCopy
|
|
dw $0034 ; tile
|
|
dw $3BB6, $3BBA, $3BBC, $3C3A
|
|
dw $3C3C, $3C3E|!OWW_STOP
|
|
|
|
|
|
; pegs
|
|
dw !OWW_ArbTileCopy
|
|
dw $0034 ; tile
|
|
dw $321C, $329C, $32A0|!OWW_STOP
|
|
|
|
dw $00E2, $321A
|
|
dw $0071, $321E
|
|
dw $00DA, $3220
|
|
|
|
dw $00DA, $329A
|
|
dw $00E1, $329E
|
|
|
|
dw $0382, $3318
|
|
dw $037C, $3322
|
|
|
|
dw $00F2, $3BB8
|
|
dw $0108, $3C38
|
|
|
|
dw !OWW_ArbTileCopy
|
|
dw $021B ; tile
|
|
dw $3218, $3222, $3298, $32A2
|
|
dw $331A, $331C, $331E, $3320|!OWW_STOP
|
|
|
|
|
|
dw !OWW_CustomCommand, .map5B_pick_warp_tile
|
|
|
|
dw !OWW_Stripe|!OWW_Horizontal
|
|
dw $39C0 ; start
|
|
dw $0324, $0324, $0324, $0325, $02D5
|
|
dw !OWW_SKIP, $02CC|!OWW_STOP
|
|
|
|
dw $02CC, $39D4
|
|
|
|
dw !OWW_Stripe|!OWW_Horizontal
|
|
dw $3A40 ; start
|
|
dw $0326, $0326, $0326
|
|
dw $0327, $02F7, !OWW_SKIP
|
|
dw $02E3, $02E3|!OWW_STOP
|
|
|
|
dw !OWW_Stripe|!OWW_Horizontal
|
|
dw $3AC0 ; start
|
|
dw $0233, $0233, $0233, $0234
|
|
dw $02F6, $0396|!OWW_STOP
|
|
|
|
dw !OWW_Stripe|!OWW_Horizontal
|
|
dw $3B40
|
|
dw $0333, $0333, $03AA, $03A3
|
|
dw $0234, $0397|!OWW_STOP
|
|
|
|
dw !OWW_Stripe|!OWW_Horizontal
|
|
dw $3BC0 ; start
|
|
dw $0034, $0034, $029C, $0034
|
|
dw $03A3|!OWW_STOP
|
|
|
|
dw !OWW_Stripe|!OWW_Horizontal
|
|
dw $3C40 ; start
|
|
dw $0034, $0034, $010A|!OWW_STOP
|
|
|
|
dw !OWW_StripeRLE|!OWW_Horizontal|OWW_RLESize(17)
|
|
dw $010B, $3C46
|
|
|
|
dw !OWW_END
|
|
|
|
.map5B_pick_warp_tile
|
|
LDA.l ProgressIndicator
|
|
AND.w #$00FF
|
|
CMP.w #$0003
|
|
|
|
LDA.w #$0034
|
|
BCC ++
|
|
|
|
LDA.w #$0212
|
|
|
|
++ STA.l $7E3BBE
|
|
|
|
RTS
|
|
|
|
;---------------------------------------------------------------------------------------------------
|
|
|
|
.map6F
|
|
dw !OWW_InvertedOnly
|
|
|
|
dw $020F, $2BB2
|
|
|
|
dw !OWW_END
|
|
|
|
;---------------------------------------------------------------------------------------------------
|
|
|
|
.map70
|
|
dw !OWW_InvertedOnly
|
|
|
|
dw $0239, $3D94
|
|
|
|
dw !OWW_END
|
|
|
|
;---------------------------------------------------------------------------------------------------
|
|
|
|
.map73
|
|
dw !OWW_InvertedOnly
|
|
|
|
dw $020F, $22A8
|
|
|
|
dw !OWW_END
|
|
|
|
;---------------------------------------------------------------------------------------------------
|
|
|
|
.map75
|
|
dw !OWW_InvertedOnly
|
|
|
|
; singles
|
|
dw $0239, $2F50
|
|
|
|
dw !OWW_StripeRLE|!OWW_Horizontal|OWW_RLESize(4)
|
|
dw $0BA3, $3054
|
|
|
|
dw !OWW_StripeRLE|!OWW_Horizontal|OWW_RLESize(4)
|
|
dw $0BA3, $3254
|
|
|
|
dw !OWW_StripeRLE|!OWW_Vertical|OWW_RLESize(3)
|
|
dw $0BAD, $30D6
|
|
|
|
dw !OWW_StripeRLE|!OWW_Vertical|OWW_RLESize(3)
|
|
dw $0BA9, $30D8
|
|
|
|
dw !OWW_Stripe|!OWW_Vertical
|
|
dw $30D4 ; start
|
|
dw $0BAC, $0BC5, $0BCA|!OWW_STOP
|
|
|
|
dw !OWW_Stripe|!OWW_Vertical
|
|
dw $30DA ; start
|
|
dw $0BAA, $0BC8, $0BCD|!OWW_STOP
|
|
|
|
dw !OWW_ArbTileCopy
|
|
dw $0BA3 ; tile
|
|
dw $2F52, $2FCE, $2FD0|!OWW_STOP
|
|
|
|
dw !OWW_END
|
|
|
|
;---------------------------------------------------------------------------------------------------
|
|
|
|
;===================================================================================================
|