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
Acmlm's Board - I2 Archive - - Posts by VL-Tone
Pages: 1 2 3 4 5 6 7 8 9 10
User Post
VL-Tone

Red Cheep-cheep
Level: 23

Posts: 81/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 06-30-05 09:06 AM, in Mario 64 - Amazing Stuff Link
stag019 I can now see the pics and it's really great to see Luigi in SM64 at last!

Maybe you could change Luigi's overalls colors from blue to white for a classic Luigi look?

Anyway don't worry about me doing it before you, It's official, you are the first to do it and you are already far into it
VL-Tone

Red Cheep-cheep
Level: 23

Posts: 82/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 06-30-05 12:33 PM, in Mario 64 - Amazing Stuff Link
I found new important commands that are used in the triangle data:

First the commands we already knew about (look at earlier posts for more details):

04 start of a triangle group
BF triangle
FD and F3 load textures
E6 does nothing?

Here is what I found that I didn't know:
I'll use the same format as Cellar Dweller

03 86 00 10 (04) (00 00 38)
0: 03= command to set color (and lightning?) for triangles.
1,2,3: I don't know
4: RAM bank number to load the color from (usually same as current bank)
5-7: Pointer address to a 32-bit color in the MIO0 file.

06 00 00 00 (04) (00 CA 00)
0: 06= command to jump to another point in the triangle data.
1,2,3: I don't know either
4: RAM bank number to jump to (usually same as current bank)
5-7: Pointer address in the MIO0 file.

B8 00 00 00 00 00 00 00
0: command that jumps back to the next command after the last "06" jump (uses a stack)
1-7: always zero

The rest of the commands have to be figured out but many look somewhat obvious (having the same pointer format at the end).

At 1287CC in the ROM you can find this (reversed bytes):
01 04 A0 19 05 15 00 00 01 04 90 1A 05 15 00 00 01 04 80 1B 05 15 00 00

You can also find much the same at 127CC0 but with "01 15 00 00"s instead of "05 15 00 00"s.

These are pointers to the different Mario's heads mesh data inside the 114750 MIO0 file.

Mario's geometry (the 114750 MIO0 file) is loaded in RAM bank "04", the first head is at 0119A0 in the file. Starting at this point you can decode the head geometry. At 0119A0 is Mario's head with normal open eyes, in 011A90 Mario's eyes are closed a little. Then 011B80 eyes are almost closed and the next pointer the eyes are closed. After that you get the eyes with X X in them, then the next pointers are for different eyes movements.

The idea is that each of these pointers point to a little sequence of commands that load textures and colors then use the 06 command to jump to triangle groups then the B8 objects jumps back to the routine. So the heads are using the same geometry but different textures.

The levels data I found also uses some 06 commands but not as much as Mario. I was lucky enough that skipping the 06 commands in my program still gave me a good enough results. Since I found the use of the command and the way Mario's head was referred to in the ROM, I started looking for similar entry points pointers for the level parts in the ROM but was unsuccessful.

Chickenlump you did find very very good data!

I'll have to look more into it, but from what I've seen with this I could make a prototype editor for object positions (and types) in Level 1 in a week or two And this wouldn't be like the StarFox level editor, it would be in full 3d with the whole level scene. The objects would be represented as boxes , because otherwise it would require loading and decoding all the objects/enemies from the different MIO0 files and that is not possible/viable now.

Now I'm going on vacation next week... and I will be away from computers :/ (Oh no! life without computers!)

I certainly hope many big things will happen in SM64 hacking while I'm gone, one possible reason is that people wont count on me to find things the other reason is that with the uncompressed data Chickenlump found, there should be a lot to find, like trying all 256 values for the boss object type

