the cutting room mirror

Ground Effects

Ground Effects is an F1 racing game that supports up to 8 players. Thanks to licensing agreements with FIA/FOCA and the 1992 season's Big Four teams (McLaren, Williams, Ferrari, and Benetton), Taito was able to incorporate real F1 courses and cars into the game.

If Sega's F1 Super Lap hadn't came out with the same features (and more) in the exact same month, maybe this game wouldn't have been relegated to obscurity.

Debug Functions#

Exception Handler#

GroundEffectsCrashHandler.png
This game has a simple exception handler that displays the exception name and the values of the program counter, status register, and data/address registers at the time of crash.

Object Placement#

To replace the Test Mode menu with one of two different debugging tools, place this code in MAME's groundfx.xml cheat file:

  <cheat desc="Course Editor">
    <parameter>
      <item value="0x64D6">Object Placement</item>
      <item value="0x7B38">Course Editor</item>
    </parameter>
    <script state="run">
      <action>maincpu.mw@002916=param</action>
    </script>
    <script state="off">
      <action>maincpu.mw@002916=631C</action>
    </script>
  </cheat>

Both tools try to read input from buttons that don't exist on a retail unit. Place the following code in groundfx.xml to replace those inputs with reads from the Service 1 button:

  <cheat desc="Control Fixes">
    <script state="run">
      <action>maincpu.mw@13656A=0002</action>
      <action>maincpu.mw@136E1E=0002</action>
      <action>maincpu.mw@137042=0002</action>
      <action>maincpu.mw@1372C0=0002</action>
      <action>maincpu.mw@137390=0002</action>
      <action>maincpu.mw@137B82=0002</action>
      <action>maincpu.mw@137D4C=0002</action>
    </script>
    <script state="off">
      <action>maincpu.mw@13656A=0004</action>
      <action>maincpu.mw@136E1E=0004</action>
      <action>maincpu.mw@137042=0004</action>
      <action>maincpu.mw@1372C0=0004</action>
      <action>maincpu.mw@137390=0004</action>
      <action>maincpu.mw@137B82=0004</action>
      <action>maincpu.mw@137D4C=000C</action>
    </script>
  </cheat>

GroundEffectsEditorSelect.png
A simple course select menu will load first. Press 1P Button 1 to select between courses and Service 1 to load that course.

GroundEffectsObjectPlacement.png
This tool allows the user to place hazards both on the track and on the sides of the course. Object placement is stored at a location in RAM: In a development environment, the user would probably be able to get that data from RAM to paste into the ROM later, but at this point the only thing the user can do here is drive around the course as a tree. And isn't that enough, really?

This editor also allows the user to view the hit data information of the course.

Controls

  • 1P Forward: Moves forward in the course.
  • 1P Forward + 1P Button 2: Moves backward in the course.
  • 1P Left/Right: Moves left or right on the course.
  • 1P Button 1: Increments hazard number ID by 1.
  • 1P Button 1 + 1P Button 2: Decrements hazard number ID by 1.
  • 1P Button 3: Sets the hazard on the track.
  • Service 1: Changes the editor mode.

:*Set Mode: Places hazards on the track.

:*Delete Mode: Deletes hazards on the track.

:*Autoset Mode: Allows the user to place many different objects at once. Press 1P Button 3 once to set the starting point, and press 1P Button 3 again to set the end point. The currently selected object will be placed multiple times in line formation from the starting point to the ending point.

:*Data Load: Pressing 1P Button 3 will load the default object data for the current track from the game ROM.

Course Editor#

This uses the same course select menu as the object placement tool and is controlled in the same way.

GroundEffectsCourseEditor.png
This tool allows the user to edit the graphics of all four tracks. The top window shows the current chunk of track; the piece that will be edited is at the very bottom, just above the "Parts No" text. The second, smaller window at the bottom shows the map part that can be placed on the track.

Controls

  • 1P Forward: Moves forward in the course.
  • 1P Forward + 1P Button 2: Moves backward in the course.
  • 1P Button 1: Increments part number by 1.
  • 1P Button 2 + 1P Button 2: Decrements part number by 1.
  • 1P Button 3: Sets the part on the track.
  • Service 1: Changes the editor mode.

:*All Set: Track parts are set on the left and right side of the road.

:*Left Set: Track parts are set on the left sight only.

