Hacking
Here is an article written by the greatly talented Serge, about how to go deeper into the LucasArts engine and enable develper mode in Grim Fandango, which was featured on his old SCUMM Revisited site. To access the developer mode he talks about, use bgbennyboy's launcher to launch the game. It may also be worth visiting LucasHacks, which contains various other LucasArts related hacking tools.
This article will go through a few of the ways to get further into
the LucasArts engines. Developer modes, additional parameters, etc.
etc. First, let's look extensively at Grim Fandango. Then a small
look at how to play CMI in a window. Please note that this stuff is
NOT for beginners. Although it's easy to enter developer mode, it
may screw up your game totally (normally a reinstall should take care
of that :) - I don't take any responsibility and provide no support for
this. Be warned. Now that you're all scared away, let's move on
to the dangerous info ;)
Noone Messes with Manuel Calavera
But we will, anyway. You may have noticed that executing
"GRIMFANDANGO.EXE -?" displays a lot of arguments you may
send to the Grim Fandango executable. Some of them look quite
interesting don't they? Well, there are only a few of them that will
actually do anything (such as -s, loading the most recently saved
game) - unless you enter development mode!
You can enter the development mode of
Grim Fandango by going to the registry. Find the Grim Fandango
key (usually in HKEY_LOCAL_MACHINE/Software/LucasArts Entertainment
Company LLC/Grim Fandango/v1.0) and add a new string value in it. Call
this new string value good_times, and give it the value "TRUE".
Now you'll be able to use all the locked arguments of GRIMFANDANGO.EXE.
These include:
-w |
Runs Grim Fandango in windowed mode, rather than full screen. This
crashed on my computer. However, there is a different way of going to
windowed mode when developer mode is turned on. While playing the game,
go to options, and choose the old 3D Hardware Options item. Then pick
the item saying "DIBSection Windowed Display" and do as
prompted. This worked on my comp. Woohoo! :) |
-l |
Logs messages to debug.log. This only works if you have the proper
debuglog.dll in your Grim Fandango directory. Maybe it won't even work
when that condition is met - I haven't tested. If you want to try anyway,
download the debugging patches from the download
page. |
-r |
Logs resource info to a file called resource.log in your Grim
directory. This works without debuglog.dll. Question is if it's very
interesting to anyone who isn't writing a game in GrimE ;). |
-c |
After Grim Fandango starts, this will invoke the chore tool, which
is an interface used for setting up walking boxes, actor chores etc.
Only problem is, it requires choreface.dll, which isn't included with
the release version of Grim Fandango. Quite clever, aren't they? - LucasArts. |
-m |
I guess this does what the window says: Sets the maximum memory usage
to whatever you specify (-m 2048 = 2MB). Used for testing the game with
lower amounts of memory than what the test machine has. |
-s |
I already mentioned this one. It works without the registry modification,
and is used for loading the most recently saved game (it's what the launcher
program calls to achieve this). |
-b |
Allows you to pass parameters to the BOOT script (the one called
_system.lua). As I haven't got this script decompiled yet, I can't tell you
whether there actually are any useable parameters. |
-p |
This allows you to add an additional data directory to Grim Fandango.
Normally, the game will load resources from the CD Resource dirs, the
Grim directory, and the Grim\Scripts directory (if you have
TextAllowed=TRUE in the registry - see the Secret and Less Secret Issues
part of the SCUMM Revisited help file). So, with this you can add, say,
Grim\MyData by running GRIM.EXE -p MyData. |
-z |
Accellerated z-buffers. I have no idea how accellerated these are. I
noticed no difference when running the game with this parameter. |
Ingame Keys
Lots of ingame keys are turned on when you enter development mode. Stuff
like:
Ctrl+e |
Allows you to enter Lua code and send it directly to the engine for
execution (try stuff like SayLine("I killed Guybrush
Threepwood") or DrawLine(0,0,640,480) ) Note that
Lua is case-sensitive! |
Ctrl+g |
Will allow you to choose any room you want to jump to, either using
the full name (such as "Manny's Office") or a shortcut, which
is the .set name of the room (e.g. "mo"). The rooms are as
follows:
Short name |
Friendly name |
Description |
pf
| photofinish
|
|
testroom
| testroom
| Glottis' Dog House
|
charlie_inv
| charlie_inv
| Chowchilla Charlie's Suit
|
death_inv
| death_inv
| Black Robe Inventory
|
siberian_inv
| siberian_inv
| Siberian Coat Inventory
|
nautical_inv
| nautical_inv
| Nautical Uniform Inventory
|
cafe_inv
| cafe_inv
| White Dinner Jacket Inventory
|
action_inv
| action_inv
| Army Uniform Inventory
|
suit_inv
| suit_inv
| Work suit inventory
|
mo
| Manny's Office
| Manny's DOD Office
|
os
| office steps
| Stairs Outside the DOD
|
rp
| ramp
| Highway Ramp outside DOD
|
ha
| Hallway
| DOD Hallway
|
lo
| lobby
| DOD Lobby
|
ga
| Garage
| DOD Garage
|
gs
| Glottis' Shop
| Glottis' Mechanics Shop
|
al
| Alley
| Alley behind DOD
|
st
| st
| El Marrow Main Street
|
le
| Ledge
| DOD Ledge
|
co
| Copal's Office
| Don Copal's Office
|
lr
| Diner
| Land of the Living Diner
|
pk
| Packing Room
| DOD Packing Room
|
do
| Domino's Office
| Domino Hurley's Office
|
fe
| festival
| Festival of the Dead
|
tu
| Tube Room
| Tube Server
|
hq
| headquarters
| LSA Headquarters
|
rf
| Roof
| DOD Roof
|
sm
| sm
| El Marrow Skyline from Forest
|
sg
| signpost fork
| Petrified Forest Signpost Fork
|
sp
| spiderweb
| Petrified Forest Spider Web
|
na
| navigation room
| Petrified Forest "Maze"
|
lb
| Lobby for Beaver Room
| Beaver Warning Sign
|
bd
| Beaver Dam
| Beaver Dam
|
bv
| beaver room
| Gate Outside Beaver Dam
|
tr
| tree pump room
| Tree Pump Machinery Room
|
fc
| foggy cactus
| Outside Rubacava
|
re
| rubamat exterior
| Rubacava Rubamat Exterior
|
ri
| rubamat interior
| Rubacava Rubamat Interior
|
cf
| cafe office
| Cafe Calavera Office
|
cc
| coat check
| Cafe Calavera Coat Check
|
ci
| cafe interior
| Cafe Calavera Bar
|
cn
| casino interior
| Cafe Calavera Casino
|
ce
| cafe ext
| Cafe Calavera Exterior
|
cl
| cafe ledge
| Cafe Calavera Ledge
|
lm
| Limbo Dock
| Rubacava Dock
|
hb
| temp hub room
|
|
bw
| blue casket wide
| Blue Casket Wide Shot
|
be
| Blue Casket Exterior
| Blue Casket Exterior
|
bi
| Blue Casket interior
| Blue Casket Interior
|
bk
| Blue Casket kitchen
| Blue Casket Kitchen
|
se
| scrimshaw exterior
| Tattoo Shop Exterior
|
si
| Scrimshaw Interior
| Tattoo Shop Interior
|
ev
| Elevator Station
| Rubacava Elevator Station
|
pc
| police station
| Rubacava Police Station
|
mg
| morgue
| Rubacava Morgue
|
bp
| bridge police side
| Rubacava Bridge - Police Side
|
bb
| blimp bridge
| Rubacava Bridge
|
gt
| lol gate
| Rubacava City Gate
|
sl
| shuttle security
| Security Officer Carla
|
tb
| track betting
| Kitty Track Betting Area
|
tw
| track window
| Kitty Track Overview Window
|
ts
| track stairs
| Kitty Track Stairs
|
kh
| Kitty Hallway
| Kitty Track Hallway (Sanspoof)
|
ks
| kitty stable
| Kitty Stable
|
dd
| dry dock
| The Bees' Dry Dock
|
hh
| high roller hall
| High Rollers Lounge Hall
|
hl
| high roller lounge
| High Rollers Lounge
|
hk
| high roller kitchen
| High Rollers Lounge Kitchen
|
hp
| high roller pantry
| High Rollers Lounge Pantry
|
he
| high roller elevator
| High Rollers Lounge Elevator
|
wc
| wine cellar
| High Rollers Wine Cellar
|
de
| dillopede elevator
| High Rollers Dillopede
|
dh
| dillopede hall
| High Rollers Dillopede Hall
|
mx
| maximinos office
| Swanky Maximino's Office
|
pi
| police interior
| Rubacava Police Station Int.
|
lx
| lighthouse exterior
| Rubacava Lighthouse Exterior
|
xb
| extend o bridge
| Velasco's Storage Room
|
tx
| track base
|
|
cb
| cafe balcony
| Cafe Calavera Balcony
|
tp
| ticket printer
| Betting Ticket Printer
|
lz
| lola zapata
| Deck of Lola
|
il
| Inside the Lola
| Lola Interior
|
ei
| engine room interior
| Lola Engine Room
|
dp
| dock porthole
| Engines Porthole - Dock
|
op
| ocean porthole
| Engines Porthole - Ocean
|
su
| sunken lola
| Sunken Lola
|
ps
| pearl sub
| Octopus Submarine
|
ew
| end of the world
| End of the World Overview
|
ea
| exterior airlock
| End of the World Airlock
|
mn
| miners
| End of the World Mines
|
fh
| temp factory hub
| End of the World Factory Hub
|
vd
| vault door
| Number 9 Tickets Vault Door
|
ar
| ashtray room
| End of the World Ashtray Room
|
dr
| dominos room
| Domino at the End of the World
|
fo
| foremans office
| Mining Foreman's Office
|
cy
| conveyor
| Conveyor Belt
|
ac
| anchor room
| Anchor at Conveyor Belt
|
gh
| Glottis hanging on the Lamancha
| Lamancha over the Edge of the World
|
cv
| crane conveyor
| Crane and Conveyor Belt
|
bu
| upper beach
| Upper Beach
|
ck
| crane track
| Crane Track Overview
|
bl
| beach lower
| Lower Beach
|
cu
| crane crusher
| Crusher
|
vo
| outer vault
| Outer Number 9 Tickets Vault
|
vi
| vault interior
| Inner Number 9 Tickets Vault
|
lu
| lamancha sub
| Submarine Battle
|
inv_naut
| Inventory
| Nautical Inventory
|
ul
| undernath [sic!] the Lola
|
|
tg
| temple gate
| 9th Underworld Temple Gate
|
bs
| temple back stairs
| Temple Back Stairs
|
my
| mayan workshop
| Mayan Workshop
|
td
| truck depot
| Mayan Truck Depot
|
mk
| mechanics kitchen
| Mayan Mechanics Kitchen
|
jb
| Bone Wagon Garage
| Velasco's Storage Room Int.
|
nq
| New Headquarters
| New LSA Headquarters
|
sh
| sewer hub
|
|
lw
| lsa sewer
| LSA Headquarters Sewer
|
te
| theater sewer
| Sewer outside Theater
|
th
| theater backstage
| El Marrow Theater Backstage
|
zw
| sewer maze
| Sewer Forking
|
at
| albinizod tunnel
| Tunnel Outside Florist's Shop
|
fp
| florist shop
| Florist's Shop Exterior
|
fi
| florist interior
| Florist's Shop Interior
|
ly
| le mans lobby
| Le Man's Lobby
|
hf
| hectors foyer
| Le Man's Foyer
|
nl
| Neon Ledge
| El Marrow Neon Ledge
|
mf
| Meadow Flowers
| Meadow outside Greenhouse
|
me
| meadow exterior
| Meadow outside Greenhouse
|
mt
| mayan train station
| Station Before 9th Underworld
|
|
Ctrl+i |
Turns on/off walking boxes. |
Ctrl+l |
Turns on/off lighting (i.e., when off, Manny (and the other actors)
won't be shaded according to shadows etc.) |
Ctrl+n |
Displays the background image name in the lower left corner |
Ctrl+o |
Creates a door. May require choreface.dll |
Ctrl+p |
Executes patch-file. |
Ctrl+s |
Turns on cursor - you can move the cursor along the y and z axis
using the arrow keys, Alt+arrow up/down moves the cursor along the
x axis. Home places Manny as close to the cursor as he
can get.
|
Ctrl+u |
Creates a new object. May require choreface.dll |
Ctrl+v |
Prints the value of a variable. |
Alt+n, Alt+p |
Changes back and forth between view points. |
Alt+s |
Allows you to run a Lua script. |
Shift+n, Shift+p |
Moves back and forth between rooms (Note: This will often force
you to change CD). |
Shift+o |
Displays/Hides object names. |
F3 |
Enables/disables the Sector Editor (which probably requires
choreface.dll and thus can't be used for anything). |
Home |
Positions Manny at his home position in the current room. |
j |
Jumps to specific spots in the game. Some of these - don't know
if I have them all:
"Number" |
Description |
rb
| Reaped Bruno
|
rm
| Reaped Meche
|
gb
| Packing Room
|
tb
| Manny's Office
|
tc
| Tube Room
|
mm
| Manny and Meche dialogue
|
sd
| Locked up in Glottis' Shop (Salvador).
|
cr
| Ledge
|
rip
| Petrified Forest (Glottis rips his heart out)
|
gh
| Spider Web (Glottis' heart)
|
tp
| Tree Pump
|
tf
| Scrimshaw Interiors
|
dm
| Morgue
|
shanghai2
| Cafe Exteriors
|
hrkitchen
| High Roller Kitchen
|
winecellar
| Wine cellar
|
ts
| Meadow exterior
|
|
SCUMM Revisited Annotations
Here are some annotations for Grim Fandango in SCUMM revisited. Use these while viewing the voice files, and they will tell you what line of dialogue every file is. Very useful!
GF Voice Annotations
|