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


Coordinates, Room Pointers, & Memory Allocations

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


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

 PostPosted: Mon Aug 14, 2006 3:05 am    Post subject: Coordinates, Room Pointers, & Memory Allocations Reply with quote Back to top

If you have any questions, please feel free to ask me about them.

Finding Your Coordinates & Room Pointer
A Tutorial Written by Wreck
---------------------------

This tutorial is a step-by-step walkthrough of how you can find your in-stage coordinates & room pointer, which can then be used to place characters and objects in a level. However, this data will need further modification to work correctly if you plan on creating your own setup file from scratch. I have other tutorials to help with that, but let's not worry about it until you've learned how to locate your character. Let's get started...


*note: all addresses and values are according to the NTSC GoldenEye ROM.


Step 1: Begin Your Game

i) If you're using a GameShark or Action Replay, make sure to have the Code Generator activated prior to starting the game.
ii) Select any multiplayer stage and set your options as you like.
iii) Enter the level and get ready for the next step.

*note: In order to follow along with this tutorial, be sure to use the "Slappers Only!" weapon set. Remembering to select it will save you a big headache, because certain things won't match up with the examples given. Although it is not necessary to use that specific weapon set, it does reduce the amount of coordinate sets loaded into the memory, making it easier for you to navigate through it and locate your character(s).


Step 2: Player Data

i) When a character is in a position you like, go into the Memory Editor (or view the savestate for Emulation).
ii) Select 'Go To Address' and enter in one of the following addresses...

For Player #1: 80079EE0
For Player #2: 80079EE4
For Player #3: 80079EE8
For Player #4: 80079EEC

iii) Depending on which character's coordinates you wish to find, choose the correct one from the above list.
iV) Write down the address listed in the memory and continue on to Step 3.

*note: In order to follow along with this tutorial, be sure to use the "Slappers Only!" weapon set.

An example:

When playing the Facility in 4-Player mode, the above addresses should contain the following redirection addresses...

For Player #1: 800C7B60
For Player #2: 800CA5E0
For Player #3: 800CD060
For Player #4: 800CFAE0


Step 3: Simple Addition

i) Open up your PC Calculator, located under your accessories folder.
ii) Under 'View', change the settings to 'Scientific'.
iii) Click on the 'Hex' option, it will light up.
iv) Copy+paste in the address for the player you've selected.
v) Press the addition button, marked as a '+' sign.
vi) Enter in the value 'A8'.
vii) Press the equal button, marked as an '=' sign.
iix) Copy the new total and paste it into your notepad file.

*note: In order to follow along with this tutorial, be sure to use the "Slappers Only!" weapon set.

An example:

In the Facility 4-Player mode, your results should match the following...

For Player #1: 800C7B60 + A8 = 800C7C08
For Player #2: 800CA5E0 + A8 = 800CA688
For Player #3: 800CD060 + A8 = 800CD108
For Player #4: 800CFAE0 + A8 = 800CFB88


Step 4: Look It Up

i) Armed with your new address, search it up in the memory.
ii) There you will find the address that directs you to your in-stage coordinates.
iii) Type it out into your notepad file.

*note: In order to follow along with this tutorial, be sure to use the "Slappers Only!" weapon set.

An example:

In the Facility 4-Player mode, your results should match the following...

For Player #1: 8006A424
For Player #2: 8006A458
For Player #3: 8006A48C
For Player #4: 8006A4C0


Extra Step: Straight to the Point

i) To get right to the coordinates, we can use the PC Calculator once more for some quick addition.
ii) Open up your PC Calculator, located under your accessories folder.
iii) Under 'View', change the settings to 'Scientific'.
iv) Click on the 'Hex' option, it will light up.
v) Copy+paste in the address for the player you've selected.
vi) Press the addition button, marked as a '+' sign.
vii) Enter in the value '8'.
iix) Press the equal button, marked as an '=' sign.
ix) Copy the new total and paste it into your notepad file.

