Mednafen

Sega Saturn Documentation

Last updated September 19, 2016
Valid as of 0.9.39.2

Table of Contents:

Introduction

NOTE: The Sega Saturn emulation is currently experimental, and under active development, and save states are not currently supported. By default(and for the official releases for Windows), Saturn emulation is only compiled in for x86_64 builds. The separate SSF playback module does not have this limitation. Multitap is not currently emulated, though there are some settings present in preparation for it.

Mednafen's Sega Saturn emulation is extremely CPU intensive. The minimum recommended CPU is a quad-core Intel Haswell-microarchitecture CPU with a base frequency of >= 3.3GHz and a turbo frequency of >= 3.7GHz(e.g. Xeon E3-1226 v3), but note that this recommendation does not apply to any unofficial ports or forks, which may have higher CPU requirements.

Enabling CD image preloading into memory via the cd.image_memcache setting is recommended, to avoid short emulator pauses and audio pops due to waiting for disk accesses to complete when the emulated CD is accessed.


Firmware/BIOS

Place the correct BIOS image files in the correct location.

The filenames listed below are per default ss.bios_* settings.

Filename:Purpose:SHA-256 Hash:
sega_101.binBIOS image.
Required for Japan-region games.
dcfef4b99605f872b6c3b6d05c045385cdea3d1b702906a0ed930df7bcb7deac
mpr-17933.binBIOS image.
Required for North America/US-region and Europe-region games.
96e106f740ab448cf89f0dd49dfbac7fe5391cb6bd6e14ad5e3061c13330266f

Default Input Mappings

Digital Gamepad on Virtual Port 1

Key:Emulated Button:
WUp
SDown
ALeft
DRight
EnterSTART
Keypad 1A
Keypad 2B
Keypad 3C
Keypad 4X
Keypad 5Y
Keypad 6Z
Keypad 7Left Shoulder
Keypad 9Right Shoulder



Settings Reference

Caution: Any settings that change emulation behavior as seen from the emulated game are shown with the setting name bolded in the table. One should be conscious of these settings if one has changed them from the default values when using network play or movies, as they can cause desychronizations if not set the same among hosts(or between the recording emulator and the playing emulator).

Setting:Value Type:Possible Values:Default Value:Description:
ss.bios_jpstring sega_101.binPath to the Japan ROM BIOS
 
ss.bios_na_eustring mpr-17933.binPath to the North America and Europe ROM BIOS
 
ss.bios_sanityboolean0
1
1Enable BIOS ROM image sanity checks.
 
ss.cartenumauto
none
backup
extram1
extram4
autoExpansion cart.
  • auto - Automatic

  • none - None

  • backup - Backup Memory(512KiB)

  • extram1 - 1MiB Extended RAM

  • extram4 - 4MiB Extended RAM
 
ss.cart.kof95_pathstring mpr-18811-mx.ic1Path to KoF 95 ROM image.
 
ss.cart.ultraman_pathstring mpr-19367-mx.ic1Path to Ultraman ROM image.
 
ss.cd_sanityboolean0
1
1Enable CD (image) sanity checks.
 
ss.input.mouse_sensitivityreal through 0.50Emulated mouse sensitivity.
 
ss.input.port1enumnone
gamepad
3dpad
mouse
gamepadInput device for Virtual Port 1
  • none - none

  • gamepad - Digital Gamepad
    Standard Saturn digital gamepad.

  • 3dpad - 3D Control Pad
    3D Control Pad

  • mouse - Mouse
    Mouse
 
ss.input.port10enumnone
gamepad
3dpad
mouse
gamepadInput device for Virtual Port 10
  • none - none

  • gamepad - Digital Gamepad
    Standard Saturn digital gamepad.

  • 3dpad - 3D Control Pad
    3D Control Pad

  • mouse - Mouse
    Mouse
 
ss.input.port11enumnone
gamepad
3dpad
mouse
gamepadInput device for Virtual Port 11
  • none - none

  • gamepad - Digital Gamepad
    Standard Saturn digital gamepad.

  • 3dpad - 3D Control Pad
    3D Control Pad

  • mouse - Mouse
    Mouse
 
ss.input.port12enumnone
gamepad
3dpad
mouse
gamepadInput device for Virtual Port 12
  • none - none

  • gamepad - Digital Gamepad
    Standard Saturn digital gamepad.

  • 3dpad - 3D Control Pad
    3D Control Pad

  • mouse - Mouse
    Mouse
 
ss.input.port2enumnone
gamepad
3dpad
mouse
gamepadInput device for Virtual Port 2
  • none - none

  • gamepad - Digital Gamepad
    Standard Saturn digital gamepad.

  • 3dpad - 3D Control Pad
    3D Control Pad

  • mouse - Mouse
    Mouse
 
