Documentation for the SDL GUI - keybindings, savestates, backups, rewinds, IPSs, cheats, autofire
git-svn-id: https://svn.code.sf.net/p/vbam/code/trunk@504 a31d4220-a93d-0410-bf67-fe4944624d44
This commit is contained in:
parent
526e33d11e
commit
1d71f217fb
|
@ -0,0 +1,165 @@
|
|||
SDL frontend keymap
|
||||
===================
|
||||
These are the keybindings that are hardwired into the source code
|
||||
(those that are not defined in VisualBoyAdvance.cfg):
|
||||
|
||||
CTRL-R: reset
|
||||
CTRL-B: rewind
|
||||
CTRL-V: unrewind
|
||||
CTRL-H: restore to last restored rewind (repeat)
|
||||
CTRL-J: restore to last *stored* rewind (go to top of the stack)
|
||||
CTRL-P: pause
|
||||
CTRL-F: toggle fullscreen
|
||||
CTRL-G: rotate between filters
|
||||
CTRL-S: toggle sound
|
||||
CTRL-E: toggle cheats
|
||||
ESC: quit
|
||||
F11: debugger
|
||||
F1..F8: (switchable)
|
||||
exact: read state
|
||||
SHIFT: write state
|
||||
in mode 3:
|
||||
F1..F4: nothing
|
||||
F5: decrease saveslot number (minimum is 1)
|
||||
F6: increase saveslot number (maximum is 8)
|
||||
F7: save state to current saveslot
|
||||
F8: load state from current saveslot
|
||||
F9: load backup from last load operation (the state that was overwritten (in the application) by the then loaded state)
|
||||
F10: load backup from last save operation (the state that was overwritten (on disk) by the then current state)
|
||||
ALT-1 autofire A toggle (now also configurable on a per-gamepad basis with Joy#_AutoA)
|
||||
ALT-2 dtto B (now also configurable on a per-gamepad basis with Joy#_AutoB)
|
||||
ALT-3 dtto R
|
||||
ALT-4 dtto L
|
||||
|
||||
CTRL- 1,2,3,4,5,6,7,8: toggle layers
|
||||
CTRL-N: pause on next frame
|
||||
|
||||
KEYPAD: 4682 (default, cfg: Motion_{Left|Right|Up|Down}): motion sensor
|
||||
|
||||
|
||||
|
||||
CHEAT CODES
|
||||
===========
|
||||
Use the --cheat commandline option. Each --cheat XXXX adds one cheat code (in order
|
||||
of appearance).
|
||||
. Up to 100 cheat codes are supported.
|
||||
. Cheat lists are saved in savestates. Cheats in loaded state should override commandline cheats.
|
||||
. There are no provisions for toggling individual cheats.
|
||||
. CTRL-E toggles the global 'cheats enabled' option.
|
||||
. Note that autofire may not work with cheats enabled (at least for some games).
|
||||
|
||||
Two formats are available:
|
||||
PAR: --cheat '########:########'
|
||||
CBA: --cheat '######## ####'
|
||||
|
||||
All # are hexadecimal digits. Only uppercase A-F are accepted.
|
||||
|
||||
PAR (action replay, also gameshark): only non-encrypted codes work (if it has a master code, it won't work).
|
||||
CBA (codebreaker): encrypted codes should work
|
||||
|
||||
|
||||
|
||||
IPS PATCHES
|
||||
===========
|
||||
Use the -i or --ips commandline options. They take one argument - the name of file to be
|
||||
loaded as an IPS patch.
|
||||
Maximum of 100 IPS patches is supported.
|
||||
If you don't specify any IPS patch on the commandline, the VBA-M will look for one
|
||||
in the file ROMBASENAME.ips, where ROMBASENAME is the name of the rom file without extension
|
||||
(so if your rom file is named LolRom.gba, VBA-M will look for LolRom.ips).
|
||||
Any files that don't exist or are not IPS patches will be skipped (with warning).
|
||||
Patches will be applied in the order you gave them on the command line.
|
||||
Patches are *not* remembered or saved in savestates. You should specify them each
|
||||
time you run VBA-M, or you will end up running an unpatched ROM with data from
|
||||
a patched ROM.
|
||||
|
||||
|
||||
|
||||
SAVESTATES
|
||||
==========
|
||||
There is a new configuration option saveKeysSwitch. It's value has the following meaning:
|
||||
saveKeysSwitch = 0 ... 'classic' SDL interpretation of F1..F10:
|
||||
. F1, F2, ... F8: load savestate 1, 2, ... 8
|
||||
. SHIFT+F1, SHIFT+F2, ... SHIFT+F8: save savestate 1, 2, ... 8
|
||||
saveKeysSwitch = 1 ... same with 'toggled' SHIFT:
|
||||
. F1, F2, ... F8: SAVE savestate 1, 2, ... 8
|
||||
. SHIFT+F1, SHIFT+F2, ... SHIFT+F8: LOAD savestate 1, 2, ... 8
|
||||
saveKeysSwitch = 2 ... slot-selection scheme:
|
||||
. F1 .. F4: nothing
|
||||
. F5: decrease current slot number
|
||||
. F6: increase current slot number
|
||||
. F7: save to currently selected slot
|
||||
. F8: load from currently selected slot
|
||||
This last scheme has the added benefit that it works without problems even if your
|
||||
SHIFT key doesn't.
|
||||
The selected slot starts at number 1, cannot go below 1 and cannot go over 8.
|
||||
|
||||
|
||||
|
||||
SAVESTATE BACKUPS
|
||||
=================
|
||||
You will sometimes load or save a state when you didn't really want to. You might
|
||||
have pressed the wrong button, saved to a wrong slot, saved a state that leads
|
||||
to a certain death, etc ...
|
||||
This feature provides a limited 'undo' functionality.
|
||||
Every time you load a state from disk, the program first saves your current state
|
||||
to slot 9. Pressing F9 then loads this 'undo last state load' state.
|
||||
In the same vein, when you save a state, the previous state from that slot is
|
||||
first moved to slot 10. Pressing F10 then does a 'undo last state save'
|
||||
operation.
|
||||
Note that you can't write states to slots 9 and 10 directly.
|
||||
This works the same way (F9 undoes last load, F10 undoes last save) regardless
|
||||
of the value of saveKeysSwitch.
|
||||
|
||||
|
||||
|
||||
REWINDS
|
||||
=======
|
||||
VBA-M has an 'autosave' feature. Try setting rewindTimer in your VisualBoyAdvance.cfg.
|
||||
Keep in mind that this (like all other numbers in the cfg file) is a hexadecimal number.
|
||||
So rewindTimer=3c means saving every 60 seconds, or one minute.
|
||||
The maximum value is 258, which is 10 minutes (258 in hex is 2*256 + 5*16 + 8 =
|
||||
= 512 + 50+30 + 8 = 600 seconds).
|
||||
Last 8 autosaves are retained in memory.
|
||||
Autosaves are not considered savestates for 'backup' puproses (see previous section).
|
||||
They are never saved to disk and so will be lost when the program exits.
|
||||
Also, when you load a real (on-disk) savestate, *nothing* happens to rewinds. Rewinds
|
||||
allow you to return to points in *your* chronological past. There is currently no way
|
||||
of tracking which states/rewinds are "after" which.
|
||||
Controls:
|
||||
CTRL-J: go to the rewind that was stored last (the newest one) (and select it)
|
||||
CTRL-H: 'home' - repeat last 'go to rewind' operation (go to the currently selected rewind)
|
||||
CTRL-B: select previous rewind and go to it
|
||||
CTRL-B: select next rewind and go to it
|
||||
|
||||
Normally, the currently selected rewind stays selected until it becomes invalid (which
|
||||
happens when it is the oldes rewind left and a new autosave wants its space).
|
||||
However, when the newest rewind is selected, the selection will start advancing
|
||||
with the newest rewind.
|
||||
|
||||
|
||||
AUTOFIRE
|
||||
========
|
||||
There are two autofire modes.
|
||||
The first one toggles autofire on a button for all gamepads:
|
||||
for example, when you press ALT-1 on your keyboard, then all A buttons on
|
||||
all gamepads will be 'autofiring' (alternating quickly between pressed and not pressed)
|
||||
until you press ALT-1 again. This might not be what you want.
|
||||
Or you can get a gamepad with more buttons and set some to be 'autofire A'.
|
||||
In the VisualBoyAdvance.cfg file, set Joy#_AutoX=$$$$, where # is the number
|
||||
of the emulated gamepad, X is eighter A or B (autofire on A or autofire on B)
|
||||
and $$$$ is the code that should trigger this.
|
||||
For example, I have
|
||||
Joy0_AutoA=1082
|
||||
which means:
|
||||
. Joy0 = the first emulated pad
|
||||
. AutoA = doing this will start toggling the A button on Joy0 quickly
|
||||
. 1082 = 'doing this' means:
|
||||
. 1000 = the first joystick/gamepad attached to my computer
|
||||
. + 0080 = pressing button
|
||||
. + 0002 = button with code 2 (on my gamepad, this is the button which has the number 3 engraved into it
|
||||
and is in the position where SNES gamepads have the A button and PS controllers have the
|
||||
circle button)
|
||||
So when I press and hold this button on my gamepad, VBA-M rewards me with autofire on A *on that pad only*.
|
||||
|
||||
|
Loading…
Reference in New Issue