(Edit: I added Level 1: Bob-Omb's Battlefield to my castle Shockwave demo! Have fun!)



(edited by VL-Tone on 06-30-05 05:02 AM)
VL-Tone

Red Cheep-cheep
Level: 23

Posts: 83/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 06-30-05 11:17 PM, in Mario 64 - Amazing Stuff Link
I had looked at the content of the castle MIO0 file before, for a couple of hours without finding anything. When Hyperhacker started this thread I decided to give a look back at it, then count the days till I figured it out . Cracking the MIO0 file format is much more complicated than what I've found though, great work BGNG!

The way I did it is by looking for x,y,z 16-bit coords. Once I found a list of them, I feed it into a custom program that takes the x,y,z coords and put little spheres in a 3d scene at those positions. Dang I was happy when I first manage so see part of the castle scenery built out of points Then it was a matter of finding the triangle data. At first I found something that looked like a triangle list, but it was giving out bad results. Then I figured out by looking at data that there was a list where the triangle vertices were defined by 3 numbers. The "hard" part was to guess that these numbers had to be divided by 10. You know the rest of the story

I guess my experience in cracking the StarFox polygon mesh format helped, as it took me more time to figure out the format since I had no previous experience dealing with 3d formats at this level of detail.

Ok since it's a hot summer (here) I added Cool Cool mountain to my demo to refresh yourself!

Note that inside the mountain there are a couple of things like the wooden houses parts and some other small platforms all bunched together. This is because those objects are not positioned by themselves, their center is at 0,0,0. I guess that the recent data found about 3d object coords places them all over the level.



If you missed that bit, I also added Bob-omb's Battle field to the demo.






VL-Tone

Red Cheep-cheep
Level: 23

Posts: 84/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-01-05 12:50 AM, in Mario 64 - Amazing Stuff Link
From what I've seen, each object is 12 bytes long.
VL-Tone

Red Cheep-cheep
Level: 23

Posts: 85/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-01-05 10:55 AM, in Mario 64 - Amazing Stuff Link
Hyperhacker, I was mistaken, these are 24 bytes after all, but some other type of objects have different length. I'm sure though that the start positions for objects are 16-bits (2 bytes) for each axis. This is the format used by the geometry data. I cannot see why they would have used 4 bytes for this as it would be an overkill and take more space (remember, SM64 had to be a very compact game). It's very possible that 4-bytes coords are used in RAM for precise movements, but just looking at the data it's obvious (to me) that the start positions are 16-bits signed integers for x,y and z just like the level geometry vertices.

Here is a really useful way of finding order in a chaos of hex data.
If you already know about this technique, I hope others can learn from this because I rarely (or never) seen it explained anywhere.

The trick is to use a good old text editor, like the notepad...

It's a really great draft tool to find the format of data with objects of different byte sizes. This is actually what I mostly used to find the polygon and level format for StarFox, and recently the Mario 64 polygon format (that and a custom program that evolved as I found more data). It's really simple and it beats an hex editor when you have to deal with this type of hacking IMHO.

Still the hex editor should be used in parallel with the text editor. First you copy some not too small chunk of data from an hex editor, then paste it in the text editor. The pasted format has to be bytes separated by spaces with no carriage returns (you'll add those manually).

So you look at the data in the text editor, and try to find patterns, reoccurring bytes at fixed intervals. Let's say you see that 1824 repeats every 24 bytes. Position the cursor just before the next 1824 and hit return. Repeat the operation for every other patterns you see. Remember though that the reoccurring bytes are not necessarily the first bytes of the object "container", maybe it's in the middle of the object. In this case it seems that 1824 are the first bytes of the objects since the 04 07 00 00 is sandwiched between the two 1824... groups. But it doesn't matter at much first, just insert returns to create lines with each part of a repeating patterns. Along the way you may find other evidences that confirm that the carriage returns are inserted at the right place. You can also delete returns if you have to.


Here is what you find starting at 405A60 (reversed bytes order)

18 24 36 1F B0 05 00 03 BE 01 00 00 46 01 00 00 00 00 00 00 00 13 68 48
18 24 37 1F 01 F7 CD 02 00 04 00 00 2D 00 00 00 03 00 00 00 00 13 1C 4B
18 24 00 1F FE F7 00 00 03 F4 00 00 19 00 00 00 00 00 00 00 00 13 E0 25
18 24 CF 1F 15 F7 00 00 9E F1 00 00 1B 00 00 00 00 00 00 00 00 13 78 14
18 24 CA 1F 4C 06 2C 01 03 12 00 00 00 00 00 00 28 00 00 00 00 13 70 1B
04 07 00 00
18 24 00 03 FF 05 00 0F 47 EA 00 00 00 00 00 00 00 00 00 00 00 13 A4 3A
18 24 00 3C FF 05 00 0F 47 EA 00 00 00 00 00 00 00 00 00 00 00 13 80 3A
18 24 00 03 0C 02 09 0B E8 EA 00 00 00 00 00 00 02 00 00 00 00 13 A4 3A
18 24 00 3C 0C 02 09 0B E8 EA 00 00 00 00 00 00 02 00 00 00 00 13 80 3A
18 24 B4 1F 1F FC 76 03 13 F2 00 00 00 00 00 00 00 00 00 00 00 13 08 3A
18 24 B4 1F EF FC 76 03 33 EF 00 00 00 00 00 00 00 00 00 00 00 13 08 3A
18 24 B4 3E A3 FF 76 03 AA F2 00 00 00 00 00 00 00 00 00 00 00 13 08 3A
18 24 C3 01 A5 E9 8C 00 81 17 00 00 00 00 00 00 02 00 00 00 00 13 DC 31
18 24 C3 01 96 E7 00 00 18 1A 00 00 00 00 00 00 01 00 00 00 00 13 DC 31
18 24 C3 3E A5 E9 8C 00 81 17 00 00 00 00 00 00 00 00 00 00 00 13 28 32
18 24 C3 3E 96 E7 00 00 18 1A 00 00 00 00 00 00 03 00 00 00 00 13 DC 31
18 24 80 01 C2 E9 80 00 E0 15 00 00 87 00 00 00 01 00 00 00 00 13 10 4F
18 24 C9 3E C2 E9 80 00 E0 15 00 00 B4 00 00 00 00 00 00 00 00 13 74 32
18 24 00 02 E8 0C 92 10 05 EE 00 00 00 00 00 00 00 00 00 00 00 13 D0 45
18 24 68 3C 48 0D 02 03 64 19 00 00 00 00 00 00 01 00 00 00 00 13 80 45
04 07 00 00
[18 24 56 01 64 06 92 10 41 EA 00 00 6D FF 00 00 00 00 00 00 00 13 F4 01] Boss
18 24 68 02 5C F0 00 00 65 14 00 00 00 00 00 00 02 01 00 00 00 13 80 45
18 24 00 3F 90 E8 E8 03 60 09 00 00 00 00 00 00 00 03 00 00 00 13 8C 3E
18 24 00 3F 38 E6 E8 03 E2 04 00 00 00 00 00 00 04 04 00 00 00 13 FC 3E
18 24 7A 3F 0E 06 B0 04 2C 01 00 00 00 00 00 00 00 05 00 00 00 13 3C 3E
04 07 00 00
04 1B 00 00
0C 18 07 00 3F 00 B0 C2 40 00 60 5A
0C 1A 09 00 32 00 70 D0 33 00 30 4B
0C 18 0A 00 2A 00 B0 C6 2B 00 10 8F
0C 18 05 00 13 00 20 4D 13 00 D0 B5
0C 17 0C 00 13 00 D0 B5 13 00 10 B9
0C 18 06 00 1C 00 30 42 1D 00 90 7C
0C 17 0D 00 1D 00 90 7C 1D 00 10 83
0C 18 08 00 1F 00 00 22 20 00 D0 08
0C 17 0F 00 20 00 D0 08 20 00 10 14
04 1D 00 00
0C 25 01 00 00 00 01 00 00 13 C0 2E
08 06 00 00 00 15 60 06
08 06 00 00 00 15 6C 07
08 06 00 00 00 15 58 09
08 22 17 00 00 16 E8 0F
08 22 36 00 00 0E 40 04
08 22 37 00 00 0E 58 04
08 22 38 00 00 0E 70 04
08 1F 00 01 00 0E 88 04
08 06 00 00 00 0E 00 00
08 06 00 00 00 0E 7C 00
08 06 00 00 00 0E E8 01
18 24 00 1F 62 E6 E8 03 40 19 00 00 87 00 00 00 0A 00 00 00 00 13 74 2F
18 24 00 1F 47 02 7B 0A F5 EA 00 00 66 FF 00 00 0B 00 00 00 00 13 5C 07
18 24 00 1F 90 06 FB 0E 6D EA 00 00 67 FF 00 00 0C 00 00 00 00 13 5C 07
18 24 00 1F 2C E6 00 04 E9 F2 00 00 6B 00 00 00 0D 00 00 00 00 13 5C 07
18 24 00 1F BC 07 00 03 DA 19 00 00 69 FF 00 00 0E 00 00 00 00 13 5C 07
08 26 09 0A 0A 01 00 00
08 26 09 0B 0C 01 00 00
08 26 09 0C 0B 01 00 00
08 26 09 0D 0E 01 00 00
08 26 09 0E 0D 01 00 00
08 26 06 F0 32 01 00 00
08 26 06 F1 64 01 00 00
08 2E 00 00 00 07 58 E9
08 39 00 00 01 07 4C 10
04 30 00 00
08 36 00 00 03 00 00 00
04 31 00 00
04 20 00 00
04 1E 00 00
0C 2B 00 01 87 00 62 E6 00 00 40 19
08 11 00 00 24 80 D8 BC
08 12 01 00 24 80 D8 BC
04 1C 00 00
04 04 01 00
04 02 00 00


I put the Bob-ombs boss object in brackets.

[18 24 56 01 64 06 92 10 41 EA 00 00 6D FF 00 00 00 00 00 00 00 13 F4 01]

56 is the object type for the boss
01 is the act in which it appears (3F and 1F have other meanings?)
Then you clearly see 3 16-bits signed integers which are most likely the x,y,z coordinates.

Here are the coordinates in correct byte order.
0664 1092 EA41 the last one is a negative value.

Ok so that's it for now, let me just feed this into my program to confirm all this. Sorry for the long post, but it think it was useful to include that much data

Hey look what I got in my signature



(edited by VL-Tone on 07-01-05 01:58 AM)
VL-Tone

Red Cheep-cheep
Level: 23

Posts: 86/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-01-05 03:31 PM, in Mario 64 - Amazing Stuff Link
Hyperhacker, do you believe me now?



I never said that they were 16 bit floats, they are 16-bits signed integers. They are values that can go from -32768 to 32767. For example $FFFE=-2 , $FFFF=-1, $0000=0, $0001=1 etc. The dividing point between negative and positive values is $8000 (32768), values higher than that are negative.

(Edit: sorry forgot to answer that question: x=(B0 05), y=(00 03) , z=(BE 01) are the coordinates in the example you provided. In normal byte ordering it's $050B, $0300 and $01BE)

Now about the picture... these are all the $1824 objects found in the level object data. The selected one is the Bob-Omb boss. You can see that warps and Mario's starting position are included... more about that soon (hopefully before I take my week vacation starting Monday)

Cellar Dweller I think you are right about the act byte... it may be very simple: one bit per act, with a maximum of 8 acts per level



(edited by VL-Tone on 07-01-05 06:34 AM)
(edited by VL-Tone on 07-01-05 06:37 AM)
VL-Tone

Red Cheep-cheep
Level: 23

Posts: 87/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-01-05 09:14 PM, in Mario 64 - Amazing Stuff Link
Originally posted by HyperHacker
Wonder how hard it'd be to add acts to a level then.

If they're not floats, though, what are they? The game translates them to a float that's rarely over 5.0. I can't grasp why or how you would use 16-bit integers for this.


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?

Someguy: Yes, I -may- publish such a program before my vacation... In my current version you can already click on the spheres to select them and see the related hex data.
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, in Mario 64 - Amazing Stuff Link
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)
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, in Mario 64 - Amazing Stuff Link
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, in Mario 64 - Amazing Stuff Link
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)
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, in Mario 64 - Amazing Stuff Link
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)
VL-Tone

