This repository was archived by the owner on Jan 22, 2026. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
Sega Saturn (saturn)
southoz edited this page Dec 27, 2025
·
6 revisions
| Emulator | yabasanshiro |
|---|---|
| Version | 1.9.0 |
| ArkOS Details | Christians GitHub |
| EASYROMS Folder | saturn |
| Linux Path | /roms/saturn |
| BIOS File | /bios/saturn_bios.bin |
- You really have to be honest about the RK3326's ability to emulate Saturn: some 2D games run fine, but overall it is very hit-or-miss. I found that using bin/cue images over chd yielded about 5% performance increase and was able to complete an arcade mode run on Sega Rally.
- The emulator creates a binary on your SD Card for the current game, which can take about 10 seconds during boot.
- Exit Emulator through the Yabasanshiro Menu via the function key.
| Saturn | G80CA-MB |
|---|---|
| A Button | Y Button (Left) |
| B Button | B Button (Bottom) |
| C Button | A Button (Right) |
| X Button | L1 Button |
| Y Button | X Button (Top) |
| Z Button | R1 Button) |
| Left Sholder | L2 Button |
| Right Sholder | R2 Button |
| D-Pad Up | D-Pad Up |
| D-Pad Down | D-Pad Down |
| D-Pad Left | D-Pad Left |
| D-Pad Right | D-Pad Right |
| Start | Start Button |
| Action | Key/Combination |
|---|---|
| Menu | Function |
| Select | A Button |
| Back | B Button |
| Exit | B Button |
To support per-game configurations, I have rebuilt the /usr/local/bin/saturn.sh start script to copy default.config to the Rom name
/usr/local/bin/saturn.sh
#!/bin/bash
if [[ $1 == *"standalone"* ]]; then
directory=$(dirname "$2" | cut -d "/" -f2)
if [[ ! -d "/$directory/saturn/yabasanshiro" ]]; then
mkdir /$directory/saturn/yabasanshiro
fi
cd /opt/yabasanshiro
# Extract just the filename (romfile) from $2
romfile=$(basename "$2")
config_file="${romfile}.config"
# If a per-ROM config doesn't exist, copy the default one
if [[ ! -f "$config_file" ]]; then
if [[ -f "default.config" ]]; then
cp "default.config" "$config_file"
fi
fi
if [[ $1 == "standalone-bios" ]]; then
if [[ ! -f "/$directory/bios/saturn_bios.bin" ]]; then
printf "\033c" >> /dev/tty1
printf "\033[1;33m" >> /dev/tty1
printf "\n I don't detect a saturn_bios.bin bios file in the" >> /dev/tty1
printf "\n /$directory/bios folder. Either place one in that" >> /dev/tty1
printf "\n location or switch to the standalone-nobios emulator." >> /dev/tty1
sleep 10
printf "\033[0m" >> /dev/tty1
else
./yabasanshiro -r 3 -i "$2" -b /$directory/bios/saturn_bios.bin
fi
else
./yabasanshiro -r 3 -i "$2"
fi
fi
/opt/yabasanshiro/default.config
{
"Aspect rate": 1,
"Resolution": 3,
"Rotate screen": false,
"Rotate screen resolution": 0,
"Use compute shader": false
}
/opt/yabasanshiro/input.config
<?xml version="1.0"?>
<inputList>
<inputConfig type="joystick" deviceName="play_joystick" deviceGUID="19000f6a706c61795f6a6f7973746900">
<input name="a" type="button" id="0" value="1" />
<input name="b" type="button" id="1" value="1" />
<input name="down" type="button" id="15" value="1" />
<input name="hotkeyenable" type="button" id="13" value="1" />
<input name="left" type="button" id="16" value="1" />
<input name="leftanalogdown" type="axis" id="1" value="1" />
<input name="leftanalogleft" type="axis" id="0" value="-1" />
<input name="leftanalogright" type="axis" id="0" value="1" />
<input name="leftanalogup" type="axis" id="1" value="-1" />
<input name="leftshoulder" type="button" id="4" value="1" />
<input name="leftthumb" type="button" id="11" value="1" />
<input name="lefttrigger" type="button" id="6" value="1" />
<input name="right" type="button" id="17" value="1" />
<input name="rightanalogdown" type="axis" id="3" value="1" />
<input name="rightanalogleft" type="axis" id="2" value="-1" />
<input name="rightanalogright" type="axis" id="2" value="1" />
<input name="rightanalogup" type="axis" id="3" value="-1" />
<input name="rightshoulder" type="button" id="5" value="1" />
<input name="rightthumb" type="button" id="12" value="1" />
<input name="righttrigger" type="button" id="7" value="1" />
<input name="select" type="button" id="13" value="1" />
<input name="start" type="button" id="9" value="1" />
<input name="up" type="button" id="14" value="1" />
<input name="pageup" type="button" id="4" value="1" />
<input name="pagedown" type="button" id="5" value="1" />
<input name="x" type="button" id="2" value="1" />
<input name="y" type="button" id="3" value="1" />
</inputConfig>
</inputList>
/opt/yabasanshiro/keymapv2.json
{
"0_play_joystick_19000f6a706c61795f6a6f7973746900": {
"a": {
"id": 3,
"type": "button",
"value": 1
},
"analogleft": {
"id": 4,
"type": "axis",
"value": 0
},
"analogright": {
"id": 5,
"type": "axis",
"value": 0
},
"analogx": {
"id": 0,
"type": "axis",
"value": 0
},
"analogy": {
"id": 1,
"type": "axis",
"value": 0
},
"b": {
"id": 1,
"type": "button",
"value": 1
},
"c": {
"id": 0,
"type": "button",
"value": 1
},
"down": {
"id": 15,
"type": "button",
"value": 1
},
"l": {
"id": 6,
"type": "button",
"value": 1
},
"left": {
"id": 16,
"type": "button",
"value": 1
},
"r": {
"id": 7,
"type": "button",
"value": 1
},
"right": {
"id": 17,
"type": "button",
"value": 1
},
"select": {
"id": 13,
"type": "button",
"value": 1
},
"start": {
"id": 9,
"type": "button",
"value": 1
},
"up": {
"id": 14,
"type": "button",
"value": 1
},
"x": {
"id": 2,
"type": "button",
"value": 1
},
"y": {
"id": 4,
"type": "button",
"value": 1
},
"z": {
"id": 5,
"type": "button",
"value": 1
}
},
"player1": {
"DeviceID": 0,
"deviceGUID": "19000f6a706c61795f6a6f7973746900",
"deviceName": "play_joystick",
"padmode": 0
}
}
- Arcade (arcade)
- CAPCOM Play System 1 (cps1)
- CAPCOM Play System 2 (cps2)
- CAPCOM Play System 3 (cps3)
- MAME 2003 (mame2003)
- MAME 2010 (mame)
- Amiga CD32 (amigacd32)
- Atari 2600 (atari2600)
- Atari 5200 (atari5200)
- Atari 7800 (atari7800)
- Mattel Intellivision (intellivision)
- NEC PCE Engine (pcengine)
- NEC PC Engine CD (pcenginecd)
- NEC Turbografx 16 (turbografx)
- NEC Turbografx 16 CD (turbografxcd)
- Nintendo Entertainment System (nes)
- Nintendo Famicom (famicom)
- Nintendo Famicom Disk System (fds)
- Nintendo Super Nintendo Entertainment System (snes)
- Nintendo Super Famicom (sfc)
- Nintendo 64 (n64)
- Sega SG‐1000 (sg‐1000)
- Sega Master System (mastersystem)
- Sega Megadrive (megadrive)
- Sega Genesis (genesis)
- Sega CD (segacd)
- Sega 32x (sega32x)
- Sega Saturn (saturn)
- Sega Dreamcast (dc)
- SNK Neo Geo (neogeo)
- SNK Neo Geo CD (neogeocd)
- Sony Playstation (psx)
- Atari Lynx (atarilynx}
- Bandai WonderSwan (wonderswan)
- Bandai WonderSwan Color (wonderswancolor)
- Nintendo GameBoy (gb)
- Nintendo Gameboy Advanced (gba)
- Nintendo Gameboy Color (gbc)
- Nintendo DS (nds)
- Sega Game Gear (gamegear)
- SNK Neo Geo Pocket (ngp)
- SNK Neo Geo Pocket Color (ngpc)
- Sony Playstation Portable (psp)
