This is an old revision of the document!


Sony PlayStation

The PlayStation (frequently referred to in shorthand as the PS1, PSOne or its codename PSX, not to be confused with the actual PSX) is a fifth generation console released by Sony Computer Entertainment on December 3, 1994 in Japan and September 9, 1995 in the US. It was retailed for $299.99. It had a R3000 CPU (which was used by NASA for a space craft to take pictures of Mars because of its reliability) at 33.8688 MHz with 2MB of RAM and 1MB of VRAM. It used a proprietary MDEC video compression unit, which is integrated into the CPU, allowing for playback of full motion video at a higher quality than other consoles of its generation. It also had a superior digital-to-analog converter than most CD players at the time.

It was a commercial success, partly due to Sony encouraging third-party developers with affordable dev-kits, being relatively easy to program for (compared to others at the time) and because its CD-based media was cheaper than the competition.

The exciting grey box.The slimmed-down rerelease.

Emulators Folder Accepted ROM formats BIOS files BIOS required? Configuration via
DuckStation psx .cue .img .mdf .pbp .toc .cbn .m3u .ccd .chd .iso psxonpsp660.bin scph101.bin scph1001.bin scph5500.bin scph5501.bin scph5502.bin scph7001.bin Optional, some games require EmulationStation and duckstation-config
Libretro/mednafen psx psx .cue .pbp .toc .m3u .ccd .chd psxonpsp660.bin scph5500.bin scph5501.bin scph5502.bin Optional, some games require EmulationStation and RetroArch
Libretro/PCSX ReARMed psx .bin .cue .img .mdf .pbp .toc .cbn .m3u .ccd .chd psxonpsp660.bin scph101.bin scph1001.bin scph5501.bin scph7001.bin Optional, some games require EmulationStation and RetroArch
Libretro/SwanStation psx .cue .img .mdf .pbp .toc .cbn .m3u .ccd .chd .iso psxonpsp660.bin scph101.bin scph1001.bin scph5500.bin scph5501.bin scph5502.bin scph7001.bin Optional, some games require EmulationStation and RetroArch

The BIOS files aren't strictly required for emulation, but can dramatically improve compatibility and accuracy. As a replacement for any of the first 3 BIOS files mentioned above, it is also possible to use the PSXONPSP660.bin BIOS. This BIOS comes from the PSP, is region-free and can sometimes offer better performance. Their md5 checksums and expected paths are as follows:

MD5 checksum Share file path Description
c53ca5908936d412331790f4426c6c33 bios/psxonpsp660.bin Extracted from a PSP
6e3735ff4c7dc899ee98981385f6f3d0 bios/scph101.bin Version 4.4 03/24/00
dc2b9bf8da62ec93e868cfd29f0d067d bios/scph1001.bin Version 2.0 05/07/95
8dd7d5296a650fac7319bce665a6a53c bios/scph5500.bin PS1 JP BIOS
490f666e1afb15b7362b406ed1cea246 bios/scph5501.bin Version 3.0 11/18/96 PS1 US BIOS
32736f17079d0b2b7024407c39bd3050 bios/scph5502.bin PS1 EU BIOS
1e68c231d0896b7eadcad1d7d8e76129 bios/scph7001.bin Version 4.1 12/16/97

PlayStation ROMs typically come in the modern .cue/.bin format. The .cue sheets contain the metadata of where the 'data tracks' on the disc are physically located, and the .bin files are the actual data. They must retain the same filename (the .cue file is just a text file that points to the .bin file) and be in the same directory to function together. When loading PSX ROMs, be sure to select the .cue file, not the .bin file. Some games may work (with glitches) with just the .bin file loaded, but most don't. Refer to CD image formats for more info.

Older PlayStation ROMs may have been ripped in .iso image format, which is a direct representation of the data on the disc. Some emulators are incompatible with this format. This format typically only allows loading the first .bin file, and no others. In order to properly use the ROM like this, get the .img file and pair it with its CUE sheet. There are tools that can do this automatically for you.

.pbp is a proprietary format made by Sony to store PlayStation games (even multi-disc ones) in a compressed format for their PS1-on-PSP downloadable content games. There are tools to convert to and from this format. Using this format is not recommended as it can cause issues with certain games.

The .cue and .bin files are combined when compressed into a CHD file, so only the .chd file needs to be present and loaded. This is the recommended format.

Place your Sony PlayStation ROMs in /userdata/roms/psx/.

PAL copy protected games need a SBI subchannel file next to the .bin/.cue/.chd files in order to get past the copy-protection. For example:

Game (Europe).bin
Game (Europe).cue
Game (Europe).sbi