*note: In order to follow along with this tutorial, be sure to use the "Slappers Only!" weapon set.

An example:

This step can be bypassed once you know more about the coordinates. Normally, the address you had before this step pointed you to the object type ID, which is followed by another address which notes where your in-stage appearance data is stored. To avoid confusion, I thought it best to skip by them for now. Adding the hex value '8' to your addresses will put you right at the coordinates. In the Facility 4-Player mode, your results should match the following...

For Player #1: 8006A42C
For Player #2: 8006A460
For Player #3: 8006A494
For Player #4: 8006A4C8


Step 5: Your Coordinates & Room Pointer

i) Now that you know where to look, search up the address in the memory.
ii) Here is where you'll find your character's in-stage coordinates & room pointer.
iii) Copy out the X, Y & Z coordinates, as well as the room pointer that immediately follows.

*note: In order to follow along with this tutorial, be sure to use the "Slappers Only!" weapon set.

**note: Jot down how many players were in the level while grabbing your coordinates, since you'll need to look up the room pointer at a later time when converting your data into a preset for a setup file. You can not simply use the address as is in a new setup file, due to it needed to be coded to work for all player amounts. You are able to use it when deciding where something should load when modifying a ready-made setup, however. If that is your wish, you should definitely be playing in 4-Player mode. If you don't have that many controllers at your disposal, use 2-Players and add the hex value '5500' onto each of your room pointers to make up for the difference between them. The "Enable All Players" code will adjust it to work for any amount of people playing in your map. Note how many characters were participating when the data was recorded. The best thing to do is to always play with either 2 or 4-Players, to make it easier to remember. I prefer two, myself.

An example:

Since your current coordinates change depending on where you are, it is hard to give a good example. However, I will atleast show you exactly where that information is located. In the Facility 4-Player mode, your coordinates would be here...

For Player #1
X: 8006A42C - 8006A42F (Example: 44 FF 2F 3B)
Y: 8006A430 - 8006A433 (Example: C3 32 51 B6)
Z: 8006A434 - 8006A437 (Example: 43 78 A8 41)
Room Pointer: 8006A438 - 8006A43B (Example: 801D51BC)

For Player #2
X: 8006A460 - 8006A463 (Example: 42 E3 1B 61)
Y: 8006A464 - 8006A467 (Example: 43 C1 AA 1C)
Z: 8006A468 - 8006A46B (Example: C4 6F 20 19)
Room Pointer: 8006A46C - 8006A46F (Example: 801D76E4)

For Player #3
X: 8006A494 - 8006A497 (Example: 44 10 6D AD)
Y: 8006A498 - 8006A49B (Example: C3 80 F1 DB)
Z: 8006A49C - 8006A49F (Example: 45 23 56 34)
Room Pointer: 8006A4A0 - 8006A4A3 (Example: 801C5B0C)

For Player #4
X: 8006A4C8 - 8006A4CB (Example: 44 7D 37 49)
Y: 8006A4CC - 8006A4CF (Example: C3 80 F1 DB)
Z: 8006A4D0 - 8006A4D3 (Example: 44 5E 8C 59)
Room Pointer: 8006A4D4 - 8006A4D7 (Example: 801D71E4)


Final: Conclusion

i) Make sure to type out all of your coordinates and room pointers from the stage you're working on.
ii) Copy+paste will save a lot of time and works on the PC Calculator.
iii) You can round off your coordinates, they won't be effected dramatically.
iv) Be sure to read through the Preset Coordinates Expansion Conversion Tutorial to convert your coordinates.
v) Also read through the Plinkdata Room Pointer Expansion Conversion Tutorial to complete your presets.
vi) Enjoy creating the setup file for your stage.

Other tutorials are available here...
http://wiki.dotshell.net/index.php?title=Preset_Coordinates_Expansion_Conversion
_________________

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


