ShootersForever.com Forum Index

GoldenEye 007 Nintendo 64 Community, GoldenEye X, Nintendo 64 Games Discussion
GoldenEye Cheats, GoldenEye X Codes, Tips, Help, Nintendo 64 Gaming Community


From Gameshark Mod to Setup Mod

 
Post new topic   Reply to topic    ShootersForever.com Forum Index -> Q-Lab Hacking Department
View previous topic :: View next topic  
kcghost
Hacker
Hacker


Joined: 18 Jan 2006
Posts: 551

 PostPosted: Sat Dec 23, 2006 11:16 pm    Post subject: From Gameshark Mod to Setup Mod Reply with quote Back to top

I have been trying to mess around with the Dam setup file to permanetley incorporate some beta stuff. Since Im lazy, I figured I would use already made Gameshark codes, copy the setup file off memory, then recompress it. I found there are a good amount of changes made when it is in memory, and made the necessary changes to make sure only the gameshark code mods make the differences. It didn't work. Then I tried singling out one batch of codes to make the boat appear, finding the offset and modding it myself. Still didn't work, but I think it was because it used a Room Pointer. I then made one, extremely small gameshark change that did not involve a Room pointer (A beta door mod), and alas! Just to prove the damn thing would actually ever work, it worked!

Is there any major differences that need to be taken into account when trying to make a Gameshark mod a ROM mod? Are the room pointers (801C etc.) the same? (Cause I suspect not).

Is there a way to get a perfect useable Setup file from a Gameshark mod? Is there a good method for re-making Gameshark mods into ROM mods? (Particularily Setup).
 
View user's profile Send private message Send e-mail
Wreck
Administrator
Administrator


Joined: 14 Dec 2005
Posts: 7198
Location: Ontario, Canada

 PostPosted: Sat Dec 23, 2006 11:38 pm    Post subject: Reply with quote Back to top

Room pointers in an actual setup file don't exist. What does exist is an offset to a plink at the end of the file, which corresponds to the appropriate room tile. I'll show you how it is done. First, here's how a preset normally appears in a setup file...

Example from Dam:
45 6D F0 00 C1 90 00 00
45 3B 50 00 00 00 00 00
3F 80 00 00 00 00 00 00
3F 80 00 00 36 06 37 BD
00 01 1C B0 00 00 00 00

The "00 01 1C B0" is an offset to "p1988e".
When the plink is converted, you end up with "07C4 20".
That value is a tile inside of the corresponding room.
The "00 00 00 00" following the offset to the plink is then filled in with an address linking to the tile supplied, as the stage loads. You must leave that part blank in your setup. Just offset your preset to a modified plink with your new room tile. For more information on how to convert room pointers to plinks, check out Shell's Wikipedia. The tutorial I wrote should still be available there.

You need to grab the data from your cartridge as the stage is first loading. Otherwise, presets will have already begun expanding and pointers will fill in. Any codes that redirect a room pointer can not be used. Manual modifications will still be required. Unless you go through a series of activators, which would help. My suggestion would be to use the GoldenEye Setup Editor. Just grab a preset from PJ64, create a new object, set it up to the new position, then save your setup. It's quite easy and will save you on time.
_________________

YOUTUBE | FACEBOOK | VAULT | MOD DB | RHDN
 
View user's profile Send private message Visit poster's website
kcghost
Hacker
Hacker


Joined: 18 Jan 2006
Posts: 551

 PostPosted: Sun Dec 24, 2006 8:42 am    Post subject: Reply with quote Back to top

Thanks, I completley forgot your tutorial existed, lol.

Do the other files change when grabbed off memory too? Like Clipping?

Update: Setup Mod worked, now Im trying to do clipping (for walking across the water: Jesus Mod!), without much luck. It appeared there was some memory differences at the very top of the file, looked like room pointer expansions, so I fixed that, but the rest seemed like it was part of the mod, so I left it. It crashes, both with its accompaning gameshark codes and not.
 
View user's profile Send private message Send e-mail
Wreck
Administrator
Administrator


Joined: 14 Dec 2005
Posts: 7198
Location: Ontario, Canada

 PostPosted: Sun Dec 24, 2006 11:31 am    Post subject: Reply with quote Back to top

The entire object list sees a lot of changes as the stage loads up. Also, anything that is used as an offset within the setup usually becomes a pointer to the appropriate position in RAM. That includes the presets, paths, and action blocks. When all of that is taken into account, it's often difficult to get a good grab from console. If anything has expanded, you'll have to manually correct it. Some stages are much harder than others, as they start expanding faster.

I believe there is atleast one change to the clipping file, though quite possibly more. There's an offset at the beginning that points to the first entry, which becomes an address pointer in RAM. Other than that, I'm not sure what else may be effected.
_________________

YOUTUBE | FACEBOOK | VAULT | MOD DB | RHDN
 
View user's profile Send private message Visit poster's website
kcghost
Hacker
Hacker


Joined: 18 Jan 2006
Posts: 551

 PostPosted: Sun Dec 24, 2006 11:53 am    Post subject: Reply with quote Back to top

Looks like just the begining, clipping isn't too bad. My crash was a fluke, the compressor messed up on me. I re-did it and the Jesus mod worked fine, lol.

It seems like when trying to make Setup mods from Gameshark mods, sometimes its easier to just modify it manually, sometimes not. Im using a utility called HexCmp to find the differences between Hex Files, so I can pretty easily revert specific differences, although I have to go through every expanded pointer. For big codes you dont want to parse through, although you still have to convert coordinates, its easier to just use the code and grab the modified setup and fix it. For small ones, its much easier to just find the memory offset and mod the original setup.
 
View user's profile Send private message Send e-mail
zoinkity
007
007


Joined: 24 Nov 2005
Posts: 1687

 PostPosted: Wed Dec 27, 2006 7:55 am    Post subject: Reply with quote Back to top

This is the order of files in memory:
stage background information - always static unless you move it with Krijy's code
clipping data
stage setup
stage-specific text
guard information
etc.

Change something at the bottom of the list and everything above it moves. Altering a setup file will inevitably move around dozens of addresses. The editor does streamline most setup file information, so under no circumstances expect the two to match.
_________________
(\_/) Beware
(O.o) ze
(> <) Hoppentruppen!
 
View user's profile Send private message Send e-mail
00zero
Agent
Agent


Joined: 10 Jan 2007
Posts: 32

 PostPosted: Sun Feb 11, 2007 2:13 pm    Post subject: Reply with quote Back to top

i want to get the clipping data and the tile data for each level so i can plot them out along with the exact preset locations and rotations.

can you tell me where the static locations of the clipping and room data (boundaries?) are, and what format are they in?

i'm assuming that this data can be grabbed at any time, and when a stage loads, it just gets pointed to. is that correct?
 
View user's profile Send private message Send e-mail
Display posts from previous:   
Post new topic   Reply to topic    ShootersForever.com Forum Index -> Q-Lab Hacking Department All times are GMT - 8 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

Cobalt 2.0 BB theme/template by Jakob Persson.
Copyright © 2002-2004 Jakob Persson


Powered by BB © 01, 02 BB Group

 


Please Visit My Other Sites: GoldenEyeForever.com | GrandTheftAutoForever.com

Got kids? Check out my Dora The Explorer site with games and coloring pages!

Our forums feature Nintendo 64 games, GoldenEye 007 N64 New Maps and Missions, GoldenEye Cheats, N64 Emulator, Gameshark, GoldenEye Multiplayer and more!

[ Privacy Policy ]