For proper PAL game compatibility, DuckStation should be set to show the BIOS animation, PCSX-ReARMED should be set to skip the BIOS animation (unless using a real BIOS) and Mednafen should be set to skip the BIOS animation (unless using a real BIOS).

To automatically load the next disc of a game, you can use a .m3u playlist file. To make one, simply create a text file with the same filename as your intended game name (it could be anything, really). Within that text file, write the names of the .cue sheets or .chd files for your game discs. For instance, if your game's .cue sheets were structured like

roms/
└─ psx/
   ├─ Final Fantasy VII (Disc 1).cue
   ├─ Final Fantasy VII (Disc 1).bin
   ├─ Final Fantasy VII (Disc 2).cue
   ├─ Final Fantasy VII (Disc 2).bin
   ├─ Final Fantasy VII (Disc 3).cue
   └─ Final Fantasy VII (Disc 3).bin

you would put the following as text into the Final Fantasy VII.m3u text file:

Final Fantasy VII.m3u
Final Fantasy VII (Disc 1).cue
Final Fantasy VII (Disc 2).cue
Final Fantasy VII (Disc 3).cue

Save the text file with the file extension .m3u and place it in the psx folder along with the game's discs. When you get to the end of that disc, the next disc will be automatically loaded. If this fails, you can utilize Retroarch's 'Disc Control' menu in the Quick Menu (Hotkey+South button in-game) to eject a disc and insert another (Swap Disc is for legacy purposes and should not be used). Refer to multi-disc games for more info.

DuckStation is focused on playability, speed, and long-term maintainability. The goal of the emulator is to be as accurate as possible while maintaining performance on a broad range of devices. “Hack” options are discouraged, and the default configuration should support all playable games with only some of the enhancements having compatibility issues. 64-bit CPUs are required for recompiler support for maximum performance.

Batocera uses the latest standalone version of Duckstation. Performs well on lower end x86_64 systems.

Configuration

ES option name and batocera.conf line Description Recommendation
VULKAN THREADED psx.duckstation_threadedpresentation Turns on threaded rendering for Vulkan. Presents frames on a background thread when fast-forward or V-sync is disabled. Considerably improves performance. ON 1 If using V-sync, only improves fast-forward so it is safe to leave it on.
VSYNC psx.duckstation_vsync Turns on V-sync to avoid screen tearing. Introduces a negligible amount of input delay. Significant performance cost. 1 Only should be disabled if experiencing slowdown.
FRAME SKIP psx.duckstation_frameskip Skips frames to improve performance. Values: 0 for off, 1 for on. 0 Can cause motion sickness if enabled, only use if the game is unplayable without it.
SHOW BIOS BOOTLOGO psx.duckstation_PatchFastBoot Enhancement. Skips the BIOS boot animation. Some games require the animation to function correctly, most can skip it fine. 1 to skip, 0 to show. 0 Duckstation uses the official BIOS, some games look for this specific animation before booting.
VIDEO RESOLUTION psx.duckstation_resolution_scale Enhancement. Multiplies the internal rendering resolution. Extreme performance cost. Values: 1 through 16. 1 for native, higher for a clearer image.
ANTI-ALIASING (MSAA/SSAA) psx.duckstation_antialiasing Enhancement. Applies MSAA or SSAA to smooth out jagged edges on 3D object polygons. Most noticeable at lower resolutions. Does not affect textures. The sharp edges of polygons are usually masked by the blurry video output of the PSX, but digital displays may feature them more prominently. This can alleviate that. The PSX does not have any native anti-aliasing. Enabling this can cause rendering errors. Cheaper than multiplying the rendering resolution, but not by much. Values: 1 for native, 2 for 2x MSAA, 4 for 4x MSAA, 8 for 8x MSAA up to 32 for 32x MSAA. Then, 2-ssaa for 2x SSAA, 4-ssaa for 4x SSAA up to 32-ssaa for 32x SSAA. 1 for an authentic experience, higher values for clearer 3D objects.
TEXTURE FILTERING psx.duckstation_texture_filtering Enhancement. Applies texture filtering to all textures. Minimal performance cost. Values: Nearest for native, Bilinear, BilinearBinAlpha for bilinear (no edge blending), Jinc2, Jinc2BinAlpha, xBR or xBRBinAlpha. Nearest for an authentic experience, Bilinear for a “neutral” improvement (think N64), xBR/Jinc2 for smart upscaling (subjective improvement).
CROP MODE psx.duckstation_CropMode Zooms in the display to hide black borders. Not all PSX games have the same sized black borders. Values: None, Overscan, Borders. Overscan, unless you know the game has thicker borders than usual.
WIDESCREEN HACK psx.duckstation_widescreen_hack Enhancement. Widescreen hack. Very glitchy. Only works when using a 16:9 video mode and with bezels (decorations) disabled. 0 for disabled, 1 for enabled. 0 Recommended to use game patches instead. Some games natively support 16:9 in their in-game options.
CONSOLE REGION psx.duckstation_region Changes the region of the emulated console. Region-locking is disabled so setting this isn't necessary, but some games will run at weird framerates if using out-of-region consoles. Values: PAL, NTSC-U or NTSC-J. Auto, as in delete the line. Duckstation will detect and switch to the right region unless specified otherwise.
FORCE 60HZ psx.duckstation_60hz Enhancement. Forces 50Hz PAL games to run at 60Hz. Has issues with certain games that tie framerate to logic, but most games (ones that use a variable FPS) should be fine. 0
CUSTOM TEXTURES psx.duckstation_custom_textures Enhancement. Uses the hi-res texture pack for the game, if any. 0 for off, normal to load from disk as needed, preload to load textures into RAM first (increases boot time). 0, though safe to leave on if no texture pack is present.
RUMBLE psx.duckstation_rumble Activates rumble on supported controllers. Requires the Dualshock controller, Namco GunCon or NeGcon and a compatible game. 1 Safe to leave enabled.
DPAD TO JOYSTICK psx.duckstation_digitalmode Activates Joystick to D-pad, allowing the Joystick to function as a virtual D-pad. Useful for games that only support the digital controller. 1 to enable. 0 Turn on for games that use digital only.
MULTITAP psx.duckstation_multitap Enables multitap for the specified port(s). Values: Disabled, Port1Only, Port2Only or BothPorts. Disabled, not all games utilized it and may have issues with it on. Generally safe to leave on for port 2, though.
CONTROLLER 1 TYPE psx.duckstation_Controller1 Refer to Controls. Values: None, DigitalController, AnalogController, AnalogJoystick, NamcoGunCon, PlayStationMouse or NeGcon. DigitalController, unless you know your game supports a later controller.
CONTROLLER 2 TYPE psx.duckstation_Controller2 Same as above but for port 2. Same as above.

