(Link to AcmlmWiki) Offline: thank ||bass
Register | Login
Views: 13,040,846
Main | Memberlist | Active users | Calendar | Chat | Online users
Ranks | FAQ | ACS | Stats | Color Chart | Search | Photo album
05-14-24 05:46 PM
0 users currently in ROM Hacking.
Acmlm's Board - I3 Archive - ROM Hacking - General Super Mario 64 hacking / TT64 Progress thread New poll | | Thread closed
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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71Add to favorites | Next newer thread | Next older thread
User Post
Lysol Pionex

Mini Octorok








Since: 07-12-06

Last post: 6303 days
Last view: 6297 days
Posted on 07-19-06 12:54 PM Link
Haha, I thought I was the only one who noticed things like that. Hi I'm kinda new, kinda not - I've been following this thread since it was 20 ish pages, and just decided finally to sign up. So welcome to me.
Xkeeper
Took the board down in a blaze of glory, only to reveal how truly moronical ||bass is.


 





Since: 11-17-05
From: Henderson, Nevada

Last post: 6295 days
Last view: 6295 days
Skype
Posted on 07-19-06 01:00 PM Link
Originally posted by Lysol Pionex
Haha, I thought I was the only one who noticed things like that. Hi I'm kinda new, kinda not - I've been following this thread since it was 20 ish pages, and just decided finally to sign up. So welcome to me.

At the rate of all the useless "oh look we're at 999 posts now" posts coming in here, it won't take too long.

Lysol: Your minipic was
1. a JPG (bad)
2. hosted on a secure server
3. requested a login every time you viewed a page with it

therefore, it was removed

toodles
xZeaLitYx

Paragoomba








Since: 11-17-05

Last post: 6322 days
Last view: 6321 days
Posted on 07-19-06 04:28 PM Link
I am the 65536th viewer. Consider limitations broken! On to the next!
tahu363

Red Paragoomba


 





Since: 05-31-06

Last post: 6420 days
Last view: 6420 days
Posted on 07-19-06 06:02 PM Link
Hey, does anyone no if its possible, using a gameshark code, to change the color of Yoshi? I know we can change mario's color, but i think wit would be awesome if we could change yoshi's color.
Cyhunt

Micro-Goomba








Since: 06-25-06

Last post: 6402 days
Last view: 6301 days
Posted on 07-19-06 06:12 PM Link
Maybe hes done, but delaying to the 64th page!
HyperHacker

Star Mario
Finally being paid to code in VB! If only I still enjoyed that. <_<
Wii #7182 6487 4198 1828


 





