(Link to AcmlmWiki) Offline: thank ||bass
Register | Login
Views: 13,040,846
Main | Memberlist | Active users | Calendar | Chat | Online users
Ranks | FAQ | ACS | Stats | Color Chart | Search | Photo album
05-04-24 04:20 PM
0 users currently in ROM Hacking.
Acmlm's Board - I3 Archive - ROM Hacking - Super Mario 64 ROM Extender 1.1b Official Release! New poll | |
Pages: 1 2Add to favorites | Next newer thread | Next older thread
User Post
VL-Tone

Paratroopa








Since: 11-18-05

Last post: 6475 days
Last view: 6475 days
Posted on 03-25-06 11:58 PM Link | Quote
After some delays, at last I'm releasing the Super Mario 64 ROM Extender!



Yeah, not only it's not a very original name, and it doesn't exactly convey it's real use.

This program will produce a usable decompressed version of the Mario 64 ROM. It means that instead of struggling to fit re-compressed edited data in the ROM. The decompressed data inside the extended ROM can be edited directly, and it can run as is in an emulator.

Note: This is not a level editor.

You can download the Windows version at:
http://rapidshare.de/files/16368233/M64ROMExtender_1.1b.zip.html

And the Mac OS X version at this url:
http://rapidshare.de/files/16430880/M64ROMExtender1.1bMac.zip.html

Here is in geekier terms what it means: (Copy/paste from documentation)

What this program will do:
1. Swap bytes if a .v64 version is provided. The output file is in .z64 format (ABCD byte order)
2. Extend the ROM to 24 megs, by adding 16 megs of "FF".
3. Decompress all the MIO0 files in a directory named "MIO0files".
4. Copy the uncompressed data in the upper 16 megs of the extended ROM, leaving 32k gaps between data segments.
5. Change pointers to match the decompressed data.
6. Recalculate the checksums.

What this program won't do:

1. It doesn't work with European and Japanese versions.
2. It won't work with ROMs that have a byte ordering other than ABCD or BADC.
3. It doesn't make Luigi a playable character.
4. The extended ROM won't run on an iPod. (Ok that's a lame joke.)


The program is straightforward. Click the Open ROM button, chose a .v64 or .z64 US version of Mario 64. Wait until it's done (a few seconds only) and there you get a 24 megs version of the ROM, with .ext.z64 appended.

Ultimately, this ROM format will be used by my Super Mario 64 Level editor that will be released later this year. But until then, it can have many uses.

The documentation includes a list of where the MIO0 files are moved/decompressed.

Even if you are a newbie, you can make some good use of this program if you know how to use a graphic/tile editor.

Tile Molester will open the extended ROM and enable image viewing and editing, if you set it to RGBA 5551. You'll have to find the textures yourself, starting at 0x800000 in the ROM.

The first part at 0x800000 also includes the game text. I may provide a text editor soon.

I wouldn't mind at all if someone would host the Windows version somewhere, and if anyone wants to make a smaller version of this ROM extender, just PM me, I'll provide the details.




Some people in the past argued that it would be best to only move compressed data after the end of the ROM, instead of being de-compressed, to save space...

I had a few arguments against it, and at least in appearance it looked like I wanted a decompressed version only because I had problems writing a fast compressor in Director. Now that I found I can call command-line utilities, this point is moot.

I still think it's a better idea to standardize around a decompressed format.

Why? I found some good reasons... Being able to use standard tools like Tile Molester is one. Also, anyone wanting to write an editor for Mario 64 wouldn't have to implement MIO0 decoding and encoding in their program. Other benefits include being able to generate standard IPS patches (Unless you put some padding, MIO0 files would move around when their compressed size change), and also generating patches without having to re-compress all the MIO0 data beforehand.

(Edit: Arghh to many edits!)


(edited by VL-Tone on 03-25-06 10:59 PM)
(edited by VL-Tone on 03-25-06 11:00 PM)
(edited by VL-Tone on 03-25-06 11:00 PM)
(edited by VL-Tone on 03-25-06 11:02 PM)
(edited by VL-Tone on 03-25-06 11:34 PM)
Deleted User
Banned


 





Since: 05-08-06

Last post: None
Last view: 6285 days
Posted on 03-26-06 12:28 AM Link | Quote
I like this program, it makes it a lot easier, but...
Originally posted by VL-Tone
3. It won't work with ROMs that have a byte ordering other than ABCD or BADC.
3. It doesn't make Luigi a playable character.
two threes.
VL-Tone

Paratroopa








Since: 11-18-05

