SM64 Shoot Star Bits Using Cursor

Released:
Found on: rhcom
Difficulty: 3

A hack that lets you use the mouse as a cursor through an external program. Clicking the mouse will spawn an exploding Bob-omb at the cursor’s position.

Download Patch File

Extra Files:

How to play.txt

For info on how to
get the ROM to run,
check out my tutorial (takes 1 minute):
https://www.youtube.com/watch?v=HUzVTZi5ws8

readme.txt

open rom in pj64
execute .exe
now you can play

shootbits - zoomed out lakitu.txt

//print cursor
//higher bomb and goomba active radius
//middle mouse button?

.orga 0x861c0
main:
addiu sp, sp, 0xffd8
sw ra, 0x14 (SP)
lui at, 0x8033
lh at, 0xddf8 (AT)
addiu t1, r0, 0x0006
beq at, t1, realendddd
nop
lui t0, 0x8037
lui v1, 0x8034
lhu t2, 0xafa0 (v1)
ori t2, t2, 0x10
sh t2, 0xafa0 (v1)

lw t2, 0xfff8 (T0)
bne t2, r0, printnow
nop
lw t2, 0xfffc (T0)
beq t2, r0, end
nop
printnow:
lbu t2, 0x001f (T0)
bne t2, r0, realendddd
nop
addiu at, r0, 0x1
sb at, 0x001f (T0)
lw a1, 0xfff4 (T0)
addiu at, r0, 0x00f0
sub a1, at, a1
lw a0, 0xfff0 (T0)
sw a1, 0x0018 (SP)

jal 0x2ca6d0
sw a0, 0x001c (SP)



beq r0, r0, realendddd
end:
lui t0, 0x8037
sb r0, 0x001f (T0)
realendddd:
jal 0x371000
nop
lw ra, 0x14 (SP)
jr ra
addiu sp, sp, 0x0028

.orga 0x856d0
second:
addiu sp, sp, 0xffe8
sw ra, 0x14 (SP)
lui t0, 0x8034
lwc1 f6, 0xc77c (T0)
lwc1 f12, 0xb1b4 (T0)
lwc1 f14, 0xb1ac (T0)

lhu t7, 0xc778 (T0)
addiu t7, t7, 0xC000
andi t7, t7, 0xffff
lui t4, 0x8038
sra t8, t7, 0x4
sll t9, t8, 0x2
addu t4, t4, t9
lwc1 f0, 0x6000 (T4)
mul.s f8, f0, f6
add.s f14, f14, f8

lwc1 f10, 0x7000 (T4)
mul.s f6, f10, f6
add.s f12, f12, f6




lwc1 f2, 0xc6ac (T0)
lwc1 f4, 0xc6a4 (T0)


sub.s f12, f12, f2
sub.s f14, f14, f4
mul.s f2, f12, f12
mul.s f4, f14, f14
add.s f2, f2, f4
sqrt.s f2, f2
swc1 f2, 0x0018 (SP)	//horizontal distance
jal 0x37a9a8
nop
sw v0, 0x0020 (SP)	//direciton of porjectile

lui t0, 0x8034
lwc1 f0, 0xc6a8 (T0)
lwc1 f10, 0xb1b0 (T0)
sub.s f10, f10, f0
lwc1 f2, 0x0018 (SP)
div.s f10, f10, f2
swc1 f10, 0x001c (SP)	//percentage of vertical movement

lui t0, 0x8034
lhu t7, 0xc778 (T0)
addiu t7, t7, 0x8000
andi t7, t7, 0xffff
//sw t7, 0x0020 (SP)

lui t0, 0x8033
ori a0, t0, 0xb10c
jal 0x29E2F8
ori a1, t0, 0xc604

lui at, 0x3b53
mtc1 at, f6
mul.s f6, f6, f0
lw t7, 0x0034 (SP)	//horizontal displacement

swc1 f0, 0x0034 (SP)	//distance
addiu t7, t7, 0xff60
sll t2, t7, 0x1
sll t7, t7, 0x5
add t7, t7, t2

lw v0, 0x0020 (SP)
sub v0, v0, t7
andi v0, v0, 0xffff
sw v0, 0x0020 (SP)

