Please consider supporting The Cutting Room Floor on Patreon. Thanks for all your support!

FIFA 97 (SNES)

From The Cutting Room Floor
Jump to: navigation, search

Title Screen

FIFA 97

Developer: Electronic Arts
Publisher: Electronic Arts
Platform: SNES
Released in US: June 24, 1996
Released in EU: 1996


DevTextIcon.png This game has hidden development-related text.


FIFA 97 is a soccer (or football) game on the Super Nintendo (or football).

Whoa, it's the Gold Edition. Those black spots on the ball must be onyx.

Debug Text

Many chunks of debug text are left in the ROM. Lotta chunks.

During development, this text was output to an external device for debugging purposes. A function to display this text starts at SNES address A9FF8C, though it is not called at any point. The function itself makes dozens of calls to a printf-like function which was later replaced with a single RTL (return long) instruction, effectively disabling the text output.

Chunk 1 - Players

Starts at 0x14EBBF:

PT_SHOOTOUT
PT_GK_DEFEND_PENALTY
PT_GK_DROPKICK
PT_GK_GOALKICK
PT_GK_PUNCH
PT_GK_DIVECATCH
PT_GK_CATCH
PT_GK_POSITION
PT_LEAVEGAME
PT_SUBOFF
PT_GET_CARDED
PT_CELEBRATE
PT_VICTORY_RUN
PT_PENALTY_KICK
PT_FREE_KICK
PT_CORNER_KICK
PT_THROW_IN
PT_JUMP
PT_DIVING_HEADER
PT_STUMBLE
PT_FALL_INJURED
PT_PUSH
PT_ELBOW
PT_SLIDE
PT_TACKLE
PT_KICK_BALL
PT_MARK_OPPONENT
PT_DRIBBLE
PT_CATCH_BALL
PT_POSITION
PT_RECEIVE_KICKOFF
PT_KICKOFF
PT_NO_TASK
** player 
waitTime=%d
*SET*
NULL
p->joypad %s
p->prevBallDist=%u
p->defaultMaxSpeed=%u
p->superpower=%u
p->bodyAngle=%d
p->destAngle=%d
p->notReady=%d
p->jumpHeight=%d
p->peakTime=%d
p->flightTime=%d
p->facing=%u
p->line=%u
p->sprintTime=%u
ANIM_seqID(p)=%u
p->anim.shapeID & 0x7fff=%u
p->anim.time=%u
p->anim.frameTime=%u
p->anim.note=%u
p->anim.memID=%u
p->anim.memID2=%u
p->anim.flip=%u
p->anim.frameIndex=%u
p->anim.facing=%u
p->anim.doturn=%u
p->anim.done=%u
p->notReady=%u
p->position 
p->destination 
p->destDist 
p->ballDist 
p->velocity 
task=%s, taskState=%d

Chunk 2 - Teams

Starts at 0x14F2BC:

team %d:
t->playersleft=%u
t->setplay=%u
t->strategy=%u
t->processPlayerID=%u
t->ballPlayer = 
t->zoneBoundary[i][0]=%d
t->zoneBoundary[i][1]=%d

Chunk 3 - Game State

Starts at 0x14F49F:

GS_SHOOTOUT
GS_CARD
GS_GOTO_DEST
GS_GOALIE_CAUGHT_BALL
GS_LEAVE
GS_SUB
GS_FOUL
GS_GOALIE_KICK
GS_GOALKICK
GS_FREEKICK
GS_PENALTY_KICK
GS_SCORE_GOAL
GS_CORNERKICK
GS_THROWIN
GS_PLAY
GS_KICKOFF
GS_STOP
Game:
totalTime=%u
state=%s 
score=%d,%d,%d

Chunk 4 - Current Match

Starts at 0x14F5F3:

gCurrentMatch:
gCurrentMatch.zone1[i]=%d
gCurrentMatch.zone2[i]=%d
gCurrentMatch.zone3[i]=%d
gCurrentMatch.zone4[i]=%d

Chunk 5 - Referee

Starts at 0x14F72C:

RT_CHECKINJURY
RT_SHOOTOUT
RT_SHOWOFFSIDE
RT_SHOWSCORE
RT_PROCESS_SUB
RT_CARD_PLAYER
RT_CALL_FREEKICK
RT_START_GAME
RT_NO_TASK
Referee: 
task=%s/%d 
start=%d
timer=%d
inextra=%d

Chunk 6 - Ball

Starts at 0x14F860:

Ball:
Ball.position 
Ball.prevposition 
Ball.startPosition 
Ball.landingPosition 
Ball.outPosition 
Ball.headerPosition 
Ball.chestPosition 
Ball.flightDistance 
Ball.velocity 
Ball.moveDist 
Ball.deltaCurveDist=%d
Ball.peakHeight=%d
Ball.trajectoryTime=%d
Ball.startTime=%d
Ball.flightTime=%d
Ball.elapsedTime=%d
Ball.xoffset=%d
Ball.zoffset=%d
Ball.headertime=%d
Ball.headerJumpTime=%d
Ball.headerJumpHeight=%d
Ball.chesttime=%d
Ball.kickjoystate=%d
Ball.curveVx=%d
Ball.curveVz=%d
Ball.bounceRatio=%u
Ball.speedRatio=%u
Ball.rollRatio=%u
Ball.netanim=%u
Ball.out=%u
Ball.insideNet=%u
Ball.hitNet=%u
Ball.hold=%u
Ball.bounceCount=%d
Ball.hide=%u
Ball.shotongoal=%u

Chunk 7 - Camera

Starts at 0x14FDA7:

Camera.target 
Camera.targetPosition 
Camera.target2Position
Camera.destTarget2Position
Camera.scrposition 
Camera.scrcentre 
Camera.xvel=%d
Camera.yvel=%d
Camera.maxcamx=%d
Camera.maxcamy=%d
Camera.panningMode=%u
Camera.onTarget=%u
(Source: Original TCRF research)