SHARE
TWEET

unrolled LoadMapPart

luckytyphlosion Dec 21st, 2017 (edited) 76 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. loadmapblock: MACRO
  2.     ld a, [de]
  3.     inc de
  4.     and a
  5.     jr nz, .notMapBorderBlock\@
  6.     ld a, [hMapBorderBlock]
  7. .notMapBorderBlock\@
  8. ENDM
  9.  
  10. nocarry: MACRO
  11.     jr nc, .noCarry\@
  12.     dec h
  13. .noCarry\@
  14. ENDM
  15.  
  16. addmapwidthoffset: MACRO
  17.     ld a, [hMapWidthPlus6]
  18.     add e
  19.     ld e, a
  20.     jr nc, .noCarry\@
  21.     inc d
  22. .noCarry\@
  23. ENDM
  24.  
  25. _LoadMapPart::
  26.     ld a, [wOverworldMapAnchor]
  27.     ld e, a
  28.     ld a, [wOverworldMapAnchor + 1]
  29.     ld d, a
  30.     ld a, [wMapBorderBlock]
  31.     ld [hMapBorderBlock], a
  32.     ld a, [wMapWidth]
  33.     inc a
  34.     ld [hMapWidthPlus6], a
  35.     ld a, [wMetatileStandingY]
  36.     add a
  37.     ld b, a
  38.     ld a, [wMetatileStandingX]
  39.     or b
  40.     ld b, a
  41.     ld a, [rSVBK]
  42.     push af
  43.     ld a, BANK(wDecompressedMetatiles)
  44.     ld [rSVBK], a
  45.     call .Function
  46.     pop af
  47.     ld [rSVBK], a
  48.     ret
  49.  
  50. .Function:
  51.     ld a, b
  52.     and a
  53.     jp z, .BlockY0BlockX0
  54.     dec a
  55.     jp z, .BlockY0BlockX1
  56.     coord hl, 0, 0
  57.     dec a
  58.     jp z, .BlockY1BlockX0
  59. ; block y1, block x1
  60.  
  61. .BlockY1BlockX1:
  62. ; LoadOneQuarterBottomRightMetatile
  63. .LoadOneQuarterBottomRightMetatile:
  64.     loadmapblock
  65.     ld b, d
  66.     ld c, e
  67.     swap a
  68.     ld d, a
  69.     and $f0
  70.     add 10
  71.     call .LoadOneQuarterMetatile
  72.     ld d, b
  73.     ld e, c
  74.  
  75.     coord hl, 2, 0
  76.     ld bc, SCREEN_WIDTH - 4
  77.     call .LoadOneRowOf4BottomHalfBlocks
  78.     coord hl, 18, 0
  79. ; LoadOneQuarterBottomLeftMetatile
  80.     loadmapblock
  81.     ld b, d
  82.     ld c, e
  83.     swap a
  84.     ld d, a
  85.     and $f0
  86.     add 8
  87.     call .LoadOneQuarterMetatile
  88.     ld d, b
  89.     ld e, c
  90.  
  91.     ld hl, hMapWidthPlus6
  92.     dec [hl]
  93.     addmapwidthoffset
  94.  
  95.     coord hl, 0, 2
  96.     ld bc, SCREEN_WIDTH - 1
  97.     call .LoadOneRowOf5BlocksFromHalfRightMetatile
  98.     coord hl, 0, 6
  99.     call .LoadOneRowOf5BlocksFromHalfRightMetatile
  100.     coord hl, 0, 10
  101.     call .LoadOneRowOf5BlocksFromHalfRightMetatile
  102.     coord hl, 0, 14
  103.  
  104. .LoadOneRowOf5BlocksFromHalfRightMetatile:
  105.     loadmapblock
  106.     push de
  107.     swap a
  108.     ld d, a
  109.     and $f0
  110.     inc a
  111.     inc a
  112.     ld e, a
  113.     ld a, d
  114.     and $f
  115.     add (wDecompressedMetatiles >> 8)
  116.     ld d, a
  117.  
  118.     rept 3
  119.     ld a, [de]
  120.     inc e
  121.     ld [hli], a
  122.     ld a, [de]
  123.     inc e
  124.     inc e
  125.     inc e
  126.     ld [hl], a
  127.     add hl, bc
  128.     endr
  129.  
  130.     ld a, [de]
  131.     inc e
  132.     ld [hli], a
  133.     ld a, [de]
  134.     ld [hl], a
  135.     pop de
  136.     ld a, l
  137.     sub (SCREEN_WIDTH * 3) - 1
  138.     ld l, a
  139.     nocarry
  140. ; LoadOneRowOf4Blocks:
  141.     ld c, SCREEN_WIDTH - 4
  142.     loadmapblock
  143.     push de
  144.     swap a
  145.     ld d, a
  146.     and $f0
  147.     ld e, a
  148.     ld a, d
  149.     and $f
  150.     add (wDecompressedMetatiles >> 8)
  151.     ld d, a
  152.     ; copy the 4x4 metatile
  153.  
  154. ; rows 1 - 3
  155.     rept 3
  156.         rept 4
  157.             ld a, [de]
  158.             ld [hli], a
  159.             inc e
  160.         endr
  161.         add hl, bc     
  162.     endr
  163. ; row 4
  164.     rept 3
  165.         ld a, [de]
  166.         ld [hli], a
  167.         inc e
  168.     endr
  169.     ld a, [de]
  170.     ld [hl], a
  171.     pop de
  172.     ld a, l
  173.     sub (SCREEN_WIDTH * 3) - 1
  174.     ld l, a
  175.     nocarry
  176. ; Next metatile
  177.     loadmapblock
  178.     push de
  179.     swap a
  180.     ld d, a
  181.     and $f0
  182.     ld e, a
  183.     ld a, d
  184.     and $f
  185.     add (wDecompressedMetatiles >> 8)
  186.     ld d, a
  187.     ; copy the 4x4 metatile
  188.  
  189. ; rows 1 - 3
  190.     rept 3
  191.         rept 4
  192.             ld a, [de]
  193.             ld [hli], a
  194.             inc e
  195.         endr
  196.         add hl, bc     
  197.     endr
  198. ; row 4
  199.     rept 3
  200.         ld a, [de]
  201.         ld [hli], a
  202.         inc e
  203.     endr
  204.     ld a, [de]
  205.     ld [hl], a
  206.     pop de
  207.     ld a, l
  208.     sub (SCREEN_WIDTH * 3) - 1
  209.     ld l, a
  210.     nocarry
  211. ; Next metatile
  212.     loadmapblock
  213.     push de
  214.     swap a
  215.     ld d, a
  216.     and $f0
  217.     ld e, a
  218.     ld a, d
  219.     and $f
  220.     add (wDecompressedMetatiles >> 8)
  221.     ld d, a
  222.     ; copy the 4x4 metatile
  223.  
  224. ; rows 1 - 3
  225.     rept 3
  226.         rept 4
  227.             ld a, [de]
  228.             ld [hli], a
  229.             inc e
  230.         endr
  231.         add hl, bc     
  232.     endr
  233. ; row 4
  234.     rept 3
  235.         ld a, [de]
  236.         ld [hli], a
  237.         inc e
  238.     endr
  239.     ld a, [de]
  240.     ld [hl], a
  241.     pop de
  242.     ld a, l
  243.     sub (SCREEN_WIDTH * 3) - 1
  244.     ld l, a
  245.     nocarry
  246.     loadmapblock
  247. ; Next metatile
  248.     push de
  249.     swap a
  250.     ld d, a
  251.     and $f0
  252.     ld e, a
  253.     ld a, d
  254.     and $f
  255.     add (wDecompressedMetatiles >> 8)
  256.     ld d, a
  257.     ; copy the 4x4 metatile
  258.  
  259. ; rows 1 - 3
  260.     rept 3
  261.         rept 4
  262.             ld a, [de]
  263.             ld [hli], a
  264.             inc e
  265.         endr
  266.         add hl, bc     
  267.     endr
  268. ; row 4
  269.     rept 3
  270.         ld a, [de]
  271.         ld [hli], a
  272.         inc e
  273.     endr
  274.     ld a, [de]
  275.     ld [hl], a
  276.     pop de
  277.     ld a, l
  278.     sub (SCREEN_WIDTH * 3) - 1
  279.     ld l, a
  280.     nocarry
  281. ; LoadOneHalfLeftMetatile
  282.     loadmapblock
  283.     ld c, SCREEN_WIDTH - 1
  284.     push de
  285.     swap a
  286.     ld d, a
  287.     and $f0
  288.     ld e, a
  289.     ld a, d
  290.     and $f
  291.     add (wDecompressedMetatiles >> 8)
  292.     ld d, a
  293.  
  294.     rept 3
  295.     ld a, [de]
  296.     inc e
  297.     ld [hli], a
  298.     ld a, [de]
  299.     inc e
  300.     inc e
  301.     inc e
  302.     ld [hl], a
  303.     add hl, bc
  304.     endr
  305.  
  306.     ld a, [de]
  307.     inc e
  308.     ld [hli], a
  309.     ld a, [de]
  310.     ld [hl], a
  311.     pop de
  312.     ld a, [hMapWidthPlus6]
  313.     add e
  314.     ld e, a
  315.     ret nc
  316.     inc d
  317.     ret
  318.  
  319. .BlockY0BlockX0:
  320.     coord hl, 0, 0
  321.     ld bc, SCREEN_WIDTH - 4
  322.     call .LoadOneRowOf5Blocks
  323.     coord hl, 0, 4
  324.     call .LoadOneRowOf5Blocks
  325.     coord hl, 0, 8
  326.     call .LoadOneRowOf5Blocks
  327.     coord hl, 0, 12
  328.     call .LoadOneRowOf5Blocks
  329.     coord hl, 0, 16
  330.  
  331. ; LoadOneRowOf5UpperHalfBlocks
  332.     loadmapblock
  333.     push de
  334.     swap a
  335.     ld d, a
  336.     and $f0
  337.     ld e, a
  338.     ld a, d
  339.     and $f
  340.     add (wDecompressedMetatiles >> 8)
  341.     ld d, a
  342.     ; copy the 4x4 metatile
  343.  
  344. ; row 1
  345.     rept 4
  346.         ld a, [de]
  347.         ld [hli], a
  348.         inc e
  349.     endr
  350.     add hl, bc
  351. ; row 2
  352.     rept 3
  353.         ld a, [de]
  354.         ld [hli], a
  355.         inc e
  356.     endr
  357.     ld a, [de]
  358.     ld [hl], a
  359.     pop de
  360.     ; Next metatile
  361.     ld a, l
  362.     sub (SCREEN_WIDTH * 1) - 1
  363.     ld l, a
  364.     nocarry
  365. .LoadOneRowOf4UpperHalfBlocks:
  366.     loadmapblock
  367.     push de
  368.     swap a
  369.     ld d, a
  370.     and $f0
  371.     ld e, a
  372.     ld a, d
  373.     and $f
  374.     add (wDecompressedMetatiles >> 8)
  375.     ld d, a
  376.     ; copy the 4x4 metatile
  377.  
  378. ; row 1
  379.     rept 4
  380.         ld a, [de]
  381.         ld [hli], a
  382.         inc e
  383.     endr
  384.     add hl, bc
  385. ; row 2
  386.     rept 3
  387.         ld a, [de]
  388.         ld [hli], a
  389.         inc e
  390.     endr
  391.     ld a, [de]
  392.     ld [hl], a
  393.     pop de
  394.     ; Next metatile
  395.     ld a, l
  396.     sub (SCREEN_WIDTH * 1) - 1
  397.     ld l, a
  398.     nocarry
  399.     loadmapblock
  400.     push de
  401.     swap a
  402.     ld d, a
  403.     and $f0
  404.     ld e, a
  405.     ld a, d
  406.     and $f
  407.     add (wDecompressedMetatiles >> 8)
  408.     ld d, a
  409.     ; copy the 4x4 metatile
  410.  
  411. ; row 1
  412.     rept 4
  413.         ld a, [de]
  414.         ld [hli], a
  415.         inc e
  416.     endr
  417.     add hl, bc
  418. ; row 2
  419.     rept 3
  420.         ld a, [de]
  421.         ld [hli], a
  422.         inc e
  423.     endr
  424.     ld a, [de]
  425.     ld [hl], a
  426.     pop de
  427.     ; Next metatile
  428.     ld a, l
  429.     sub (SCREEN_WIDTH * 1) - 1
  430.     ld l, a
  431.     nocarry
  432.     loadmapblock
  433.     push de
  434.     swap a
  435.     ld d, a
  436.     and $f0
  437.     ld e, a
  438.     ld a, d
  439.     and $f
  440.     add (wDecompressedMetatiles >> 8)
  441.     ld d, a
  442.     ; copy the 4x4 metatile
  443.  
  444. ; row 1
  445.     rept 4
  446.         ld a, [de]
  447.         ld [hli], a
  448.         inc e
  449.     endr
  450.     add hl, bc
  451. ; row 2
  452.     rept 3
  453.         ld a, [de]
  454.         ld [hli], a
  455.         inc e
  456.     endr
  457.     ld a, [de]
  458.     ld [hl], a
  459.     pop de
  460.     ; Next metatile
  461.     ld a, l
  462.     sub (SCREEN_WIDTH * 1) - 1
  463.     ld l, a
  464.     nocarry
  465.     loadmapblock
  466.     push de
  467.     swap a
  468.     ld d, a
  469.     and $f0
  470.     ld e, a
  471.     ld a, d
  472.     and $f
  473.     add (wDecompressedMetatiles >> 8)
  474.     ld d, a
  475.     ; copy the 4x4 metatile
  476.  
  477. ; row 1
  478.     rept 4
  479.         ld a, [de]
  480.         ld [hli], a
  481.         inc e
  482.     endr
  483.     add hl, bc
  484. ; row 2
  485.     rept 3
  486.         ld a, [de]
  487.         ld [hli], a
  488.         inc e
  489.     endr
  490.     ld a, [de]
  491.     ld [hl], a
  492.     pop de
  493.     ret
  494.  
  495. .BlockY1BlockX0:
  496.     call .LoadOneHalfRowOf5LowerHalfBlocks
  497.     addmapwidthoffset
  498.     coord hl, 0, 2
  499.     call .LoadOneRowOf5Blocks
  500.     coord hl, 0, 6
  501.     call .LoadOneRowOf5Blocks
  502.     coord hl, 0, 10
  503.     call .LoadOneRowOf5Blocks
  504.     coord hl, 0, 14
  505.  
  506. ; fallthrough
  507. .LoadOneRowOf5Blocks:
  508.     loadmapblock
  509.     push de
  510.     swap a
  511.     ld d, a
  512.     and $f0
  513.     ld e, a
  514.     ld a, d
  515.     and $f
  516.     add (wDecompressedMetatiles >> 8)
  517.     ld d, a
  518.     ; copy the 4x4 metatile
  519.  
  520. ; rows 1 - 3
  521.     rept 3
  522.         rept 4
  523.             ld a, [de]
  524.             ld [hli], a
  525.             inc e
  526.         endr
  527.         add hl, bc     
  528.     endr
  529. ; row 4
  530.     rept 3
  531.         ld a, [de]
  532.         ld [hli], a
  533.         inc e
  534.     endr
  535.     ld a, [de]
  536.     ld [hl], a
  537.     pop de
  538.     ld a, l
  539.     sub (SCREEN_WIDTH * 3) - 1
  540.     ld l, a
  541.     nocarry
  542. ; .LoadOneRowOf4Blocks_Entrypoint:
  543. ; Next metatile
  544.     loadmapblock
  545.     push de
  546.     swap a
  547.     ld d, a
  548.     and $f0
  549.     ld e, a
  550.     ld a, d
  551.     and $f
  552.     add (wDecompressedMetatiles >> 8)
  553.     ld d, a
  554.     ; copy the 4x4 metatile
  555.  
  556. ; rows 1 - 3
  557.     rept 3
  558.         rept 4
  559.             ld a, [de]
  560.             ld [hli], a
  561.             inc e
  562.         endr
  563.         add hl, bc     
  564.     endr
  565. ; row 4
  566.     rept 3
  567.         ld a, [de]
  568.         ld [hli], a
  569.         inc e
  570.     endr
  571.     ld a, [de]
  572.     ld [hl], a
  573.     pop de
  574.     ld a, l
  575.     sub (SCREEN_WIDTH * 3) - 1
  576.     ld l, a
  577.     nocarry
  578. ; Next metatile
  579.     loadmapblock
  580.     push de
  581.     swap a
  582.     ld d, a
  583.     and $f0
  584.     ld e, a
  585.     ld a, d
  586.     and $f
  587.     add (wDecompressedMetatiles >> 8)
  588.     ld d, a
  589.     ; copy the 4x4 metatile
  590.  
  591. ; rows 1 - 3
  592.     rept 3
  593.         rept 4
  594.             ld a, [de]
  595.             ld [hli], a
  596.             inc e
  597.         endr
  598.         add hl, bc     
  599.     endr
  600. ; row 4
  601.     rept 3
  602.         ld a, [de]
  603.         ld [hli], a
  604.         inc e
  605.     endr
  606.     ld a, [de]
  607.     ld [hl], a
  608.     pop de
  609.     ld a, l
  610.     sub (SCREEN_WIDTH * 3) - 1
  611.     ld l, a
  612.     nocarry
  613. ; Next metatile
  614.     loadmapblock
  615.     push de
  616.     swap a
  617.     ld d, a
  618.     and $f0
  619.     ld e, a
  620.     ld a, d
  621.     and $f
  622.     add (wDecompressedMetatiles >> 8)
  623.     ld d, a
  624.     ; copy the 4x4 metatile
  625.  
  626. ; rows 1 - 3
  627.     rept 3
  628.         rept 4
  629.             ld a, [de]
  630.             ld [hli], a
  631.             inc e
  632.         endr
  633.         add hl, bc     
  634.     endr
  635. ; row 4
  636.     rept 3
  637.         ld a, [de]
  638.         ld [hli], a
  639.         inc e
  640.     endr
  641.     ld a, [de]
  642.     ld [hl], a
  643.     pop de
  644.     ld a, l
  645.     sub (SCREEN_WIDTH * 3) - 1
  646.     ld l, a
  647.     nocarry
  648.     loadmapblock
  649. ; Next metatile
  650.     push de
  651.     swap a
  652.     ld d, a
  653.     and $f0
  654.     ld e, a
  655.     ld a, d
  656.     and $f
  657.     add (wDecompressedMetatiles >> 8)
  658.     ld d, a
  659.     ; copy the 4x4 metatile
  660.  
  661. ; rows 1 - 3
  662.     rept 3
  663.         rept 4
  664.             ld a, [de]
  665.             ld [hli], a
  666.             inc e
  667.         endr
  668.         add hl, bc     
  669.     endr
  670. ; row 4
  671.     rept 3
  672.         ld a, [de]
  673.         ld [hli], a
  674.         inc e
  675.     endr
  676.     ld a, [de]
  677.     ld [hl], a
  678.     pop de
  679.     ld a, [hMapWidthPlus6]
  680.     add e
  681.     ld e, a
  682.     ret nc
  683.     inc d
  684.     ret
  685.  
  686. .LoadOneHalfRowOf5LowerHalfBlocks:
  687.     ld bc, SCREEN_WIDTH - 4
  688.     loadmapblock
  689.     push de
  690.     swap a
  691.     ld d, a
  692.     and $f0
  693.     add 8
  694.     ld e, a
  695.     ld a, d
  696.     and $f
  697.     add (wDecompressedMetatiles >> 8)
  698.     ld d, a
  699.     ; copy the 4x4 metatile
  700.  
  701. ; row 1
  702.     rept 4
  703.         ld a, [de]
  704.         ld [hli], a
  705.         inc e
  706.     endr
  707.     add hl, bc
  708. ; row 2
  709.     rept 3
  710.         ld a, [de]
  711.         ld [hli], a
  712.         inc e
  713.     endr
  714.     ld a, [de]
  715.     ld [hl], a
  716.     pop de
  717.     ; Next metatile
  718.  
  719.     ld a, l
  720.     sub (SCREEN_WIDTH * 1) - 1
  721.     ld l, a
  722.     nocarry
  723. .LoadOneRowOf4BottomHalfBlocks:
  724.     loadmapblock
  725.     push de
  726.     swap a
  727.     ld d, a
  728.     and $f0
  729.     add 8
  730.     ld e, a
  731.     ld a, d
  732.     and $f
  733.     add (wDecompressedMetatiles >> 8)
  734.     ld d, a
  735.     ; copy the 4x4 metatile
  736.  
  737. ; row 1
  738.     rept 4
  739.         ld a, [de]
  740.         ld [hli], a
  741.         inc e
  742.     endr
  743.     add hl, bc
  744. ; row 2
  745.     rept 3
  746.         ld a, [de]
  747.         ld [hli], a
  748.         inc e
  749.     endr
  750.     ld a, [de]
  751.     ld [hl], a
  752.     pop de
  753.     ; Next metatile
  754.  
  755.     ld a, l
  756.     sub (SCREEN_WIDTH * 1) - 1
  757.     ld l, a
  758.     nocarry
  759.     loadmapblock
  760.     push de
  761.     swap a
  762.     ld d, a
  763.     and $f0
  764.     add 8
  765.     ld e, a
  766.     ld a, d
  767.     and $f
  768.     add (wDecompressedMetatiles >> 8)
  769.     ld d, a
  770.     ; copy the 4x4 metatile
  771.  
  772. ; row 1
  773.     rept 4
  774.         ld a, [de]
  775.         ld [hli], a
  776.         inc e
  777.     endr
  778.     add hl, bc
  779. ; row 2
  780.     rept 3
  781.         ld a, [de]
  782.         ld [hli], a
  783.         inc e
  784.     endr
  785.     ld a, [de]
  786.     ld [hl], a
  787.     pop de
  788.     ; Next metatile
  789.  
  790.     ld a, l
  791.     sub (SCREEN_WIDTH * 1) - 1
  792.     ld l, a
  793.     nocarry
  794.     loadmapblock
  795.     push de
  796.     swap a
  797.     ld d, a
  798.     and $f0
  799.     add 8
  800.     ld e, a
  801.     ld a, d
  802.     and $f
  803.     add (wDecompressedMetatiles >> 8)
  804.     ld d, a
  805.     ; copy the 4x4 metatile
  806.  
  807. ; row 1
  808.     rept 4
  809.         ld a, [de]
  810.         ld [hli], a
  811.         inc e
  812.     endr
  813.     add hl, bc
  814. ; row 2
  815.     rept 3
  816.         ld a, [de]
  817.         ld [hli], a
  818.         inc e
  819.     endr
  820.     ld a, [de]
  821.     ld [hl], a
  822.     pop de
  823.     ; Next metatile
  824.  
  825.     ld a, l
  826.     sub (SCREEN_WIDTH * 1) - 1
  827.     ld l, a
  828.     nocarry
  829.     loadmapblock
  830.     push de
  831.     swap a
  832.     ld d, a
  833.     and $f0
  834.     add 8
  835.     ld e, a
  836.     ld a, d
  837.     and $f
  838.     add (wDecompressedMetatiles >> 8)
  839.     ld d, a
  840.     ; copy the 4x4 metatile
  841.  
  842. ; row 1
  843.     rept 4
  844.         ld a, [de]
  845.         ld [hli], a
  846.         inc e
  847.     endr
  848.     add hl, bc
  849. ; row 2
  850.     rept 3
  851.         ld a, [de]
  852.         ld [hli], a
  853.         inc e
  854.     endr
  855.     ld a, [de]
  856.     ld [hl], a
  857.     pop de
  858.     ; Next metatile
  859.     ret
  860.  
  861. .BlockY0BlockX1:
  862.     ld hl, hMapWidthPlus6
  863.     dec [hl]
  864.     coord hl, 0, 0
  865.     ld bc, SCREEN_WIDTH - 1
  866.     call .LoadOneRowOf5BlocksFromHalfRightMetatile
  867.     coord hl, 0, 4
  868.     call .LoadOneRowOf5BlocksFromHalfRightMetatile
  869.     coord hl, 0, 8
  870.     call .LoadOneRowOf5BlocksFromHalfRightMetatile
  871.     coord hl, 0, 12
  872.     call .LoadOneRowOf5BlocksFromHalfRightMetatile
  873.  
  874. ; LoadOneQuarterUpperRightMetatile
  875.     coord hl, 0, 16
  876.     loadmapblock
  877.     ld b, d
  878.     ld c, e
  879.     swap a
  880.     ld d, a
  881.     and $f0
  882.     inc a
  883.     inc a
  884.     call .LoadOneQuarterMetatile
  885.     ld d, b
  886.     ld e, c
  887.  
  888.     coord hl, 2, 16
  889.     ld bc, SCREEN_WIDTH - 4
  890.     call .LoadOneRowOf4UpperHalfBlocks
  891.     coord hl, 18, 16
  892.  
  893. ; LoadOneQuarterUpperLeftMetatile
  894.     ld a, [de]
  895.     and a
  896.     jr nz, .notMapBorderBlock3
  897.     ld a, [hMapBorderBlock]
  898. .notMapBorderBlock3
  899.     swap a
  900.     ld d, a
  901.     and $f0
  902.  
  903. ; fallthrough
  904. .LoadOneQuarterMetatile:
  905.     ld e, a
  906.     ld a, d
  907.     and $f
  908.     add (wDecompressedMetatiles >> 8)
  909.     ld d, a
  910.  
  911.     ld a, [de]
  912.     inc e
  913.     ld [hli], a
  914.     ld a, [de]
  915.     inc e
  916.     inc e
  917.     inc e
  918.     ld [hl], a
  919.     ld a, SCREEN_WIDTH - 1
  920.     add l
  921.     ld l, a
  922.     jr nc, .noCarry
  923.     inc h
  924. .noCarry
  925.     ld a, [de]
  926.     inc e
  927.     ld [hli], a
  928.     ld a, [de]
  929.     ld [hl], a
  930.     ret
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Top