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

The Cutting Room Floor:Common Things/Text Strings

From The Cutting Room Floor
Jump to navigation Jump to search

This is a sub-page of The Cutting Room Floor:Common Things.

General

Many compiled languages' standard libraries include content designed to support their date/time, printf, and sorting functions, like month names and every byte in sequential order.
  • Many games will contain a string indicating which compiler was used for that game. Examples include (but aren't limited to) Microsoft's C Runtime Library, Borland, CodeWarrior, and Watcom.
    • These strings were often used in decompilers, since it was easy to determine how a compiler worked (especially when the executable has function and variable names left in).
  • Compilers tend to leave file listings or directories behind, containing lists of files used to compile the game. These are usually found within executables. Assertion strings may also reference these.
  • Lorem ipsum text is often used as a placeholder.
  • Executable/cartridge headers can be found in most games. These often contain the game's title in plain text.
    • Sega Genesis/Mega Drive ROM headers contain a build date.
  • Disc-based games often have text files named ABS.TXT, CPY.TXT, and/or BIB.TXT (or similar). These should not be documented unless their contents are particularly notable (e.g. developer notes, the game's story, etc.).
    • One common example in games sold in Japan is "このCD-ROMに収録されているデータは著作権法によって保護されており、無断で転載・複製することはできません。" ("The data contained in this CD-ROM is protected by copyright law and may not be reproduced without permission.")
  • Long lists of profanities and vulgarities, sometimes in multiple languages. These are used as word filters, usually to keep profanities from appearing in a game's dialogue or high-score screen. These have also been used to prevent certain words or ban users on game servers. Unless the list is unused by the game itself, contains something very unusual, or causes a notable effect in-game, it isn't worth documenting.
  • Games that use the Bink video codec will contain the following error strings:
Error opening file.
Not a Bink file.
The file doesn't contain any compressed frames yet.
The file has a corrupt header.
Out of memory.
Error reading Bink header.
This file has bad frame size data.
  • Any SCI-based game will have this string inside the main executable (usually sciv.exe or sierra.exe):
Script Interpreter, Copyright (C) 1987 Sierra On-Line, Inc.
Authors: Jeff Stephenson, Bob Heitman, & Pablo Ghenis

CRIWare

  • The following strings can be commonly seen:
SRD_WaitForExecServer timeout.(10sec)
SRD: SRD Info.
srd_enter_fg       = %d
srd_debug_geterror = %d
srd_obj.stat       = %d
srd_obj.devtype    = DVD
srd_obj.devtype    = HOST
Read Status(DVD=2/HST=1) = %d
SRD: 64bit Host filesystem.
SRD: Enable HostLock
SRD: sceLseek64 error = %d
SRD: sceLseek error = %d
SRD: sceIoctl error = %d
SRD: sceOpen error = %d
SRD: sceClose error = %d
SRD: sceRead error = %d

Kirikiri2

A scripting engine typically used for Visual Novels.

  • The following strings can be commonly found in the executable:
"; ============================================================================\n"
"; *DO NOT EDIT* this file unless you are understanding what you are doing.\n"
"; FYI:\n"
";  Each line consists of NAME=\"VALUE\" pair, VALUE is a series of\n"
";  \\xNN, where NN is hexadecimal representation of UNICODE codepoint.\n"
";  For example, opt=\"\\x61\\x62\\x63\\x3042\\x3044\\x3046\" means that the\n"
";  value of options \"opt\" is alphabets a, b, and c followed by Japanese\n"
";  Hiraganas A, I, and U.\n"
";  DO NOT PUT non-escaped value like opt=\"abc\". This doesn't work and should\n"
";  be like opt=\"\\x61\\x62\\x63\".\n"
"; ============================================================================\n"
"";

3DO Company

3DO

  • All 3DO games use the repeated string
    iamaduck
    to pad out the disc.

Amstrad

CPC

  • Any game that uses the Speedlock protection system will have this string:
SPEEDLOCK PROTECTION SYSTEM (C) 1987 SPEEDLOCK ASSOCIATES : HACKER'S CHATLINE 0793-724317!
  • Likewise, for AMSCopy, this string:
AMSCOPY II (c) Ultratec 198(5)

Apple

Mac OS Classic

  • The first block of every bootable Mac floppy begins with the initials LK (for Larry Kenyon, chief designer of the Macintosh File System).
  • The header of every Power Mac application's data fork begins with the exclamation Joy!

Arcade

Konami DJ Main Board

  • All games contain the string COPYRIGHT (C) KONAMIGRXXX 96.10.26DJ GROOVE at the beginning of their PRG ROMs 6a and 8a (which are the odd and even split bytes of one single binary image). This string likely refers to a working title for the original beatmania.

Atari

7800

  • All games contain
    ACTUAL CART DATA STARTS HERE
    after the header.

Microsoft

DOS

  • Every DOS relocatable executable (≈ those that cannot form a valid .com program) has "MZ" to identify it as such to the program loader code (note that file extension is in fact irrelevant). "MZ" refers to Mark Zbikowski, the inventor of this file format.
  • Games using the Borland Graphics Interface will contain a string similar to this:
BGI Device Driver (EGAVGA) 2.00 - Mar 21 1988
Copyright (c) 1987,1988 Borland International
  • Games using the GX Library will contain a copyright string from Genus Microprogramming.
  • Games using the AIL/Miles Sound System will contain a listing of functions from the library, plus errors for memory allocation.
Most, if not all, of the messages.
--AIL_startup()
AAIL_shutdown()
AIL_set_preference(%d,%d)
aResult = %d
s
AIL_get_real_vect(0x%X)
---Result = 0x%X
-AIL_set_real_vect(0x%X,0x%X)
--AIL_set_USE16_ISR(%d,0x%X,%u)
aAIL_restore_USE16_ISR(%d)
 AIL_call_driver(0x%X,0x%X,0x%X,0x%X)
d
AIL_delay(%d)
lAIL_API_read_INI(0x%X,%s)
%Driver = %s
ealDevice = %s
%X)IO     = %X
SE1IRQ    = %d
,%uDMA_8  = %d
re_DMA_16 = %d
   Result = %u
er(AIL_register_timer(0x%X)
L_AIL_set_timer_user(%u,%u)
IAIL_set_timer_period(%u,%u)
eviAIL_set_timer_frequency(%u,%u)
AIL_set_timer_divisor(%u,%u)
A_AIL_interrupt_divisor()
 = AIL_start_timer(%u)
imeAIL_start_all_timers()
AIL_stop_timer(%u)
AIL_stop_all_timers()
 AIL_release_timer_handle(%u)
%uAIL_release_all_timers()
u,AIL_get_IO_environment(0x%X)

AIL_install_driver(0x%X,%u)
L_sAIL_uninstall_driver(0x%X)
AIL_install_DIG_INI(0x%X)
eAIL_install_DIG_driver_file(%s,0x%X)
uAAIL_uninstall_DIG_driver(0x%X)
AIL_allocate_sample_handle(0x%X)
taAIL_allocate_file_sample(0x%X,0x%X,%d)
AIL_release_sample_handle(0x%X)
%X)AIL_init_sample(0x%X)
eAIL_set_sample_file(0x%X,0x%X,%d)
GAIL_set_sample_address(0x%X,0x%X,%u)
X)AIL_set_sample_type(0x%X,%d,%u)
,0xAIL_start_sample(0x%X)
AIL_stop_sample(0x%X)
_AIL_resume_sample(0x%X)
et_AIL_end_sample(0x%X)
%dAIL_set_sample_playback_rate(0x%X,%d)
)AIL_set_sample_volume(0x%X,%d)
AIL_set_sample_pan(0x%X,%d)
IL_AIL_set_sample_loop_count(0x%X,%d)
AIL_sample_status(0x%X)
e(0AIL_sample_playback_rate(0x%X)
AIL_sample_volume(0x%X)
 )AAIL_sample_pan(0x%X)