lui a0, 0x8036
lw a0, 0x1158 (A0)
addiu a1, r0, 0xc0
lui a2, 0x0037
jal 0x29edcc
ori a2, a2, 0x0000
lui t0, 0x8034
lw t1, 0xc6a4 (T0)
sw t1, 0x00a0 (v0)
lw t1, 0xc6a8 (T0)
sw t1, 0x00a4 (v0)
lw t1, 0xc6ac (T0)
sw t1, 0x00a8 (v0)
lw t2, 0x0020 (SP)
sw t2, 0x0020 (SP)


lw t7, 0x0030 (SP)	//vertical displacement
addiu t7, t7, 0xffe0	//expected ff88
mtc1 t7, f0
cvt.s.w f0, f0
lui at, 0x3b0a
mtc1 at, f2
mul.s f0, f0, f2

lui at, 0x4320
mtc1 at, f10
lwc1 f4, 0x001c (SP)
add.s f4, f4, f0

mul.s f4, f10, f4
swc1 f4, 0x00b0 (V0)

lw t7, 0x0020 (SP)
abs.s f4, f4
sub.s f6, f10, f4


lui t4, 0x8038
sra t8, t7, 0x4
sll t9, t8, 0x2
addu t4, t4, t9
lwc1 f4, 0x6000 (T4)
mul.s f8, f4, f6
swc1 f8, 0x00ac (v0)

lwc1 f10, 0x7000 (T4)
mul.s f6, f10, f6
swc1 f6, 0x00b4 (v0)




lw ra, 0x14 (SP)
jr ra
addiu sp, sp, 0x0018


.orga 0x7d0020
starbitcalc:
addiu sp, sp, 0xffe8
sw ra, 0x14 (SP)
lui v1, 0x8036
lw v1, 0x1160 (V1)
lw t2, 0x0154 (V1)
bne t2, r0, endportal
nop
//lui at, 0x3c23
lui at, 0x3d23
mtc1 at, f4
lwc1 f2, 0x00ac (V1)
mul.s f2, f2, f4
swc1 f2, 0x00ac (V1)
lwc1 f6, 0x00b0 (V1)
mul.s f6, f6, f4
swc1 f6, 0x00b0 (V1)
lwc1 f2, 0x00b4 (V1)
mul.s f2, f2, f4
swc1 f2, 0x00b4 (V1)

endportal:
LWC1 F12, 0x00A0 (V1)
LWC1 F10, 0x00A4 (V1)
LW A2, 0x00A8 (V1)
LUI AT, 0x40f0
MTC1 AT, F16
JAL 0x80381794
ADD.S F14, F10, F16
lwc1 f2, 0x00a4 (V1)
c.lt.s f2, f0
nop
bc1t spawnexplosion
nop
addiu a0, v1, 0x00a0
lui a1, 0x4148
JAL 0x80251A48
lui a2, 0x4148
beq v0, r0, endhatfunction
nop
spawnexplosion:
addiu a1, r0, 0xc0
lui a2, 0x1300
ori a2, a2, 0x472c

lui t0, 0x8037
lw t2, 0xfffc (T0)
bne t2, r0, goomba
nop
addiu a1, r0, 0xb3
lui a2, 0x1300
ori a2, a2, 0x37ec
lui at, 0x8033
lh at, 0xddf8 (AT)
addiu t1, r0, 0x1e
beq at, t1, goomba
nop
addiu t1, r0, 0x21
beq at, t1, goomba
nop
addiu t1, r0, 0x22
beq at, t1, goomba
nop

addiu a1, r0, 0xbc
lui a2, 0x1300
ori a2, a2, 0x3174

goomba:
jal 0x29edcc
or a0, v1, r0
sw v0, 0x0068 (V0)
sw r0, 0x9c (V0)
lui t0, 0x8037
lw t2, 0xfffc (T0)
bne t2, r0, goomba2
nop
addiu at, r0, 0x3
sw at, 0x14c (V0)
goomba2:
sh r0, 0x74 (V1)
beq r0, r0, endexpaefioasf
nop

endhatfunction:
jal 0x29f070
nop
lw t1, 0x0154 (V1)
addiu t1, t1, 0x1
sw t1, 0x0154 (V1)
andi t1, t1, 0xfFf
bne t1, r0, endportal
nop
killthisnow:
sh r0, 0x0074 (V1)
endexpaefioasf:
lw ra, 0x14 (SP)
jr ra
addiu sp, sp, 0x0018



