Guest User

Untitled

a guest
Jul 11th, 2018
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. sub_24FD:
  2.     ld b, a
  3.     ld a, [$FFB8]
  4.     push af
  5.     ld a, b
  6.     ld [$FFB8], a
  7.     ld [$2000], a
  8.     ld a, $a
  9.     ld [$0], a
  10.     xor a
  11.     ld [$4000], a
  12.     call $251A
  13.     pop af
  14.     ld [$FFB8], a
  15.     ld [$2000], a
  16.     ret
  17.    
  18. sub_251A:
  19.     ld  hl, $A188
  20.     ld  c, $10
  21.     ld  b, 3
  22.     xor a
  23.     call FillMemory
  24.     ld  a, 1
  25.     ld  [$D0A6], a
  26.     ld  a, 3
  27.     ld  [$D0A7], a
  28.     xor a
  29.     ld  [$D0A1], a
  30.     ld  [$D0A2], a
  31.     ld  [$D0A8], a
  32.     call sub_268B
  33.     ld  b, a
  34.     and $F
  35.     add a, a
  36.     add a, a
  37.     add a, a
  38.     ld  [$D0A4], a
  39.     ld  a, b
  40.     swap    a
  41.     and $F
  42.     add a, a
  43.     add a, a
  44.     add a, a
  45.     ld  [$D0A3], a
  46.     call    sub_2670
  47.     ld  [$D0A8], a
  48.  
  49. loc_2556:
  50.     ld  hl, $A188
  51.     ld  a, [$D0A8]
  52.     bit 0, a
  53.     jr  z, loc_2563
  54.     ld  hl, $A310
  55.  
  56. loc_2563:
  57.     call    sub_2897
  58.     ld  a, [$D0A8]
  59.     bit 1, a
  60.     jr  z, loc_257A
  61.     call    sub_2670
  62.     and a
  63.     jr  z, loc_2577
  64.     call    sub_2670
  65.     inc a
  66.    
  67. loc_2577:
  68.     ld  [$D0A9], a
  69.    
  70. loc_257A:
  71.     call    sub_2670
  72.     and a
  73.     jr  z, loc_2595
  74.  
  75. loc_2580:
  76.     call    sub_2670
  77.     ld  c, a
  78.     call    sub_2670
  79.     sla c
  80.     or  c
  81.     and a
  82.     jr  z, loc_2595
  83.     call    sub_2649
  84.     call    sub_25D8
  85.     jr  loc_2580
  86.  
  87. loc_2595:
  88.     ld  c, 0
  89. loc_2597:
  90.     call    sub_2670
  91.     and a
  92.     jr  z, loc_25A0
  93.     inc c
  94.     jr  loc_2597
  95.  
  96. loc_25A0:
  97.     ld  a, c
  98.     add a, a
  99.     ld  hl, $269F
  100.     add a, l
  101.     ld  l, a
  102.     jr  nc, loc_25AA
  103.     inc h
  104.  
  105. loc_25AA:
  106.     db $2A ;ldi a, [hl]
  107.     ld  e, a
  108.     ld  d, [hl]
  109.     push    de
  110.     inc c
  111.     ld  e, 0
  112.     ld  d, e
  113.  
  114. loc_25B2:
  115.     call sub_2670
  116.     or  e
  117.     ld  e, a
  118.     dec c
  119.     jr  z, loc_25C0
  120.     sla e
  121.     rl  d
  122.     jr  loc_25B2
  123.  
  124. loc_25C0:
  125.     pop hl
  126.     add hl, de
  127.     ld  e, l
  128.     ld  d, h
  129.  
  130. loc_25C4:
  131.     ld  b, e
  132.     xor a
  133.     call    sub_2649
  134.     ld  e, b
  135.     call    sub_25D8
  136.     dec de
  137.     ld  a, d
  138.     and a
  139.     jr  nz, loc_25D4
  140.     ld  a, e
  141.     and a
  142.    
  143. loc_25D4:
  144.     jr  nz, loc_25C4
  145.     jr  loc_2580
  146.    
  147. sub_25D8:
  148.     ld  a, [$D0A4]
  149.     ld  b, a
  150.     ld  a, [$D0A2]
  151.     inc a
  152.     cp  b
  153.     jr  z, loc_25F6
  154.     ld  [$D0A2], a
  155.     ld  a, [$D0AD]
  156.     inc a
  157.     ld  [$D0AD], a
  158.     ret nz
  159.     ld  a, [$D0AE]
  160.     inc a
  161.     ld  [$D0AE], a
  162.     ret
  163.        
  164. loc_25F6:
  165.     xor a
  166.     ld  [$D0A2], a
  167.     ld  a, [$D0A7]
  168.     and a
  169.     jr  z, loc_2610
  170.     dec a
  171.     ld  [$D0A7], a
  172.     ld  hl, $D0AF
  173.     db $2A ;ldi a, [hl]
  174.     ld  [$D0AD], a
  175.     ld  a, [hl]
  176.     ld  [$D0AE], a
  177.     ret
  178.    
  179. loc_2610:
  180.     ld  a, 3
  181.     ld  [$D0A7], a
  182.     ld  a, [$D0A1]
  183.     add a, 8
  184.     ld  [$D0A1], a
  185.     ld  b, a
  186.     ld  a, [$D0A3]
  187.     cp  b
  188.     jr  z, loc_2630
  189.     ld  a, [$D0AD]
  190.     ld  l, a
  191.     ld  a, [$D0AE]
  192.     ld  h, a
  193.     inc hl
  194.     jp  sub_2897
  195. loc_2630:
  196.     pop hl
  197.     xor a
  198.     ld  [$D0A1], a
  199.     ld  a, [$D0A8]
  200.     bit 1, a
  201.     jr  nz, loc_2646
  202.     xor 1
  203.     set 1, a
  204.     ld  [$D0A8], a
  205.     jp  loc_2556
  206. loc_2646:
  207.     jp  loc_26BF
  208.    
  209. sub_2649:
  210.     ld  e, a
  211.     ld  a, [$D0A7]
  212.     and a
  213.     jr  z, loc_2664
  214.     cp  2
  215.     jr  c, loc_265C
  216.     jr  z, loc_2662
  217.     rrc e
  218.     rrc e
  219.     jr  loc_2664
  220. loc_265C:
  221.     sla e
  222.     sla e
  223.     jr  loc_2664
  224. loc_2662:
  225.     swap    e
  226. loc_2664:
  227.     ld  a, [$D0AD]
  228.     ld  l, a
  229.     ld  a, [$D0AE]
  230.     ld  h, a
  231.     ld  a, [hl]
  232.     or  e
  233.     ld  [hl], a
  234.     ret
  235.  
  236. sub_2670:
  237.     ld  a, [$D0A6]
  238.     dec a
  239.     jr  nz, loc_267E
  240.     call    sub_268B
  241.     ld  [$D0A5], a
  242.     ld  a, 8
  243. loc_267E:
  244.     ld  [$D0A6], a
  245.     ld  a, [$D0A5]
  246.     rlca
  247.     ld  [$D0A5], a
  248.     and 1
  249.     ret
  250.  
  251. sub_268B:
  252.     ld  a, [$D0AB]
  253.     ld  l, a
  254.     ld  a, [$D0AC]
  255.     ld  h, a
  256.     db $2A ;ldi a, [hl]
  257.     ld  b, a
  258.     ld  a, l
  259.     ld  [$D0AB], a
  260.     ld  a, h
  261.     ld  [$D0AC], a
  262.     ld  a, b
  263.     ret
  264.  
  265. bitmask_table269F:
  266.     dw  $1,$3,$7,$F,$1F,$3F,$7F,$FF,$1FF,$3FF,$7FF,$FFF,$1FFF,$3FFF,$7FFF,$FFFF
  267.  
  268. loc_26BF:
  269.     ld  a, [$D0A9]
  270.     cp  2
  271.     jp  z, loc_2877
  272.     and a
  273.     jp  nz, loc_27C7
  274.     ld  hl, $A188
  275.     call sub_26D4
  276.     ld  hl, $A310
  277.  
  278. sub_26D4:
  279.     xor a
  280.     ld  [$D0A1], a
  281.     ld  [$D0A2], a
  282.     call    sub_2897
  283.     ld  a, [$D0AA]
  284.     and a
  285.     jr  z, loc_26EC
  286.     ld  hl, $27B7
  287.     ld  de, $27BF
  288.     jr  loc_26F2
  289.    
  290. loc_26EC:
  291.     ld  hl, $27A7
  292.     ld  de, $27AF
  293.  
  294. loc_26F2:
  295.     ld  a, l
  296.     ld  [$D0B1], a
  297.     ld  a, h
  298.     ld  [$D0B2], a
  299.     ld  a, e
  300.     ld  [$D0B3], a
  301.     ld  a, d
  302.     ld  [$D0B4], a
  303.     ld  e, 0
  304.  
  305. loc_2704:
  306.     ld  a, [$D0AD]
  307.     ld  l, a
  308.     ld  a, [$D0AE]
  309.     ld  h, a
  310.     ld  a, [hl]
  311.     ld  b, a
  312.     swap    a
  313.     and $F
  314.     call    sub_276D
  315.     swap    a
  316.     ld  d, a
  317.     ld  a, b
  318.     and $F
  319.     call    sub_276D
  320.     or  d
  321.     ld  b, a
  322.     ld  a, [$D0AD]
  323.     ld  l, a
  324.     ld  a, [$D0AE]
  325.     ld  h, a
  326.     ld  a, b
  327.     ld  [hl], a
  328.     ld  a, [$D0A4]
  329.     add a, l
  330.     jr  nc, loc_2731
  331.     inc h
  332.  
  333. loc_2731:
  334.     ld  [$D0AD], a
  335.     ld  a, h
  336.     ld  [$D0AE], a
  337.     ld  a, [$D0A1]
  338.     add a, 8
  339.     ld  [$D0A1], a
  340.     ld  b, a
  341.     ld  a, [$D0A3]
  342.     cp  b
  343.     jr  nz, loc_2704
  344.     xor a
  345.     ld  e, a
  346.     ld  [$D0A1], a
  347.     ld  a, [$D0A2]
  348.     inc a
  349.     ld  [$D0A2], a
  350.     ld  b, a
  351.     ld  a, [$D0A4]
  352.     cp  b
  353.     jr  z, loc_2768
  354.     ld  a, [$D0AF]
  355.     ld  l, a
  356.     ld  a, [$D0B0]
  357.     ld  h, a
  358.     inc hl
  359.     call    sub_2897
  360.     jr  loc_2704
  361. loc_2768:
  362.     xor a
  363.     ld  [$D0A2], a
  364.     ret
  365.  
  366. sub_276D:
  367.     srl a
  368.     ld  c, 0
  369.     jr  nc, loc_2775
  370.     ld  c, 1
  371. loc_2775:
  372.     ld  l, a
  373.     ld  a, [$D0AA]
  374.     and a
  375.     jr  z, loc_2780
  376.     bit 3, e
  377.     jr  loc_2782
  378. loc_2780:
  379.     bit 0, e
  380. loc_2782:
  381.     ld  e, l
  382.     jr  nz, loc_278E
  383.     ld  a, [$D0B1]
  384.     ld  l, a
  385.     ld  a, [$D0B2]
  386.     jr  loc_2795
  387. loc_278E:
  388.     ld  a, [$D0B3]
  389.     ld  l, a
  390.     ld  a, [$D0B4]
  391. loc_2795:
  392.     ld  h, a
  393.     ld  a, e
  394.     add a, l
  395.     ld  l, a
  396.     jr  nc, loc_279C
  397.     inc h
  398. loc_279C:
  399.     ld  a, [hl]
  400.     bit 0, c
  401.     jr  nz, loc_27A3
  402.     swap    a
  403. loc_27A3:
  404.     and $F
  405.     ld  e, a
  406.     ret
  407.    
  408. MonsterGfxBitTables: ;27A7
  409.     db 1,$32,$76,$45,$FE,$CD,$89,$BA
  410.     db $FE,$CD,$89,$BA,1,$32,$76,$45
  411.     db 8,$C4,$E6,$2A,$F7,$3B,$19,$D5
  412.     db $F7,$3B,$19,$D5,8,$C4,$E6,$2A
  413.    
  414. loc_27C7:
  415.     xor a
  416.     ld  [$D0A1], a
  417.     ld  [$D0A2], a
  418.     call    sub_2841
  419.     ld  a, [$D0AD]
  420.     ld  l, a
  421.     ld  a, [$D0AE]
  422.     ld  h, a
  423.     call    sub_26D4
  424.     call    sub_2841
  425.     ld  a, [$D0AD]
  426.     ld  l, a
  427.     ld  a, [$D0AE]
  428.     ld  h, a
  429.     ld  a, [$D0AF]
  430.     ld  e, a
  431.     ld  a, [$D0B0]
  432.     ld  d, a
  433. loc_27EF:
  434.     ld  a, [$D0AA]
  435.     and a
  436.     jr  z, loc_280B
  437.     push    de
  438.     ld  a, [de]
  439.     ld  b, a
  440.     swap    a
  441.     and $F
  442.     call    sub_2837
  443.     swap    a
  444.     ld  c, a
  445.     ld  a, b
  446.     and $F
  447.     call    sub_2837
  448.     or  c
  449.     pop de
  450.     ld  [de], a
  451. loc_280B:
  452.     db $2A ;ldi a, [hl]
  453.     ld  b, a
  454.     ld  a, [de]
  455.     xor b
  456.     ld  [de], a
  457.     inc de
  458.     ld  a, [$D0A2]
  459.     inc a
  460.     ld  [$D0A2], a
  461.     ld  b, a
  462.     ld  a, [$D0A4]
  463.     cp  b
  464.     jr  nz, loc_27EF
  465.     xor a
  466.     ld  [$D0A2], a
  467.     ld  a, [$D0A1]
  468.     add a, 8
  469.     ld  [$D0A1], a
  470.     ld  b, a
  471.     ld  a, [$D0A3]
  472.     cp  b
  473.     jr  nz, loc_27EF
  474.     xor a
  475.     ld  [$D0A1], a
  476.     ret
  477.  
  478. sub_2837:
  479.     ld  de, $2867
  480.     add a, e
  481.     ld  e, a
  482.     jr  nc, loc_283F
  483.     inc d
  484. loc_283F:
  485.     ld  a, [de]
  486.     ret
  487.  
  488. sub_2841:
  489.     ld  a, [$D0A8]
  490.     bit 0, a
  491.     jr  nz, loc_2850
  492.     ld  de, $A188
  493.     ld  hl, $A310
  494.     jr  loc_2856
  495. loc_2850:
  496.     ld  de, $A310
  497.     ld  hl, $A188
  498. loc_2856:
  499.     ld  a, l
  500.     ld  [$D0AD], a
  501.     ld  a, h
  502.     ld  [$D0AE], a
  503.     ld  a, e
  504.     ld  [$D0AF], a
  505.     ld  a, d
  506.     ld  [$D0B0], a
  507.     ret
  508.    
  509. MonsterGfxBitTables2: ;2867
  510.     db 0,8,4,$C,2,$A,6,$E
  511.     db 1,9,5,$D,3,$B,7,$F
  512.    
  513. loc_2877:
  514.     call sub_2841
  515.     ld  a, [$D0AA]
  516.     push    af
  517.     xor a
  518.     ld  [$D0AA], a
  519.     ld  a, [$D0AF]
  520.     ld  l, a
  521.     ld  a, [$D0B0]
  522.     ld  h, a
  523.     call    sub_26D4
  524.     call    sub_2841
  525.     pop af
  526.     ld  [$D0AA], a
  527.     jp  loc_27C7
  528.  
  529. sub_2897:
  530.     ld  a, l
  531.     ld  [$D0AD], a
  532.     ld  [$D0AF], a
  533.     ld  a, h
  534.     ld  [$D0AE], a
  535.     ld  [$D0B0], a
  536.     ret
  537.    
  538. sub_28A6:
  539.     ld  hl, $C100
  540.     call    sub_28C4
  541.     ld  hl, $C200
  542.     call    sub_28C4
  543.     ld  a, 1
  544.     ld  [$C100], a
  545.     ld  [$C20E], a
  546.     ld  hl, $C104
  547.     ld  [hl], $3C ; '<'
  548.     inc hl
  549.     inc hl
  550.     ld  [hl], $40 ; '@'
  551.     ret
  552.    
  553. sub_28C4:
  554.     ld  bc, $10
  555.     xor a
  556.     jp  FillMemory
  557.    
  558. sub_28CB:
  559.     ld  a, [$CFC7]
  560.     and a
  561.     jr  nz, loc_28DC
  562.     ld  a, [$D72C]
  563.     bit 1, a
  564.     ret nz
  565.     ld  a, $77 ; 'w'
  566.     ld  [$FF24], a
  567.     ret
  568. loc_28DC:
  569.     ld  a, [$CFC9]
  570.     and a
  571.     jr  z, loc_28E7
  572.     dec a
  573.     ld  [$CFC9], a
  574.     ret
  575. loc_28E7:
  576.     ld  a, [$CFC8]
  577.     ld  [$CFC9], a
  578.     ld  a, [$FF24]
  579.     and a
  580.     jr  z, loc_2903
  581.     ld  b, a
  582.     and $F
  583.     dec a
  584.     ld  c, a
  585.     ld  a, b
  586.     and $F0
  587.     swap a
  588.     dec a
  589.     swap a
  590.     or  c
  591.     ld  [$FF24], a
  592.     ret
  593. loc_2903:
  594.     ld  a, [$CFC7]
  595.     ld  b, a
  596.     xor a
  597.     ld  [$CFC7], a
  598.     ld  a, $FF
  599.     ld  [$C0EE], a
  600.     call $23B1
  601.     ld  a, [$C0F0]
  602.     ld  [$C0EF], a
  603.     ld  a, b
  604.     ld  [$C0EE], a
  605.     jp  $23B1
Add Comment
Please, Sign In to add comment