x%AIL_sample_loop_count(0x%X)
X,%AIL_set_digital_master_volume(0x%X,%d)
AIL_digital_master_volume(0x%X)
L_sAIL_install_DIG_driver_image(0x%X,%u,0x%X)
AIL_minimum_sample_buffer_size(0x%X,%d,%d)
AIL_sample_buffer_ready(0x%X)
_AIL_load_sample_buffer(0x%X,%u,0x%X,%u)
e(0AIL_set_sample_position(0x%X,%u)
agAIL_sample_position(0x%X)
XAIL_register_SOB_callback(0x%X,0x%X)
,%AIL_register_EOB_callback(0x%X,0x%X)
_AAIL_register_EOS_callback(0x%X,0x%X)

AIL_register_EOF_callback(0x%X,0x%X)
  AIL_set_sample_user_data(0x%X,%u,%d)
0xAIL_sample_user_data(0x%X,%u)
lAIL_active_sample_count(0x%X)
rAIL_install_MDI_INI(0x%X)
 AIL_install_MDI_driver_file(%s,0x%X)
  AIL_uninstall_MDI_driver(0x%X)
AIL_allocate_sequence_handle(0x%X)
AIL_release_sequence_handle(0x%X)
rAIL_init_sequence(0x%X,0x%X,%d)
nstAIL_start_sequence(0x%X)
X)AIL_stop_sequence(0x%X)
insAIL_resume_sequence(0x%X)
aAIL_end_sequence(0x%X)
AIL_set_sequence_tempo(0x%X,%d,%d)
AIL_set_sequence_volume(0x%X,%d,%d)
)
AIL_set_sequence_loop_count(0x%X,%d)
  AIL_sequence_status(0x%X)
