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: 5436/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-02-05 04:08 AM Link | Quote
I think 0x0D would be for acts 1/2/4, depending how the bits are ordered.
Originally posted by VL-Tone
Are you trolling me or something HyperHacker? The pic I posted proves that the coords are 16-bits signed integers. The sphere are plotted using the 16-bits signed integers found in each 18 24 object and they just happen to be at the same location as most of the objects in level 1, this ain't no coincidence. I also spent a great length of post to explain to you what 16-bits signed integers are. Tell me how you came to think that values from -32768 to 32768 are not suitable for points in 3d space?

I just don't get how an integer value from -32768 to 32767 translates to a floating-point one from 0 to 5.

The 'object type' value is indeed a pointer in memory, so it could well be a 16-bit pointer in ROM. That could make things difficult. As for images, is it only 8 bits? I'd think there were more than 256 images...

Also some of the 'nothing' objects might not be visible objects. For example I think there are some objects that define the corners of a polygonal area in which water bombs will be dropped. I remember changing some coords in memory once, and bombs dropped in places they shouldn't have. I'm not sure how it works, though, if it's a polygon or a plain old square or just one big object.
BGNG

Snifit
Level: 22

Posts: 109/276
EXP: 56579
For next: 1771

Since: 06-03-05

Since last post: 8 days
Last activity: 3 hours
Posted on 07-02-05 04:36 AM Link | Quote
Where is the "0 to 5" coming from? I don't remember any talk of that.
VL-Tone

Red Cheep-cheep
Level: 23

Posts: 88/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-02-05 09:42 AM Link | Quote
I'm clueless too about where and what are these 4 bytes float values in RAM that can go from 0 to 5.

HyperHacker, first how do you know that these are floats? Then if they are really floats going from 0 to 5, there is nothing extraordinary involved to convert a 16 bits signed integer into a 32 bits floating point value. A n64 can do that in a snap. Here are some possible conversions: -32768=0.0, 32767=5.0 and 0=2.5. Still I would need to know more about those 32-bits floats to give you a more precise example.

In Metroid (NES) for example, the starting point in the ROM data for enemies relative to each 16x15 tiles room is a single byte being interpreted as YX each axis having 4-bits. If you check in RAM while the game is playing, you'll see that the "live" on-screen position for enemies has use at least two bytes, one byte per axis to get 16 times the resolution of the start position. This is probably much the same way as in SM64, and conversions are only needed while loading the level.

Anyway I hope it makes more sense to you now

Chickenlump, great list! There may be more than one 256 object image sets, the trees are using something else than a 1824 chunk and are probably part of another set. The ideal would be to get screenshots of all of these so that they could be used in a prototype editor That is until someone makes a very fast and complete polygon mesh decoder that could load complete enemies and object meshes quickly inside levels.