Last post: 6475 days
Last view: 6475 days
Posted on 03-26-06 12:35 AM Link | Quote
Originally posted by stag910 +
I like this program, it makes it a lot easier, but...
Originally posted by VL-Tone
3. It won't work with ROMs that have a byte ordering other than ABCD or BADC.
3. It doesn't make Luigi a playable character.
two threes.


It was intentional Nahh I wrote this before going to bed yesterday (actually this morning in your time zone). And I get nervous with releases...
Deleted User
Banned


 





Since: 05-08-06

Last post: None
Last view: 6285 days
Posted on 03-26-06 01:06 AM Link | Quote
A super mario 64 editor laterthis year? Holy cow. I would say I didnt expect one but I sorta figured someone would make one.

The tool sounds handy dandy tho.
Tweaker

Red Koopa








Since: 11-18-05
From: Rochester, NY

Last post: 6285 days
Last view: 6284 days
Skype
Posted on 03-26-06 01:14 AM Link | Quote
Sorry, I'm still a bit unclear -- will this allow you to shift data in the ROM? Meaning, if I were to add extra data onto the end of a previous block (like if I added detail to compressed art or something, then put it at the same offset), that the ROM would still run?

Or does it simply double the size of the ROM? Because the latter I could do manually.

Reading it again... Does this just relocate all data with a shitload of extra room after for extension? In that case, that's pretty damn handy, even if I could still do it manually. =P
VL-Tone

Paratroopa








Since: 11-18-05

Last post: 6475 days
Last view: 6475 days
Posted on 03-26-06 01:59 AM Link | Quote
In a normal Mario 64 ROM, textures, polygons and some object data are stored in 79 data banks/segments that are found all over the ROM. These segments are compressed using a format called MIO0.

The problem is that if you edit the content of these segments, then re-compress the data, you may end up with a bigger segment and it won't fit in its original location.

To get around this, these 79 segments have to be moved after the end of the ROM. Also, hundreds of segments pointers have to be changed to match the new positions.

For the reasons I stated before I decided to not only move the 79 segments but also decompress them so that the data can be edited directly instead of dealing with compression.

There was a few little things that needed to be found to achieve this, like finding how to make the game use uncompressed data. A few details were missing to make the process complete, and it all was resolved in the last few days.

This program is not extraordinary in itself, but is a step in the good direction. Good luck trying to do this manually.

One of the reasons why the ROM is 24 Megs, is that I decided to put 32k of "FF" between the segments, to allow "future expansion". That makes the decompressed data go just over 8 megs. (actually it may not fit anyway). So that would make the total ROM size just over 16 megs.

N64 ROMs need to be a certain size, like 8, 16, 24 or 32 megs. So that means the next size I had to use was 24 megs. And that makes a lot of free space at the end, which is not necessarily bad in itself. Segments could be duplicated there for example. The level editor will eventually make use of this space.

Now that I have this new basis, I'll continue my work on the level editor.


(edited by VL-Tone on 03-26-06 01:05 AM)
Tweaker

Red Koopa








Since: 11-18-05
From: Rochester, NY

Last post: 6285 days
Last view: 6284 days
Skype
Posted on 03-26-06 03:39 AM Link | Quote
Ah, I see... When I referred to editing manually, it was mainly for individual data segments. Never knew you did them ALL -- that really ups the usefulness of the program, IMO.

Thanks for clearing that up.
Raccoon Sam

Boomerang Brother
Custom Title








Since: 11-20-05
From: Correct

Last post: 6285 days
Last view: 6284 days
Posted on 03-26-06 06:25 AM Link | Quote
Awesome.
Marry me.
EDIT: HOLY SMOKE THIS UNCOMPRESSES THE TEXT TOO


(edited by Raccoon Sam on 03-26-06 07:14 AM)
dcahrakos

490


 





Since: 11-17-05

Last post: 6501 days
Last view: 6501 days
Posted on 03-26-06 11:11 AM Link | Quote
Nice, dont suppose there is a way to port it onto linux is there? thats what I mainly use now, and it would be great, if not ill just try wine, see if that works.


(edited by dcahrakos on 03-26-06 09:12 AM)
Deleted User
Banned


 





Since: 05-08-06

Last post: None
Last view: 6285 days
Posted on 03-26-06 04:21 PM Link | Quote
OMG ! When I opened the new ROM with Tile Molester, I saw the SM64 textures!. Also, I saw some unused textures too .


You remeber them _¬?


Yay! The pictures !


I´m sure that those flowers are a beta stuff, I don´t remeber them being on the game.


Lakitu eyes ?
Raccoon Sam

Boomerang Brother
Custom Title








Since: 11-20-05
From: Correct

