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
stag019

Snifit
Level: 23

Posts: 68/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-22-05 09:54 AM Link | Quote
Or, you could just look at these Screenshots of Huge Mario. (Some GS code.)

http://i14.photobucket.com/albums/a306/kooparace/29c2d825.jpg
http://i14.photobucket.com/albums/a306/kooparace/0b16a3b5.jpg


(edited by stag019 on 07-22-05 12:54 AM)
(edited by stag019 on 07-22-05 12:55 AM)
(edited by stag019 on 07-22-05 12:56 AM)
(edited by stag019 on 07-22-05 12:58 AM)
VL-Tone

Red Cheep-cheep
Level: 23

Posts: 127/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-22-05 12:29 PM Link | Quote
Hey that's neat stag019

What address does this GS code change, and is it in RAM? I didn't find anything yet regarding to object scaling in SM64, so this may help to find the scaling byte(s) location for Mario.

Edit:
Here is a list of all object commands found in all levels, their length, and the number of times they are used. It confirms that in reversed byte order, the second byte after the length byte is the command number, with normal bytes order that is the first byte, the length byte being the second. It also shows that there are a lot of commands that we don't know anything about yet


CMD LEN OCCURENCES
24 - 18 - 872 <-- 24 is the command number currently editable in my level 1 editor.
07 - 04 - 101
1B - 04 - 31
18 - 0C - 135
1A - 0C - 28
17 - 0C - 72
1D - 04 - 31
25 - 0C - 30
06 - 08 - 173
22 - 08 - 355
1F - 08 - 46
26 - 08 - 258
2E - 08 - 45
39 - 08 - 42
2F - 08 - 5
30 - 04 - 9
36 - 08 - 45
31 - 04 - 45
20 - 04 - 46
1E - 04 - 31
2B - 0C - 30
11 - 08 - 31
12 - 08 - 30
1C - 04 - 30
04 - 04 - 30
02 - 04 - 30
27 - 08 - 44
28 - 0C - 9
3B - 0C - 4
03 - 04 - 3
34 - 04 - 1
29 - 04 - 1
33 - 08 - 1
05 - 08 - 1



(edited by VL-Tone on 07-22-05 06:02 AM)
zidapi
Newcomer
Level: 3

Posts: 1/4
EXP: 85
For next: 43

Since: 07-10-05

Since last post: 92 days
Last activity: 34 days
Posted on 07-22-05 07:34 PM Link | Quote
@VL-Tone
In regards to the levels in the pointer list that you documented. They are the exact same levels in the exact same order that they appear in the debug level select menu which can be activated with the gameshark code 8032C64C 0001 eg the 2 slides don't appear in level select either.

As far as lost or test levels go, there are 7 blank spaces in the level select but choosing them just resets the game. If you can find the start values for the 2 slide levels you may very well be able to find the start values for hidden levels, but as faf as i can think the 2 slides are the only areas that don't appear in the pointer list/level select.

In all honesty, it is more likely that any further debug modes/features/levels would be in the 2 japanese versions of the game than the US rom.

Keep up the good work, you are doing amazing things with this game!
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: 5965/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-22-05 11:51 PM Link | Quote
I wonder if the level data is just like a script of sorts. One command means load an object, another means set the music, and so on.
Sukasa

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

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

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

Since last post: 6 days
Last activity: 1 day
Posted on 07-23-05 12:04 AM Link | Quote
That theory could be correct, because some sort of script seems to need to be activated before bowser does anything, maybe that script is accessed from a level data command, right?
VL-Tone

Red Cheep-cheep
Level: 23

Posts: 128/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-23-05 12:36 AM Link | Quote
HyperHacker: Yes it looks like some kind of "macro-asm" commands, actually it really makes me think about the StarFox level format. This shouldn't be surprising since Miyamoto said that Mario 64 evolved from experiences they did with the FX chip.

zidapi, we'll have to investigate the Japanese version then Maybe the space used for extra voices in the US version are filled with "lost levels" in the Japanese version?

Darkflight: all commands for the Bowser level are loaded when swapping levels, since the address points to the start of the level data. I would guess that values that activate Bowser are set before jumping to this data .


