Register - Login
Views: 99798770
Main - Memberlist - Active users - Calendar - Wiki - IRC Chat - Online users
Ranks - Rules/FAQ - Stats - Latest Posts - Color Chart - Smilies
05-03-22 06:12:19 AM
Jul - Posts by VL-Tone
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 ... 22 23 24 25 26 27 28 29 30 31
VL-Tone
Member
Super Mario 64 forum moderator
Level: 53


Posts: 164/621
EXP: 1136484
For next: 20635

Since: 07-27-07

From: Montreal, Canada

Since last post: 4.7 years
Last activity: 6 days

Posted on 01-05-08 11:16:33 PM, in Hacking animations Link
Time: Now - Date: Today - Weather: What can be seen outside. - Mood: How it feels. Answer to the universe: 42
Originally posted by yoshiman
I can edit Mario's animation data but it gets overwritten by the game, unlike for Peach, for example. The animation pointer in Mario's object structure stays the same but the data it points to changes, so its possible new animations are loaded but I'm not so sure.

James S.


I guess that the animation data for Mario is dynamic, meaning that it changes depending on the "move" Mario is making.

____________________
VL-Tone
Member
Super Mario 64 forum moderator
Level: 53


Posts: 165/621
EXP: 1136484
For next: 20635

Since: 07-27-07

From: Montreal, Canada

Since last post: 4.7 years
Last activity: 6 days

Posted on 01-05-08 11:20:24 PM, in Why a Peach 64 hack is not impossible, but would require a lot of work! Link
Time: Now - Date: Today - Weather: What can be seen outside. - Mood: How it feels. Answer to the universe: 42
Originally posted by mortalkenshi2
oh i didnt read this, this exactly what i posted a little while ago... Wel vl-tone, a long time ago in the 3rd board i think there you had posted SOME of the yoshi geometry data. I was doing that before peach and i had lots of luck but then lost my computer. Have you gotten more of that, because that will be an easier task because yoshis only extra thing unlike peach is his tail which i have an idea on how to fix that.

i think that if i take one of marios parts like if i only use one part of his arm for yoshis WHOLE arm i can use that for example as his tail. thats an example only though but thats my idea.


It may be a little easier with Yoshi but not that much. The body part hierarchy is still too different. You forgot one difference, Yoshi has a moving jaw, Mario doesn't. There's still another problem which is that the Yoshi model is quite large and is only loaded in the Castle Grounds level.

____________________
VL-Tone
Member
Super Mario 64 forum moderator
Level: 53


Posts: 166/621
EXP: 1136484
For next: 20635

Since: 07-27-07

From: Montreal, Canada

Since last post: 4.7 years
Last activity: 6 days

Posted on 01-05-08 11:22:32 PM, in SM64 Music Editing Link
Time: Now - Date: Today - Weather: What can be seen outside. - Mood: How it feels. Answer to the universe: 42
Originally posted by Ratchetfan19
Speaking of tone, I have a Gameshark code that allows you to change the overall tone of music sequences. Do you think you could use it to figure out what went wrong in mortalkenshi2's music swap, VL-Tone? I'm not sure if it's possible to determine where data is in ROM if you simple know where it is in RAM or not.


What do you mean by "tone", is it the note pitch, or the instruments?

____________________
VL-Tone
Member
Super Mario 64 forum moderator
Level: 53


Posts: 167/621
EXP: 1136484
For next: 20635

Since: 07-27-07

From: Montreal, Canada

Since last post: 4.7 years
Last activity: 6 days

Posted on 01-05-08 11:53:29 PM, in SM64 RSP Commands Link
Time: Now - Date: Today - Weather: What can be seen outside. - Mood: How it feels. Answer to the universe: 42
Originally posted by HyperHacker
I don't know enough about Mario 64 to be sure, but really, there are very few models in this game. The tracks, item boxes (I think), Nintendo logo, trophies, palm trees, and moving objects (boat, train, chomp etc) are all that come to mind. Everything else is textured quads. If you've ever noticed things like the snowmen have no backs (you can even get 4 players each looking at a different side and they all see a face!) that would be why.

Of course you could easily export the models to a bunch of bitmaps and import them as textures in place of the old ones.

I would assume though that F3DEX supports more commands than Fast3D, but I don't see much reason to port raw RSP commands between the two.


Yeah, SMK64 sure has a lot of "billboards" (flat sprites always facing the camera). I don't think we should spend any time trying to move models between the two games, but since Fast3D and F3DEX are similar, knowledge can be shared, hoping that we can eventually import/export models.

Here's some stuff from some doc that shall remain nameless:

The Seven Basic Microcodes
There are seven basic versions of the graphics microcode:
gspFast3D
gspF3DNoN
gspLine3D
gspTurbo3D
gspSprite2D
gspS2DEX
gspZ-Sort
Each basic version has a different set of graphics rendering features and up to three subtypes.

