News: 11 March 2016 - Forum Rules

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - Iron Knuckle

Pages: [1]
Programming / Re: Making a N64 String Editor
« on: October 27, 2012, 02:02:50 pm »
Are all of the FF values at the very end of the rom the remaining space? If so, I put it all through a calculator and there is 360.724 Kilobytes of FF values at the end.

Now, I just need to learn how to make the program in C++... Do you know of any open source string editor that I could look over?

Programming / Re: Making a N64 String Editor
« on: October 24, 2012, 01:50:17 pm »
EDIT: Ah, I think you're right. In the text table there is also "Setup Keyboard" and "Setup Joystick".

Alright, so back to making the string editor. Would it be best to make the string editor extract the text table into a single file, edit it, then inject it into the rom?

Programming / Re: Making a N64 String Editor
« on: October 21, 2012, 04:57:45 pm »
So, what exactly do you mean by disassembling? I've used a R4300i disassembler before (Renegade 64).

I've learned some pretty cool stuff taking a look at the text table. There is some stuff that leads me to think that there's a debug menu. There are what looks like a list of "Plans", each having a unique name and a Plan #, some having #a and #b. They might be cut-scenes, because some were named closely to the post-scene of the first Grogloth battle, like "Jumps", "Lands", "Surprised", "Everything Falls", "Rayman Approaches", and "Falls".
Also, at the very end it says something about a mini-game called Menezis. I looked it up and it's only played on the newer versions, like DreamCast and PC. Interesting. Maybe it was integrated into the N64 version but never used. I wonder if there would be a way to activate it?

Programming / Re: Making a N64 String Editor
« on: October 20, 2012, 03:06:52 pm »
So when I loaded the Rayman 2 Rom in that extractor program and it gave me all of those addresses, those are the different tables in the Rom? Wow, that is a lot of them. I highly doubt it, but are the tables for separating, for example, the stats of a Robo-Pirate, the stats of Rayman, all of the vertexes of a certain map or model, and stuff like that? I'm sorry for all of the questions, I've just always wanted to learn how Rayman 2's Rom worked so I can start making programs to hack it.

Programming / Re: Making a N64 String Editor
« on: October 19, 2012, 03:55:01 pm »
...Did you find that all out by yourself :o

Alright, I'm referring to the Zelda Debug again, sorry: Someone made an extractor where it took all of the tables (I guess tables, I'm not very familiar with how the N64 Roms work) and separated them into different files. Would that make it easier to edit the game? If it's uncompressed, I should be able to make a working extractor... right?

Programming / Re: Making a N64 String Editor
« on: October 18, 2012, 11:19:52 pm »
The game is Rayman 2. I don't think it uses a common compression. I've downloaded the MiniUSF files for it before, and here's what the ReadMe said:

BLEH! This was a very complicated game to hack! Probably the most difficult one
I will ever do. Well, maybe. ;)
The first problem I had ripping this was locating the track select routine. It
could not be found by cheat search, which is my standard method for finding the
routines. I had to start from the alCSPPlay call (MANY thanks to someone42 for
the more-complete libultra sigs -- this rip couldn't be done without them!) and
work my way back from there. I back-traced several pointer writes, probably
about 4 or 5, until I was finally able to locate the pointer table being used.
When I found that, I was then able to find the track select routine which
indexed it. And WOW! It contained 1006 pointers. After locating the track
select routine, I had to step out of _4_ subroutines before the music player
call was made. After finding out which of the ~150 JALs was the MusicStart
routine, I had to go back through all of the others with NOPs to find the ones
which weren't needed. Unlucky me, NONE of them were needed, so that whole
process wasted a good hour and a half.
After getting that far, I began to test all of the audio indices, and wouldn't
you know it, it was a random mess of sequenced music and PCM sound effects!
(This is the reason I could not find a music variable with a simple cheat
search.) :(
Eventually, I was able to compile a list of all music indices, after playing
all 1006 in a row. I then wrote a small program that used this list to
rearrange the pointer table so all the music pointers where right at the
beginning of the table. Finally, I was able to do a standard rip with usfPJ64!

I don't know if this helps me in figuring out the compression style, because I don't know it it's the compression of the game that made it hard to rip the USF files or if it was how the music was stored. Anyway, it sounds like it'll be a hard game to crack.

Programming / Making a N64 String Editor
« on: October 18, 2012, 05:16:14 pm »
Hello, I am wanting to design a set of tools with C++ for hacking an N64 game. I don't have any experience with C++, but I do have the will to learn. I thought the best way to start out was with a simple string editor for the game. After I learn more about working with C++, I plan on stepping up the level to texture, model and map editors/viewers/extractors. Though that'll take a while, so I was hoping that someone could walk me through the steps of making a string editor.

First off, I have some questions:

The major tools that I've seen are for the Zelda OOT Debug Rom. The Rom's size is double that of the game that I want to edit. Is the level of compression going to make it harder for me to program tools for it?

The string editor for the Zelda Debug talked something about Rom "Injection". Does this mean it can move all of the offsets without messing up the game? If so, I'd love to know how that works.

Uh, well, my last question is: Can someone help me out here? I'd really love to start on this. Sorry if this was posted on the wrong board.

Pages: [1]