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

From The Cutting Room Floor
Jump to navigation Jump to search
This page contains changes which are not marked for translation.
Other languages:
English • ‎português do Brasil • ‎русский • ‎中文(简体)‎ • ‎한국어

Sometimes, you can find a random piece of unused content or two in one game. And sometimes, that little piece can be found in many, many other games. This page aims to list all the egregiously common things in games, mainly to reduce the redundancy on every single page. If something is listed here, it's not worth mentioning in an article.

General

  • Pressing the tilde (~) key or a similar key above the Tab key (the grave key) during gameplay brings up a console in a large number of Windows, Linux, and Mac games.
  • Game(s) made with commercially-available engines such as Game Maker, Multimedia Fusion, RPGMaker, Unreal Engine, and Unity will have default assets within the game's folders and/or files.
  • Similarly, many games do create logs during gameplay. Unless the functionality of these is disabled by default or the game happens to include one of these hidden in its directory, these are usually not worth covering, especially with computer games.
  • Dialogue and graphics relating to control methods (i.e. keyboards, dedicated controllers) can change depending on which platform the game is being played on.
  • Many modern Japanese games will have a warning screen noting that piracy over the Internet, including distributing the game without the owners' permissions, is illegal. An example of such a screen can be seen below:

CESA Disclaimer.png

Or on the other hand, the warning screen is displayed in other languages and can be found in SNK-published games, such as The King of Fighters XIV, Samurai Showdown (2019), SNK Heroines: Tag Team Frenzy, etc.:

Japanese English (official)
<ご注意>
ゲームソフトを権利者の許諾なく、インターネットを通じて配
信、配布する行為、また、違法なインターネット配信と知りな
がらダウンロードする行為は法律で固く禁じられております。
みなさまのご理解とご協力をお願いいたします。
WARNING
Duplication and distribution without permission from the copyright holder,
transmission and distribution through the internet, 
and downloading of this game software is prohibited by law. 
We ask for your understanding and cooperation.
(Source: Chaos Productions Inc.)

Arcade

Service Mode

Almost every single arcade game will have an operator's menu. The details of these are usually included in the operator's manual (note that scans may not always be available for a particular game) and is generally accessed either with a test button (not to be confused with a service button, which adds a credit) or a DIP switch, the latter possibly requiring a power cycle. The purpose is usually to assure the machine is still able to accept coins, test for controls, play sounds, and test the monitor. Pictured below is an example from Hebereke's Popoon:

Tilt

Just like pinball machines have a "tilt" feature to penalize cheating and violence against the unit, the JAMMA connector features a dedicated pin for a tilt input (mapped by default in MAME to the T key).

Rarely connected in most cabinets, the consequence of triggering this input varies from absolutely nothing (as in most games), an audible alarm, a warning screen followed by a reset (as in Bubble Bobble), to an immediate reset. It is therefore most analogous to a pinball machine's slam tilt.

Nintendo

Game Boy Color/Nintendo DSi

  • All licensed software nominally exclusive to the Game Boy Color must, according to Nintendo's technical standards, run as far as to display an error message if the game is inserted into a Game Boy, Super Game Boy, or a similar non-GBC-compatible device. These are only noteworthy if they go completely unused or there are notable regional differences (besides translation).
    • Detection of the Game Boy-compatible console model relies on their different bootroms passing control to the program on cartridge with different values in the CPU registers. If the title restarts from its initial entrypoint without the console actually resetting (for example as a consequence of a bug or glitch in the game), this detection will generally fail and the title will assume a non-GBC-compatible console, and will stop updating the color data, etc. often resulting in visual oddities. This effect is sometimes called Glitch Dimension, due to the usage of said term in the Pokémon glitch community.
  • An equivalent requirement applies to the very limited number of physical DSi-exclusive games, although they contain separate executables for DS and DSi and the onus of running the most appropriate one is the responsibility of the console.
  • Hybrid and exclusive New 3DS titles, which switched back to a single executable, do not have these features - they all contain a v9.2 or above offline update even for original 3DS consoles, and the v9.0+ launcher will enforce New 3DS exclusivity. (Most N3DS-only titles will freeze almost immediately if forced to launch on an "old" 3DS.)
  • Any Game Boy game made with GB Studio will contain the following crash handler.

Grimace's-Birthday-GBC-Crash.png

SNES/Nintendo 64

  • Many games will display a region error on boot when attempting to play the NTSC version on a PAL console and vice versa. These are only noteworthy if they go completely unused or there are notable regional differences (besides translation).

Sega

Genesis/Mega Drive

  • Many games will display a region error on boot when attempting to run the game on a console which doesn't match the game's region. These are only noteworthy if they go completely unused or there are notable regional differences (besides translation).

SNK

