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

Frogger 2: Swampy's Revenge (PlayStation, Windows, Dreamcast)

From The Cutting Room Floor
Jump to navigation Jump to search

Title Screen

Frogger 2: Swampy's Revenge

Developer: Blitz Games[1]
Publisher: Hasbro Interactive[1]
Platforms: PlayStation, Windows, Dreamcast
Released in US: September 21, 2000[2]
Released in EU: October 2000[1]


AreasIcon.png This game has unused areas.
CodeIcon.png This game has unused code.
DevMessageIcon.png This game has a hidden developer message.
DevTextIcon.png This game has hidden development-related text.
GraphicsIcon.png This game has unused graphics.
MovieIcon.png This game has unused cinematics.
MusicIcon.png This game has unused music.
SoundIcon.png This game has unused sounds.
TextIcon.png This game has unused text.


DevelopmentIcon.png This game has a development article
PrereleaseIcon.png This game has a prerelease article

Swampy, one of many crocodiles Frogger's jumped on over the years, decides to take out his anger by kidnapping Frogger's girlfriend Lily's several younger siblings.

Hmmm...
To do:
  • There are mentions of 6 "TEST files/maps and other DUMMY data that need investigation.
  • Document unused things found in the many prototypes. Consider how to treat the N64 version's page. Maybe it should just be treated as prototype subpages, since most of it will be prototypes.
  • Document beta levels. (Art CDs, Prototypes, N64 Source backup, files in builds, etc)
  • Document early FMVs. (Check prototypes and asset backups)
  • Document interesting, unused, and early scripts. (Check prototypes and asset backups, use decompiler)
  • Document developer documents.
  • Document cool things found in the source code, such as that obfuscation nonsense in the PC version.
  • Document promotional material. (Advertisements Videos, Advertisements images on tape + CDs + scanned)
  • Figure out how to get renders from .ase files. (Check Prototypes, May 22 Backup, Tape Backup)
  • Document data from the 1998 N64 files as best as possible.

Sub-Pages

Read about development information and materials for this game.
Development Info
Read about prerelease information and/or media for this game.
Prerelease Info

Unused Graphics

TITLES.SPT

An early iteration of the game's logo, as well as Team Spirit and Interactive Studio's logos.

Windows

The Windows version contains two unused water textures in \textures\procdata.

Frogger2 reflect.png

Frogger2 water.png

Dreamcast

FROGGER2.PVR (frogger2.bmp) is an early version of the game's logo. It looks like the the previous game's logo with a 2 slapped on.
Frogger2dc FROGGER2.png

EU Screens

The North American Dreamcast release has loading screens for a European version, but the Dreamcast version wasn't released in Europe, making these go unused. However, a retail/master European version using these loading screens was submitted to Sega of Europe for approval. This build is documented at Hidden Palace. The title screen has a different logo, and the loading screen is entirely different.

Frogger2dc FR2LEGALEU.png Frogger2dc LOADINGEU.png

Mullard is my Daddy Easter Egg

The PC version contains a strange easter egg. If you create an empty file at the path m\u\l\l\a\r\d\is_my_daddy.txt, the sound made when a player croaks changes from frogcroak.wav (self-explanatory) to an otherwise unused sound named mullard.wav (a distorted, echoing voice clip of an unknown individual yelling "MULLARD!"). This is likely a reference to Kevin Mullard, the game's producer.

frogcroak.wav mullard.wav

This change was added on August 31st 2001 by James Hubbard, one day before the first PC master was made. It is unknown what the story is behind this easter egg.

Debug Options

In-game Editor

Debug PC builds (many of the prototype builds) contain an in-game editor which can be opened with F10. This editor was used to control enemy placements and other data contained in the .DAT files.

Hmmm...
To do:
Add a screenshot

Unused Level Collision Geometry

Hmmm...
To do:
Search the game's file system. See if we can open the test environments (test1-6.col, sub1-4.col, etc) and boss environments (spaceboss.col, subboss.col, etc) left in the game.

\collision on the Windows version has multiple entries for unused test environments. Not only are there test environments left on the disc, there seems to be files named subboss.col, spaceboss.col, halloweenbossb.col, and others that hint that boss fights were initially planned for the game.

Note: These collision entries also have matching scenics files that match up by name just like the other levels in the game.

test1.col
Frogger2Test1.png

Unused Video

The file ATARIS.SFD appears in the "FMV" folder alongside the other FMV cutscenes and company logos in the Dreamcast release. It features the Hasbro-era Atari sequence. The title was originally meant to be released under the Atari banner, but it went under the standard Hasbro Interactive branding instead, so this file goes unused.

