We just released a Feb. 5 '89 prototype of DuckTales for the NES!
If you'd like to support our preservation efforts (and this wasn't cheap), please consider donating or supporting us on Patreon. Thank you!

User:Juanmv94/Temp

From The Cutting Room Floor
Jump to navigation Jump to search

Title Screen

Thunder Offshore

Developers: NoriaWorks Entertainment
Platforms: DOS
Released in EU: 1997


DevTextIcon.png This game has hidden development-related text.
GraphicsIcon.png This game has unused graphics.
SoundIcon.png This game has unused sounds.
TextIcon.png This game has unused text.


Thunder offshore was the last game made by the spanish company NoriaWorks. This futuristic motorboat racing game features advanced 3D graphics and effects for its era that could run smothly in most computers.

Unused images

Placeholder Scores Screen

An early scores screen placeholder image is present in RECORDS.PIC. It has some zeroed scores in it with a different font. Thunder Offshore RECORDS.PIC.png

Intro image

The unused image PRESENT.PIC has its own palette PRESENT.PAL and might be an early intro image for the game. Thunder Offshore PRESENT.PIC.png

Unused Lenguaje Selection Palette

Unused palette file IDIOMA.PAL seems to be a palette for a cutted lenguaje selection screen. In the final game, the lenguaje is set during the installation.

Developers Console

There are some strings in MENUS.EXE refering to a developers console. It's unknown if it can still be reactivated.

A background for the developers console is present in RESOURCE.PAK
RTHUNDER CONSOLE MODE SPAWNED


USE AT YOUR WILL


NO HELP AVAILABLE


CONSOLE: 


PRESS ESC TO QUIT CONSOLE


Cutted Debug Mode

In the THUNDER.INI file created by MENUS.EXE to tell JUEGO[64][M].EXE the track to play and the options, there's a line in the MISCELANEOUS category with:

Debug Mode = FALSE


This line is hardcoded into MENUS.EXE, and changing its value to TRUE does nothing as JUEGO[64][M].EXE just ignores this property.

Cheat Functionality

There are some strings in MENUS.EXE refering to a cheat option.

CCHEAT
CHEAT MODE ON
CHEAT MODE OFF

Unused sounds

Game Sounds

Despite all the WAV sounds from JUEGO[64][M].EXE are referenced, the ambiental sounds at SAM%d.WAV never plays:
File:Thunder Offshore SAM1.WAV.ogg File:Thunder Offshore SAM2.WAV.ogg File:Thunder Offshore SAM3.WAV.ogg File:Thunder Offshore SAM4.WAV.ogg

File:Thunder Offshore SAM6.WAV.ogg File:Thunder Offshore SAM7.WAV.ogg File:Thunder Offshore SAM8.WAV.ogg File:Thunder Offshore SAM9.WAV.ogg File:Thunder Offshore SAM10.WAV.ogg File:Thunder Offshore SAM11.WAV.ogg File:Thunder Offshore SAM12.WAV.ogg

Menu Sounds

Menu sounds are stored in the DIGITAL folder from the CD. It seems that many game sound were meant to be stored here too.
There are lot of unused sounds in this folder, some of them are referenced in the EXE, and there are unreferenced sounds too.

Unused sounds not referenced by the EXE present in the folder:

  • GRUA2.DFX
  • HANNOISE.DFX
  • LUCES.DFX
  • LUZ1.DFX
  • LUZ2.DFX
  • PASADA4.DFX
  • TURSTAD2.DFX
  • TURSTAD3.DFX
  • TURSTAD4.DFX

Unused Text

Debug Messages

There are some debug messages inside the game executables. Most of these messages are meant to appear when some of the CD game files were missing, incorrect or incomplete. Here are some of them:

No he encontrado el fichero de una lancha
Error por final de fichero
Falta el fichero .TAB
Mal fichero .TAB
Mal fichero de intercambio THUNDER.INI
Mal fichero de circuitos CIRCUIT.INI
AL CREAR MAPAS Y BUFERES
No puedo leer el mapa
CUANDO YA SE HA CARGADO EL MAPA
No puedo leer los comportamientos
DESPUES DE CARGAR LOS COMPORTAMIENTOS
DESPUES DE CARGAR EL MARCADOR

Developers Messages

There are some developer messages in MENUS.EXE. They may be related to the developers console.

ALEX
SE  .ALEX IS A REAL CODER
VPORKO
E
CHELO
.. .WILL ALLWAYS LOVE YOU
VICTOR

 .THE BEST MUSICIAN
VITU
   RAFA
    .DONT SAY IT AGAIN
CESAR
   .HIPERVENTILATOR RULEZ
LETICIA
 .SHE IS A SUCKER
ALLETI
R
VJOSETE

 .MACACUS RHESUS
LWAMASTO
E PETE
ICT .SLIME HAIRED

JORGE
BEJOSE
SIC .PAQUETE
  JACOBO
  .OVERKILL CODER SOON