eAIL_sequence_tempo(0x%X)
0xAIL_sequence_volume(0x%X)
(AIL_sequence_loop_count(0x%X)
oAIL_set_XMIDI_master_volume(0x%X,%d)
loAIL_XMIDI_master_volume(0x%X)
LAIL_install_MDI_driver_image(0x%X,%u,0x%X)
AIL_MDI_driver_type(0x%X)
eAIL_set_GTL_filename_prefix(%s)
0x%AIL_timbre_status(0x%X,%d,%d)
eAIL_install_timbre(0x%X,%d,%d)
AIL_protect_timbre(0x%X,%d,%d)
AIL_unprotect_timbre(0x%X,%d,%d)
%XAIL_active_sequence_count(0x%X)
s)
AIL_controller_value(0x%X,%d,%d)
 eAIL_channel_notes(0x%X,%d)
AIL_sequence_position(0x%X,0x%X,0x%X)
xResult = %d:%d
AIL_branch_index(0x%X,%u)

AIL_register_prefix_callback(0x%X,0x%X)
L_cAIL_register_trigger_callback(0x%X,0x%X)
_nAIL_register_sequence_callback(0x%X,0x%X)
XAIL_register_beat_callback(0x%X,0x%X)
eAIL_register_event_callback(0x%X,0x%X)
AIL_register_timbre_callback(0x%X,0x%X)
lbaAIL_set_sequence_user_data(0x%X,%u,%d)
AIL_sequence_user_data(0x%X,%u)
calAIL_register_ICA_array(0x%X,0x%X)
nAIL_lock_channel(0x%X)
AIL_release_channel(0x%X,%d)
%XAIL_map_sequence_channel(0x%X,%d,%d)
0xAIL_true_sequence_channel(0x%X,%d)
AIL_send_channel_voice_message(0x%X,0x%X,0x%X,0x%X,0x%X)
_lAIL_send_sysex_message(0x%X,0x%X)
nAIL_create_wave_synthesizer(0x%X,0x%X,0x%X,%d)
AIL_destroy_wave_synthesizer(0x%X)
Floating-point support not loaded
LX  0123456789ABCDEF   hrt üDRIVER üDEVICE üIO_ADDR IRQ DMA_8_bit mpDMA_16_bit uCorrupted .INI file
al Insufficient memory for driver descriptor
lInsufficient low memory
   AIL3DIG AIL3MDI Invalid driver type
E üOut of driver handles
pOut of timer handles
  SOUND/SOUND.DAT SBAWE32.MDI w   sound//%s.sbk   SOUND/MUSIC.DAT .\ .bat .com .exe COMSPEC CMD COMMAND   Minimum DMA buffer size too large for VDM
