Guest User

Untitled

a guest
Nov 18th, 2018
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. GetJoypadState; 984
  2.     push af
  3.     push hl
  4.     push de
  5.     push bc
  6.     ld a,[$c2c7]
  7.     cp a, $ff
  8.     jr z, .asm_9a7
  9.     ld a,[$ff00+$a4]
  10.     ld b, a
  11.     ld a,[$ff00+$a8]
  12.     ld e, a
  13.     xor b
  14.     ld d, a
  15.     and e
  16.     ld [$ff00+$a6], a
  17.     ld a, d
  18.     and b
  19.     ld [$ff00+$a7], a
  20.     ld c, a
  21.     ld a, b
  22.     ld [$ff00+$a8], a
  23. .asm_9a2
  24.     pop bc
  25.     pop de
  26.     pop hl
  27.     pop af
  28.     ret
  29. ;9a7
  30.  
  31. .asm_9a7
  32.     ld a,[$ff00+$9d]
  33.     push af
  34.     ld a, [$c2ca]
  35.     rst $10
  36.     ld hl, $c2c8
  37.     ldi a, [hl]
  38.     ld h, [hl]
  39.     ld l, a
  40.     ld a, [$c2cb]
  41.     and a
  42.     jr z, .asm_9c2
  43.     dec a
  44.     ld [$c2cb], a
  45.     pop af
  46.     rst $10
  47.     jr .asm_9a2
  48. .asm_9c2
  49.     ldi a, [hl]
  50.     cp a, $ff
  51.     jr z, .asm_9e0
  52.     ld b, a
  53.     ldi a, [hl]
  54.     ld [$c2cb], a
  55.     cp a, ff
  56.     jr nz, .asm_9d6
  57.     dec hl
  58.     dec hl
  59.     ld b, $00
  60.     jr .asm_9e5
  61. .asm_9d6
  62.     ld a, l
  63.     ld [$c2c8], a
  64.     ld a, h
  65.     ld [$c2c9], a
  66.     jr .asm_9e5
  67. .asm_9e0
  68.     call Functiona0a
  69.     ld b, $00
  70. .asm_9e5
  71.     pop af
  72.     rst $10
  73.     ld a, b
  74.     ld [$ff00+$a7], a
  75.     ld [$ff00+$a8], a
  76.     jr .asm_9a2
  77.     ld [$c2ca], a
  78.     ld a, l
  79.     ld [$c2c8], a
  80.     ld a, h
  81.     ld [$c2c9], a
  82.     xor a
  83.     ld [$c2cb], a
  84.     xor a
  85.     ld [$ff00+$a7], a
  86.     ld [$ff00+$a6], a
  87.     ld [$ff00+$a8], a
  88.     ld a, $ff
  89.     ld [$c2c7], a
  90.     ret
  91. ;a0a
  92.  
  93. Functiona0a:
  94.     xor a
  95.     ld [$c2ca], a
  96.     ld [$c2c8], a
  97.     ld [$c2c9], a
  98.     ld [$c2cb], a
  99.     ld [$c2c7], a
  100.     ret
  101. ;a1b
  102.  
  103. PrintLetterDelay: ; 313d
  104. ; This function is used to wait a short period after printing a letter to the
  105. ; screen unless the player presses the A/B button or the delay is turned off
  106. ; through the [$cfcc] or [$cfcf] flags.
  107.     ld a, [$cfcc]
  108.     bit 4, a
  109.     ret nz
  110.     ld a, [$cfcf]
  111.     bit 1, a
  112.     ret z
  113.     push hl
  114.     push de
  115.     push bc
  116.     ld hl, $ffd8
  117.     ld a, [hl]
  118.     push af
  119.     ld [hl], a
  120.     ld a, [$cfcf]
  121.     bit 0, a
  122.     jr z, .asm_3160
  123.     ld a, [$cfcc]
  124.     and a, $07
  125.     jr .asm_3162
  126. .asm_3160
  127.     ld a, $01
  128. .asm_3162
  129.     ld [$cfb2], a
  130. .joypad
  131.     call GetJoypadState
  132.     ld a, [$c2d7]
  133.     and a
  134.     jr nz, .asm_317f
  135.     ld a, [$ff00+$a8]   ; joypad
  136.     bit 0, a            ; a
  137.     jr z, .asm_3176
  138.     jr .asm_317a
  139. .asm_3176
  140.     bit 1, a            ; b
  141.     jr z, .asm_317f
  142. .asm_317a
  143.     call DelayFrame
  144.     jr .end
  145. .asm_317f
  146.     ld a, [$cfb2]
  147.     and a
  148.     jr nz, .joypad
  149. .end
  150.     pop af
  151.     ld [$ff00+$d8], a
  152.     pop bc
  153.     pop de
  154.     pop hl
  155.     ret
  156. ;318c
Add Comment
Please, Sign In to add comment