The F3DEX Microcode Series
In addition to the seven basic microcodes, there are seven additional modified versions of gspFast3D, gspF3DNoN, and gspLine3D that have been specially modified to .fifo subtypes to improve performance. These modified versions are:
gspF3DEX
gspF3DEX.NoN
gspF3DLX
gspF3DLX.NoN
gspF3DLX.Rej
gspF3DLP.Rej
gspL3DEX
Together these seven modified microcode versions are known as the "F3DEX microcode series" or the "F3DEX package."

F3DEX - gspF3DEX.fifo.o or gspF3DEX.NoN.fifo.o
These are extended versions of the Fast3D microcode. The vertex cache size is increased to 32, and gSP2Triangles, a GBI command for displaying two triangles at once, is supported. Not supported is the gSP1Quadrangle command, a GBI command for displaying rectangles that was supported in F3DEX Version 1.21 and earlier versions. (However, this is emulated by gSP2Triangles.)


The vertex cache size in Fast3d is 16 vertices, which is kinda limiting (well 32 is limiting too). A triangle can only access vertices from a scope of 16 vertices. The 0x04 command is used to load vertices, and subsequent triangle commands (0xBF) can only access vertices in the cache, so in some complex models you might end up storing multiple instances of the same vertices. Compiling microcode from imported models would require some optimization algorithm that would group sequences of vertices to avoid repetition and minimize the use of the 0x04 command. It can get complicated when models using multiple textures are broken down in pieces by the texture commands.

____________________
VL-Tone
Member
Super Mario 64 forum moderator
Level: 53


Posts: 168/621
EXP: 1136484
For next: 20635

Since: 07-27-07

From: Montreal, Canada

Since last post: 4.7 years
Last activity: 6 days

Posted on 01-06-08 12:09:40 AM, in Blinking Eyes Link
Time: Now - Date: Today - Weather: What can be seen outside. - Mood: How it feels. Answer to the universe: 42
If you look at Mario's geometry layout data, you'll find this:

001287BC/0E0C:       0E 00 00 00 80 27 71 BC 

001287C4/0E14: 04 00 00 00
001287C8/0E18: 15 05 00 00 04 01 19 A0 -- head 1 hp color
001287D0/0E20: 15 05 00 00 04 01 1A 90 -- head 2 hp color
001287D8/0E28: 15 05 00 00 04 01 1B 80 -- head 3 hp color
001287E0/0E30: 15 05 00 00 04 01 1C 70 -- head 4 hp color
001287E8/0E38: 15 05 00 00 04 01 1D 60 -- head 5 hp color
001287F0/0E40: 15 05 00 00 04 01 1E 50 -- head 6 hp color
001287F8/0E48: 15 05 00 00 04 01 1F 40 -- head 7 hp color
00128800/0E50: 15 05 00 00 04 01 20 30 -- head 8 hp color
00128808/0E58: 05 00 00 00



The 0x0E command has something to do with animation, I guess that 0x802771BC is an address for the head "state". Could you try to modify this address while the game is playing yoshiman?

The different head states (head 1, head 2 etc.) are different eyes for Mario. The first 3 are for the eyes closing, the others are Mario looking sideways, up and down (unused in the game?) and when Mario has Xs in the eyes.

Each 0x15 loads a polygon model, so the game doesn't swap the texture eyes for the animation, it swaps the whole head!

The thing is though, there is really only one high-res head model, the 0x15 commands jump to different "entry points" in the polygon data where a different set of texture is loaded but then it jumps back to create the same model from the same vertices.

Here's the equivalent geometry layout for Peach's head/eyes animation:

00180620/00E0:             0E 00 00 08 80 25 71 98

00180628/00E8: 04 00 00 00
0018062C/00EC: 15 01 00 00 05 00 5C E0 -- head (kissing) 1
00180634/00F4: 15 01 00 00 05 00 5D 38 -- head (kissing) 2
0018063C/00FC: 15 01 00 00 05 00 5D 90 -- head (kissing) 3
00180644/0104: 15 01 00 00 05 00 5D E8 -- head (kissing) 4
0018064C/010C: 15 01 00 00 05 00 5E 40 -- head 1
00180654/0114: 15 01 00 00 05 00 5E 98 -- head 2
0018065C/011C: 15 01 00 00 05 00 5E F0 -- head 3
00180664/0124: 15 01 00 00 05 00 5F 48 -- head 4
0018066C/012C: 05 00 00 00



Note that that in the 0x0E command here, there is the additional "08" parameter just before the RAM address, which corresponds to the number of frames in the animation, I'm not sure why it's set to zero with Mario.

____________________
VL-Tone
Member
Super Mario 64 forum moderator
Level: 53


Posts: 169/621
EXP: 1136484
For next: 20635

Since: 07-27-07

From: Montreal, Canada

Since last post: 4.7 years
Last activity: 6 days

Posted on 01-07-08 12:54:11 AM, in Hacking animations Link
Time: Now - Date: Today - Weather: What can be seen outside. - Mood: How it feels. Answer to the universe: 42
Originally posted by yoshiman
Yeah, I've tried nearby but I think the only way to find the debug in the PAL version is to trace the coding. However, I can't find in the PAL version the ASM that checks the debug flag. So it seems like it was removed from the PAL version, or certainly the one I have.

