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


Joined: 07 Dec 2017 Posts: 50
 |
Posted: Mon Sep 14, 2026 5:45 pm Post subject: Documentation for Ejected Casings & Gun Block Details |
 |
|
I decided to look into the Ejected Casings stuff to see how feasible it'd be to add more since the game has two for the Assault Rifle ammo type (KF7 uses Rifle Casing - GcartrifleZ, AR33 & Sniper Rifle use Rifle Casing Alt - GcartblueZ), here is what I've discovered through hex editing and following the RAM addresses:
EJECTED CASINGS TABLE:
Hex Address in 21990: 116DC - 11704
RAM Address: 8003246C - 80032494
RAM for Slot
RAM for File Name
Immediately after the table is the Gun Block Details starting with Gun 00.
Slot 00: Pistol Casing
Hex Address in 21990: 116DC
RAM Address: 8003246C
Slot 01: Rifle Casing
Hex Address in 21990: 116E4
RAM Address: 80032474
Slot 02: Rifle Casing Alt
Hex Address in 21990: 116EC
RAM Address: 8003247C
Slot 03: Shotgun Shell
Hex Address in 21990: 116F4
RAM Address: 80032484
Slot 04: None
Hex Address in 21990: 116FC
RAM Address: 8003248C
Swapping the slots is the same as swapping the file names, Ex:
Slot 00 8003CB60 80053760 -> 8003CB80 80053760
Slot 01 8003CB80 8005376C -> 8003CBC0 8005376C
Slot 02 8003CBA0 80053778 -> 8003CB60 80053778
Slot 03 8003CBC0 80053784 -> 8003CBA0 80053784
This results in every weapon set to "8003CB60 Pistol Casing" jumping to Slot 02 to use Rifle Casing Alt rather than still using Slot 00, so the specific RAM address for the slots are what is being searched for, if not found then the game freezes. Custom slots work, just the usual stuff of needing to duplicate the data somewhere else and manually hex editing the desired weapon's Ejected Casings setting to point to the new spot since the editor uses a drop down list based on the original table.
If there is a duplicate slot, the first one & it's accompanying file name is used.
Using "00000000" as the slot acts as a cutoff, even if there are additional slots used afterwards.
Continuing the previous ex:
Slot 00 8003CB60 80053760 -> 8003CB80 80053760
Slot 01 8003CB80 8005376C -> 8003CBC0 8005376C
Slot 02 8003CBA0 80053778 -> 00000000 80053778
Slot 03 8003CBC0 80053784 -> 8003CBA0 80053784
This results in only the weapons set to "8003CB80 Rifle Casing" and "8003CBC0 Shotgun Shell" continuing to eject cases, Pistol & Rifle Casings in this ex. Everything else is skipped because they're found after the slot intended for None.
Because of this, if you don't have any of the five slots set to "00000000" then the game freezes from trying to load garbage data as additional slots. Because the game skips whatever slots are remaining, you don't have to worry about missing RAM addresses but it's much easier and safer to just use the Editor to set weapons to "00000000 None"
EJECTED CASINGS FILE NAMES:
Hex Address in 21990: 329D0 - 32A00
RAM Address: 80053760 - 80053790
GcartridgeZ
Hex Address in 21990: 329D0
RAM Address: 80053760
GcartrifleZ
Hex Address in 21990: 329DC
RAM Address: 8005376C
GcartblueZ
Hex Address in 21990: 329E8
RAM Address: 80053778
GcartshellZ
Hex Address in 21990: 329F4
RAM Address: 80053784
(empty name)
Hex Address in 21990: 32A00
RAM Address: 80053790
(empty name) is not a valid file name, the game works simply because it's not actually spawning anything when a weapon's Ejected Casing is set to "00000000 None"
Renaming existing Gcart_Z files works as expected, changing the file name to point to a new file works as expected where the game only freezes when the new model is not designed to be an Ejected Casing model.
EJECTED CASINGS STUFF:
Hex Address in 21990: 1BDD0 - 1BE50
RAM Address: 8003CB60 - 8003CBE0
GcartridgeZ
Hex Address in 21990: 1BDD0
RAM Address: 8003CB60
GcartrifleZ
Hex Address in 21990: 1BDF0
RAM Address: 8003CB80
GcartblueZ
Hex Address in 21990: 1BE10
RAM Address: 8003CBA0
GcartshellZ
Hex Address in 21990: 1BE30
RAM Address: 8003CBC0
Located with other stuff, has at least one section that's a float and I think "8003C728" is some kind of behavior because the surrounding groups use "8003C714" instead along with some other values. Could not immediately notice a difference when changing the float.
Using the Footsteps Patch's Memory Peek/Poke feature:
All of this can be messed with but you have to reload the level for the changes to take effect. The exception is editing the Gun Block Details to change what Ejected Casing a weapon looks for because that's reloaded every time you switch weapons like the file name for the model (this is how Mario Characters has recolored hands for the Play as Cheats)
What I could not figure out was relocating the table for extensions.
458E2-458E5 in the ROM has a 80032464 but it is NOT the table. Don't know what it changes but it ain't that.
It is possible that it might be like some stuff where the RAM address is split so 8003 (or maybe even 8004 since sometimes it's higher like that) and then 2464 in a different spot, which I don't know how to figure that out. If someone else could find it, that'd be great. Theoretically that should be the only hurdle for extending the system, the Editor does it's usual thing of failing to load a chosen option from the dropdown menu but otherwise leaves it alone until you change it.
On a slightly different note, Perfect Dark uses Rifle Casing Alt with the file name still being named GcartblueZ while GcartrifleZ got replaced with a different ammo type. You'd expect it to be the other way around but no.
EDIT- September 16, 2026:
I've looked into the Gun Block Details since it's immediately after the Ejected Casings Table. Each section is 0x70 long
0x00 Muzzle Flash Extension
0x04 In-game Pos 1
0x08 In-game Pos 2
0x0C In-game Pos 3
0x10 Aim Shifts - Up
0x14 Aim Shifts - Down
0x18 Aim Shifts - L/R
0x1C Ammo Type
0x20 Magazine Size
0x22 Weapon Firing Rate - Automatic
0x23 Weapon Firing Rate - Single Fire
0x24 Object Penetration Count
0x25 Sound Trigger Rate
0x26 Sound (+0x01) [FFFF is represented with 0000 because that's "-1" in Hex]
0x28 Ejected Casings
0x2C Destruction Amount
0x30 Inaccuracy
0x34 Zoom
0x38 Crosshair Speed
0x3C Weapon Aim Speed
0x40 Sway
0x44 Recoil Speed
0x48 Recoil Back
0x4C Recoil Up
0x50 Bolt
0x54 Volume to AI, Min
0x58 Volume to AI, Max
0x5C Rapid-Fire Alertness
0x60 {unknown, always 40000000 aka 2.00 in Float}
0x64 {unknown, always 40800000 aka 4.00 in Float}
0x68 Force of Impact
0x6C Item Bitflags
Gun 00: nothing (no pickup)
Hex Address in 21990: 11704
RAM Address: 80032494
Gun 01: Unarmed GfistZ
Hex Address in 21990: 11774
RAM Address: 80032504
Gun 02: Hunting Knife GknifeZ
Hex Address in 21990: 117E4
RAM Address: 80032574
Gun 03: Throwing Knife GthrowknifeZ
Hex Address in 21990: 11854
RAM Address: 800325E4
Gun 04: PP7 Special Issue GwppkZ
Hex Address in 21990: 118C4
RAM Address: 80032654
Gun 05: PP7 (silenced) GwppksilZ
Hex Address in 21990: 11934
RAM Address: 800326C4
Gun 06: DD44 Dostovei Gtt33Z
Hex Address in 21990: 119A4
RAM Address: 800326C4
Gun 07: Klobb GskorpionZ
Hex Address in 21990: 11A14
RAM Address: 800327A4
Gun 08: KF7 Soviet Gak47Z
Hex Address in 21990: 11A84
RAM Address: 80032814
Gun 09: ZMG (9mm) GuziZ
Hex Address in 21990: 11AF4
RAM Address: 80032884
Gun 0A: D5K Deutsche Gmp5kZ
Hex Address in 21990: 11B64
RAM Address: 800328F4
Gun 0B: D5K (silenced) Gmp5ksilZ
Hex Address in 21990: 11BD4
RAM Address: 80032964
Gun 0C: Phantom GspectreZ
Hex Address in 21990: 11C44
RAM Address: 800329D4
Gun 0D: US AR33 Assault Rife Gm16Z
Hex Address in 21990: 11CB4
RAM Address: 80032A44
Gun 0E: RC-P90 Gfnp90Z
Hex Address in 21990: 11D24
RAM Address: 80032AB4
Gun 0F: Shotgun GshotgunZ
Hex Address in 21990: 11D94
RAM Address: 80032B24
Gun 10: Automatic Shotgun GautoshotZ
Hex Address in 21990: 11E04
RAM Address: 80032B94
Gun 11: Sniper Rifle GsniperrifleZ
Hex Address in 21990: 11E74
RAM Address: 80032C04
Gun 12: Cougar Magnum GrugerZ
Hex Address in 21990: 11EE4
RAM Address: 80032C74
Gun 13: Golden Gun GgoldengunZ
Hex Address in 21990: 11F54
RAM Address: 80032CE4
Gun 14: Silver PP7 GsilverwppkZ
Hex Address in 21990: 11FC4
RAM Address: 80032D54
Gun 15: Gold PP7 GgoldwppkZ
Hex Address in 21990: 12034
RAM Address: 80032DC4
Gun 16: Military Laser GlaserZ
Hex Address in 21990: 120A4
RAM Address: 80032E34
Gun 17: Watch Laser GwatchlaserZ
Hex Address in 21990: 12114
RAM Address: 80032EA4
Gun 18: Grenade Launcher GgrenadelaunchZ
Hex Address in 21990: 12184
RAM Address: 80032F14
Gun 19: Rocket Launcher GrocketlaunchZ
Hex Address in 21990: 121F4
RAM Address: 80032F84
Gun 1A: Hand Grenade GgrenadeZ
Hex Address in 21990: 12264
RAM Address: 80032FF4
Gun 1B: Timed Mine GtimedmineZ
Hex Address in 21990: 122D4
RAM Address: 80033064
Gun 1C: Proximity Mine GproximitymineZ
Hex Address in 21990: 12344
RAM Address: 800330D4
Gun 1D: Remote Mine GremotemineZ
Hex Address in 21990: 123B4
RAM Address: 80033144
Gun 1E: Detonator GtriggerZ
Hex Address in 21990: 12424
RAM Address: 800331B4
Gun 1F: Taser GtaserZ
Hex Address in 21990: 12494
RAM Address: 80033224
Gun 20: Tank
Hex Address in 21990: 12504
RAM Address: 80033294
Gun 21: Bomb Case GbombcaseZ
Hex Address in 21990: 12574
RAM Address: 80033304
Gun 22: Plastique GplastiqueZ
Hex Address in 21990: 125E4
RAM Address: 80033374
Gun 23: Flare Pistol GflarepistolZ
Hex Address in 21990: 12654
RAM Address: 800333E4
Gun 24: Piton Gun GpitongunZ
Hex Address in 21990: 126C4
RAM Address: 80033454
Gun 2F: Bug GbugZ
Hex Address in 21990: 12734
RAM Address: 800334C4
Gun 30: Micro Camera GmicrocameraZ
Hex Address in 21990: 127A4
RAM Address: 80033534
Gun 3C: Watch Magnet Attract GwatchmagnetattractZ
Hex Address in 21990: 12814
RAM Address: 800335A4
Gun 3D: GoldenEye Key GgoldeneyekeyZ
Hex Address in 21990: 12884
RAM Address: 80033614
Gun 28: Camera GcameraZ
Hex Address in 21990: 128F4
RAM Address: 80033684
Gun 54: Csuit_lf_handZ Csuit_lf_handZ
Hex Address in 21990: 12964
RAM Address: 800336F4
Gun 55: GjoypadZ GjoypadZ
Hex Address in 21990: 129D4
RAM Address: 80033764
It is possible to add exactly one extra slot for the Ejected Casings Table by overwriting the first 8 bytes of Gun 00's Block Details (Muzzle Flash Extension & In-game Pos 1) specifically because "00000000 None" doesn't spawn anything which means it ignores the accompanying file name. This matters because the Editor will automatically converts floats when the number is neglible, which in the case of RAM addresses means they get turned into 80000000 because when converted to floats they all equal "-0.0000000000" regardless of if they're 8000XXXX, 8003XXXX, 8004XXXX, 8005XXXX, etc
Now if the RAM address is 7FXXXXXX then the corresponding float is a massive number that does not get converted by the editor. However, this is outside of the 21990 file and found in the actual ROM which makes it very hard to create free space for.
If the Editor didn't automatically convert the numbers, then you would have a large section of Gun 00's Block Details to overwrite since it's not a useable weapon, but I'm sure changing that would break other things in the Editor so it's not a suggestion. Just an observation that in regards to the game itself, it's safe to overwrite.
EDIT- September 17, 2026:
For some reason using a 7FXXXXXX RAM address only works on Emulator, on Console the new casing model doesn't appear but otherwise the game functions fine. It's not the model itself, and using it inside the normal range still results in nothing appearing on Console so it's specifically something about the RAM address even though by all accounts it should've worked perfectly. So, sadly, the Ejected Casings Table has to be moved to another spot within the 21990 file in order to have more slots using RAM addresses within the 21990 file.
On a more positive note, documented some stuff regarding the Multi Pickup setting as that was how I found a spot within the Rom to test out using a 7FXXXXXX RAM address. _________________ Stupid Mario Brothers is a YouTube series, get asked about my username a lot. |
|
| |
|
|
|
 |
 |
 |
 |
 |
StupidMarioBros1Fan Agent


Joined: 07 Dec 2017 Posts: 50
 |
Posted: Thu Sep 17, 2026 6:51 pm Post subject: |
 |
|
MULTI PICKUP TABLE:
Hex Address in 21990: 3689C - 3691C
RAM Address: 8005762C - 800576AC
36920 is set to "00000000" but it does not end the table like various other tables, or at least that's my assumption since I don't know what is immediately after the table. If it does end the table, something else tells the game to stop assigning Pickup models to weapons because when 36920 is changed, Gun 20 and so on will continue to have nothing assigned to them rather than crashing from invalid RAM addresses.
Gun 00: nothing (no pickup) None
Hex Address in 21990: 3689C
RAM Address: 8005762C
Gun 01: Unarmed None
Hex Address in 21990: 368A0
RAM Address: 80057630
Gun 02: Hunting Knife GknifeZ
Hex Address in 21990: 368A4
RAM Address: 80057634
Gun 03: Throwing Knife GthrowknifeZ
Hex Address in 21990: 368A8
RAM Address: 80057638
Gun 04: PP7 Special Issue GwppkZ
Hex Address in 21990: 368AC
RAM Address: 8005763C
Gun 05: PP7 (silenced) GwppksilZ
Hex Address in 21990: 368B0
RAM Address: 80057640
Gun 06: DD44 Dostovei Gtt33Z
Hex Address in 21990: 368B4
RAM Address: 80057644
Gun 07: Klobb GskorpionZ
Hex Address in 21990: 368B8
RAM Address: 80057648
Gun 08: KF7 Soviet Gak47Z
Hex Address in 21990: 368BC
RAM Address: 8005764C
Gun 09: ZMG (9mm) GuziZ
Hex Address in 21990: 368C0
RAM Address: 80057650
Gun 0A: D5K Deutsche Gmp5kZ
Hex Address in 21990: 368C4
RAM Address: 80057654
Gun 0B: D5K (silenced) Gmp5ksilZ
Hex Address in 21990: 368C8
RAM Address: 80057658
Gun 0C: Phantom GspectreZ
Hex Address in 21990: 368CC
RAM Address: 8005765C
Gun 0D: US AR33 Assault Rife Gm16Z
Hex Address in 21990: 368D0
RAM Address: 80057660
Gun 0E: RC-P90 Gfnp90Z
Hex Address in 21990: 368D4
RAM Address: 80057664
Gun 0F: Shotgun GshotgunZ
Hex Address in 21990: 368D8
RAM Address: 80057668
Gun 10: Automatic Shotgun GautoshotZ
Hex Address in 21990: 368DC
RAM Address: 8005766C
Gun 11: Sniper Rifle GsniperrifleZ
Hex Address in 21990: 368E0
RAM Address: 80057670
Gun 12: Cougar Magnum GrugerZ
Hex Address in 21990: 368E4
RAM Address: 80057674
Gun 13: Golden Gun GgoldengunZ
Hex Address in 21990: 368E8
RAM Address: 80057678
Gun 14: Silver PP7 GwppkZ - GsilverwppkZ
Hex Address in 21990: 368EC
RAM Address: 8005767C
Gun 15: Gold PP7 GwppkZ - GgoldwppkZ
Hex Address in 21990: 368F0
RAM Address: 80057680
Gun 16: Military Laser GlaserZ
Hex Address in 21990: 368F4
RAM Address: 80057684
Gun 17: Watch Laser GwatchlaserZ
Hex Address in 21990: 368F8
RAM Address: 80057688
Gun 18: Grenade Launcher GgrenadelaunchZ
Hex Address in 21990: 368FC
RAM Address: 8005768C
Gun 19: Rocket Launcher GrocketlaunchZ
Hex Address in 21990: 36900
RAM Address: 80057690
Gun 1A: Hand Grenade GgrenadeZ
Hex Address in 21990: 36904
RAM Address: 80057694
Gun 1B: Timed Mine GtimedmineZ
Hex Address in 21990: 36908
RAM Address: 80057698
Gun 1C: Proximity Mine GproximitymineZ
Hex Address in 21990: 3690C
RAM Address: 8005769C
Gun 1D: Remote Mine GremotemineZ
Hex Address in 21990: 36910
RAM Address: 800576A0
Gun 1E: Detonator GtriggerZ
Hex Address in 21990: 36914
RAM Address: 800576A4
Gun 1F: Taser GtaserZ
Hex Address in 21990: 36918
RAM Address: 800576A8
MULTI PICKUP LIST:
Hex Address in Rom: CFDB4 - CFE98
RAM Address: 7F09B284 - 7F09B368
Format is 03E00008 2402XXXX
FBBEAC
Hunting Knife: 00BA (PchrknifeZ)
Hex Address in Rom: CFDB4
RAM Address: 7F09B284
PP7 Special Issue: 00BF (PchrwppkZ)
Hex Address in Rom: CFDBC
RAM Address: 7F09B28C
Klobb: 00C1 (PchrskorpionZ)
Hex Address in Rom: CFDC4
RAM Address: 7F09B294
KF7 Soviet: 00B8 (PchrkalashZ)
Hex Address in Rom: CFDCC
RAM Address: 7F09B29C
ZMG (9mm): 00C3 (PchruziZ)
Hex Address in Rom: CFDD4
RAM Address: 7F09B2A4
D5K Deutsche: 00BD (Pchrmp5kZ)
Hex Address in Rom: CFDDC
RAM Address: 7F09B2AC
Phantom: 00C2 (PchrspectreZ)
Hex Address in Rom: CFDE4
RAM Address: 7F09B2B4
AR33 Assault Rifle: 00BC (Pchrm16Z)
Hex Address in Rom: CFDEC
RAM Address: 7F09B2BC
RC-P90: 00C5 (Pchrfnp90Z)
Hex Address in Rom: CFDF4
RAM Address: 7F09B2C4
Shotgun: 00C0 (PchrshotgunZ)
Hex Address in Rom: CFDFC
RAM Address: 7F09B2CC
Grenade Launcher: 00B9 (PchrgrenadelaunchZ)
Hex Address in Rom: CFE04
RAM Address: 7F09B2D4
Hand Grenade: 00C4 (PchrgrenadeZ)
Hex Address in Rom: CFE0C
RAM Address: 7F09B2DC
Remote Mine: 00C7 (PchrremotemineZ)
Hex Address in Rom: CFE14
RAM Address: 7F09B2E4
Proximity Mine: 00C8 (PchrproximitymineZ)
Hex Address in Rom: CFE1C
RAM Address: 7F09B2EC
Timed Mine: 00C9 (PchrtimedmineZ)
Hex Address in Rom: CFE24
RAM Address: 7F09B2F4
Cougar Magnum: 00BE (PchrrugerZ)
Hex Address in Rom: CFE2C
RAM Address: 7F09B2FC
Moonraker Laser: 00BB (PchrlaserZ)
Hex Address in Rom: CFE34
RAM Address: 7F09B304
Sniper Rifle: 00D2 (PchrsniperrifleZ)
Hex Address in Rom: CFE3C
RAM Address: 7F09B30C
D5K (Silenced): 00CE (Pchrmp5ksilZ)
Hex Address in Rom: CFE44
RAM Address: 7F09B314
DD44 Dostovei: 00CD (Pchrtt33Z)
Hex Address in Rom: CFE4C
RAM Address: 7F09B31C
PP7 (Silenced): 00CC (PchrwppksilZ)
Hex Address in Rom: CFE54
RAM Address: 7F09B324
Throwing Knife: 00D1 (PchrthrowknifeZ)
Hex Address in Rom: CFE5C
RAM Address: 7F09B32C
Automatic Shotgun: 00CF (PchrautoshotZ)
Hex Address in Rom: CFE64
RAM Address: 7F09B334
Rocket Launcher: 00D3 (PchrrocketlaunchZ)
Hex Address in Rom: CFE6C
RAM Address: 7F09B33C
Golden Gun: 00D0 (PchrgoldenZ)
Hex Address in Rom: CFE74
RAM Address: 7F09B344
Silver PP7: 00BF (PchrwppkZ) - 00E6 (PchrsilverwppkZ)
Hex Address in Rom: CFE7C
RAM Address: 7F09B34C
Gold PP7: 00BF (PchrwppkZ) - 00E7 (PchrgoldwppkZ)
Hex Address in Rom: CFE84
RAM Address: 7F09B354
At the following is "2403014D" for what I assume is connected to the None option.
Hex Address in Rom: CFE8C
RAM Address: 7F09B35C
None:
Hex Address in Rom: CFE90
RAM Address: 7F09B360
None uses "03E00008 00601025" instead of the normal format.
Game does not like it when this gets moved around, but the regular slots can be relocated to inside the 21990 File allowing for 0xD8 of free space within the Rom.
None will overrule the Item Bitflags to have a character hold the weapon and instead will have them stand like they don't have a weapon rather than simply holding their arms outwards. If desired, make a custom pickup model that's invisible/tiny as that's just typical custom model stuff.
Custom addresses work so you can move the whole list (besides None) to a spot in the 21990 file to free up 0xD8 of space inside the Rom, allowing for a rare space of usable RAM that starts with 7FXXXXXX which is only important for instances where the address is being stored in a spot it technically shouldn't be, like the Gun Block Details for Gun 00 to extend the Ejected Casings Table. As previously mentioned, using this to add more Ejected Casing slots did not work as expected, so it's possible that other such uses of this area might not work as intended. Still worth documenting though. _________________ Stupid Mario Brothers is a YouTube series, get asked about my username a lot. |
|
| |
|
|
|
 |
 |
 |
 |
 |
|
 |
 |
 |
 |
|
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
|
|
|
 |