diff --git a/data/customitems.png b/data/customitems.png index 7494c64..93adf4c 100644 Binary files a/data/customitems.png and b/data/customitems.png differ diff --git a/hooks.asm b/hooks.asm index 2122cda..75e61c2 100755 --- a/hooks.asm +++ b/hooks.asm @@ -1965,12 +1965,10 @@ JSL OnOWTransition : BRA ++ : NOP #34 : ++ ;================================================================================ ;Inverted mode tile map update (executed right after the original tile load) ;-------------------------------------------------------------------------------- -org $82ED51 ; <- 16D51 -JSL Overworld_LoadNewTiles : NOP #2 -;-------------------------------------------------------------------------------- -;Same as above -org $82EC2E ;<- 016C2E -JSL Overworld_LoadNewTiles : NOP #2 +org $82ED51 +JSL Overworld_LoadNewTiles : BRA ++ : ++ +org $82EC2E +JSL Overworld_LoadNewTiles : BRA ++ : ++ ;================================================================================ org $87A3E2 ;<- 3A3E2 Bank07.asm:5764 (LDA.b #$80 : STA $03F0) JSL FreeDuckCheck : BEQ + diff --git a/invertedmaps.asm b/invertedmaps.asm index 37abb0e..fb6dede 100644 --- a/invertedmaps.asm +++ b/invertedmaps.asm @@ -1,1120 +1,1529 @@ +;=================================================================================================== + +OWWriteSize = $00 +OWWriteIncrement = $02 +OWWriteTile = $06 +OWWriteCommand = $08 + +;--------------------------------------------------------------------------------------------------- + + +function OWW_RLESize(s) = s<<8 + +!OWW_STOP = $8000 +!OWW_END = $FFFF + +!OWW_SKIP = $FFFF + +!OWW_Vertical = $0080 +!OWW_Horizontal = $0000 + +;=================================================================================================== + Overworld_LoadNewTiles: -{ - ; add sign to EDM for OWG people to read - LDA.b OverworldIndex : AND.w #$00FF : CMP.w #$0005 : BNE + - LDA.w #$0101 : STA.l $7E2E18 ; #$0101 is the sign tile16 id, $7E2D98 is the position of the tile16 on map - + + LDA.b OverworldIndex + CMP.w #$0080 + BCS .exit - ; GT sign - LDA.l InvertedMode : AND.w #$00FF : BNE + - LDA.b OverworldIndex : AND.w #$00FF : CMP.w #$0043 : BNE + - LDA.w #$0101 : STA.l $7E2550 - + + ASL + TAX - ; Pyramid sign - LDA.l InvertedMode : AND.w #$00FF : BNE + - LDA.b OverworldIndex : AND.w #$00FF : CMP.w #$005B : BNE + - LDA.w #$0101 : STA.w $7E27B6 ; Moved sign near statue - LDA.w #$05C2 : STA.w $7E27B4 ; added a pyramid peg on the left of the sign - + + LDA.l OverworldMapChangePointers,X + BNE .do_overlay - SEP #$30 - LDA.l InvertedMode : BEQ .notInverted - PHB +.exit + LDX.w #$001E + LDA.w #$0DBE - ; Set the data bank to $7E. - LDA.b #$7E : PHA : PLB - REP #$30 - ; Use it as an index into a jump table. - LDA.b OverworldIndex : CMP.w #$0080 : !BGE .noData - ASL A : TAX + RTL - JSR (Overworld_NewTilesTable, X) - .noData - PLB - .notInverted - REP #$30 - LDX.w #$001E : LDA.w #$0DBE +.end + PLB + BRA .exit - RTL -} +.do_overlay + PHB + PHK + PLB + + ; give Y the pointer to our data + TAY + +.next_tile + ; format: + ; dw , + ; or if bit 15 is set + ; dw + ; 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, the 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_ + ; dw + ; dw , , ... |!OWW_STOP + ; use !SKIP to not place a tile but continue the stripe + !OWW_Stripe = $8000 + dw .stripe ; 00 + + ; dw !OWW_StripeRLE|!OWW_|RLESize() + ; dw , + !OWW_StripeRLE = $8001 + dw .stripe_rle ; 01 + + ; dw !OWW_StripeRLEINC|!OWW_|RLESize() + ; dw , + ; use !SKIP to not place a tile but continue the stripe + !OWW_StripeRLEINC = $8002 + dw .stripe_rle_inc ; 02 + + ; dw !OWW_ArbitraryRLE + ; dw + ; dw , , ... |!OWW_STOP + !OWW_ArbitraryRLE = $8003 + dw .arbitrary_rle ; 03 + + dw .nothing ; 04 + dw .nothing ; 05 + dw .nothing ; 06 + dw .nothing ; 07 + dw .nothing ; 08 + dw .nothing ; 09 + dw .nothing ; 0A + dw .nothing ; 0B + dw .nothing ; 0C + + ; dw !OWW_SkipIfInverted,
+ ; skips to
when inverted mode + !OWW_SkipIfInverted = $800D + dw .inverted_skip ; 0D + + ; dw !OWW_SkipIfNotInverted,
+ ; skips to
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, + !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) + +;--------------------------------------------------------------------------------------------------- + +.inverted_skip + LDX.w $0000,Y + INY + INY + + LDA.l InvertedMode + AND.w #$00FF + BEQ .dont_change_inverted + + 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 + LDA.l InvertedMode + AND.w #$00FF + BNE .dont_change_inverted + + TXY + +.dont_change_inverted + RTS -Overworld_NewTilesTable: -{ -;LW - ;00 01 02 03 04 05 06 07 -dw return, return, return, map003, return, map005, return, map007 - ;08 09 10 11 12 13 14 15 -dw return, return, return, return, return, return, return, return - ;16 17 18 19 20 21 22 23 -dw map016, return, return, return, map020, return, return, return - ;24 25 26 27 28 29 30 31 -dw return, return, return, map027, return, return, return, return - ;32 33 34 35 36 37 38 39 -dw return, return, return, return, return, return, return, return - ;40 41 42 43 44 45 46 47 -dw return, map041, return, return, return, return, return, return - ;48 49 50 51 52 53 54 55 -dw map049, return, map050, map051, return, map053, return, return - ;56 57 58 59 60 61 62 63 -dw return, return, map058, return, map060, return, return, return -;DW - ;64 65 66 67 68 69 70 71 -dw return, return, return, map068, return, map078, return, map071 - ;72 73 74 75 76 77 78 79 -dw return, return, return, return, return, return, return, return - ;80 81 82 83 84 85 86 87 -dw map080, return, return, return, map084, return, return, return - ;88 89 90 91 92 93 94 95 -dw return, return, return, map091, return, return, return, return - ;96 97 98 99 100 101 102 103 -dw return, return, return, return, return, return, return, return - ;104 105 106 107 108 109 110 111 -dw return, return, return, return, return, return, return, map111 - ;112 113 114 115 116 117 118 119 -dw map120, return, return, map115, return, map117, return, return - ;120 121 122 123 124 125 126 127 -dw return, return, return, return, return, return, return, return +;--------------------------------------------------------------------------------------------------- -return: -RTS +.get_increment + LDA.b OWWriteCommand + AND.w #$0080 + BNE .vertical_increment -map003: -{ -LDA.w #$021A : STA.w $29B6 -LDA.w #$01F3 : STA.w $29B8 -LDA.w #$00A0 : STA.w $29BA -LDA.w #$0104 : STA.w $29BC -LDA.w #$00C6 : STA.w $2A34 -STA.w $2A38 -STA.w $2A3A -LDA.w #$0034 : STA.w $2BE0 -RTS -} + LDA.w #$0002 -map005: -{ -LDA.w #$0111 : STA.w $206E -STA.w $20EC -LDA.w #$0113 : STA.w $2070 -STA.w $2072 -LDA.w #$0112 : STA.w $2074 -STA.w $20EE -STA.w $216C -LDA.w #$0116 : STA.w $20F0 -STA.w $216E -LDA.w #$0117 : STA.w $20F2 -LDA.w #$0118 : STA.w $20F4 -LDA.w #$011C : STA.w $2170 -LDA.w #$011D : STA.w $2172 -LDA.w #$011E : STA.w $2174 -LDA.w #$0130 : STA.w $21E2 -STA.w $21F0 -STA.w $22E2 -STA.w $22F0 -LDA.w #$0123 : STA.w $21EC -LDA.w #$0124 : STA.w $21EE -LDA.w #$0034 : STA.w $21F2 -LDA.w #$0126 : STA.w $21F4 -LDA.w #$0135 : STA.w $2262 -STA.w $2270 -STA.w $2362 -STA.w $2370 -LDA.w #$0136 : STA.w $2264 -STA.w $2266 -STA.w $226C -STA.w $226E -LDA.w #$0137 : STA.w $2268 -STA.w $226A -LDA.w #$013C : STA.w $22E4 -STA.w $22E6 -STA.w $22EC -STA.w $22EE -LDA.w #$013D : STA.w $22E8 -STA.w $22EA -LDA.w #$0144 : STA.w $2364 -LDA.w #$0145 : STA.w $2366 -LDA.w #$0146 : STA.w $2368 -LDA.w #$0147 : STA.w $236A -LDA.w #$01B3 : STA.w $236C -LDA.w #$01B4 : STA.w $236E -LDA.w #$0139 : STA.w $2970 -STA.w $2C6C -LDA.w #$014B : STA.w $2972 -STA.w $2C6E -LDA.w #$016B : STA.w $29F0 -STA.w $2CEC -LDA.w #$0182 : STA.w $29F2 -STA.w $2CEE +.vertical_increment + STA.b OWWriteIncrement -.map014 -LDA.w #$0034 : STA.w $3D4A + RTS -RTS -} +;--------------------------------------------------------------------------------------------------- -map007: -{ -LDA.w #$021B : STA.w $259E -STA.w $25A2 -STA.w $25A4 -STA.w $261C -STA.w $2626 -STA.w $269A -STA.w $26A8 -STA.w $271A -STA.w $2728 -STA.w $279A -STA.w $27A8 -STA.w $281E -STA.w $2820 -STA.w $2822 -STA.w $2824 -STA.w $2828 -STA.w $289C -STA.w $28A6 -STA.w $291E -STA.w $2924 -LDA.w #$0134 : STA.w $269E -STA.w $26A4 -LDA.w #$0034 : STA.w $2826 -RTS -} +.stripe + LDX.w $0000,Y -map016: -{ -LDA.w #$0034 : STA.w $2B2E -RTS -} + BRA ++ ; to increment at start of loop properly -map020: -{ -LDA.w #$02F1 : STA.w $2422 -LDA.w #$02F2 : STA.w $2424 -LDA.w #$0184 : STA.w $24A2 -STA.w $2522 -LDA.w #$0185 : STA.w $24A4 -STA.w $2524 -RTS -} +-- TXA + CLC + ADC.b OWWriteIncrement + TAX -map027: ;Castle map -{ +++ INY + INY -LDA.w #$0485 : STA.w $2424 -STA.w $2426 -LDA.w #$0454 : STA.w $24A4 -STA.w $24A6 -LDA.w #$0476 : STA.w $2522 -LDA.w #$0460 : STA.w $2524 -STA.w $2526 -LDA.w #$04D7 : STA.w $2528 -LDA.w #$04DD : STA.w $2624 -LDA.w #$04DE : STA.w $2626 -LDA.w #$04E0 : STA.w $26A4 -LDA.w #$04E1 : STA.w $26A6 -LDA.w #$04E4 : STA.w $2724 -LDA.w #$04E5 : STA.w $2726 -LDA.w #$0034 : STA.w $27A4 -STA.w $27A6 + 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_rle_size_and_tile + + LDX.w $0000,Y + BRA ++ + +-- TXA + CLC + ADC.b OWWriteIncrement + TAX + + LDA.b OWWriteTile + INC + STA.b OWWriteTile + +++ INY + INY + STA.l $7E0000,X + + DEC.b OWWriteSize + BNE -- + + 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_rle_size_and_tile + + LDX.w $0000,Y + BRA ++ + +-- TXA + CLC + ADC.b OWWriteIncrement + TAX + + LDA.b OWWriteTile + +++ INY + INY + STA.l $7E0000,X + + DEC.b OWWriteSize + BNE -- + + RTS + +;--------------------------------------------------------------------------------------------------- + +.arbitrary_rle + LDA.w $0000,Y + +-- INY + INY + + LDX.w $0000,Y + BMI .last_arb_rle_maybe + + STA.l $7E0000,X + BRA -- + +.last_arb_rle_maybe + CPX.w #!OWW_SKIP + BEQ -- + + PHA + + TXA + AND.w #$7FFF + TAX + + PLA + + STA.l $7E0000,X + + INY + INY + + RTS + +;--------------------------------------------------------------------------------------------------- + +;=================================================================================================== + +OverworldMapChangePointers: +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 .map0E ; 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 $0000 ; 30 +dw .map31 ; 31 +dw .map32 ; 32 +dw .map33 ; 33 +dw $0000 ; 34 +dw .map35 ; 35 +dw $0000 ; 36 +dw $0000 ; 37 +dw .map38 ; 38 +dw $0000 ; 39 +dw .map3A ; 3A +dw $0000 ; 3B +dw .map3C ; 3C +dw $0000 ; 3D +dw $0000 ; 3E +dw $0000 ; 3F +dw $0000 ; 40 +dw $0000 ; 41 +dw $0000 ; 42 +dw .map43 ; 43 +dw .map44 ; 44 +dw $0000 ; 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 .map4E ; 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 $0000 ; 70 +dw $0000 ; 71 +dw $0000 ; 72 +dw .map73 ; 73 +dw $0000 ; 74 +dw .map75 ; 75 +dw $0000 ; 76 +dw $0000 ; 77 +dw .map78 ; 78 +dw $0000 ; 79 +dw $0000 ; 7A +dw $0000 ; 7B +dw $0000 ; 7C +dw $0000 ; 7D +dw $0000 ; 7E +dw $0000 ; 7F + +;--------------------------------------------------------------------------------------------------- + +.map03 + ; singles + dw $0034, $2BE0 + + dw !OWW_Stripe|!OWW_Horizontal + dw $29B6 ; address + dw $021A, $01F3, $00A0, $0104|!OWW_STOP + + dw !OWW_ArbitraryRLE + 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, $2970 + dw $0139, $2C6C + dw $014B, $2972 + dw $014B, $2C6E + dw $016B, $29F0 + dw $016B, $2CEC + dw $0182, $29F2 + dw $0182, $2CEE + dw $01B3, $236C + dw $01B4, $236E + + dw !OWW_Stripe|!OWW_Horizontal + dw $206C ; address + dw $0112, $0111, $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_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_ArbitraryRLE + dw $0130 ; tile + dw $21E2, $21F0, $22E2, $22F0|!OWW_STOP + + dw !OWW_ArbitraryRLE + dw $0135 ; tile + dw $2262, $2270, $2362, $2370|!OWW_STOP + + dw !OWW_ArbitraryRLE + dw $0136 ; tile + dw $2264, $2266, $226C, $226E|!OWW_STOP + + dw !OWW_ArbitraryRLE + dw $0137 ; tile + dw $2268, $226A|!OWW_STOP + + dw !OWW_Stripe|!OWW_Horizontal + dw $22E4 ; start + dw $013C, $013C, $013D, $013D, $013C, $013C + + dw !OWW_END + +;--------------------------------------------------------------------------------------------------- + +.map07 + dw !OWW_InvertedOnly + + ; singles + dw $0134, $269E + dw $0134, $26A4 + dw $0034, $2826 + + dw !OWW_ArbitraryRLE + dw $0135 ; 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 + +;--------------------------------------------------------------------------------------------------- + +.map0E + dw !OWW_InvertedOnly + + dw $0034, $3D4A + + 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 + + ; TODO clean up and optimize + dw $0485, $2424 + dw $0485, $2426 + dw $0454, $24A4 + dw $0454, $24A6 + dw $0476, $2522 + dw $0460, $2524 + dw $0460, $2526 + dw $04D7, $2528 + dw $04DD, $2624 + dw $04DE, $2626 + dw $04E0, $26A4 + dw $04E1, $26A6 + dw $04E4, $2724 + dw $04E5, $2726 + dw $0034, $27A4 + dw $0034, $27A6 ;Eye removed -LDA.w #$046D : STA.w $243E -STA.w $24BC -STA.w $24BE -STA.w $253E -STA.w $2440 -STA.w $24C0 -STA.w $24C2 -STA.w $2540 + dw $046D, $243E + dw $046D, $24BC + dw $046D, $24BE + dw $046D, $253E + dw $046D, $2440 + dw $046D, $24C0 + dw $046D, $24C2 + dw $046D, $2540 ;new trees -LDA.w #$0035 : STA.w $2C28 -STA.w $2FAE -LDA.w #$0034 : STA.w $2C2C -STA.w $2C2E -STA.w $2CB6 -STA.w $2D36 -STA.w $2DB6 -STA.w $2EB6 -STA.w $2F30 -STA.w $2F36 -STA.w $2FAA -STA.w $2FB0 -STA.w $2FB4 -STA.w $2FB6 -LDA.w #$00E2 : STA.w $2C36 -STA.w $2FA8 -LDA.w #$00AE : STA.w $2CAC -LDA.w #$00AF : STA.w $2CAE -LDA.w #$007E : STA.w $2CB0 -LDA.w #$007F : STA.w $2CB2 -LDA.w #$04BA : STA.w $2CB4 -STA.w $2DB4 -STA.w $2EB4 -LDA.w #$00B0 : STA.w $2D2C -LDA.w #$0014 : STA.w $2D2E -LDA.w #$0015 : STA.w $2D30 -LDA.w #$00A8 : STA.w $2D32 -LDA.w #$04BB : STA.w $2D34 -STA.w $2E34 -STA.w $2F34 -LDA.w #$0089 : STA.w $2DAC -LDA.w #$001C : STA.w $2DAE -LDA.w #$001D : STA.w $2DB0 -LDA.w #$0076 : STA.w $2DB2 -LDA.w #$00F1 : STA.w $2E2C -LDA.w #$004E : STA.w $2E2E -LDA.w #$004F : STA.w $2E30 -LDA.w #$00D9 : STA.w $2E32 -LDA.w #$009A : STA.w $2EAC -LDA.w #$009B : STA.w $2EAE -LDA.w #$009C : STA.w $2EB0 -LDA.w #$0095 : STA.w $2EB2 + dw $0035, $2C28 + dw $0035, $2FAE + dw $0034, $2C2C + dw $0034, $2C2E + dw $0034, $2CB6 + dw $0034, $2D36 + dw $0034, $2DB6 + dw $0034, $2EB6 + dw $0034, $2F30 + dw $0034, $2F36 + dw $0034, $2FAA + dw $0034, $2FB0 + dw $0034, $2FB4 + dw $0034, $2FB6 + dw $00E2, $2C36 + dw $00E2, $2FA8 + dw $00AE, $2CAC + dw $00AF, $2CAE + dw $007E, $2CB0 + dw $007F, $2CB2 + dw $04BA, $2CB4 + dw $04BA, $2DB4 + dw $04BA, $2EB4 + dw $00B0, $2D2C + dw $0014, $2D2E + dw $0015, $2D30 + dw $00A8, $2D32 + dw $04BB, $2D34 + dw $04BB, $2E34 + dw $04BB, $2F34 + dw $0089, $2DAC + dw $001C, $2DAE + dw $001D, $2DB0 + dw $0076, $2DB2 + dw $00F1, $2E2C + dw $004E, $2E2E + dw $004F, $2E30 + dw $00D9, $2E32 + dw $009A, $2EAC + dw $009B, $2EAE + dw $009C, $2EB0 + dw $0095, $2EB2 -LDA.w #$0034 -STA.w $3028 -STA.w $302C -LDA.w #$0035 : STA.w $302A -STA.w $3032 -LDA.w #$00DA : STA.w $302E -LDA.w #$00E2 : STA.w $3030 + dw $0034, $3028 + dw $0034, $302C + dw $0035, $302A + dw $0035, $3032 + dw $00DA, $302E + dw $00E2, $3030 -LDA.w #$0485 : STA.w $2424 -STA.w $2426 -LDA.w #$0454 : STA.w $24A4 -STA.w $24A6 -LDA.w #$0476 : STA.w $2522 -LDA.w #$0460 : STA.w $2524 -STA.w $2526 -LDA.w #$04D7 : STA.w $2528 -LDA.w #$04DD : STA.w $2624 -LDA.w #$04DE : STA.w $2626 -LDA.w #$04E0 : STA.w $26A4 -LDA.w #$04E1 : STA.w $26A6 -LDA.w #$04E4 : STA.w $2724 -LDA.w #$04E5 : STA.w $2726 -LDA.w #$0034 : STA.w $27A4 -STA.w $27A6 + dw $0485, $2424 + dw $0485, $2426 + dw $0454, $24A4 + dw $0454, $24A6 + dw $0476, $2522 + dw $0460, $2524 + dw $0460, $2526 + dw $04D7, $2528 + dw $04DD, $2624 + dw $04DE, $2626 + dw $04E0, $26A4 + dw $04E1, $26A6 + dw $04E4, $2724 + dw $04E5, $2726 + dw $0034, $27A4 + dw $0034, $27A6 -LDA.w #$0486 : STA.w $26B0 -LDA.w #$0487 : STA.w $26B2 -LDA.w #$0454 : STA.w $272C -STA.w $272E -LDA.w #$048E : STA.w $2730 -LDA.w #$048F : STA.w $2732 -LDA.w #$04CA : STA.w $27AC -LDA.w #$045E : STA.w $27AE -LDA.w #$0494 : STA.w $27B0 -LDA.w #$0495 : STA.w $27B2 -LDA.w #$049E : STA.w $27B4 -LDA.w #$0499 : STA.w $282C -LDA.w #$0451 : STA.w $2830 -LDA.w #$0034 : STA.w $28AC -STA.w $28AE -STA.w $28B0 -LDA.w #$0454 : STA.w $274E -STA.w $2750 -LDA.w #$0608 : STA.w $2752 -LDA.w #$0459 : STA.w $27CE -STA.w $27D0 -LDA.w #$045E : STA.w $27D2 -LDA.w #$0451 : STA.w $284E -STA.w $2850 -STA.w $2852 -STA.w $282E -LDA.w #$0034 : STA.w $28CE -STA.w $28D0 -STA.w $28D2 + dw $0486, $26B0 + dw $0487, $26B2 + dw $0454, $272C + dw $0454, $272E + dw $048E, $2730 + dw $048F, $2732 + dw $04CA, $27AC + dw $045E, $27AE + dw $0494, $27B0 + dw $0495, $27B2 + dw $049E, $27B4 + dw $0499, $282C + dw $0451, $2830 + dw $0034, $28AC + dw $0034, $28AE + dw $0034, $28B0 + dw $0454, $274E + dw $0454, $2750 + dw $0608, $2752 + dw $0459, $27CE + dw $0459, $27D0 + dw $045E, $27D2 + dw $0451, $284E + dw $0451, $2850 + dw $0451, $2852 + dw $0451, $282E + dw $0034, $28CE + dw $0034, $28D0 + dw $0034, $28D2 -; CHECK IF AGAHNIM 2 IS DEAD AND WE HAVE ALREADY LANDED -LDA.w OverworldEventDataWRAM+$2B : AND.w #$0020 : BEQ .agahnim2Alive -LDA.w #$046D : STA.w $243E -LDA.w #$0E3A : STA.w $24BC -LDA.w #$0E3B : STA.w $24BE -LDA.w #$0E3E : STA.w $253C -LDA.w #$0E3F : STA.w $253E -LDA.w #$0490 : STA.w $25BE -LDA.w #$0E39 : STA.w $2440 -LDA.w #$0E3C : STA.w $24C0 -LDA.w #$0E3D : STA.w $24C2 -LDA.w #$0E40 : STA.w $2540 -LDA.w #$0E41 : STA.w $2542 -LDA.w #$0491 : STA.w $25C0 -.agahnim2Alive + dw !OWW_CustomCommand, .map1B_check_aga + dw $046D, $243E + dw $0E39, $2440 + dw $0E3A, $24BC + dw $0E3B, $24BE + dw $0E3C, $24C0 + dw $0E3D, $24C2 + dw $0E3E, $253C + dw $0E3F, $253E + dw $0E40, $2540 + dw $0E41, $2542 + dw $0490, $25BE + dw $0491, $25C0 + +.map1B_no_hole ; add sign for Tower Entry -LDA.w #$0101 : STA.w $7E222C -LDA.w #$0101 : STA.w $7E2252 + dw $0101, $222C + dw $0101, $2252 + + dw !OWW_END + +.map1B_check_aga + LDA.w OverworldEventDataWRAM+$2B + AND.w #$0020 + BNE ++ + + LDY.w #.map1B_no_hole + +++ RTS + +;--------------------------------------------------------------------------------------------------- + +.map29 + dw !OWW_InvertedOnly + + ; singles + dw $0036, $2386 + + dw !OWW_ArbitraryRLE + dw $0034 ; tile + dw $2288, $2308, $2388, $2408 + dw $2488, $248A|!OWW_STOP + + dw !OWW_END + +;--------------------------------------------------------------------------------------------------- + +.map31 + dw !OWW_InvertedOnly + + ; singles + dw $017E, $20CE + dw $017E, $2050 + dw $0183, $20D0 + dw $0183, $214E + + dw !OWW_StripeRLE|!OWW_Horizontal|OWW_RLESize(4) + dw $0034, $2050 + + dw !OWW_StripeRLE|!OWW_Horizontal|OWW_RLESize(7) + dw $00D1, $2052 + + dw !OWW_StripeRLE|!OWW_Horizontal|OWW_RLESize(7) + dw $00D1, $21E6 + + 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 !OWW_StripeRLE|!OWW_Horizontal|OWW_RLESize(7) + dw $00DC, $21D2 + + dw !OWW_StripeRLE|!OWW_Horizontal|OWW_RLESize(6) + dw $00CC, $22E6 + + dw !OWW_StripeRLE|!OWW_Horizontal|OWW_RLESize(4) + dw $0034, $2452 + + dw !OWW_StripeRLE|!OWW_Horizontal|OWW_RLESize(8) + dw $06B4, $2562 + + dw !OWW_StripeRLE|!OWW_Horizontal|OWW_RLESize(7) + dw $0165, $25E4 + + dw !OWW_StripeRLE|!OWW_Horizontal|OWW_RLESize(4) + dw $0384, $24E8 + + dw !OWW_StripeRLE|!OWW_Horizontal|OWW_RLESize(4) + dw $0034, $23D0 + + dw !OWW_StripeRLE|!OWW_Horizontal|OWW_RLESize(4) + dw $0034, $22D2 + + ; TODO clean up and optimize + dw $00D2, $2060 + dw $00D0, $20E0 + dw $00D2, $20E2 + dw $0153, $2150 + dw $00C8, $2160 + dw $00D0, $2162 + dw $00D2, $2164 + dw $0153, $21CE + dw $0153, $21D0 + dw $00CA, $21E0 + dw $00C8, $21E2 + dw $00D0, $21E4 + dw $00DC, $224C + dw $0178, $224E + dw $0153, $2250 + dw $00E3, $2252 + dw $00E3, $2254 + dw $00CA, $2262 + dw $00C8, $2264 + dw $00C9, $22CC + dw $0153, $22CE + dw $0186, $22D0 + dw $00D3, $22E2 + dw $0302, $22E4 + dw $00CC, $234C + dw $0186, $234E + dw $00CE, $2362 + dw $00C5, $2364 + dw $06AB, $2366 + dw $00AA, $2368 + dw $0384, $236A + dw $00AB, $236C + dw $0384, $236E + dw $0759, $23C8 + dw $0757, $23CA + dw $01FF, $23CC + dw $017C, $23CE + dw $015C, $23E0 + dw $00CE, $23E2 + dw $00C5, $23E4 + dw $06AB, $23E6 + dw $0384, $23EC + dw $0759, $244A + dw $0757, $244C + dw $01FF, $244E + dw $017C, $2450 + dw $0100, $245A + dw $01C2, $245C + dw $0218, $245E + dw $0162, $2460 + dw $0106, $2462 + dw $0107, $2464 + dw $06AB, $2466 + dw $0384, $246A + dw $0759, $24CC + dw $0757, $24CE + dw $01FF, $24D0 + dw $017C, $24D2 + dw $0034, $24D4 + dw $0034, $24D6 + dw $0100, $24D8 + dw $0104, $24DA + dw $01D4, $24DC + dw $0219, $24DE + dw $0106, $24E0 + dw $0107, $24E2 + dw $06AB, $24E4 + dw $06AB, $24E6 + dw $0759, $254E + dw $0757, $2550 + dw $0179, $2552 + dw $0034, $2554 + dw $0034, $2556 + dw $0104, $2558 + dw $0105, $255A + dw $0106, $255C + dw $0166, $255E + dw $0766, $2560 + dw $06E5, $25D0 + dw $0179, $25D2 + dw $0034, $25D4 + dw $0034, $25D6 + dw $00CE, $25D8 + dw $00C4, $25DA + dw $00C5, $25DC + dw $0171, $25DE + dw $06E5, $2650 + dw $01FF, $2652 + dw $017C, $2654 + dw $0034, $2656 + dw $00CE, $2658 + dw $00C4, $265A + dw $00C5, $265C + dw $0759, $26D0 + dw $0757, $26D2 + dw $01FF, $26D4 + dw $017C, $26D6 + dw $00CE, $26D8 + dw $00C4, $26DA + dw $00C5, $26DC + dw $0759, $2752 + dw $0757, $2754 + dw $01FF, $2756 + dw $00CE, $2758 + dw $00C4, $275A + dw $00C5, $275C + dw $06AB, $2760 + dw $06E4, $27D2 + dw $0759, $27D4 + dw $06E1, $27D6 + dw $02FD, $27D8 + dw $00CF, $27DA + dw $06E4, $2852 + dw $06E4, $2854 + dw $06E4, $2856 + dw $02FD, $2858 + dw $00CA, $285A + dw $06E4, $28D4 + dw $06E4, $28D6 + dw $06E7, $28D8 + dw $00C8, $28DA + dw $00CA, $28DC + dw $06E4, $2956 + dw $06E4, $2958 + dw $06E7, $295A + dw $00C8, $295C + dw $06E4, $29D8 + dw $06E4, $29DA + dw $06E7, $29DC + dw $0769, $38F8 + dw $06E1, $38FA + dw $06E1, $38FC + dw $06E1, $38FE + dw $06E3, $3978 + dw $02E5, $397A + dw $02EC, $397C + dw $02E5, $397E + dw $02F0, $39F8 + dw $02F3, $39FA + dw $02F3, $39FC + dw $02F3, $39FE + dw $0034, $3D94 + + dw !OWW_END + +;--------------------------------------------------------------------------------------------------- + +.map38 + dw !OWW_InvertedOnly + + dw $0034, $3D94 + + dw !OWW_END + +;--------------------------------------------------------------------------------------------------- + + +.map3C + dw !OWW_InvertedOnly + + dw !OWW_ArbitraryRLE + dw $02E5 + dw $27AE, $282C, $282E, $2832 + dw $28AC, $28AE, $2928, $292C + dw $29A8, $29B0, $2A28, $2A30 + dw $2AAC, $2AB2|!OWW_STOP + + dw !OWW_ArbitraryRLE + dw $078A + dw $28AA, $28B0, $2AAA, $2B2A + dw $2B30, $2BAE|!OWW_STOP + + dw !OWW_ArbitraryRLE + dw $02EB + dw $28B4, $2930, $29AE, $2A2C + dw $2A32, $2AAE|!OWW_STOP + + dw !OWW_ArbitraryRLE + dw $02EC + dw $2934, $2B28, $2B2C, $2B2E + dw $2B32|!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_ArbitraryRLE + dw $0034 + dw $270E, $278E, $2790|!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 over written in a second + dw !OWW_StripeRLE|!OWW_Horizontal|OWW_RLESize(13) + dw $0034, $2A06 + + ; leave these after the above + dw $0071, $2A0E + dw $0071, $2A1A + + ; a couple of these will be over written in a second + dw !OWW_StripeRLE|!OWW_Horizontal|OWW_RLESize(13) + dw $0034, $2A84 + + ; leave these after the above + dw $0035, $2A8C + + ; TODO clean up and optimize + dw $015C, $2A20 + dw $0104, $2A22 + dw $01D4, $2A24 + dw $016A, $2A82 + dw $015C, $2A9E + dw $0162, $2AA0 + dw $016A, $2B02 + dw $00E2, $2B04 + dw $0034, $2B06 + dw $0035, $2B08 + dw $0034, $2B0A + dw $00E2, $2B0C + dw $0034, $2B0E + dw $00E2, $2B10 + dw $0034, $2B12 + dw $00DA, $2B14 + dw $00DA, $2B16 + dw $00DA, $2B18 + dw $0034, $2B1A + dw $015C, $2B1C + dw $0162, $2B1E + dw $016A, $2B82 + dw $0034, $2B84 + dw $0034, $2B86 + dw $0034, $2B88 + dw $0034, $2B8A + dw $00E2, $2B8C + dw $0034, $2B8E + dw $00E2, $2B90 + dw $0034, $2B92 + dw $0034, $2B94 + dw $00DA, $2B96 + dw $0034, $2B98 + dw $0034, $2B9A + dw $0162, $2B9C + dw $016A, $2C02 + dw $0034, $2C04 + dw $0035, $2C06 + dw $0034, $2C08 + dw $0034, $2C0A + dw $00E2, $2C0C + dw $0034, $2C0E + dw $00E2, $2C10 + dw $0034, $2C12 + dw $0034, $2C14 + dw $00DA, $2C16 + dw $0034, $2C18 + dw $00F8, $2C1A + dw $00CE, $2C1C + dw $016A, $2C82 + dw $0160, $2C84 + dw $0034, $2C86 + dw $0034, $2C88 + dw $0034, $2C8A + dw $0071, $2C8C + dw $00E2, $2C8E + dw $0034, $2C90 + dw $0034, $2C92 + dw $0034, $2C94 + dw $00DA, $2C96 + dw $0034, $2C98 + dw $015C, $2C9A + dw $00CE, $2C9C + dw $0167, $2D04 + dw $0160, $2D06 + dw $00DA, $2D08 + dw $0034, $2D0A + dw $0034, $2D0C + dw $0035, $2D0E + dw $0034, $2D10 + dw $0036, $2D12 + dw $0034, $2D14 + dw $0034, $2D16 + dw $015C, $2D18 + dw $0162, $2D1A + dw $0167, $2D86 + dw $0160, $2D88 + dw $0034, $2D8A + dw $0034, $2D8C + dw $0034, $2D8E + dw $0035, $2D90 + dw $00DA, $2D92 + dw $0034, $2D94 + dw $015C, $2D96 + dw $0162, $2D98 + dw $0172, $2E08 + dw $015E, $2E0A + dw $015E, $2E0C + dw $015E, $2E0E + dw $015E, $2E10 + dw $015E, $2E12 + dw $015E, $2E14 + dw $0174, $2E16 RTS -} -map041: -{ -LDA.w #$0034 : STA.w $2288 -STA.w $2308 -STA.w $2388 -STA.w $2408 -STA.w $2488 -STA.w $248A -LDA.w #$0036 : STA.w $2386 -RTS -} +;--------------------------------------------------------------------------------------------------- -map049: -{ -LDA.w #$017E : STA.w $2050 -STA.w $20CE -LDA.w #$00D1 : STA.w $2052 -STA.w $2054 -STA.w $2056 -STA.w $2058 -STA.w $205A -STA.w $205C -STA.w $205E -STA.w $21E6 -STA.w $21E8 -STA.w $21EA -STA.w $21EC -STA.w $21EE -STA.w $21F0 -LDA.w #$00D2 : STA.w $2060 -STA.w $20E2 -STA.w $2164 -LDA.w #$0183 : STA.w $20D0 -STA.w $214E -LDA.w #$00C9 : STA.w $20D2 -STA.w $20D4 -STA.w $20D6 -STA.w $20D8 -STA.w $20DA -STA.w $20DC -STA.w $20DE -STA.w $2152 -STA.w $2154 -STA.w $2156 -STA.w $2158 -STA.w $215A -STA.w $215C -STA.w $215E -STA.w $2266 -STA.w $2268 -STA.w $226A -STA.w $226C -STA.w $226E -STA.w $2270 -STA.w $22CC -LDA.w #$00D0 : STA.w $20E0 -STA.w $2162 -STA.w $21E4 -LDA.w #$0153 : STA.w $2150 -STA.w $21CE -STA.w $21D0 -STA.w $2250 -STA.w $22CE -LDA.w #$00C8 : STA.w $2160 -STA.w $21E2 -STA.w $2264 -STA.w $28DA -STA.w $295C -LDA.w #$00DC : STA.w $21D2 -STA.w $21D4 -STA.w $21D6 -STA.w $21D8 -STA.w $21DA -STA.w $21DC -STA.w $21DE -STA.w $224C -LDA.w #$00CA : STA.w $21E0 -STA.w $2262 -STA.w $285A -STA.w $28DC -LDA.w #$0178 : STA.w $224E -LDA.w #$00E3 : STA.w $2252 -STA.w $2254 -LDA.w #$0186 : STA.w $22D0 -STA.w $234E -LDA.w #$0034 : STA.w $22D2 -STA.w $22D4 -STA.w $22D6 -STA.w $2350 -STA.w $2352 -STA.w $2354 -STA.w $2356 -STA.w $23D0 -STA.w $23D2 -STA.w $23D4 -STA.w $23D6 -STA.w $2452 -STA.w $2454 -STA.w $2456 -STA.w $2458 -STA.w $24D4 -STA.w $24D6 -STA.w $2554 -STA.w $2556 -STA.w $25D4 -STA.w $25D6 -STA.w $2656 -LDA.w #$00D3 : STA.w $22E2 -LDA.w #$0302 : STA.w $22E4 -LDA.w #$00CC : STA.w $22E6 -STA.w $22E8 -STA.w $22EA -STA.w $22EC -STA.w $22EE -STA.w $22F0 -STA.w $234C -LDA.w #$00CE : STA.w $2362 -STA.w $23E2 -STA.w $25D8 -STA.w $2658 -STA.w $26D8 -STA.w $2758 -LDA.w #$00C5 : STA.w $2364 -STA.w $23E4 -STA.w $25DC -STA.w $265C -STA.w $26DC -STA.w $275C -LDA.w #$06AB : STA.w $2366 -STA.w $23E6 -STA.w $2466 -STA.w $24E4 -STA.w $24E6 -STA.w $2760 -LDA.w #$00AA : STA.w $2368 -LDA.w #$0384 : STA.w $236A -STA.w $236E -STA.w $23EC -STA.w $246A -STA.w $24E8 -STA.w $24EA -STA.w $24EC -STA.w $24EE -LDA.w #$00AB : STA.w $236C -LDA.w #$0759 : STA.w $23C8 -STA.w $244A -STA.w $24CC -STA.w $254E -STA.w $26D0 -STA.w $2752 -STA.w $27D4 -LDA.w #$0757 : STA.w $23CA -STA.w $244C -STA.w $24CE -STA.w $2550 -STA.w $26D2 -STA.w $2754 -LDA.w #$01FF : STA.w $23CC -STA.w $244E -STA.w $24D0 -STA.w $2652 -STA.w $26D4 -STA.w $2756 -LDA.w #$017C : STA.w $23CE -STA.w $2450 -STA.w $24D2 -STA.w $2654 -STA.w $26D6 -LDA.w #$015C : STA.w $23E0 -LDA.w #$0100 : STA.w $245A -STA.w $24D8 -LDA.w #$01C2 : STA.w $245C -LDA.w #$0218 : STA.w $245E -LDA.w #$0162 : STA.w $2460 -LDA.w #$0106 : STA.w $2462 -STA.w $24E0 -STA.w $255C -LDA.w #$0107 : STA.w $2464 -STA.w $24E2 -LDA.w #$0104 : STA.w $24DA -STA.w $2558 -LDA.w #$01D4 : STA.w $24DC -LDA.w #$0219 : STA.w $24DE -LDA.w #$0179 : STA.w $2552 -STA.w $25D2 -LDA.w #$0105 : STA.w $255A -LDA.w #$0166 : STA.w $255E -LDA.w #$0766 : STA.w $2560 -LDA.w #$06B4 : STA.w $2562 -STA.w $2564 -STA.w $2566 -STA.w $2568 -STA.w $256A -STA.w $256C -STA.w $256E -STA.w $2570 -LDA.w #$06E5 : STA.w $25D0 -STA.w $2650 -LDA.w #$00C4 : STA.w $25DA -STA.w $265A -STA.w $26DA -STA.w $275A -LDA.w #$0171 : STA.w $25DE -LDA.w #$0165 : STA.w $25E4 -STA.w $25E6 -STA.w $25E8 -STA.w $25EA -STA.w $25EC -STA.w $25EE -STA.w $25F0 -LDA.w #$06E4 : STA.w $27D2 -STA.w $2852 -STA.w $2854 -STA.w $2856 -STA.w $28D4 -STA.w $28D6 -STA.w $2956 -STA.w $2958 -STA.w $29D8 -STA.w $29DA -LDA.w #$06E1 : STA.w $27D6 -LDA.w #$02FD : STA.w $27D8 -STA.w $2858 -LDA.w #$00CF : STA.w $27DA -LDA.w #$06E7 : STA.w $28D8 -STA.w $295A -STA.w $29DC +.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, ReliableOWWSentinel + + dw $0101, $2550 ; GT sign + + dw !OWW_END + +;--------------------------------------------------------------------------------------------------- + +.map44 + dw !OWW_InvertedOnly + + dw !OWW_StripeRLE|!OWW_Vertical|OWW_RLESize(5) + dw $0E96, $235E + + dw !OWW_StripeRLE|!OWW_Vertical|OWW_RLESize(5) + dw $0E97, $2360 + + dw $0E94, $25DE + dw $0E95, $25E0 + dw $0212, $2BE0 + + dw !OWW_Stripe|!OWW_Vertical + dw $275E + dw $0180, $0184, $0184|!OWW_STOP + + dw !OWW_Stripe|!OWW_Vertical + dw $276E + dw $0181, $0185, $0185|!OWW_STOP + + 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 + +;--------------------------------------------------------------------------------------------------- + +.map4E + dw !OWW_InvertedOnly + + dw $0239, $3D4A + + 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 + + dw !OWW_Stripe|!OWW_Vertical + dw $2424 + dw $02F3, $00C9, $00E3 + + 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_ArbitraryRLE + dw $0034 ; tile + dw $3BB6, $3BBA, $3BBC, $3C3A + dw $3C3C, $3C3E|!OWW_STOP -LDA.w #$0769 : STA.w $38F8 -LDA.w #$06E1 : STA.w $38FA -STA.w $38FC -STA.w $38FE -LDA.w #$06E3 : STA.w $3978 -LDA.w #$02E5 : STA.w $397A -STA.w $397E -LDA.w #$02EC : STA.w $397C -LDA.w #$02F0 : STA.w $39F8 -LDA.w #$02F3 : STA.w $39FA -STA.w $39FC -STA.w $39FE + ; pegs + dw !OWW_ArbitraryRLE + 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_ArbitraryRLE + dw $021B ; tile + dw $3218, $3222, $3298, $32A2 + dw $331A, $331C, $331E, $3320 -.map056 -LDA.w #$0034 : STA.w $3D94 + dw !OWW_CustomCommand, .map5B_pick_warp_tile -RTS -} + dw !OWW_Stripe|!OWW_Horizontal + dw $39C0 ; start + dw $0324, $0324, $0324, $0325, $02D5 + dw !OWW_SKIP, $02CC|!OWW_STOP -map060: -{ -LDA.w #$02E5 : STA.w $27AE -STA.w $282C -STA.w $282E -STA.w $2832 -STA.w $28AC -STA.w $28AE -STA.w $2928 -STA.w $292C -STA.w $29A8 -STA.w $29B0 -STA.w $2A28 -STA.w $2A30 -STA.w $2AAC -STA.w $2AB2 -LDA.w #$078A : STA.w $28AA -STA.w $28B0 -STA.w $2AAA -STA.w $2B2A -STA.w $2B30 -STA.w $2BAE -LDA.w #$02EB : STA.w $28B4 -STA.w $2930 -STA.w $29AE -STA.w $2A2C -STA.w $2A32 -STA.w $2AAE -LDA.w #$02EC : STA.w $2934 -STA.w $2B28 -STA.w $2B2C -STA.w $2B2E -STA.w $2B32 -RTS -} + dw $02CC, $39D4 + dw $02D5, $32D2 -map050: -{ -LDA.w #$01D5 : STA.w $2486 -LDA.w #$0165 : STA.w $2506 -LDA.w #$0166 : STA.w $2508 -STA.w $258A -LDA.w #$00C6 : STA.w $2586 -STA.w $2608 -STA.w $2688 -STA.w $2708 -STA.w $2788 -STA.w $2806 -STA.w $2808 -LDA.w #$0171 : STA.w $2588 -LDA.w #$021C : STA.w $260A -STA.w $268A -STA.w $270A -STA.w $278A -LDA.w #$0034 : STA.w $270E -STA.w $278E -STA.w $2790 -STA.w $280E -STA.w $2810 -STA.w $2812 -STA.w $2814 -STA.w $2816 -STA.w $2818 -STA.w $281A -STA.w $281C -STA.w $288E -STA.w $2892 -STA.w $2894 -STA.w $2896 -STA.w $2898 -STA.w $289A -STA.w $289C -STA.w $289E -STA.w $290E -STA.w $2910 -STA.w $2912 -STA.w $2918 -STA.w $291A -STA.w $291C -STA.w $291E -STA.w $2920 -STA.w $298C -STA.w $298E -STA.w $2990 -STA.w $2992 -STA.w $2998 -STA.w $299A -STA.w $299E -STA.w $29A0 -STA.w $2A06 -STA.w $2A08 -STA.w $2A0A -STA.w $2A0C -STA.w $2A10 -STA.w $2A12 -STA.w $2A14 -STA.w $2A16 -STA.w $2A18 -STA.w $2A1C -STA.w $2A1E -STA.w $2A84 -STA.w $2A86 -STA.w $2A88 -STA.w $2A8C -STA.w $2A8E -STA.w $2A90 -STA.w $2A92 -STA.w $2A94 -STA.w $2A96 -STA.w $2A98 -STA.w $2A9A -STA.w $2A9C -STA.w $2B06 -STA.w $2B0A -STA.w $2B0E -STA.w $2B12 -STA.w $2B1A -STA.w $2B84 -STA.w $2B86 -STA.w $2B88 -STA.w $2B8A -STA.w $2B8E -STA.w $2B92 -STA.w $2B94 -STA.w $2B98 -STA.w $2B9A -STA.w $2C04 -STA.w $2C08 -STA.w $2C0A -STA.w $2C0E -STA.w $2C12 -STA.w $2C14 -STA.w $2C18 -STA.w $2C86 -STA.w $2C88 -STA.w $2C8A -STA.w $2C90 -STA.w $2C92 -STA.w $2C94 -STA.w $2C98 -STA.w $2D0A -STA.w $2D0C -STA.w $2D10 -STA.w $2D14 -STA.w $2D16 -STA.w $2D8A -STA.w $2D8C -STA.w $2D8E -STA.w $2D94 -LDA.w #$016A : STA.w $278C -STA.w $280C -STA.w $2A82 -STA.w $2B02 -STA.w $2B82 -STA.w $2C02 -STA.w $2C82 -LDA.w #$01FA : STA.w $288C -LDA.w #$00DA : STA.w $2890 -STA.w $299C -STA.w $2B14 -STA.w $2B16 -STA.w $2B18 -STA.w $2B96 -STA.w $2C16 -STA.w $2C96 -STA.w $2D08 -STA.w $2D92 -LDA.w #$0186 : STA.w $290C -STA.w $298A -STA.w $2A04 -LDA.w #$0036 : STA.w $2914 -STA.w $2916 -STA.w $2994 -STA.w $2996 -STA.w $2D12 -LDA.w #$00E4 : STA.w $2986 -LDA.w #$00E5 : STA.w $2988 -LDA.w #$0100 : STA.w $29A2 -LDA.w #$0071 : STA.w $2A0E -STA.w $2A1A -STA.w $2C8C -LDA.w #$015C : STA.w $2A20 -STA.w $2A9E -STA.w $2B1C -STA.w $2C9A -STA.w $2D18 -STA.w $2D96 -LDA.w #$0104 : STA.w $2A22 -LDA.w #$01D4 : STA.w $2A24 -LDA.w #$0035 : STA.w $2A8A -STA.w $2B08 -STA.w $2C06 -STA.w $2D0E -STA.w $2D90 -LDA.w #$0162 : STA.w $2AA0 -STA.w $2B1E -STA.w $2B9C -STA.w $2D1A -STA.w $2D98 -LDA.w #$00E2 : STA.w $2B04 -STA.w $2B0C -STA.w $2B10 -STA.w $2B8C -STA.w $2B90 -STA.w $2C0C -STA.w $2C10 -STA.w $2C8E -LDA.w #$00F8 : STA.w $2C1A -LDA.w #$00CE : STA.w $2C1C -STA.w $2C9C -LDA.w #$0160 : STA.w $2C84 -STA.w $2D06 -STA.w $2D88 -LDA.w #$0167 : STA.w $2D04 -STA.w $2D86 -LDA.w #$0172 : STA.w $2E08 -LDA.w #$015E : STA.w $2E0A -STA.w $2E0C -STA.w $2E0E -STA.w $2E10 -STA.w $2E12 -STA.w $2E14 -LDA.w #$0174 : STA.w $2E16 + dw !OWW_Stripe|!OWW_Horizontal + dw $3A40 ; start + dw $0326, $0326, $0326 + dw $0327, $02F7, !OWW_SKIP + dw $02E3, $02E3|!OWW_STOP -RTS -} + dw !OWW_Stripe|!OWW_Horizontal + dw $3AC0 ; start + dw $0233, $0233, $0233, $0234 + dw $02F6, $0396|!OWW_STOP -map051: -{ -LDA.w #$0034 : STA.w $22A8 -RTS -} + dw !OWW_Stripe|!OWW_Horizontal + dw $3B40 + dw $0333, $0333, $03AA, $03A3 + dw $0234, $0397|!OWW_STOP -map053: -{ -LDA.w #$02F1 : STA.w $2BB0 -LDA.w #$02F2 : STA.w $2BB2 -LDA.w #$0184 : STA.w $2C30 -LDA.w #$0185 : STA.w $2C32 -LDA.w #$0392 : STA.w $2CB0 -LDA.w #$0393 : STA.w $2CB2 -LDA.w #$0394 : STA.w $2D30 -LDA.w #$0395 : STA.w $2D32 -LDA.w #$0034 : STA.w $2F56 + dw !OWW_Stripe|!OWW_Horizontal + dw $3BC0 ; start + dw $0034, $0034, $029C, $0034 + dw $03A3|!OWW_STOP -RTS -} + dw !OWW_Stripe|!OWW_Horizontal + dw $3C40 ; start + dw $0034, $0034, $010A|!OWW_STOP -map058: -{ -LDA.w #$0774 : STA.w $2800 -LDA.w #$06E1 : STA.w $2802 -LDA.w #$0757 : STA.w $2804 -STA.w $2886 -LDA.w #$0779 : STA.w $2880 -LDA.w #$02EC : STA.w $2882 -LDA.w #$0759 : STA.w $2884 -STA.w $2906 -LDA.w #$02E5 : STA.w $2900 -STA.w $2902 -STA.w $2904 -LDA.w #$076A : STA.w $2908 -LDA.w #$02F3 : STA.w $2980 -STA.w $2982 -LDA.w #$02F1 : STA.w $2984 -LDA.w #$02F2 : STA.w $2986 -LDA.w #$038A : STA.w $2988 -LDA.w #$0184 : STA.w $2A04 -STA.w $2A84 -STA.w $2B04 -STA.w $2B84 -LDA.w #$0185 : STA.w $2A06 -STA.w $2A86 -STA.w $2B06 -STA.w $2B86 + dw !OWW_StripeRLE|!OWW_Horizontal|OWW_RLESize(17) + dw $010B, $3C46 -RTS -} + dw !OWW_END -map068: -{ -LDA.w #$0E96 : STA.w $235E -STA.w $23DE -STA.w $245E -STA.w $24DE -STA.w $255E -LDA.w #$0E97 : STA.w $2360 -STA.w $23E0 -STA.w $2460 -STA.w $24E0 -STA.w $2560 -LDA.w #$0E94 : STA.w $25DE -LDA.w #$0E95 : STA.w $25E0 -LDA.w #$0180 : STA.w $275E -LDA.w #$0181 : STA.w $2760 -LDA.w #$0184 : STA.w $27DE -STA.w $285E -LDA.w #$0185 : STA.w $27E0 -STA.w $2860 -LDA.w #$0212 : STA.w $2BE0 +.map5B_pick_warp_tile + LDX.w #$0034 -RTS -} + LDA.l ProgressIndicator + AND.w #$00FF + CMP.w #$0003 + BNE ++ -map071: -{ -LDA.w #$0398 : STA.w $25A0 -LDA.w #$0522 : STA.w $25A2 -LDA.w #$0125 : STA.w $2620 -LDA.w #$0126 : STA.w $2622 -LDA.w #$0239 : STA.w $269E -STA.w $26A4 + LDX.w #$0212 -RTS -} +++ STX.w $3BBE -map078: -{ -LDA.w #$0239 : STA.w $3D4A -RTS -} + RTS -map080: -{ -LDA.w #$020F : STA.w $2B2E -RTS -} +;--------------------------------------------------------------------------------------------------- -map084: -{ -LDA.w #$02F3 : STA.w $2422 -STA.w $2424 -LDA.w #$00C9 : STA.w $24A2 -STA.w $24A4 -LDA.w #$00E3 : STA.w $2522 -STA.w $2524 -RTS -} +.map6F + dw !OWW_InvertedOnly -map091: ;Pyramid -{ -LDA.w #$0323 : STA.w $39B6 -LDA.w #$0324 : STA.w $39B8 -STA.w $39BA -STA.w $39BC -STA.w $39BE -LDA.w #$02FE : STA.w $3A34 -LDA.w #$02FF : STA.w $3A36 -LDA.w #$0326 : STA.w $3A38 -STA.w $3A3A -STA.w $3A3C -STA.w $3A3E -LDA.w #$039D : STA.w $3AB2 -LDA.w #$0303 : STA.w $3AB4 -LDA.w #$0232 : STA.w $3AB6 -STA.w $3B34 -LDA.w #$0233 : STA.w $3AB8 -STA.w $3ABA -STA.w $3ABC -STA.w $3ABE -LDA.w #$03A2 : STA.w $3B32 -LDA.w #$0235 : STA.w $3B36 -STA.w $3BB4 -LDA.w #$046A : STA.w $3B38 -LDA.w #$0333 : STA.w $3B3A -STA.w $3B3C -STA.w $3B3E -LDA.w #$0034 : STA.w $3BB6 -STA.w $3BBA -STA.w $3BBC -STA.w $3C3A -STA.w $3C3C -STA.w $3C3E + dw $020F, $2BB2 -;Added Pegs on pyramid map -;{ -STA.w $321C -STA.w $329C -STA.w $32A0 + dw !OWW_END -LDA.w #$0071 : STA.w $321E -LDA.w #$00DA : STA.w $3220 -STA.w $329A -LDA.w #$00E1 : STA.w $329E -LDA.w #$0382 : STA.w $3318 -LDA.w #$037C : STA.w $3322 +;--------------------------------------------------------------------------------------------------- -LDA.w #$021B : STA.w $3218 -STA.w $3222 -STA.w $3298 -STA.w $32A2 -STA.w $331A -STA.w $331C -STA.w $331E -STA.w $3320 -LDA.w #$00E2 : STA.w $321A -;} +.map73 + dw !OWW_InvertedOnly -LDA.w #$00F2 : STA.w $3BB8 -LDA.w #$0108 : STA.w $3C38 + dw $020F, $22A8 + dw !OWW_END -;Warp Tile agah defeated -LDA.w #$0034 : STA.w $3BBE ;Tile when no warp -LDA.l ProgressIndicator : AND.w #$00FF : CMP.w #$0003 : BNE .agahnimAlive -LDA.w #$0212 : STA.w $3BBE ;warp -.agahnimAlive +;--------------------------------------------------------------------------------------------------- +.map75 + dw !OWW_InvertedOnly -LDA.w #$0324 : STA.w $39C0 -STA.w $39C2 -STA.w $39C4 -LDA.w #$0325 : STA.w $39C6 -LDA.w #$02D5 : STA.w $39C8 -STA.w $39D2 -LDA.w #$02CC : STA.w $39CC -STA.w $39D4 -LDA.w #$0326 : STA.w $3A40 -STA.w $3A42 -STA.w $3A44 -LDA.w #$0327 : STA.w $3A46 -LDA.w #$02F7 : STA.w $3A48 -LDA.w #$02E3 : STA.w $3A4C -STA.w $3A4E -LDA.w #$0233 : STA.w $3AC0 -STA.w $3AC2 -STA.w $3AC4 -LDA.w #$0234 : STA.w $3AC6 -STA.w $3B48 -LDA.w #$02F6 : STA.w $3AC8 -LDA.w #$0396 : STA.w $3ACA -LDA.w #$0333 : STA.w $3B40 -STA.w $3B42 -LDA.w #$03AA : STA.w $3B44 -LDA.w #$03A3 : STA.w $3B46 -STA.w $3BC8 -LDA.w #$0397 : STA.w $3B4A -LDA.w #$0034 : STA.w $3BC0 -STA.w $3BC2 -STA.w $3BC6 -STA.w $3C40 -STA.w $3C42 -LDA.w #$029C : STA.w $3BC4 -LDA.w #$010A : STA.w $3C44 -LDA.w #$010B : STA.w $3C46 -STA.w $3C48 -STA.w $3C4A -STA.w $3C4C -STA.w $3C4E -STA.w $3C50 -STA.w $3C52 -STA.w $3C54 -STA.w $3C56 -STA.w $3C58 -STA.w $3C5A -STA.w $3C5C -STA.w $3C5E -STA.w $3C60 -STA.w $3C62 -STA.w $3C64 -STA.w $3C66 + ; singles + dw $0239, $2F50 -RTS -} + dw !OWW_StripeRLE|!OWW_Horizontal|OWW_RLESize(4) + dw $0BA3, $3054 -map111: -{ -LDA.w #$020F : STA.w $2BB2 -RTS -} + dw !OWW_StripeRLE|!OWW_Horizontal|OWW_RLESize(4) + dw $0BA3, $3254 -map115: -{ -LDA.w #$020F : STA.w $22A8 -RTS -} + dw !OWW_StripeRLE|!OWW_Vertical|OWW_RLESize(3) + dw $0BAD, $30D6 -map120: -{ -LDA.w #$0239 : STA.w $3D94 -RTS -} + dw !OWW_StripeRLE|!OWW_Vertical|OWW_RLESize(3) + dw $0BA9, $30D8 -map117: -{ -;118 -LDA.w #$0239 : STA.w $2F50 -LDA.w #$0BA3 : STA.w $2F52 -STA.w $2FCE -STA.w $2FD0 + dw !OWW_Stripe|!OWW_Vertical + dw $30D4 ; start + dw $0BAC, $0BC5, $0BCA|!OWW_STOP -;126 + dw !OWW_Stripe|!OWW_Vertical + dw $30DA ; start + dw $0BAA, $0BC8, $0BCD|!OWW_STOP -LDA.w #$0BA3 : STA.w $3054 -STA.w $3056 -STA.w $3058 -STA.w $305A -STA.w $3254 -STA.w $3256 -STA.w $3258 -STA.w $325A -LDA.w #$0BAC : STA.w $30D4 -LDA.w #$0BAD : STA.w $30D6 -STA.w $3156 -STA.w $31D6 -LDA.w #$0BA9 : STA.w $30D8 -STA.w $3158 -STA.w $31D8 -LDA.w #$0BAA : STA.w $30DA -LDA.w #$0BC5 : STA.w $3154 -LDA.w #$0BC8 : STA.w $315A -LDA.w #$0BCA : STA.w $31D4 -LDA.w #$0BCD : STA.w $31DA -RTS -} + dw !OWW_ArbitraryRLE + dw $0BA3 ; tile + dw $2F52, $2FCE, $2FD0|!OWW_STOP + + dw !OWW_END + +;--------------------------------------------------------------------------------------------------- + +.map78 + dw !OWW_InvertedOnly + + dw $0239, $3D94 + + dw !OWW_END + +;--------------------------------------------------------------------------------------------------- + +;=================================================================================================== diff --git a/quickswap.asm b/quickswap.asm index d9c1fa5..f8080d9 100644 --- a/quickswap.asm +++ b/quickswap.asm @@ -11,7 +11,7 @@ QuickSwap: LDA.l QuickSwapFlag : BEQ .done LDA.w ItemCursor : BEQ .done ; Skip everything if we don't have any items - LDY.b #$14 + LDY.b #$14 PHX XBA ; restore the stashed value CMP.b #$30 : BNE +