James S.


The only way? Nahh there are other ways... Remember that I managed to reverse-engineer SM64 and create TT64 without ever needing to trace and disassemble anything (though Cellar Dweller did both and helped me in a few parts).

Here's a trick that you can use to find the equivalent address in the PAL ROM.

Look for a sequence of static bytes nearby the NTSC address that looks unique, and make sure it's not a RAM address, (0x80xxxxxx) which will probably be different in the PAL version. For the debug code, let's take this sequence: "14 12 80 01". It's unique enough so that it doesn't appear at other places in the RAM (or ROM for that matter).

As you know the debug flag in the US ROM is at 0x8032D598, the "14 12 80 01" sequence is not far, at 0x8032D650.

Now, search for this sequence in the PAL version. In my PAL version, it's found at 0x802F9800.

Substract 0x802F9800 from 0x8032D650 to get the difference for this particular RAM area and you obtain 0x33E50. While this value cannot be used for the whole RAM, you can see that the data surrounding 0x802F9800 in the PAL version is very similar to where the debug flag is in the US version.

So, if you substract 0x33E50 from 0x8032D598 you get 0x802F9748.

What happens when I set the byte at 0x802F9748 to 01 in my PAL version? The Debug mode in the PAL version!. Well at least in my PAL ROM. Even if you have a different version, you can follow my instruction to find the address.

Originally posted by yoshiman
If Peach's actual animation data is just a number of translations and rotations for each of her body parts then why should it be different for any other objects? The animations commands you talk about do change dynamically for Mario but does Mario's actual animation data-the translations and rotations-change dynamically too?


I suspect that the animation data itself is not dynamic, but the game swaps different chunks of animation data depending on Mario's state. For example, if he's walking, the animation data is a walking cycle. If he jumps, the walking cycle data is replaced by the jumping animation data, etc. That would be why when you change something in Mario's animation data you loses the changes as soon as he moves. But that's a theory. What I do know for a fact is that unlike every other animated character in the game, Mario doesn't have its animation data stored in its MIO0 bank, and its behavior script doesn't use the 0x27 command. Actually I don't even know where its found in the ROM.


Originally posted by HyperHacker
Well if you feel like hacking it, 8033B17C (32 bits) is Mario's current action. If you turn on debug mode (8032D598 0001), part of this value is shown on the screen. Some known values:
00020449: Burning
00021312: Sinking in quicksand to die
00840452: Sitting
008C0453: Sliding forward
010208B7: Jumping from Lava
04000440: Sneaking against a wall
0C000203: Sleeping Mario
0C400201: Normal
0C400205: Weak Mario
380022C0: Swimming
20810446: Riding a shell
03000880: Jumping


