From 830e86f199be2be2a1cc2cc765c0b148e0297b99 Mon Sep 17 00:00:00 2001 From: spannerisms <32842036+spannerisms@users.noreply.github.com> Date: Sat, 11 Feb 2023 05:22:27 -0500 Subject: [PATCH] inverted maps untested, unfinished --- data/customitems.png | Bin 3852 -> 3862 bytes hooks.asm | 10 +- invertedmaps.asm | 2505 ++++++++++++++++++++++++------------------ quickswap.asm | 2 +- 4 files changed, 1462 insertions(+), 1055 deletions(-) diff --git a/data/customitems.png b/data/customitems.png index 7494c64e9df537ff7449e1adf81c6a95e72a576c..93adf4ccc85ecc48e31a34cc0616f61ce093c721 100644 GIT binary patch literal 3862 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 O00002B 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 +