SAJAC
UNAI
ERV .STINKS BUT BEST CODER
JUAN
 IS .MARLEY, GREAT SHOOT
SEPEDRO
MA .CABEZABOLO
LWAELIER
E  .DALAI LAI LAMA



FERNANDO
OSE .HAVE TONS OF GIRLFRIENDS
VPIPILLO
 .ARRANCAR ZUZ BOLAZ
ERVCLOWN
KS .YO NO ME LLAMO ASIN
ISJARE
LEY .COOL
 JCAB

SE .VTAL FOREVER
AFRIENDWARE
E .THEY DISCOUNTS OUR PRODUCTION COSTS
OSNORIAWORKS
S .FOREVER
IENORIA
IPBMG
 .LATE BUT GOOD
QUAKE
ER .SUPERB GAME
NOALBERTO
 .CC MAX THE BEST RACING GAME

SANA
 .ESTA FOLLABLE
FU
W .WASA KIRIMOTO NOTATE

BO
CJUANJO
N .ALIEN SUCKER
ROSCAR
EN .ES CURRO JIMENEZ
UHECTOR
Q .EL PONEPEGASATODO
GALATEA
 .CUCARACHAS EN TU GAZPACHO
GIS
 .BASTA YA DE HACER CASITAS
PARADISE
IMOZIP
 .DEVUELVEMELA PEDRO PABLO
JMARIN
LI .BUSCO A JACKS
ULLOA
S  .GAME 40 FOREVER


Talk

The game is splitted in various EXE files:

  • SETENV.EXE is the first to be run, and just sets the environment.
  • MENUS.EXE is open at every menu of the game, at every video mode
  • JUEGO[64][M].EXE is open when a race starts. 64 means 640x480 mode, and M means mortal effects.

I didn't tried to debug the executables because my current debuggers don't support 16bit executables.
All this executables are switched by the THUNDER.BAT batch file. They all need at least one parameter to be run, or a message saying to run THUNDER.BAT will appear.
The executables doesn't read the parameters, and they communicate through temporary INI files in the game folder.
Game menu sounds are stored in the DIGITAL folder from the CD in DFX format. These files are simple wave files that can be renamed to WAV to be played.
Game sounds are stored in the GRA and GRA640 folder from the CD in WAV format. The same sounds are duplicated for both folders, having no differences.
Game graphics are stored in the packed RESOURCE.PAK file. They are all palletized 256 color images:

  • PAL files are the palette files. Their 256 colors are organized with one byte per channel as RGBRGBRGB... and their range is from {hex|0x00} to {hex|0x3F}
  • PIC files are the uncompressed raw image files. They start with 2 int16 values with the width and height of the image followed by the raw data.
  • SPR files have the uncompressed raw sprites.

Here is an util I made to extract the PIC files into palletized BMP files:

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char** argv) {

	FILE *pal,*img,*out;
	char outn[128];
	short dim[2];
	int dimt;
	
	const char bm1[]={0x42,0x4d};
	int bm2;
	const char bm3[]={0x00,0x00,0x00,0x00,0x36,0x04,0x00,0x00,0x28,0x00,0x00,0x00};
	int bm4[2];
	const char bm5[]={0x01,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0xE8,0x03,0x00,0x13,0x0B,0x00,0x00,0x13,0x0B,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00};
	
	int i;
	char curcol[4];
	char *rawimg;
	
	if (argc!=3 || !(img=fopen(argv[1],"rb")) || !(pal=fopen(argv[2],"rb"))) {
		printf("Usage: %s image.pic palette.pal\n",argv[0]);
		return (EXIT_SUCCESS);
	}
	fread(dim,2,2,img);
	printf("Image dimensions: %dx%d\n",dim[0],dim[1]);
	dimt=dim[0]*dim[1];
	bm2=dimt+1078;
	bm4[0]=dim[0];
	bm4[1]=dim[1];

	strcpy(outn, argv[1]);
	strcat(outn, ".bmp");
	if (!(out=fopen(outn,"wb+"))) {
		puts("Check write permissions");
		return (EXIT_SUCCESS);
	}
	fwrite(bm1,2,1,out);
	fwrite(&bm2,4,1,out);
	fwrite(bm3,12,1,out);
	fwrite(bm4,2,4,out);
	fwrite(bm5,28,1,out);
	
	curcol[3]=0;
	for (i=0;i<256;i++)
	{
		curcol[2]=fgetc(pal)<<2;
		curcol[1]=fgetc(pal)<<2;
		curcol[0]=fgetc(pal)<<2;
		fwrite(&curcol,4,1,out);
	}
	
	rawimg=malloc(dimt);
	for (i=(dimt-bm4[0]);i>=0;i-=bm4[0])
	{
		fread(rawimg+i,bm4[0],1,img);
	}
	fwrite(rawimg,dimt,1,out);
	return (EXIT_SUCCESS);    
}