Joined: 24 Nov 2005
Posts: 1684

 PostPosted: Sat Aug 19, 2006 10:14 am    Post subject: Reply with quote Back to top

Solo- another method, usually used in-game
To grab Bond's coordinates from Bond's data:
1: go to address 8007A0B0

2: punch the address there into code generator.

3: From here, go down 0xA8 lines. That's 21 lines on-screen. The address should start 8006- on NTSC games

-or-

go down 0x28 lines from the BONDdata pointer and forgo 8006 altogether.


This is the local position data for Bond.


Last edited by zoinkity on Thu Aug 24, 2006 5:42 am; edited 1 time in total
 
View user's profile Send private message Send e-mail
SubDrag
Administrator
Administrator


Joined: 16 Aug 2006
Posts: 6118

 PostPosted: Sat Aug 19, 2006 3:11 pm    Post subject: Reply with quote Back to top

This is an old trick, I believe by Kong K Rool, whatever he goes by now. Search for 1540 decimal. Look for the one at around 8006. It'll have the coords a tiny bit after.
 
View user's profile Send private message
zoinkity
007
007


Joined: 24 Nov 2005
Posts: 1684

 PostPosted: Thu Aug 24, 2006 5:44 am    Post subject: Reply with quote Back to top

Here's the easiest way of all:

Use this program:
http://www.geocities.com/nefariousdogooder/downloads/GEpos.zip

You need a computer with a parallel port, your GS/AR, and a cable. This spits out your position in both normal and unexpanded format for any region.
If it doesn't do it for some reason, let me know.
_________________
(\_/) Beware
(O.o) ze
(> <) Hoppentruppen!
 
View user's profile Send private message Send e-mail
R. Solaris
Agent
Agent


Joined: 29 Aug 2006
Posts: 6
Location: New Jersey

 PostPosted: Wed Aug 30, 2006 5:50 am    Post subject: Doing this on an Emulator. Reply with quote Back to top

Currently I don't have my N64 as my old one broke and a new one is shipping to me, and I use my computer more often, is there anyway to find the coordinates and stuff with Project 64?
 
View user's profile Send private message AIM Address Yahoo Messenger MSN Messenger
dudeman
Agent
Agent


Joined: 23 Aug 2006
Posts: 44
Location: UK

 PostPosted: Wed Aug 30, 2006 11:03 am    Post subject: Reply with quote Back to top

Well, I'm also finding it a little tricky with Nemu64.I've not found a universal "Always see health bar", code, but I got a few level codes on Nemu64(, which doesn't work well for me). First real memory editing. I also found player exists codes, but don't work on other emulators. Can play single player multi maps!

Temple, Complex, Library, Basement & Stack
1p always see health
800A7458 0000

Caves
1p always see health
800D9458 0000

Facility
1p always see health
800C7C58 0000

Bunker
1p always see health
800B8C58 0000
 
View user's profile Send private message
R. Solaris
Agent
Agent


Joined: 29 Aug 2006
Posts: 6
Location: New Jersey

 PostPosted: Wed Aug 30, 2006 11:43 am    Post subject: Reply with quote Back to top

Nice Job, I'm trying to find a way to get Aztec Complex and Control into Multiplayer for my GE Netplay Tornament upcomming soon.
 
View user's profile Send private message AIM Address Yahoo Messenger MSN Messenger
bmw
Hacker
Hacker


Joined: 04 Jan 2006
Posts: 1366
Location: Michigan

 PostPosted: Sat Nov 22, 2008 9:44 pm    Post subject: Reply with quote Back to top

Wreck's information on memory allocations:
-----------------------------------------------------
While working on some new multiplayer maps, I've been required to make modifications to the memory allocations. Why is this? There's two main reasons. The first is to help reduce blackouts, by increasing the amount of memory the background uses. And the second, which has been an issue with most of the new multi's, is to correct a graphical error that can occur, usually while using explosives. This was a big annoyance in my Bunker i map. Thankfully, by tweaking the values, I've been able to correct it. As well, previous levels that were plagued with blackouts can be helped. It's all a matter of playing with the allocations and checking your results.

First, I'll list what each of them determine. I likely don't have the complete technical details, only what I've noticed from testing. If anyone can describe them properly, please do. It'll benefit all of us.


-ml: Unknown (Always Zero)
-me: Unknown (Always Zero)
-mgfx: In-Stage Elements?
-mvtx: Destructive Elements? (Smoke, Flame, Sparks, etc)
-mt: Texture
-ma: Background


Here are all of the entries and their locations in the 21990 Index...

Some interesting things to note...
a) Cradle comes before Caverns.
b) Facility MP falls between Caverns MP & Egypt MP.
c) Caves follows Library / Basement / Stack.
d) All MP's have an -mvtx of 100.
e) Citadel is not setup for multi.


