If you appreciate the work done within the wiki, please consider supporting The Cutting Room Floor on Patreon. Thanks for all your support!
This article has a talk page!

Perfect Dark (Nintendo 64, Xbox 360)

From The Cutting Room Floor
Jump to navigation Jump to search

Title Screen

Perfect Dark

Developers: Rare (N64), 4J Studios (360)
Publishers: Rare (N64), Microsoft Game Studios (360)
Platforms: Nintendo 64, Xbox 360
Released internationally: March 17, 2010 (360)
Released in JP: October 21, 2000 (N64)
Released in US: May 22, 2000 (N64)
Released in EU: June 30, 2000 (N64)


AreasIcon.png This game has unused areas.
ObjectIcon.png This game has unused objects.
GraphicsIcon.png This game has unused graphics.
MusicIcon.png This game has unused music.
SoundIcon.png This game has unused sounds.
TextIcon.png This game has unused text.
RegionIcon.png This game has regional differences.
Carts.png This game has revisional differences.
PiracyIcon.png This game has anti-piracy features.


ProtoIcon.png This game has a prototype article
PrereleaseIcon.png This game has a prerelease article

Set in the year 2023, Perfect Dark is considered the spiritual successor to Rare's earlier first-person shooter GoldenEye 007, as it shares many of its mechanics and uses a modified version of its engine.

Hmmm...
To do:
Nearly every screenshot here is at the wrong resolution and will need to be retaken with the angrylion video plugin.
Hmmm...
This page is loooong...
Consider grouping related content into additional subpages to ease readability.

Sub-Pages

Read about prototype versions of this game that have been released or dumped.
Prototype Info
Read about prerelease information and/or media for this game.
Prerelease Info
PerfectDark-53Beta.png
Early Text
Leftover text from two early versions of the game.
PerfectDark-PosImageMenu.jpg
PerfectHead
Remnants of the scrapped face mapping feature.
PerfectDark-Ca51 guard.png
Unused Content By Level
This game probably has more unused things than GoldenEye.
PerfectDark-marker.png
Unused Items
Various things that don't fit the theme of any level, probably because half of them are GoldenEye leftovers.
PerfectDark-AsianJo2.png
Version Differences
Covers all Nintendo 64 versions and the Xbox 360 port.

Unused Levels

Retaking the Institute

Intended as another special assignment bonus mission, similar to the four featured in the final game, Retaking the Institute never got beyond the planning stages. According to designer Duncan Botwood, it was to be "a full-on assault against the Skedar in the Institute building."

(Source: The RWP)
Retaking the Institute.
Lead the team and clean out the building.
Kill All Enemy Agents
Do Something Else
And Something Else

Retaking the Institute's incomplete briefing and objective text is still present in the final game. The string for its name in the text file used for the menu places it between the Maian SOS and WAR! missions. Its slot is set up to play the music track CI Operative.

Skedar

Perfectdark-skedarsolo.png

Using the GameShark code 8009DFE9 0032, a solo edition of the Skedar Combat Simulator arena can be accessed. Joanna starts at a unique spawn point not shared by any of the multiplayer spawn points with a Falcon 2, CMP150, AR34, and Reaper. The mission can be played in Co-Op and Counter-Op mode, but in Counter-Op the other character will just be another Joanna Dark. There are no objectives and no way to complete the mission.

(Source: Will "Yamo" Mistretta)

In the final version, this setup is incomplete since it lacks character objects that are required for its action blocks to work properly. If the characters are added and their IDs properly set, a semi-scripted battle will take place between some Maians on Joanna's side and some dataDyne shocktroopers. This battle can briefly be seen in one of the early game trailers. The setup file also has some other unused content not seen in any footage, including additional paths for characters and an enemy that would seek out Joanna.

Rooftop

A text string found alongside those used for the other Combat Simulator arenas is all that remains of Rooftop. According to Rare, "it was not up to scratch."

(Source: Rareware.com PD Rumour Mill)