Neo Geo Pocket Color

  • Similar to the Game Boy Color, there's an error message any time a game is inserted into a plain Neo Geo Pocket when a game is meant solely for the Pocket Color. These are only noteworthy if they go completely unused or there are notable regional differences (besides translation).

Unused Content

General

  • Games released on multiple platforms will sometimes share the same files across all ports, including things like graphics and text referring to the hardware it was released on. As a result, you can sometimes find things like Xbox and PlayStation 2 button prompts in a GameCube port of a game.

SDK Content

Nintendo

  • Various portions of the GameCube and Wii SDKs can be found in random games.
    • rebirth.thp, portions of the U.S. Constitution, etc.
  • Super Game Boy dummy headers are featured in most Game Boy games from 1994 onward.

Ren'Py

  • Various engine placeholder graphics as well as audio can be found within the renpy/common directory.

Unity

  • Various graphics from the Unity SDK tend to be common leftovers. These include Unity logos, various types of "beta" or "development" watermarks, a yellow warning sign, a "personal edition" or "free edition" splash image, and many smaller Unity-specific UI elements.
  • There are many Unity plugins that aid in the development processes of games, through various means, and leftover assets from such plugins can often be found in the files of released Unity games. Some plugins are more popular than others, with assets from them appearing in a number of Unity games.

Unreal Engine

Hmmm...
To do:
Some examples please.
  • Various graphics from the Unreal Engine UDK tend to be common leftovers.
  • Some games, like A Hat in Time, share console commands with Unreal Engine 3.

Sega

Sega Pico

