You've already forked Microtransactions64
mirror of
https://github.com/Print-and-Panic/Microtransactions64.git
synced 2026-01-21 10:17:19 -08:00
52 lines
794 B
ArmAsm
52 lines
794 B
ArmAsm
# assembler directives
|
|
.set gp=64
|
|
|
|
.include "macros.inc"
|
|
|
|
|
|
.section .text, "ax"
|
|
|
|
.balign 32
|
|
glabel mtxf_to_mtx_asm
|
|
li.s $f6, 0.25
|
|
li $v0, 1
|
|
li.s $f4, 65536.0
|
|
1:
|
|
lwc1 $f0, ($a1)
|
|
lwc1 $f2, 0x04($a1)
|
|
mul.s $f0, $f6
|
|
mul.s $f2, $f6
|
|
|
|
andi $t0, $v0, (1 << 1)
|
|
mul.s $f0, $f4
|
|
trunc.w.s $f0, $f0
|
|
mfc1 $t3, $f0
|
|
addiu $a1, 8
|
|
sra $t4, $t3, 16
|
|
sh $t4, 0x00($a0)
|
|
sh $t3, 0x20($a0)
|
|
|
|
addiu $v0, 2
|
|
bnez $t0, storezero
|
|
|
|
mul.s $f2, $f4
|
|
trunc.w.s $f2, $f2
|
|
mfc1 $t3, $f2
|
|
sra $t4, $t3, 16
|
|
sh $t4, 0x02($a0)
|
|
sh $t3, 0x22($a0)
|
|
loopend:
|
|
.set noreorder
|
|
bnel $v0, 0x11, 1b
|
|
addiu $a0, 4
|
|
.set reorder
|
|
|
|
li $t1, 1
|
|
sh $t1, 0x02($a0)
|
|
jr $ra
|
|
storezero:
|
|
sh $zero, 0x02($a0)
|
|
sh $zero, 0x22($a0)
|
|
j loopend
|
|
|