Unused Text

tty debug console

The tty console displays a lot of chatter. The following is from booting through a playthrough of the training level on US PlayStation release.

RAM start 0xbd7b4  0x14074c (1312588)

memoryInitialise: base = 0xbd7b4, size = 0x14074c
memoryInitialise: pool.base = 0xc37b4, pool.size = 0x13a74c, pool.top = 0x1fdf00


FROGGER2 PSX 

Setting Mode For NTSC

Read CD index
READ FILE: TITLESUS.FLA
READ FILE: TEXTURES\MEMCARD.SPT
READ FILE: FONT12.FON
READ FILE: LANGUAGE.TXT
small game text = 8481
WorldID Is : -1
READ FILE: SFX\SYSTEM\SFX.SBH
READ FILE: SFX\SYSTEM\SFX.SBB
Loading Code Overlay Video
Playing stream \HASBROS.STR;1
vid channel set to 1
Playing stream \BLITZS.STR;1
vid channel set to 1
Playing stream \01S.STR;1
vid channel set to 1
Finished FMV
Lang Select 1
Loading Code Overlay Game
Checking Save Game
VSync: timeout
No game save data found
Saving 2624
VSync: timeout
No errors
READ FILE: LANGUAGE.TXT
small game text = 8481
----- FREEING ALL LISTS ----------
Freeing Schmambient sound list
Freeing linked list : SAMPLE : (2 elements)
Freeing All Texture Banks : TEXTURE

memoryInitialise: base = 0xbd7b4, size = 0x14074c
memoryInitialise: pool.base = 0xc37b4, pool.size = 0x13a74c, pool.top = 0x1fdf00
FileName : 
READ FILE: LANGUAGE.TXT
small game text = 8481
READ FILE: BIGFONT.FON
READ FILE: FONT12.FON
----- DONE FREEING ALL LISTS -----
FileName : TEXTURES\GENERIC.SPT
READ FILE: TEXTURES\GENERIC.SPT
READ FILE: SFX\FROGGER\SFX.SBH
READ FILE: SFX\FROGGER\SFX.SBB
WorldID Is : 8
READ FILE: SFX\FRONTEND\SFX.SBH
READ FILE: SFX\FRONTEND\SFX.SBB
READ FILE: STAKFILES\FRONTEND.STK
READ FILE: STAKFILES\GENERIC.STK
STACK FILE: START.COL
STACK FILE: START.SCE
World Object Not Found
STACK FILE: GENERIC.PIL
READ FILE: STAKFILES\FROGGER.STK
STACK FILE: FROGGER.PIL
FileName : TEXTURES\HUB.SPT
READ FILE: TEXTURES\HUB.SPT
STACK FILE: HUB.PIL
STACK FILE: HUB1.BFF
World Texture (crc 4137556694) not found
World Texture (crc 2083360198) not found
World Texture (crc 590319713) not found
STACK FILE: GENERIC.TIT
STACK FILE: HUB.TIT
Skinned Model..............levels.psi, -2170, -160, 6400
players.psi, -2200, 2150, 6260
ghandle.psi, -700, 850, -3900
wat_flbm.psi, 3400, 400, -2850
islandc.psi, -1780, -70, -1140
islanda.psi, 0, 0, 0
islandb.psi, 1500, -70, -900
xx_grnd.psi, 200, -650, -2000
wat_pond.psi, 200, -350, -2000
spf_fall.psi, -3290, 370, -4080
Could Not Create Scenic Object.
framea.psi, -2170, 1050, 6380
frameb.psi, -3160, 1060, 6140
framec.psi, -1360, 1040, 5810
framed.psi, -1110, 1050, 4870
froggr.psi, -2170, 1050, 6370
wart.psi, -2660, 1050, 3810
lillie.psi, -3150, 1060, 6130
babyfrog.psi, -3780, 1050, 5270
twee.psi, -3450, 1040, 4330
robofrog.psi, -1680, 1060, 4030
hopper.psi, -1120, 1050, 4870
swampy.psi, -1370, 1040, 5810
framed.psi, -3810, 1050, 5280
framec.psi, -3460, 1040, 4340
framea.psi, -2670, 1050, 3800
frameb.psi, -1680, 1060, 4020
slu_fall.psi, -3800, 500, -4690
xxa_fall.psi, -2530, -370, -2620
wat_frth.psi, -3800, 500, -4690
ilandbse.psi, 0, 0, 0
ada_jar.psi, -2690, 800, 6420
ada_jar.psi, -2130, 800, 3770
ada_jarb.psi, -1090, 800, 5370
ada_jarb.psi, -3690, 800, 4760
plantsk.psi, -2300, -420, 6180
world.psi, 0, 0, 0
STACK FILE: ENTITY-8-0.DAT
MemLoadEntities() --- SUPERFAST VERSION ---
Loading 44 paths..

