General Boards => Mapping Tips/Guides => Topic started by: Tropicon on January 11, 2009, 07:08:22 pm

Title: How to find scroll and camera control codes
Post by: Tropicon on January 11, 2009, 07:08:22 pm
Say you want a code that will make the game's camera move wherever you want so you can take pictures.  Here's how.

First of all I'm going to assume you know the basics of code making.  The "is greater, is less, is equal" address hunting business.  If you don't then go back and learn that first because this is more of an intermediary to advanced lesson.

First for a test subject lets take Super Ghouls and Ghosts.  When the game starts on the first level immediately take your first scan.  Some code scanners don't like it if your next scan is for no change *coughcheatenginecough* so move Aurthur forward until the screen moves with him and search for a changed code of unknown value.  In other words tell the scanner you don't know the exact number and you don't know weather the new code is greater or less just different.  Ignore the scanners dirty look and move on.

Now that Aurthur is a few steps forward move him back the way he came until he's all the way at the back of the level and take another scan (same kind).  Kill the zombies that have popped up and move Aurthur forward slightly but not so far that the screen moves with him then take another scan only this time look for a value that hasn't changed.  Still standing in one spot kill a few zombies throw a few spears and do a few double jumps while preforming the same "no change" scan.  Now start doing the opposite, move Aurthur, and the camera view, forward scanning for changes as you go.

Once the scanner stops weeding out lots of codes with each step put all the codes you've got left into the place you normally put codes you're about to use and turn them all off.  For insurance purposes you may want to save the list, some codes might crash the game.  As for the value to set them to just use their current number.  Now turn the codes on one at a time and see if they do anything.  A smart coder knows that similar address will control similar things so you could try a bunch of the same addresses at once to save time.  Nix the addresses that do nothing save the ones that produce a somewhat useful result and move on.

Here's what I found:

7E19C518 immediate background won't move

7E19BD18 foreground won't move

These would be examples of X Y control codes.  The values have been locked on so a certain part of the map and nothing else shows.  You can manipulate them by changing the last two digits as with all codes and of course you now know to look for 7E19 when hunting similar codes.  This can be useful for getting pics of impossible to reach places when you know about what the last 2 digits should be but it's not very convenient and it's not what we were looking for.

unfortunately that's the breaks with this kind of code making, that is you strike out a lot or find a fatal code.  You can try again with a more advanced method I will explain next or use the same method with a different scanner.  The whole point of this was to move either the character, or the screen, but only one of the two.  Some games are more rigid then others.  If a the camera seems to move fluidly instead of being locked on you at all times you'll have an easer go.
Title: RE: How to find scroll and camera control codes
Post by: Tropicon on January 12, 2009, 02:16:38 pm
Let's go over a few more advanced searching techniques.  Once again the idea is to move the camera around and find the code address that controls that movement.  Any kind of movement will do even if it seems irrelevant.  Here are a few examples.

If a character can move the screen around while looking down or up.  If the screen moves away on it's own during a cut scene.  If another automated mechanism moves the screen like the character standing on a conveyor belt or elevator.

Let's try this with a game.  In Zero the Kamikaze Squirrel you can look around by holding the A button.  Start your scan with Zero standing still then use the look trick and scan for changed values as the camera moves forward....

I came up with this: 7E0E395C

Not very useful, it controls the camera but not in a usable way.  At least now we know the camera codes are on 7E0E or close to it.  So start a new scan but this time use the original method and hunt for codes while walking around.  After only a few scans you should find a bunch of codes around 7E0E.  Plug a few in see what you get....

Still a bunch of weirdness but now I came up with this: 7E0F8405

It makes the camera move forward and stop.  If a code looks it might have some potential, and this one does, it's worth your time to screw with by changing the last few digits.  A change to FF (the max) and nothing.  Maybe over the top?  Let's keep trying different values....

BOOM! At 7E0F8410 the screen scrolls forward stopping about halfway through the level.  It's a baby scroll code!  Now you have something to work with.  By changing the last 2 digits, or even the 3rd to last, you can eventually get this code to span the entire level for you.

Scroll codes as you can see are finicky.  Sometimes they work but they can also get you junk backgrounds or instantly kill your character.  Each game will have different rules about how you are and are not allowed to scroll.  But just keep looking for the source of the codes, and don't give up when a code looks like it might work with a little more tinkering.  Next I'll do camera control for 3D games in case you want great aerial views to make maps with.
Title: RE: How to find scroll and camera control codes
Post by: TerraEsperZ on January 12, 2009, 05:04:32 pm
This sounds like a few things I've tried, only much more advanced. I tried more than once to use built-in cheat finders in various emulators, looking for 'bigger than/smaller than/different' values while moving the camera around and I almost always ended up with no result after enough tries. It might be worth it to try again.

As you've said, such codes might not always be possible to find depending on how the game code is handling the scrolling and level data/graphic loading.


