SM64 Help Thread « 1 2 3 4 5 6 ... 40 »
Users browsing this thread: 1 Guest(s)

This is more of a project 64 question I guess but I can't exactly think of any better place for this.

I have set .z64 roms to default open with project 64 by clicking them on the desktop instead of just opening it through project 64. But every time I try to open them through the desktop it comes up with the error "attempt to open the file failed", the ame happens when using the launch rom option from toads tool. This happens to all roms, but it works completely fine when using the "open" menu in project 64.
"I sexually identify as a sexual attack bowl of frosted flakes." - MWeegee 2016


#stopwidescreenoppression

Won't work on PJ 1.6 if you have higher installed.
Gone for a while.

I have both 1.6 and 2.1, so I guess it won't work then? (I rarely ever use 2.1 anyway so if I have to uninstall it then so be it, I just use it if a hack is running slower on pj64 1.6)
"I sexually identify as a sexual attack bowl of frosted flakes." - MWeegee 2016


#stopwidescreenoppression

How much coding would it take to be able to make extra stars in courses that don't count toward the main 6, like the 100 coins stars? I'd like to make 3 extra stars per course to add some more difficulty.
"I sexually identify as a sexual attack bowl of frosted flakes." - MWeegee 2016


#stopwidescreenoppression

Hey guys, can someone make me a model if they're good at making models of course, my friend has lost his model years ago, so if anyone could re make it (i have a video of what it looked like) Please add me on Skype : luigihack2 or just PM me with the link, thanks.

(14-03-2015, 05:48 AM)★スーパーマリオサン100★/mariosan Wrote: Hey, can someone make me a model my friend has lost his model years ago, so if you could re make it (i have a video of what it looked like) heres the model https://www.youtube.com/watch?v=ifc3SgSlUt8
thanks.

Moved your post to here. Please don't make new topics and ask here instead.
R.I.P Tarek701. 2005-2016

How would I go about ripping the individual parts of mario? I'd like to make some small edits to them, but i'm not sure how to actually get a copy of them.
"I sexually identify as a sexual attack bowl of frosted flakes." - MWeegee 2016


#stopwidescreenoppression

How would I go about changing the environmental effect after touching a specific texture / entering a specific area.

Example, currently the blizzard effect is on screen. Slide into the caves, blizzard effect stops.
"I sexually identify as a sexual attack bowl of frosted flakes." - MWeegee 2016


#stopwidescreenoppression

(26-04-2015, 06:03 AM)MilleniumLuigi Wrote: How would I go about changing the environmental effect after touching a specific texture / entering a specific area.

Example, currently the blizzard effect is on screen. Slide into the caves, blizzard effect stops.

For entering a specific area, that can be done if you use Areal importing, for touching a specific texture then that could be a Collision trigger, but no one has done that yet.
Gone for a while.

[Image: EFTdfDnt.png]

Has anyone here messed with the 3 special caps object behaviors? I'm going through the wing cap object behavior right now for assembly practice. Inside the main loop function consists of 6 JALs, but I can't figure out what 3 of those sub-functions are supposed to do.

Here are the 3 that I do know:
0xACF60: JAL $002F1E5C - This function deals with the physics of the cap object. Removing this function freezes the cap in place.
0xACFA8: JAL $002F19C8 - This function deals with the lifespan of the cap. Removing this function keeps the cap in the level until Mario picks it up.
0xACFB0: JAL $002F1954 - This function deals with interaction with Mario. Removing this function prevents Mario from picking up the cap.

I don't know about these 3 though, replacing them with NOPs doesn't seem to affect the cap object:
0xACF70: JAL $002E4E90 - Deals with the offsets 0xA0 [x_pos], 0xA4 [y_pos] , 0xA8 [z_pos], 0xCA [y_rotation] ,0xB0 [y_speed], and 0xB8 [speed]. The function has 8 JALs.
0xACF78: JAL $002F1BB8 - Deals with the offsets 0x14C [action], 0x154 [timer], 0xDC, and 0x74 [active]. It has multiple branches (4?) in the function that lead to a JAL.
0xACFA0: JAL $002A05D4 - This function's only purpose is to make the object's offset 0x9C = 0. However, removing this function does not seem to affect the cap object.

Is there a good tutorial somewhere that can help me figure out this kind of stuff better? I hear that Nemu64 is a pretty good emulator for this purpose, but I don't really know how to use it for debugging functions.

Here are my notes on the Wing Cap object so far:
Spoiler :
Code:
/* Wing Cap Object Behavior */
0021DBB8 / 13003DB8 [00 06 00 00]
0021DBBC / 13003DBC [11 01 20 01] // Offset 0x8C (Not 92, thank you kaze) = 0x2001
0021DBC0 / 13003DC0 [0C 00 00 00 80 2F 1D 64] // ROM: 0xACD64
0021DBC8 / 13003DC8 [08 00 00 00]
0021DBCC / 13003DCC [0C 00 00 00 80 2F 1F 3C] // ROM: 0xACF3C
0021DBD4 / 13003DD4 [09 00 00 00]

