107 lines
3.8 KiB
C
107 lines
3.8 KiB
C
#include <ultra64.h>
|
|
#include "constants.h"
|
|
#include "game/data/data_000000.h"
|
|
#include "game/data/data_0083d0.h"
|
|
#include "game/data/data_00e460.h"
|
|
#include "game/data/data_0160b0.h"
|
|
#include "game/data/data_01a3a0.h"
|
|
#include "game/data/data_020df0.h"
|
|
#include "game/data/data_02da90.h"
|
|
#include "gvars/gvars.h"
|
|
#include "types.h"
|
|
|
|
GLOBAL_ASM(
|
|
glabel func0004e270
|
|
/* 4e270: 3c058006 */ lui $a1,%hi(osViClock)
|
|
/* 4e274: 24a5cf68 */ addiu $a1,$a1,%lo(osViClock)
|
|
/* 4e278: 8cae0000 */ lw $t6,0x0($a1)
|
|
/* 4e27c: 44844000 */ mtc1 $a0,$f8
|
|
/* 4e280: 3c014f80 */ lui $at,0x4f80
|
|
/* 4e284: 448e2000 */ mtc1 $t6,$f4
|
|
/* 4e288: 468042a0 */ cvt.s.w $f10,$f8
|
|
/* 4e28c: 04810004 */ bgez $a0,.L0004e2a0
|
|
/* 4e290: 468021a0 */ cvt.s.w $f6,$f4
|
|
/* 4e294: 44818000 */ mtc1 $at,$f16
|
|
/* 4e298: 00000000 */ nop
|
|
/* 4e29c: 46105280 */ add.s $f10,$f10,$f16
|
|
.L0004e2a0:
|
|
/* 4e2a0: 460a3483 */ div.s $f18,$f6,$f10
|
|
/* 4e2a4: 3c013f00 */ lui $at,0x3f00
|
|
/* 4e2a8: 44812000 */ mtc1 $at,$f4
|
|
/* 4e2ac: 24030001 */ addiu $v1,$zero,0x1
|
|
/* 4e2b0: 3c014f00 */ lui $at,0x4f00
|
|
/* 4e2b4: 3c08a450 */ lui $t0,0xa450
|
|
/* 4e2b8: 3c0aa450 */ lui $t2,0xa450
|
|
/* 4e2bc: 46049000 */ add.s $f0,$f18,$f4
|
|
/* 4e2c0: 444ff800 */ cfc1 $t7,$31
|
|
/* 4e2c4: 44c3f800 */ ctc1 $v1,$31
|
|
/* 4e2c8: 00000000 */ nop
|
|
/* 4e2cc: 46000224 */ cvt.w.s $f8,$f0
|
|
/* 4e2d0: 4443f800 */ cfc1 $v1,$31
|
|
/* 4e2d4: 00000000 */ nop
|
|
/* 4e2d8: 30630078 */ andi $v1,$v1,0x78
|
|
/* 4e2dc: 50600013 */ beqzl $v1,.L0004e32c
|
|
/* 4e2e0: 44034000 */ mfc1 $v1,$f8
|
|
/* 4e2e4: 44814000 */ mtc1 $at,$f8
|
|
/* 4e2e8: 24030001 */ addiu $v1,$zero,0x1
|
|
/* 4e2ec: 46080201 */ sub.s $f8,$f0,$f8
|
|
/* 4e2f0: 44c3f800 */ ctc1 $v1,$31
|
|
/* 4e2f4: 00000000 */ nop
|
|
/* 4e2f8: 46004224 */ cvt.w.s $f8,$f8
|
|
/* 4e2fc: 4443f800 */ cfc1 $v1,$31
|
|
/* 4e300: 00000000 */ nop
|
|
/* 4e304: 30630078 */ andi $v1,$v1,0x78
|
|
/* 4e308: 14600005 */ bnez $v1,.L0004e320
|
|
/* 4e30c: 00000000 */ nop
|
|
/* 4e310: 44034000 */ mfc1 $v1,$f8
|
|
/* 4e314: 3c018000 */ lui $at,0x8000
|
|
/* 4e318: 10000007 */ b .L0004e338
|
|
/* 4e31c: 00611825 */ or $v1,$v1,$at
|
|
.L0004e320:
|
|
/* 4e320: 10000005 */ b .L0004e338
|
|
/* 4e324: 2403ffff */ addiu $v1,$zero,-1
|
|
/* 4e328: 44034000 */ mfc1 $v1,$f8
|
|
.L0004e32c:
|
|
/* 4e32c: 00000000 */ nop
|
|
/* 4e330: 0460fffb */ bltz $v1,.L0004e320
|
|
/* 4e334: 00000000 */ nop
|
|
.L0004e338:
|
|
/* 4e338: 44cff800 */ ctc1 $t7,$31
|
|
/* 4e33c: 2c610084 */ sltiu $at,$v1,0x84
|
|
/* 4e340: 10200003 */ beqz $at,.L0004e350
|
|
/* 4e344: 2479ffff */ addiu $t9,$v1,-1
|
|
/* 4e348: 03e00008 */ jr $ra
|
|
/* 4e34c: 2402ffff */ addiu $v0,$zero,-1
|
|
.L0004e350:
|
|
/* 4e350: 24010042 */ addiu $at,$zero,0x42
|
|
/* 4e354: 0061001b */ divu $zero,$v1,$at
|
|
/* 4e358: 00001012 */ mflo $v0
|
|
/* 4e35c: 305800ff */ andi $t8,$v0,0xff
|
|
/* 4e360: 2b010011 */ slti $at,$t8,0x11
|
|
/* 4e364: 14200002 */ bnez $at,.L0004e370
|
|
/* 4e368: 304400ff */ andi $a0,$v0,0xff
|
|
/* 4e36c: 24040010 */ addiu $a0,$zero,0x10
|
|
.L0004e370:
|
|
/* 4e370: ad190010 */ sw $t9,0x10($t0)
|
|
/* 4e374: 2489ffff */ addiu $t1,$a0,-1
|
|
/* 4e378: ad490014 */ sw $t1,0x14($t2)
|
|
/* 4e37c: 8cab0000 */ lw $t3,0x0($a1)
|
|
/* 4e380: 0163001a */ div $zero,$t3,$v1
|
|
/* 4e384: 00001012 */ mflo $v0
|
|
/* 4e388: 14600002 */ bnez $v1,.L0004e394
|
|
/* 4e38c: 00000000 */ nop
|
|
/* 4e390: 0007000d */ break 0x7
|
|
.L0004e394:
|
|
/* 4e394: 2401ffff */ addiu $at,$zero,-1
|
|
/* 4e398: 14610004 */ bne $v1,$at,.L0004e3ac
|
|
/* 4e39c: 3c018000 */ lui $at,0x8000
|
|
/* 4e3a0: 15610002 */ bne $t3,$at,.L0004e3ac
|
|
/* 4e3a4: 00000000 */ nop
|
|
/* 4e3a8: 0006000d */ break 0x6
|
|
.L0004e3ac:
|
|
/* 4e3ac: 03e00008 */ jr $ra
|
|
/* 4e3b0: 00000000 */ nop
|
|
/* 4e3b4: 00000000 */ nop
|
|
/* 4e3b8: 00000000 */ nop
|
|
/* 4e3bc: 00000000 */ nop
|
|
); |