ref: 45373ec601e5af5bc2be7a72b8556e4311efdc05
parent: f258ff8a417ba44a3cc0679c59f1a278ea108ed2
author: Rangi <[email protected]>
date: Fri Feb 2 17:45:42 EST 2018
sine_wave macro parameterizes table size, not frequency ("amplitude" was an incorrect comment)
--- a/engine/battle/battle_transition.asm
+++ b/engine/battle/battle_transition.asm
@@ -789,7 +789,7 @@
; 8c728 (23:4728)
.sinewave ; 8c728
- sine_wave $100
+ sine_wave 32
; 8c768
StartTrainerBattle_ZoomToBlack: ; 8c768 (23:4768)
--- a/engine/battle_anims/functions.asm
+++ b/engine/battle_anims/functions.asm
@@ -4157,5 +4157,5 @@
; ce77f
BattleAnimSineWave: ; ce77f
- sine_wave $100
+ sine_wave 32
; ce7bf
--- a/engine/events/celebi.asm
+++ b/engine/events/celebi.asm
@@ -281,7 +281,7 @@
; 49b6e (12:5b6e)
.sinewave ; 49b6e
- sine_wave $100
+ sine_wave 32
; 49bae
GetCelebiSpriteTile: ; 49bae
--- a/engine/routines/sine.asm
+++ b/engine/routines/sine.asm
@@ -45,4 +45,4 @@
.sinewave ; 850b
; A $20-word table representing a sine wave.
; 90 degrees is index $10 at a base amplitude of $100.
- sine_wave $100
+ sine_wave 32
--- a/engine/sprites.asm
+++ b/engine/sprites.asm
@@ -620,7 +620,7 @@
; 8e75d
.sinewave ; 8e75d
- sine_wave $100
+ sine_wave 32
AnimateEndOfExpBar: ; 8e79d
--- a/macros/data.asm
+++ b/macros/data.asm
@@ -31,29 +31,29 @@
ENDM
dn: MACRO ; nybbles
- rept _NARG / 2
+rept _NARG / 2
db ((\1) << 4) | (\2)
shift
shift
- endr
+endr
ENDM
dc: MACRO ; "crumbs"
- rept _NARG / 4
+rept _NARG / 4
db ((\1) << 6) | ((\2) << 4) | ((\3) << 2) | (\4)
shift
shift
shift
shift
- endr
+endr
ENDM
dx: MACRO
x = 8 * ((\1) - 1)
- rept \1
+rept \1
db ((\2) >> x) & $ff
x = x + -8
- endr
+endr
ENDM
dt: MACRO ; three-byte (big-endian)
@@ -69,17 +69,17 @@
ENDM
dba: MACRO ; dbw bank, address
- rept _NARG
+rept _NARG
dbw BANK(\1), \1
shift
- endr
+endr
ENDM
dab: MACRO ; dwb address, bank
- rept _NARG
+rept _NARG
dwb \1, BANK(\1)
shift
- endr
+endr
ENDM
dba_pic: MACRO ; dbw bank, address
@@ -112,19 +112,17 @@
sine_wave: MACRO
-; \1: amplitude
x = 0
- rept $20
- ; Round up.
- dw (sin(x) + (sin(x) & $ff)) >> 8
-x = x + (\1) * $40000
- endr
+rept \1
+ dw (sin(x) + (sin(x) & $ff)) >> 8 ; round up
+x = x + (32768.0 / \1) ; a circle has 65536.0 "degrees"
+endr
ENDM
bcd: MACRO
- rept _NARG
+rept _NARG
dn ((\1) % 100) / 10, (\1) % 10
shift
- endr
+endr
ENDM