dCould not allocate memory for driver
 m.DIG driver required
reDigital sound hardware not found
0xCould not allocate DMA buffers
Could not allocate build buffer
r VCould not allocate SAMPLE structures
veOut of timer handles
reDriver file not found
wDIG.INI Unable to open file DIG.INI
MA Out of sample handles
 fmt  	 ldata 	 lCreative 	 
WAVE 	 üUnrecognized digital audio file type
 _Invalid or missing data block
%Unrecognized digital audio file type
0xInvalid or missing data block
 FORM   CAT    XMID   Internal note queue overflow
llCould not allocate memory for driver
r .MDI driver required
 nXMIDI sound hardware not found
Could not initialize instrument manager
   Could not allocate SEQUENCE structures
Out of timer handles
moDriver file not found
rMDI.INI Unable to open file MDI.INI
 noTandy 3-voice music IBM internal speaker music m.AD .OPL   COut of sequence handles
E sInvalid XMIDI sequence
TIMB es
RBRN iveEVNT e nNo timbres loaded
UDriver could not install timbre bank %u, patch %u
IDriver could not install timbre bank %u, patch %u
 Insufficient memory for HWAVE descriptor
  Not enough memory to allocate file structures

Windows

  • Windows programs extend the above-mentioned MZ .exe format with "NE" (New Executable, 16-bit) and later "PE" (Portable Executable, 32- or 64-bit) sections. A single executable is allowed and de facto required to have both Windows and DOS sections, although usually the latter part rarely does more than display an error:
    • "This program cannot be run in DOS mode.", "This program requires Microsoft Windows.", or something similar appears in many Windows games when trying to run these in DOS or DOS-likes such as FreeDOS.
  • "PADDING" repeated over and over is frequently seen inside Windows executables.

Xbox

  • All executables that are signed for use on devkits will have "TESTTESTTESTTESTTESTTESTTESTTEST" to note that it has been signed with a dummy certificate.

Xbox 360

  • Many games include unused strings from the XDK, mostly related to PIX.
{EndCapture}
{BeginCapture}
{EndCaptureFileCreation}
{BeginCaptureFileCreation}
{LimitCaptureSize}
{Version}
{Disconnect}
{Connect}
PIX!{CaptureEnded}
PIX!{CaptureFileCreationEnded}
VGT_DEBUG
PA_SU_DEBUG
PA_SC_DEBUG
RBBM DEBUG
CP DEBUG
RB_DEBUG_0
CP_DEBUG
CPU Synchronizaiton
crashdump.pix2
    commandbuffers with the D3DCREATECB_DEBUG_ALLOCATOR flag set and\n    build using instrumented or debug versions of the D3D library.\n
\n    A likely potential reason for the hang is a bad growable command\n    allocator.  To rule out that possibility, try creating all growable\n
    Could the contents have become corrupted?  The list of indirect\n    buffer physical addresses and dword counts are as follows:\n
    It was a growable command buffer with its D3DALLOCATECALLBACK routine\n    at address 0x%x and a callback context of 0x%x.\n
\n    o The GPU appears to have hung while executing the command buffer\n    represented by the D3DCommandBuffer structure at address 0x%x.\n
\nThe GPU state doesn't match any recognized hangs.  Please send a repro\nscenario to gameds@microsoft.com so that we can supply a workaround.\n
ERR[D3D]:  The GPU is hung!

Funtech

Super A'can

  • All games contain the following strings in order near the beginning of the ROM:
(reverse engineer)
Trademark by United Microelectronics Corp. and Funtech Entertainment Corp. All rights reserved. License is permitted.

Nintendo

  • In virtually any Game Boy Color or Game Boy Advance game using the GHX or GAX Engine, it is guaranteed that you will find at least one copyright string for the GAX Engine.
    • The same also goes for the driver error strings.

Famicom Disk System

  • All games contain
    *NINTENDO-HVC*
    after the header.

Game Boy Advance

  • Games that use the GBA Link Cable or the GameCube-Game Boy Advance Cable will contain the below strings:
MultiSio4Sio32Load010528 Sio32MultiLoad010214