Very interesting Reminds me of this list posted by Kawa-oneechan "back in the days" of the mega SM64 Hacking thread on acmlm. (And let's remind everyone that HyperHacker is the one that started that mega thread).


1	Standing

7 Carrying a small thing
8 Carrying a big thing
20 Crouching
21 Start crouching
22 Stop crouching
23 Start tigering
24 Stop tigering
2F Recover from backflip ("ha-haa!")
30 Recover from jump
32 Recover from jumping kick
3A Recover from triplejump
3B Recover from longjump (enter crouch)
3C Land from ground pound
3D Recover from Brake
3E Recover from ground pound
40 Walk/run
45 Brake
48 Crouching
4A Gentle brake
52 Sliding on butt
53 Sliding on stomach
62 Lie on butt
70 Land from jump
71 Land from jumping kick
78 Land from triplejump
79 Land from longjump
7A Land from backflip
80 Jump
82 Triplejump
83 Backflip
86 Walljump
88 Longjump
8C Hop off ledge
8D Twirl off treetop (end as jumpkick)
98 Shot away
A9 Ground pound
AC Jumping kick
B0 Bonk into wall
B6 Let go of ledge
C0 Swimming
C2 Recover from swimming punch
D0 Start paddle
D2 Paddle
D1 Stop paddle
E1 Swimming punch
E2 Land into water
100 Entering level
102 V sign
103 V sign while swimming
106 Used when talking to a character?
108 Used when reading signs
120 Open door
125 Falling?
121 Open small door
126 Jump out of painting
127 Recover from painting and wipe off
12B Jump out of fountain
133 Fall...
135 Jump into Big Boo's Haunt
140 Hang in tree (and slide down)
142 Slam into tree and grab
143 Climb up
144 Climb onto treetop
145 Stand on treetop
14B Hang onto ledge
14C Climb onto ledge
14D Recover from ledge climbing
171 In cannon
180 Punch (all three phases)
183 Grabbing something
188 Throw what you're holding
190 Grabbing Bowser
191 Holding Bowser
192 Letting go of Bowser



The list is not complete, there are some moves missing. You can see that there's a correspondence between the last byte of the values you posted and this list. Or would it be the last two bytes? There's something fishy about that extra nibble in the list.

I wish we could find the table that assigns which move goes with what, so we could swap moves. For example I always wanted to reinstate the spinning triple jump found in the Beta version (this is the spinning move that happens when you jump on the top of a flyguy and Mario shouts "boing!"). Look at this video to see what I'm talking about: http://www.youtube.com/watch?v=6HODfFcpecI

____________________
VL-Tone
Member
Super Mario 64 forum moderator
Level: 53


Posts: 170/621
EXP: 1136484
For next: 20635

Since: 07-27-07

From: Montreal, Canada

Since last post: 4.7 years
Last activity: 6 days

Posted on 01-07-08 01:56:43 AM, in Blinking Eyes Link
Time: Now - Date: Today - Weather: What can be seen outside. - Mood: How it feels. Answer to the universe: 42
Originally posted by HyperHacker
Originally posted by VL-Tone
The 0x0E command has something to do with animation, I guess that 0x802771BC is an address for the head "state". Could you try to modify this address while the game is playing yoshiman?
I just tried that myself and the only thing I noticed was the game crashes at bootup and during the new game opening sequence if you have it locked to zero. Other than that, nothing happened with the various values I tried.

Tried it in 2 different emulators, both 802771BC and 802771BF, locked to zero and to 8 with no noticeable effect.


The 08 I'm talking about is found just before the RAM address in the 0x0E command.


00180620/00E0:             0E 00 00 [b]08[/b] 80 25 71 98



And this value is set to zero in Mario's head animation command:


001287BC/0E0C:       0E 00 00 [b]00[/b] 80 27 71 BC 



But it doesn't matter much anyway. The data at 0x802771BC in RAM is ASM code, and not a live variable like I expected.

Originally posted by yoshiman
That's strange what you said about Mario's head; the texture commands for Mario's eyes (open, half shut, closed, etc) are always in memory or are they just for the main Mario model? You only need to change those texture commands, as I did, to give Mario Peach's eyes. But the problem is, other than Peach having one more blink texture than Mario, is Mario only has one Peach eye.


Ok here how it works, in a simplified way:



Mario's Head Model Polygon data (simplified, not real addresses).


0x0000 Texture Bitmap for open eyes
0x0500 Texture Bitmap for closed eyes
0x1000 Vertices
0x2000 Draw triangles from vertices at 0x0000
0x3000 Texture command for open eyes (loads bitmap from 0x0000)
0x3004 Jump Command to 0x2000
0x3008 Texture command for closed eyes (loads bitmap from 0x0500)
0x300C Jump Command to 0x2000



The 0x13 and 0x15 commands are found in the Geometry Layout data (not to be confused with the polygon data). These commands refer to a polygon data address.

In this fake example, the command 15 05 00 00 04 00 30 00 would display Mario's head with eyes open. At 0x3000, the texture is set for the open eyes, and then a command makes the code jump back to 0x2000 where the triangles are drawn, using the current texture settings. To display a head with closed eyes, the command 15 05 00 00 04 00 30 08 would be used. Note how after the closed eye texture is set, the code will also jump back to 0x2000 where it will draw the same triangles, but with a different texture.

The polygon data for all head states is available in RAM, that's why the swapping is instantaneous, and that's why you can change the texture commands and still obtain some results.

So there's no texture pointer that changes in RAM when the blinking occurs, it's the pointer for the whole head that changes.

Back to the real data now. You could change Mario's head into Peach's head for only one frame of the animation, and you'd see Mario's head momentarily change into Peach's when he's blinking for example. Note that Mario is a complicated model, and unless you used the High-Poly Patch from TT64, you'll have to change the head value at multiple places to cover all variations (low, medium and high poly etc.).



____________________
VL-Tone
Member
Super Mario 64 forum moderator
Level: 53


Posts: 171/621
EXP: 1136484
For next: 20635

Since: 07-27-07

From: Montreal, Canada

Since last post: 4.7 years
Last activity: 6 days

Posted on 01-08-08 01:40:10 AM, in Editing the RAM objects Link
Time: Now - Date: Today - Weather: What can be seen outside. - Mood: How it feels. Answer to the universe: 42
Wow, very interesting stuff you posted!

Just let me digest all this, I'm sure it will be useful in one way or the other.

____________________
VL-Tone
Member
Super Mario 64 forum moderator
Level: 53


Posts: 172/621
EXP: 1136484
For next: 20635

Since: 07-27-07

From: Montreal, Canada

Since last post: 4.7 years
Last activity: 6 days

Posted on 01-08-08 02:12:54 AM, in Hacking animations (last edited by VL-Tone at 01-07-08 11:13 PM) Link
Time: Now - Date: Today - Weather: What can be seen outside. - Mood: How it feels. Answer to the universe: 42
Originally posted by yoshiman
Thanks, VL-Tone; never before had I seen the PAL debug code yet you knew it all the time!


Well I didn't know the PAL debug code before you prompted me to look for it It was easy for me, I'm used to make use of these kind of tricks when I have to find in ROM a value that's in RAM. BTW you can use the same method to find the debug flag in ROM, so that it can be activated permanently.

The only problem is that the debug flag is inside an area that's covered by one of the two checksums. That means that the checksum has to be recalculated, or else emulators will crash or refuse to run the game. Note that if you fix the checksum, you'll have to change one preference option in TT64 to skip the checksum check (TT64 expects a specific checksum).

Speaking of checksum, I found where the "state" values for Mario's action are stored in ROM by looking at the surrounding values of the patched bytes in the codes HyperHacker posted.

Same problem: these values are also inside the checksum area, so changing them require a checksum recalculation. I'm a little tired, I'm working early tomorrow morning, so I'll post the details of it some other time.

HyperHacker, I would be interested in the the other physics-changing codes that you have. I wasn't really interested in those before because on the Mac, the n64 emulators are pretty much barebones when it comes to hacking. No memory viewer, disassembler or even Gameshark codes (SNES9x on the Mac is pretty nice when it comes to hacking, it had a cheat finder and memory viewer, it helped me a lot when I was hacking StarFox and F-Zero, but it's an exception.). The only RAM searching I did before was by opening decompressed freeze states.

