LEGO Island 2: The Brickster's Revenge (PlayStation)
|LEGO Island 2: The Brickster's Revenge|
This game has uncompiled source code.
This game has a prototype article
The PlayStation version of LEGO Island 2: The Brickster's Revenge is very watered-down compared to the Windows iteration, with many things reworked and even more things dropped or greatly simplified - including whole levels.
There seems to be some unused character animations.
- 1 Sub-Pages
- 2 Level Select
- 3 PADDING.BIN
- 4 Unused Music
- 5 Unused Characters
- 6 Unused Textures
- 6.1 Frontend and Pause Menu
- 6.2 Miscellaneous HUD
- 6.3 Infomation Center
- 6.4 Brick Dive
- 6.5 Centrifuge
- 6.6 Asteroid Belt
- 6.7 Desert Speedster
- 6.8 Mr Hates Camp
- 6.9 Characters
- 7 Unused Files
- 8 Debugging Strings
| Source Code|
Automatically-generated source files found throughout the disc.
| Unused Dialogue & Strings|
A huge number of unused lines. Some didn't survive the move from PC to PlayStation, while others are unused in both.
There is a byte in memory that defines how many options are visible on the main menu. Increasing it by 1 reveals a hidden option titled "Secret", which takes you to a Level Select screen. It's possible that there is a cheat code to enable it, but if there is, it hasn't been found yet.
Of note, this screen lists several mini-games cut from this port. Selecting one will display a "Subgame not selectable" message. Indeed, all of the appropriate files are missing from the game's disc entirely.
|Selectable Level||Non-Selectable Level|
The subgames below sometimes don't match where a state should take place, which may indicate a misunderstanding as to how the Secret menu works. As such, take this list with a grain of salt.
The unselectable level and state names are below. They are internally written with underscores, but displayed on-screen with spaces.
Strings with asterisks (*) are too long to be fully displayed on-screen, with the cut-off text shown here in bold.
PADDING.BIN in the NTSC version contains the ending video at a higher bitrate and framerate than the used one.
The PC version dynamically switches the track playing depending on context, such as while next to certain buildings. Other times, this is done simply to iterate through variations on a track.
Most of these instances are not present in the PlayStation version, but much of the music was converted over anyway, only to go unused. There are also tracks that are unused in both versions of the game.
|INFO-3||Infomation Center dynamic track.|
|INFO-4||Radio Station dynamic track.|
|INFO-5||Rob & Steve's house dynamic track.|
|INFO-6||Police Station dynamic track.|
|INFO-7||Pizzeria dynamic track.|
|INFO-8||Bricksterbot Theme - Unused in this port. Seems to have a duplicate in INFO-9 that loops for longer.|
|INFOMANC||Infomaniac theme. Characters don't have dynamic themes in either the PC or PlayStation versions.|
|NICKBRIK||Nick Brick theme. Characters don't have dynamic themes in either the PC or PlayStation versions.|
|MAMABRIK||Mama Brickolini theme. Characters don't have dynamic themes in either the PC or PlayStation versions.|
|PAPABRIK||Papa Brickolini theme. Characters don't have dynamic themes in either the PC or PlayStation versions.|
|WAKABOT-1||Whack-A-Bot only uses the first track, and never transitions into these two like the PC version does.|
|WAKASNAK-1||As above, Whack-A-Snake doesn't use this variant.|
|ADVENT2-1||The game only uses the first track, rendering these two variants unused.|
|OASIS-1||A Bricksterbot-like theme. Possibly intended to play when the Scorpion passes by Bricksterbots.|
|MUMMIES1-0||Calm variant of main theme (MUMMIES1-1).|
|BRIKDIVE-1||Brick Dive never transitions to this variant.|
|BANJO_1||Unused and seemingly unfinished track that would later become the Lego Racers 2 bonus theme. Used in the prototype for the credits theme, but it's baked into the video file there.|
Bill Ding is spawned in on Lego Island at all times, but is set not to be visible. If hacked to become visible, he shows up on a curb behind the Pizzeria. He has no behavior or collision, and cannot be talked to.
If another character's behavior is placed on him, you can talk to him. He has no dialogue, but has a talking facial animation and is fully rigged to walk around the island. One of his hands is missing, indicating a scrapped minifig tool that he should be holding.
In the PC version, Bill Ding appears anytime a building is constructed/reconstructed, such as by retrieving a Constructopedia page.
Board Park Characters
Among the models listed in memory for the Board Park are four Lego Island characters. The model names are DJAB , BONE , VALS , and PAPA. Excluding BONE, they highly likely refer to DJ Jackitt, Valerie Stubbins, and Papa Brickolini respectively. As for BONE, this seems to refer to a character that would become Gnarly Bones in the sequel, Island Extreme Stunts, but was scrapped from this port. He can still be seen in the center of the quarterpipes in the image for the board park on Pepper's computer. These four models are placed two on either side of the top of each quarter pipe, but their models don't seem to draw anything, even when another visible object's model is set to their IDs.
Frontend and Pause Menu
A number of menu graphics, many of which seem closer to the PC version of the game, go unused. Many, if not all, of these files are seemingly loaded while on the title screen, but are never used in a final menu.
There are smaller versions of these icons too, as well as identical duplicates for the same sizes in the same folders. Welcome to the file structure that is LEGO Island 2.
Apparently an early logo for the title screen. It's unknown why only half of the image survived and why the palette seems incorrect, but it displays the same way when hacked back into the final game's title screen.
Adventure Island and Castle Island
Unused HUD icons for Adventure Island. The blue bar is not used anywhere in the game, even when there actually is a progress bar on the side of the HUD.
Duplicates of these files are also found in the Castle Island HUD archive, also unused.
Presumably for an animation, as the container is called INFOANIM.TBK. It doesn't show up inside the Infomation Center.
This is very similar to a used version without the greenish tint stored in WALLS.TBK, where most of the Infomation Center's rack-mounted consoles live. For that version, the fade occurs when you access the database. There is an additional fully-black frame, but since it's literally nothing they haven't been uploaded.
An extra frame for the minimap arrow. The used one has a red outline, so it was probably intended to alternate flash with this one.
The final game uses a yellow brick from a different archive for the HUD icon.
Blue Timing Lamp
A blue texture for the centrifuge timing lamps. The blue lamp models are actually loaded at runtime, but there doesn't seem to be any functionality in the minigame to cause it to appear. As a side note, there seems to be separate models loaded in memory for every lamp state. Per side. That means four each side for a total of eight models. The blue lamp models are, therefore, unused too.
Stud Timing Lamp
It gets better, as there are also eight more models for 1×1 green studs, similar to the ones on the centrifuge base model, which may have been earlier indicator lamps. The first four are regular green, and the other four are a very marginal slightly brighter green.
A 2D asteroid (the final uses only 3D models for asteroids) and an unknown warning bubble that are unused in Asteroid Belt. They are stored alongside the graphic used for the 2D stars that fly by, so the 2D asteroid might have presumably flown past as well.
Unknown arrows stored alongside the rest of the minigame's particle effects.
Mr Hates Camp
This strange image is stored randomly with an assortment of other Hates Camp textures.
The camera angle makes it impossible to see the sky in Hates Camp, but it does apparently have textures. Considering there are other leftover textures from Lego Island in the "HAT" folder, and that the minigame seems to have some of the other island's wrapping behavior, Hates Camp may have started out as a copy of Lego Island.
Files found within, or around, the PSXFILE.
TEST1: Bollocks! TEST2: 2 Bollocks! TEST3: 3455 Bollcoks! TEST4: 3456Bollocks!!
@MULTI-EDIT VERSION 7.0 C:\LEGO2PSX\COMMON\MAIN\DATA\PAUSE\ /MISC=1/I=1/V=2/SC=0/EV=0/CC=1 /W=1/WNM=A/A=1/WA=0/FN=C:\LEGO2PSX\COMMON\MAIN\DATA\PAUSE\ENGLISH.TXT/C=1/L=24/R=24/IL=1/WS=1/IS=0/D=0/LS=0/BI=7/BTML=1/RM=79/LT=\C\L/FLL=0/SN=1 /G_INT=DEFAULT_INSERT_MODE 1 /G_STR=DEF_SWITCHES I /G_STR=DEF_REPL_SWITCHES PI /G_STR=DEF_FS_SWITCHES I /G_STR=DEF_FSR_SWITCHES I /G_INT=DIR_IMMEDIATE 1 /G_INT=AUTO_ARRANGE_ICONS 1 /G_INT=DEF_SCRN_STYLE 1 /G_INT=CUR_SCRN 1 /G_STR=DIR_SORT_STR n /G_STR=CALC_PARAMS /X=18/Y=8/BASE=10 /G_STR=FSWITCHES I /G_STR=FRSWITCHES I /G_STR=FC_CONFIG_STR /SH=0/CC=79/IC=48/RW=30208/NKEY=30208/PKEY=33792/RKEY=5118/KEYSTR=NextDif<CtrlPGDN> PrevDif<CtrlPGUP> Report<AltShftR> /G_INT=EXEC_ENV_MODE 1 /G_STR=FORMAT_CODE_DELIMIT . /G_STR=EXTENSIONS .? /G_STR=FILE_HISTORY /#=1 /G_STR=FILE_HISTORY1 C:\\LEGO2PSX\\COMMON\\MAIN\\DATA\\PAUSE\\ENGLISH.TXT /G_INT=NO_CONFIRM_OVERWRITE 1 /G_STR=PRINTER_DEVICE LPT1 /G_STR=PRINTER_TYPE HP LASERII /G_INT=KEYDELAY 1 /G_INT=LOAD_COUNT 1 /G_INT=RESTORE 1 /G_INT=SEARCH_INTR_STYLE 1 /G_STR=SWITCHES I /G_STR=REPL_SWITCHES PI /G_INT=SPLIT_EDGE_MODE 1
Many debugging strings are loaded while on the title screen and while in other levels, some generic, and some containing jokes towards developers.
The list below is scrollable.
Remember to give Paul some toast!
data/savegame/american.dat DATA/messages/FE/ENGLISH/STD.str Sub Game skipped: %d Could not claim memory in sound ram for commentary error in sep file sequence file count data/music/%s.vh data/music/%s.vb tune VAB header open failed tune VAB body open failed data/sfx/%s.vh data/sfx/%s.vb sfx VAB header open failed sfx VAB body open failed data/music/%s.sep failed to count sequences in %s music sep %s failed to open data/sfx/%s.sep sfx sep %s failed to open No TOC found: please use CD-DA disc Too many tracks tracknum too big CdControlB mode set error CdControlB play error Could not find COMFile %s commentry file %s initialised ok Data/%s.dat commentry header file %s initialised ok, %d phrases available AAAA-XXXXX sdtest %sB%c%s%s data/frontend/load.tbk Could not find overlay %s Failed to read overlay %s loaded overlay %s Could not open model block %s Could not claim memory for model block %s 0123456789ABCDEF 0123456789abcdef Failed to claim memory! Warning - identifier '%s' does not end; ignored No room to create look up table Failed to load data Failed to open file No room to load messages Message file not exist or of zero length Warning passed font cel pointer is zero CdRead: sector error CdRead: Shell open CdRead: retry %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) CD001 CD_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 Can't Open Sequence data any more track=%d,%d CdGetToc2: %02x:%02x:00 CdGetToc2: error VSync: timeout card read error $Id: intr c,v 1 76 1997/02/12 12:45:05 makoto Exp $ unexpected interrupt(%04x) intr timeout(%04x:%04x) $Id: sys c,v 1 129 1996/12/25 03:36:20 noda Exp $ 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: ClearImage LoadImage StoreImage MoveImage ClearOTag(%08x,%d) ClearOTagR(%08x,%d) DrawOTag(%08x) PutDrawEnv(%08x) DrawOTagEnv(%08x,&08x) PutDispEnv(%08x) GPU timeout:que=%d,stat=%08x,chcr=%08x,madr=%08x, func=(%08x)(%08x,%08x) unable to open 16 bit background unable to claim main RAM for background! 0123456789ABCDEF tpage: (%d,%d,%d,%d) clut: (%d,%d) clip (%3d,%3d)-(%d,%d) ofs (%3d,%3d) tw (%d,%d)-(%d,%d) dtd %d dfe %d disp (%3d,%3d)-(%d,%d) screen (%3d,%3d)-(%d,%d) isinter %d isrgb24 %d CdInit: Init failed Fail:pDict->iNumEntries + 1 < pDict->iMaxEntries Andys an pillock Fonts/%s No VRAM available for Kanji font workspace CSM Started without paths being defined data/cutscene/%s/%s.cut data/messages/%s/%s/%s.str ENGLISH SPU:T/O [%s] wait (reset) wait (wrdy H -> L) wait (dmaf clear/W) CdlReadS CdlSeekP CdlSeekL CdlGetTD CdlGetTN CdlGetlocP CdlGetlocL ? CdlSetmode CdlSetfilter CdlDemute CdlMute CdlReset CdlPause CdlStop CdlStandby CdlReadN CdlBackward CdlForward CdlPlay CdlSetloc CdlNop CdlSync DiskError DataEnd Acknowledge Complete DataReady NoIntr CD timeout: %s:(%s) Sync=%s, Ready=%s DiskError: com=%s,code=(%02x:%02x) CDROM: unknown intr (%d) CD_sync CD_ready %s %s: no param CD_cw $Id: bios c,v 1 86 1997/03/28 07:42:42 makoto Exp $ CD_init: addr=%08x CD_datasync SPU:T/O [%s] wait (IRQ/ON) wait (IRQ/OFF) This is not SEP Data DMA bus error: code=%08x MADR[%d]=%08x bad hankaku code 0x%x A new cutscene cannot be selected until this one has finished Fail:CSMManager pCurrent Fail:iIndex < CSMManager iMaxScript CSM serious error Asked to Start/Queue cutscene %i, but queue full [Continue] will ignore this request Oi! The script you are intending to start is NOT LOADED! Call Paul, give him some toast CSMManager Actor to be added, but no room remains Call Paul or press [Continue] to carry on PEPP Fail:CSMManager Actor[i] pGOB ERROR: skeleton plotter Data/Objects/%s/%s.pmc Camera action not recognised - call Paul SERIOUS CSM ERROR! The camera POSITION has been SET but is already moving This is not allowed! [Continue] will proceed with script, but camera faults are a result of this error Fail:pAction->SetPos Target pTargetActor Invalid MOVETYPE for camera positioning Call Paul SERIOUS CSM ERROR! The camera TARGET has been SET but is already moving This is not allowed! [Continue] will proceed with script, but camera faults are a result of this error SERIOUS CSM ERROR! The camera POSITION has been MOVED but is already moving This is not allowed! [Continue] will proceed with script, but camera faults are a result of this error SERIOUS CSM ERROR! The camera TARGET has been MOVED but is already moving This is not allowed! [Continue] will proceed with script, but camera faults are a result of this error Unknown waypoint in camera MOVETARGET Call Paul Camera MOVETARGET to actor NULL! Call Paul Unknown camera MOVETARGET action Call Paul faces.tbk heads.tbk bodys.tbk lhands.tbk rhands.tbk heads.blk bodys.blk lhands.blk rhands.blk Data/Objects/%s/%s.pmh Data/Objects/%s/%s.tbk Data/grid.TBK Serious CSM error.Cutscene number %i is already loaded.Check loading of %s %s.[Continue] will skip this extra load .cut Fail:sizeof(TBinHeader) == iSizeOfHeader SWCH PLAY Failed to find waypoint %s in CSM/PATH waypoint maps Failed to find PATH waypoint %s.[Continue] will carry on parsing script.Failed to find CSM waypoint %s.[Continue] will carry on parsing script Cut-scene error.Failed to find actor %c%c%c%c in FOLLOW Failed to find switch %s - call Paul .CSMLoader_LoadBinary received an invalid filename (%s) CSMLoader_LoadBinary could not find filename (%s) CSMLoader_LoadBinary fell over handling %s - call Paul GOB action not recognised - call Paul Serious CSM error.GOB %c%c%c%c has no route handle.Cannot proceed with move.Unknown MOVETYPE in CSM script - Call Paul Serious cut-scene error!.Actor %c%c%c%c has no hRoute Serious CSM error.String %s overran the 4 lines of the HUD.Call Paul Unable to open track file %s Data/grid.TBK throwpizza GenParts pizzasplat pizzasplat.par throwpizza.par BOATWAKE GenParts data/fonts/main/main data/fonts/csm/csm GenParts %s/%s/%s.??? Data/Tracks/%s/%s.??? Data/Tracks/%s/sky.??? Data/Games/%s/objects/%s.??? Data/Games/%s/oblist.txt Data/Games/%s/%s.zon Zero length zone GOB list file (%s) time out in decoding ! CONTINUE SAVEGAME QUITCONF Data/Messages/fe/ENGLISH/pause.str Data/Pause/Pause1.tbk MCREADING MCNOTIN1 MCNOTIN2 MCNOTFOR1 MCNOTFOR2 MCNOTFOR3 MCFORMAT MCFORREMOVE MCFORFAIL MCFORGOOD %s %s %03d%% GAME%01d MCCARDFULL4.MCCARDFULL3.MCCHOOSESAVE MCNEWSAVE MCOVERWRITE.MCNEWSAVE2 MCSAVEREMOVE MCDOOVER MCDOSAVE MCSAVEGOOD MCSAVEBAD BUTTON_UP BUTTON_DOWN.BUTTON_LEFT.BUTTON_RIGHT BUTTON_2 BUTTON_1 BUTTON_4 BUTTON_3 CONTROL%i SWIMWAKE GenParts DMA STATUS ERROR %x MDEC_rest:bad option(%d) MDEC_in_sync MDEC_out_sync DMA=(%d,%d), ADDR=(0x%08x->0x%08x) FIFO=(%d,%d),BUSY=%d,DREQ=(%d,%d),RGB24=%d,STP=%d %s timeout:.
"loaded overlay %s", "commentry file %s initialised ok", and "commentry header file %s initialised ok, %d phrases available" have been observed as functional and are output to the TTY console, but are otherwise not visible during normal play. The first one outputs the filename of the binary overlay for that given level. The second outputs the name of the audio archive chosen, which contains each character's voice lines. The third and final one outputs the filename for the associated header file, then the total available individual voice lines listed within it.
A working example when loading into Lego Island from a new game would be:
loaded overlay \BINS\Z90PSX.BIN;1 commentry file \LGI.VAG;1 initialised ok. commentry header file Data/lgi.dat initialised ok, 802 phrases available