(Edit: I just found what should have been obvious... $18 in hex is 24 in dec, $0C is 12. Just look at the first byte of each object in the return delimited list from Level 1 I posted...The first byte of each line is equal to the line's byte-length! )

Ok let's see what I can do about that Level 1 object editor before Sunday...Even a simple prototype version could help you experiment and find things.


(edited by VL-Tone on 07-02-05 01:15 AM)
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: 5447/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-02-05 02:43 PM Link | Quote
The 0-5 is basically just an assumption; most of the values are around 1.0 so I doubt they'd exceed that range.

Refer to the document here; about halfway down the page is a hexdump of object data in memory and explanations of what the bytes do. Notice the coordinates (decimal index):
168 - 171 X Coordinates
172 - 175 Y Coordinates
176 - 179 Z Coordinates
Starting at $A8 (byte 168, memory address 80340248) in the hexdump we see:
C530C098, 430465A6, 45A7F7D0 - three float values.

...Heh. Inspecting the float values it looks like I was totally wrong about the 0-5 range. (Must have been thinking of sizes. ) The 3 values we see here are -2108.04, 132.397 and 5374.98. So I guess I went and answered my own question! (These values probably won't match the ones in ROM, though, because the memory dump was taken during play which would have given the Goomba an opportunity to move.) I could have sworn they were all around 3F8xxxxx...

So what all do we know about the object structure then? I have this so far:
18 - Number of bytes in this object, including this one.
24
36 - what object
1F - act # (not sure what 1F is )
B0 05 - X location (signed integer, 0x5B0)
00 03 - Y location (0x300)
BE 01 - Z location (0x1BE)
00 00
46 01 - Dunno but I recognize it somehow... (326, 0x146, or 43A30000 as a float)
00 00
00 00 - Status of some sort
00 00
00 13
68 48

Some of those 0000s could be horizontal/vertical rotations too. Possibly sizes, but I can't think of an instance where any object is different than its default size. Possibly the red metal mesh stuff in level 9?

The 46 01 is interesting, I know I've seen that somewhere before... No sign of it in the memory dump, but it's a different object.


(edited by HyperHacker on 07-02-05 05:45 AM)
VL-Tone

Red Cheep-cheep
Level: 23

Posts: 89/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-02-05 06:31 PM Link | Quote
Behold! Here is the first Mario 64 object layout editor outside of Nintendo in the world



Ok maybe I'm overstating it since it just edits Bob-ombs Battlefield level and only the $1824 objects , but it's more of a hacking tool for now. It's very basic but it can do the job It could be a valuable tool to experiment and find more about the format.

Here is the (very basic) online documentation:
http://pages.infinit.net/voxel/Mario64edit01b_Readme.htm

The download page is there at http://membres.lycos.fr/nes3d/M64EditDownload.htm.

The program is about 3.2 megs zipped. The documentation is included in the archive. Sorry for the annoying ads on the download page...

Enjoy!
VL-Tone

Red Cheep-cheep
Level: 23

Posts: 94/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-02-05 08:25 PM Link | Quote
I uploaded a little fix for those who cannot click to select objects. The spacebar can be used to cycle between objects.

To see if you have a good ROM, look at $405A60 and $405A61 if you can find $18 24 in that precise order.

I will add arrow buttons to cycle forward and backward, those should work.


(edited by VL-Tone on 07-02-05 11:29 AM)
(edited by VL-Tone on 07-02-05 11:42 AM)
(edited by VL-Tone on 07-02-05 11:48 AM)
Chickenlump

Level: 41

Posts: 625/722
EXP: 474192
For next: 5953

Since: 03-15-04
From: Columbia City Indiana

Since last post: 3 hours
Last activity: 4 min.
Posted on 07-02-05 08:28 PM Link | Quote
Very cool release.


ROMS that don't match up and shouldn't be used:
Super Mario 64 (E) (M3) [!].v64
Super Mario 64 - Shindou Edition (J) [!].v64
Super Mario 64 (J) [!].v64

There may be more, this is all I could get my hands on though for testing at the moment.



(edited by Chickenlump on 07-02-05 11:31 AM)
(edited by Chickenlump on 07-02-05 11:34 AM)
(edited by Chickenlump on 07-02-05 11:40 AM)
(edited by Chickenlump on 07-02-05 11:44 AM)
(edited by Chickenlump on 07-02-05 11:45 AM)
(edited by Chickenlump on 07-02-05 11:51 AM)
BGNG

Snifit
Level: 22

Posts: 110/276
EXP: 56579
For next: 1771

Since: 06-03-05

Since last post: 8 days
Last activity: 3 hours
Posted on 07-02-05 10:05 PM Link | Quote
I highly recommend we stick to the good dumps; unaltered. I'm not sure what the (M3) in the European dump is all about, but if it's an intro hack or something, that can be fixed. There's no need to make support for unofficial ROM dumps anyways, seeing how it's not all Nintendo's game anymore. If they just happen to be supported, then that's just fine; otherwise, I recommend we keep it hands-off.
windwaker

Ball and Chain Trooper
WHY ALL THE MAYONNAISE HATE
Level: 61

Posts: 1700/1797
EXP: 1860597
For next: 15999

Since: 03-15-04

Since last post: 4 days
Last activity: 6 days
Posted on 07-02-05 10:11 PM Link | Quote
Did somebody say ROM hacking?

I guess I'll get back into it. So much data to find. <3 All the data found so far is in that file that HH posted a link to, correct?
Grinto

Red Goomba
Level: 12

Posts: 40/43
EXP: 6890
For next: 1031

Since: 03-15-04

Since last post: 13 hours
Last activity: 12 hours
Posted on 07-02-05 11:05 PM Link | Quote
I believe (M3) means there's 3 languages available within the game.
BGNG

Snifit
Level: 22

Posts: 111/276
EXP: 56579
For next: 1771

Since: 06-03-05

Since last post: 8 days
Last activity: 3 hours
Posted on 07-02-05 11:07 PM Link | Quote
HyperHacker, I got values of -2828.037, 132.3971 and 5374.977... Yer a smidgen off.
SePH

Geldman
Level: 33

Posts: 338/459
EXP: 219339
For next: 9840

Since: 06-23-04
From: Québec
Caliss de libéraux

Since last post: 6 days
Last activity: 14 hours
Posted on 07-03-05 12:14 AM Link | Quote
Originally posted by VL-Tone
Behold! Here is the first Mario 64 object layout editor outside of Nintendo in the world



Ok maybe I'm overstating it since it just edits Bob-ombs Battlefield level and only the $1824 objects , but it's more of a hacking tool for now. It's very basic but it can do the job It could be a valuable tool to experiment and find more about the format.

Here is the (very basic) online documentation:
http://pages.infinit.net/voxel/Mario64edit01b_Readme.htm

The download page is there at http://membres.lycos.fr/nes3d/M64EditDownload.htm.

The program is about 3.2 megs zipped. The documentation is included in the archive. Sorry for the annoying ads on the download page...

Enjoy!


A Mario 64 hacking tool you say?

I never though I'd see a tool such as that in my own lifetime. And to say it's made in Quebec, it's a must-have download. Great job to everyone for data gathering and such. While rom-hacking seemed slowingly dead in the past months, you guys are really making it come back like the old times.
windwaker

Ball and Chain Trooper
WHY ALL THE MAYONNAISE HATE
Level: 61

Posts: 1702/1797
EXP: 1860597
For next: 15999

Since: 03-15-04

Since last post: 4 days
Last activity: 6 days
Posted on 07-03-05 12:17 AM Link | Quote
Hey VL-Tone, I notice that you're using lycos. I have 75 free subdomains that came with my site, I could set you up with one if you want.
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: 5451/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-03-05 02:53 AM Link | Quote
Originally posted by BGNG
HyperHacker, I got values of -2828.037, 132.3971 and 5374.977... Yer a smidgen off.

You mean from the data in the ROM? Like I said the Goomba had a chance to move. Unless you're using the same values I did, in which case I need a more accurate float-to-hex calculator.
BGNG

Snifit
Level: 22

Posts: 112/276
EXP: 56579
For next: 1771

Since: 06-03-05

Since last post: 8 days
Last activity: 3 hours
Posted on 07-03-05 03:39 AM Link | Quote
Yeah, the bytes you posted yeilded the values that I posted, but not the ones that you posted.

Also, take that Java applet out of your signature. It takes a few seconds to load. If people have to wait for it to load everytime they look at a page, you'll have a mess of unhappy campers on your hands... Oh, and um... What happens on Jul10 at 15:00?


(edited by BGNG on 07-02-05 06:41 PM)
Sukasa

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

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

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

Since last post: 6 days
Last activity: 1 day
Posted on 07-03-05 04:04 AM Link | Quote
Awsome editor, even if it is still partial. Why not next have the object data you read try to get images for whatever is known, and display them next? Chickenlump and I are getting those values, so, yeah. That's my idea.
Chickenlump

Level: 41

Posts: 621/722
EXP: 474192
For next: 5953

Since: 03-15-04
From: Columbia City Indiana

Since last post: 3 hours
Last activity: 4 min.
Posted on 07-03-05 05:03 AM Link | Quote
Originally posted by Darkflight
Awsome editor, even if it is still partial. Why not next have the object data you read try to get images for whatever is known, and display them next? Chickenlump and I are getting those values, so, yeah. That's my idea.


Untill someone comes along and can decode these objects and display them in the levels, we get to make screenshots of each and every visible object, once the list is completed.
There are plug-ins that dump all the textures to files that may help with the flat objects (might look better than screenshots).



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: 5463/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-03-05 05:34 AM Link | Quote
Originally posted by BGNG
Yeah, the bytes you posted yeilded the values that I posted, but not the ones that you posted.

Also, take that Java applet out of your signature. It takes a few seconds to load. If people have to wait for it to load everytime they look at a page, you'll have a mess of unhappy campers on your hands... Oh, and um... What happens on Jul10 at 15:00?

My birthday. It's 15:05 but I can't specify minutes. I probably will take it out, though; anyone know where to get one of them PHP versions?

So as not to be too off topic, in your editor, you should add display of the coordinates as floats and arrows showing which way is X/Y/Z... X and Z are easy to confuse because of rotation.
Sukasa

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

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

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

Since last post: 6 days
Last activity: 1 day
Posted on 07-03-05 05:57 AM Link | Quote
Screenies? Sounds fun to me!
VL-Tone

Red Cheep-cheep
Level: 23

Posts: 91/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-03-05 06:31 AM Link | Quote
Edit: Hey sorry Darkflight I was confused by your layout and didn't read the right part

In other news I uploaded a new version (0.12b) where you can also select objects with the arrow keys, or by clicking the little arrow buttons and by clicking on the little selection bar below the level's name you can select any of the 30 objects in the level directly.

Now can anyone confirm that they CAN click on blue spheres to select them while in the "select object" mode? Chickenlump couldn't and that's why I'm adding alternate ways of selecting objects.

HyperHacker sure I was planning on adding that, but my time is limited and it was quicker to just edit raw hex data. I'll try to add this before I go on vacations.

Edit: The file is offline at this time (9:44 PM est) I forgot something and I have to reupload it (sorry)



(edited by VL-Tone on 07-02-05 09:34 PM)
(edited by VL-Tone on 07-02-05 09:45 PM)
(edited by VL-Tone on 07-03-05 03:02 AM)
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.023 seconds.