| CORE STATE/PLAYBACK OPTIONS |
| -state | saved state to load |
| -autosave | enable automatic restore at startup, and automatic save at exit time |
| -playback | playback an input file |
| -record | record an input file |
| -mngwrite | optional filename to write a MNG movie of the current session |
| -aviwrite | optional filename to write an AVI movie of the current session |
| -wavwrite | optional filename to write a WAV file of the current session |
| -snapname | override of the default snapshot/movie naming; %g == gamename, %i == index |
| -snapsize | specify snapshot/movie resolution (<width>x<height>) or 'auto' to use minimal size |
| -snapview | specify snapshot/movie view or 'internal' to use internal pixel-aspect views |
| CORE PERFORMANCE OPTIONS |
| -autoframeskip | enable automatic frameskip selection |
| -frameskip | set frameskip to fixed value, 0-12 (autoframeskip must be disabled) |
| -seconds_to_run | number of emulated seconds to run before automatically exiting |
| -throttle | enable throttling to keep game running in sync with real time |
| -sleep | enable sleeping, which gives time back to other applications when idle |
| -speed | controls the speed of gameplay, relative to realtime; smaller numbers are slower |
| -refreshspeed | automatically adjusts the speed of gameplay to keep the refresh rate lower than the screen |
| CORE INPUT OPTIONS |
| -coin_lockout | enable coin lockouts to actually lock out coins |
| -ctrlr | preconfigure for specified controller |
| -mouse | enable mouse input |
| -joystick | enable joystick input |
| -lightgun | enable lightgun input |
| -multikeyboard | enable separate input from each keyboard device (if present) |
| -multimouse | enable separate input from each mouse device (if present) |
| -steadykey | enable steadykey support |
| -offscreen_reload | convert lightgun button 2 into offscreen reload |
| -joystick_map | explicit joystick map, or auto to auto-select |
| -joystick_deadzone | center deadzone range for joystick where change is ignored (0.0 center, 1.0 end) |
| -joystick_saturation | end of axis saturation range for joystick where change is ignored (0.0 center, 1.0 end) |
| CORE INPUT AUTOMATIC ENABLE OPTIONS |
| -paddle_device | enable (none|keyboard|mouse|lightgun|joystick) if a paddle control is present |
| -adstick_device | enable (none|keyboard|mouse|lightgun|joystick) if an analog joystick control is present |
| -pedal_device | enable (none|keyboard|mouse|lightgun|joystick) if a pedal control is present |
| -dial_device | enable (none|keyboard|mouse|lightgun|joystick) if a dial control is present |
| -trackball_device | enable (none|keyboard|mouse|lightgun|joystick) if a trackball control is present |
| -lightgun_device | enable (none|keyboard|mouse|lightgun|joystick) if a lightgun control is present |
| -positional_device | enable (none|keyboard|mouse|lightgun|joystick) if a positional control is present |
| -mouse_device | enable (none|keyboard|mouse|lightgun|joystick) if a mouse control is present |
| VIDEO OPTIONS |
| -video | video output method: soft or opengl |
| -numscreens | number of screens to create; SDLMAME only supports 1 at this time |
| -window | enable window mode; otherwise, full screen mode is assumed |
| -maximize | default to maximized windows; otherwise, windows will be minimized |
| -keepaspect | constrain to the proper aspect ratio |
| -unevenstretch | allow non-integer stretch factors |
| -effect | name of a PNG file to use for visual effects, or 'none' |
| -centerh | center horizontally within the view area |
| -centerv | center vertically within the view area |
| -waitvsync | enable waiting for the start of VBLANK before flipping screens; reduces tearing effects |
| -scalemode | Scale mode: none, async, yv12, yuy2, yv12x2, yuy2x2 (-video soft only) |
| OpenGL-SPECIFIC OPTIONS |
| -filter | enable bilinear filtering on screen output |
| -prescale | scale screen rendering by this amount in software |
| -gl_forcepow2texture | force power of two textures (default no) |
| -gl_notexturerect | don't use OpenGL GL_ARB_texture_rectangle (default on) |
| -gl_vbo | enable OpenGL VBO, if available (default on) |
| -gl_pbo | enable OpenGL PBO, if available (default on) |
| -gl_glsl | enable OpenGL GLSL, if available (default off) |
| -gl_glsl_filter | enable OpenGL GLSL filtering instead of FF filtering 0-plain, 1-bilinear (default) |
| -glsl_shader_mame0 | custom OpenGL GLSL shader set mame bitmap 0 |
| -glsl_shader_mame1 | custom OpenGL GLSL shader set mame bitmap 1 |
| -glsl_shader_mame2 | custom OpenGL GLSL shader set mame bitmap 2 |
| -glsl_shader_mame3 | custom OpenGL GLSL shader set mame bitmap 3 |
| -glsl_shader_mame4 | custom OpenGL GLSL shader set mame bitmap 4 |
| -glsl_shader_mame5 | custom OpenGL GLSL shader set mame bitmap 5 |
| -glsl_shader_mame6 | custom OpenGL GLSL shader set mame bitmap 6 |
| -glsl_shader_mame7 | custom OpenGL GLSL shader set mame bitmap 7 |
| -glsl_shader_mame8 | custom OpenGL GLSL shader set mame bitmap 8 |
| -glsl_shader_mame9 | custom OpenGL GLSL shader set mame bitmap 9 |
| -glsl_shader_screen0 | custom OpenGL GLSL shader screen bitmap 0 |
| -glsl_shader_screen1 | custom OpenGL GLSL shader screen bitmap 1 |
| -glsl_shader_screen2 | custom OpenGL GLSL shader screen bitmap 2 |
| -glsl_shader_screen3 | custom OpenGL GLSL shader screen bitmap 3 |
| -glsl_shader_screen4 | custom OpenGL GLSL shader screen bitmap 4 |
| -glsl_shader_screen5 | custom OpenGL GLSL shader screen bitmap 5 |
| -glsl_shader_screen6 | custom OpenGL GLSL shader screen bitmap 6 |
| -glsl_shader_screen7 | custom OpenGL GLSL shader screen bitmap 7 |
| -glsl_shader_screen8 | custom OpenGL GLSL shader screen bitmap 8 |
| -glsl_shader_screen9 | custom OpenGL GLSL shader screen bitmap 9 |
| -gl_glsl_vid_attr | enable OpenGL GLSL handling of brightness and contrast. Better RGB game performance for free. (default) |
| PER-WINDOW VIDEO OPTIONS |
| -screen | explicit name of the first screen; 'auto' here will try to make a best guess |
| -aspect | aspect ratio for all screens; 'auto' here will try to make a best guess |
| -resolution | preferred resolution for all screens; format is <width>x<height>[@<refreshrate>] or 'auto' |
| -view | preferred view for all screens |
| -screen0 | explicit name of the first screen; 'auto' here will try to make a best guess |
| -aspect0 | aspect ratio of the first screen; 'auto' here will try to make a best guess |
| -resolution0 | preferred resolution of the first screen; format is <width>x<height>[@<refreshrate>] or 'auto' |
| -view0 | preferred view for the first screen |
| -screen1 | explicit name of the second screen; 'auto' here will try to make a best guess |
| -aspect1 | aspect ratio of the second screen; 'auto' here will try to make a best guess |
| -resolution1 | preferred resolution of the second screen; format is <width>x<height>[@<refreshrate>] or 'auto' |
| -view1 | preferred view for the second screen |
| -screen2 | explicit name of the third screen; 'auto' here will try to make a best guess |
| -aspect2 | aspect ratio of the third screen; 'auto' here will try to make a best guess |
| -resolution2 | preferred resolution of the third screen; format is <width>x<height>[@<refreshrate>] or 'auto' |
| -view2 | preferred view for the third screen |
| -screen3 | explicit name of the fourth screen; 'auto' here will try to make a best guess |
| -aspect3 | aspect ratio of the fourth screen; 'auto' here will try to make a best guess |
| -resolution3 | preferred resolution of the fourth screen; format is <width>x<height>[@<refreshrate>] or 'auto' |
| -view3 | preferred view for the fourth screen |
| SDL JOYSTICK MAPPING |
| -joy_idx1 | name of joystick mapped to joystick #1 |
| -joy_idx2 | name of joystick mapped to joystick #2 |
| -joy_idx3 | name of joystick mapped to joystick #3 |
| -joy_idx4 | name of joystick mapped to joystick #4 |
| -joy_idx5 | name of joystick mapped to joystick #5 |
| -joy_idx6 | name of joystick mapped to joystick #6 |
| -joy_idx7 | name of joystick mapped to joystick #7 |
| -joy_idx8 | name of joystick mapped to joystick #8 |
| -sixaxis | Use special handling for PS3 Sixaxis controllers |