| ||
| Views: 14,036,539 |
Home
| Forums
| Uploader
| Wiki
| Object databases
| IRC
Rules/FAQ | Memberlist | Calendar | Stats | Online users | Last posts | Search |
04-06-21 12:03 AM |
| Guest: | ||
| Main - Posts by mibts |
| mibts |
| ||
![]() Panser =Josh65536 (Programmer) Level: 37
Posts: 181/331 EXP: 317182 Next: 21071 Since: 08-31-13 Last post: 832 days ago Last view: 10 days ago |
This game uses separate colliders for colliding with other objects (a cylinder collider) and for colliding with mesh colliders (a sphere collider). What was the point of that? ____________________ Current hack: Excerpt from Super Mario 256 |
| mibts |
| ||
![]() Panser =Josh65536 (Programmer) Level: 37
Posts: 182/331 EXP: 317182 Next: 21071 Since: 08-31-13 Last post: 832 days ago Last view: 10 days ago |
It would be nice to warn the user if the offset to anything in a BMD comes after the offset to the texture/pallete data block. When the game loads a BMD, it eventually deallocates anything from the data block offset onward, not caring if there is other crucial data there. Putting pallete headers after the data block is how I got black Goombas in a level. ![]() ____________________ Current hack: Excerpt from Super Mario 256 |
| mibts |
| ||
![]() Panser =Josh65536 (Programmer) Level: 37
Posts: 183/331 EXP: 317182 Next: 21071 Since: 08-31-13 Last post: 832 days ago Last view: 10 days ago |
I made another hack; this time Colored Goombas:
Red Goombas jump at the player, Green Goombas jump and spin at the player, and Yellow Goombas do 1 extra damage. They are all in I had to convert the Goomba code from assembly to C++, simplify it, and then add my hack and compile it back. This version of SM64DSe contains the source code for it in ASMPatchTemplate. Here are the steps to modifying the Goomba if you want to: 1. Make the modifications in the source code 2. Open the new SM64DSe, click Edit Code, go to Edit, and click Compile Code. 3. Select the ASMPatchTemplate folder. 4. Type in the filename for the output ASM; it will be in the ASMPatchTemplate folder. 5. For the offset, type 02129020. This is the start of overlay 84, the Goomba overlay. 6. Compile, and fix errors. Make sure the output file is no more than 12524 bytes long. 7. Extract overlay 84. 8. Open the output file in a hex editor and copy its contents to overlay 84. Overwrite the overlay's contents, and don't change its file size. 9. Replace overlay 84 in SM64DSe. 10. Open newcode.map (in ASMPatchTemplate/bin) in a text editor and scroll down until you see this: 0x0212b060 GoombaColored::spawnDataBig
11. Open the ROM in a hex editor and go to offset 0x68b0. Type in the offset for GoombaColored::spawnDataNormal, then for *Small, then for *Big. The bytes go in little endian (reverse order). Save it.
0x0212b07c GoombaColored::spawnDataSmall 0x0212b098 GoombaColored::spawnDataNormal 12. Enjoy and hope for no crashes! Notes: The last arguments of TexSeq_SetFile, MatChg_SetMaterialDef, and ModelAnim_ChangeAnim (the start frame) are not in fixed point 20.12. Sorry for not commenting that. The hack: SM64DS + Colored Goombas ____________________ Current hack: Excerpt from Super Mario 256 |
| mibts |
| ||
![]() Panser =Josh65536 (Programmer) Level: 37
Posts: 184/331 EXP: 317182 Next: 21071 Since: 08-31-13 Last post: 832 days ago Last view: 10 days ago |
The point of this thread is to name a Mario enemy and give it the wackiest customization you can think of.
Example: A blue-shelled Koopa Troopa whose shell runs into the player and explodes if he jumps on it. ![]() ____________________ Current hack: Excerpt from Super Mario 256 |
| mibts |
| ||
![]() Panser =Josh65536 (Programmer) Level: 37
Posts: 185/331 EXP: 317182 Next: 21071 Since: 08-31-13 Last post: 832 days ago Last view: 10 days ago |
Check enemy/popoi. I'm not sure. ____________________ Current hack: Excerpt from Super Mario 256 |
| mibts |
| ||
![]() Panser =Josh65536 (Programmer) Level: 37
Posts: 186/331 EXP: 317182 Next: 21071 Since: 08-31-13 Last post: 832 days ago Last view: 10 days ago |
Posted by SGC Nice zero-based counting. ____________________ Current hack: Excerpt from Super Mario 256 |
| mibts |
| ||
![]() Panser =Josh65536 (Programmer) Level: 37
Posts: 187/331 EXP: 317182 Next: 21071 Since: 08-31-13 Last post: 832 days ago Last view: 10 days ago |
I said a customization, not an enemy that's already wacky. ____________________ Current hack: Excerpt from Super Mario 256 |
| mibts |
| ||
![]() Panser =Josh65536 (Programmer) Level: 37
Posts: 188/331 EXP: 317182 Next: 21071 Since: 08-31-13 Last post: 832 days ago Last view: 10 days ago |
Here is a link to the ASM patch template, which allows making hacks with C or C++. It has an example and a tutorial. ____________________ Current hack: Excerpt from Super Mario 256 |
| mibts |
| ||
![]() Panser =Josh65536 (Programmer) Level: 37
Posts: 189/331 EXP: 317182 Next: 21071 Since: 08-31-13 Last post: 832 days ago Last view: 10 days ago |
I hacked the Goombas and inserted a texture sequence in their model and code. Changing the parameter changes the frame of the texture sequence. If you want to look at the code, download the version of SM64DSe that I posted. Go to ASMPatchTemplate/source and open GoombaColored.cpp. ____________________ Current hack: Excerpt from Super Mario 256 |
| mibts |
| ||
![]() Panser =Josh65536 (Programmer) Level: 37
Posts: 190/331 EXP: 317182 Next: 21071 Since: 08-31-13 Last post: 832 days ago Last view: 10 days ago |
1. Goto 02090864+ACTOR_ID*4
2. Goto the pointer that it points to. This is the spawn info. 3. Goto where that points to. This is the constructor. 4. Somewhere in the constructor, you'll find something like this: ldr r0, =02112357 (some address between 020ad660 and 0214eaa0)
The registers could be different, and there may be code in between.
str r0, [r4] 5. Goto the pointer that is loaded. You should see an array of pointers. 6. Goto the first pointer in the array. This is the initialization function. 7. Find the branch to 02016fd4. ____________________ Current hack: Excerpt from Super Mario 256 |
| mibts |
| ||
![]() Panser =Josh65536 (Programmer) Level: 37
Posts: 191/331 EXP: 317182 Next: 21071 Since: 08-31-13 Last post: 832 days ago Last view: 10 days ago |
Posted by shibboleet In 2025, the year will be a perfect square. ____________________ Current hack: Excerpt from Super Mario 256 |
| mibts |
| ||
![]() Panser =Josh65536 (Programmer) Level: 37
Posts: 192/331 EXP: 317182 Next: 21071 Since: 08-31-13 Last post: 832 days ago Last view: 10 days ago |
The CLPS is not an array of 8 bytes. It is a giant bitfield that just happens to be 64 bits long. A proper backronym for CLPS would be CoLlision Parameter Structure.
Here are the bits in order from bit 63 to bit 0. QQQQQQQQQQQQQQQQQQQQQQQQWWWWWWWWPPPPUXZBBBBBCCCCFFFVVVVVVATTTTT
(The numbers below will be in decimal) T = Texture.
A = Water This is a boolean indicating whether the surface defines a water plane. V = View ID This indexes the view that the surface should have. If the View ID is 63, it does not have a view attached to it. F = Traction
C = Camera Behavior
B = Behavior
Z = Transparent to Camera Whether the camera can go through it. X = Toxic Like the Water parameter, but this one defines a toxic barrier. U = Camera Wall Whether actors other than the camera can pass through it. P = Padding W = Wind Path ID Links the surface to a 2-point path defining a vector which says which direction the wind blows. Parameter 4 for the path is either 0, 1, 2, or 3. This could define a breeze, a water current, or a quicksand pulling direction. Q = Padding And here is a picture of a CLPS editor for Whomp's Fortress and that shows the proper way to break up the CLPS: Answer to Hiccup's question: Whoops, I meant to press "edit", and I can't post again until an hour passes. You'd have to unfortunately write out all the bits, convert to hexadecimal, and write the bytes in the CLPS editor in order from least to most significant. Where it says "zoom", I meant "transparent to camera". ____________________ Current hack: Excerpt from Super Mario 256 |
| mibts |
| ||
![]() Panser =Josh65536 (Programmer) Level: 37
Posts: 193/331 EXP: 317182 Next: 21071 Since: 08-31-13 Last post: 832 days ago Last view: 10 days ago |
The misc. objects in the level overlay must be in a specific order to prevent glitches such as 8-directional cameras starting with an angle of 164.68505859375 degrees.
The Order: (2) Path Nodes
(3) Paths (4) Views (b) Minimap Tile File (1) Level Entrances (6) Teleport Source (7) Teleport Dest (8) Fog (9) Doors (c) Minimap Scale (e) (Unknown) (a) Level Exits I thought cameras were very mysterious for the longest time before discovering this. Fortunately, reordering the 8-byte object table entries is enough, because no addresses need fixing. In my example of the 8-directional camera starting with an angle of 164.68505859375 degrees, the Level Entrances table appeared before the Views table, causing the camera to spawn before it knows what view to use. ____________________ Current hack: Excerpt from Super Mario 256 |
| mibts |
| ||
![]() Panser =Josh65536 (Programmer) Level: 37
Posts: 194/331 EXP: 317182 Next: 21071 Since: 08-31-13 Last post: 832 days ago Last view: 10 days ago |
Yes, it does. ____________________ Current hack: Excerpt from Super Mario 256 |
| mibts |
| ||
![]() Panser =Josh65536 (Programmer) Level: 37
Posts: 195/331 EXP: 317182 Next: 21071 Since: 08-31-13 Last post: 832 days ago Last view: 10 days ago |
My time offset from server is still 0:00. ![]() ____________________ Current hack: Excerpt from Super Mario 256 |
| mibts |
| ||
![]() Panser =Josh65536 (Programmer) Level: 37
Posts: 196/331 EXP: 317182 Next: 21071 Since: 08-31-13 Last post: 832 days ago Last view: 10 days ago |
Triangulate all concave polygons. ____________________ Current hack: Excerpt from Super Mario 256 |
| mibts |
| ||
![]() Panser =Josh65536 (Programmer) Level: 37
Posts: 197/331 EXP: 317182 Next: 21071 Since: 08-31-13 Last post: 832 days ago Last view: 10 days ago |
1. Yes, and actually, I have a better version that doesn't spawn a new particle system every time a sparkle appears.
2. Not sure. (Look out for a showcase of some other new stuff coming soon!) ____________________ Current hack: Excerpt from Super Mario 256 |
| mibts |
| ||
![]() Panser =Josh65536 (Programmer) Level: 37
Posts: 198/331 EXP: 317182 Next: 21071 Since: 08-31-13 Last post: 832 days ago Last view: 10 days ago |
Here's a compilation of some things I did while hacking the game:
This includes Shy Guys, the sprinkler, Magikoopas, and of course Launch Stars. A download will be available when I finish the level that these objects are on. I will say, however, that the switch and Launch Star in this video will be absent. (The Shy Guys have bad lighting, I know; I recently fixed that glitch. It turns out that SM64DSe doesn't transform normals by the inverse bone matrix like it does for vertex positions.) ____________________ Current hack: Excerpt from Super Mario 256 |
| mibts |
| ||
![]() Panser =Josh65536 (Programmer) Level: 37
Posts: 199/331 EXP: 317182 Next: 21071 Since: 08-31-13 Last post: 832 days ago Last view: 10 days ago |
Ooh, a classic. Did you import a DAE with normals? If so, you need to hex edit the bmd file to turn Light 0 on for the model. There's a more consistent method, but for now, search for 80 90 1f 00 xx xx 00 00 and replace it with 81 90 1f 00 xx xx 10 42. The former turns on light 0 and the latter gives the model a gray ambient color. ____________________ Current hack: Excerpt from Super Mario 256 |
| mibts |
| ||
![]() Panser =Josh65536 (Programmer) Level: 37
Posts: 200/331 EXP: 317182 Next: 21071 Since: 08-31-13 Last post: 832 days ago Last view: 10 days ago |
There's a getting started tutorial at http://kuribo64.net/board/thread.php?id=2319. ____________________ Current hack: Excerpt from Super Mario 256 |
| Main - Posts by mibts |
|
Page rendered in 0.035 seconds. (2048KB of memory used) MySQL - queries: 22, rows: 228/228, time: 0.027 seconds.
Acmlmboard 2.064 (2018-07-20)© 2005-2008 Acmlm, Xkeeper, blackhole89 et al. |