Unused Weapons

Hmmm...
To do:
Find a better GS code to use it without hacking the game. Preferably one without so many caveats.

Tester

An unused weapon for what seems to be for testing purposes. It uses a floating model and has its own function named "Tester" and functions like a normal gun. It can be used in-game by editing a map's starting weapon in its intro block to 33, or assigning it to a guard (which will display it as the Borg Cube placeholder on the ground).

Use Gameshark code 801DC62C 0033 to replace weapon slot 1 with Tester in the Combat Simulator. (Note: this code only works in low-res mode (no expansion pak), only in the Temple level, and no other players (or Simulants) can be present.)

(Source: Yamo's Lair)

SMG27

An unused SMG, possibly a JonesCorp weapon and possibly even the unused MagSec SMG. It has no model or name of its own, and its only function is Rapid Fire, which makes the same firing sound as the Reaper, but without the whirring of the barrels, and it has no reload animation. As its name suggests, it has a magazine capacity of 27 rounds.

Use GameShark code 8106FF42 EF50 to replace the CMP150 with the SMG27.

AR27

An unused assault rifle, possibly another JonesCorp weapon. Like the SMG27, it lacks a model or name, and only has Rapid Fire, making the same firing sound as the AR34. Again, it has no reload animation, and like the SMG27, it has a magazine capacity of 27 rounds.

Use GameShark code 8106FF5E EE98 to replace the AR34 with the AR27.

Unused Monitor Screens

Defined

Several characters and other objects encountered in the game. Each of these has their own value and are not animated.

Various astronomical objects. Each of the three colored planets has a screen, but there is also an animated one which fades between them. The elliptical galaxy is never shown in its original coloration, since one screen value tints it green and another blue. Likewise, the spiral galaxy has green- and blue-tinted variants in addition to its original colors.

A green ship. Exists as both individual screens and as one which fades between the three.

These animated screens cannot be used: values exist which seem to correspond to them, but they read the data of the green bar chart instead. Their animations are actually defined as a part of the Skedar warrior screen, but can never be seen normally due to loop commands.

GE PD
PerfectDark-GETalkMon.gif PerfectDark-DevTalkMon.gif
John Belushi guest-starring in "Spies Like Us" eating borscht. PerfectDark-DevPoundMon.gif

Two of them appear to be developers recreating screens from GoldenEye.

Undefined

These are all leftovers from GoldenEye and only exist as textures.

GE PD
PerfectDark-GECubeMon.gif PerfectDark-GECubeMonPD.gif
PerfectDark-GETalkMon.gif PerfectDark-GETalkMonPD.gif

Interestingly, two of the textures were updated. The spinning cube was reduced in size, while Karl Hilton talking was updated to fill the entire width of the texture, rather than being pillarboxed.

Unused Music

There are three different unused music pieces that lay within. Use GameShark codes 800AA5FB 00?? 800AA66B 00?? (where "??" is one of the below) to hear them in-game:

  • 15: An alternate death theme. Rather creepy.
  • 3C: A track that starts off similar to the Deep Sea - Nullify Threat tune, but then completely changes after a couple minutes or so. This can be heard in one of the very first trailers for the game, but only as background music, not tied to any specific mission.
  • 75: A brief, goofy jingle.
(Source: Will "Yamo" Mistretta)

Unused Text

Missions

Mission Location String
dataDyne Central - Defection LUCERNE TOWER
dataDyne Research - Investigation BASEMENT LABORATORY
dataDyne Central - Extraction LUCERNE TOWER
Carrington Villa - Hostage One CARRINGTON VILLA
Chicago - Stealth CHICAGO STREETS
G5 Building - Reconnaissance G5 BUILDING
Area 51 - Infiltration AREA 51 - EXTERIOR
Area 51 - Rescue AREA 51 - MEDLABS
Area 51 - Escape AREA 51 - ESCAPE
Air Base - Espionage PRESIDENTIAL TERMINAL

US AIRBASE, ALASKA

Air Force One - Antiterrorism AIR FORCE ONE
Crash Site - Confrontation CRASH SITE
Pelagic II - Exploration Cetan Ship
Deep Sea - Nullify Threat CETAN SHIP
Carrington Institute - Defense CARRINGTON INSTITUTE
Attack Ship - Covert Assault SKEDAR ASSAULT SHIP
Skedar Ruins - Battle Shrine SKEDAR BATTLE SHRINE
Mr. Blonde's Revenge LUCERNE TOWER
Maian SOS AREA 51, NEVADA, EARTH
WAR! BATTLE SHRINE
The Duel LUCERNE TOWER

Every mission's text file has an unused string that gives its location. They're reminiscent of the location names shown on the objectives screen of GoldenEye's menu and were likely intended to serve the same purpose. Strangely, the Pelagic II's location is given as "Cetan Ship" and is the only one of these strings that isn't in all-caps. Another oddity is that The Duel's location is given as the Lucerne Tower.

E R R O R
No briefing for this mission

The location and background shown in GoldenEye when loading a mission without defined objectives.

Weapons

MagSec SMG

Found between the Cyclone and RC-P120 is this string for a MagSec SMG.

MaianGrenade

The N-Bomb was intended as a Maian grenade, based on its unused firing range description, but this string is found after those for the Rocket Launcher, Devastator, and Slayer, which implies it was for a Maian grenade launcher.

FlashBang

The FlashBang has a pickup model seen above, but nothing else of it remains.

Functions

Guided Shots

Might be an alternate name for the Slayer's Fly-By-Wire Rocket function, or for the CMP150's Follow Lock-on function. Other than that, it doesn't fit any existing weapon.

Half Magazine Discharge

The Cyclone's Magazine Discharge function drains the entire magazine, whereas this one only would've drained half.

Timed Detonation

Not to be confused with Timed Explosive, the Timed Mine's primary function. This may have originally been intended for the N-Bomb; its two functions are Impact Detonation and Proximity Detonation.

Telescopic Sight
Silencer
Magazine Extension
Laser Sight

These come at the end of the list of functions, and actually don't seem like functions at all, but intended for another stat entirely. Everything here except Magazine Extension makes sense for the Falcon 2; maybe at one point the system was intended to be expanded so certain weapons could be fully modular without having to use separate weapon definitions?

Manufacturers

JonesCorp

An unused manufacturer based on a developer's name, like Chesluk Industries.

Combat Simulator

Jonathan

Jonathan has an entry in the character list – it's listed after the other story characters, before the common characters. He actually has his own body model, used for his CI bio, which is indistinguishable from the Area 51 Guard (a uniform he never actually wears in the story). Jonathan, using this model, was added to the available characters in the Xbox Live Arcade port of the game. In pre-release footage, all enemies on the Area 51 maps wore this heavy armor used late in the final game's mission set, and this disguise is almost certainly a remnant from that era.

Boxes Options
Boxes on Radar
Touch That Box
Boxes
Tag Box

Various menu strings for the scrapped Touch That Box mode.

Test
4mb Test

Strings for two test sets can be found alongside the other weapon sets.

Cheats

Invincible
All Guns
Super x2 Health
Super x2 Armor
Invisible
Phase
Infinite Ammo
DK Mode
Tiny
Super x10 Health
Magnum
Laser
Gun
Silver PP7
Gold PP7
Invincibility On
All Guns On
Maximum Ammo
Super x2 Health
Super x2 Armor
Invisibility On
Phase On
Infinite Ammo On
DK Mode On
Extra Weapons
Tiny On
Paintball Mode On
Super x10 Health
Happy?
Fast Mode On
Invincibility Off
All Guns Off
Invisibility Off
Phase Off
Infinite Ammo Off
DK Mode Off
Tiny Off
Paintball Mode Off
Radar On
Fast Mode Off
NO NAME
Slowest Motion
Very Slow Motion
Slow Motion
Normal Motion
Fast Motion
Very Fast Motion
Fastest Motion
Line Mode
Paintball Mode
Enemy Rockets
2x Rocket L.
2x Grenade L.
2x RC-P90
2x Throwing Knife
2x Hunting Knife
2x Laser
Turbo Mode
Fast Animation
Slow Animation
No Radar [Multi]

Cheat names and their activation messages, left over from GoldenEye. Any references to the Bond franchise have been removed from them.

Warning
If you activate any cheats, then you
will be unable to progress further in the game
while those cheats are active.

A warning about cheats preventing the player from progressing through the game, which is never shown.

Characters

Guard Greeting
What's that gun?
Don't point that gun at me.

These seem to be debug strings for characters.

Build Dates

Hmmm...
To do:
XBLA build date.

A build date can be found loaded into memory.

Version Hex Address Build Date
US v1.0 0x803D7B20
Apr  6 2000 15:05:01
US v1.1 0x803D7C90
Apr  6 2000 15:05:01
EU 0x803D92E0
Apr 28 2000 14:40:49
JP 0x803D8BE0
Jul 19 2000 09:43:24
(Source: Ferrox)

Early GoldenEye Text Files

There appear to be unused Combat Simulator setup files for Pelagic II and Chicago. Opening these, however, reveals them to actually be Dam and Streets text files from a pre-final version of GoldenEye.

Unlike GoldenEye the final game's Combat Simulator doesn't use the actual levels from the Solo campaign, but some rare pre-release footage shows that early builds did in fact use Solo levels at some point. This would indicate these placeholder files are either very old, or it was intended at some point that original Combat Simulator maps would be made off said levels.

Dam

Dam's location, briefing, and objectives list shown in the watch menu are present, as is the location string used in the intro camera. The rest of the final mission's text is not in this file.

Background
Early Final
mi6 has confirmed the existence of 
a secret chemical warfare 
facility at the arkhangelsk dam, 
ussr. its heavily guarded location 
and workings are a cause for 
major concern. nerve gas 
produced there has been turning 
up in the hands of hostile regimes 
around the world and deals with 
international terrorists have 
been rumoured. this facility 
should be destroyed without 
prejudice.
mi6 has confirmed the existence of 
a secret chemical warfare 
facility at the byelomorye dam, 
ussr. its heavily guarded location 
and workings are a cause for 
major concern. nerve gas 
produced there has been turning 
up in the hands of hostile regimes 
around the world and deals with 
international terrorists have 
been rumored. this facility should 
be destroyed with extreme 
prejudice.

The earlier mission background does not refer to the Byelomorye dam by name, instead referring to its location. The line about destroying the facility without prejudice was completely reversed for the final version, which was likely always the intended meaning. The location string shown at the top of the watch menu uses Byelomorye, like the final version, as does the intro text.

M Briefing
Early Final
the area around the dam is well 
defended against a full scale 
military attack but they won't be 
expecting a lone agent. i've looked 
at the recon reports and decided 
that the easiest way to gain 
entrance to the weapons factory 
will be to bungee jump down the 
face of the dam. safe and simple. 
just throw yourself off the top 
and remember to look before you 
leap old chap.
the area around the dam is well 
defended against a full scale 
military attack but a lone agent 
stands a much better chance.the 
easiest way to gain entrance to 
the weapons factory will be to 
get down the face of the dam. 
q had an idea about that.

Curiously, M seems a bit out-of-character here, particularly the last line which sounds more like something Q would say. Speaking of Q, the part about bungee jumping was moved to his briefing in the final version.

Q Branch
Early Final
information concerning shipping 
and contacts is stored on a 
computer system in a secret ops 
room within the dam.with this 
covert modem connected to their 
satellite link we can intercept 
this data when a backup is 
carried out.
information concerning shipping 
and contacts is stored on a 
computer system in a secret ops 
room within the dam. with this 
covert modem connected to their 
satellite link we can intercept 
the data when a backup is carried 
out.
as for getting down the dam, use 
the bungee rope. at the bottom of 
the jump, use the piton gun. simple.

The bungee rope was moved to Q's briefing for the final version, as mentioned above, and a reference to the piton gun was also added.

Intro Location
Early Final
Byelomorye Dam, Archangel, USSR Byelomorye Dam, Arkangelsk, USSR

The spelling of the mission's location hadn't been finalized when this text file was written. The background uses Arkhangelsk, a different spelling of the Russian name, while this string uses the English name.

Streets

Streets only has the mission location and background shown in the watch menu, but there are line terminators serving as placeholders for the M Briefing, Q Branch, and Moneypenny strings.

Background
Early Final
use the stolen tank to chase the 
car containing natalya. you are 
up against a time limit.
after escaping kgb interrogation 
at the military archives, natalya 
has been recaptured by general 
ourumov. she is being taken by car 
to the janus operations base in 
st. petersburg.

The background is only a description of the mission.

Oddities

Cheese Pieces

PerfectDark-ToiletCheese.png

There is a small wedge of cheese hidden in every single-player map. These are modeled as part of the map geometry and, as such, cannot be collected or interacted with in any meaningful way.

Sinister Terminals

PerfectDark-sinisterstation.png

The black terminals used in dataDyne Investigation and the standing variation of them found in Area 51 both have an Easter egg: if you use them as a standard object, rather than a screened object, they display an angry-looking eye where their screen would normally be. This looks identical to the texture Dr. Caroll's "eyes" use when his personality has been erased, but isn't the same index. The filenames of these two models are "sinisterpc" and "sinisterstation".

The terminals used in the Carrington Institute and Air Force One use the filenames "goodpc" and "goodstation", but do not have a similar Easter egg.

Brotherly Love

PerfectDark-DuelJonAlly.png

In order to pass The Duel on Special Agent, Joanna must defeat a hologram of Jonathan. Despite him taking a sneaky approach, it's easier to bring down Jonathan than the dataDyne guard fought on Agent because, even if he gets the drop on Joanna, his shots will never hit her. The only way to lose to him is to get into his melee range. Any character using Jonathan's head is actually hardcoded as an ally for the purpose of targeting - Joanna's auto aim won't target him, his shots won't damage her, and the aim mode crosshair turns blue when pointing a gun at him. Even though the character used for Jonathan is properly set up as an enemy, the game forces ally targeting on him because of his head.

Unrelated to this, Jonathan is given "Dark" as his surname in the briefing for this mission in the American and European versions of the game. No relation between Joanna and Jonathan is ever mentioned anywhere else in the game. He was originally intended to be Joanna's brother, but this was dropped at some point during development, and The Duel's briefing is the last remnant of it.

(Source: Rareware.com PD Rumour Mill)

RB Easter Egg

Pd rb easter egg.png

In the far end of the long lab of dataDyne: Investigation, where you must shut down the experiments, hidden in the "tech parts" in the floor grate is the initials "Rb", most likely standing for Ross Bury, one of the graphic programmers.

Bury left various other Easter eggs with his name throughout the game, such as the "Rossorama" texture in the Air Force One level.

Mystery Object

Pd mystery object.png

This thing, whatever it is, exists on the Pelagic 2 level. It is not used in any mission difficulty, is part of the level geometry, and is unique, only appearing once in the entire level. It's possible it was related to the engines, somehow, since there is a voice line referring an unused object related to the disabling of said engines left in the final game.

Mysterious Explosions

Pd mysterious explosions.jpg

In Mr. Blonde's Revenge, using the BombSpy or any other explosive around the ventilation wall next to the ramp that goes to the helipad will trigger a series of massive explosions all over the rooftop, similar to the explosions in Maian SOS when the UFO is destroyed. This happens because the players' Skedar bombs are stored near here before they're handed out. The co-op player's bomb is left lying around invisible in single player and is only properly hidden once the elevator bomb is planted.

Radio Silence

In the intro to Chicago, Joanna asks about Carrington's contact, but he cuts her off, insisting on radio silence... then the Institute goes on to break that silence and give hints for several objectives throughout that mission and the next (G5 Building). While this makes no sense in the final game's context, it does make sense in the context of the 1999 prototype, when there were no in-game objective hints.

False Unarmed

When you plant the Explosives in Area 51: Infiltration, you will switch to "Unarmed", which is in reality still the Explosives; it is a fake Unarmed that does not work. You have to manually switch weapons.

Combat Simulator Map Easter Eggs

On Sewers there are two Easter egg spots with inaccessible ammunition boxes - the first at the bottom of the map underneath a grate (using the Farsight you can see there's nothing connecting the tunnels, so there's no way to get in there), and the second at the very top of the map atop a grate leading to the surface. This grate has a ladder underneath it, but it isn't tagged for you to be able to climb it, and even if you could it would be difficult to do so because the ladder is above a hallway. You can speed-strafe to touch the very bottom of the ladder.

In Warehouse, at the top of the map inside the ventilation ducts, there is another false ammunition box on top of a grate with a question-mark design on it. This is also just an Easter egg; using the Farsight you can see the question-mark room is absurdly small and would be impossible for a player to enter.

Crash Site Location Discrepancy

The mission description and "The Story" file in the Carrington Institute Information computer both refer to Crash Site as taking place in "the Alaskan Wilderness". However, the Hangar Information computer refers to the Crash Site as taking place on Victoria Island, which is in Northern Canada.

Of course, since Perfect Dark takes place in an alternate 2023, this could just be a typical Rare joke rather than a discrepancy or error.

Air Base Plant

For some odd reason, a plant prop is located at the far end of the huge hangar housing Air Force One at the very end of the level. You'll need a Sniper Rifle to see anything more than a few pixels of it.

Floating Cutscene Crate

In the outro to Pelagic II: Exploration Joanna picks up a crate on the ground, with a nearby crate she soon picks up afterward just... floating there off the edge of the platform. While the weird floating nature of the submarine itself can be explained in the current level geometry setup with anti-gravity technology or the crane, the crate itself cannot.

Usernames and Passwords

During the course of the game, the player receives two pairs of usernames and passwords. Neither set serves any purpose, however. According to Rare, they were supposed to be access codes to one of the Perfect Dark marketing sites, but were never used. CarringtonInstitute.com and dataDyne.com were both set up prior to the release of the game and did indeed have restricted sections requiring a username and password, but neither set or combination of sets worked on either website.

Username CDV780322
Password I8MOZYM8NDI85

The easier set can be obtained in the Attack Ship mission on Perfect Agent. Cassandra will drop her necklace after dying on this difficulty. Its description in the inventory menu gives her username and password.

Cassandra De Vries' replacement necklace.  Username: %s  Password: %s

The username and password are not a part of the description's string, but are actually stored separately and filled in.

Username EnTROpIcDeCAy
Password ZeRo-Tau

The second set is much more difficult to unlock, as it requires getting a rank of Perfect:1 in the Combat Simulator, which is no easy task and impossible without playing actual multiplayer games (or at the very least excessive abuse of various exploitative Simulant setups). It will be shown in the player stats. The font used, however, makes no distinction between capital and lowercase letters.

(Perfect:1 username/password case: Krijy)

Development Text

8005261C	RareZipAsmDecompress: inflate failed (%d)
80052647	RareZipAsmDecompress: hufts overflow=%d
80052670	RareZipAsmDecompress: bad len
8005268F	RareZipAsmDecompress: input not in any known rare zip format

Anti-Piracy Features

This game contains several checks to determine if the game is running in unusual conditions, such as with a modified boot loader or with modified functions. The functions which check for these are in various places throughout the code and some even occur during gameplay. Many of these functions are themselves checked by other functions.

boot

Checks in ROM address 0x2e8 for a known value upon startup. If the value doesn't match, It will go into an infinite loop, making the game unable to boot.

__scHandleTasks

On every frame it checksums boot to make sure it hasn't been modified. If it does, it writes 40 bytes of 0xff to 0x80095210. This appears to be related to sound effects but has no obvious effect.

cheatMenuHandleDialog

When the Cheat menu is opened, it checksums __scHandleTasks to make sure it hasn't been modified. If it does, it will corrupt __scHandleTasks by nopping the call to __scAppendList and some of the function arguments to osRecvMesg. Most likely results in a crash.

doorFinishClose

Checks that the value of osCicId is 6105. If it is not, it will rewrite the start of func0f08f968 so it immediately returns false, making it impossible to open doors.

botPickupProp

When a simulant in multiplayer picks up an item, it checksums doorFinishClose to make sure it hasn't been modified. If it does, it will rewrite the start of chrCheckCanSeeTarget so it immediately returns true, making all guards able to see the player through walls.

chrUncloak

When a guard uncloaks, this will checksum botPickupPrompt to make sure it hasn't been modified. If it has, it disables the ability for the player or other characters to go up or down slopes. This is done by nopping the jr ra instruction in cdFindGroundY, which causes it to flow into the following function, which unconditionally returns false and only exists for this purpose.

chrsCheckForNoise

Whenever a guard hears the player, this checksums scHandleRetrace and make sure it hasn't been modified. If it has, it will set the Skedar King's body file to zero, causing the game to crash if Skedar Ruins or WAR! is loaded. Strangely, scHandleRetrace doesn't have any piracy checks attached to it.

lvGetSlowMotionType

On every tick that the game is unpaused, this checks an address in the bootloader for a known value. If it's been modified, it will corrupt the rspboot microcode, resulting in a crash.

lvReset

Whenever a level is loaded (including the title screen), this checksums lvGetSlowMotionType to make sure it hasn't been modified. If it has, it writes a 16 byte filesystem terminator at the start of EEPROM, effectively disabling on-cartridge save storage.

bodyAllocateEyespy

When any stage is loaded that uses the CamSpy (for example, dataDyne Investigation), this will checksum lvReset and make sure it hasn't been modified. If so, then it will no-op _memaFree so anytime that it is called, it will flow to the next fuction, which just returns. This has the effect of the system being unable to free individual memory allocations which makes it more likely to run out of memory.

bgReset

When a normal stage is loaded (for example, CI Training), this will checksum ROM address 0x454 in the bootloader and make sure it hasn't been modified. If so, it will copy 64 bytes from a random location in ROM to a random location in RAM.

chrConsiderGrenadeThrow

When a character decides to throw a grenade, this will checksum bgReset to make sure if hasn't been modified. If so, it will surround the player in infinite explosions.

tagsReset

When a normal stage is loaded (for example, CI Training), this will call mtxGetObfuscatedRomBase to get the value of osRomBase and compare it to a known value. If the value does not match, it will copy 4KB from a random location in ROM to a random location in RAM.

bgunTickGunLoad

Whenever the player swaps to a different gun, this will checksum tagsReset to make sure it hasn't been modified. If so, it will corrupt tagsReset by writing 4 bytes to 0xff.

menuTickTimers

On every frame outside of the credits sequence, this will checksum mtxGetObfuscatedRomBase to make sure if hasn't been modified. If so, it will corrupt bgReset by writing 16 bytes of 0x12 to a random address within that function.

bgTickCounter

On every frame, this checksums menuTickTimers to make sure if hasn't been modified. If so, it will corrupt bgBuildTables by adding a fixed amount to 16 bytes within that function.

glassDestroy

When the player breaks glass, this checks an address (0xdc0) in the bootloader for a known value. If the value does not match, it will set the audio frequency to a high value, making everyone sound like chipmunks.

explosionAlertChrs

Whenever there's an explosion, this will checksum glassDestroy to make sure if hasn't been modified. If so, it will make all explosions huge.


(Source: The Decompile Project)