memoryAllocate: failure @ platform.c:443 - block size illegal (0 bytes)Success!
----------------------------------------------------
STACK FILE: SCRIPT-8-0.FEV
Loading script SCRIPT-8-0.FEV...
ok
STACK FILE: SFXANIM80.SAM
Could Not Find Texture : FROGWATCH01
Could Not Find Texture : CLK_HAND
Could Not Find Texture : CLK_HEAD
Could Not Find Texture : AHOVER
Could Not Find Texture : QHOVER
XA track '\CDA.XA;1' 69750->99213
XA track '\CDB.XA;1' 99214->124149
World ID : 8 
XAplayChannel: 69750->99213
Could Not Find Texture : 
Could Not Find Texture : 
----- FREEING ALL LISTS ----------
Freeing Schmambient sound list
Freeing linked list : SAMPLE : (36 elements)
Freeing All Texture Banks : TEXTURE
psi destroy

memoryInitialise: base = 0xbd7b4, size = 0x14074c
memoryInitialise: pool.base = 0xc37b4, pool.size = 0x13a74c, pool.top = 0x1fdf00
FileName : 
READ FILE: LANGUAGE.TXT
small game text = 8481
READ FILE: BIGFONT.FON
READ FILE: FONT12.FON
----- DONE FREEING ALL LISTS -----
FileName : TEXTURES\GENERIC.SPT
READ FILE: TEXTURES\GENERIC.SPT
READ FILE: SFX\FROGGER\SFX.SBH
READ FILE: SFX\FROGGER\SFX.SBB
WorldID Is : 8
READ FILE: SFX\FRONTEND\SFX.SBH
READ FILE: SFX\FRONTEND\SFX.SBB
READ FILE: STAKFILES\TRAINING.STK
READ FILE: STAKFILES\GENERIC.STK
STACK FILE: MULTISEL.COL
STACK FILE: MULTISEL.SCE
World Object Not Found
STACK FILE: GENERIC.PIL
READ FILE: STAKFILES\FROGGER.STK
STACK FILE: FROGGER.PIL
FileName : TEXTURES\HUB.SPT
READ FILE: TEXTURES\HUB.SPT
STACK FILE: TRAINING.BFF
STACK FILE: TRAIN.PIL
STACK FILE: GENERIC.TIT
STACK FILE: HUB.TIT
Skinned Model..............world.psi, 0, 0, 0
xx_gtrnc.psi, 200, -80, 6180
wat_trnr.psi, 0, 0, 0
wat_flo.psi, -3000, 2800, -2000
xx_gtrnr.psi, 0, -300, 0
xx_gtrnb.psi, -2960, 2500, -2000
wat_flob.psi, 200, 320, 6220
wat_flbc.psi, -5650, 5100, -2300
STACK FILE: ENTITY-8-3.DAT
MemLoadEntities() --- SUPERFAST VERSION ---
Loading 38 paths..
Success!
----------------------------------------------------
STACK FILE: SCRIPT-8-3.FEV
Loading script SCRIPT-8-3.FEV...
ok
STACK FILE: SFXANIM83.SAM
Could Not Find Texture : AHOVER
Could Not Find Texture : QHOVER
XA track '\CDA.XA;1' 69750->99213
XA track '\CDB.XA;1' 99214->124149
World ID : 8 
XAplayChannel: 69750->99213
World ID : 9 
XAplayChannel: 99214->124149
Freeing Schmambient sound list
World ID : 11 
XAplayChannel: 99214->124149
Checking Save Game
VSync: timeout
No errors
Saving 2624
VSync: timeout
No errors
----- FREEING ALL LISTS ----------
Freeing Schmambient sound list
Freeing linked list : SAMPLE : (36 elements)
Freeing linked list : PLATFORM : (10 elements)
Freeing All Texture Banks : TEXTURE
psi destroy