KidsCommunicationPicoLogoScreen.png
Elementary, my dear Cactus.
This needs some investigation.
Discuss ideas and findings on the talk page.
Specifically:
  • Is there a way of triggering any of these in-game?
  • Are the jingles from another game?
  • All Sega Pico games from mid-2001 onwards began using a standard logo screen that went with the console's rebrand as the Kids Communication Pico around that time. It uses its own SMPS sound driver, separate from whatever the game itself uses, and some (but not all) instances of this logo screen actually contain more sounds than the single jingle that is normally used.
    • Perhaps most interesting is this arrangement of Michael Jackson's "Smooth Criminal":
  • (Sound ID: 81)
    • Also unused are these bunch of jingles:
    (Sound ID: A1)
    (Sound ID: A2)
    (Sound ID: A3)
    (Sound ID: A4)
    (Sound ID: A5)
    (Sound ID: A6)
    (Sound ID: A7)

    J2ME

    China Mobile Games-released games

    J2ME games released by China Mobile Games contain a standard logo screen, with a jingle playing along it.

    Bugged Fixed
    Isolated - Bugged Isolated - Fixed

    The string track (channel 5) of the jingle has two extra notes that go unheard, as a program change event immediately follows them. As feature phones are limited in performance, this probably makes playing the jingle easier for them.

    Text Strings

    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)

    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.

    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 Wifi 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

    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

    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

    Sega CD/Mega 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
    
    This is not SEP Data.
    This is not SEQ Data.
    This is an old SEQ Data Format.
    
    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
    
    %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
    • Some PlayStation games released after 1998 contain some form of copy protection/anti-piracy measures, in order to curb modchips and illegal copies that were instrumental in the spread of piracy on the system. Sony developed two systems for protecting games: Anti-Modchip and LibCrypt.

    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

    Regional Differences

    General

    • Publisher or Licensing information can change between games. Only put this on a page if it's a significant change.
    • The European versions of some games will contain a language option not found in the other versions of the game. This is more common on consoles that lack a built-in language setting like the Nintendo 64 or Game Boy Advance.
      • The European versions can also have more languages or a different set of languages compared to other versions of games.
    • Minor grammatical changes between regions. Only put this on a page if it's a significant change.
    • Japanese games may include an option to show or hide furigana above kanji. An option like this will no doubt be absent from any other version.
    • PAL versions of games will sometimes have an option to choose between 50Hz or 60Hz. This is most commonly seen in Dreamcast and GameCube games.
    • Platform names will be changed accordingly by region. An example of this can be seen in Kirby's Dream Land 3:
    Japan International
    KDL3MinigameSFC.png KDL3MinigameSNES.png

    Arcade

    • It's common for games made for the US market between 1989 and 2000 to have a "Winners Don't Do Drugs" screen, due to a deal between then-FBI Director William S. Sessions and the American Amusement Machine Association. This is also true for "Recycle It, Don't Trash It!" and "AIDS is real. Protect Yourself", although these are comparatively much less common. Only noteworthy if it goes unused or was added in a later revision, as was the case with Cabal. There may also be AAMA parental advisory screens on US-market arcade games, especially on titles released during the aforementioned timespan.
    • Japanese games will have a screen warning against exporting it outside of Japan. Screens like these can sometimes be removed, but are often changed to the appropriate region that game was distributed in.

    Nintendo

    • The Nintendo logo can be blue or silver in Japanese (and sometimes Korean, Asian, or Chinese) versions of games, but is usually red outside of Japan.
    • Several games, especially during the NES and SNES eras, will add strings such as "Licensed by Nintendo of America" (for the US market) or "Licensed by Nintendo" (for the European market) to the copyright and/or title screens:
    US Europe
    SilentServiceNESUSACopyright.png SilentServiceNESEURCopyright.png

    Sony

    • In the Japanese versions of many games, you press to confirm and to cancel. For the international versions, it's vice versa (in most PS1 and PS2 games, however, you may press instead to cancel).
      • Some PS1/PS2 games, such as those in the Gran Turismo series (until Gran Turismo 4), use both / to confirm and / to cancel.
      • From the PSP and PS3 onwards, games can query the console for the appropriate "OK" button, however this is rarely implemented, and where it is - it may be inconsistently so (for example, using the system's default for standardized save/load dialogs and a hardcoded default everywhere else).
      • On Japanese/Asian PS4 units with firmware v6.50 or newer, it is possible to officially select which button stands for "OK", with caveats that effects within games rely on the "OK" button querying mechanism mentioned above.
    • European versions of PlayStation games (and by extension some US releases - and even at least one Japanese release - that originated in Europe, such as earlier Psygnosis titles) may have an anti-piracy warning before any publisher/developer logos:
    PS1 PAL piracy warning.png

    Anti-Piracy

    General

    • A common method of anti-piracy is still to have the game lock up on a black screen if the copy protection checks fail.
    • All forms of media, manual, or goodie checks present on home computer games (other than ones that react to being subverted). If the game is later patched or rereleased, it is also common that said copy protections get removed.

    Microsoft

    • Every game has a 14 MB sector readable by any regular DVD drive, and that is the only one that can be read by most. This sector contains a single movie with an Xbox animation (seen to the right) and a disclaimer screen.

    Xbox 360

    • Similar to the above, but ~60 MB this time.

    Sega

    Genesis/Mega Drive

    • Many games will lock up on a solid red screen on boot if the checksum fails.

    Sony

    PlayStation

    • Many games released from 1998 onward will display an error screen if a modchip is detected -typically by attempting to read the region code, specially encoded in the physical shape of the data track near its beginning only, elsewhere on the disc. "Non-stealth" modchips (including PS2 modchips that lack a “stealth mode" for PS1 games or have it turned off) would inject the region code data throughout instead of only at the beginning, so random checks would be done to ensure that the region code data was not still being injected. If it was, the game would be shut down immediately and abruptly cut to the error screen. "Stealth" modchips avoid this by only injecting data when the game calls for it, and patches existed from warez groups to prevent the error screen from coming up on pirated copies regardless of what modchip was used. If music was streamed from the disc in "Red Book" format, it would continue playing, otherwise all audio would cut off too.

    Early Japanese releases, such as PoPoRoGue, simply featured a red hand sign, which would serve as the namesake for the Japanese term "Red Hand Protect", or RHP for short. Later releases feature a slightly larger "No go" sign with Japanese or English text informing the user that the console may have been modified. The English version adds an additional line instructing the user to call the phone number for Sony Computer Entertainment America, where the user would be instructed on how to remove a modchip without a soldering iron and given the option to send their console back to Sony to have the modchip removed.

    Japan (Red Hand) Japan (Later) English
    PSXsoftwareterminatedJP RHP.png PSXsoftwareterminatedJP.png PSXsoftwareterminated.png
    ­
    ­
    ­
    強制終了しました。
    本体が改造されている
    おそれがあります。
         SOFTWARE TERMINATED
    CONSOLE MAY HAVE BEEN MODIFIED
         CALL 1-888-780-7690
    These are only notable if region-exclusive, or if a region uses the wrong screen (such as in Dino Crisis or Um Jammer Lammy.)
    • As this method would deliberately and unfairly affect users of modchips (a third-party accessory) regardless of the legitimacy of the game disc, presumably conflicting with consumer rights in EU nations, it was eventually rejected by SCEE, which promoted the LibCrypt protection instead (based on non-standard subchannel data), which can cause the game to crash, freeze, or perform various other tricks if a pirated copy of a game is detected. This is most common with European versions of games, such as in Ape Escape where it disables controller input on the main menu. Many LibCrypt games are also known to cause issues if they are played on a PlayStation 3.


    PlayStation 2

    • Some games that are burned onto a disc will sometimes lead to the Red Screen.

    Others

    Adobe Flash

    Papa's Anti-Piracy Pizza.png
    • Games can check if they are running on a site other than the one(s) intended. If the check fails, they will display a message like this one from Papa's Pizzeria:
    • Many Flash games with sound will often have a blank .wav file stored in the sound directories. This will often be titled "0.wav" and be 44 bytes in size.