Hi Octane

From ModdingWiki
Jump to navigation Jump to search
Hi Octane
Hi Octane.png
There is no image of a modified version of this game — upload one!
Levels?X mark.svg Not editable
Tiles?X mark.svg Not editable
Sprites?X mark.svg Not editable
Fullscreen?X mark.svg Not editable
Sound?X mark.svg Not editable
Music?X mark.svg Not editable
Text?X mark.svg Not editable
Story/cutscenes?X mark.svg Not editable
UI/menus?X mark.svg Not editable
Demos?Unknown

Hi Octane is hover-car racing game. According to Sean Cooper it was made in 6.5 weeks using engine code from Syndicate and Magic Carpet.

Tools

Level inspector and incomplete editor by movAX13h (contains all assets of the original game extracted/converted by srtuss): https://github.com/movAX13h/HiOctaneTools

File formats

The following file formats are used by this game.

Filename Format Details
sounds/music.dat see below Archive containing music files in different formats: XMI Format, GEN Format, ROL Format, WTB Format.
There are five files per format : TGAME1, TGAME2, TGAME3, TGAME4, TINTRO2.

MUSIC.DAT

  • read the INT32LE at EOF and seek to returned position
  • count the N number of INT16LE that equals 0x0001, then read N of the following struct:
Data type Name Description
INT32LE offTunes Offset to the list of tunes
INT32LE offTune1 Offset to the first tune
INT32LE unknown Unknown (always 0xC0000000, or 192)
INT32LE lenTunes Length of all tunes together, bytes
  • for each of the former struct
    • seek to offTunes
    • read one of the following struct, its lenTune indicates the byte sum of tunes following
    • read as many of the following struct until their lenTune sum equals the one in previous step
Data type Name Description
CHAR name[12] File name of the tune, \0 padded
CHAR padding[6] Padding bytes
INT32LE offTune Tune relative offset
CHAR padding[4] Padding bytes
INT32LE lenTune Tune length, bytes
INT16LE unknown Unknown (always 0x5A00, or 90)
  • you now have a catalog of a collection of tunes, e.g. five ROL songs, five WTB songs etc
  • to extract a song, copy lenTune bytes starting at offTune1 + offTune, file name is name

RNC-compressed files

Many of the game's files are compressed using the Rob Northern Compression format; some of them such as SOUND\SOUND.DAT are a concatenation of many RNC archives simply glued together.

A command-line unpacker can be found here : Bullfrog games RNC Utilities (from Unpacking RNC files)

DAT/TAB pairs

Can be decompressed using Bullfrog games DAT/TAB Graphics extractor (they first must be decompressed if they are RNC-compressed).

DAT format:

Without a TAB file, it's raw pixels; with a TAB file it's a form of line by line RLE compression where only transparent pixels are compressed.

TAB format:

Data type Name Description
INT32LE position Image position in .DAT
INT16LE width Image width
INT16LE height Image height

TMAPS:

Contains powerups and some HUD elements but TAB format is different:

Data type Name Description
INT32LE flat Size of RNC stream unpacked, useless as it's contained in stream header already
INT32LE pos Position in DAT
INT16LE index Some index but can be duplicate, so likely a type or category instead

There are N+1 entries to be able to compute last item size in DAT.

Each image has the following format:

Data type Name Description
INT16 unknown Unknown
INT8 width Image width
INT8 height Image height
INT8[] pixels Image pixels, 8-bit paletted

Game's files