memoryInitialise: base = 0xbd7b4, size = 0x14074c
memoryInitialise: pool.base = 0xc37b4, pool.size = 0x13a74c, pool.top = 0x1fdf00
Loading Code Overlay Video
Playing stream \02S.STR;1
vid channel set to 1
Loading Code Overlay Game
FileName : 
READ FILE: LANGUAGE.TXT
small game text = 8481
READ FILE: BIGFONT.FON
READ FILE: FONT12.FON
----- DONE FREEING ALL LISTS -----
FileName : TEXTURES\GENERIC.SPT
READ FILE: TEXTURES\GENERIC.SPT
READ FILE: SFX\FROGGER\SFX.SBH
READ FILE: SFX\FROGGER\SFX.SBB
WorldID Is : 0
READ FILE: SFX\GARDEN\SFX.SBH
READ FILE: SFX\GARDEN\SFX.SBB
READ FILE: STAKFILES\GARDEN1.STK
READ FILE: STAKFILES\GENERIC.STK
STACK FILE: GARDEN1.COL
STACK FILE: GARDEN1.SCE
World Object Not Found
STACK FILE: GENERIC.PIL
READ FILE: STAKFILES\FROGGER.STK
STACK FILE: FROGGER.PIL
FileName : TEXTURES\GARDEN.SPT
READ FILE: TEXTURES\GARDEN.SPT
STACK FILE: GARDEN1.BFF
World Texture (crc 4081148846) not found
STACK FILE: GARDEN1.PIL
STACK FILE: GENERIC.TIT
STACK FILE: GARDEN.TIT
Skinned Model..............world.psi, 0, 0, 0
jetty.psi, 1000, -500, 5450
xx_gpnd.psi, 0, 500, -11700
glass.psi, 0, 1840, -12580
xx_gstrm.psi, 0, -500, 11370
xx_gardn.psi, 10, -750, 3260
wat_flo.psi, 0, -450, 3240
wat_fstr.psi, 0, -160, 11380
wat_pond.psi, 40, 640, -11720
a_ppot.psi, -1460, 0, 10750
a_ppot.psi, 950, 0, 10740
a_ppot.psi, 0, -250, 770
a_ppot.psi, 3480, 0, -1710
a_ppot.psi, -3000, 0, 6240
a_ppot.psi, 2960, -250, 2750
wat_fell.psi, 3280, 260, 1970
a_ppot.psi, -970, 690, -13670
wheelbw.psi, 1000, 1200, -13700
STACK FILE: ENTITY-0-0.DAT
MemLoadEntities() --- SUPERFAST VERSION ---
Loading 55 paths..
Success!
----------------------------------------------------
STACK FILE: SCRIPT-0-0.FEV
Loading script SCRIPT-0-0.FEV...
ok
STACK FILE: SFXANIM00.SAM
XA track '\CDA.XA;1' 69750->99213
XA track '\CDB.XA;1' 99214->124149
World ID : 0 
XAplayChannel: 69750->99213

SLUS_011.72

This file contains many debug/dev related strings, some of which are shown below.

Loading Code Overlay Game
GAME.BIN    Loading Code Overlay Video
VIDEO.BIN   Loading Code Overlay Lang
LANG.BIN    main.c  Setting Mode For NTSC

RAM start 0x%x  0x%x (%d)


FROGGER2 PSX

\FROGGER.DAT;1  TITLESUS    TEXTURES\MEMCARD.SPT    FONT12.FON  LANGUAGE.TXT    Finished FMV
Lang Select 1
LOGO    
FROGGER2 QUIT/RESET
WORLD POLY COUNT    %d : Objs %d : %d   OBJECT POSITION %d : %d : %d    Reading crypt key
Obtained crypt key
...
...
...
 ----- FREEING ALL LISTS ----------
 psi destroy
    LANGUAGE.TXT    BIGFONT.FON FONT12.FON  ----- DONE FREEING ALL LISTS -----
 DEMOS\RECORD-%lu-%lu.KEY    Next Demo : %d
 DEMO MODE: Failed loading %s, returning
    We've finished with demo, then exit..........................................
