Register | Login
Views: 19364387
Main | Memberlist | Active users | ACS | Commons | Calendar | Online users
Ranks | FAQ | Color Chart | Photo album | IRC Chat
11-02-05 12:59 PM
1 user currently in Rom Hacking: hukka | 2 guests
Acmlm's Board - I2 Archive - Rom Hacking - Mario 64 - Amazing Stuff | |
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33Add to favorites | "RSS" Feed | Next newer thread | Next older thread
User Post
HyperLamer
<||bass> and this was the soloution i thought of that was guarinteed to piss off the greatest amount of people

Sesshomaru
Tamaranian

Level: 118

Posts: 5703/8210
EXP: 18171887
For next: 211027

Since: 03-15-04
From: Canada, w00t!
LOL FAD

Since last post: 2 hours
Last activity: 2 hours
Posted on 07-12-05 01:35 PM Link | Quote
Ah, well, now we don't have to list those objects when we find out what type they are.

Why are some of your objects halfway into the ground? And what are those two at the left? I guess one would be Mario's starting point, dunno what the other is though...
VL-Tone

Red Cheep-cheep
Level: 23

Posts: 106/200
EXP: 64158
For next: 3565

Since: 06-06-04
From: In the Moon!

Since last post: 5 days
Last activity: 2 hours
Posted on 07-12-05 02:03 PM Link | Quote
About the cubes being halfway into the ground, here is the short explanation:

Polygonal objects like enemies etc. have the Y zero point inside their geometry relative to the feet or bottom of the object. That way they are easy to align to the ground without having to use some sophisticated collision routine with the ground. For example the Goomba geometry must have the bottom of their feet at Y zero and only use positive values for Y values inside their own polygon data, that way in the game they appear to walk on the ground by keeping their global Y position equal to the height of the ground. My editor assumes that Y values inside the object geometry can be negative too, and that could be very possible, for objects that need to be rotated around their centers.

So that's why the cubes in my editor can appear halfway through the ground, because their center Y position is equal to the ground height. I hope it makes sense as I'm a little tired :/
HyperLamer
<||bass> and this was the soloution i thought of that was guarinteed to piss off the greatest amount of people

Sesshomaru
Tamaranian

Level: 118

Posts: 5711/8210
EXP: 18171887
For next: 211027

Since: 03-15-04
From: Canada, w00t!
LOL FAD

Since last post: 2 hours
Last activity: 2 hours
Posted on 07-12-05 11:52 PM Link | Quote
Hm, so does that mean a proper editor would have to read through each object's geometry and draw the actual object to get their location right? That's gonna take a lot of hacking.
VL-Tone

Red Cheep-cheep
Level: 23

Posts: 107/200
EXP: 64158
For next: 3565

Since: 06-06-04
From: In the Moon!

Since last post: 5 days
Last activity: 2 hours
Posted on 07-13-05 12:34 AM Link | Quote
Exactly HyperHacker, same goes for size and shape, and it would simply be more appropriate and fun anyway to have the actual objects instead of cubes But there is still a lot of data to be found before it's possible. Until then, I feel my editor can still be useful to learn more details about the level data format.

In any case, even with the actual polygonal objects in the editor, getting objects aligned with ground could get a little hard to do manually, so I thought about adding a "drop to ground" feature in my editor that will find the ground height under an object and drop it there.

I forgot to mention that yes the object starting at 405D9C is Mario's start position. It has object type 00 (invisible) and behavior type 13 74 2F.

At 405DA0, change 62 E6 E8 03 40 19 to D8 0E D8 0E F4 01 and Mario will start level 1 on the platform in the sky.
HyperLamer
<||bass> and this was the soloution i thought of that was guarinteed to piss off the greatest amount of people

Sesshomaru
Tamaranian

Level: 118

Posts: 5716/8210
EXP: 18171887
For next: 211027

Since: 03-15-04
From: Canada, w00t!
LOL FAD

Since last post: 2 hours
Last activity: 2 hours
Posted on 07-13-05 03:37 AM Link | Quote
That's what I figured, but what's the one below it?
VL-Tone

