From 06871615ecb747495e710085aaa3b6ccb3f6124a Mon Sep 17 00:00:00 2001 From: xkiv Date: Thu, 8 May 2008 23:11:35 +0000 Subject: [PATCH] Documentation for the SDL GUI - keybindings, savestates, backups, rewinds, IPSs, cheats, autofire --- doc/ReadMe.SDL.txt | 165 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 165 insertions(+) create mode 100644 doc/ReadMe.SDL.txt diff --git a/doc/ReadMe.SDL.txt b/doc/ReadMe.SDL.txt new file mode 100644 index 00000000..6ab72d0e --- /dev/null +++ b/doc/ReadMe.SDL.txt @@ -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*. + +