summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xdata/sine_table.asm11
-rwxr-xr-xhome.asm13
2 files changed, 16 insertions, 8 deletions
diff --git a/data/sine_table.asm b/data/sine_table.asm
new file mode 100755
index 0000000..c694231
--- /dev/null
+++ b/data/sine_table.asm
@@ -0,0 +1,11 @@
+SineTable:
+ db $00, $06, $0D, $13, $19, $1F, $26, $2C, $32, $38, $3E, $44, $4A, $50, $56, $5C
+ db $62, $68, $6D, $73, $79, $7E, $84, $89, $8E, $93, $98, $9D, $A2, $A7, $AC, $B1
+ db $B5, $B9, $BE, $C2, $C6, $CA, $CE, $D1, $D5, $D8, $DC, $DF, $E2, $E5, $E7, $EA
+ db $ED, $EF, $F1, $F3, $F5, $F7, $F8, $FA, $FB, $FC, $FD, $FE, $FF, $FF, $FF, $FF
+ db $FF
+
+UnusedData_26ff:
+ db $04, $0A, $10, $17, $1D, $23, $2A, $30, $37, $3D, $44, $4B, $52, $59, $60, $67
+ db $6E, $76, $7D, $85, $8D, $96, $9E, $A7, $B0, $BA, $C3, $CD, $D8, $E3, $EE, $FA
+ db $FF
diff --git a/home.asm b/home.asm
index 1b7567e..6ec1945 100755
--- a/home.asm
+++ b/home.asm
@@ -4157,12 +4157,13 @@ Sine: ; 0x2149
; sin(a)
push hl
ld [hSignedMathSignBuffer], a
- and $7f
+ and $7f ; subtract 180 degrees
cp $40
- jr c, .positive
+ jr c, .firstQuadrant
+ ; convert angle so it's between 0 and 90 degrees
cpl
add $80+1
-.positive
+.firstQuadrant
ld hl, SineTable
ld e, a
ld d, $0
@@ -4976,11 +4977,7 @@ SubTileXPos_CollisionData7: ; 0x268e
db $18, $10, $04
db $18, $08, $03
-SineTable:
- dr $26be, $26ff
-
-Data_26ff:
- dr $26ff, $2720
+INCLUDE "data/sine_table.asm"
CheckGameObjectCollisions: ; 0x2720
ld a, $ff