Sony PlayStation (PS1 / PSX) [RetroPie series]
Here are my Sony PlayStation specific notes of my RetroPie system. The PS1 emulator runs on RetroArch, so you may want to check out common RetroArch stuff I posted separately.
- RetroPie PS1 wiki
- libretro-pcsx
- TODO: Update to more optimized lr-pcsx-rearmed
Performance can be an issue with some Playstation games. Overclocking and using libretro-pcsx-rearmed should get pretty good result (but not 100% accurate) emulation on Raspberry Pi 2.
Games
I do not recommend downloading old software or other assets using these links.
- Game manuals
- RetroPie
- Extract .zip → .bin to
~/RetroPie/roms/psx/
- If game comes on multiple CD, move additional images to
~/RetroPie/roms/psx/.MoreDisks
(NOTE! Not tested)
- Extract .zip → .bin to
BIOS
BIOS needs to be copied from an original PS1 or downloaded.
- scph7502.bin →
/home/pi/RetroPie/bios
Controllers
UPDATE: I’m now connecting genuine Sony PlayStation controllers to Pi via Bliss-Box 4-Play and updated this section with the new configuration.
Using PlayStation controller via Bliss-Box 4-Play
I am currently using black DualShock controllers (“PS2 controllers”) as there seems to be a problem with analog shoulder buttons (not sure if I there still are issues with games using the lower shoulder buttons). The configuration is at /opt/retropie/configs/psx/retroarch.cfg
:
# Settings made here will only override settings in the global retroarch.cfg if placed above the #include line
input_remapping_directory = "/opt/retropie/configs/psx/"
input_joypad_driver = "linuxraw"
input_player1_joypad_index = 0
input_player2_joypad_index = 1
# Player 1: PS Controller on Bliss-Box 4-Play port 1
input_player1_b_btn = 2 # X
input_player1_a_btn = 4 # O
input_player1_y_btn = 1 # (square)
input_player1_x_btn = 3 # (triangle)
input_player1_l_btn = 7 # Left-top shoulder
input_player1_r_btn = 8 # Right-top shoulder
input_player1_l2_btn = 9 # Left-bottom shoulder
input_player1_r2_btn = 10 # Right-bottom shoulder
input_player1_select_btn = 5 # Select
input_player1_start_btn = 6 # Start
input_player1_up_btn = 11 # D-Pad up
input_player1_down_btn = 12 # D-Pad down
input_player1_left_btn = 13 # D-Pad left
input_player1_right_btn = 14 # D-Pad right
input_player1_l_y_minus_axis = -1 # Left-analog up
input_player1_l_y_plus_axis = +1 # Left-analog down
input_player1_l_x_minus_axis = -0 # Left-analog left
input_player1_l_x_plus_axis = +0 # Left-analog right
input_player1_l3_btn = 15 # Left-analog button
input_player1_r_y_minus_axis = -4 # Right-analog up
input_player1_r_y_plus_axis = +4 # Right-analog down
input_player1_r_x_minus_axis = -3 # Right-analog left
input_player1_r_x_plus_axis = +3 # Right analog right
input_player1_r3_btn = 16 # Right-analog button
# Player 2: PS Controller on Bliss-Box 4-Play port 2
input_player2_b_btn = 2 # X
input_player2_a_btn = 4 # O
input_player2_y_btn = 1 # (square)
input_player2_x_btn = 3 # (triangle)
input_player2_l_btn = 7 # Left-top shoulder
input_player2_r_btn = 8 # Right-top shoulder
input_player2_l2_btn = 9 # Left-bottom shoulder
input_player2_r2_btn = 10 # Right-bottom shoulder
input_player2_select_btn = 5 # Select
input_player2_start_btn = 6 # Start
input_player2_up_btn = 11 # D-Pad up
input_player2_down_btn = 12 # D-Pad down
input_player2_left_btn = 13 # D-Pad left
input_player2_right_btn = 14 # D-Pad right
input_player2_l_y_minus_axis = -1 # Left-analog up
input_player2_l_y_plus_axis = +1 # Left-analog down
input_player2_l_x_minus_axis = -0 # Left-analog left
input_player2_l_x_plus_axis = +0 # Left-analog right
input_player2_l3_btn = 15 # Left-analog button
input_player2_r_y_minus_axis = -4 # Right-analog up
input_player2_r_y_plus_axis = +4 # Right-analog down
input_player2_r_x_minus_axis = -3 # Right-analog left
input_player2_r_x_plus_axis = +3 # Right analog right
input_player2_r3_btn = 16 # Right-analog button
# Hot keys etc.
input_enable_hotkey_btn = 5
input_exit_emulator_btn = 6
#include "/opt/retropie/configs/all/retroarch.cfg"
Using USB-connected PS3 controllers
Evan-Amos via Wikipedia Evan-Amos via WikipediaPS3 controller is a natural match for PS1 games.
The configuration at /opt/retropie/configs/psx/retroarch.cfg
:
rewind_enable = false
input_player1_joypad_index = 2 # PS3-controller 1
input_player2_joypad_index = 3 # PS3-controller 2
# Player 1: PS3-controller 1
input_player1_b_btn = 14
input_player1_y_btn = 15
input_player1_select_btn = 0
input_player1_start_btn = 3
input_player1_up_btn = 4
input_player1_down_btn = 6
input_player1_left_btn = 7
input_player1_right_btn = 5
input_player1_a_btn = 13
input_player1_x_btn = 12
input_player1_l_btn = 10
input_player1_r_btn = 11
input_player1_l2_btn = 8
input_player1_r2_btn = 9
input_player1_l3_btn = 1
input_player1_r3_btn = 2
input_player1_l_x_plus_axis = +0
input_player1_l_x_minus_axis = -0
input_player1_l_y_plus_axis = +1
input_player1_l_y_minus_axis = -1
input_player1_r_x_plus_axis = +2
input_player1_r_x_minus_axis = -2
input_player1_r_y_plus_axis = +3
input_player1_r_y_minus_axis = -3
# Player 2: PS3-controller 2
input_player2_b_btn = 14
input_player2_y_btn = 15
input_player2_select_btn = 0
input_player2_start_btn = 3
input_player2_up_btn = 4
input_player2_down_btn = 6
input_player2_left_btn = 7
input_player2_right_btn = 5
input_player2_a_btn = 13
input_player2_x_btn = 12
input_player2_l_btn = 10
input_player2_r_btn = 11
input_player2_l2_btn = 8
input_player2_r2_btn = 9
input_player2_l3_btn = 1
input_player2_r3_btn = 2
input_player2_l_x_plus_axis = +0
input_player2_l_x_minus_axis = -0
input_player2_l_y_plus_axis = +1
input_player2_l_y_minus_axis = -1
input_player2_r_x_plus_axis = +2
input_player2_r_x_minus_axis = -2
input_player2_r_y_plus_axis = +3
input_player2_r_y_minus_axis = -3