Red Cheep-cheep
Level: 23

Posts: 108/200
EXP: 64158
For next: 3565

Since: 06-06-04
From: In the Moon!

Since last post: 5 days
Last activity: 2 hours
Posted on 07-13-05 07:47 AM Link | Quote
It's simply a pink bob-omb telling you something. Another bob-omb is near that, beside the cannon. The former is at 4059BC and the latter at 405B84.

Aside from the XYZ coords, the only difference between the two is the 17th byte. So that confirms that the 17th byte is about which message the bob-omb gives. If you want to experiment with this byte, the one for the first bob-omb is at 405BAC (01) and for the second one at 405B95 (02).

Edit: I didn't have much time to experiment with my own editor before my vacation, now that I did, here is what I've found:

This shouldn't come as a surprise, bytes 11 to 16 of the 1824 objects are rotation angle values for all the three axis. Each axis is a 16-bit signed integer angle in degrees. Note that many objects like animated enemies have their rotation values overridden by behaviors controlling them. Bytes 17-21 seems to be parameters fed into the behavior routine, so they have a different use depending on which behavior is used

I also confirmed that the "Act" value which is the fourth byte, is to be interpreted as binary, one bit for each course in a level (8 courses max).

I'll update my editor to support rotation values and provide a way to edit a binary version of the act byte.

I started to document the types for 1824 objects and found that objects with the wrong behavior can act a little weird For example if you change the C3 (pink bob-omb) to BF (shell less koopa) at 4059BE you'll see that the koopa will float over the ground, face down, and rotating toward Mario like the bob-omb, but will have weird "spasms" in one arm like it just got electrocuted or something. It may be necessary to document all possible behaviors to make a correct list.

Also I found that there are two pink bob-ombs at the same coordinates (right of Mario at start). One appears only in one act, and the second appear in the remaining 5 acts, giving a different message.


(edited by VL-Tone on 07-12-05 10:47 PM)
(edited by VL-Tone on 07-13-05 03:51 PM)
ShadowSonic

Paragoomba
Level: 13

Posts: 43/69
EXP: 8585
For next: 1682

Since: 03-23-05
From: Minnesota

Since last post: 54 days
Last activity: 7 days
Posted on 07-14-05 07:08 AM Link | Quote
It's seems that your theory is very complicated but, I remember saying that the loading point of the game when you turn on the console is that Mario's polygon's are the first to load, so isn't there a way to hack those first loading something mumbo jumbo and make him a bit taller (about 2" - 4")? If not, then I am sorry to waste your time.

That was from a person who posted on GameFAQs. So is that true? And if it is, is there a way to change his polygon?
VL-Tone

Red Cheep-cheep
Level: 23

Posts: 112/200
EXP: 64158
For next: 3565

Since: 06-06-04
From: In the Moon!

Since last post: 5 days
Last activity: 2 hours
Posted on 07-14-05 07:28 AM Link | Quote
ShadowSonic, could you please post the url of where you found this? Because It's kinda hard to understand out of context.

Anyway you wanted to know if it is possible to change Mario's polygons and make him taller well the answer is yes, but we wouldn't be able to do it now as there are a few key things missing to reconstruct and edit Mario's whole body (I don't know where is the data that position all the body parts). But there is nothing major preventing it from what I saw, aside from having to keep the compressed MIO0 file the same size or smaller as the original.
Sukasa

Boomboom
Error 349857348734534: The system experienced an error.
Level: 57

Posts: 1192/1981
EXP: 1446921
For next: 39007

Since: 02-06-05
From: *Shrug*

Since last post: 6 days
Last activity: 1 day
Posted on 07-14-05 07:31 AM Link | Quote
well, I'm going out to left field with this guess, but shouldn't that be (once uncompressed, with more data found) fairly esay to move some triangle points upwards, to strech the polygons and change mario's stature? there would be no size differences.
VL-Tone

Red Cheep-cheep
Level: 23

Posts: 113/200
EXP: 64158
For next: 3565

Since: 06-06-04
From: In the Moon!