Nintendo DS(i)

  • Various SDK compiler strings can be found at the beginning of the ARM9 binary. Below is an example of the ones from Mario Kart DS:
[SDK+NINTENDO:BACKUP]
[SDK+NINTENDO:DWC20051007-1634_DWC20051007_NOTOUCH]
[SDK+NINTENDO:WiFi1.0.10200.0510061936]
[SDK+UBIQUITOUS:SSL]
[SDK+UBIQUITOUS:CPS]
  • Games that have Nintendo Wi-Fi support will sometimes contain company certificates somewhere in the ROM. Below is an example of the ones from Diddy Kong Racing DS:
BE, GlobalSign nv-sa, Root CA, GlobalSign Root CA
IE, Baltimore, CyberTrust, Baltimore CyberTrust Root
US, GTE Corporation, GTE CyberTrust Solutions, Inc., GTE CyberTrust Global Root
US, GTE Corporation, GTE CyberTrust Root
US, Washington, Nintendo of America Inc, NOA, Nintendo CA, ca@noa.nintendo.com
ZA, Western Cape, Cape Town, Thawte Consulting cc, Certification Services Division, Thawte Premium Server
CA, premium-server@thawte.com
ZA, Western Cape, Cape Town, Thawte Consulting cc, Certification Services Division, Thawte Server
CA, server-certs@thawte.com
US, VeriSign, Inc., Class 3 Public Primary Certification Authority - G2, (c) 1998 VeriSign, Inc. - For authorized use only, VeriSign Trust Network
US, VeriSign, Inc., VeriSign Trust Network, (c) 1999 VeriSign, Inc. - For authorized use only, VeriSign Class 3 Public Primary Certification Authority - G3
US, VeriSign, Inc., Class 3 Public Primary Certification Authority
US, RSA Data Security, Inc., Secure Server Certification Authority

Super Famicom/SNES

  • In many games using Nintendo's sound driver, there's a string with
    *Ver S1.20*
    in it.
  • Many games made using Nintendo's development tools also contain the string
    NAK1989 S-CG-CADVer1.02 910320
    or similar (the date and version number may be different).
  • Any game that uses or detects the SNES Mouse has the following strings. The version number may differ, but the strings otherwise remain the same:
START OF MOUSE BIOS
NINTENDO SHVC MOUSE BIOS Ver1.10
END OF MOUSE BIOS
  • Any game that uses or detects the Multitap peripheral has the following strings or something similar:
START OF MULTI5 CONNECT CHECK
NINTENDO SHVC MULTI5 CONNECT CHECK Ver1.00
END OF MULTI5 CONNECT CHECK
START OF MULTI5 BIOS
NINTENDO SHVC MULTI5 BIOS Ver2.00
END OF MULTI5 BIOS
  • Likewise for the Super Scope:
START OF SCOPE BIOS
NINTENDO SHVC SCOPE BIOS Ver1.00
END OF SCOPE BIOS

Nintendo 64

  • All 64 games have some string to indicate the microcode version used. Below is an example of the microcode credits from Mario Kart 64:
RSP Gfx ucode F3DEX         0.95 Yoshitaka Yasumoto Nintendo
RSP Gfx ucode F3DLX         0.95 Yoshitaka Yasumoto Nintendo
  • Some games will contain these filenames:
reverb.c
save.c
sprawdma.c
sirawread.c
sirawwrite.c
sirawdma.c
pirawread.c
epirawread.c
  • A couple of common audio-related strings:
N64 PtrTablesV2
N64 WaveTables

GameCube

  • All GameCube games will contain these strings within the executables:
    • Apploader strings, which are very common in most games.
    • These will often be printed to console, if one is connected (e.g. via the Dolphin emulator).
    • A list of controllers, including Nintendo 64 controllers plus peripherals and unreleased controllers like the Steering Wheel.
    • A warning about using the PAL debug setting:
! ! ! C A U T I O N ! ! !
This TV format "DEBUG_PAL" is only for
temporary solution until PAL DAC board
is available. Please do NOT use this
mode in real games!!!
  • Games that use the GameCube-Game Boy Advance Link Cable will contain a copy of the Game Boy Advance BIOS in the executable which contains the hidden credit
    // Coded by Kawasedo
    .