...
...
...
SRETROMULTI2.SCE    SRETROMULTI3.SCE    SRETROMULTI4.SCE    SRETROMULTI5.SCE    SRETROMULTI6.SCE    
SRETROMULTI7.SCE    SRETROMULTI8.SCE    SRETROMULTI9.SCE    SRETROMULTI10.SCE   START.SCE   
LEVELA.SCE  LEVELB.SCE  MULTISEL.SCE    LANGUAGE.SCE    TEST1.SCE   TEST2.SCE   TEST3.SCE   
TEST4.SCE   TEST5.SCE   TEST6.SCE   map.c
...
...
...
Error! Tried to allocate %d nodes with %d left
psiactor.c  %s  Skinned Model.............. .psi
Trying To Find New Model %s : %s................
Could Not Find Replacment Model................
anim index out of range: %s
frogcroak   Failed to create croak!!
[Interpreter Debug] %s (line %d)
[Interpreter Debug] %s
Invalid tile number: %d Error running script within trigger!
Invalid counter number  Model names must be < 20 chars  Sample name too long! Max 32 characters
PlaySound(): Couldn't find actor    Reset script    out of range string Unrecognised command
Script failed version check
script.c    Possibly an error on line %d?
SCRIPT-%d-%d.FEV    Loading script %s...
error loading file
InitLevelScript() failed
ok
Testing script %s
%s
specfx.c
...
...
...
GARDEN.TIT  ANCIENTS.TIT    SPACE.TIT   SUB.TIT LAB.TIT HALLOWEEN.TIT   RETRO.TIT   HUB.TIT GENERIC.TIT 64DUMMY%d   16DUMMY%d   DUMMY%d Cound Not Find Dummy Texture....: %s
...
...
...
ERROR: Palette file is not in JASC format.
Use Paint Shop Pro or Batchmaster.
Palette not loaded.
ERROR: Palette has %d instead of 16 colours.
textures.c  Could Not Malloc Texture Anim.
...
...
...
jees ! how many models do you expect me to load ?
...
...
...
memoryInitialise: too many mallocs (%d = %d bytes!)    
memoryInitialise: base = 0x%x, size = 0x%x 
memoryInitialise: pool.base = 0x%x, pool.size = 0x%x, pool.top = 0x%x
memoryDestroy: leak @ 0x%x, size %d    
memoryAllocate: failure @ %s:%d - block size illegal (%d bytes)
memoryAllocate: failure @ %s:%d - could find no available record
memoryAllocate: failure @ %s:%d - No memory left
memoryShow: %d mallocs 
  #%3d ---- @ 0x%x, %6d    
  #%3d FREE @ 0x%x, %6d    
memoryShowStats:   
Total RAM:   %d Kb 
Mallocs available: %d, %d used (%d perc usage)
...
...
...
Levelname Goes in here  ----------------------- 00:     00:
...
...
...
JASC-PAL
0100
16
35 35 35
178 25 0
155 64 57
178 48 97
151 156 146
226 16 0
170 161 170
195 93 98
197 119 111
240 85 0
255 97 1
195 201 190
1 162 255
251 122 77
231 227 231
255 255 255
JASC-PAL
0100
16
35 35 35
0 122 178
57 112 155
48 137 178
151 156 146
...
...
...

FROGGER.DAT

The PlayStation build contains a file called FROGGER.DAT. This file contains a few interesting oddities such as the Makefile for Chicken Run, an executable called vagmake.exe, and a preprocessed header file. Some of which are shown below.