Since last post: 5 days
Last activity: 2 hours
Posted on 07-14-05 10:14 AM Link | Quote
It would be fairly easy to "squish" or stretch any of Mario's body parts. I'm guessing that making Mario's head taller would make it look more like Luigi, if that's what you want.

The problem is that the head, arms, legs, hands are all stored in different polygon objects and that some other data connects them at specific points that can act as rotation joints. If this other data is not changed, just scaling each part would result in a very weird Mario

Edit: I was finally able to render Mario's head with colors and textures!



(edited by VL-Tone on 07-14-05 01:14 AM)
(edited by VL-Tone on 07-14-05 01:16 AM)
(edited by VL-Tone on 07-14-05 05:27 AM)
(edited by VL-Tone on 07-14-05 06:07 AM)
ShadowSonic

Paragoomba
Level: 13

Posts: 44/69
EXP: 8585
For next: 1682

Since: 03-23-05
From: Minnesota

Since last post: 54 days
Last activity: 7 days
Posted on 07-14-05 04:14 PM Link | Quote
VL-Tone, heres the link thats from GameFAQs Mario 64 board with the post I posted:

http://boards.gamefaqs.com/gfaqs/genmessage.php?board=198848&topic=22066998&page=4
VL-Tone

Red Cheep-cheep
Level: 23

Posts: 114/200
EXP: 64158
For next: 3565

Since: 06-06-04
From: In the Moon!

Since last post: 5 days
Last activity: 2 hours
Posted on 07-14-05 05:56 PM Link | Quote
Interesting thread...
I still don't understand what the guy meant, and I'm not sure if he's serious or not.

Now on a related topic: is that what you are after?



This is Mario's head with a conic deformation with the top being wider, and the head is also taller.
macks

Level: 45

Posts: 743/900
EXP: 659955
For next: 209

Since: 03-15-04
From: Sweden

Since last post: 1 day
Last activity: 22 hours
Posted on 07-14-05 06:54 PM Link | Quote
I've been following this thread from the start, and I decided to sticky it now (even though it doesn't seem like it's needed, with the current activity). If YI got a sticky, then this definitely should ;o

Keep up the good work
HyperLamer
<||bass> and this was the soloution i thought of that was guarinteed to piss off the greatest amount of people

Sesshomaru
Tamaranian

Level: 118

Posts: 5748/8210
EXP: 18171887
For next: 211027

Since: 03-15-04
From: Canada, w00t!
LOL FAD

Since last post: 2 hours
Last activity: 2 hours
Posted on 07-14-05 10:27 PM Link | Quote
IIRC, Luigi's hat has an L on it. Awesome work, the heads look smoother than they do in the game though.

Also keep in mind that the compressor isn't as efficient as Nintendo's, so the output will be a little bigger.
Someguy

Buzzy Beetle
It seems as though the girl you've fallen for is also a pyromaniac.
Level: 32

Posts: 349/397
EXP: 193329
For next: 13113

Since: 03-15-04
From: I'm proud to be an American... I think...

Since last post: 1 day
Last activity: 5 hours
Posted on 07-15-05 12:28 AM Link | Quote
He obviously simply changed the palette for the time being. Is it possible to change pointers and such in an N64 rom due to inefficient compressors, till it is made better? Maybe even make it better then Nintendo's so you can fit in more data!
VL-Tone

Red Cheep-cheep
Level: 23

Posts: 115/200
EXP: 64158
For next: 3565

Since: 06-06-04
From: In the Moon!

Since last post: 5 days
Last activity: 2 hours
Posted on 07-15-05 01:02 AM Link | Quote
Nahhh, changing the M to an L is too easy for my tastes. Now changing Mario's morphology to Luigi's, that's what I call "not that easy", though it's not incredibly hard either. I must admit that changing the color of the hat was too easy, but it was the minimum requirement for my brain to see it as more than a "Stretched Mario's head".

Actually there is a little comedic element to my Luigi animation, as if Mario was being transformed into Luigi, and when he realize it by looking at his costume and hat his eyes becomes Xs.

