19
The SDL port is meant to be an easily portable version of VICE
20
that is fully usable with just a joystick (with at least 2 buttons)
21
or a keyboard. OS/arch-specific features (such as RS-232 support)
22
may be omitted for portability. Everything is configurable via the UI.
27
Some new features that are missing from (some of) the native versions:
28
- Free scaling using OpenGL (from the GTK port) with optional fixed aspect ratio
29
- Virtual keyboard (adapted from the GP2X port)
30
- Hotkey mapping to any menu item
31
- (Host) joystick event mapping to (machine) joystick, keyboard or menu item
32
- No mouse or keyboard required, but both are supported
34
Some missing features that are available in (some of) the native versions:
40
The SDL port has been tested to work on:
43
- AROS / amd64/x86_64, ppc, x86
48
- FreeBSD / alpha, amd64/x86_64, ia64, ppc, sparc64, x86
49
- GP2X / arm (joystick unusable)
51
- Interix 3.5 (aka SFU) / x86
52
- Interix 5.2 (aka win2003 SUA) / x86
53
- Interix 6.0 (aka vista SUA) / x86
54
- Linux / alpha, amd64/x86_64, arm, armeb, avr32, hppa, ia64, m68k, mips,
55
mipsel, mips64, mips64el, ppc, ppc64, s390, s390x, sh3, sh4, sparc,
57
- Mac OS X / ppc, amd64/x86_64, x86
59
- NetBSD / alpha, amd64/x86_64, arm, hppa, m68010 (libaa only), m68k, mipseb,
60
mipsel, ns32k, ppc, sh3eb, sh3le, sparc, sparc64, vax, x86
61
- OpenBSD / alpha, amd64/x86_64, arm, hppa, ppc, sh4, sparc64, x86
63
- QNX 6.x / armle, mipsle, ppcbe, shle, x86
65
- Solaris / amd64/x86_64, sparc, sparc64, x86
70
- Ultrix / mipsel, vax
84
The menu is used with the following commands:
85
(default keys/joymap shown)
87
--------------------------------------------------
88
Command | Key | Joy | Function
89
--------------------------------------------------
90
Activate | F12 | btn2 | Activate the menu
91
Up | up | u | Move cursor up
92
Down | down | d | Move cursor down
93
Left | left | l | Cancel/Page up
94
Right | right | r | Enter menu/Page down
95
Select | enter | fire | Select the item
96
Cancel | <- | btn2 | Return to previous menu
97
Exit | ESC | N/A | Exit the menu
98
Map | m | btn3 | Map a hotkey (see 2.2)
99
--------------------------------------------------
101
The keys and joystick events can be configured via the menu.
103
Left/Right work as Page up/down on the file selector, otherwise
104
left does Cancel and right enters the selected submenu.
106
The joystick command Activate behaves as Cancel while in the menu.
111
By default, the SDL port doesn't have any hotkeys defined.
112
Mapping a hotkey is simple:
114
1. Navigate the menu to an item
115
2. Issue the Map command (default: 'm', button 3)
116
3. Press the desired key(-combo) or joystick direction/button
118
The keycombo can use multiple modifiers, for example Ctrl+q and
119
Ctrl+Shift+q can be mapped to different menu entries. Note that
120
the "left" and "right" versions of a modifier are regarded as the
121
same key in the context of hotkeys.
123
Hotkeys can be unmapped by mapping the hotkey to an empty menu item.
125
Hotkeys do not work while using the menu or virtual keyboard.
130
The menu commands are also used in the virtual keyboard:
131
(default keys/joymap shown)
133
--------------------------------------------------
134
Command | Key | Joy | Function
135
--------------------------------------------------
136
Up | up | u | Move cursor up
137
Down | down | d | Move cursor down
138
Left | left | l | Move cursor left
139
Right | right | r | Move cursor right
140
Select | enter | fire | Press/release the key
141
Cancel | <- | btn2 | Press/release with shift
142
Exit | ESC | N/A | Close the virtual kbd
143
Map | m | btn3 | Map a key/button
144
--------------------------------------------------
146
Note that pressing a key and releasing the key generate separate events.
147
This means that pressing Select on a key, moving to an another key and
148
releasing Select releases the latter key; with this, multiple keys
149
can be pressed down at once.
151
The joystick command Activate behaves as Cancel while using the virtual
154
The virtual keyboard can be moved by pressing (and holding) Select on an
155
empty space and moving the cursor.
157
The virtual keyboard can be closed by pressing the 'X' in the top left corner,
158
with the command Exit or with the command Cancel when the cursor is at an
161
Keys and joystick events can be mapped to the keyboard via the virtual keyboard.
164
2.4 Text input dialog virtual keyboard
166
The text input dialog also has a virtual keyboard, which can be activated
167
with the key F10 or joystick commands Cancel or Map.
169
When the virtual keyboard is active, the following commands are active:
170
(default keys/joymap shown)
172
--------------------------------------------------
173
Command | Key | Joy | Function
174
--------------------------------------------------
175
Up | up | u | Move cursor up
176
Down | down | d | Move cursor down
177
Left | left | l | Move cursor left
178
Right | right | r | Move cursor right
179
Select | enter | fire | Press the key
180
Cancel | <- | btn2 | Press with shift
181
Exit | ESC | N/A | Close the virtual kbd
182
Map | m | btn3 | Close the virtual kbd
183
--------------------------------------------------
185
The joystick command Activate behaves as Cancel while using the virtual
188
Simultaneous keypresses are not possible. The virtual keyboard cannot be moved.
190
The virtual keyboard can be closed by pressing the 'X' in the top left corner,
191
with the commands Exit and Map or with the command Cancel when the cursor is at an
194
To exit/cancel the dialog itself, press "esc" on the virtual keyboard.
196
Note that normal text input via keyboard is not possible while the virtual
202
Several settings like volume and colour values are configured using the slider
203
control. For example, the volume control is represented as follows:
208
********************....................
211
The slider value can be decremented/incremented by the Left/Right commands.
213
The step value indicates how many units the slider will change by for each Left/
216
Step values can be changed by the Up/Down command and will decrement/increment in
217
units of 10. The maximum step value will always be 1 order of magnitude less than
218
the maximum setting value e.g. volume ranges between 0 and 100, so valid step
219
values are 1 and 10. For a larger maximum value e.g. 1000, valid step values
220
would be 1, 10 and 100.
222
Note that normal text input via keyboard is not possible while the slider is
223
displayed. The Map command opens a text input dialog for editing the value
229
The settings are saved separately into 4 files:
230
- main settings (sdl-vicerc, sdl-vice.ini, "Load/Save settings")
232
- hotkey (sdl-hotkey-MACHINE.vkm, "Load/Save hotkeys")
233
- joymap (sdl-joymap-MACHINE.vjm, "Load/Save joystick map")
235
Remember to save the relevant settings file.
243
By default, the bit depth for the video output is determined automatically;
244
in most cases, this means the current desktop bit depth. The detected value
245
is saved to the main settings file (resource "SDLBitdepth").
247
There is no menu item for bit depth selection, as runtime switching is not
248
implemented. To use a specific bit depth, use the command line parameter
249
"-sdlbitdepth <bpp>". Supported bpp values are 0, 8, 15, 16, 24 and 32.
250
The value 0 forces autodetection.
255
There are two fullscreen modes: "Automatic" asks SDL for a fullscreen mode
256
with the resolution of the current window size. "Custom" uses the custom
257
width/height settings.
262
The resolution limit modes are meant for devices with restricted screen sizes,
263
f.ex handhelds with 320x240. For most cases, the mode should be set to "Off"
266
"Max" mode caps and "Fixed" forces the window size to the custom width/height.
271
OpenGL free scaling works only with bit depths 24 and 32. For fullscreen with
272
OpenGL, using "Custom" mode is strongly advised. The pixel aspect ratio can be
273
(optionally) fixed to a settable constant. Resolution limiting is disabled
274
when free scaling is enabled.
280
4.1 Building in *nix compile enviroments
282
./configure --enable-sdlui
286
You'll need the SDL libs and headers. For free scaling, the OpenGL is
287
also needed (libGL, opengl32.dll, ...)
290
4.2 Building in Visual Studio
292
For MSVC building instructions see src/arch/sdl/win32-msvc/Readme.txt