My latest findings: There are 286 different type+behavior combos used in the game for the command 24, and these should be documented.
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: 5980/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-23-05 01:54 AM Link | Quote
286 that are used, anyway. Got a list of valid commands?

And how can you stand hacking it in a weird byte order?
stag019

Snifit
Level: 23

Posts: 69/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-23-05 06:07 AM Link | Quote
Originally posted by VL-Tone
Hey that's neat stag019

What address does this GS code change, and is it in RAM? I didn't find anything yet regarding to object scaling in SM64, so this may help to find the scaling byte(s) location for Mario.


810F0850 xxxx is the gameshark code. 3E80 is default size.
And of course, any gameshark code is in the RAM. RAM address 800F0850.

So, I guess the game doesn't make mario low poly when he's smaller, but when he's further away from the screen.


(edited by stag019 on 07-22-05 09:09 PM)
VL-Tone

Red Cheep-cheep
Level: 23

Posts: 129/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-23-05 07:25 AM Link | Quote
HyperHacker: What do you mean by "valid commands"?

As for the byte order, I started hacking Mario 64 with the idea that all n64 ROM formats were byte-reversed. Then I found out it wasn't true, I already had many things I worked on and documented using the reverse-byte order. Also, someone earlier in the thread mentioned that we should stick to one format. Since the majority of what was posted by me and others in this thread was in reverse byte order, I decided to continue using it. Do I find it easy to work with? Heck no... Should I switch to "normal" byte ordering? I guess that yes... I was about to ask people here what would be the implications of it, before you mentioned it. I'm pretty sure that this phrase from my earlier post: "It confirms that in reversed byte order, the second byte after the length byte is the command number, with normal bytes order that is the first byte, the length byte being the second." incited you to make this comment

stag019: I didn't know that about the GameShark, I thought that it could also affect ROM values like the original NES Game Genie. It seems that the game switches to the low poly Mario when far enough from the camera. I guess that someday we may find the distance value associated with it.

Edit: Take a look at this early Mario 64 hacking reference document I put together last night
http://pages.infinit.net/voxel/Mario64HackingDoc.txt
It includes a sorted list of all 286 object type/behaviors combinations used in the game, along with possible parameter values.




