the cutting room mirror

Bio F.R.E.A.K.S. (Nintendo 64)

BioFREAKS; the amazing 3D fighting video game released by Midway that was too good for the arcades!

Debug Display#

BioFREAKS_N64_Debug_Display.png

A simple debug display which shows various system-related information can be enabled with the below GameShark code.

GameShark Code

Version

80137085 0001

USA

801375D5 0001

Europe

(Source: Original TCRF research)

Cheats#

BioFREAKS_N64_Cheats1.png BioFREAKS_N64_Cheats2.png BioFREAKS_N64_Cheats3.png

A hidden cheat system can be activated with simple button inputs. While in the options menu, hold L + R buttons and press the following buttons below for a desired effect. The below buttons are all inputs on the D-Pad only.

D-Pad Inputs

Reward

Left, Left, Left, Left, Right, Right, Right, Right

PLAYERS AS SPHERES

Left, Left, Right, Right, Left, Left, Right, Right

DITHER FILTER

Left, Left, Right, Right, Left, Left, Right, Left

INFINITE ROUNDS

Up, Left, Down, Right, Up, Right, Down, Left

MUTILATOR ARENA

Left, Left, Right, Right, Up, Up, Down, Down

PLAYER 1 CLONUS

Right, Right, Left, Left, Up, Up, Down, Down

PLAYER 2 CLONUS

Left, Left, Down, Left, Down, Left, Down, Left

COLOR DITHER MAGIC SQUARE

Right, Right, Down, Right, Down, Right, Down, Right

COLOR DITHER BAYER

(Source: Original TCRF research)

Build Date/Time#

Version

Build Date

Time

USA

MAR 17 1998

13:46:57

Europe

APR 23 1998

16:09:16

Hold any C button before powering on the N64 to display a build date and time upon starting the game.

Crash Debugger#

BioFreaksN64-crash.png

If the game ever crashes, it will display a very basic crash debugger.

(Source: Ferrox)

Debugging Text#