Anyway since I got my intel Mac, I can run Windows and its n64 emulators at full speed inside a VM, with all the hacker-friendly bell and whistles.

yoshiman, while a thread about ASM hacking is a good idea in itself, I'm not sure we have enough stuff to post about it yet, and keep in mind that only a few people here are familiar with n64 ASM. I think we should keep talks of ASM hacks inside threads like these, at least for now. Still if you have some major discovery involving ASM hacking, you can create a new thread about it.

____________________
VL-Tone
Member
Super Mario 64 forum moderator
Level: 53


Posts: 173/621
EXP: 1136484
For next: 20635

Since: 07-27-07

From: Montreal, Canada

Since last post: 4.7 years
Last activity: 6 days

Posted on 01-08-08 02:26:43 AM, in Blinking Eyes Link
Time: Now - Date: Today - Weather: What can be seen outside. - Mood: How it feels. Answer to the universe: 42
Originally posted by yoshiman
The time I notice the low-poly Mario the most is when on the mountain summit in Bob-omb Battlefield and the camera is zoomed out. Another place is when fighting Bowser you can see the low-poly Mario. As the camera zooms in the high-poly Mario 'pops' into view which should never happen had they kept with just the better model.

This really complicates making changes to Mario but I think it's the best way as then the edited graphics will be available in all levels.

James S.


Another way to see the low-poly Mario is to make Mario bigger using a code or a hack, it's easier to notice that way. There are several levels of details available, not just one low and one high poly Mario.

I don't see any disadvantage of eliminating the medium and low-poly Marios, the game doesn't seem to slow down at all when the low detail models are disabled. Anyway if we hack the geometry layout data to change Mario, we might as well do the high-poly Mario trick anyway, since it involves changing two bytes in the geometry layout commands.

Look at this doc to see which two bytes I'm talking about: http://homepage.mac.com/qubedstudios/MarioGeoLayout.txt


>>>>>>>>>>>>>>>>>> Mario

0012A784/2DD4: 16 00 00 63 00 B4 00 64 --Mario Shadow (shape/intensity/size)
0012A78C/2DDC: 04 00 00 00
0012A790/2DE0: 1D 00 00 00 00 00 40 00 --Mario global size.
0012A798/2DE8: 04 00 00 00
0012A79C/2DEC: 18 00 00 00 80 27 7D 6C
0012A7A4/2DF4: 18 00 00 00 80 27 70 A4
0012A7AC/2DFC: 0E 00 00 00 80 27 71 50
0012A7B4/2E04: 04 00 00 00
0012A7B8/2E08: 02 01 00 00 17 00 2C E0 --Jumps to High-Poly Mario
--Jump to: 0012A690/2CE0
0012A7C0/2E10: 02 01 00 00 17 00 2D 7C --Jumps to Low poly Mario >>Change the last two bytes from 2D7C to 2E18 to disable low-poly Mario.
--Jump to: 0012A72C/2D7C
0012A7C8/2E18: 05 00 00 00
0012A7CC/2E1C: 18 00 00 01 80 27 7D 6C
0012A7D4/2E24: 05 00 00 00
0012A7D8/2E28: 05 00 00 00
0012A7DC/2E2C: 01 00 00 00
******************************************************



If you want to do the patch in RAM, just search for 17 00 2D 7C, and change it for 17 00 2E 18

____________________
VL-Tone
Member
Super Mario 64 forum moderator
Level: 53


Posts: 174/621
EXP: 1136484
For next: 20635

Since: 07-27-07

From: Montreal, Canada

Since last post: 4.7 years
Last activity: 6 days

Posted on 01-19-08 05:36:32 PM, in Can't play my edited rom. Link
Time: Now - Date: Today - Weather: What can be seen outside. - Mood: How it feels. Answer to the universe: 42
Hi Wisoo, it's a valid question, but you should've used the help or bug report thread instead of creating a new one. So please repost your question in the appropriate thread and I'll try to answer.