Last post: 6285 days
Last view: 6284 days
Posted on 03-26-06 05:05 PM Link | Quote
I don't see your point.
And by the way, you should distort the canvas. Those are stretched and multiplied :\
VL-Tone

Paratroopa








Since: 11-18-05

Last post: 6475 days
Last view: 6475 days
Posted on 03-26-06 11:44 PM Link | Quote
I'm sorry that I cannot support Linux

The program is not complicated though and already relies on some C externals that could be easily compiled for Linux. Anyone with knowledge of C could recreate my program without too much fuss.

The thing is, you only have to use this program once. At worse, boot in Windows, convert the ROM then get back to Linux. From that point, keep the extended ROM locked as a backup, and simply make copies when you want to edit.

So just to make that clear, you don't have to run the program each time you want an extended ROM. Just duplicate the extended ROM at will.
proffessor_gad

Red Koopa








Since: 01-27-06
From: Mars

Last post: 6315 days
Last view: 6315 days
Posted on 03-30-06 05:36 PM Link | Quote
I found one bug (if you can call it that). Gameshark does not work with the extended rom.
VL-Tone

Paratroopa








Since: 11-18-05

Last post: 6475 days
Last view: 6475 days
Posted on 03-30-06 11:23 PM Link | Quote
Originally posted by proffessor_gad
I found one bug (if you can call it that). Gameshark does not work with the extended rom.



It would help if you was more precise on what exactly doesn't work. Your codes don't work as usual? Does your emu report an error when you try to apply a GS code?

It's possible that some codes won't work anymore because some data has been moved. Please provide more details about the problem.
Someguy

Tooky


 





Since: 11-17-05
From: West Virginia-USA

Last post: 6290 days
Last view: 6284 days
Posted on 03-31-06 01:24 AM Link | Quote
Image hosting by Photobucket
Image hosting by Photobucket

It was the first thing I could think of that was of fitting size.
proffessor_gad

Red Koopa








Since: 01-27-06
From: Mars

Last post: 6315 days
Last view: 6315 days
Posted on 04-01-06 01:03 AM Link | Quote
Ok, maybe I should have been a bit more percise.

I cannot apply any gameshark cheats using my nintendo 64 emulator. When I start up project 64's built in gameshark code editor, a blank box comes up, thus disableing my ability to cheat.

Something similar happened with 1964, it's as if the emulator does not recognize the game as something valid for using codes. I think that it is probably a problem with the emulators, but I really don't know.

Either way, I don't think that it is a big problem if the game shark cheats are disabled. I mean, there is always the eep editor... And hacking....
HyperHacker

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


 





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

Last post: 6285 days
Last view: 6285 days
Posted on 04-01-06 04:55 AM Link | Quote
The emulators might be identifying the ROM by its checksum. The expanded ROM would have a different checksum, so they don't find any codes for it.
proffessor_gad

Red Koopa








Since: 01-27-06
From: Mars

Last post: 6315 days
Last view: 6315 days
Posted on 04-01-06 07:16 PM Link | Quote
Checksum? Is it found in the rom's header? I remember hacking the text in super mario 64, and the same problem happened... Maybe it is a problem with the text?
S.N.N.
wtf


 





Since: 11-17-05
From: Ontario, Canada

Last post: 6290 days
Last view: 6284 days
Posted on 04-01-06 08:30 PM Link | Quote
Holy friggin crap. Twinkle Star is in the thread.

On topic: This is definitely a step towards an editor. When a full editor is released, people are gonna be all over it. This is an awesome piece of work VL, great job
VL-Tone

Paratroopa








Since: 11-18-05

Last post: 6475 days
Last view: 6475 days
Posted on 04-01-06 08:51 PM Link | Quote
It's possible that the checksum is responsible for the missing GameShark codes.

I know that one of my emulators decided that my older save-states didn't belong to the new extended ROM, because it identifies them by checksum.

The checksum only needs to be changed when the extended ROM is created (and the ROM extender takes care of that). Changing the content of MIO0 data and level scripts doesn't affect the checksums.




Thanks SoNotNormal! for the kind comment. The extender is a good step toward an editor, but for those who don't know the editor is already fairly advanced, but it need to be rewritten in part. For now it's in a state that would make unusable for anyone of you.


(edited by VL-Tone on 04-01-06 06:52 PM)
Pages: 1 2Add to favorites | Next newer thread | Next older thread
Acmlm's Board - I3 Archive - ROM Hacking - Super Mario 64 ROM Extender 1.1b Official Release! |


ABII

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

Page rendered in 0.021 seconds; used 452.66 kB (max 583.46 kB)