Function 0x802F1D64 (ROM: 0xACD64)
Spoiler :
This function seems to set the gravity properties of the Wing Cap object and the cap's transparency value (to 0xFF).
------------------------
Notes:
0x80361160 - Pointer to the current object.

Object offsets referenced in this function:
Spoiler :
(Special thanks to Messiaen and Kaze)

(float) 0xE4; /* gravity related? y_speed - 0xe4 ? */
(float) 0x170; /* movement/gravity related */
(float) 0x174; /* movement/gravity related? */
(u32) 0x17C; /* transparency */

see this thread by kaze for more info: http://smwc.me/1057962
------------------------

/* This chunk of code modifies the 0xE4 offset */
LUI AT, $8034 - (Load Upper Immediate) [AT = 0x80340000]
LUI T6, $8036 - (Load Upper Immediate) [T6 = 0x80360000]
LW T6, $1160 (T6) - Load word (4 bytes) from address 0x80361160 into T6
LWC1 F4, $87D8 (AT) - (Load word in to coprocessor 1) [F4 = 0x803487D8]// 1037D8
SWC1 F4, $00E4 (T6) - (Store word from coprocessor 1) [Address (0x80361160+0xE4) = F4]

/* This chunk modifies the 0x170 offset */
LUI AT, $8034 - (Load Upper Immediate) [AT = 0x80340000]
LUI T7, $8036 - (Load Upper Immediate) [T7 = 0x80360000]
LW T7, $1160 (T7) - Load word (4 bytes) from address 0x80361160 into T7
LWC1 F6, $87DC (AT) - (Load word in to coprocessor 1) [F6 = 0x803487DC]// 1037DC
SWC1 F6, $0170 (T7) - (Store word from coprocessor 1) [Address (0x80361160+0x170) = F6]

/* This chunk modifies the 0x174 offset */
LUI AT, $8034 - (Load Upper Immediate) [AT = 0x80340000]
LUI T8, $8036 - (Load Upper Immediate) [T8 = 0x80360000]
LW T8, $1160 (T8) - Load word (4 bytes) from address 0x80361160 into T8
LWC1 F8, $87E0 (AT) - (Load word in to coprocessor 1) [F8 = 0x803487E0] // 1037E0
SWC1 F8, $0174 (T8) - (Store word from coprocessor 1) [Address (0x80361160+0x174) = F8]

/* This chunk modifies the 0x17C offset (Transparency) */
LUI T0, $8036 - (Load Upper Immediate) [T0 = 0x80360000]
LW T0, $1160 (T0) - Load word (4 bytes) from address 0x80361160 into T0
ADDIU T9, R0, $00FF - (Add Immediate Unsigned) [T9 = 0x00000000 + 0x00FF]
SW T9, $017C (T0) - (Store Word) Stores 0x000000FF to Address (T0+0x017C) [Address (0x80361160+0x017C) = T9]

JR RA - Jump back to the return address.
NOP

Function 0x802F1F3C (ROM: 0xACF3C)
Spoiler :
The main loop for the wing cap object.
------------------------
Notes:
0x80361160 - Pointer to the current object.

Object offsets referenced in this function (that I know of):
Spoiler :
(Special thanks to Messiaen and Kaze)

(u16) 0x74 [active] /* 0x0000 = inactive, 0x0101 = active */
(u32) 0x9C /*points to controller (for mario) enables interaction*/
(float) 0xA0 [x_pos] /* 0xa0 (defined at 80254FB4) */
(float) 0xA4 [y_pos]
(float) 0xA8 [z_pos]
(float) 0xB0 [y_speed]
(float) 0xB8 [speed]
(u16) 0xCA [(lower 2 bytes of) y_rotation]
(u32) 0xD4 [y_rotation2]
(u32) 0xDC
(u32) 0xF4 /* messiaen: obj type for some behaviors (ie, ice bully), for AMPS, radius of rotation. kaze: related to xposition for waves */
(u32) 0x134 /* has to be 0 to have an interaction*/
(u32) 0x14C [action]
(u32) 0x154 [timer] /* always incremented. When action changes, it's set to 0 */

see this thread by kaze for more info: http://smwc.me/1057962
Functions used in this function:
Spoiler :
I skimmed through these functions to look for 0x80361160 offsets & JALs.

0x2F1E5C (ROM: 0xACE5C-0xACF38)
Spoiler :
This function deals with the physics (gravity/movement) of the cap. Removing this function freezes the cap at the point it was spawned.

0x80361160 Offsets used:
0xD4 (Register T7, later T9),
0xB8 (F4),
0xB0 (F6, later F16),
Value 0x01 stored to 0xF4,
0xF4 (T7)

3 JALs:
0x2E4E90
0x2F1A10
0x2F1DC0
0x2E4E90 (ROM: 0x9FE90-0xA0110)
Spoiler :
I don't know what this function is used for. Removing this function does not seem to affect the cap object.

