Finding Debug Symbols when reverse engineering a game is the equivalent of buying a Strategy Guide, all the secrets are unlocked which is awesome but it also removes part of the fun of discovering what each part of the game does.
Debug symbols are an artifact of compiling a game from a higher level language (e.g. C/C++) down to a lower level language such as Assembly code. They are similar to source maps in modern web development when using a language like typescript that compiles down to javascript, but instead of typescript think C or C++ and instead of javascript think raw machine code or assembly.
They are used by developers to allow them to attach a debugger to the game and debug the code line-by-line with all the function and variable names intact. So you can think of debug symbols as meta data that maps the high level language to each assembly instruction so that developers can add breakpoints in their high level language and the system will know what to do.
They are also incredibly valuable in diagnosing a crash as the stack trace would simply be a list of meaningless memory offsets without the debug symbols explaining what functions were called on the way to the crash site.
Developers should remove the debug symbols before the release of the game, a process called stripping executables, but due to the high pressures of development and last-minute bugs they can be left in.
Since these are artifacts of compilation it is very unlikely for a game on a platform earlier than the Playstation 1 to contain debug symbols as they tended to be hand written in assembly code.
Also some platforms that used compiled code but were to be released on a small storage medium such as cartridge needed all the bytes they could get so it is very unlikely to get debug symbols on platforms such as Nintendo 64 or Game Boy Advance.
Sony consoles have the highest likelihood of shipping with debug symbols, specifically due to the rather relaxed checking of Playstation 2 binaries based on version 2 of the official SDK, but there are also games for PS1 and PSP that have been released with debug symbols in tact.
We have a post specifically listing all the debug symbols for the PS1 here: Playstation 1 Games with Debug Symbols
We have a post specifically listing all the debug symbols for the PS2 Demos here: PS2 Demo Discs
Plenty of retail games also has their debug symbols: PS2 Retail Games
Playstation Portable Games with Debug Symbols
Finding debug symbols on Nintendo consoles was like finding a needle in a haystack, one that did not even have a needle, occasionally you would find some of the developers memory left over in a SNES game, but that all changes with the Gamecube and its large storage space on the disc. Now it became common for developers to loose a tiny few MB file on a large 1GB disc, this trend continued into both the Wii and Wii U era too, with debug symbols even being found in modern switch games!
You will not find any debug symbols left in retail Nintendo 64 games due to limitations of cart size, developers has to squeeze out every last byte to avoid the more expensive cartridges so debug symbols were the first to go.
But we do have part of the Turok source code which contains them: Turok 64 Official Source Code Analysis
There has also been a number of Nintendo leaks, leaking the full source code for multiple Nintendo 64 games. Not to forget the excellent work the community is doing on reversing N64 games even without any symbols present!
Nintendo Gamecube Games with Debug Symbols
Wii U Games with Debug Symbols
We have never been able to find any Sega Saturn games that actually have debug symbols left on the disc! Sega must have been a little more strict on game developers before the dreamcast, so if you do find any games with debug symbols then please let us know.
Sega Dreamcast Games with Debug Symbols
Original Xbox Games with Debug Symbols
There are also a few platforms that may have games with debug symbols but it is currently unknown:
Introduction Welcome to our page dedicated to the technical details of the Gamecube game 007 Agent Under Fire! If you’re a fan of this classic first-person shooter game, you might... ...
Debug symbols pretty much open a game wide open to budding verse engineers. These files make reverse engineering almost a piece of cake, giving useful names to each of the... ...
If you are interested in reverse engineering a Gamecube game, the first step is to find out if the game has its debug symbols available, this makes it much easier... ...
I have never seen a PS1 executable bigger than 2mb, normally if they require more code they split it into multiple executables. With memory being so precious it would be... ...
Note that the order of the externals defined in this list will not reflect the order in the final linked executable, as the order here is just the order that... ...
This guide will presume you have already installed the radare2 suite of binary analysis tools on your computer. Opening a PSX executable in radare2 First lets run radare2: r2 ./SLES_032.85... ...
This page is dedicated to listing Playstation 2 Demo Discs that contain developer debug symbols, either embedded inside the executable or as separate .map or .sym files. It was much... ...
PS2 Official Software development Kit by Sony Last known version: 3.1.0 1 First known version: 0.3.0 2 Updates were provided to licenced playstation developers on ps2-pro.com, where the update contained... ...
The Sony Playstation portable used encrypted executables known as EBOOT.BIN, these are basically just an encrypted ELF file and it is possible to decrypt them with the correct tools. Some... ...
Debug symbols are normally a rare treasure sought by reverse engineers from prototypes and beta versions of games, however in the early years of the PS2 it was common for... ...
Retail Wii Games with Debug Symbols The following table has all the known Wii games that have debug symbols in them, if you find any more please let us know!... ...
Wii U games with debug symbols A list of all the WiiU games that are known to have debug symbols are listed in the table below, eventually we want to... ...
Debug symbols left in games make reverse engineering almost a piece of cake, giving useful names to each of the functions in an executable and sometimes even full local variable... ...
Introduction to Debug Symbols Finding Debug Symbols when reverse engineering a game is the equivalent of buying a Strategy Guide, all the secrets are unlocked which is awesome but it... ...