Other configuration settings must be configured from within DuckStation's standalone emu-config ([F1] on the systems list → Applications).

Beetle PSX is a standalone fork of Mednafen PSX to the Libretro API. Offers a lot of options to enhance graphics and geometry. Highly recommended for x86_64 systems with a decent GPU.

Configuration

ES option name and batocera.conf line Description Recommendation
SHOW BIOS BOOTLOGO psx.beetle_psx_skip_bios Enhancement. Skip the BIOS animation when starting content. disabled. Can be enabled but some games may have issues, notably copy protected PAL games.
OVERCLOCKING (HEAVY CPU) psx.beetle_psx_cpu_freq_scale Enhancement. Enable overclocking (or underclocking) of the emulated PSX's CPU. The default frequency of the MIPS R3000A-compatible 32-bit RISC CPU is 33.8688 MHz; running at higher frequencies can eliminate slowdown and improve frame rates in certain games at the expense of increased performance requirements. Values: 50%, 60%, 70% all the way up to 160%. Exception: 100%(native). 100%(native). Overclocking can lead to audio and video desynchronization on certain games, underclocking can improve performance on weak devices.
VIDEO RESOLUTION psx.beetle_psx_internal_resolution Enhancement. Increases the rendering resolution for 3D geometry. 2D elements are generally unaffected by this setting from the core's perspective. Significant performance cost. Values: 1x(native), 2x, 4x, 8x or 16x. 1x(native). Although not exact, set to 4x for 1080p resolution.
WIDESCREEN HACK psx.beetle_psx_widescreen_hack Enhancement. Forces content to be rendered with an aspect ratio of 16:9. Produces best results with fully 3D games. Can cause graphical glitches or alignment/stretching issues in games that mix 3D and 2D elements. disabled Recommended to use game patches instead. Some games natively support 16:9 in their in-game options.
FRAME DUPING (SPEED UP) psx.beetle_psx_frame_duping Enhancement. When enabled, provides a small performance increase by redrawing/reusing the last rendered frame (instead of presenting a new one) if the content of the current frame is unchanged based on the internal fps heuristic. disabled, enabling may cause inaccurate behavior or lost animation frames.
CPU DYNAREC (SPEED UP) psx.beetle_psx_cpu_dynarec Dynamically recompile CPU instructions to native instructions. Much faster than interpreter, but CPU timing is less accurate, and may have bugs. Extreme performance cost if disabled. Values: disabled for native interpreter, execute for max performance, execute_once for cycle-timing check or run_interpreter for lightrec interpreter. disabled, only enable if on a weak device.
DYNAREC CODE INVALIDATION psx.beetle_psx_dynarec_invalidate Switches between full invalidation mode and DMA only mode. DMA only mode is slightly faster, however some games require full invalidation to run correctly. This option has no effect when beetle_psx_cpu_dynarec is not enabled. Values: full or dma full, only use dma on weak devices.
MULTITAP psx.multitap_mednafen Enables/Disables multitap functionality and allows up to 8 players. Values: disabled, port1, port2, port12 for two multi-taps. disabled, not all games utilized it and may have issues with it on. Generally safe to leave on for port 2, though.
CONTROLLER 1 TYPE psx.beetle_psx_controller1 Refer to Controls. Values: 1 for digital controller, 261 for analog controller, 517 for dualshock controller, 773 for analog flystick, 260 for Namco GunCon, 1029 for neGcon or 258 for PlayStation Mouse. 1, unless you know your game supports a later controller.
CONTROLLER 2 TYPE psx.beetle_psx_controller2 Same as above but for port 2. Same as above.

