mirror of
https://gitlab.com/xCrystal/pokecrystal-board.git
synced 2024-11-16 11:27:33 -08:00
GetSquareRoot
This commit is contained in:
parent
37355aef99
commit
767cc1376b
34
main.asm
34
main.asm
@ -4805,7 +4805,39 @@ OpenPartyStats: ; 12e00
|
|||||||
ret
|
ret
|
||||||
; 0x12e1b
|
; 0x12e1b
|
||||||
|
|
||||||
INCBIN "baserom.gbc",$12e1b,$13d96 - $12e1b
|
INCBIN "baserom.gbc",$12e1b,$13b87 - $12e1b
|
||||||
|
|
||||||
|
GetSquareRoot: ; 13b87
|
||||||
|
; Return the square root of de in b.
|
||||||
|
|
||||||
|
; Rather than calculating the result, we take the index of the
|
||||||
|
; first value in a table of squares that isn't lower than de.
|
||||||
|
|
||||||
|
ld hl, Squares
|
||||||
|
ld b, 0
|
||||||
|
.loop
|
||||||
|
; Make sure we don't go past the end of the table.
|
||||||
|
inc b
|
||||||
|
ld a, b
|
||||||
|
cp $ff
|
||||||
|
ret z
|
||||||
|
|
||||||
|
; Iterate over the table until b**2 >= de.
|
||||||
|
ld a, [hli]
|
||||||
|
sub e
|
||||||
|
ld a, [hli]
|
||||||
|
sbc d
|
||||||
|
|
||||||
|
jr c, .loop
|
||||||
|
ret
|
||||||
|
|
||||||
|
Squares: ; 13b98
|
||||||
|
root set 1
|
||||||
|
rept $ff
|
||||||
|
dw root*root
|
||||||
|
root set root+1
|
||||||
|
endr
|
||||||
|
; 13d96
|
||||||
|
|
||||||
|
|
||||||
SECTION "bank5",DATA,BANK[$5]
|
SECTION "bank5",DATA,BANK[$5]
|
||||||
|
Loading…
x
Reference in New Issue
Block a user