21: Dam @ 00 7CE0
-ml = 0
-me = 0
-mgfx = 70
-mvtx = 50
-mt = 625
-ma = 275
-----------
total = 1020



22: Facility @ 00 7D0C
-ml = 0
-me = 0
-mgfx = 70
-mvtx = 50
-mt = 650
-ma = 160
-----------
total = 930



23: Runway @ 00 7D38
-ml = 0
-me = 0
-mgfx = 100
-mvtx = 50
-mt = 610
-ma = 300
-----------
total = 1060



24: Surface i @ 00 7D64
-ml = 0
-me = 0
-mgfx = 70
-mvtx = 50
-mt = 600
-ma = 300
-----------
total = 1020



09: Bunker i @ 00 7D90
-ml = 0
-me = 0
-mgfx = 100
-mvtx = 50
-mt = 700
-ma = 150
-----------
total = 1000



14: Silo @ 00 7DBC
-ml = 0
-me = 0
-mgfx = 70
-mvtx = 50
-mt = 660
-ma = 150
-----------
total = 930



1A: Frigate @ 00 7DE8
-ml = 0
-me = 0
-mgfx = 70
-mvtx = 50
-mt = 750
-ma = 225
-----------
total = 1095



2B: Surface ii @ 00 7E14
-ml = 0
-me = 0
-mgfx = 100
-mvtx = 50
-mt = 550
-ma = 350
-----------
total = 1050



1B: Bunker ii @ 00 7E40
-ml = 0
-me = 0
-mgfx = 100
-mvtx = 50
-mt = 725
-ma = 150
-----------
total = 1025



16: Statue @ 00 7E6C
-ml = 0
-me = 0
-mgfx = 70
-mvtx = 50
-mt = 750
-ma = 220
-----------
total = 1090



18: Archives @ 00 7E98
-ml = 0
-me = 0
-mgfx = 70
-mvtx = 50
-mt = 600
-ma = 250
-----------
total = 970



1D: Streets @ 00 7EC4
-ml = 0
-me = 0
-mgfx = 60
-mvtx = 40
-mt = 635
-ma = 290
-----------
total = 1025



1E: Depot @ 00 7EF0
-ml = 0
-me = 0
-mgfx = 60
-mvtx = 50
-mt = 710
-ma = 300
-----------
total = 1120



19: Train @ 00 7F1C
-ml = 0
-me = 0
-mgfx = 100
-mvtx = 50
-mt = 600
-ma = 200
-----------
total = 950



25: Jungle @ 00 7F48
-ml = 0
-me = 0
-mgfx = 70
-mvtx = 50
-mt = 500
-ma = 200
-----------
total = 820



17: Control @ 00 7F74
-ml = 0
-me = 0
-mgfx = 70
-mvtx = 50
-mt = 671
-ma = 200
-----------
total = 991



29: Cradle @ 00 7FA0
-ml = 0
-me = 0
-mgfx = 100
-mvtx = 50
-mt = 650
-ma = 250
-----------
total = 1050