memload.cMemLoadEntities()
--- SUPERFAST VERSION ---
MemLoadEntities() ---------------------
--------------------------------------------------------------------------------------
ERROR: Attempting to load incorrect version (%03d) of level file (should be %03d)
Update levels by loading into the editor and saving out again!
--------------------------------------------------------------------------------------
Loading %d paths..
bfly.obefailed!
blank.obeSuccess!
----------------------------------------------------
...
...
...
ERROR: Attempting to load incorrect version (%03d) of script (should be %03d)
maths.cSaving %d
BASLUS-01172FROGGER2No errors
No card in slot
Bad card in slot
Card unformatted
Card is full
memcard.c
...
...
...
LANG_NAMECommentsEnglishFranaisDeutschItalianoUS
STR_STARTRefers to controller buttonStartSTARTStartIniziaStart
STR_UPRefers to controller buttonUpHautHochSuUp
STR_LEFTRefers to controller buttonLeftGaucheLinksSinistraLeft
STR_DOWNRefers to controller buttonDownBasRunterGiDown
STR_RIGHTRefers to controller buttonRightDroiteRechtsDestraRight
STR_WORLD_GARDENGraphic zone nameGardenJardinGartenGiardinoGarden
STR_WORLD_ANCIENTGraphic zone nameAncientsAntiquitAltertumAntichit Ancients
STR_WORLD_SPACEGraphic zone nameSpaceEspaceWeltallSpazioSpace
STR_WORLD_CITYGraphic zone nameCityVilleCityMetropoliCity
STR_WORLD_SUBGraphic zone nameSubterraneanSouterrainUnterweltSotterraneiSubterranean
STR_WORLD_LABGraphic zone nameLaboratoryLaboratoireLaborLaboratorioLaboratory
STR_WORLD_HALLGraphic zone nameHalloweenHalloweenHalloweenHalloweenHalloween
STR_WORLD_SWAMPYDONT TRANSLATEBUGUBUGUBUGUBUGUBUGU
STR_WORLD_RETROGraphic zone nameSuper RetroSuper rtroSuper-RetroSuper retroSuper Retro
STR_LEVEL_UNNAMEDDONT TRANSLATEBUGUBUGUBUGUBUGUBUGU
STR_LEVEL_GARDEN1Graphic zone nameThe GardenLe jardinGartenIl giardinoThe Garden
STR_LEVEL_GARDENMULTIDONT TRANSLATEBUGUBUGUBUGUBUGUBUGU
...
...
...
STR_AUTO_HOPJust eaten a butterfly and now will hop automatically if you hold a directionAuto Hop!Bond automatique !Auto-Hpfer!Salto automatico!Auto Hop!
STR_INVULNERABILITYSpecial cheat that makes you invulnerable to injuryInvulnerability!Invulnrabilit !Unverwundbarkeit!Invulnerabilit!Invulnerability!
STR_ON"Used when a cheat below is ""on"""OnOuiEinAttivatoOn
STR_OFF"Used when a cheat below is ""off"""OffNonAusDisattivatoOff
STR_CHEAT_1Cheat - open all levels if onLevel accessAccs  tous les niveauxZugang zu allen LevelsAccesso ai livelliLevel access
STR_CHEAT_2Cheat - infinitive lives if onInfinite LivesVies illimitesUnbegrenzte LebenVite infiniteInfinite Lives
STR_CHEAT_3Cheat - use all characters in the gameCharacter accessAccs personnagesAlle CharaktereAccesso ai personaggiCharacter access
STR_CHEAT_4"Cheat - open up all ""Extras"" - like art work viewer"Extras accessAccs  tous les bonusZugang zu allen ExtrasAccesso agli extraExtras access
STR_CHEAT_5Cheat - frogger can't be hurtInvulnerabilityInvulnrabilit  UnverwundbarkeitInvulnerabilitInvulnerability
STR_CHEAT_6Cheat - skip to the next levelSkip LevelSauter un niveauLevel berspringenSalta livelloSkip Level
STR_CHEAT_7Mad GaribsMad GaribsMad GaribsMad GaribsMad Garibs
STR_TRIANGLE_BACKHelp text to say press button to go back to previous menuPress @T to go backRetour menu prcdent : @TDrcke @T um zurckzugehenPremi @T per muoverti indietro.Press @T to go back
STR_RETURNRefers to the 'return' buttonReturnRetourEingabeIndietroReturn
...
...
...
sProcessorFeaturePresentKERNEL32e+000runtime error 
TLOSS error
SING error
DOMAIN error
R6028
- unable to initialize heap
R6027
- not enough space for lowio initialization
R6026
- not enough space for stdio initialization
R6025
- pure virtual function call
R6024
- not enough space for _onexit/atexit table
R6019
- unable to open console device
R6018
- unexpected heap error
R6017
- unexpected multithread lock error
R6016
- not enough space for thread data

abnormal program termination
R6009
- not enough space for environment
R6008
- not enough space for arguments
R6002
- floating point not loaded
Microsoft Visual C++ Runtime Library

Runtime Error!
...
...
...
#
# CRTEST PS MAKEFILE
#
######################################################################

#
# MACROS
#

!if $(PAL) == 1
VOPT = /p
!if $(MASTER) == 1
OPT = -Wall -Wno-unused -DPALMODE=1 -DGOLDCD=1 -c -O2 -mgpopt -G0 -X0$80018000 -comments-c++
LIBISL = c:\psx\isl\lib\release
!else
OPT = -Wall -Wno-unused -DDEBUG=1 -DPALMODE=1 -DGOLDCD=0 -c -O0 -g -mgpopt -G0 -X0$80018000 -comments-c++
LIBISL = c:\psx\isl\lib\debug
!endif
!else
VOPT = /n
!if $(MASTER) == 1
OPT = -Wall -Wno-unused -DPALMODE=0 -DGOLDCD=1 -c -O2 -mgpopt -G0 -X0$80018000 -comments-c++
LIBISL = c:\psx\isl\lib\release
!else
OPT = -Wall -Wno-unused -DDEBUG=1 -DPALMODE=0 -DGOLDCD=0 -c -O2 -mgpopt -G0 -g -X0$80018000 -comments-c++
LIBISL = c:\psx\isl\lib\debug
!endif
!endif