I was planning on doing my own compressor, but it's been some time since I programmed my own MIO0 de-compressor and I kinda forgot the details about the compression. I'll try to find ways to make one that is more efficient and share the results with you.

But yeah in the mean time it could be possible to extend the ROM and change the pointers to the Mario MIO0 file, giving us much more freedom for editing.

Mario's MIO0 file is at $114750, so we could look for instances of $11005047 in the ROM.

From what I've just checked, there is only one place where you can find $11005047, it's at address
$2ABCA4. Try to see if you can relocate/copy the MIO0 file to another place in the ROM and then change this pointer and see if it works. If it doesn't crash the game, to be sure, you can either try to see if other pointer values crash it, or use a modified MIO0 file to see if changing the pointer actually worked.

Anyway, I have to go to work soon (and dang I'm tired...)
stag019

Snifit
Level: 23

Posts: 67/299
EXP: 62259
For next: 5464

Since: 06-10-05
From: C:\Documents and Settings\stag019\Desktop

Since last post: 9 days
Last activity: 7 hours
Posted on 07-15-05 01:12 AM Link | Quote
Well, I don't know why ShadowSonic is trying to steal my job. We already promised that he does Super Luigi RPG and I'll do Super Luigi 64, and in 6 years, he'll start on Super Luigi Sunshine! Well anyways, I wasn't planning on changing the polygons any time soon. And defidently not for the first release, but if you can figure this out, it might be in release 2! (ICK I don't even want to think that far ahead)
Edit:
"From what I've just checked, there is only one place where you can find $11005047, it's at address
$2ABCA4. Try to see if you can relocate/copy the MIO0 file to another place in the ROM and then change this pointer and see if it works. If it doesn't crash the game, to be sure, you can either try to see if other pointer values crash it, or use a modified MIO0 file to see if changing the pointer actually worked."
I'll work on it.


(edited by stag019 on 07-14-05 04:22 PM)
(edited by stag019 on 07-23-05 11:54 AM)
DJ Bouche

Level: 11

Posts: 32/35
EXP: 5060
For next: 925

Since: 03-15-04
From: Bligh Park, NSW, Australia

Since last post: 108 days
Last activity: 14 days
Posted on 07-16-05 06:37 AM Link | Quote
Curious, is this MIO0?

/* 0x8027f4e0 */
uncompress(u32 *src, u8 *dst)
{
HyperLamer
<||bass> and this was the soloution i thought of that was guarinteed to piss off the greatest amount of people

Sesshomaru
Tamaranian

Level: 118

Posts: 5783/8210
EXP: 18171887
For next: 211027

Since: 03-15-04
From: Canada, w00t!
LOL FAD

Since last post: 2 hours
Last activity: 2 hours
Posted on 07-16-05 07:24 AM Link | Quote
I'm pretty sure it is, and it's decompiled from the game.
VL-Tone

Red Cheep-cheep
Level: 23

Posts: 117/200
EXP: 64158
For next: 3565

Since: 06-06-04
From: In the Moon!

Since last post: 5 days
Last activity: 2 hours
Posted on 07-16-05 10:12 AM Link | Quote
I had an idea, which may or not be good, but tell me what you think about it.

What if we patch the MIO0 decompressor routine inside the Mario 64 ROM so that we could include a special "redirect" command in the MIO0 file header.

That way, simply by inserting a command and an address in a MIO0 header we could make the decompressor jump to another address in the ROM and decompress that data instead of the original. If that special command is not present in the header, the data would be simply decompressed as usual.

That way we wouldn't have to track all occurrences of pointers to MIO0 files in the ROM, and we would be able to replace MIO0 files by others that have a bigger size without causing any problems. (Provided that we can extend the ROM or find empty space)

Does it make sense?
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33Add to favorites | "RSS" Feed | Next newer thread | Next older thread
Acmlm's Board - I2 Archive - Rom Hacking - Mario 64 - Amazing Stuff | |


ABII


AcmlmBoard vl.ol (11-01-05)
© 2000-2005 Acmlm, Emuz, et al



Page rendered in 0.019 seconds.