.orga 0xfb9F4
load:
lui t5, 0x8039
lw t7, 0xbe28 (T5)
lbu t6, 0x0001 (T7)
add t7, t7, t6
sw t7, 0xbe28 (T5)
lui a0, 0x8037
lui a1, 0x007d
jal 0x278504
ori a2, a1, 0x4000
lw ra, 0x14 (SP)
jr ra
addiu sp, sp, 0x18



.orga 0x41c84
jal 0x281588

.orga 0x41ca4
jal 0x281588

.orga 0x41cb4
jal 0x285F60


.orga 0x41cc4
jal 0x281588


.orga 0x41cd4
jal 0x281588


.orga 0x41ce4
jal 0x281588



.orga 0x41cf4
jal 0x281588


.orga 0x41d04
jal 0x281588


.orga 0x41d14
jal 0x281588


.orga 0x41d24
jal 0x281588



.orga 0x41d34
jal 0x281588



.orga 0x41d44
jal 0x281588



.orga 0x41d54
jal 0x281588



.orga 0x7d1000
collectoins:
addiu sp, sp, 0xffc8
sw ra, 0x14 (SP)

lui at, 0x8037
sw r0, 0x2000 (AT)
lui t0, 0x8034
addiu t0, t0, 0xd488
loop22:
ori t3, r0, 0x0010
lw t2, 0x0130 (T0)
bne t2, t3, endofthisloop22
nop
lh t1, 0x0074 (T0)
beq t1, r0, endofthisloop22
nop
sw t0, 0x2000 (AT)
addiu at, at, 0x4
sw r0, 0x2000 (AT)
endofthisloop22:
lui t1, 0x8036
ori t1, t1, 0x0e88
addiu t0, t0, 0x260
bne t0, t1, loop22
nop




lui t0, 0x8037
lw a1, 0xfff4 (T0)
addiu at, r0, 0x00f0
sub a1, at, a1
lw a0, 0xfff0 (T0)
sw a1, 0x0030 (SP)
sw a0, 0x0034 (SP)



lui t0, 0x8034
lwc1 f6, 0xc77c (T0)
lwc1 f12, 0xb1b4 (T0)
lwc1 f14, 0xb1ac (T0)
lhu t7, 0xc778 (T0)
addiu t7, t7, 0xC000
andi t7, t7, 0xffff
lui t4, 0x8038
sra t8, t7, 0x4
sll t9, t8, 0x2
addu t4, t4, t9
lwc1 f0, 0x6000 (T4)
mul.s f8, f0, f6
add.s f14, f14, f8

lwc1 f10, 0x7000 (T4)
mul.s f6, f10, f6
add.s f12, f12, f6




lwc1 f2, 0xc6ac (T0)
lwc1 f4, 0xc6a4 (T0)


sub.s f12, f12, f2
sub.s f14, f14, f4
mul.s f2, f12, f12
mul.s f4, f14, f14
add.s f2, f2, f4
sqrt.s f2, f2
swc1 f2, 0x0018 (SP)	//horizontal distance
jal 0x37a9a8
nop
sw v0, 0x0020 (SP)	//direciton of porjectile

lui t0, 0x8034
lwc1 f0, 0xc6a8 (T0)
lwc1 f10, 0xb1b0 (T0)
sub.s f10, f10, f0
lwc1 f2, 0x0018 (SP)
div.s f10, f10, f2
swc1 f10, 0x001c (SP)	//percentage of vertical movement

lui t0, 0x8034
lhu t7, 0xc778 (T0)
addiu t7, t7, 0x8000
andi t7, t7, 0xffff
//sw t7, 0x0020 (SP)

lui t0, 0x8033
ori a0, t0, 0xb10c
jal 0x29E2F8
ori a1, t0, 0xc604

lui at, 0x3b53
mtc1 at, f6
mul.s f6, f6, f0
lw t7, 0x0034 (SP)	//horizontal displacement

swc1 f0, 0x0034 (SP)	//distance
addiu t7, t7, 0xff60
sll t2, t7, 0x1
sll t7, t7, 0x5
add t7, t7, t2

lw v0, 0x0020 (SP)
sub v0, v0, t7
andi v0, v0, 0xffff
sw v0, 0x0020 (SP)