CCPSX   = c:\psx\bin\ccpsx
DMPSX   = c:\psx\bin\dmpsx
ASMPSX  = c:\psx\bin\asmpsx
PSYLINK = c:\psx\bin\slink


#
# DEFAULT BUILD RULE
#

.c.obj:
        $(CCPSX) $(OPT) $&.c -o$&.obj
$(DMPSX) -b $&.obj


#
# MAIN TARGET
#

# I've taken "camera" out for now, coz it wasn't being called, and
# was broken in the version checked in

crtest.cpe: crtest.lnk makefile.txt gametext.txt \
        main.obj timer.obj actor.obj \
        viewer.obj map_draw.obj bff_load.obj map_view.obj \
        menu.obj snapshot.obj collide.obj maths.obj camera.obj\
        debris.obj lights.obj puzzles.obj custom.obj \
        cr_asm.obj map_asm.obj map_play.obj stilts.obj \
        station.obj catapult.obj enemies.obj overlays.obj \
        islvideo.obj platform.obj control.obj \
overlay1.obj overlay2.obj
        $(PSYLINK) /l $(LIBISL) /psx /wo /v /c /strip /nostriplib @crtest.lnk,crtest.cpe,crtest.sym,crtest.map
        attrib -R ..\cd\shell\gametext.txt
        copy gametext.txt ..\cd\shell /Y
        attrib +R ..\cd\shell\gametext.txt

copy overlay1.bin ..\cd\bin /Y
copy overlay2.bin ..\cd\bin /Y


#
# SECONDARY TARGET - download and run
#

run: crtest.cpe
        attrib -R ..\cd\shell\gametext.txt
        copy gametext.txt ..\cd\shell /Y
        attrib +R ..\cd\shell\gametext.txt
resetps $(VOPT)
delay 100
...
...
...
map_asm.obj:map_draw.s
        $(ASMPSX) /zd /l map_draw.s, map_asm.obj


#
# EVERYTHING ELSE
#

viewer.obj:viewer.c global.h main.h menu.h viewer.h map_draw.h 
main.obj:main.c global.h timer.h main.h viewer.h menu.h snapshot.h collide.h gametext.h 
actor.obj:actor.c global.h map_draw.h collide.h actor.h 
bff_load.obj:bff_load.c global.h bff_load.h map_draw.h loadlnd.h platform.h 
platform.obj:platform.c global.h platform.h map_draw.h bff_load.h maths.h overlays.h 
map_draw.obj:map_draw.c global.h main.h bff_load.h map_draw.h maths.h debris.h 
timer.obj:timer.c global.h main.h timer.h 
menu.obj:menu.c global.h main.h viewer.h map_view.h map_play.h stilts.h station.h catapult.h gametext.h 
catapult.obj:catapult.c global.h main.h menu.h map_draw.h bff_load.h collide.h debris.h lights.h timer.h maths.h overlays.h map_view.h global.h 
map_view.obj:map_view.c global.h main.h menu.h map_draw.h bff_load.h collide.h debris.h lights.h timer.h maths.h puzzles.h global.h overlays.h 
snapshot.obj:snapshot.c global.h snapshot.h 
debris.obj:debris.c global.h debris.h 
collide.obj:collide.c global.h maths.h collide.h 
maths.obj:maths.c global.h maths.h 
lights.obj:lights.c global.h debris.h lights.h 
custom.obj:custom.c global.h 
puzzles.obj:puzzles.c global.h loadlnd.h puzzles.h 
temp.obj:temp.c global.h main.h menu.h map_draw.h bff_load.h collide.h debris.h lights.h timer.h global.h 
loadlnd.obj:loadlnd.c 
camera.obj:camera.c global.h main.h map_view.h collide.h camera.h maths.h map_play.h 
chase.obj:chase.c global.h bff_load.h map_draw.h 
map_play.obj:map_play.c global.h main.h menu.h map_draw.h bff_load.h collide.h debris.h lights.h timer.h maths.h enemies.h puzzles.h camera.h global.h 
mapcam.obj:mapcam.c global.h maths.h mapcam.h 
station.obj:station.c global.h main.h menu.h map_draw.h bff_load.h collide.h debris.h lights.h timer.h maths.h map_view.h global.h 
enemies.obj:enemies.c global.h maths.h bff_load.h lights.h timer.h collide.h enemies.h 
islvideo.obj:islvideo.c global.h main.h 
stilts.obj:stilts.c global.h main.h bff_load.h map_draw.h timer.h 
overlays.obj:overlays.c global.h map_draw.h maths.h overlays.h collide.h platform.h main.h 
control.obj:control.c global.h collide.h enemies.h camera.h control.h 
overlay1.obj:overlay1.c global.h 
overlay2.obj:overlay2.c global.h