27: Caverns @ 00 7FCC
-ml = 0
-me = 0
-mgfx = 100
-mvtx = 50
-mt = 530
-ma = 250
-----------
total = 930



1C: Aztec @ 00 7FF8
-ml = 0
-me = 0
-mgfx = 60
-mvtx = 40
-mt = 855
-ma = 135
-----------
total = 1090



20: Egypt @ 00 8024
-ml = 0
-me = 0
-mgfx = 100
-mvtx = 50
-mt = 600
-ma = 250
-----------
total = 1000



28: Citadel @ 8050
-ml = 0
-me = 0
-mgfx = 100
-mvtx = 50
-mt = 650
-ma = 150
-----------
total = 950



36: Cuba (Ending) @ 00 807C
-ml = 0
-me = 0
-mgfx = 100
-mvtx = 50
-mt = 300
-ma = 300
-----------
total = 750



5A: Menu Folders (believed to be) @ 00 80A8
-ml = 0
-me = 0
-mgfx = 80
-mvtx = 20
-mt = 646
-ma = 001
-----------
total = 747



5B: Unknown @ 00 80D0
-ml = 0
-me = 0
-mgfx = 60
-mvtx = 20
-mt = 500
-ma = 001
-----------
total = 581



63: Unknown @ 00 80F8
-ml = 0
-me = 0
-mgfx = 60
-mvtx = 20
-mt = 500
-ma = 001
-----------
total = 581



26: Temple @ 00 8120
-ml = 0
-me = 0
-mgfx = 130
-mvtx = 100
-mt = 390
-ma = 100
-----------
total = 720



1F: Complex @ 00 814C
-ml = 0
-me = 0
-mgfx = 130
-mvtx = 100
-mt = 400
-ma = 100
-----------
total = 730



30: Library @ 00 8178
-ml = 0
-me = 0
-mgfx = 130
-mvtx = 100
-mt = 400
-ma = 100
-----------
total = 730



2D: Basement @ 00 81A4
-ml = 0
-me = 0
-mgfx = 130
-mvtx = 100
-mt = 400
-ma = 100
-----------
total = 730



2E: Stack @ 00 81D0
-ml = 0
-me = 0
-mgfx = 130
-mvtx = 100
-mt = 400
-ma = 100
-----------
total = 730



32: Caves @ 00 81FC
-ml = 0
-me = 0
-mgfx = 130
-mvtx = 100
-mt = 400
-ma = 300
-----------
total = 930



1AB: Bunker ii Multi @ 00 8228
-ml = 0
-me = 0
-mgfx = 130
-mvtx = 100
-mt = 550
-ma = 170
-----------
total = 950



1A8: Archives Multi @ 00 8254
-ml = 0
-me = 0
-mgfx = 80
-mvtx = 100
-mt = 550
-ma = 250
-----------
total = 980



1B7: Caverns Multi @ 00 8280
-ml = 0
-me = 0
-mgfx = 130
-mvtx = 100
-mt = 440
-ma = 220
-----------
total = 890



1B2: Facility Multi @ 00 82AC
-ml = 0
-me = 0
-mgfx = 90
-mvtx = 100
-mt = 550
-ma = 230
-----------
total = 970



1B0: Egypt Multi @ 00 82D8
-ml = 0
-me = 0
-mgfx = 110
-mvtx = 100
-mt = 350
-ma = 400
-----------
total = 960



00: Placeholder (Bunker i) @ 00 8304
-ml = 0
-me = 0
-mgfx = 100
-mvtx = 50
-mt = 700
-ma = 400
-----------
total = 1250

-----------------------------------------------------------------------------------

And for further referrence, Solo to Multi Comparisons....

a) -ml & -me are never assigned anything more than zero.
b) -mgfx is increased by either 10, 20 or 30
c) -mvtx is always brought up to 100.
d) -mt is decreased, due to the larger texture count in the mission.
e) -ma is mostly raised, depending on the areas involved.

