Language…
12 users online:  AmperSam,  Anorakun, CroNo, JezJitzu, Mr. MS, mtheordinarygamer, NewPointless, Null42, Skewer,  Tahixham,  Telinc1, Zavok - Guests: 298 - Bots: 291
Users: 64,795 (2,373 active)
Latest user: mathew

Posts by messiaen

messiaen's Profile → Posts

I'm not interested in Mario RPG hacking, but perhaps you guys should try the Final Fantasy VI editor released a few weeks ago by Omeag45889. It's actually a side project developed from Lazy Shell, so perhaps experimenting it may give you an edge when LS is released.
A short preview from an upcoming Mario 64 hack.

<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/dx9Bgr-NzeY&hl=pt-br&fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/dx9Bgr-NzeY&hl=pt-br&fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object>
Probably in a month or two. Most of the harder ASM stuff is done, but some areas still need to be worked a bit more.
Originally posted by Smallhacker
The DNS must be constructed using an HTML fractal. This can normally be done with a subversion of the HTTP protocol. Normally, version 1.1 is enough, but the HTML transceiver might be slightly out of sync. The HTML fractal MUST contain the delta function for images to work properly.


This needs some clarification so let me throw my two cents. HTML fractals aren't needed if you use meta-constructs for syncronization. Using (serialized if you need more precision) meta-constructs you can not only avoid the preprocessor being overloaded by non-sequencial data but it also allows the DNS to be constructed using an limited array of non-indexed matrixes.
New title screen (this is the same hack I have been showing in this thread for a while):

<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/ojeTy-j8SQo&hl=pt-br&fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/ojeTy-j8SQo&hl=pt-br&fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object>

Release in one/two weeks :).
I was in your position a few months ago, so let me give you a few tips.

First, avoid Microsoft Visual Studio, you won't need it to learn C. I recommended Dev-cpp, which is fast, has a nice interface, and is bundled with MinGW, which is a port of GCC, the standard *Nix compiler. You can compile straight from the interface (though later it will be useful to learn how to do it from command line) and even set a "project file" (again, later on its important to learn about Makefiles and how they work) for larger projects.

A good site for very basic stuff is C Programming. Go through their first tutorials, write some code yourself (especially something you need) and study a lot File I/O and pointers if you are interested in ROM Hacking. Memory allocation (ie, malloc, calloc, free and these functions) will confuse you at first but when you understand how pointers work it will be simple.

If you want a more textbook-like approach, search for K&R ANSI C book. You can find that on the web if you search enough (I think I got mine from a torrent)
What if Mario could throw fireballs?

<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/FVUgEl8roUQ&hl=pt-br&fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/FVUgEl8roUQ&hl=pt-br&fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object>

Still just a proof of concept.
ALMOST ready :).

<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/UgLc0rPRs3U&hl=pt-br&fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/UgLc0rPRs3U&hl=pt-br&fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object>
This is the first ever "complete" hack of Mario 64. None of the original levels have been used and the gamplay has been changed in many aspects.


Main Features:
--------------

- 38 stars in about 10 levels
- A Day/night cycle replacing (most) act selectors
- Choose to play as Mario or Luigi
- Modified enemies, objects and bosses (too many to list!)
- Custom music, including one original song (the town "night" music).
- A new final boss fight

To switch between Mario and Luigi in the title screen, press D-pad Left (Luigi) or D-Pad Right (Mario).

There are also many 'invisible' modifications that make make this hack work: extended memory support, a new collision pointer system (lookup tables instead of hardcoded pointers), modified script commands and a bunch of other minor stuff. The source code for all these hacks will be available on my site futurely.

Thanks to the people who have contributed to this hack:

Celux - Secret Woods level and major help on [the] underground area.
RDX - Some music ports made with mml2m64
VL-Tone - Luigi model, as available from TT64 v0.5.9 onwards.
ZZT32 - a pretty cool guy :D who helped me working with MIPS-GCC.
Darkdata - Title screen background and name suggestion.
Stevoisiak - Beta testing some early versions and suggesting some nice improvements
Kostecki - Correcting some text.


"Trailer" (a bit outdated):

<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/UgLc0rPRs3U&hl=pt-br&fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/UgLc0rPRs3U&hl=pt-br&fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object>


Download Page
Damn last minute bug.

Please redownload the patch if you have problems with the spawn point after you got a star (basically, if you downloaded the patch before this message).
That's strange, I couldn't reproduce this bug. Just to make sure, what emulator are you using? Some people reported PJ 1.7 not working well with this hack, but PJ 1.6 working fine. Also, have you used any cheats?