"map_draw.c"
# 1 "global.h" 1
# 1 "c:/psx/include.45/r3000.h" 1 3
# 233 "c:/psx/include.45/r3000.h" 3
# 46 "global.h" 2
# 1 "c:/psx/include.45/sys/errno.h" 1 3
extern int errno;
# 47 "global.h" 2
# 1 "c:/psx/include.45/sys/types.h" 1 3
...
...
...
# 135 "c:/psx/include.45/libgte.h" 3

typedef struct  {
shortm[3][3]; 
        long    t[3]; 
} MATRIX;

typedef struct { 
longvx, vy;
longvz, pad;
} VECTOR;

typedef struct { 
shortvx, vy;
shortvz, pad;
} SVECTOR;
       
typedef struct { 
u_charr, g, b, cd;
} CVECTOR;
       
typedef struct { 
short vx, vy;
} DVECTOR;

typedef struct {
SVECTOR v; 
VECTOR sxyz; 
DVECTOR sxy; 
CVECTOR rgb; 
short txuv,pad; 
...
...
...
extern void InitGeom();

extern void EigenMatrix(MATRIX *m, MATRIX *t);
extern int  IsIdMatrix(MATRIX *m);
extern MATRIX *MulMatrix0(MATRIX *m0,MATRIX *m1,MATRIX *m2);
extern MATRIX *MulRotMatrix0(MATRIX *m0,MATRIX *m1);
extern MATRIX *MulMatrix(MATRIX *m0,MATRIX *m1);
extern MATRIX *MulMatrix2(MATRIX *m0,MATRIX *m1);
extern MATRIX *MulRotMatrix(MATRIX *m0);
extern MATRIX *SetMulMatrix(MATRIX *m0,MATRIX *m1);
extern MATRIX *SetMulRotMatrix(MATRIX *m0);
extern VECTOR *ApplyMatrix(MATRIX *m,SVECTOR *v0,VECTOR *v1);
extern VECTOR *ApplyRotMatrix(SVECTOR *v0,VECTOR *v1);
extern VECTOR *ApplyRotMatrixLV(VECTOR *v0,VECTOR *v1);
extern VECTOR *ApplyMatrixLV(MATRIX *m,VECTOR *v0,VECTOR *v1);
extern SVECTOR *ApplyMatrixSV(MATRIX *m,SVECTOR *v0,SVECTOR *v1);
extern VECTOR *ApplyTransposeMatrixLV(MATRIX *m,VECTOR *v0,VECTOR *v1);
extern MATRIX *RotMatrix(SVECTOR *r,MATRIX *m);
extern MATRIX *RotMatrixXZY(SVECTOR *r,MATRIX *m);
extern MATRIX *RotMatrixYXZ(SVECTOR *r,MATRIX *m);
...
...
...
// Leave this here please!

/*
Mappings from character animations to sound effects

Types: 

0 Player with full animation range
1 Multiplayer character
2 Enemy
3 Scenic
4 Tile based


Format:

object name
type
wave file name
end

NOTE:

The exact number of sfx entries must follow an actor type or BAD THINGS WILL HAPPEN!
Currently
players have 43 animations (see frogger.h for latest figure)
Multiplayer characters ARE NOT IMPLEMENTED!
Enemies must have four regardless of how many they actually have
Scenics have but one
*/

91
4
lp_arrow.wav
end

91
4
lp_mspke1.wav
end

70
4
lp_mspke2.wav
end

76
4
lp_mspke3.wav
end

boulder.obe
3
lp_boulder.wav
end

101
4
lp_lava.wav
end

480
4
lp_lava.wav
end

207
4
lp_arrow.wav
end

108
4
lp_water.wav
end

31
4
lp_scorpiona.wav
end

130
4
lp_croc.wav
end

end
// Leave this here please!

/*
Mappings from character animations to sound effects

Types: 

0 Player with full animation range
1 Multiplayer character
2 Enemy
3 Character


Format:

object name
type
wave file name
end
...
...
...

References