0x80361160 Offsets used:
0xA0 (Register F4)
0xA4 (F6, later F10, last F4)
0xA8 (F8)
0xCA (T9, later T3)
0xB8 (F18, later B8)
0xB0 (F18)

8 JALs:
(0x2E405C, A2, A3),
(0x381900, A2, A3 = 0x80361450),
(0x2E41A4, A0 = 0x80361450, A1, A2, A3),
0x381BA0,
(0x2E4814, A0 = 0x80361450, A1, A2, A3),
(0x2E445C, A0 = 0x80361450, A1, A2, A3),
0x2E4CEC,
(0x2E4D88, A0, A1)
0x2F1BB8 (ROM: 0xACBB8-0xACD60)
Spoiler :
I don't know what this function is used for. Removing this function does not seem to affect the cap object.

0x80361160 Offsets used:
0x14C (Register S0)
0x154 (T8)
0xDC (F4, later F10, F4)

1 JAL: 0x2F1A10
0x2A05D4 (ROM: 0x5B5D4-0x5B5E4)
Spoiler :
This function's only purpose is to make the object's offset 0x9C = 0
Removing this function does not seem to affect the cap object.
0x2F19C8 (ROM: 0xAC9C8-0xACA0C)
Spoiler :
This function deals with the cap's lifespan timer. Removing this function prevents the cap from disappearing.

0x80361160 Offsets used:
0x154 (Register T7)

1 JAL: (0x2E5824, A0 = 0x80361160, A1 = 0x12C)
0x2F1954 (ROM: 0xAC954-0xAC9C4)
Spoiler :
This function deals with the interaction with Mario. Removing this function prevents mario from picking up the cap.

0x80361160 Offsets used:
0x74 (Register T9),
0x134 (T7, then T0)

1 JAL: (0x2A34A4, A0 = 0x80361160, A1 = 0x80332774)
------------------------

0xACF3C: ADDIU SP, SP, $FFE8
0xACF40: SW RA, $0014 (SP)

0xACF44: LUI T6, $8036 - (Load Upper Immediate) [T6 = 0x80360000]
0xACF48: LW T6, $1160 (T6) - (Load Word) [T6 = 0x80361160]
0xACF4C: LW T7, $014C (T6) - (Load Word) [T7 = (0x80361160+0x14C)]
0xACF50: BNEZ T7, $000ACF70 - if (T7 != 0) -> Branch to 0xACF70
0xACF54: NOP
0xACF58: BEQ R0, R0, $000ACF60 - if (0 == 0) -> Branch to 0xACF60
0xACF5C: NOP
0xACF60: JAL $002F1E5C - (Jump & Link) go to function 0x2F1E5C (ROM: 0xACE5C)
0xACF64: NOP
0xACF68: BEQ R0, R0, $000ACF88 - if (0 == 0) -> Branch to 0xACF88
0xACF6C: NOP
0xACF70: JAL $002E4E90 - (Jump & Link) go to function 0x2E4E90 (ROM: 0x9FE90)
0xACF74: NOP
0xACF78: JAL $002F1BB8 - (Jump & Link) go to function 0x2F1BB8 (ROM: 0xACBB8)
0xACF7C: NOP
0xACF80: BEQ R0, R0, $000ACF88 - if (0 == 0) -> Branch to 0xACF88
0xACF84: NOP
0xACF88: LUI T8, $8036 - (Load Upper Immediate) [T8 = 0x80360000]
0xACF8C: LW T8, $1160 (T8) - (Load Word) [T8 = 0x80361160]
0xACF90: LW T9, $0154 (T8) - (Load Word) [T9 = (0x80361160+0x154)]
0xACF94: SLTI AT, T9, $0015 - if (T9 < 0x15) -> [AT = 1] (else [AT = 0])
0xACF98: BNEZ AT, $000ACFA8 - if (AT != 0) -> Branch to 0xACFA8
0xACF9C: NOP
0xACFA0: JAL $002A05D4 - (Jump & Link) go to function 0x2A05D4 (ROM: 5B5D4)
0xACFA4: NOP
0xACFA8: JAL $002F19C8 - (Jump & Link) go to function 0x2F19C8 (ROM: AC9C8)
0xACFAC: NOP
0xACFB0: JAL $002F1954 - (Jump & Link) go to function 0x2F1954 (ROM: AC954)
0xACFB4: NOP
0xACFB8: BEQ R0, R0, $000ACFC0 - if (0 == 0) -> Branch to 0xACFC0
0xACFBC: NOP

0xACFC0: LW RA, $0014 (SP)
0xACFC4: ADDIU SP, SP, $0018
0xACFC8: JR RA
0xACFCC: NOP
(This post was last modified: 11-05-2015, 05:36 PM by David.)

SM64 Help Thread « 1 2 3 4 5 6 ... 40 »
Users browsing this thread: 1 Guest(s)


  EN ・日本語