Wii

  • All Wii games will contain these strings within the executable, in addition to those seen in GameCube games:
    • A list of development units.
    • IOS strings, including error strings.
    • Wii Remote Bluetooth connection debugging messages.
    • In almost every Wii game, messages are sent to the console on the initialization (startup) of the game. Most of the messages aren't unique to any game, and are used in other Wii games. The below fragment, for example, came from Wii Sports Resort:
Most, if not all, of the messages.
App_MEMalloc\n
App_MEMfree\n
__wudSyncFlushCallback() : %d, Sync: %d\n
Nintendo RVL-CNT
Nintendo RVL-WBC
Found the registered WBC in database\n
Removed WBC data\n
new entry index is %d\n
%d devices is stored into SC.\n
NANDOpen. [%d]\n
NANDSeek. [%d]\n
NANDWrite. [%d]\n
NANDClose. [%d]\n
Pairing Done\n
write stored link key\n
addr : %02x:%02x:%02x:%02x:%02x:%02x\n
key  : %02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x\n
Cancel searching because 4 connections exist.\n
/title/00010004/52464e4a/data/RPHealth.dat
WbcSaveData: %s\n
WBC to WiiFit\n
 %02x %02x %02x %02x %02x %02x\n
 %02x %02x %02x %02x %02x %02x %02x %02x\n
 %02x%02x%02x%02x\n
 WARNING: Illigal status\n
__wudDeleteFlushCallback() : %d, Delete: %d\n
hci_version   : %02x\n
hci_revision  : %04x\n
lmp_version   : %02x\n
lmp_subversion: %04x\n
manufacturer  : %04x\n
 ==> 2045 firmware ver.002.003.014.%d\n
__wudInitFlushCallback() : %d, Init: %d\n
name : %s\n
Nintendo RVL-CNT-01
Error: the workarea for synchronizing WBC pairing information is not allocated.\n
NANDInit. [%d]\n
CRC  = %d:%08x\n
CRC' = %d:%08x\n
CRC Error on WiiFit SaveData.\n
WiiFit does not register WBC yet.\n
LinkKey saved in WiiFit SaveData is invalid.\n
WBC from WiiFit\n
__wudShutdownFlushCallback() : %d, Shutdown: %d\n
__wudClearControlBlock\n
BTA_Init() is started\n
BTA_Init() is done\n
WUDShutdown()\n
WUDSetSyncDeviceCallback\n
WUDSetClearDeviceCallback\n
WUDStartSyncSpDevice()\n
WUDStartClearDevice()\n
WUDSetDisableChannel()\n
BTM_SetAfhChannels() : %d\n
WUDSetHidRecvCallback()\n
WUDSetHidConnCallback()\n
Initialize the BCM2045 firmware complete.\n
Reset again!\n
Install the patches\n
Download the patch codes [%d]\n
RemovePatch Callback\n
SuperPeekPoke Callback\n
RemovePatch\n
__wudAppendRuntimePatch()\n
SuperPeekPoke\n
start __wudInitSub()\n
BTA_DmAddDevice(): %d\n
BTA_HhAddDev()\n
WUDiRemoveDevice : \n
 handle : %d,  addr : %02x:%02x:%02x:%02x:%02x:%02x\n
remove device info from database.\n
BTA_HhRemoveDev()\n
 handle : %d\n
BTA_DmRemoveDevice(): %d\n
WARNING: USB_CLOSE_FAILURE!\n
__wudCleanupStackCallback: 
BTA_ENABLE_EVT\n
host : %02x:%02x:%02x:%02x:%02x:%02x\n
BTA_DISABLE_EVT\n
BTA_DM_PIN_REQ_EVT\n
BTA_DM_AUTH_CMPL_EVT\n
  addr : %02x:%02x:%02x:%02x:%02x:%02x\n
  key  : %02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x\n
  result = %d\n
BTA_DM_AUTHORIZE_EVT\n
BTA_DM_LINK_UP_EVT\n
   addr : %02x:%02x:%02x:%02x:%02x:%02x\n