:*Right Set: Track parts are set on the left sight only. GroundEffectsCourseEditor2.png
:*Data Load: Pressing 1P Button 3 will load the stage's layout from ROM.

(Source: Original TCRF research)

High Score Names#

GroundEffectsHighScore.png
There are 35 names that the game checks for on high score entry. Most use the default palette, but some will be highlighted in a unique pink or green palette.

The first group is made up of repeating characters. Though most of these replacements aren't particularly interesting, the ones in green and a few in red seem to be developer handles:

AAA

BBB

CCC

DDD

EEE

FFF

GGG

HHH

III

JJJ

KKK

LLL

MMM

NNN

ABC

BON

CDE

DEF

EFG

FGH

GE2

HOE

IJK

JKL

K.T

LMN

MNO

NOP

OOO

PPP

QQQ

RRR

SSS

TTT

UUU

VVV

WWW

XXX

YYY

ZZZ

...

___

OPQ

PA2

QRS

RST

STU

TOM

UVW

VWX

WXY

XYZ

Y.A

Z.

GE2

F 1

The second group includes the ubiquitous "SEX" censor and what appear to be more developer pseudonyms.

SEX

UNI

.KT

.YA

.TY

.TK

BON

UNI

X.R

TOM

Y.A

YKO

TAK

BON

(Source: Original TCRF research)

Obscured Background#

Visible

Full View

The background graphic for the title screen is not only cut off by eight pixels to the top, but due to the way the game logo is placed and transitioned, results in the Honda logo present on the engine block (the RA122/B engine used by the McLaren MP4/7A) being obscured.

Developer Text#

A complete set of sample names can be found at the start of each bank in the Ensoniq sample ROMs (d51-01.73, d51-02.74):

0x000000

0x080000

0x100000

0x180000

0x200000

0x280000

CRA*1  LAYER
CRA*2  LAYER
CRA*3  LAYER
ATA*1  LAYER
ATA*2  LAYER
ATA*5  LAYER
ATA*4  LAYER
ATA*3  LAYER
SIG*1  LAYER
SIG*2  LAYER
EXT*1  LAYER
EXT*2  LAYER
AME*1  LAYER
AME*2  LAYER
YEN*1  LAYER
YEN*2  LAYER
YEN*3  LAYER
SPN*1  LAYER
SPN*3  LAYER
SPN*4  LAYER
STOP*1 LAYER
HI*1   LAYER
TUKA*1 LAYER
TUKA*2 LAYER
GRD*1  LAYER
SUNA*1 LAYER
GRD*2  LAYER
NUKI*1 LAYER
NUKI*2 LAYER
KYAKU*1LAYER
CRA*22 LAYER
FUKA*1 LAYER
FUKA*3 LAYER
FUKA*2 LAYER
FUKA*4 LAYER
EGN*5  LAYER
EGN*1  LAYER
BERU   LAYER
EGN*2  LAYER
EGN*3  LAYER
SERE*2 LAYER
EXT*3  LAYER
AKA*1  LAYER
COIN*11LAYER
COIN*22LAYER
COIN*33LAYER
PIPI*2 LAYER
OPEN*1 LAYER
CRA*11 LAYER
PIPI*3 LAYER
PIPI*4 LAYER
DOWN*1 LAYER
SPN*10 LAYER
SOLO GUIT   
PIANO YMD   
TNNAMEDLAYER
ROK LUVTHING
F1 START LP 
F1 START INT
BOLT*SIME   
TUKA*PIT1   
TUKA*PIT2   
­ENGIN*STOP  
PIT*SAIREN  
KANSEI*ANA  
DERU        
SPANA       
KANSEI 000  

(Source: Original TCRF research)

Oddities#

Ivan Capelli#

In this game, the network ID determines the car and the driver helmet, with IDs 1-4 resulting in primary driver and 5-8 giving a secondary driver (for instance, McLaren has ID 1, which gives Ayrton Senna's helmet, and ID 5, which gives Gerhard Berger's), although none of the drivers are explicitly named in-game. In case of Ferrari (IDs 3 and 7), although the helmet in the FMV sequence during attract mode for the team shows Ivan Capelli's helmet, setting the network ID to 7 will result in it having Jean Alesi's helmet, the same as ID 3. This may be because Capelli was fired from the team after the 1992 Portuguese Grand Prix after a disappointing season.