trunk/docs/SDL.txt
| r0 | r23548 | |
| 1 | This file describes SDL-specific usage information about MAME. It is |
| 2 | intended to cover aspects of using and configuring the program that are |
| 3 | specific to running MAME from the command line on any system which is |
| 4 | supported by SDL (including Windows). |
| 5 | |
| 6 | In addition to the keys described in config.txt, the following additional |
| 7 | keys are defined for SDL-specific versions of MAME: |
| 8 | |
| 9 | |
| 10 | |
| 11 | Debugging options |
| 12 | ----------------- |
| 13 | |
| 14 | -[no]oslog |
| 15 | |
| 16 | Outputs the error.log data to the Windows debugger. This can be used at |
| 17 | the same time as -log to output the log data to both targets as well. |
| 18 | Default is OFF (-nooslog). |
| 19 | |
| 20 | -watchdog <duration> / -wdog <duration> |
| 21 | |
| 22 | Enables an internal watchdog timer that will automatically kill the MAME |
| 23 | process if more than <duration> seconds passes without a frame update. |
| 24 | Keep in mind that some games sit for a while during load time without |
| 25 | updating the screen, so <duration> should be long enough to cover that. |
| 26 | 10-30 seconds on a modern system should be plenty in general. By default |
| 27 | there is no watchdog. |
| 28 | |
| 29 | |
| 30 | |
| 31 | Performance options |
| 32 | ------------------- |
| 33 | |
| 34 | -[no]multithreading / -[no]mt |
| 35 | |
| 36 | Enables multithreading within MAME. At the moment, this causes the |
| 37 | window and all DirectDraw/Direct3D code to execute on a second thread, |
| 38 | which can improve performance on hyperthreaded and multicore systems. |
| 39 | The default is OFF (-nomultithreading). |
| 40 | |
| 41 | -numprocessors <auto|value> / -np <auto|value> |
| 42 | |
| 43 | Specify the number of processors to use for work queues. Specifying |
| 44 | "auto" will use the value reported by the system or environment |
| 45 | variable OSDPROCESSORS. To avoid abuse, this value is internally limited |
| 46 | to 4 times the number of processors reported by the system. |
| 47 | The default is "auto". |
| 48 | |
| 49 | -sdlvideofps |
| 50 | |
| 51 | Enable output of SDL-related video performance. |
| 52 | |
| 53 | -bench [n] |
| 54 | |
| 55 | Benchmark for [n] number of emulated seconds; implies the command string: |
| 56 | -str [n] -video none -nosound -nothrottle |
| 57 | |
| 58 | |
| 59 | |
| 60 | Video options |
| 61 | ------------- |
| 62 | |
| 63 | -video <soft|opengl|none> |
| 64 | |
| 65 | Specifies which video subsystem to use for drawing. |
| 66 | |
| 67 | -numscreens <count> |
| 68 | |
| 69 | Tells MAME how many output windows to create. For most games, a single |
| 70 | output window is all you need, but some games originally used multiple |
| 71 | screens. Each screen (up to 4) has its own independent settings for |
| 72 | physical monitor, aspect ratio, resolution, and view, which can be |
| 73 | set using the options below. The default is 1. SDL currently has a |
| 74 | limit of 1 with the expectation of increasing this when SDL 2.0 is |
| 75 | released. |
| 76 | |
| 77 | -[no]window / -[no]w |
| 78 | |
| 79 | Run MAME in either a window or full screen. The default is OFF |
| 80 | (-nowindow). |
| 81 | |
| 82 | -[no]maximize / -[no]max |
| 83 | |
| 84 | Controls initial window size in windowed mode. If it is set on, the |
| 85 | window will initially be set to the maximum supported size when you |
| 86 | start MAME. If it is turned off, the window will start out at the |
| 87 | smallest supported size. This option only has an effect when the |
| 88 | -window option is used. The default is ON (-maximize). |
| 89 | |
| 90 | -[no]keepaspect / -[no]ka |
| 91 | |
| 92 | Enables aspect ratio enforcement. When this option is on, the game's |
| 93 | proper aspect ratio (generally 4:3 or 3:4) is enforced, so you get the |
| 94 | game looking like it should. When running in a window with this option |
| 95 | on, you can only resize the window to the proper aspect ratio, unless |
| 96 | you are holding down the CONTROL key. By turning the option off, the |
| 97 | aspect ratio is allowed to float. In full screen mode, this means that |
| 98 | all games will stretch to the full screen size (even vertical games). |
| 99 | In window mode, it means that you can freely resize the window without |
| 100 | any constraints. The default is ON (-keepaspect). |
| 101 | |
| 102 | -[no]unevenstretch |
| 103 | |
| 104 | Allow non-integer stretch factors allowing for great window sizing |
| 105 | flexability. The default is OFF (-nounevenstretch) |
| 106 | |
| 107 | -[no]centerh |
| 108 | |
| 109 | Center horizontally within the view area |
| 110 | |
| 111 | -[no]centerv |
| 112 | |
| 113 | Center vertically within the view area |
| 114 | |
| 115 | -[no]waitvsync |
| 116 | |
| 117 | Waits for the refresh period on your computer's monitor to finish |
| 118 | before starting to draw video to your screen. If this option is off, |
| 119 | MAME will just draw to the screen at any old time, even in the middle |
| 120 | of a refresh cycle. This can cause "tearing" artifacts, where the top |
| 121 | portion of the screen is out of sync with the bottom portion. Tearing |
| 122 | is not noticeable on all games, and some people hate it more than |
| 123 | others. However, if you turn this option on, you will waste more of |
| 124 | your CPU cycles waiting for the proper time to draw, so you will see a |
| 125 | performance hit. You should only need to turn this on in windowed mode. |
| 126 | In full screen mode, it is only needed if -triplebuffer does not |
| 127 | remove the tearing, in which case you should use -notriplebuffer |
| 128 | -waitvsync. Note that this option does not work with -video gdi mode. |
| 129 | The default is OFF (-nowaitvsync). |
| 130 | |
| 131 | -[no]syncrefresh |
| 132 | |
| 133 | Enables speed throttling only to the refresh of your monitor. This |
| 134 | means that the game's actual refresh rate is ignored; however, the |
| 135 | sound code still attempts to keep up with the game's original refresh |
| 136 | rate, so you may encounter sound problems. This option is intended |
| 137 | mainly for those who have tweaked their video card's settings to |
| 138 | provide carefully matched refresh rate options. Note that this option |
| 139 | does not work with -video gdi mode.The default is OFF (-nosyncrefresh). |
| 140 | |
| 141 | |
| 142 | |
| 143 | Video soft-specific options |
| 144 | --------------------------- |
| 145 | |
| 146 | -scalemode |
| 147 | |
| 148 | Scale mode: none, async, yv12, yuy2, yv12x2, yuy2x2 (-video soft only) |
| 149 | |
| 150 | |
| 151 | Video OpenGL-specific options |
| 152 | ----------------------------- |
| 153 | |
| 154 | -prescale <amount> |
| 155 | |
| 156 | Controls the size of the screen images when they are passed off to the |
| 157 | graphics system for scaling. At the minimum setting of 1, the screen |
| 158 | is rendered at its original resolution before being scaled. At higher |
| 159 | settings, the screen is expanded by a factor of <amount> before being |
| 160 | scaled. This produces a less blurry image at the expense of some speed |
| 161 | and also increases the effective resolution of non-screen elements such |
| 162 | as artwork and fonts. The default is 1. |
| 163 | |
| 164 | -gl_forcepow2texture Force power of two textures (default no) |
| 165 | -gl_notexturerect Don't use OpenGL GL_ARB_texture_rectangle (default on) |
| 166 | -gl_vbo Enable OpenGL VBO, if available (default on) |
| 167 | -gl_pbo Enable OpenGL PBO, if available (default on) |
| 168 | -gl_glsl Enable OpenGL GLSL, if available (default off) |
| 169 | -gl_glsl_filter Enable OpenGL GLSL filtering instead of FF filtering 0-plain, |
| 170 | 1-bilinear (default) |
| 171 | -glsl_shader_mame0 Custom OpenGL GLSL shader set mame bitmap 0 |
| 172 | -glsl_shader_mame1 Custom OpenGL GLSL shader set mame bitmap 1 |
| 173 | -glsl_shader_mame2 Custom OpenGL GLSL shader set mame bitmap 2 |
| 174 | -glsl_shader_mame3 Custom OpenGL GLSL shader set mame bitmap 3 |
| 175 | -glsl_shader_mame4 Custom OpenGL GLSL shader set mame bitmap 4 |
| 176 | -glsl_shader_mame5 Custom OpenGL GLSL shader set mame bitmap 5 |
| 177 | -glsl_shader_mame6 Custom OpenGL GLSL shader set mame bitmap 6 |
| 178 | -glsl_shader_mame7 Custom OpenGL GLSL shader set mame bitmap 7 |
| 179 | -glsl_shader_mame8 Custom OpenGL GLSL shader set mame bitmap 8 |
| 180 | -glsl_shader_mame9 Custom OpenGL GLSL shader set mame bitmap 9 |
| 181 | -glsl_shader_screen0 Custom OpenGL GLSL shader screen bitmap 0 |
| 182 | -glsl_shader_screen1 Custom OpenGL GLSL shader screen bitmap 1 |
| 183 | -glsl_shader_screen2 Custom OpenGL GLSL shader screen bitmap 2 |
| 184 | -glsl_shader_screen3 Custom OpenGL GLSL shader screen bitmap 3 |
| 185 | -glsl_shader_screen4 Custom OpenGL GLSL shader screen bitmap 4 |
| 186 | -glsl_shader_screen5 Custom OpenGL GLSL shader screen bitmap 5 |
| 187 | -glsl_shader_screen6 Custom OpenGL GLSL shader screen bitmap 6 |
| 188 | -glsl_shader_screen7 Custom OpenGL GLSL shader screen bitmap 7 |
| 189 | -glsl_shader_screen8 Custom OpenGL GLSL shader screen bitmap 8 |
| 190 | -glsl_shader_screen9 Custom OpenGL GLSL shader screen bitmap 9 |
| 191 | -gl_glsl_vid_attr Enable OpenGL GLSL handling of brightness and contrast. |
| 192 | Better RGB game performance |
| 193 | |
| 194 | |
| 195 | |
| 196 | Per-window options |
| 197 | ------------------ |
| 198 | |
| 199 | NOTE: Multiple Screens are limited to 1 until SDL 2.0 is released. |
| 200 | |
| 201 | -screen <display> |
| 202 | -screen0 <display> |
| 203 | -screen1 <display> |
| 204 | -screen2 <display> |
| 205 | -screen3 <display> |
| 206 | |
| 207 | Specifies which physical monitor on your system you wish to have each |
| 208 | window use by default. In order to use multiple windows, you must have |
| 209 | increased the value of the -numscreens option. The name of each |
| 210 | display in your system can be determined by running MAME with the |
| 211 | -verbose option. The display names are typically in the format of: |
| 212 | \\.\DISPLAYn, where 'n' is a number from 1 to the number of connected |
| 213 | monitors. The default value for these options is 'auto', which means |
| 214 | that the first window is placed on the first display, the second |
| 215 | window on the second display, etc. |
| 216 | |
| 217 | The -screen0, -screen1, -screen2, -screen3 parameters apply to the |
| 218 | specific window. The -screen parameter applies to all windows. The |
| 219 | window-specific options override values from the all window option. |
| 220 | |
| 221 | -aspect <width:height> / -screen_aspect <num:den> |
| 222 | -aspect0 <width:height> |
| 223 | -aspect1 <width:height> |
| 224 | -aspect2 <width:height> |
| 225 | -aspect3 <width:height> |
| 226 | |
| 227 | Specifies the physical aspect ratio of the physical monitor for each |
| 228 | window. In order to use multiple windows, you must have increased the |
| 229 | value of the -numscreens option. The physical aspect ratio can be |
| 230 | determined by measuring the width and height of the visible screen |
| 231 | image and specifying them separated by a colon. The default value for |
| 232 | these options is 'auto', which means that MAME assumes the aspect |
| 233 | ratio is proportional to the number of pixels in the desktop video |
| 234 | mode for each monitor. |
| 235 | |
| 236 | The -aspect0, -aspect1, -aspect2, -aspect3 parameters apply to the |
| 237 | specific window. The -aspect parameter applies to all windows. The |
| 238 | window-specific options override values from the all window option. |
| 239 | |
| 240 | -resolution <widthxheight[@refresh]> / -r <widthxheight[@refresh]> |
| 241 | -resolution0 <widthxheight[@refresh]> / -r0 <widthxheight[@refresh]> |
| 242 | -resolution1 <widthxheight[@refresh]> / -r1 <widthxheight[@refresh]> |
| 243 | -resolution2 <widthxheight[@refresh]> / -r2 <widthxheight[@refresh]> |
| 244 | -resolution3 <widthxheight[@refresh]> / -r3 <widthxheight[@refresh]> |
| 245 | |
| 246 | Specifies an exact resolution to run in. In full screen mode, MAME |
| 247 | will try to use the specific resolution you request. The width and |
| 248 | height are required; the refresh rate is optional. If omitted or |
| 249 | set to 0, MAME will determine the mode auomatically. For example, |
| 250 | -resolution 640x480 will force 640x480 resolution, but MAME is free to |
| 251 | choose the refresh rate. Similarly, -resolution 0x0@60 will force a |
| 252 | 60Hz refresh rate, but allows MAME to choose the resolution. The |
| 253 | string "auto" is also supported, and is equivalent to 0x0@0. In window |
| 254 | mode, this resolution is used as a maximum size for the window. This |
| 255 | option requires the -switchres option as well in order to actually |
| 256 | Enable resolution switching. |
| 257 | |
| 258 | The -resolution0, -resolution1, -resolution2, -resolution3 parameters |
| 259 | apply to the specific window. The -resolution parameter applies to all |
| 260 | windows. The window-specific options override values from the all |
| 261 | window option. |
| 262 | |
| 263 | -view <viewname> |
| 264 | -view0 <viewname> |
| 265 | -view1 <viewname> |
| 266 | -view2 <viewname> |
| 267 | -view3 <viewname> |
| 268 | |
| 269 | Specifies the initial view setting for each window. The <viewname> |
| 270 | does not need to be a perfect match; rather, it will select the first |
| 271 | view whose name matches all the characters specified by <viewname>. |
| 272 | For example, -view native will match the "Native (15:14)" view even |
| 273 | though it is not a perfect match. The value 'auto' is also supported, |
| 274 | and requests that MAME perform a default selection. The default value |
| 275 | for these options is 'auto'. |
| 276 | |
| 277 | The -view0, -view1, -view2, -view3 parameters apply to the |
| 278 | specific window. The -view parameter applies to all windows. The |
| 279 | window-specific options override values from the all window option. |
| 280 | |
| 281 | |
| 282 | |
| 283 | Full screen options |
| 284 | ------------------- |
| 285 | |
| 286 | -[no]switchres |
| 287 | |
| 288 | Enables resolution switching. This option is required for the |
| 289 | -resolution* options to switch resolutions in full screen mode. On |
| 290 | modern video cards, there is little reason to switch resolutions unless |
| 291 | you are trying to achieve the "exact" pixel resolutions of the original |
| 292 | games, which requires significant tweaking. This option is also useful |
| 293 | on LCD displays, since they run with a fixed resolution and switching |
| 294 | resolutions on them is just silly. This option does not work with |
| 295 | -video gdi. The default is OFF (-noswitchres). |
| 296 | |
| 297 | |
| 298 | |
| 299 | Sound options |
| 300 | ------------- |
| 301 | |
| 302 | -audio_latency <value> |
| 303 | |
| 304 | This controls the amount of latency built into the audio streaming. By |
| 305 | default MAME tries to keep the DirectSound audio buffer between 1/5 and |
| 306 | 2/5 full. On some systems, this is pushing it too close to the edge, |
| 307 | and you get poor sound sometimes. The latency parameter controls the |
| 308 | lower threshold. The default is 1 (meaning lower=1/5 and upper=2/5). |
| 309 | Set it to 2 (-audio_latency 2) to keep the sound buffer between 2/5 and |
| 310 | 3/5 full. If you crank it up to 4, you can definitely notice the lag. |
| 311 | |
| 312 | |
| 313 | |
| 314 | SDL Keyboard Mapping |
| 315 | -------------------- |
| 316 | |
| 317 | -keymap Enable keymap |
| 318 | -keymap_file Keymap Filename |
| 319 | -uimodekey Key to toggle keyboard mode. |
| 320 | |
| 321 | |
| 322 | |
| 323 | SDL Joystick Mapping |
| 324 | -------------------- |
| 325 | |
| 326 | -joy_idx1 Name of joystick mapped to joystick #1 |
| 327 | -joy_idx2 Name of joystick mapped to joystick #2 |
| 328 | -joy_idx3 Name of joystick mapped to joystick #3 |
| 329 | -joy_idx4 Name of joystick mapped to joystick #4 |
| 330 | -joy_idx5 Name of joystick mapped to joystick #5 |
| 331 | -joy_idx6 Name of joystick mapped to joystick #6 |
| 332 | -joy_idx7 Name of joystick mapped to joystick #7 |
| 333 | -joy_idx8 Name of joystick mapped to joystick #8 |
| 334 | -sixaxis Use special handling for PS3 Sixaxis controllers |
| 335 | |
| 336 | |
| 337 | |
| 338 | SDL Lowlevel driver options |
| 339 | --------------------------- |
| 340 | |
| 341 | -videodriver SDL video driver to use ('x11', 'directfb', ... or 'auto' for SDL default |
| 342 | -audiodriver SDL audio driver to use ('alsa', 'arts', ... or 'auto' for SDL default |
| 343 | -gl_lib Alternative libGL.so to use; 'auto' for system default |
| | No newline at end of file |