0x80247d08 translates to address 0x2D08 at ROM. If you open your ROM n a hex editor, that should contain "0x27BD0018", otherwise something went wrong in the patching process. Could you check if that wasn't the problem? Otherwise, I'll have to check further about this.
Originally posted by Kernigh
Originally posted by messiaen
This is the first ever "complete" hack of Mario 64. None of the original levels have been used and the gamplay has been changed in many aspects. ... Download Page


I will wait for players to review The Missing Stars. With such reviews, I might understand how well you hackers can hack a Nintendo 64 game like Super Mario 64.

The Super NES and the Game Boy Advance seem best for hacking. The first NES has a proliferation of emulators and mappers, so it seems worse. But the Nintendo 64 is worst, if I believe what I was reading last winter, because the emulators are slow, only support a few games, emulate only part of the system (because of "high-level emulation"), and have a proliferation of plugins. Hackers will choose their own platforms, so I guess. You hackers might deserve extra congratulations for a "complete hack" above such of a difficult platform.

After I noticed SMW hacks, I needed a few months to learn how to play them in a Super NES emulator. I do not intend to learn how to play The Missing Stars, so I will depend on players who already know Nintendo 64 emulation to review this game.


Hacking the Nintendo 64 is still limited to a few games, and the key issue is the 3D model format. There isn't still any released program (though the next version of Toad's Tool64 will handle it) to convert 3D models in more common formats such as .OBJ to N64 display lists, and especifically, to the very early RSP microcode variant used in Mario 64. This hack is an (insane) workaround this issue, as all level geometry is created by a few "blocks".

To make the hack interesting enough, there are plenty of other ASM hacks (actually, a bunch of them are C hacks because when hacking the N64 a high-level approach is called for, since thats how the game was written) to modify/create new objects and behaviors and even a new powerup (only available at the end of the game).

As far as emulation goes, the CPU/core emulation works well except for self-modyfing code, though not many games use it. Nowadays, the only "high level" emulation is the graphics part, the difficulty being that there are tons of microcode variants and some games (very few) use custom microcodes which haven't been cracked yet. Mario 64 works almost perfectly with most plugins. There are some people developing low-level graphic plugins, but I haven't tried it and they probably require a great hardware.
Mario Kart red shells in Mario 64:

<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/pHa7bwV6-As&hl=pt-br&fs=1&"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/pHa7bwV6-As&hl=pt-br&fs=1&" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object>

Those red shells model are beta leftovers. The whole thing was coded in C.
More Mario 64 stuff :). This is an custom object built from scratch using Yoshi model/animations.

<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/Pab2U3mH4fE&hl=pt-br&fs=1&"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/Pab2U3mH4fE&hl=pt-br&fs=1&" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object>
There won't be another release of the "Missing Stars" hack, except for an eventual bug fix or if I get it to work on a real N64 (graphics are severely messed up).

These tests are only for the sheer joy of hacking and documenting as many aspects from the game as I can. Whenever VL-Tone finishes a version of Toad's Tool 64 with the polygon importer I might start thinking about creating another hack, perhaps more RPG-oriented :).

Next step is trying a custom boss, however I'm having a hard time understanding the 3D movement functions, my math is really lacking :P.
Thanks! I'm taking a break from Mario 64 and experimenting a bit hacking Mario Kart's music:

<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/T82Dw0A_mCg&hl=pt-br&fs=1&"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/T82Dw0A_mCg&hl=pt-br&fs=1&" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object>
Yeah, a SMK Addmusic is the idea :), but there is still a long way to go.

Throughout the years, a lot of people have hacked the N-SPC, the music format used in most Super Nintendo first-party titles, so there's some good documentation for it.

To find music data, use the dump SPC-RAM feature in ZSNES. Track data (the specific song played at the moment you dumped the SPC) will be at $D000 (or $D100 if you count the 0x100 header, which I just remove to make going through pointers easier).
Playing around with a primitive .obj importer I wrote this weekend:

<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/E-jx5ZwDJdc&hl=pt-br&fs=1&"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/E-jx5ZwDJdc&hl=pt-br&fs=1&" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object>
I was waiting until it worked better to relese it outside the Jul SM64 hacking community, but if anyone feel like trying this please remember that this program is at an very early stage of development.
This tool imports an Wavefront .obj file as the level mesh of any level in the game.

(old) Sample:

<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/t3gp5BrUX38&hl=pt-br&fs=1&"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/t3gp5BrUX38&hl=pt-br&fs=1&" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object>

Download