To make a multi allocation for a custom map, take the regular Stage ID and add 190 Hex. This will affect all player amounts for the level, not just 4-P. Examples - Bunker i: 09 = 199, Runway: 23 = 1B3, Streets: 1D = 1AD. If an MP version isn't available, the stage uses the data assigned to the original ID, like in Statue & Cradle.



Facility
-ml = 0 / 0
-me = 0 / 0
-mgfx = 70 / 90 (+20)
-mvtx = 50 / 100 (+50)
-mt = 650 / 550 (-100)
-ma = 160 / 230 (+70)
-----------
total = 930 / 970 (+40)



Bunker ii
-ml = 0 / 0
-me = 0 / 0
-mgfx = 100 / 130 (+30)
-mvtx = 50 / 100 (+50)
-mt = 725 / 550 (-175)
-ma = 150 / 170 (+20)
-----------
total = 1025 / 950 (-75)



Archives
-ml = 0 / 0
-me = 0 / 0
-mgfx = 70 / 80 (+10)
-mvtx = 50 / 100 (+50)
-mt = 600 / 550 (-50)
-ma = 250 / 250 (=)
-----------
total = 970 / 980 (+10)



Caverns
-ml = 0 / 0
-me = 0 / 0
-mgfx = 100 / 130 (+30)
-mvtx = 50 / 100 (+50)
-mt = 530 / 440 (-90)
-ma = 250 / 220 (-30)
-----------
total = 930 / 890 (-40)



Egypt
-ml = 0 / 0
-me = 0 / 0
-mgfx = 100 / 110 (+10)
-mvtx = 50 / 100 (+50)
-mt = 600 / 350 (-250)
-ma = 250 / 400 (+150)
-----------
total = 1000 / 960 (-40)

----------------------------
(info from zoinkity)
mgfx is the graphics buffer. In other words, amount dedicated to images.

mvtx is the rendered model buffer; in other words room models. Also affects the viewport allocation by extension, since there's only so much room before you overrun the following blocks into the stack pointer and TLB buffer.

Some technical stuff from when it was hacked:
Krijy's magic address is used as the base for pretty much everything. The -ma value above is multiplied by 0x400, added to the 80063BF0 value and stored to 80063C20; this also doubles as the initial offset to player's 2A80 worth of data. The current room allocation amount is copied to 80063C24.
-mgfx 800482E4 area allocated to general graphics (stuff caught by facemapper)
added to base address at 8008C230, stored to 8008C234; add again, store to 8008C238
-mvtx 800482F4 area dedicated to room models
*4; subtracted from base at 80063BF8, store to 63bf4
-mt 800482EC
-ma 800482F0
 
View user's profile Send private message Visit poster's website
Wreck
Administrator
Administrator


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

 PostPosted: Fri May 18, 2018 1:46 pm    Post subject: Reply with quote Back to top

Very old thread, but I figured this would be the best place to ask these questions...

Were the IDs for 005A, 005B and 0063 ever determined? 5A certainly impacts the intro and menus, but (at least not on emulator) can I see what 5B and 63 are affecting. Does anyone know?

I have listed that the 0000 ID entry affects empty Bunker i, so can we assume this is just a default to use in the case the level ID being played is not present in the list?

I see there is potential room for three additional level IDs + RAM addresses for memory. There is 0x18 null space between the memory list and an FFFFFFFF. Could this be utilized for more memory (like say solo into multi, needing different memory settings)?

Edit: I can see references to 800241BC (start of memory list) in ROM at 006E30 on.


Edit ii: Maybe I am crazy, but I think those spots are still valid and usable, but the 0000 ID ends the list. When I put custom entries for Statue and Cradle MP before the 0000 ID entry, they actually appear to work. I will need to test further. This means we may possibly get an extra 3 levels supported with their own memory. (Right now I am sharing the RAM address for Library, Basement and Stack, so I don't need to write the memory strings in anywhere).
 
View user's profile Send private message Visit poster's website
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 ]