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


Joined: 14 Dec 2005 Posts: 7244 Location: Ontario, Canada  |
Posted: Mon Aug 14, 2006 3:05 am Post subject: Coordinates, Room Pointers, & Memory Allocations |
 |
|
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 | TWITTER/X | FACEBOOK | VAULT | MOD DB | RHDN |
|
|
|
|
|
 |
 |
 |
 |
 |
zoinkity 007


Joined: 24 Nov 2005 Posts: 1729
 |
Posted: Sat Aug 19, 2006 10:14 am Post subject: |
 |
|
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 |
|
|
|
|
|
 |
 |
 |
 |
 |
SubDrag Administrator

Joined: 16 Aug 2006 Posts: 6168
 |
Posted: Sat Aug 19, 2006 3:11 pm Post subject: |
 |
|
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. |
|
|
|
|
|
 |
 |
 |
 |
 |
zoinkity 007


Joined: 24 Nov 2005 Posts: 1729
 |
Posted: Thu Aug 24, 2006 5:44 am Post subject: |
 |
|
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! |
|
|
|
|
|
 |
 |
 |
 |
 |
R. Solaris Agent

Joined: 29 Aug 2006 Posts: 6 Location: New Jersey  |
Posted: Wed Aug 30, 2006 5:50 am Post subject: Doing this on an Emulator. |
 |
|
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? |
|
|
|
|
|
 |
 |
 |
 |
 |
dudeman Agent


Joined: 23 Aug 2006 Posts: 44 Location: UK  |
Posted: Wed Aug 30, 2006 11:03 am Post subject: |
 |
|
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 |
|
|
|
|
|
 |
 |
 |
 |
 |
R. Solaris Agent

Joined: 29 Aug 2006 Posts: 6 Location: New Jersey  |
Posted: Wed Aug 30, 2006 11:43 am Post subject: |
 |
|
Nice Job, I'm trying to find a way to get Aztec Complex and Control into Multiplayer for my GE Netplay Tornament upcomming soon. |
|
|
|
|
|
 |
 |
 |
 |
 |
bmw Hacker


Joined: 04 Jan 2006 Posts: 1367 Location: Michigan  |
Posted: Sat Nov 22, 2008 9:44 pm Post subject: |
 |
|
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 |
|
|
|
|
|
 |
 |
 |
 |
 |
Wreck Administrator


Joined: 14 Dec 2005 Posts: 7244 Location: Ontario, Canada  |
Posted: Fri May 18, 2018 1:46 pm Post subject: |
 |
|
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). |
|
|
|
|
|
 |
 |
 |
 |
 |
|
 |
 |
 |
 |
|
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
|
|
|
 |