Other configuration settings must be configured from RetroArch's Quick Menu (Hotkey+South button (B Snes)).

PCSX ReARMed is an optimized PCSX fork for ARM based systems like the Raspberry Pi, but also works on x86.

Configuration

ES option name and batocera.conf line Description Recommendation
SHOW BIOS BOOTLOGO psx.show_bios_bootlogo Shows the BIOS boot animation when starting the game. In PCSX ReARMed, this can cause some games to break when turned on. disabled PCSX uses an emulated BIOS by default, running this emulated BIOSs' animation can cause some games to malfunction. Games that require the proper BIOS animation require an official BIOS present.
FRAMESKIP psx.frameskip_pcsx Skip frames to improve performance. Can cause motion sickness if set to high values. Values: 0, 1, 2 or 3. 0, can cause motion sickness if set high. Only use if the game is unplayable without it.
ENHANCED RESOLUTION (SLOWER) psx.neon_enhancement Enhancement. Doubles the internal rendering resolution. Extreme performance cost. Values: disabled, enabled or enabled_with_speedhack. disabled for native, enabled if your system is strong enough. enabled_with_speedhack is not recommended as it can cause glitches.
MULTITAP psx.multitap_pcsx Enables multitap on the selected port. Values: disabled, port1, port2 or port12 for both ports. disabled, most games don't utilize multitap, but is generally safe to leave in port2.
ADDITIONAL GAME FIXES psx.game_fixes_pcsx Enables a per-game fix. Values: Capcom_fighting, Chrono_Chross, Dark_Forces, Diablo_Music, Lunar, InuYasha_Sengoku, Pandemonium or Parasite_Eve. Auto, as in erase the line. This shouldn't need to be changed if the game has been successfully scraped.
CONTROLLER 1 TYPE psx.controller1_pcsx Refer to Controls. Values: 1 for digital, 261 for analog controller, 517 for dualshock controller, 260 for Namco GunCon, 773 for neGcon, 258 for PlayStation Mouse. 1 unless you know your game supports a later controller.
CONTROLLER 2 TYPE psx.controller2_pcsx Same as above but for port 2. 1 As above.

Other configuration settings must be configured from RetroArch's Quick Menu (Hotkey+South button (B Snes)).

SwanStation is the libretro version of the standalone emulator DuckStation.

SwanStation shares its configuration with Duckstation, but omits threaded_presentation, vsync, frameskip, region, custom_textures, rumble, digital_mode and multitap (correct as of v31). These settings can still be adjusted with RetroArch's Quick Menu (Hotkey+South button (B SNES)).

The Konami DDR controller. The experience of stepping on mashed potatoes.

The PlayStation had many types of controllers throughout its life, starting with the digital controller which only had a D-pad, face buttons and shoulder buttons, then the Analog controller which added two joysticks to the center and finally the DualShock which added vibration. A game needs to explicitly support a controller to function with it, most supported at least the digital controller. The Analog and Dualshock controller had an “Analog” button to switch between being its native self or a virtual digital controller so it could function with older games; this is generally not emulated yet so the best recommendation is to stick with digital controllers unless you know your game explicitly supports a later one. By default, Batocera will enable Joystick to D-pad so that the joystick will function as a virtual D-pad.

The PlayStation also had alternative controllers such as the dance mat (same as the digital controller) or the analog joystick (same as the analog controller). Other controllers such as the Namco GunCon, the neGcon or the PlayStation Mouse would use their own interface, requiring the game to specifically support it.

The default button mapping to the PSX controller is as follows:

Libretro's default PS3 controller mapping.

  • systems/psx.1631532894.txt.gz
  • Last modified: 5 years ago
  • by atari