ss.input.port3enumnone
gamepad
3dpad
mouse
gamepadInput device for Virtual Port 3
  • none - none

  • gamepad - Digital Gamepad
    Standard Saturn digital gamepad.

  • 3dpad - 3D Control Pad
    3D Control Pad

  • mouse - Mouse
    Mouse
 
ss.input.port4enumnone
gamepad
3dpad
mouse
gamepadInput device for Virtual Port 4
  • none - none

  • gamepad - Digital Gamepad
    Standard Saturn digital gamepad.

  • 3dpad - 3D Control Pad
    3D Control Pad

  • mouse - Mouse
    Mouse
 
ss.input.port5enumnone
gamepad
3dpad
mouse
gamepadInput device for Virtual Port 5
  • none - none

  • gamepad - Digital Gamepad
    Standard Saturn digital gamepad.

  • 3dpad - 3D Control Pad
    3D Control Pad

  • mouse - Mouse
    Mouse
 
ss.input.port6enumnone
gamepad
3dpad
mouse
gamepadInput device for Virtual Port 6
  • none - none

  • gamepad - Digital Gamepad
    Standard Saturn digital gamepad.

  • 3dpad - 3D Control Pad
    3D Control Pad

  • mouse - Mouse
    Mouse
 
ss.input.port7enumnone
gamepad
3dpad
mouse
gamepadInput device for Virtual Port 7
  • none - none

  • gamepad - Digital Gamepad
    Standard Saturn digital gamepad.

  • 3dpad - 3D Control Pad
    3D Control Pad

  • mouse - Mouse
    Mouse
 
ss.input.port8enumnone
gamepad
3dpad
mouse
gamepadInput device for Virtual Port 8
  • none - none

  • gamepad - Digital Gamepad
    Standard Saturn digital gamepad.

  • 3dpad - 3D Control Pad
    3D Control Pad

  • mouse - Mouse
    Mouse
 
ss.input.port9enumnone
gamepad
3dpad
mouse
gamepadInput device for Virtual Port 9
  • none - none

  • gamepad - Digital Gamepad
    Standard Saturn digital gamepad.

  • 3dpad - 3D Control Pad
    3D Control Pad

  • mouse - Mouse
    Mouse
 
ss.midsyncboolean0
1
0Enable mid-frame synchronization.

Mid-frame synchronization can reduce input latency, but it will increase CPU requirements.

 
ss.region_autodetectboolean0
1
1Attempt to auto-detect region of game.
 
ss.region_defaultenumjp
na
eu
kr
tw
as
br
la
jpDefault region to use.

Used if region autodetection fails or is disabled.

  • jp - Japan

  • na - North America

  • eu - Europe

  • kr - South Korea

  • tw - Taiwan

  • as - China

  • br - Brazil

  • la - Latin America
 
ss.scsp.resamp_qualityinteger0 through 104SCSP output resampler quality.

0 is lowest quality and CPU usage, 10 is highest quality and CPU usage. The resampler that this setting refers to is used for converting from 44.1KHz to the sampling rate of the host audio device Mednafen is using. Changing Mednafen's output rate, via the "sound.rate" setting, to "44100" may bypass the resampler, which can decrease CPU usage by Mednafen, and can increase or decrease audio quality, depending on various operating system and hardware factors.

 
ss.slendinteger0 through 239239Last displayed scanline in NTSC mode.
 
ss.slendpinteger-16 through 271255Last displayed scanline in PAL mode.
 
ss.slstartinteger0 through 2390First displayed scanline in NTSC mode.
 
ss.slstartpinteger-16 through 2710First displayed scanline in PAL mode.
 
ss.smpc.autortcboolean0
1
1Automatically set RTC on game load.

Automatically set the SMPC's emulated Real-Time Clock to the host system's current time and date upon game load.

 
ss.smpc.autortc.langenumenglish
german
french
spanish
italian
japanese
englishBIOS language.

Also affects language used in some games(e.g. the European release of "Panzer Dragoon").

  • english - English

  • german - Deutsch

  • french - Français

  • spanish - Español

  • italian - Italiano

  • japanese - 日本語
 

Setting:Value Type:Possible Values:Default Value:Description:
ss.debugger.disfontsizeenum5x7
6x9
6x12
6x13
9x18
5x7Disassembly font size.

Note: Setting the font size to larger than the default may cause text overlap in the debugger.

  • 5x7 - 5x7

  • 6x9 - 6x9

  • 6x12 - 6x12

  • 6x13 - 6x13. CJK support.

  • 9x18 - 9x18; CJK support.
 
ss.debugger.memcharencstring SJISCharacter encoding for the debugger's memory editor.
 
ss.enableboolean0
1
1Enable (automatic) usage of this module.
 
ss.forcemonoboolean0
1
0Force monophonic sound output.
 
ss.pixshaderenumnone
autoip
autoipsharper
scale2x
sabr
ipsharper
ipxnoty
ipynotx
ipxnotysharper
ipynotxsharper
noneEnable specified OpenGL pixel shader.