%s --> %02x:%02x:%02x:%02x:%02x:%02x\n
not paired
4 links exist
BTA_DM_LINK_DOWN_EVT\n
result: %d\n
this device in not paired\n
WARNING: link num count is reset.\n
BTA_DM_SIG_STRENGTH_EVT\n
BTA_DM_BUSY_LEVEL_EVT\n
INQUIRY RESULT: %02x:%02x:%02x:%02x:%02x:%02x   %02x%02x%02x   %d\n
INQUIRY_COMPLETED\n
DISCOVER RESULT:  %02x:%02x:%02x:%02x:%02x:%02x   %s (%04x)\n
DISCOVER COMPLETED\n
SEARCH CANCEL\n\n
Warning: Search Callback returns invalid event\n
__wudProcSyncEvent()\n
__wudProcDeleteEvent()\n
MODULE FATAL ERROR\n
__wudDeviceStatusEventStackCallback\n
---- WARNING: USB FATAL ERROR! ----\n
BTM_CB_EVT_RETURN_LINK_KEYS\n
BD_ADDR:  %02x:%02x:%02x:%02x:%02x:%02x\n
LINKKEY: %02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x\n
this device is not stored in NAND\n
   LAST: %02x:%02x:%02x:%02x:%02x:%02x\n
BTM_CB_EVT_READ_STORED_LINK_KEYS\n
  status: %d  max_keys: %d  num_keys: %d\n
BTM_CB_EVT_WRITE_STORED_LINK_KEYS\n
  status: %d  num_keys: %d\n
BTM_CB_EVT_DELETE_STORED_LINK_KEYS\n
WARNING: no entry is deleted\n
Unknown event\n
__wudPowerMangeEventStackCallback\n
hci_status = %d\n
Unknown device is connected and changes the connection type!!!!\n
 addr = %02x:%02x:%02x:%02x:%02x:%02x,  status = %d\n
_WUDEnableTestMode\n
_WUDStartSyncDevice()\n
_WUDDeleteStoreDevice()\n
dev number = %d\n
Not Found
Found the registered WBC\n
Removed\n
Not Found WBC\n
BTA_HH_ENABLE_EVT\n
BTA_HH_DISABLE_EVT\n
BTA_HH_OPEN_EVT\n
handle: %d, addr: %02x:%02x:%02x:%02x:%02x:%02x\n
Nintendo RVL-CNT
error code: %d\n
BTA_HH_CLOSE_EVT\n
device handle : %d   status = %d\n
BTA_HH_ADD_DEV_EVT\n
result: %d, handle: %d, addr: %02x:%02x:%02x:%02x:%02x:%02x\n
BTA_HH_RMV_DEV_EVT\n
WARNING: link num count is modified.\n
BTA_HH_SET_RPT_EVT\n
BTA_HH_GET_RPT_EVT\n
BTA_HH_SET_PROTO_EVT\n
BTA_HH_GET_PROTO_EVT\n
BTA_HH_SET_IDLE_EVT\n
BTA_HH_GET_IDLE_EVT\n
BTA_HH_GET_DCSP_EVT\n
BTA_HH_VS_UNPLUG_EVT\n

These messages follow the printf formatting.

    • These will often be printed to console, if one is connected (e.g. via the Dolphin emulator).

Wii U

  • Multiple Wii games released on the eShop have empty folders removed from the filesystem and a few bytes in the dol changed.

Sega

Mark III/Master System/Game Gear

  • All officially licensed games contain the following string at 0x7FF0 in the ROM. This string is read by the console's BIOS and will refuse to boot the game if not found.
TMR SEGA

Mega CD/Sega CD

  • Any game using the Cinepak codec will contain a string indicating the version used.
CINEPAK VER 1.3

32X

  • Module name from the "MARS User Header":
MARS CHECK MODE
  • Words sent and checked during Mega Drive and SH-2 synchronization:
M_OK
S_OK
SDER
SQER

Sinclair Research

ZX Spectrum

  • Any game using Speedlock as its protection will have this message near the beginning of the game's data:
SPEEDLOCK Protection System
© DJL Software & D. Aubrey Jones 1984 - Tel:0793 724317
* Government Health Warning
- Attempting to crack SPEEDLOCK can damage your sanity!