____________________
VL-Tone
Member
Super Mario 64 forum moderator
Level: 53


Posts: 175/621
EXP: 1136484
For next: 20635

Since: 07-27-07

From: Montreal, Canada

Since last post: 4.7 years
Last activity: 6 days

Posted on 01-20-08 12:25:00 AM, in Help/Questions about Toad's Tool 64 and SM64 hacking Link
Time: Now - Date: Today - Weather: What can be seen outside. - Mood: How it feels. Answer to the universe: 42
Originally posted by Wisoo
2gb of ram.

The wierd thing is before i extend the rom it runs perfectly smooth and everything... its right after i've extended it it fails to run =\



The ROM Extender seems to have some weird behaviors on some systems (do you have a foreign language Windows version by any chance?), that's why I'm working with CellarDweller to make a better one (well he's doing all the work ).

In the mean time, maybe you could try the Japanese solution: http://homepage.mac.com/qubedstudios/JapaneseM64ROMExtender.zip

Originally posted by IronManMario
Hello, I'm new to this a bit, I have a problem with getting this koopa shell to work. I can't ride it, nothing happens if I jump on it or run into it. Can anyone help?
Picture
(sorry for the bad quality)


I think that this Koopa shell is meant to go underwater, with it Mario swims faster (kinda like in Super Mario Galaxy). Koopa shells that you can ride on are found inside "!" boxes, or when jumping on a Koopa.

____________________
VL-Tone
Member
Super Mario 64 forum moderator
Level: 53


Posts: 176/621
EXP: 1136484
For next: 20635

Since: 07-27-07

From: Montreal, Canada

Since last post: 4.7 years
Last activity: 6 days

Posted on 01-20-08 03:13:15 AM, in FlatWorld Battlefield (New flat empty level template to start from!!) (last edited by VL-Tone at 01-22-08 04:28 AM) Link
Time: Now - Date: Today - Weather: What can be seen outside. - Mood: How it feels. Answer to the universe: 42
This is the first step towards creating entire levels from scratch, including the importation of new geometry.

FlatWorld BattleField is a big flat square that replaces Bob-Omb Battlefield. In itself, it can be quite boring, as the level is empty.



Hopefully, despite the boring aspect of the level, some people will realize that it has a lot of potential, as it can be used as a template to create brand new levels. There are over 150 object slots available. They're all 0x24 objects, which is a good thing, as 0x42 and 0x43 objects are only limited versions of 0x24 objects. The only objects that are enabled by default are the Mario Start warp, and the original BBB warps. The other objects are invisible because their "acts" stars are all off. To activate an object, just chose which act it should appear in, and then select an object combo. I also added a few 0x26 commands slots so you can create more warps than in the original level.

The available object combos are from BBB, but eventually it will be possible to select object banks from other levels.

This new level was created through a lot of manual hex hacking, and with the help of my development version of TT64. So for now it can't be easily replicated using other levels as a basis. Still I now have a very good idea of what is needed to create a new plain level automatically.

The polygon and collision data combined only take 108 bytes, so it's a good basic template to envision more complicated polygon models, and importation of external models. Keep in mind that between creating a flat square level, and importing complex polygon models, there's a lot work involved.

I documented and commented the changes and the whole level and polygon data in these documents:

http://homepage.mac.com/qubedstudios/FlatWorldBattleFieldHexData.txt
http://homepage.mac.com/qubedstudios/FlatWorldBattleFieldHexUncommented.txt

The uncommitted version can be used as a template for editing the data "by hand", much like I did when creating the level.

You might also want to read this, which has other important info:

http://homepage.mac.com/qubedstudios/READ_ME_FlatWorld_BattleField.txt

Flatworld Battlefield is available as a .PPF patch: http://homepage.mac.com/qubedstudios/FlatWorldBattleFieldPatch.zip

Editing the patched ROM requires a new version of TT64, which I'm releasing now: version 0.5.97b (sorry it wasn't worthy of being called 0.6b).

Download the new "interim" version of TT64 at http://homepage.mac.com/qubedstudios/ToadsTool64.htm

Note that the .PPF patch is not really needed, since TT64 0.5.97b can patch the ROM by itself. Just go to Preferences... and click on "Enable FlatWorld".

Important: Version 0.5.97b fixes an important bug that prevented FlatWorld enabled ROMs from loading on Windows version.




My next step is to create an "height terrain map" level, which will be generated from a 33x33 greyscale image, and a 32x32 bitmap that determines the texture used by each triangle. I'm currently working on it, but at the same time I'm really busy because of my work.


____________________
VL-Tone
Member
Super Mario 64 forum moderator
Level: 53


Posts: 178/621
EXP: 1136484
For next: 20635

Since: 07-27-07

From: Montreal, Canada

Since last post: 4.7 years
Last activity: 6 days