ASSERT Failure  glistp != dynamicp->glist
ASSERT Failure  sprite != NULL
ASSERT Failure  head != NULL
ASSERT Failure  object->numVertices < T_MAX_VERTS
ASSERT Failure  object != NULL
ASSERT Failure  listHead != NULL
ASSERT Failure  gListData != NULL
ASSERT Failure  entry
ASSERT Failure  ((unsigned long)tex & 0x7) == 0 n/nsprite.c
ASSERT Failure  hdr->magic == SPRITE_MAGIC  n/nsprite.c
ASSERT Failure  newData != NULL
ASSERT Failure  sprite != NULL
ASSERT Failure  0   n/nsprite.c
ASSERT Failure  frameNum >= 1 && frameNum <= head->header.frameCount    n/nsprite.c ntex_post_load
ASSERT Failure  0   n/sndtask.c  ** pre-nmi
ASSERT Failure  offset != 0
ASSERT Failure  dest < particleQueueStart[numParticleGroups]
ASSERT Failure  dest <= particleQueueStart[numParticleGroups]
ASSERT Failure  particleQueueStart[0] != NULL
ASSERT Failure  particleGroupIdCount < MAX_PARTICLE_GROUP_ENTRIES-1
ASSERT Failure  numParticleGroups < NUM_PARTICLE_GROUPS
ASSERT Failure  arenaNum < MAX_SPECIAL_SLOTS
ASSERT Failure  specialLoad[arenaNum].ramEnd <= specialLoad[MAX_SPECIAL_SLOTS]
ASSERT Failure  specialLoad[arenaNum].romStart != 0
ASSERT Failure  packs < (0x01 << (MAX_RUMBLE_PACKS))
ASSERT Failure  xLook + yLook + zLook != 0
ASSERT Failure  xLook*xLook + yLook*yLook + zLook*zLook != 0
ASSERT Failure  xRight*xRight + zRight*zRight != 0
ASSERT Failure  xUp*xUp + yUp*yUp + zUp*zUp != 0
ASSERT Failure  bioPongBall
ASSERT Failure  head != NULL
ASSERT Failure  p->object.anim
ASSERT Failure  player[num].object.anim
ASSERT Failure  ( 47*(320.0f/512.0f) == 223*(320.0f/512.0f)) || ( 49*(240.0f/400.0f) == 49*(240.0f/400.0f))
ASSERT Failure  ( 47*(320.0f/512.0f) == 222*(320.0f/512.0f)) || ( 60*(240.0f/400.0f) == 60*(240.0f/400.0f))
ASSERT Failure  ( 47*(320.0f/512.0f) == 47*(320.0f/512.0f)) || ( 50*(240.0f/400.0f) == 59*(240.0f/400.0f))
ASSERT Failure  ( 223*(320.0f/512.0f) == 223*(320.0f/512.0f)) || ( 50*(240.0f/400.0f) == 71*(240.0f/400.0f))
ASSERT Failure  ( 118*(320.0f/512.0f) == 222*(320.0f/512.0f)) || ( 70*(240.0f/400.0f) == 70*(240.0f/400.0f))
ASSERT Failure  ( 118*(320.0f/512.0f) == 118*(320.0f/512.0f)) || ( 61*(240.0f/400.0f) == 71*(240.0f/400.0f))
ASSERT Failure  ( 289*(320.0f/512.0f) == 465*(320.0f/512.0f)) || ( 49*(240.0f/400.0f) == 49*(240.0f/400.0f))
ASSERT Failure  ( 290*(320.0f/512.0f) == 465*(320.0f/512.0f)) || ( 60*(240.0f/400.0f) == 60*(240.0f/400.0f))
ASSERT Failure  ( 289*(320.0f/512.0f) == 289*(320.0f/512.0f)) || ( 50*(240.0f/400.0f) == 71*(240.0f/400.0f))
ASSERT Failure  ( 465*(320.0f/512.0f) == 465*(320.0f/512.0f)) || ( 50*(240.0f/400.0f) == 60*(240.0f/400.0f))
ASSERT Failure  ( 290*(320.0f/512.0f) == 393*(320.0f/512.0f)) || ( 70*(240.0f/400.0f) == 70*(240.0f/400.0f))
ASSERT Failure  ( 392*(320.0f/512.0f) == 392*(320.0f/512.0f)) || ( 61*(240.0f/400.0f) == 71*(240.0f/400.0f))
ASSERT Failure  player[num].object.anim
ASSERT Failure  recordBackground
ASSERT Failure  *str < MAX_ASCII_CHRS
ASSERT Failure  *p < MAX_ASCII_CHRS
MASTER.MUK
SHIELD1
SHIELD2
envMapID[0]
VSSYM
VS_FX
%02.2d
VERIFY Failure  loadAnimationFromMuck(mf, &p->moveList[index].anim, entry)
VERIFY Failure  loadAnimationPathFromMuck(mf, p->moveList[index].anim, entry)
VERIFY Failure  readMuckEntry(mf, &offset, KeyFrameData[who], KEY_FRAME_DATA_SIZE)
Uncompressing texture data
exit ntex_post_load
%s  %x %d
PC 0x%08.8X
File:
Line: %d
REASON %08.8X
Thread %02.2d Crashed
Loading from %lx to %lx, size %d
Dest size %ld
Clearing %d bytes for globals
Players As Spheres
Dither Filter
Infinite Rounds
Mutilator Arena
Player 1 Clonus
Player 2 Clonus
Color Dither
Magic Square
Color Dither Bayer
Unable to load END%d animation player
Unable to load animation path %d for player
Loading hud...
Loading music and sound FX...
Unable to find player %s
Unable to load player %s
Unable to find move list %s
Unable to load move list %s
Unable to load %s animation %ld for player %ld
Unable to load animation path %d for player %d
Player %d: ready stance missing.
Unable to find arena %s
INSTRSHD
INSTRCHG
INSTRFLY
LEGAL
FINTITLE
CAM_MARGIN
MIN_RADIUS
CAM_SLOP
POS_SLOP
MAX_CAMERA_VELOCITY
MAX_TARGET_VELOCITY
CAMERA_RETARD
CAMERA_ATTRACT
TARGET_RETARD
TARGET_ATTRACT
CAMERA_ATTRACT_FAST
CAM_FASTRANGE
TARGET_ATTRACT_FAST
PLAYER-2 screen loc.x
PLAYER-2 screen loc.y
PLAYER-2 screen loc.z
CAM_ROTATION
BAD_VIEW_RANGE
Unable to find %s MUK
Unable to load arena
fps  %d
frame %5d
cpu %5d
a cpu %5d
g rsp %5d
a rsp %5d
rdp %5d
dw %5d
cw %5d
frm %d
BFONT000%d