Sony

PlayStation

  • Virtually every PlayStation game has a list of functions from the standard library.

The region string can usually be found in the game executable's first lines of text.

Sony Computer Entertainment Inc. for North America area
Sony Computer Entertainment Inc. for Japan area

Games that use Multitap will include the following string:

PS-X Control TAP Driver  Ver 3.0

Common commands visible in most games via the tty debug console or text in the game files.

$Id: sys.c,v 1.104 1995/09/01 02:20:49 
ResetGraph:jtb=%08x,env=%08x
ResetGraph(%d)...
SetGraphReverse(%d)...
SetGraphDebug:level:%d,type:%d reverse:%d
SetGrapQue(%d)...
DrawSyncCallback(%08x)...
SetDispMask(%d)...
DrawSync(%d)...
%s:bad RECT(%d,%d)-(%d,%d)
%s:ClearImageLoadImageStoreImageMoveImageClearOTag(%08x,%d)...
ClearOTagR(%08x,%d)...
DrawOTag(%08x)...
PutDrawEnv(%08x)...
PutDispEnv(%08x)...
GPU timeout:que=%d,stat=%08x,chcr=%08x,madr=%08x,func=(%08x)(%08x,%08x)
$Id: intr.c,v 1.71 1995/08/29 11:01:44 suzu Exp $unexpected interrupt(%04x)
intr timeout(%04x:%04x)
DMA bus error: code=%08x
VSync: timeout
SPU:T/O [%s]
wait (reset)wait (wrdy H -> L)wait (dmaf clear/W)wait (ioctl/IRQ)
Can't Open Sequence data any more

<!--T:35-->
This is not SEP Data.
This is not SEQ Data.
This is an old SEQ Data Format.

<!--T:36-->
MDEC_rest:bad option(%d)
MDEC_in_syncMDEC_out_sync DMA=(%d,%d), ADDR=(0x%08x->0x%08x)
 FIFO=(%d,%d),BUSY=%d,DREQ=(%d,%d), RGB24=%d,STP=%d
%s timeout:
MDEC_vlec: invalid VLC ID
noneCdlReadSCdlSeekPCdlSeekLCdlGetTDCdlGetTNCdlGetlocPCdlGetlocL?CdlSetmodeCdlSetfilterCdlDemuteCdlMuteCdlReset
CdlPauseCdlStopCdlStandbyCdlReadNCdlBackwordCdlForwardCdlPlayCdlSetlocCdlNopCdlSyncDiskErrorDataEndAcknowledge
CompleteDataReadyNoIntr%s:(%s) timeout Sync=%s, Ready=%s

<!--T:37-->
%s: DiskError(%02x)
CDROM: unknown intr(%d)
CD_syncCD_ready%s...
%s: no param
CD_cwCD open(%02x)...
CD_init:addr=%08x
CD read retry %2d(%02x:%02x:%02x)
CD_readCD_datasyncCdInit: Init failed
%s: path level (%d) error
%s: dir was not found
CdSearchFile: disc error
CdSearchFile: searching %s...
%s:  found
%s: not found
CD_newmedia: Read error in cd_read(PVD)
CD001CD_newmedia: Disc format error in cd_read(PVD)
CD_newmedia: Read error (PT:%08x)
CD_newmedia: sarching dir..
%08x,%04x,%04x,%s
CD_newmedia: %d dir entries found
CD_cachefile: dir not found
CD_cachefile: searching...
...(%02x:%02x:%02x) %8d %s
CD_cachefile: %d files found
track=%d,%d
CdGetToc2: %02x:%02x:00
CdGetToc2: error
DMA STATUS ERROR %x
0123456789abcdef0123456789ABCDEF

Others

Adobe Flash

  • For games published on Newgrounds, if it includes medals/achievements, chances are a couple of placeholder text strings can be found:
NEWGROUNDS API CONNECTOR
Medal Popup
Place this clip on the root of your movie, spanning any frames where medals are called. (this clip is hidden)
  • If it includes any ads, this placeholder string can also be found:
Flash Ad