Since: 11-18-05
From: Canada, w00t!
My computer's specs, if anyone gives a damn.
STOP TRUNCATING THIS >8^(

Last post: 6295 days
Last view: 6295 days
Posted on 07-19-06 07:57 PM Link
I really doubt that. Besides, it depends how many posts per page you have. I only see 50 pages.

Also, I think this may be the first thread to ever max out the view counter (65,535 views).
Doritokiller

Mole


 





Since: 06-15-06
From: California

Last post: 6437 days
Last view: 6300 days
Posted on 07-19-06 09:52 PM Link
Originally posted by tahu363
Hey, does anyone no if its possible, using a gameshark code, to change the color of Yoshi? I know we can change mario's color, but i think wit would be awesome if we could change yoshi's color.

... Do you not see a SM64 Gameshark thread? This thread is what the title says. It's very explainitory.


Back to buisness. VL is making no delays just for the right time whatsoever. His delays are to expand the deadline so he can finish the editor. It's very uncertain when it'll be released, since the first date he said it would be released was sometime in February.
HyperHacker

Star Mario
Finally being paid to code in VB! If only I still enjoyed that. <_<
Wii #7182 6487 4198 1828


 





Since: 11-18-05
From: Canada, w00t!
My computer's specs, if anyone gives a damn.
STOP TRUNCATING THIS >8^(

Last post: 6295 days
Last view: 6295 days
Posted on 07-19-06 10:06 PM Link
Hey, Ocarina of Time was delayed a lot too.
Doritokiller

Mole


 





Since: 06-15-06
From: California

Last post: 6437 days
Last view: 6300 days
Posted on 07-19-06 10:26 PM Link
Originally posted by HyperMackerel
Hey, Ocarina of Time was delayed a lot too.

Umm... Yeah... I wasn't saying that I hate the delays and that no other game was delayed that much... Or something along those lines.
Deleted User
Banned


 





Since: 05-08-06

Last post: None
Last view: 6295 days
Posted on 07-20-06 01:49 AM Link
How do you know that VL-Tone is not done with the editor? Maybe he is, but is gone somewhere or something. He has not posted any updates in a long time, so I am thinking he is not "here". He will probably say something about where he was or something once he posts again.
Raccoon Sam

Boomerang Brother
Custom Title








Since: 11-20-05
From: Correct

Last post: 6295 days
Last view: 6294 days
Posted on 07-20-06 06:43 AM Link
Originally posted by Watcher
How do you know that VL-Tone is not done with the editor? Maybe he is, but is gone somewhere or something. He has not posted any updates in a long time, so I am thinking he is not "here". He will probably say something about where he was or something once he posts again.



Why would he do that.
HyperHacker

Star Mario
Finally being paid to code in VB! If only I still enjoyed that. <_<
Wii #7182 6487 4198 1828


 





Since: 11-18-05
From: Canada, w00t!
My computer's specs, if anyone gives a damn.
STOP TRUNCATING THIS >8^(

Last post: 6295 days
Last view: 6295 days
Posted on 07-20-06 06:45 AM Link
Didn't he say he was taking a break?
bloodzero

Mumbies








Since: 06-08-06
From: Germany

Last post: 6390 days
Last view: 6295 days
Posted on 07-20-06 12:13 PM Link
Originally posted by HyperMackerel
Didn't he say he was taking a break?



He needs a break from all the work he's done i fell sorry for him everyone on him like that


DO something else then wait on the editor im playing worms and im K with that.
ercp90
Newcomer


 





Since: 07-20-06

Last post: 6507 days
Last view: 6507 days
Posted on 07-20-06 07:34 PM Link
Can anyone tell me how can I edit super mario 64 graphics with tile molester or any other program????
Darkdata

980








Since: 02-25-06
From: Newfoundland

Last post: 6294 days
Last view: 6294 days
Posted on 07-20-06 09:09 PM Link
Try reading back a few pages in the thread.
=)

Deleted User
Banned


 





Since: 05-08-06

Last post: None
Last view: 6295 days
Posted on 07-20-06 10:15 PM Link
Originally posted by HyperMackerel
Didn't he say he was taking a break?

When did he say that? People said that he is taking a break, but when did he say that or did he not say it at all?
Marioman64

Red Paragoomba








Since: 12-22-05
From: Maryland

Last post: 6419 days
Last view: 6419 days
Posted on 07-20-06 11:38 PM Link
Maybe, he's waiting to give it to me as a birthday gift on August 29th

...

I can dream can't I?
VL-Tone

Paratroopa








Since: 11-18-05

Last post: 6485 days
Last view: 6485 days
Posted on 07-21-06 02:30 AM Link
Hi, just a quick post...

I did take a week break. I said I wanted to take a week break earlier, but I admit I kind of "disappeared". Oh well, I'm back

Edit:

I stumbled across a few problems with the editor, to really explain them, I'll need a very complicated explanation

There are 3 types of 3d sprites objects:

Type 0x24 is found in the level script data, which is uncompressed in the original ROM. This type of object command offers the most flexibility, enabling you to change the sprite type and behavior type independently as well as the behavior parameters. You can change the X, Y and Z position value and the rotation angle for all 3 axis.

The 0x42 type (mislabeled as 0x40 in the screenshots and in the editor, its type is not in front of each sub command so I did a little mistake when deciding which label it should have ) comes from commands found at the offset found in the 0x39 command in the main level script. These 3d sprite commands are found inside the MIO0 data for a particular level, they don't actually feature the 0x42 type, they are simply a sequence of the same type of object commands. Each one of these is 10 bytes long. With these you can change the X, Y Z position, but only the horizontal rotation.

The sprite type and behavior pointer are fusioned in a single byte+ 1 bit from the horizontal rotation byte. This gives 512 possibilities. The table referred by this value is found at 0xEC7E0 in the ROM. Each entry in the table is 8 bytes long and contains a sprite type value (same kind as the 0x24 sprite type) and a behavior pointer (in bank 13) as well as 2 one byte parameters for the behavior.

So with the 0x42 command 3d sprites you are restricted to a specific set of sprite type/behavior combo. It does include 2 bytes that can override the behav params from the table. The list of 0x42 sprites ends with a 0x1E or 00 object type.

Now as for the 0x43 3d sprite type. It's found after the solidity data. The solidity data can be found at the offset pointed by the 0x2E level script command.

The solidity data is complicated in itself, as there are different types of solidity triangle data.

The editor currently doesn't directly deal with the solidity data, but it has to be decoded anyway since its the only way to find the offset of the 0x43 command.

Since it's not part of my hacking document, I'll explain it.

The first command in the solidity data is 0x0040. It's 4 bytes long in total, including the 0040. The two last bytes are the number of vertex point in the following list. So after the command is the solidity vertex list, with each entry being 6 bytes (signed 16-bits values for X Y Z). So to find where the next solidity command is just skip the number of vertex in the 0040 command multiplied by 6.

After the 0040 vertex list, various solidity commands can be found, each of them creating different types of solidity triangles.

These are the solidity triangles commands used in the game:

"001E", "000E","002C", "0024", "0025", "0027", "002D"

001E works much like 0040 but is instead followed by a list of triangles instead of vertices. The command itself is 4 bytes long including the 001E and the two last bytes define how many triangles there are in the list. Each triangle entry in the following list is 6 bytes.

The rest of the solidity triangle commands "001E", "000E","002C", "0024", "0025", "0027", "002D" mainly work like 001E, but their triangle entries are 8 bytes each, so each triangle has additional parameters which meaning varies depending on the command.

You may find the 0x0041 command which is only 2 bytes and doesn't load a list.

Once all the solidity triangle commands and their list have been decoded, you will encounter the 0x0043 command.


The 0x0043 command is what I wanted to talk about. This command makes the game load the following 3d sprites commands, that are in yet another format different than the 0x42 and 0x24 command.

The sprite commands following work much like the 0x42 commands but with a twist. The sprite type value is only 8 bits (not 9), and refers to a table at 0x0ed358 in the ROM. The difference in this table is that while the 0x42 sprite type value refers directly to the n'th data chunk in the 0xEC7E0 table, this table at 0x0ed358 uses the first byte of each entry to define which byte will be used by 0x43 sprite type values. What I just found is that if a 0x43 uses a value that is not referenced in the 0xEC7E0 table, it falls back to the 0x0ed358 table... So essentially, the 0xEC7E0 table is patching the first 256 entries of the 0x0ed358 table.

By the way if you edit either of these tables, you'll have to recalculate the checksum, unlike the rest of the editable data. The game will also use these table entries in not-easily-predictable ways, as the sprite type they contain, is like the one from the 0x24 command and refers to the 0x22 commands that point to the geometry layout data. These values change depending on the level. So sprite type 0x03 means the castle Tower in some level, and a platform in another level. But for some reason (prevent duplicate table entries), they both use the same sprite type/behavior combo in a 0x43 command. That complicates things because if you edit one of the table entry thinking about one level, you may find weird things happening in another level. So I don't recommend serious hacking of these tables. Because of that and other reasons, editing this table falls into the realm of version 2.0 and beyond. The checksum is not a problem, as I had to do it in the ROM extender.

Also... The 0x43 sprite commands have a variable size depending on the sprite type.

"7A","7B","79","1D","21","7D":
8 bytes, contains x,y,z pos, sprite type (using 0xEC7E0 or 0x0ed358 table)
"83","CD":
Unkown use, 6 bytes.

"88","85":
12 bytes, like the 8 bytes commands plus 2 behavior params override params plus 2 unknown bytes.
"A0":
Unknown use, 4 bytes
"C0":
Unknown use, 12 bytes
"00":
Unknown use, 10 bytes
"CE":
Unknown use, 6 bytes

"44","42","1E":
End of solidity and 0x43 commands list.

For any other values before the end of the list, the byte length is 10, and it works like "88" and "85" sprite types without the 2 extra bytes.

Bowser for example is a 0x43 command, its type is 0x21. This type happens to be the only 8 bytes type in the Bowser battle levels. So while my editor could switch other object into duplicate Bowsers, I just recently realized/remembered that this would corrupt the game. In the 3 Bowser hack I did, the editing was done manually in hex to get around this problem.

So that's the problem I now have to solve. Even if I accommodated the varying length of 0x43 sprite commands it could likely overflow in the following data found in the MIO0 bank.

To get around this I would have to copy the solidity data at the end of the MIO0 banks, and change all 0x2E pointers to reflect the new position of the solidity data. Same for the 0x17 commands (0x18 in the un-extended ROM) that point to the MIO0 data. I could make the ROM extender set the end MIO0 pointers to include the 32k of empty space that exists between the decompressed MIO0 data segments.




Ok now... Why is it so complicated ... Mr. Miyamoto? Or maybe Mr. Tekuza could answer?

Hehehe don't worry I'm not delusional. But Mario 64 is very "patchy" in its nature, and it's understandable. Mario 64 was developed at the same time as the n64 itself and the UltraLib API's. That's why I'm sure Zelda OOT will be simpler to deal with, as they learned from their mistakes in Mario 64.

It looks like they started by using an 8 bits value for the sprite type, thinking that they wouldn't need more than 256 different object presets. But they they ran out of possibilities, so they decided to use one bit in the horizontal rotation to double the number to 512.

But then, they still ran out of numbers, and couldn't easily move things, at a time when they were trying to fit everything into 8 megs. So they decided to add other sprite objects commands at the end of the solidity data, but in a format where space is maximized, using variable length commands based on the sprite type referering to a table patched to make use of new objects while keeping the access to some original sprite types used by 0x42.

Between the sprite types used in the 0x43 objects, and the actual polygon data, there are like 5 layers of different data formats. It's not that easy to visualize all these layers and how they interact. Maybe I should make a diagram with boxes and arrows... that would help

Hey that's an idea... even with my lengthy explanations, I'm sure many of you would like to understand the structure of the game in a visual way. I have very good visualization skills, but something tangible like a graphic would probably also help me in this project.

That's it for now, these are my days off work so I'll work on the editor as much as I can.

Edit: Here we go, the diagram of the Mario 64 level formats structure, or whatever it should be called. I finished it before going to bed last night.



For a bigger version click this url: http://i26.photobucket.com/albums/c105/Starxxon/M64Diagram.gif


(edited by VL-Tone on 07-21-06 12:36 PM)
TS_Death_Angel

Micro-Goomba








Since: 02-17-06

Last post: 6325 days
Last view: 6301 days
Posted on 07-21-06 06:10 PM Link
You're right, OoT is much MUCH easier to deal with Good luck on the editor ^^
bloodzero

Mumbies








Since: 06-08-06
From: Germany

Last post: 6390 days
Last view: 6295 days
Posted on 07-21-06 09:12 PM Link
Originally posted by VL-Tone
ALOT OF STUUF



Ok so i was right abot the break (you deseve it

But half of what you said i didn't understand
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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71Add to favorites | Next newer thread | Next older thread
Acmlm's Board - I3 Archive - ROM Hacking - General Super Mario 64 hacking / TT64 Progress thread | Thread closed


ABII

Acmlmboard 1.92.999, 9/17/2006
©2000-2006 Acmlm, Emuz, Blades, Xkeeper

Page rendered in 0.094 seconds; used 453.27 kB (max 585.79 kB)