Obviously, this will only work with the OpenGL "video.driver" setting, and only on cards and OpenGL implementations that support pixel shaders, otherwise you will get a black screen, or Mednafen may display an error message when starting up. Bilinear interpolation is disabled with pixel shaders, and any interpolation, if present, will be noted in the description of each pixel shader.

  • none - None/Disabled

  • autoip - Auto Interpolation
    Will automatically interpolate on each axis if the corresponding effective scaling factor is not an integer.

  • autoipsharper - Sharper Auto Interpolation
    Same as "autoip", but when interpolation is done, it is done in a manner that will reduce blurriness if possible.

  • scale2x - Scale2x

  • sabr - SABR v3.0
    GPU-intensive.

  • ipsharper - Sharper bilinear interpolation.

  • ipxnoty - Linear interpolation on X axis only.

  • ipynotx - Linear interpolation on Y axis only.

  • ipxnotysharper - Sharper version of "ipxnoty".

  • ipynotxsharper - Sharper version of "ipynotx".
 
ss.scanlinesinteger-100 through 1000Enable scanlines with specified opacity.

Opacity is specified in %; IE a value of "100" will give entirely black scanlines.

Negative values are the same as positive values for non-interlaced video, but for interlaced video will cause the scanlines to be overlaid over the previous field's lines(only if the video.deinterlacer setting is set to "weave", the default).

 
ss.specialenumnone
hq2x
hq3x
hq4x
scale2x
scale3x
scale4x
2xsai
super2xsai
supereagle
nn2x
nn3x
nn4x
nny2x
nny3x
nny4x
noneEnable specified special video scaler.

The destination rectangle is NOT altered by this setting, so if you have xscale and yscale set to "2", and try to use a 3x scaling filter like hq3x, the image is not going to look that great. The nearest-neighbor scalers are intended for use with bilinear interpolation enabled, at high resolutions(such as 1280x1024; nn2x(or nny2x) + bilinear interpolation + fullscreen stretching at this resolution looks quite nice).

  • none - None/Disabled

  • hq2x - hq2x

  • hq3x - hq3x

  • hq4x - hq4x

  • scale2x - scale2x

  • scale3x - scale3x

  • scale4x - scale4x

  • 2xsai - 2xSaI

  • super2xsai - Super 2xSaI

  • supereagle - Super Eagle

  • nn2x - Nearest-neighbor 2x

  • nn3x - Nearest-neighbor 3x

  • nn4x - Nearest-neighbor 4x

  • nny2x - Nearest-neighbor 2x, y axis only

  • nny3x - Nearest-neighbor 3x, y axis only

  • nny4x - Nearest-neighbor 4x, y axis only
 
ss.stretchenum0
full
aspect
aspect_int
aspect_mult2
aspect_mult2Stretch to fill screen.
  • 0 - Disabled

  • full - Full
    Full-screen stretch, disregarding aspect ratio.

  • aspect - Aspect Preserve
    Full-screen stretch as far as the aspect ratio(in this sense, the equivalent xscalefs == yscalefs) can be maintained.

  • aspect_int - Aspect Preserve + Integer Scale
    Full-screen stretch, same as "aspect" except that the equivalent xscalefs and yscalefs are rounded down to the nearest integer.

  • aspect_mult2 - Aspect Preserve + Integer Multiple-of-2 Scale
    Full-screen stretch, same as "aspect_int", but rounds down to the nearest multiple of 2.
 
ss.tblurboolean0
1
0Enable video temporal blur(50/50 previous/current frame by default).
 
ss.tblur.accumboolean0
1
0Accumulate color data rather than discarding it.
 
ss.tblur.accum.amountreal0 through 10050Blur amount in accumulation mode, specified in percentage of accumulation buffer to mix with the current frame.
 
ss.videoipenum0
1
x
y
1Enable (bi)linear interpolation.
  • 0 - Disabled

  • 1 - Bilinear

  • x - Linear (X)
    Interpolation only on the X axis.

  • y - Linear (Y)
    Interpolation only on the Y axis.
 
ss.xresinteger0 through 655360Full-screen horizontal resolution.

A value of "0" will cause the desktop horizontal resolution to be used.

 
ss.xscalereal0.01 through 2563.000000Scaling factor for the X axis in windowed mode.
 
ss.xscalefsreal0.01 through 2561.000000Scaling factor for the X axis in fullscreen mode.

For this settings to have any effect, the ".stretch" setting must be set to "0".

 
ss.yresinteger0 through 655360Full-screen vertical resolution.

A value of "0" will cause the desktop vertical resolution to be used.

 
ss.yscalereal0.01 through 2563.000000Scaling factor for the Y axis in windowed mode.
 
ss.yscalefsreal0.01 through 2561.000000Scaling factor for the Y axis in fullscreen mode.

For this settings to have any effect, the ".stretch" setting must be set to "0".