shithub: pokecrystal

Download patch

ref: b0d84c64a696b2525ba6aac846989eae661b1d67
parent: d11cac9e833a9c2188415cfeb6de7d4687336c2f
author: Rangi <remy.oukaour+rangi42@gmail.com>
date: Sat Feb 3 08:26:34 EST 2018

Use fixed-point DIV function for a generalized sine_wave table macro

--- a/macros/code.asm
+++ b/macros/code.asm
@@ -41,8 +41,8 @@
 ; example usage in rejection sampling:
 ; .loop
 ; 	call Random
-; 	maskbits 30
-; 	cp 30
+; 	maskbits 26
+; 	cp 26
 ; 	jr nc, .loop
 x = 1
 rept 8
--- a/macros/data.asm
+++ b/macros/data.asm
@@ -112,10 +112,11 @@
 
 
 sine_wave: MACRO
-x = 0.0
+; \1 samples of sin(x) from x=0 to x<32768 (pi radians)
+x = 0
 rept \1
 	dw (sin(x) + (sin(x) & $ff)) >> 8 ; round up
-x = x + 1024.0 ; a circle has 65536.0 "degrees"
+x = x + DIV(32768, \1) ; a circle has 65536 "degrees"
 endr
 ENDM