Looks like RARE left a nice little nugget in Goldeneye

Here is an article about the find <a href="https://goldeneye.detstar.com/citadelfound/index.asp">CLICKY</a>

And here is all the tech stuff <a href="https://www.gscentral.com/vb/showthread.php?s=&threadid=6500&perpage=30&pagenumber=1">Tech clicky</a>

This is a post by Krijy over at gscentral

I've recently been working on level modifiers in GoldenEye, using the same method as I did in Perfect Dark. The reason for doing so is to be able to view the walls and floors of any BETA levels, and see if any of them are Citadel. I'll start with the level modifier values, and show you which ones are unknown levels.

Level Modifier: (Hacked by Sport9130)

8002A8F7 00??

This forces the game to load the level represented by the last two digits. It works in both one player and multiplayer. Depending on whether or not you load a level up in one player or multiplayer, you have two different level setups (a good example is Facility).



code:--------------------------------------------------------------------------------Main Value: Code: Name:

09 sev Bunker 1
14 silo Silo
16 stat Statue Park
17 arec Control
18 arch Archives
19 tra Train
1A dest Frigate
1B sevb Bunker 2
1C azt Aztec
1D pete Streets
1E depo Depot
1F ref Complex
20 cryp Egyptian
21 dam Dam
22 ark Facility
23 run Runway
24 sevx Surface 1
25 jun Jungle
26 dish Temple
27 cave Caverns
28 cat Citadel
29 crad Cradle
2A sho ?
2B sevxb Surface 2
2C eld ?
2D imp Basement
2E ash Stacks
2F lue ?
30 ame Library
31 rit ?
32 oat Caves
33 ear ?
34 lee ?
35 lip ?
36 len Cuba
37 wax ?
38 pam ?
39 x ???--------------------------------------------------------------------------------


Example: 8002A8F7 0022

This will load Facility. If you load a level from the solo mission menu you will play the solo version of Facility. If you play any multiplayer level you will appear in the multiplayer version of Facility.

All levels that already have solo and multiplayer versions work perfectly. You can't play solo in any of the multiplayer only levels (with just this code), and you can't play in any of the solo only levels in multiplayer (the exceptions are Cradle and Statue Park, I'll get back to why these work later).

Level Emptier: (Hacked by SHiner & Laugh10704 and RSB)

8032332A 0001

This empties all solo levels of ememies and items when you load them. With this and the level code on, you can play solo in multiplayer only levels. With a "force two player" code on as well, you can play two-player in a solo only level. As far as I've gathered, this is how you've got most of the solo levels working in multiplayer? (Do correct me if I'm wrong).

Most of you probably known all this, so I'm going to tell you what I've found now. The codes that I have found allow you to change how a level is built up. A level is built up using several different files that have data about a specific thing from the level. These files have names that can be seen on the internal names list at around 80058DA0. In GoldenEye, a level is built up with a background data file (walls and floors), a collision detection file (the players contact with the walls and floor), and a setup file that contains information about everything that's put in the level when you play in it. Depending on whether or not you play in solo or multiplayer, the game loads one of two setup types (setup or mp_setup).

I'll take Facility as an example. When you play Facility in solo, the game will have defined that it loads up the level on the level list that has the value 22. When level 22 is loaded the following files are used:

bg/bg_ark_all_p.seg - background data
Tbg_ark_all_p_stanZ - collision detection
UsetuparkZ - solo level setup

Alternativly, if you load Facility up in multiplayer you'll get:

bg/bg_ark_all_p.seg - background data
Tbg_ark_all_p_stanZ - collision detection
Ump_setuparkZ - multiplayer level setup

All multiplayer levels have mp_setup files. Additionally, Cradle and Statue Park ALSO have mp_setup files, so that's why they work in multiplayer. They're fully working multiplayer levels, but Rare must have removed them at the last minute. All levels have normal setup files, apart from level x, which is currently shrouded in mystery.

If you only change the background data of a level you will still be in the level you're supposed to be in, but the level will look all glitchy, and you'll most likely be standing in an invisible room outside of the level. The same will happen if you change the collision detection. Changing the setup will change where the guards appear and the objects. Doing so ends up, more than usally, in the game freezing. I haven't found a way to change the mp_setup yet.

The Level Setup list:

The level setup list is located in the RAM at 80044490. It shows the level value, background data file, collision detection file, the level size and some other bits and pieces I haven't identified yet. Unlike Perfect Dark, the game doesn't refur to the level files as numbers, but points to their internal names located on the internal names list. Here's an example:

0022 8005 8970 8005 8984 3F44 BDEA etc...

The first value is the level value, the second part is a pointer towards facility's background data, and the third towards the collision detection. The last 8 digits are a 32bit value that represent the level size. By changing this up the level becomes smaller (but you and everything else become bigger), and by changing the value down the level is gigantic compared to the things that are in it. To change the level files simply redirect the pointers to the backgrounds and collision detection that you want from another level.

Setup locations:

The place in the memory where the setups have their pointers is at 80037508. These are the solo level setups. When you change these you change the setup that's loaded for a solo mission. You can point these towards mp_setups instead of normal solo setups. Doing so will load the ammo crates and some alarms intead of guns. When you pick up the alarms it says "Got a new weapon".

I suggest you look at the places I've mentioned in the memory to fully understand what I'm talking about.