lui v0, 0x8037
ori v0, v0, 0x1400
lui t0, 0x8034
lw t1, 0xc6a4 (T0)
sw t1, 0x00a0 (v0)
lw t1, 0xc6a8 (T0)
sw t1, 0x00a4 (v0)
lw t1, 0xc6ac (T0)
sw t1, 0x00a8 (v0)
lw t2, 0x0020 (SP)
sw t2, 0x0020 (SP)


lw t7, 0x0030 (SP)	//vertical displacement
addiu t7, t7, 0xffe0	//expected ff88
mtc1 t7, f0
cvt.s.w f0, f0
lui at, 0x3b0a
mtc1 at, f2
mul.s f0, f0, f2

lui at, 0x4320
mtc1 at, f10
lwc1 f4, 0x001c (SP)
add.s f4, f4, f0

mul.s f4, f10, f4
swc1 f4, 0x00b0 (V0)

lw t7, 0x0020 (SP)
abs.s f4, f4
sub.s f6, f10, f4


lui t4, 0x8038
sra t8, t7, 0x4
sll t9, t8, 0x2
addu t4, t4, t9
lwc1 f4, 0x6000 (T4)
mul.s f8, f4, f6
swc1 f8, 0x00ac (v0)

lwc1 f10, 0x7000 (T4)
mul.s f6, f10, f6
swc1 f6, 0x00b4 (v0)


lui at, 0x3e83
mtc1 at, f4
lwc1 f2, 0x00ac (V0)
mul.s f2, f2, f4
swc1 f2, 0x00ac (V0)
lwc1 f6, 0x00b0 (V0)
mul.s f6, f6, f4
swc1 f6, 0x00b0 (V0)
lwc1 f2, 0x00b4 (V0)
mul.s f2, f2, f4
swc1 f2, 0x00b4 (V0)
addiu v1, r0, 0x0000


loopcoincollect:
lwc1 f2, 0x00a0 (V0)
lwc1 f12, 0x00ac (V0)
add.s f2, f2, f12
swc1 f2, 0x00a0 (V0)
lwc1 f2, 0x00a4 (V0)
lwc1 f12, 0x00b0 (V0)
add.s f2, f2, f12
swc1 f2, 0x00a4 (V0)
lwc1 f2, 0x00a8 (V0)
lwc1 f12, 0x00b4 (V0)
add.s f2, f2, f12
swc1 f2, 0x00a8 (V0)

lui t0, 0x8037
lw t1, 0x2000 (T0)
beq t1, r0, nocoins
nop
loop2:
lwc1 f2, 0x00a0 (T1)
lwc1 f12, 0x00a0 (V0)
sub.s f2, f2, f12
mul.s f2, f2, f2
lwc1 f4, 0x00a4 (T1)
lwc1 f14, 0x00a4 (V0)
sub.s f4, f4, f14
mul.s f4, f4, f4
lwc1 f6, 0x00a8 (T1)
lwc1 f16, 0x00a8 (V0)
sub.s f6, f6, f16
mul.s f6, f6, f6
add.s f2, f2, f4
add.s f0, f2, f6
sqrt.s f0, f0
lui at, 0x4248
mtc1 at, f2
c.lt.s f0, f2
nop
bc1t coins
nop
addiu t0, t0, 0x4
lw t1, 0x2000 (T0)
bne t1, r0, loop2
nop

addiu v1, v1, 0x1
addiu at, r0, 0x1ff
bne at, v1, loopcoincollect
nop
beq r0, r0, nocoins
nop

coins:
lw t0, 0x2000 (T0)
lui at, 0x8034
lw t2, 0xb1ac (AT)
sw t2, 0x00a0 (T0)
lw t2, 0xb1b0 (AT)
sw t2, 0x00a4 (T0)
lw t2, 0xb1b4 (AT)
sw t2, 0x00a8 (T0)
sw r0, 0x00b0 (T0)
sw r0, 0x00b8 (T0)
sw r0, 0x009c (T0)
sw r0, 0x134 (T0)
nocoins:
jal 0x277f50
lui a0, 0x0200
lui at, 0x0037
ori at, at, 0x1600
sw at, 0x7784 (V0)

lw a1, 0x0030 (SP)
addiu a1, a1, 0xfff6
lui a0, 0x8037
lw a0, 0xfff0 (a0)
addiu a0, a0, 0xfff6
lui a2, 0x8037
jal 0x2d62d8
ori a2, a2, 0x15f0

lw ra, 0x14 (SP)
jr ra
addiu sp, sp, 0x38
Tags: #Concept