Name Format RNC compressed Notes
data\hfont0-0.dat
data\hfont0-0.tab
Unknown format Yes Thin white font (SVGA)
data\hspr0-0.dat
data\hspr0-0.tab
Unknown format Yes Editor icons (large)
data\intro.dat Autodesk FLI animation No Game introduction
data\logo0-0.dat
data\logo0-0.tab
Unknown format Yes Game logo (VGA)
data\logo0-1.dat
data\logo0-1.tab
Unknown format Yes Game logo (SVGA)
data\mfont0-0.dat
data\mfont0-0.tab
Unknown format Yes Thin white font (VGA)
data\mspr0-0.dat
data\mspr0-0.tab
Unknown format Yes Editor icons (small)
data\olfnt0-0.dat
data\olfnt0-0.tab
Unknown format Yes Large white font (VGA)
data\olfnt0-1.dat
data\olfnt0-1.tab
Unknown format Yes Large white font (SVGA)
data\onet0-*.dat
data\oscr0-*.dat
Raw VGA image, 320×200 and 640×480 Yes Loading and selection screens
data\osfnt0-0.dat
data\osfnt0-0.tab
Unknown format Yes Small white font (VGA)
data\osfnt0-1.dat
data\osfnt0-1.tab
Unknown format Yes Small white font (VGA)
data\palet0-0.dat VGA Palette No The palette of every asset of the game, unless specified
data\panel0-0.dat
data\panel0-0.tab
Unknown format No HUD 2-players (SVGA)
data\panel0-1.dat
data\panel0-1.tab
Unknown format No HUD 1-player (SVGA)
data\panel9-0.dat
data\panel9-0.tab
Unknown format No HUD 2-players (VGA)
data\panel9-1.dat
data\panel9-1.tab
Unknown format No HUD 1-player (VGA)
data\pfont0-0.dat
data\pfont0-0.tab
Unknown format No Large green font (VGA)
data\pfont0-1.dat
data\pfont0-1.tab
Unknown format No Large green font (SVGA)
data\point0-0.dat
data\point0-0.tab
Unknown format Yes Editor cursors
data\puzzle.dat Raw VGA image, 112×96 No The cheat puzzle activated with CTRL-Tab in-game
data\sky0-*.dat Raw VGA Image, 256×256 Yes Horizon of each track
data\srch0-0.dat Raw VGA Image, 32×32 Yes Looks like a radar but seems to be unused
data\table0-*.dat Unknown format Yes

These files differ by at most a few bytes, their name suggests a sine table but this is pure speculation.

The following pattern appears when they are interpreted as a 256 pixels wide image:

HiOctaneTable.png

data\textu0-*.dat Raw VGA image, 64×16384 Yes 64×64 terrain textures
data\title.dat Raw VGA image, 320×200 Yes The introductory screen
data\tmaps.dat Yes see above
data\tmaps.tab No see above
data\track0-0.dat
data\track0-0.tab
data\track0-1.dat
data\track0-1.tab
Unknown format Yes Looks unused, game still plays without them
objects/data/tex0-0.dat
objects/data/tex0-0.tab
Hi-Octane Texture Atlas, 256×768 No In-game textures
objects/data/tex0-1.dat
objects/data/tex0-1.tab
Hi-Octane Texture Atlas, 256×88 No In-game textures

Note: none of the TAB files are RNC-compressed.

Notes

General

The image formats above are partially decoded, they are still missing palette information.

All the images are paletted, 8 bits per pixels.

INTRO.DAT

Header can be fixed using Autodesk Animator FLI files fixer but since format is pretty old and that Autodesk Animation Player 1.10 is a legacy Win16 executable, it is not very convenient to use as of today.

Instead, the file can be converted by FFMPEG to either BMP or AVI,

Convert the animation to individual images, handle last invalid frame:

<syntaxhighlight lang="text"> ffmpeg -i INTRO.DAT -vframes 548 -pix_fmt bgr24 intro%03d.bmp </syntaxhightlight>

Convert the sequence of images to a raw AVI and respect the original frame rate:

<syntaxhighlight lang="text"> ffmpeg -r 14 -i intro%03d.bmp -vcodec rawvideo intro.avi </syntaxhightlight>

Note that since the underlying format does not handle audio, there won't be any.

Credits (in alphabetical order)

Aybe

Malvineous

movAX13h

srtuss

Syndicate series unofficial fan site for the various utilities.

Links

Game demo, Network and MPU-401 patches

Hi-Octane + General MIDI = crash?