Posted on 01-21-08 03:51:03 AM, in FlatWorld Battlefield (New flat empty level template to start from!!) (last edited by VL-Tone at 01-21-08 01:37 AM) Link
Time: Now - Date: Today - Weather: What can be seen outside. - Mood: How it feels. Answer to the universe: 42
Ok... Sorry guys I just got back from work.

I'm gonna investigate the problem, but I need more specific bug reports. Note that I tested the latest version on both Mac and Windows XP about 20 times, and I can't reproduce this bug

Please understand that "index out of range" is a very generic error, and I need more information, such as "what was happening when this error appeared". Ideally, can anyone give me a screenshot of the whole TT64 window with the error message? (And not just the error dialog, the whole TT64 window)


Edit: added an emphasis on "the whole window".

____________________
VL-Tone
Member
Super Mario 64 forum moderator
Level: 53


Posts: 179/621
EXP: 1136484
For next: 20635

Since: 07-27-07

From: Montreal, Canada

Since last post: 4.7 years
Last activity: 6 days

Posted on 01-21-08 04:31:38 AM, in FlatWorld Battlefield (New flat empty level template to start from!!) (last edited by VL-Tone at 01-21-08 01:35 AM) Link
Time: Now - Date: Today - Weather: What can be seen outside. - Mood: How it feels. Answer to the universe: 42
Originally posted by Mega Mario XD
Well, this looks good. However, my backup DVD went corrupto on me, and I lost my Peachy64 Hack. Great.

If it's going to cause errors, I'll have to pass on this. I'll wait until a "Add new object" button is put in.

I'll install the new version of TT64; but that's it. I don't feel like editing objects right now.

EDIT: No Hills or holes?


I'm sorry to hear about the loss of your DVD...

The only errors happening are internal script errors, they won't corrupt your HDD or Windows installation. It's possible that these errors might corrupt a ROM, but just work on a backup ROM, as you should always do. It's not hard, just duplicate the ROM file and work on the copy.

As for an "Add new object" button, it would be nice, but in FlatWorld Battlefield, you get 150 empty objects, so you're essentially adding objects when you activate them. The difference is that instead of clicking on an "Add new object" button, you click on a little star... Aside from the warps, all the original objects are gone, so it's more about adding than "editing".

Fortunately, other people are willing to test the program and help me fix it. If nobody did, TT64 would be getting nowhere.

As for the "No Hills or holes?" comment. I knew somebody would make a comment like this, I didn't expect it to be from you. Others seem more aware of the implications and potential of this first step instead of nit-picking.

Edit:

Apache Thunder:

Well I wanted a screenshot of the whole TT64 window... Unfortunately the script errors are much less descriptive when coming from the run-time application than when I'm developing.


____________________
VL-Tone
Member
Super Mario 64 forum moderator
Level: 53


Posts: 180/621
EXP: 1136484
For next: 20635

Since: 07-27-07

From: Montreal, Canada

Since last post: 4.7 years
Last activity: 6 days

Posted on 01-22-08 04:27:27 AM, in FlatWorld Battlefield (New flat empty level template to start from!!) (last edited by VL-Tone at 01-22-08 04:51 PM) Link
Time: Now - Date: Today - Weather: What can be seen outside. - Mood: How it feels. Answer to the universe: 42
Originally posted by Ratchetfan19
I think I have an idea as to what's happening. Before the error occurs, TT64 patches the ROM. Even if the error comes up, Flatworld Battlefield loads with no errors in PJ64.

Like I said, usually when I get an "index out of range" script error, it's because another application has a handle on the file. For example, If I open an extended ROM in Text Wrangler, then attempt to open the same file in TT64, I get this error. Maybe TT64 still has the old handle from when it edited the geometry, and you forgot to include a script to break that handle before the editor reads it.

Just a thought, but it doesn't explain why it still doesn't load the ROM correctly after the handle has been broken by a restart.


That's a good theory, and that was my first one, but as you said if it still happens after you quit and restart TT64, it's not a "file is open" related error.

So, it seems that the patching mechanism works, and the problem happens when TT64 tries to reload the patched ROM. What I don't understand is why does it happen on your systems and not mine (may I reiterate, I tested TT64 several times on my Windows XP installation, under Parallels VM).

What are your preference settings? Is Auto-save on? What if you reset the prefs by holding alt when clicking on the splashscreen?

Note that a patched ROM will generate a script error if you try to open it with previous versions of TT64, I had to modify the program to make it possible to open ROMs with extra custom data banks. Only use version 0.5.96 and up to open the patched ROM.



Edit:

I managed to find the cause and fix that freaking bug!! (Thanks BooUrns for your Beta testing abilities!)

Download version 0.5.97b now! It's 99% guaranteed to work.

http://homepage.mac.com/qubedstudios/ToadsTool64.htm



Here's why it didn't work, and why I couldn't reproduce the bug...

I just realized that the Windows version of the ROM extender produces a different output than the Mac version. The Mac version fills the empty spaces after the first 8MB with "FF"s (as planned). The Windows version, for some obscure reason, is padding with "01"s instead... (Are you reading this Cellar Dweller?)