(edited by VL-Tone on 07-23-05 11: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: 6002/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-24-05 11:22 AM Link | Quote
Yeah. That list is what I meant. Now we gotta start working on descriptions.

Gameshark can't edit things in ROM, but N64 loads things to RAM before it uses them anyway, so no big deal. (Not sure why... too slow to run from ROM, I guess.)

As for byte ordering it just makes the most sense to use normal order. You don't have to reverse things in your head (which can be trouble if you forget) and things are laid out in order (X, Y and Z coords are all next to eachother, high byte first). It's just a lot easier to say "Coordinates are here, XYZ" than "Coordinates are here, X's high byte is here, low byte is there, Y's high byte is up here" and so on.

So... The behaviour bytes are pointers, right? Any idea what they point to? It'd make it easier to find other valid behaviours if we knew what they were. I imagine they're scripts of some sort.


(edited by HyperHacker on 07-24-05 02:25 AM)
Cymoro
PATRICK DUFFY WILL LASER YOUR SOUL


Level: 67

Posts: 1911/2216
EXP: 2549743
For next: 43129

Since: 03-15-04
From: Cymoro Gaming

Since last post: 6 hours
Last activity: 4 hours
Posted on 07-25-05 07:10 AM Link | Quote
I found out some neat little things with Bob-Omb Battlefield's Chain Chomp. If you have more than one of the gate behind him on the map, they all explode when he is released. Even if you move the original gate, when he goes to attack the empty space where it was, it still explodes. Now, to find out what triggers the explosion and try to make a neat fireworks show (or, at the least, explosions in the air for that level).

As for Mario, I had to throw him in jail for possession of Shrooms. (I turned the !-switch into the gate from behind Chain Chomp, and since it's one-way, he got stuck)

I've also started adding item names and descriptions to the list. 8 may not be much, but I'm very, very tired.


(edited by Cymoro on 07-24-05 11:24 PM)
(edited by Cymoro on 07-24-05 11:26 PM)
VL-Tone

Red Cheep-cheep
Level: 23

Posts: 130/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-25-05 09:07 AM Link | Quote



HyperHacker, I kind of knew that this was the kind of list you wanted, I wanted to tease you a little

I guess many things are loaded directly from the ROM and into RAM, but some aren't, as they are the results of some calculations, the best example of this is the MIO0 files which are loaded in RAM but cannot be found (decompressed) in ROM.

About byte ordering, you are right... I guess I waited for someone to push me into "switching". I found though that the most common ROM versions are .v64 and .n64 which have the bytes reversed. Anyway there are tools to reverse the byte order that ROM hackers should be able to use So I announce officialy, I'm officially switching to normal byte ordering.

Behaviors really look like they are pointers, and that's how it worked in StarFox. I didn't even check if those point directly to things in ROM yet, so you might take a look at that.

Cymoro: Great findings! That way we could blow out groups of things based on some trigger. (and they don't even have to look like gates). I don't know where we can find the trigger though, it might be in the "log" object which is not a type 24 command. Lol at Mario being thrown in jail Hopefully you can exit the course even if you never finish it before, unlike SMW?

Cool that you started to document the objects! Make sure that you identify the look and the behavior of objects as two things. I'm working on integrating this list into my editor so you could try every combinations simply by clicking arrows or choosing from a list, it will be faster than doing it "by hand".

I just managed to implement textures in the rooms inside the castle (pictures of that soon). Interesting thing, only the "fake" paintings appear, the real ones must be placed there with some object command. I also have some problems with the second floor and basement not being at the right position relative to the first floor. Just like the Castle Grounds tower, it's position is offset by some object command. I'm confident that I'll find the offset coordinates for each portion of the level geometry somewhere in the level layout data.

Ok now I just got back from work and I'm hungry, so I'll cook myself a supper and eat it

I have a few other things to add that I found, so I'll either edit this post or reply a little later tonight.




(edited by VL-Tone on 07-25-05 12:08 AM)
(edited by VL-Tone on 07-25-05 12:08 AM)
stag019

Snifit
Level: 23

Posts: 70/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-25-05 09:19 AM Link | Quote
http://dextrose.com/index.php?s=3&m=19&f=1271#f1271
I use this'en.
To exit the course, you either need to be still or put in this GS to be still.
8033B17C 0C40
8033B17E 0201
Or change it in the RAM.


(edited by stag019 on 07-25-05 12:22 AM)
(edited by stag019 on 07-25-05 12:23 AM)
(edited by stag019 on 07-25-05 12:26 AM)
VL-Tone

Red Cheep-cheep
Level: 23

Posts: 131/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-25-05 10:03 AM Link | Quote
Oh so you cannot exit courses unless you finished them at least once in Mario 64? This means they had to design level to make sure that there was no way of getting stuck, which is anyway always a good thing to do when designing a video-game

Ok dinner is ready! *VL-Tone goes to eat.
stag019

Snifit
Level: 23

Posts: 71/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-25-05 10:07 AM Link | Quote
Originally posted by VL-Tone
Oh so you cannot exit courses unless you finished them at least once in Mario 64? This means they had to design level to make sure that there was no way of getting stuck, which is anyway always a good thing to do when designing a video-game

Ok dinner is ready! *VL-Tone goes to eat.
No, you can exit at any time, but you have to be completely still when pausing (you can't be falling off a level and try to exit, which is smart)

Edit: http://i21.photobucket.com/albums/b270/superluigi64/7.png picutre.


(edited by stag019 on 07-25-05 01:08 AM)
VL-Tone

Red Cheep-cheep
Level: 23

Posts: 132/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-25-05 04:40 PM Link | Quote
First, I hope these are not too many big pictures, the total size is about 1 meg so it shouldn't be that bad for people on 56k. I remember the days when I was on 14.4 , now I'm spoiled by 4 megabits/sec cable...

Anyway if you think I should move some of these pictures to the screenshot sticky thread don't hesitate to tell me. I think these pictures are a worthy part of this thread, and I had a hard time deciding which one to keep, because there are so many new interesting angles to be seen.

I'm also under the impression that I'm not the only one who wanted to see the insides of the Mario 64 Castle from these surreal angles since a long time So, to save you a few clicks, here are the screenshots:

First, let's look at a familiar view angle...

Hmm... I remember seeing that picture before... But look there are no doors?



This one is taken outside the castle lobby. Please don't mind the star door floating there



Here is a view from far far away! You can see the little rooms for each level paintings.
For those who saw or played SM64 DS, you've probably seen something like that before as the overhead map of the castle lobby hub that appears in the bottom screen.


This is the second and third floor, and the basement. Weird, there are two rooms that look almost identical, but are different... like if they were...mirror versions! I wonder why this could be



Bigger version http://membres.lycos.fr/nes3d/Mario64CastleMirrorRooms.jpg
Seriously, like many people here probably already figured out by deduction, the N64 cannot create a true mirror surface at a large scale like the mirror room (actually, real ray traced mirrors are not even possible even in current generation consoles at a useable framerate).

When Mario is inside of this special mirror room, surprise surprise: there are actually two Marios! One being in the other mirrored room mimicking the first one. The paintings in the mirror room though are fake, you cannot enter them. There is a semi transparent polygon plane with glare effect in the middle of the room that act as a barrier between the two Marios. All to create the illusion of a mirror.

Maybe there is a simple object command that makes the mirror Mario appear? I would guess you can also set the position and the Y angle of the mirror. What if you put many virtual mirrors at different positions and angles inside the same room, does it mean that you cam make dozens of Marios appear at the same time? That would be really really fun to try: do you remember the Mario 128 demo? Let's try how many the n64 could display without dropping too many frames



Another view of the 2nd and 3rd floors and basement. Some paintings are missing, only the non-enterable ones appear.


Here is the Tick Tock Clock tree, with the painting and the clock hands missing... The latter are part of the same geometry data but not at the intended position.


The last level entry with the night sky texture, and the infinite stairs? Since they were infinite, it was taking an infinite amount of time to render the stairs on my computer, so I decided to transform it into a finite height stairs instead

Hopefully that's it for now. The basement was a little bland without the paintings so I didn't put many screenshots of it. I'll try to add all the castle rooms to my demo soon, as they are not included now, only the Castle viewed from the outside and three other levels are currently available.


(edited by VL-Tone on 07-25-05 07:43 AM)
(edited by VL-Tone on 07-25-05 07:55 AM)
Cymoro
PATRICK DUFFY WILL LASER YOUR SOUL


Level: 67

Posts: 1912/2216
EXP: 2549743
For next: 43129

Since: 03-15-04
From: Cymoro Gaming

Since last post: 6 hours
Last activity: 4 hours
Posted on 07-25-05 07:09 PM Link | Quote
I always suspected there was another Mario. In SM64DS, as Luigi, you even go through the mirror when you're invisible, and your 'mirror clone' appears on the other side where you were.

And as for Mario 128, you'd need to use the low poly count model

Another interesting thing. The object located at 405B85 is the Bob-omb buddy next to the cannon. Now, all three modifiers (01, 02, and 03) for this object just give messages, they don't activate the cannons, which also gets my mind thinking that their text is somehow retried depending on what the number is, and that more can be added by increasing the value! Just add more for 04, 05, and so on. It's listed as C3 -- 13 00 31 DC -- 00 01 00 00 / 00 02 00 00 / 00 03 00 00 on your object list.

However, after a little editing, I got our buddy, the activation Bob-omb, into every single star stage! Here you go. It's star one, where he obviously shouldn't be. He still activated the cannons, however.

VL-Tone: Wow, that's simply amazing. I feel that should be mentioned.


(edited by Cymoro on 07-25-05 11:45 AM)
(edited by Cymoro on 07-25-05 11:58 AM)
(edited by Cymoro on 07-25-05 11:59 AM)
Sukasa

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

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

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

Since last post: 6 days
Last activity: 1 day
Posted on 07-25-05 10:14 PM Link | Quote
Hey, on the subject of this, does anyone want me to try to locate any specific RAM locations? I've got v 3.3 GS pro, so I could help out there.

EDIT: I found one RAM offset that you may find interesting, if you don't already know it. 8032DDF9 is the current area number, such as the fire sea, cool cool mountain, etc, used when loading an area. Changing it mid-level has no effect, but I'm sure that if I were to take an exit it would have an effect It only works through the level select menu. I'm going to build a list of areas / scenes (like the ending picture) that correspond to this offset.


(edited by Sukasa on 07-25-05 01:40 PM)
(edited by Sukasa on 07-25-05 02:10 PM)
(edited by Sukasa on 07-25-05 02:11 PM)
stag019

Snifit
Level: 23

Posts: 72/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-26-05 12:23 AM Link | Quote
Originally posted by Sukasa
Hey, on the subject of this, does anyone want me to try to locate any specific RAM locations? I've got v 3.3 GS pro, so I could help out there.

EDIT: I found one RAM offset that you may find interesting, if you don't already know it. 8032DDF9 is the current area number, such as the fire sea, cool cool mountain, etc, used when loading an area. Changing it mid-level has no effect, but I'm sure that if I were to take an exit it would have an effect It only works through the level select menu. I'm going to build a list of areas / scenes (like the ending picture) that correspond to this offset.

Well, I've found a lot of RAM addresses lately, because I have Nemu64. How do you view RAM addresses with GS?

Originally posted by Cymoro
I always suspected there was another Mario. In SM64DS, as Luigi, you even go through the mirror when you're invisible, and your 'mirror clone' appears on the other side where you were.


Originally posted by VL-Tone
Seriously, like many people here probably already figured out by deduction, the N64 cannot create a true mirror surface at a large scale like the mirror room (actually, real ray traced mirrors are not even possible even in current generation consoles at a useable framerate).

When Mario is inside of this special mirror room, surprise surprise: there are actually two Marios! One being in the other mirrored room mimicking the first one. The paintings in the mirror room though are fake, you cannot enter them. There is a semi transparent polygon plane with glare effect in the middle of the room that act as a barrier between the two Marios. All to create the illusion of a mirror.

Maybe there is a simple object command that makes the mirror Mario appear? I would guess you can also set the position and the Y angle of the mirror. What if you put many virtual mirrors at different positions and angles inside the same room, does it mean that you cam make dozens of Marios appear at the same time? That would be really really fun to try: do you remember the Mario 128 demo? Let's try how many the n64 could display without dropping too many frames


What about my get inside the mirror savestate? Thats proved the paintings were fake. And that when your on the Mirror's side, Mirrio's on the other (and the mirors is full transparent). I wonder if you could have two mario's anywhere, even without a mirror. And I wonder how it would react to objects, like enemy's and coins.
And BTW, VL-Tone, have you found the F in the castle hallways? I no it's a hallways piece, but what exactly is it?
Originally posted by Cymoro
Another interesting thing. The object located at 405B85 is the Bob-omb buddy next to the cannon. Now, all three modifiers (01, 02, and 03) for this object just give messages, they don't activate the cannons, which also gets my mind thinking that their text is somehow retried depending on what the number is, and that more can be added by increasing the value! Just add more for 04, 05, and so on. It's listed as C3 -- 13 00 31 DC -- 00 01 00 00 / 00 02 00 00 / 00 03 00 00 on your object list.

However, after a little editing, I got our buddy, the activation Bob-omb, into every single star stage! Here you go. It's star one, where he obviously shouldn't be. He still activated the cannons, however.


I just changed the sign, so three Bob-omb Buddy's were in at once, and the third one opened the cannon.


(edited by stag019 on 07-25-05 03:25 PM)
(edited by stag019 on 07-25-05 04:20 PM)
(edited by stag019 on 07-25-05 04:21 PM)
(edited by stag019 on 07-25-05 04:22 PM)
Sukasa

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

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

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

Since last post: 6 days
Last activity: 1 day
Posted on 07-26-05 12:58 AM Link | Quote
GS pro has a Code generator, which also functions as a snapshot and hex editor for the RAM, which works in real-time. I can make alterations to the N64 RAM in the middle of execution, so if anyone could use that, I'm here. Also, the code generator can search for different RAM addresses both known and unknown.
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.014 seconds.