sprite animation testing
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

95 lines
1.3KB

  1. PC_Update:
  2. ld b, 0
  3. ld c, 0
  4. ld a, [hCurKeys]
  5. and %10000000
  6. cp %10000000 ; 0 if down pressed
  7. jr nz, .up
  8. ld b, 1
  9. .up:
  10. ld a, [hCurKeys]
  11. and %01000000
  12. cp %01000000 ; 0 if up pressed
  13. jr nz, .left
  14. ld b, 255
  15. .left:
  16. ld a, [hCurKeys]
  17. and %00100000
  18. cp %00100000 ; 0 if down pressed
  19. jr nz, .right
  20. ld c, 255
  21. .right:
  22. ld a, [hCurKeys]
  23. and %00010000
  24. cp %00010000 ; 0 if up pressed
  25. jr nz, .last
  26. ld c, 1
  27. .last:
  28. ld a, [Player_XPos]
  29. add c
  30. ld [Player_XPos], a
  31. ld a, [Player_YPos]
  32. add b
  33. ld [Player_YPos], a
  34. .end:
  35. ret
  36. Clear_OAM:
  37. ld hl, wShadowOAM
  38. ld bc, wShadowOAMEnd - wShadowOAM
  39. .loop:
  40. xor a
  41. ld [hli], a
  42. dec bc
  43. ld a, b
  44. or c
  45. jr nz, .loop
  46. ret
  47. Hide_OAM:
  48. ld hl, wShadowOAM
  49. ld c, wShadowOAMEnd - wShadowOAM
  50. .loop:
  51. xor a
  52. ld [hl], a
  53. ld a, l
  54. or 3
  55. inc a
  56. ld l, a
  57. dec c
  58. jr nz, .loop
  59. ret
  60. Clear_Map:
  61. ld hl, _SCRN0
  62. ld bc, _SCRN0_END - _SCRN0
  63. .loop:
  64. xor a
  65. ld [hli], a
  66. dec bc
  67. ld a, b
  68. or c
  69. jr nz, .loop
  70. ret
  71. Load_Tiles:
  72. ld hl, _BGTILES
  73. ld de, parecivo_tile_data
  74. ld bc, parecivo_tile_data_size
  75. call MemCpy
  76. ld hl, _VRAM
  77. ld de, parecivo_tile_data
  78. ld bc, parecivo_tile_data_size
  79. call MemCpy
  80. ret
  81. Load_Map:
  82. ld hl, _SCRN0
  83. ld de, Map
  84. ld bc, Map_Size
  85. call MemCpy
  86. ret