The level script loading routine in TT64 normally stops loading a level script when it encounters a command that has a length of "00". In all original levels, the level script is followed by the geometry layout data for this level. In between the two, there is always "00 00", which is some sort of padding which is not actually read/used by the game. TT64 expects these zeros, and use them to stop loading the script. (Why doesn't it stop using the 0x02 command as a way to end the script loading? It's too long to explain, but it's not simply sloppy programming.)

In FlatWorld, the level script is after the geometry layout, and at the end of the level script, there's empty space. On the Mac, it's filled with "FF"s, so I also used that fact to stop the loading at that point. On Windows, it encountered "01"s, so it tried to continue loading the level, resulting in an error. This is now fixed.

The thing is, while I was (also) testing on Windows, my ROMs were extended with the Mac version of the ROM extender, so I didn't get the bug...

Anyhow, I hope you have fun with FlatWorld Battlefield!!





____________________
(post in restricted forum)
VL-Tone
Member
Super Mario 64 forum moderator
Level: 53


Posts: 182/621
EXP: 1136484
For next: 20635

Since: 07-27-07

From: Montreal, Canada

Since last post: 4.7 years
Last activity: 6 days

Posted on 01-22-08 07:51:26 PM, in FlatWorld Battlefield (New flat empty level template to start from!!) (last edited by VL-Tone at 01-22-08 04:52 PM) Link
Time: Now - Date: Today - Weather: What can be seen outside. - Mood: How it feels. Answer to the universe: 42
Originally posted by NintendoMasters
Nice work on this VL-Tone! Im gonna start seeing what i can come with for this right now!
EDIT: Ok, i may be wrong but i think ive found a bug.
When you select the "acts" for an object to appear in, all the other objects you've added become invisible again (except the warp one's already in the level) and you have to select them and click their object combo to bring them back. This even affects stacking things (like pushable metal boxes). If a lower box is invisible and you want to place one on top of it the drop to ground button will position it as if the lower box wasnt even there until you make it appear again.

(If that description confuses you tell me, and ill try to re-phrase it)


Ehmm, there are two act selectors:

The big one, in the upper-right corner of the TT64, only affects what acts are displayed on the screen. If you want to see all acts at once, click on the "All" button at the right.

The second act selector, is the little selector that's part of the parameter bar for a given object, at the bottom of the window. This is the one you should modify when you want to activate an object in certain acts, but not in others.

So, which one were you talking about?

____________________
VL-Tone
Member
Super Mario 64 forum moderator
Level: 53


Posts: 183/621
EXP: 1136484
For next: 20635

Since: 07-27-07

From: Montreal, Canada

Since last post: 4.7 years
Last activity: 6 days

Posted on 01-22-08 10:32:42 PM, in FlatWorld Battlefield (New flat empty level template to start from!!) (last edited by VL-Tone at 01-22-08 07:33 PM) Link
Time: Now - Date: Today - Weather: What can be seen outside. - Mood: How it feels. Answer to the universe: 42
Originally posted by Ratchetfan19
Glad to know the bug's fixed! Oh, and might I suggest stickying this thread? After all, it is the most significant advancement in Super Mario 64 hacking.


Yeah, stickying the thread would be a good idea even though there is a lot of stickies already. But I'm thinking of deleting most if not all of the posts in the first page of this thread that deals with the bug. Not because I want to hide the fact that there was a bug, but because it's pretty useless since the bug is fixed, and it might confuse or scare some people reading the thread for the first time.

____________________
VL-Tone
Member
Super Mario 64 forum moderator
Level: 53


Posts: 184/621
EXP: 1136484
For next: 20635

Since: 07-27-07

From: Montreal, Canada

Since last post: 4.7 years
Last activity: 6 days

Posted on 01-23-08 02:30:39 PM, in FlatWorld Battlefield (New flat empty level template to start from!!) (last edited by VL-Tone at 01-25-08 12:21 AM) Link
Time: Now - Date: Today - Weather: What can be seen outside. - Mood: How it feels. Answer to the universe: 42
Ok, so I'm gonna try to fix that other bug tonight (unfortunately I have to go to work now). At least, unlike that other bug, I should be able to reproduce it on my machine.

So until then, the work-around is to first activate a number of objects, then click on refresh to reload the level.




Edit :

The disappearing object bug is now fixed. Hidden objects will now appear as expected when you click on the act stars selector. (Remember that you can select multiple objects at the same time using the shift key).

Download version 0.5.98b at the usual address: http://homepage.mac.com/qubedstudios/ToadsTool64.htm





____________________
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 ... 22 23 24 25 26 27 28 29 30 31
Jul - Posts by VL-Tone


Rusted Logic

Acmlmboard - commit 47be4dc [2021-08-23]
©2000-2022 Acmlm, Xkeeper, Kaito Sinclaire, et al.

30 database queries, 45 query cache hits.
Query execution time: 0.274315 seconds
Script execution time: 0.090104 seconds
Total render time: 0.364419 seconds