Current projects: Bucky O'Hare (NES), Metal Storm (NES), Clock Tower (SNES), Ristar-The Shooting Star (Gen), Sonic The Hedgehog (Gen), Sonic CD (Sega CD), Mega Man Zero (GBA), Battletoads (NES)
Title: RE: How to find scroll and camera control codes
Post by: Maxim on January 13, 2009, 02:18:49 am
The scrolling might not be increasing when you think it is; the "same or different" approach is the least specific and thus makes the least assumptions.

The idea that scroll variables are likely to be in the same area is not bad. but it's worth noting that there's absolutely no technical reason for this to be the case.
Title: RE: How to find scroll and camera control codes
Post by: DarkWolf on January 13, 2009, 03:25:32 pm
With a few games I've had some luck with moving the player's position instead of the camera.  It's not as good as moving the camera, but can still help.
Title: RE: How to find scroll and camera control codes
Post by: Peardian on January 13, 2009, 10:29:43 pm
I know in some games, moving your character off-camera downwards actually kills you due to how the engine works. I found this out the hardway in Yoshi Topsy-Turvy. I use Cheat Engine with it to warp around the room.

I might try screwing with the camera on Yoshi's Island some time, though I don't think I'll really have to.


YTT (34%) - WL4 (60%) - PM (34%)
Title: RE: How to find scroll and camera control codes
Post by: Tropicon on January 14, 2009, 11:29:18 am
As for weather or not scrolling is increasing you've got to remember it doesn't really matter as long as the view moves.  That's what you're trying to control.  Even if it isn't really happening you're still getting the pics you need.  And like I said it's all about tinkering to make the code into something you can use.

Moving player positions is actually a superior way to do this but since I assumed we're talking about platform games and not RPG's it can get you killed like Peardian said.  In fact all the scroll codes I made for Castlevania 4 do eventually kill Simon if left on.  Of course if it's an RPG and you can find a walk through walls code the game is yours.

Speaking of Cheat Engine it's required for *drum roll* 3D aerial maps, my next segment.

Say you want to map a 3D game by taking pics from a great hight.  Well it's easier said then done but the basic premise is to keep in mind that in a 3D game the camera is a point in space just like it would be in reality, so all you have to do is move that point.  First of all go out to the net and find Cheat Engine, its another code finder program.  Cheat Engine while possessing a simple interface is quite complicated and can find any code you want.  That said it's really only for experts and I have no business messing with it but since there's really no other way let's move on.

First of all you need to find a game that has free camera control.  That means you press a button and get to move the camera around while holding it.  Let's take A Bug's Life for N64, it has one of those.  By holding C UP you can freely move the view left, right, up, or down.  Once you get the basics of how Cheat Engine works lock it on to the game to start code hunting like you would with any other code finder.

Take your first scan with the camera just sitting behind Flik.  Now move the camera up to a higher view and search for a greater value.  Now we don't know that the value has gone up.  It might have gone down, or changed in some other way?  But you can look in that direction after your first attempt fails.  Keep moving the camera up and down looking for greater and lesser values until you've got a small enough amount of code to work with then filter till you get something useful, just like before.

What I came up with: 5658DE89, 4 bytes.

Cheat Engine is very convenient this way.  Watch the value of your new code change as the camera moves around.  Starting out the value is 48, move the camera up and it climbs to 128.  OK good, so we know it's going up at a smooth rate, other games might not be so nice.  If 128 is as high as it likes to go let's set it to 328.  Now C Up makes the camera zoom high above Flik.  Keep going up with the code and the camera keeps going up too.  At 1000 you get a view of the entire field.

As I said before the camera won't always cooperate.  I've been trying this in Majora's Mask with no luck yet, but at least you can see the 3D games can be hacked just like the 2D ones.  Again; your goal is to get the camera or view to move then find the code responsible and take control.
Title: RE: How to find scroll and camera control codes
Post by: Peardian on January 17, 2009, 02:50:35 pm
The only downside to using cheat codes to manipulate the camera for 3D games is that even if you manage to get yourself complete control of camera movement, the size of the map you're able to capture is limited by the size of the emulator screen. Not only that, but the bigger the room, the smaller everything will have to be to fit inside. And of course, there's perspective distortion to handle.

That's why I rip the VRML data and render with a 3D Modeling program to give me complete control over not only the angle but the level of distortion or lack thereof. Once I finish Paper Mario, I do plan on mapping several other N64 games such as Space Station Silicon Valley, Ocarina of Time, Majora's Mask, and the Target/Platforms stages in Super Smash Bros. I imagine that places like Hyrule Field and Termina Field would end up with incredibly tiny details if done with a screenshot.


YTT (34%) - WL4 (60%) - PM (36%)
Title: RE: How to find scroll and camera control codes
Post by: Tropicon on January 17, 2009, 03:30:13 pm
Oh don't get me wrong it's a complete pain in the ass.  The camera jitters, the lighting changes, and if it's a big area you're going to be taking hundreds of shots to put it together.  I can't say I've ever done it perfectly but I've gotten close enough.

What's this VRML program?  I'd love to take a crack at Mischief Makers or Duke Nukem Zero Hour.  Maybe even Turok 3