646 lines
23 KiB
Plaintext
646 lines
23 KiB
Plaintext
|
|
||
|
GUIDE TO CONFIGURING GNUBOY
|
||
|
|
||
|
|
||
|
[ P A R T I ]
|
||
|
OVERVIEW
|
||
|
|
||
|
There are two major ways of configuring the way gnuboy behaves at
|
||
|
runtime: setting the values of variables, and binding commands to keys
|
||
|
and joystick buttons. Each can be done either on the command line, or
|
||
|
from a config (rc) file.
|
||
|
|
||
|
If you don't want to read all this detailed info, look at the sample
|
||
|
rc files provided, then browse back through this file to clarify
|
||
|
anything that seems confusing. You might also skip down to Part II if
|
||
|
you're already familiar with the syntax of gnuboy rc files and such;
|
||
|
the second part explains the configurable variables which you can play
|
||
|
with.
|
||
|
|
||
|
|
||
|
WHAT HAPPENS AT STARTUP
|
||
|
|
||
|
When gnuboy is started, it first processes gnuboy.rc, the primary
|
||
|
configuration file. On *nix systems, gnuboy will initially look for
|
||
|
its rc files in ~/.gnuboy, or if that fails, the present working
|
||
|
directory. On DOS and Windows, the current directory will be searched
|
||
|
first, followed by the directory containing the gnuboy executable.
|
||
|
|
||
|
After finishing with gnuboy.rc, gnuboy next looks for an rc file with
|
||
|
the same base name as the rom to be loaded. For example, if the name
|
||
|
of the rom is mygame.gb, gnuboy will process mygame.rc, if it exists.
|
||
|
This allows you to configure different preferences on a per-rom
|
||
|
basis. The locations searched for the rom-specific rc file are the
|
||
|
same as those searched for gnuboy.rc, unless gnuboy.rc has changed the
|
||
|
search path (see below for more info).
|
||
|
|
||
|
Finally, options on the command line are processed. The command line
|
||
|
will override any settings in the auto-loaded rc files. This is a good
|
||
|
place for options that you just want to use occasionally, but not on a
|
||
|
regular basis.
|
||
|
|
||
|
After all of the above is finished, gnuboy loads the rom and starts
|
||
|
emulation.
|
||
|
|
||
|
|
||
|
RC FILES
|
||
|
|
||
|
The rc files gnuboy uses are plain text files, with one command on
|
||
|
each line. Lines that start with # are treated as comments, that is to
|
||
|
say they are ignored, and blank lines are ignored as well.
|
||
|
|
||
|
There are three major types of commands.
|
||
|
|
||
|
|
||
|
RC FILES -- SETTING VARIABLES
|
||
|
|
||
|
First of all, there is the "set" command, which is used for setting
|
||
|
the values of variables. For example,
|
||
|
|
||
|
set scale 2
|
||
|
|
||
|
will set the screen scaling factor to 2. If you need to include a
|
||
|
space in the value of a variable, you can do something like this:
|
||
|
|
||
|
set savename "I like spaces in my filenames"
|
||
|
|
||
|
and then your save files will be named something like:
|
||
|
|
||
|
I like spaces in my filenames.sav
|
||
|
I like spaces in my filenames.000
|
||
|
I like spaces in my filenames.001
|
||
|
I like spaces in my filenames.002
|
||
|
etc.
|
||
|
|
||
|
Finally, some variables allow multiple numbers to be given. For
|
||
|
example, to set the video mode to 640x480, 16bpp, you might do
|
||
|
something like this:
|
||
|
|
||
|
set vmode 640 480 16
|
||
|
|
||
|
Observe that each number is separate, and there are no quotation marks
|
||
|
used.
|
||
|
|
||
|
|
||
|
RC FILES -- KEYBINDINGS
|
||
|
|
||
|
Next, we have commands that deal with key and joystick bindings. These
|
||
|
are fairly simple.
|
||
|
|
||
|
The "unbindall" command removes all existing keybindings -- be
|
||
|
careful! -- and its main use is for people who want to redefine their
|
||
|
keyboard controls entirely and throw away the defaults. Be warned that
|
||
|
if you unbind the quit key and don't bind a new key for quitting, you
|
||
|
may be unable to exit gnuboy cleanly!
|
||
|
|
||
|
The "unbind" command is similar, but it only unbinds one key at a
|
||
|
time. For example, to unbind the "space" key, use this command:
|
||
|
|
||
|
unbind space
|
||
|
|
||
|
See below for a list of key names to use with unbind.
|
||
|
|
||
|
Now we get to the main useful keybinding command: "bind". For example,
|
||
|
if you want the "tab" key to perform the Gameboy "select" button
|
||
|
function, use the following bind command:
|
||
|
|
||
|
bind tab +select
|
||
|
|
||
|
The significance of the + sign will be explained below. As with the
|
||
|
"set" command, quotation marks can be used with bind if the command
|
||
|
needs to contain spaces.
|
||
|
|
||
|
|
||
|
KEY NAMES FOR BINDINGS
|
||
|
|
||
|
When using the bind and unbind commands, you need to tell gnuboy which
|
||
|
key you wish to affect. Most of the keys that correspond to a
|
||
|
character you can type can just be referenced by that character. For
|
||
|
example, the alphabetical keys are bound by the lowercase letter they
|
||
|
represent, and the numeral keys (on the main keyboard, not the numeric
|
||
|
keypad) can be bound by their numeral. Other keys require a name. Some
|
||
|
are really obvious:
|
||
|
|
||
|
shift, ctrl, alt, up, down, right, left
|
||
|
enter, tab, space, home, end, esc, pause
|
||
|
f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12
|
||
|
|
||
|
Others are a bit less obvious but still should make sense. Some of
|
||
|
these can also be referenced by other names; read the source file
|
||
|
keytable.c for a full list:
|
||
|
|
||
|
bs Backspace
|
||
|
ins Insert
|
||
|
del Delete
|
||
|
prior Page Up
|
||
|
next Page Down
|
||
|
caps Caps Lock
|
||
|
numlock Num Lock
|
||
|
scroll Scroll Lock
|
||
|
minus - or _
|
||
|
equals = or +
|
||
|
tilde ` or ~
|
||
|
slash / or ?
|
||
|
bslash \ or |
|
||
|
semi ; or :
|
||
|
quote ' or "
|
||
|
|
||
|
The numeric keypad is referenced as follows
|
||
|
|
||
|
num0-num9 Numeral keys 0-9 (on keypad)
|
||
|
numplus Numeric keypad +
|
||
|
numminus Numeric keypad -
|
||
|
nummul Numeric keypad *
|
||
|
numdiv Numeric keypad /
|
||
|
numdot Numeric keypad .
|
||
|
numenter Numeric keypad Enter key
|
||
|
|
||
|
Joystick buttons and directions also have names for binding, and they
|
||
|
are bound just like ordinary keys. Their names are as follows:
|
||
|
|
||
|
joyup Joystick up
|
||
|
joydown Joystick down
|
||
|
joyleft Joystick left
|
||
|
joyright Joystick right
|
||
|
joy0-joy15 Joystick buttons
|
||
|
|
||
|
The way joystick buttons are numbered varies from one joystick to
|
||
|
another. Experiment to find the names that are right for the buttons
|
||
|
you want to use.
|
||
|
|
||
|
|
||
|
RC FILES -- THE SOURCE COMMAND
|
||
|
|
||
|
The "source" command simply causes gnuboy to process another rc file
|
||
|
before resuming processing of the current one. It is useful for
|
||
|
splitting up your config into multiple parts, perhaps one file
|
||
|
auto-generated by a front-end and another hand-customized. Use of this
|
||
|
command is very simple:
|
||
|
|
||
|
source myfile.rc
|
||
|
|
||
|
will perform all the commands in myfile.rc. Note that the source
|
||
|
command also provides a method for binding multiple commands to a
|
||
|
single key. For example, simply
|
||
|
|
||
|
bind f1 "source f1stuff.rc"
|
||
|
|
||
|
and then f1stuff.rc will be run whenever you press F1.
|
||
|
|
||
|
|
||
|
RC FILES -- ACTION COMMANDS
|
||
|
|
||
|
Finally, we have rc commands that perform actions. These commands are
|
||
|
probably only useful when bound to a key, and might cause unexpected
|
||
|
behavior or even crashes if used by themselves in an rc file loaded at
|
||
|
startup.
|
||
|
|
||
|
First of all, the "quit" command should be obvious. It simply exits
|
||
|
the emulator. If the rom that's loaded uses battery backed save ram or
|
||
|
realtime clock, these files will automatically be saved at exit.
|
||
|
|
||
|
The "reset" command should also be fairly obvious. It acts as a reset
|
||
|
button, restarting execution of the loaded rom at the beginning, as if
|
||
|
you turned the Gameboy power off and back on.
|
||
|
|
||
|
Slightly more interesting are the "savestate" and "loadstate"
|
||
|
commands. These are used for saving and resuming "saved state" files,
|
||
|
which allow you to save the exact status of the emulation environment
|
||
|
and restore it later, effectively letting you "save game" at any point
|
||
|
in any game. If a number is specified after either of those commands,
|
||
|
the indicated save slot number is used. Otherwise, the slot set in the
|
||
|
"saveslot" variable will be used. See the information on variables
|
||
|
below for more info.
|
||
|
|
||
|
Most importantly, we have the action commands that control the
|
||
|
emulated Gameboy input pad. They are described below:
|
||
|
|
||
|
|
||
|
COMMANDS THAT BEGIN WITH A PLUS SIGN
|
||
|
|
||
|
Normally, gnuboy only performs the command bound to a key when the key
|
||
|
is pressed; nothing happens when it is released. But for some things,
|
||
|
particularly the Gameboy pad buttons, it's important for something to
|
||
|
happen when the bound key is released. This is the purpose of commands
|
||
|
that begin with a + sign. When a key is released, gnuboy checks to see
|
||
|
if the bound command begins with +, and if so, it changes the + to -
|
||
|
and performs the resulting command. This causes the Gameboy pad
|
||
|
buttons to go back to their normal state when the keys bound to them
|
||
|
are released.
|
||
|
|
||
|
The Gameboy pad commands, which should be self-explanatory, are as
|
||
|
follows:
|
||
|
|
||
|
+a, +b, +start, +select, +up, +down, +left, +right
|
||
|
|
||
|
If you're at all familiar with Quake's config system, this should all
|
||
|
be clear.
|
||
|
|
||
|
|
||
|
THE GNUBOY COMMAND LINE
|
||
|
|
||
|
Additional rc files to process, variable settings, and keybindings can
|
||
|
be specified on the command line when gnuboy is run.
|
||
|
|
||
|
Processing an extra config file is simple:
|
||
|
|
||
|
gnuboy --source myfile.rc game.gb
|
||
|
|
||
|
Specifying an extra rc file on the command line like this is
|
||
|
especially useful for frontends, which may want to put all the options
|
||
|
they set in one rc file so they don't have to pass a super-long
|
||
|
command line to gnuboy.
|
||
|
|
||
|
Binding keys is also pretty simple. Just use something like:
|
||
|
|
||
|
gnuboy --bind tab +select game.gb
|
||
|
|
||
|
Setting variables is where things get a bit more complicated. For
|
||
|
on/off (boolean) settings, you can just do something like
|
||
|
|
||
|
gnuboy --no-sound game.gb
|
||
|
|
||
|
to turn a variable (sound) off, i.e. set it to 0. Likewise, boolean
|
||
|
variables can be turned on via something like
|
||
|
|
||
|
gnuboy --rgb332 game.gb
|
||
|
|
||
|
which turns the "rgb332" variable on (see below for information on
|
||
|
what it does).
|
||
|
|
||
|
For other variables where you actually want to set a number or a
|
||
|
string, use this form:
|
||
|
|
||
|
gnuboy --savename=mygame2 game.gb
|
||
|
|
||
|
Finally, for variables with multiple numbers to be set, you can
|
||
|
separate them by commas as follows:
|
||
|
|
||
|
gnuboy --vmode=512,384,32
|
||
|
|
||
|
to avoid having to quote the spaces.
|
||
|
|
||
|
|
||
|
[ P A R T I I ]
|
||
|
GUIDE TO CONFIGURABLE VARIABLES
|
||
|
|
||
|
What follows is a detailed explanation of most of the configuration
|
||
|
variables available for your tweaking. They are organized by what part
|
||
|
of gnuboy's behavior they affect -- graphics, sound, emulation, and so
|
||
|
on.
|
||
|
|
||
|
Some variables may or may not be available depending on how gnuboy was
|
||
|
built. For example, if you built gnuboy on a system without sound
|
||
|
support, some variables related to sound may not exist for you, and
|
||
|
attempts to set them will be silently ignored. In most cases, it's
|
||
|
noted in the documentation when variables might not be available.
|
||
|
|
||
|
Also, there are a few highly system-specific variables, such as names
|
||
|
of devices to use for video and sound on *nix systems. These are
|
||
|
listed separately at the end, and it should go without saying that
|
||
|
they will not be available on all builds of gnuboy.
|
||
|
|
||
|
|
||
|
VIDEO AND GRAPHICS SETTINGS
|
||
|
|
||
|
Since this is everyone's favorite thing to customize, video seems a
|
||
|
good place to start.
|
||
|
|
||
|
|
||
|
SCREEN SCALING
|
||
|
|
||
|
There are a number of variables that control how gnuboy scales the
|
||
|
display. The most basic is the "scale" option, which is just the
|
||
|
factor to scale by. For example
|
||
|
|
||
|
set scale 2
|
||
|
|
||
|
will double the size of the display. Set the scale factor to 1 for no
|
||
|
scaling.
|
||
|
|
||
|
There are two ways gnuboy can go about doing scaling. The preferable
|
||
|
way is to use your computer's graphics hardware to do all the work.
|
||
|
This cuts down on the amount of CPU time consumed and provides
|
||
|
filtering to smooth out the blocky pixels, but it's not available on
|
||
|
all systems. The other way is for gnuboy to scale the screen itself.
|
||
|
|
||
|
Normally gnuboy will choose hardware scaling automatically if it's
|
||
|
available, but if you want to force it on or off, you can set the
|
||
|
option "yuv" (for hardware YUV-colorspace scaling) to 1 or 0. Yes,
|
||
|
this option is poorly named, and is likely to change in future
|
||
|
versions of gnuboy.
|
||
|
|
||
|
On one display platform, Linux fbcon, it's possible to disable the
|
||
|
interpolation filter in the hardware scaling. To do this, set the
|
||
|
variable "yuvinterp" to 0. Some users who like a crisper display may
|
||
|
prefer this setting, especially on video cards that make the picture
|
||
|
look "muddy" when they scale it. Unfortunately SDL does not seem to
|
||
|
provide such an option, so interpolation is always enabled on the SDL
|
||
|
based ports.
|
||
|
|
||
|
When hardware scaling is disabled or not available, gnuboy will do its
|
||
|
own scaling. However, the scale factor is limited to 1, 2, 3, or 4.
|
||
|
Also, when performing its own scaling, gnuboy defaults to leaving some
|
||
|
scanlines blank. This saves a lot of CPU time and allows gnuboy to run
|
||
|
full speed on slower systems. You can configure what portion gets
|
||
|
filled in with the "density" variable. For example.
|
||
|
|
||
|
set scale 4
|
||
|
set density 4
|
||
|
|
||
|
will give you 4x scaling with no blank scanlines. Keep in mind that a
|
||
|
fairly fast computer (at least 400 MHz or so on x86, or something
|
||
|
comparable on other types of CPUs) is required to run fullspeed with
|
||
|
this setting. In general, "density" is the number of lines that get
|
||
|
filled in, so set it the same as "scale" if you want everything filled
|
||
|
in, or lower if you need more speed.
|
||
|
|
||
|
|
||
|
VIDEO MODE
|
||
|
|
||
|
The variable for setting the desired video mode is called "vmode", and
|
||
|
it's made up of three parts: width, height, and bits-per-pixel. For
|
||
|
example, to set 640x480x16bpp mode, use
|
||
|
|
||
|
set vmode 640 480 16
|
||
|
|
||
|
By default gnuboy will enable hardware scaling and try to scale to the
|
||
|
entire screen size if a video mode at least 320x288 is specified. If
|
||
|
you don't want this behavior, set the "yuv" option (see above) to 0.
|
||
|
Also, if you're setting the "scale" variable to do scaling, you
|
||
|
probably don't need to use the "vmode" option, since gnuboy will
|
||
|
try to automatically pick a mode that fits the scale. It's there in
|
||
|
case you need it, though.
|
||
|
|
||
|
Note that the DOS port is not yet capable of auto-choosing a video
|
||
|
mode, so if you want anything but the default 320x200x8bpp you'll have
|
||
|
to set "vmode" yourself. Also, not all ports are capable of all modes.
|
||
|
Experiment to find what works for you. Video mode selection is a
|
||
|
little bit messy and confusing at this time, and we hope to improve it
|
||
|
a good deal in the future.
|
||
|
|
||
|
|
||
|
FULLSCREEN VIDEO
|
||
|
|
||
|
Some versions of gnuboy provide both fullscreen and windowed
|
||
|
operation. The variable "fullscreen" can be set to 1 or 0 to enable or
|
||
|
disable fullscreen mode. Also, the variable "altenter" can be set to
|
||
|
enable or disable switching between fullscreen and windowed mode at
|
||
|
runtime with the Alt+Enter key combination. Unfortunately, this does
|
||
|
not yet work on Windows; we hope to fix this limitation in the
|
||
|
future.
|
||
|
|
||
|
|
||
|
DMG PALETTE SELECTION
|
||
|
|
||
|
gnuboy allows you to set the palette used for grayscale when running
|
||
|
DMG (original mono Gameboy) roms. There are four variables for this
|
||
|
purpose, allowing the background, window, and both sprite palettes to
|
||
|
be colored differently. Each one is made up of four numbers, the color
|
||
|
to use for each shade of gray, from lightest to darkest. Colors are
|
||
|
represented as 24bit numbers, with red in the low (rightmost) places
|
||
|
and blue in the upper (leftmost) places. Although you could specify
|
||
|
colors in decimal (base 10) if you really wanted, they'd be very
|
||
|
difficult to read, so it's preferable to use hex (base 16).
|
||
|
|
||
|
For example, to set the background to shades of white, the window to
|
||
|
shades of red, and the sprite palettes to shades of green and blue,
|
||
|
you could use:
|
||
|
|
||
|
set dmg_bgp 0xffffff 0xaaaaaa 0x555555 0x000000
|
||
|
set dmg_wndp 0x0000ff 0x0000aa 0x000055 0x000000
|
||
|
set dmg_obp0 0x00ff00 0x00aa00 0x005500 0x000000
|
||
|
set dmg_obp1 0xff0000 0xaa0000 0x550000 0x000000
|
||
|
|
||
|
This will of course look rather ugly, but it does the job illustrating
|
||
|
how you set various colors.
|
||
|
|
||
|
For more extensive examples, see the sample file palette.rc included
|
||
|
with gnuboy, which provides a number of sample palettes to try.
|
||
|
|
||
|
|
||
|
RGB MODE WITH ONLY 256 COLORS
|
||
|
|
||
|
Normally when run in 256-color (8bpp) modes, gnuboy will dynamically
|
||
|
allocate colors in the palette as they're needed. However, on the
|
||
|
Gameboy Color, it's possible to have well over 1000 colors on the
|
||
|
screen at a time, and in games that make use of these "hicolor"
|
||
|
tricks, gnuboy will run out of colors and things will look bad.
|
||
|
|
||
|
If you prefer, you can set the "rgb332" variable:
|
||
|
|
||
|
set rgb332 1
|
||
|
|
||
|
This tells gnuboy that instead of using 256-color mode as a
|
||
|
palette-based mode, you want it to setup a static palette and pretend
|
||
|
8bpp is just a really low quality "truecolor" mode, with only 3 bits
|
||
|
of precision in red and green, and only 2 bits of precision in blue.
|
||
|
In general this will make most games look worse, since colors have to
|
||
|
be approximated fairly poorly and since smooth color gradients are not
|
||
|
possible, but it will make "hicolor" Gameboy Color games look a good
|
||
|
deal better. Also, rgb332 mode should run slightly faster since it
|
||
|
avoids the overhead in dynamic palette allocation.
|
||
|
|
||
|
If you have to run at 8bpp mode, try it with and without this option
|
||
|
and see which way you like better. Of course, the better solution, if
|
||
|
at all possible, is to use 16bpp or higher mode, but that may run too
|
||
|
slowly on older computers.
|
||
|
|
||
|
|
||
|
COLOR FILTERING
|
||
|
|
||
|
Optionally, gnuboy can filter screen colors to make them look more
|
||
|
washed out or faded like on a real GBC. To enable this feature,
|
||
|
|
||
|
set colorfilter 1
|
||
|
|
||
|
By default, gnuboy will not apply the filter when running DMG (mono)
|
||
|
games, since many of the sample palettes are already designed to
|
||
|
immitate a Gameboy LCD. If you would like to have the filter also take
|
||
|
effect when running in DMG mode,
|
||
|
|
||
|
set filterdmg 1
|
||
|
|
||
|
You can also customize the filter parameters to get different color
|
||
|
effects from the default ones. See the sample file filters.rc for
|
||
|
examples.
|
||
|
|
||
|
|
||
|
SPRITE SORTING
|
||
|
|
||
|
Normally sprites are sorted and prioritized according to their x
|
||
|
coordinate when in DMG mode. However, this takes a little bit of extra
|
||
|
cpu time, and it's not needed by most DMG games, so it can be disabled
|
||
|
as follows:
|
||
|
|
||
|
set sprsort 0
|
||
|
|
||
|
Note that although sprite sorting was disabled in previous releases
|
||
|
because it was not working properly, it now works great, so unless you
|
||
|
really need to maximize performance, you should probably leave it
|
||
|
enabled.
|
||
|
|
||
|
|
||
|
SOUND OPTIONS
|
||
|
|
||
|
Fortunately sound is a lot simpler than video. At this time, there are
|
||
|
no fancy interpolation or filtering options, only your basic audio
|
||
|
parameters.
|
||
|
|
||
|
To enable or disable sound, set the "sound" variable to 1 or 0. By
|
||
|
default, it's enabled.
|
||
|
|
||
|
To enable or disable stereo sound, set the "stereo" variable to 1 or
|
||
|
0. It defaults to 1 on most ports, but since stereo sometimes fails
|
||
|
to work properly on DOS, it's disabled by default on the DOS port.
|
||
|
Disabling stereo in no way improves performance, so it should only be
|
||
|
done if stereo mode causes a problem on your computer.
|
||
|
|
||
|
To set the audio sampling rate, use the "samplerate" variable. The
|
||
|
default is 44100 Hz. Setting this lower can improve performance. For
|
||
|
example, if you have a really slow computer, you might use:
|
||
|
|
||
|
set samplerate 8000
|
||
|
|
||
|
Keep in mind that this will sound really really bad.
|
||
|
|
||
|
|
||
|
FILESYSTEM OPTIONS
|
||
|
|
||
|
There are a good deal of options that affect where and how files are
|
||
|
saved and loaded by gnuboy. First, there's "rcpath", which specifies
|
||
|
where gnuboy searches for rc files. The default depends on your
|
||
|
operating system; see the beginning of this file for details.
|
||
|
|
||
|
The search path for rc files can contain multiple directories.
|
||
|
Normally, the list is separated by colons (:), but on DOS and Windows
|
||
|
the colon is used for drive letters, so semicolon (;) must be used
|
||
|
instead. Here are some examples, first for *nix:
|
||
|
|
||
|
set rcpath "/home/laguna/.gnuboy:/usr/local/etc/gnuboy"
|
||
|
set rcpath "."
|
||
|
|
||
|
and for DOS/Windows:
|
||
|
|
||
|
set rcpath "c:/gnuboy;."
|
||
|
set rcpath "c:/Program Files/Gnuboy"
|
||
|
|
||
|
If you really insist on using backslashes on DOS or Windows, you'll
|
||
|
have to double them up, since the backslash normally means "treat the
|
||
|
next character literally." For example,
|
||
|
|
||
|
set rcpath "c:\\gnuboy"
|
||
|
|
||
|
This is untested, and your milage may vary. I recommend just using
|
||
|
forward slashes and keeping things simple.
|
||
|
|
||
|
|
||
|
SAVE RELATED OPTIONS
|
||
|
|
||
|
These are all fairly simple, so I'll just list them quickly, then give
|
||
|
a couple examples.
|
||
|
|
||
|
savedir - directory to store saved games (SRAM and savestates) in
|
||
|
savename - base filename to use for saves
|
||
|
saveslot - which savestate slot to use
|
||
|
forcebatt - always save SRAM even on carts that don't have battery
|
||
|
nobatt - never save SRAM
|
||
|
syncrtc - resync the realtime clock for elapsed time when loading
|
||
|
|
||
|
The "savename" variable is particularly useful if you wish to have
|
||
|
more than one save associated with a particular rom. Just do something
|
||
|
like:
|
||
|
|
||
|
gnuboy --savename=mygame2 mygame.gb
|
||
|
|
||
|
and the save files will be called mygame2.sav, mygame2.000, etc rather
|
||
|
than just mygame.sav, etc.
|
||
|
|
||
|
The "saveslot" variable is normally just changed by keybindings, so
|
||
|
you can pick a savestate slot while you're playing a game. However, if
|
||
|
you for example prefer that the default slot at startup be 1 rather
|
||
|
than 0, you can use:
|
||
|
|
||
|
set saveslot 1
|
||
|
|
||
|
The "forcebatt" and "nobatt" options are fairly self-explanatory and
|
||
|
not very useful, except perhaps for debugging or use with corrupted
|
||
|
roms.
|
||
|
|
||
|
The "syncrtc" option needs a bit of explanation. Some roms, notably
|
||
|
Pokemon ones and Harvest Moon, use a realtime clock to keep track of
|
||
|
the time of day even when they're not running. Since gnuboy is just an
|
||
|
emulator, it can't work like a real cartridge and make things like
|
||
|
this keep happening while the emulator is not running. However, it can
|
||
|
resync the Gameboy realtime clock based on your computer's clock when
|
||
|
it starts. This is what the "syncrtc" option does. By default it's
|
||
|
enabled. If you disable it, then no time will seem to have elapsed
|
||
|
between when you exit the emulator once and when you start it again
|
||
|
the next time.
|
||
|
|
||
|
|
||
|
JOYSTICK OPTIONS
|
||
|
|
||
|
So far there is just one joystick option, "joy", used to enable or
|
||
|
disable joystick support.
|
||
|
|
||
|
|
||
|
DEBUGGING OPTIONS
|
||
|
|
||
|
These probably won't be useful to most people, but if you're trying to
|
||
|
debug a homebrew game you're writing or fix a bug in gnuboy they might
|
||
|
be of help:
|
||
|
|
||
|
The "trace" variable, if enabled, dumps a full execution trace to
|
||
|
stdout. Be prepared for at least 20 megs of logs to look through at
|
||
|
minimum, and more like 150 megs if you want enough to find anything
|
||
|
useful. Redirecting stdout to a file is a must!
|
||
|
|
||
|
The "sprdebug" variable is used to see how many sprites are visible
|
||
|
per line. Try it and see!
|
||
|
|
||
|
|
||
|
PLATFORM-SPECIFIC OPTIONS
|
||
|
|
||
|
On certain *nix systems, you may need to specify device nodes to use
|
||
|
if the defaults don't work:
|
||
|
|
||
|
oss_device - Open Sound System "DSP" device
|
||
|
fb_device - Video framebuffer device
|
||
|
joy_device - Joystick device
|
||
|
|
||
|
The Linux fbcon version of gnuboy does not support the "vmode" option
|
||
|
yet, but it can set the mode for you by running the "fbset" program,
|
||
|
if you have it. Just set the "fb_mode" variable to the exact name of
|
||
|
the mode you want in /etc/fb.modes. For example,
|
||
|
|
||
|
set fb_mode 640x480-90
|
||
|
|
||
|
You can also override the default color depth with the "fb_depth"
|
||
|
variable.
|
||
|
|
||
|
The DOS port of gnuboy has support for real console system gamepads
|
||
|
via the "Directpad Pro" (DPP) connector. To enable this feature, set
|
||
|
"dpp" to 1, set "dpp_port" to the IO port number the pad is connected
|
||
|
to (e.g. 0x378 -- be sure to prefix it with 0x for hex!!), and set
|
||
|
"dpp_pad" to the number of the pad you want to use. This code has not
|
||
|
been heavily tested, so it may or may not work for you. Be sure to get
|
||
|
the port number right or bad things may happen!
|
||
|
|
||
|
|
||
|
CONCLUSION
|
||
|
|
||
|
Well, that's about it for configuration. Hopefully this document
|
||
|
clears up a lot of the confusion about what you can and can't
|
||
|
configure in gnuboy yet, and how you go about doing it. Again, check
|
||
|
the sample.rc, palette.rc, and classic.rc files for lots of examples
|
||
|
of how rc files work.
|
||
|
|
||
|
As always, more info will come as time passes on. Keep on the lookout
|
||
|
for new releases and more features. Thank you for flying gnuboy and
|
||
|
have a nice day.
|
||
|
|
||
|
|
||
|
|
||
|
- Laguna
|