Red Cheep-cheep
Level: 23

Posts: 92/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 07:01 AM, in Mario 64 - Amazing Stuff Link
stag019 Yeah I know, stupid me I forgot to enable that back (I disable ROM opening while I'm debugging it).

I uploaded a fixed version. Another thing I fixed is that the editor will now release files after reading/writing to them so you can open it in an emulator without quitting (some emus didn't like it when the file was not released).

Edit: I keep forgetting things... maybe I'm a little nervous about all this...

stag019 I know about the backgrounds, but adding others would balloon the Shockwave file which is now 750k.

Edit: Ok the new fixed version is now online and it's still named 0.12b. The zip file size is 3,331,731 bytes. I'll try to proof-check things more in the next release.


(edited by VL-Tone on 07-02-05 10:03 PM)
(edited by VL-Tone on 07-02-05 10:14 PM)
(edited by VL-Tone on 07-02-05 10:15 PM)
(edited by VL-Tone on 07-02-05 10:40 PM)
VL-Tone

Red Cheep-cheep
Level: 23

Posts: 93/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 07:39 AM, in Mario 64 - Amazing Stuff Link
Ahhh that's better... I can relax now

Great to see it works well for you at last Could you post a screenshot of a hack like the one with 5 bosses?

Remember that there is still some un-decoded objects in the data that point to other things (like trees), so maybe it's a "0C" or "08" object that contains the star position.
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-03-05 07:47 AM, in Mario 64 - Amazing Stuff Link
Just as I was starting to relax!

But do you mean clicking on objects to select them doesn't work, or releasing the files? Or both?

Just so that others understand: the editor is still useable even with those shortcomings.
VL-Tone

Red Cheep-cheep
Level: 23

Posts: 95/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 08:00 AM, in Mario 64 - Amazing Stuff Link
Ok then I'll stop relaxing all together

What doesn't work for you HyperHacker? Excepted for one or 2 things it works for Chickenlump.

I'll change the file filter mask to *.* so that it'll open and write any file you edit. So chose wisely

Yeah the geometry is built-in, as my MIO0 de-compressor would be too slow. Normally when you click cancel it should quit, what happens for you?

Yet another edit: Lucky me, there is an intermittent bug in Macromedia Director relating to the quit command: http://www.killingmoon.com/director/bugs/quit_projector/ I can imagine all the "told you so" pertaining to my choice of development tool, but hey this is what I know for now. Anyway don't assume anything from the bugs in this release, it's usually less problem-prone. I'll add something along the lines of what is in the StarFox editor so that when you cancel you don't have to quit, and have the option of reopening a file.




(edited by VL-Tone on 07-02-05 11:01 PM)
(edited by VL-Tone on 07-02-05 11:12 PM)
(edited by VL-Tone on 07-02-05 11:13 PM)
VL-Tone

Red Cheep-cheep
Level: 23

Posts: 96/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 11:47 AM, in Mario 64 - Amazing Stuff Link
Super Mario 64 Level 1 layout editor take 2! Action!


Here is version 0.2b! It now features an Open ROM button The program will still ask you first to load a ROM and if you hit cancel you will simply be taken to a screen where only the Open ROM button is available. Once you've loaded the level, you can use the button again if you want to open another ROM for editing. Quitting using the menu works normally and always worked, it was the "quit on cancel" routine that caused problems, it's now removed.

Also to note is that X, Y and Z coordinates are now shown in decimal signed integer format (from -32768 to 32767) you can edit the decimal values directly.
VL-Tone

Red Cheep-cheep
Level: 23

Posts: 97/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 12:07 PM, in Mario 64 - Amazing Stuff Link
Hey sorry Darkflight for the "WTF" reply, somehow your layout confused me and I read your signature as the post

The lighter blue sphere is the currently selected object, and the data you see at the bottom is for this object, which is the first in order from the data. It's the metal bars wall for the caged star.

VL-Tone

Red Cheep-cheep
Level: 23

Posts: 98/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-04-05 01:55 AM, in Mario 64 - Amazing Stuff Link
HyperHacker, yes the cancel bug has been fixed since version 0.2b. As for the clicking on objects directly to select them, it doesn't work on some systems but there are like 3 other ways of selecting objects.

In case you guys didn't noted I switched from blue spheres to cubes to represent objects. This is in the newly released version 0.22b. I realized it was a simple way to show the axis directions, since the cube faces are colored with the same colors as the x y z coordinates numbers. Unselected objects are represented as wireframe cubes while the current selection as a filled cube.

I also added two features, one is that if you hold alt while selecting an object by any mean, the camera will point at the selection. Another feature (that may not work again for you, but it works on my comp and my friend's XP comp) is that you can now right-click on objects in the scene to select them, even in the Rotate Camera mode. I also unlocked back the hex field for "24" so you can experiment changing it to something else.

By the way, great theory about enemies bunches it's possible that enemies in a group share bytes. Just one thing though, very important bytes are at the end of the 18 objects, the last two or three bytes defining the behavior of the object. I guess enemies would share a common behavior...

Anyway I don't have that much time to check all that until vacations tomorrow

VL-Tone

Red Cheep-cheep
Level: 23

Posts: 99/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-04-05 04:35 AM, in Mario 64 - Amazing Stuff Link
Yes those are great finds ChickenLump! If you manage to find the format before tomorrow, I may add support for it in my program before I go on my week long vacation
VL-Tone

Red Cheep-cheep
Level: 23

Posts: 100/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-04-05 05:36 AM, in Mario 64 - Amazing Stuff Link
From early experimentation I can confirm that the coords are also 16-bits, but we need a way to find where those objects start and end.

Edit: Ok I'm off to bed and tomorrow I'm going on vacation, see you in a week! Much progress has been made over the last 2 weeks, I guess the other object types will be relatively easy to document. I hope you guys won't abandon this thread

Here is a little symbolic present to all of you working on hacking Super Mario 64:




(edited by VL-Tone on 07-04-05 03:39 AM)
Pages: 1 2 3 4 5 6 7 8 9 10
Acmlm's Board - I2 Archive - - Posts by VL-Tone


ABII


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



Page rendered in 0.039 seconds.