PlayStation (Beetle PSX HW)Link

Contribute to this documentationLink

In order to propose improvements to this document, visit its corresponding source page on github. Changes are proposed using "Pull Requests."

There is a To-Do list for libretro/docs here

You can submit suggestions or issues regarding documentation at the libretro/docs issue tracker or in our forum thread.


Enhanced port of standalone Mednafen PSX to libretro.

Why use this core?Link

Awaiting description.

How to get and install the Beetle PSX HW core:Link

  1. Start up RetroArch. Inside the main menu, go to 'Online Updater'.

  2. Just to make sure we have the latest info files, select 'Update Core Info FIles'. Wait until this is done. Then, select 'Core Updater'.

  3. Browse through the list and select 'PlayStation (Beetle PSX HW)'.

After this has finished downloading, the core should now be ready for use!

How to start (after installation):Link

  1. Go back to RetroArch's main menu screen. Select 'Load Content'.

  2. Browse to the folder that contains the content you want to run.

  3. Select the content that you want to run.

  4. If you are asked which core to select, choose 'PlayStation (Beetle PSX HW)'.

The content should now start running!


See alsoLink



A summary of the licenses behind RetroArch and its cores have found here.

The Beetle PSX HW core is licensed under


Content that can be loaded by the Beetle PSX HW core have the following file extensions:

  • .cue
  • .toc
  • .m3u
  • .ccd
  • .exe
  • .pbp
  • .chd


RetroArch database(s) that are associated with the Beetle PSX HW core:


Required or optional firmware files go in RetroArch's system directory.

Filename Description md5sum
scph5500.bin PS1 JP BIOS - Required for JP 8dd7d5296a650fac7319bce665a6a53c
scph5501.bin PS1 US BIOS - Required for US 490f666e1afb15b7362b406ed1cea246
scph5502.bin PS1 EU BIOS - Required for EU 32736f17079d0b2b7024407c39bd3050


RetroArch-level settings or features that the Beetle PSX HW core respects.

Feature Supported
Core Options
RetroArch Cheats
Native Cheats
Multi-Mouse -
Disk Control
Crop Overscan


The Beetle PSX HW core's directory name is 'Beetle PSX HW'

The Beetle PSX HW core saves/loads to/from these directories.

RetroArch's Save directory

  • Memory cards

RetroArch's State directory

  • 'content-name'.state# (State)

Geometry and timingLink

  • The Beetle PSX HW core's internal FPS is (FPS)
  • The Beetle PSX HW core's internal sample rate is (Rate)
  • The Beetle PSX HW core's core provided aspect ratio is (Ratio)

Loading contentLink

Beetle PSX HW needs a cue-sheet that points to an image file. A cue sheet, or cue file, is a metadata file which describes how the tracks of a CD or DVD are laid out.

If you have e.g. foo.bin, you should create a text file and save it as foo.cue. Most PS1 games are single-track, so the cue file contents should look like this:


 FILE "foo.bin" BINARY
  TRACK 01 MODE1/2352
   INDEX 01 00:00:00

After that, you can load the foo.cue file in RetroArch with the Beetle PSX HW core.


Certain PS1 games are multi-track, so their .cue files might be more complicated.

Playing PAL copy protected gamesLink

PAL copy protected games need a SBI Subchannel file next to the bin/cue files in order to get past the copy protection.

  • Ape Escape (Europe).bin
  • Ape Escape (Europe).cue
  • Ape Escape (Europe).sbi


For proper PAL game compatibility, the 'Skip BIOS' core option needs to be set to off.

Multiple-disk gamesLink

If foo is a multiple-disk game, you should have .cue files for each one, e.g. foo (Disc 1).cue, foo (Disc 2).cue, foo (Disc 3).cue.

To take advantage of Beetle PSW HW's Disk Control feature for disk swapping, an index file (a m3u file) should be made.

Create a text file and save it as foo.m3u. Then enter your game's .cue files on it. The m3u file contents should look something like this:


foo (Disc 1).cue
foo (Disc 2).cue
foo (Disc 3).cue

After that, you can load the foo.m3u file in RetroArch with the Beetle PSX HW core.

Here's another m3u example done with Valkryie Profile


Adding multi-track games to a RetroArch playlist is recommended. (Manually add an entry a playlist that points to foo.m3u)

Game compressionLink

Alternatively to using cue sheets with .bin files, you can convert your games to .pbp (Playstation Portable update file) to reduce file sizes and neaten up your game folder. A recommended .pbp convert tool is PSX2PSP.

If converting a multiple-disk game, all disks should be added to the same .pbp file, rather than making a .m3u file for them.

Most conversion tools will want a single .bin file for each disk. If your game uses multiple .bin files (tracks) per disk, you will have to mount the cue sheet to a virtual drive and re-burn the images onto a single track before conversion.


RetroArch does not currently have .pbp database due to variability in users' conversion methods. All .pbp games will have to be added to playlists manually.


For game savedata storage, the PSX console used memory cards. The PSX console had two slots for memory cards.

In this doc, the first memory card slot will be referred to as 'Memcard slot 0' and the second slot will be referred to as 'Memcard slot 1'.

For memory card functionality and usage, the Beetle PSX HW core will either use the Libretro savedata format or the Mednafen savedata format.

Libretro savedata format Mednafen savedata format
gamename.srm gamename.slot#.mcr

By default, the Beetle PSX HW core will use Libretro's savedata format for Memcard slot 0 and Mednafen's savedata format for Memcard slot 1.

Memcard slot 0 Memcard slot 1
gamename.srm gamename.1.mcr


Memory card behavior can be controlled with the following core options (Memcard 0 method, Enable memory card 1, Shared memcards).

By default, the filenames of the Memcard savedata will match the loaded cue or m3u or pbp filename, like this:

  • Loaded content: Breath of Fire III (USA).cue

  • Memcard slot 0: Breath of Fire III (USA).srm

  • Memcard slot 1: Breath of Fire III (USA).1.mcr


  • Loaded content: Final Fantasy VII (USA).m3u

  • Memcard slot 0: Final Fantasy VII (USA).srm

  • Memcard slot 1: Final Fantasy VII (USA).1.mcr


  • Loaded content: Wild Arms 2 (USA).pbp

  • Memcard slot 0: `Wild Arms 2 (USA).srm

  • Memcard slot 1: `Wild Arms 2 (USA).1.mcr


To import your old memory cards from other emulators, you need to rename them to either the Libretro savedata format or the Mednafen savedata format.


Keep in mind that save states also include the state of the memory card; carelessly loading an old save state will OVEWRITE the memory card, potentially resulting in lost saved games. You can set the 'Don't overwrite SaveRAM on loading savestate' option in RetroArch's Saving settings to On to prevent this.

Core optionsLink

The Beetle PSX HW core has the following option(s) that can be tweaked from the core options menu. The default setting is bolded.

  • Renderer (restart) (vulkan/opengl/software)

Choose which video renderer will be used. Software is the most accurate renderer. The OpenGL and Vulkan renderers will enable and/or speedup enhancements like upscaling and texture filtering. The OpenGL and Vulkan renderers must be used with its corresponding video driver in RetroArch's Driver settings. Also, Hardware Shared Context must be enabled in RetroArch's Core settings.

  • Software framebuffer (Off/On)

If off, the software renderer will skip some steps. Potential speedup. Causes bad graphics when doing framebuffer readbacks.

  • Adaptive smoothing (Off/On)

When upscaling, smooths out 2D elements while keeping 3D elements sharp. Only for the Vulkan renderer at the moment.

Adapative smoothing - Off

Adaptive smoothing - On

  • Internal GPU resolution (1x(native)/2x/4x/8x/16x/32x)

Modify the resolution.

Internal GPU Resolution - 1x

Internal GPU Resolution - 2x

  • Texture filtering (nearest/SABR/xBR/bilinear/3-point/JINC2)

Per-texture filtering. Only for the OpenGL renderer at the moment.







  • Internal color depth (dithered 16bpp (native)/32bpp)

PSX had 16bpp depth, Beetle PSX HW can go up to 32bpp. Only for the OpenGL and Vulkan renderers at the moment. The Vulkan renderer always uses 32bpp.

  • Wireframe mode (Off/On)

Shows only the outlines of polygons. Only for the OpenGL renderer. For debug use.

Wireframe mode - On

  • Display full VRAM (Off/On)

Everything in VRAM is drawn on screen. For debug use.

Display full VRAM - On

  • PGXP operation mode (Off/memory only/memory + CPU)

When on, floating point coordinates will be used for vertex positions, to avoid the PSX polygon jitter. 'memory + cpu' mode can further reduce jitter at the cost of performance and geometry glitches.

  • PGXP vertex cache (Off/On)

Maintains a cache for vertices. May result in better performance but can result in graphics glitches in most games.

  • PGXP perspective correct texturing (Off/On)

Original PSX did affine texture mapping, resulting in e.g. crooked lines across walls. This fixes it.

  • Widescreen mode hack (Off/On)

If on, renders in 16:9. Works best on 3D games.

Widescreen mode hack - Off

Widescreen mode hack - On

  • Frame duping (speedup) (Off/On)

Redraws/reuses the last frame if there was no new data.

  • CPU Overclock (Off/On)

Gets rid of memory access latency and makes all GTE instructions have 1 cycle latency.

  • Skip BIOS (Off/On)

Self-explanatory. Some games have issues when this core option is enabled (Saga Frontier, PAL copy protected games, etc).

Skip BIOS - Off

  • Dithering pattern (1x(native)/internal resolution/Off):

If off, disables the dithering pattern the PSX applies to combat color banding. Only for the OpenGL and Software renderers. Vulkan always disables the pattern.

  • Display internal FPS (Off/On)

Shows the frame rate at which the emulated PSX is drawing at. Onscreen Notifications must be enabled in the RetroArch Onscreen Display Settings.

Display internal FPS - On

  • Initial scanline (0 to 40 in increments of 1. 0 is default)

Sets the first scanline to be drawn on screen.

  • Last scanline (210 to 239 in increments of 1. 239 is default)

Sets the last scanline to be drawn on screen.

  • Initial scanline PAL (0 to 40 in increments of 1. 0 is default)

Sets the first scanline to be drawn on screen for PAL systems.

  • Last scanline PAL (260 to 287 in increments of 1. 287 is default)

Sets the last scanline to be drawn on screen for PAL systems.

  • Crop Overscan (Off/On)

Crop out the potentially random glitchy video output that would have been hidden by the bezel around the edge of a standard-definition television screen.

Crop Overscan - On

Crop Overscan - Off

  • Additional Cropping (Off/1 px/2 px/3 px/4 px/5 px/6 px/7 px/8 px)


  • Offset Cropped Image (Off/1 px/2 px/3 px/4 px/-4 px/-3 px/-2 px/-1 px)


  • Analog self-calibration (Off/On)

When enabled, monitors the max values reached by the input, using it as a calibration heuristic which then scales the analog coordinates sent to the emulator accordingly. For best results, rotate the sticks at max amplitude for the algorithm to get a good estimate of the scaling factor, otherwise it will adjust while playing.

  • DualShock Analog button toggle (Off/On)

Toggles the Analog button from DualShock controllers, if disabled analogs are always on, if enabled you can toggle their state by pressing and holding START+SELECT+L1+L2+R1+R2.

  • Port 1: Multitap enable (Off/On)

Enables/Disables multitap functionality on port 1.

  • Port 2: Multitap enable (Off/On)

Enables/Disables multitap functionality on port 2.

  • Gun Cursor (Cross/Dot/Off)

Choose the cursor for the 'Guncon / G-Con 45' and 'Justifier' Device Types. Setting it to off disables the crosshair.

Gun Cursor - Cross

Gun Cursor - Dot

Gun Cursor - Off

  • Mouse Sensitivity (5% to 200% in increments of 5%. 100% is default)

Configure the 'Mouse' Device Type's sensitivity.

  • CD Access Method (restart) (sync/async/precache)

The precache setting loads the complete image in memory at startup. Can potentially decrease loading times at the cost of increased startup time.

  • Memcard 0 method (libretro/mednafen)

Choose the savedata format used for Memcard 0 (libretro or mednafen). Look above at the Saves section for an explanation regarding the libretro and mednafen formats.

  • Enable memory card 1 (Off/On)

Enable or disables Memcard slot 1. When disabled, games cannot save/load to Memcard slot 1. Memcard 1 must be enabled for game 'Codename Tenka'.

  • Shared memcards (restart) (Off/On)

Games will share and save/load to the same memory cards.

Memcard slot 0 Memcard slot 1
mednafen_psx_libretro_shared.0.mcr mednafen_psx_libretro_shared.1.mcr


The 'Memcard 0 method' core option needs to be set to 'mednafen' for the 'Shared memcards' core option to function properly.

  • Increase CD loading speed (2x (native)/4x/6x/8x/10x/12x/14x)

An experimental feature, may not work correctly in all games. Some games may break if you set them past a certain speed. Can greatly reduce the loading times on games.


Device typesLink

The Beetle PSX HW core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s):

User 1 - 8 device typesLink

  • None - Input disabled.
  • PlayStation Controller - Joypad - PlayStation Controller (SCPH-1080)
  • DualShock - Joypad - DualShock (SCPH-1200)
  • Analog Controller - Joypad - PlayStation Dual Analog Controller(SCPH-1180)
  • Analog Joystick - Joypad - PlayStation Analog Joystick (SCPH-1110)
  • Guncon / G-Con 45 - Lightgun - Namco Gun Controller (SLEH-00007)
  • Justifier - Lightgun - Konami Justifier lightgun peripheral (SLEH-00005, SLUH-00017)
  • Mouse - Mouse - PlayStation Mouse (SCPH-1090, SCPH-1030)
  • neGcon - Joypad - Namco third party controller

Rumble supportLink

Rumble only works in the Beetle PSX HW core when

  • The content being ran has rumble support.
  • The joypad input driver being used has rumble support. (e.g. Xinput)
  • The joypad device being used has rumble support.
  • The corresponding user's device type is set to DualShock

Multitap supportLink

'Port 1: Multitap enable' and 'Port 2: Multitap enable' core options.

Controller tablesLink

Joypad and analog device type tableLink

User 1 - 8 Input descriptors RetroPad Inputs PlayStation Controller DualShock Analog Controller Analog Joystick neGcon
Cross RetroPad_B PS3_Cross PS3_Cross PS3_Cross PS3_Cross Analog button I
Square RetroPad_Y PS3_Square PS3_Square PS3_Square PS3_Square Analog button II
Select RetroPad_Select PS3_Select PS3_Select PS3_Select PS3_Select
Start RetroPad_Start PS3_Start PS3_Start PS3_Start PS3_Start Start
D-Pad Up RetroPad_Dpad PS3_Dpad_Up PS3_Dpad_Up PS3_Dpad_Up PS3_Dpad_Up D-Pad Up
D-Pad Down RetroPad_Dpad PS3_Dpad_Down PS3_Dpad_Down PS3_Dpad_Down PS3_Dpad_Down D-Pad Down
D-Pad Left RetroPad_Dpad PS3_Dpad_Left PS3_Dpad_Left PS3_Dpad_Left PS3_Dpad_Left D-Pad Left
D-Pad Right RetroPad_Dpad PS3_Dpad_Right PS3_Dpad_Right PS3_Dpad_Right PS3_Dpad_Right D-Pad Right
Circle RetroPad_A PS3_Circle PS3_Circle PS3_Circle PS3_Circle A
Triangle RetroPad_X PS3_Triangle PS3_Triangle PS3_Triangle PS3_Triangle B
L1 RetroPad_L1 PS3_L1 PS3_L1 PS3_L1 PS3_L1 Left shoulder button (analog)
R1 RetroPad_R1 PS3_R1 PS3_R1 PS3_R1 PS3_R1 Right shoulder button (digital)
L2 RetroPad_L2 PS3_L2 PS3_L2 PS3_L2 PS3_L2 Analog button II
R2 RetroPad_R2 PS3_R2 PS3_R2 PS3_R2 PS3_R2 Analog button I
L3 RetroPad_L3 PS3_L3
R3 RetroPad_R3 PS3_R3
Left Analog X RetroPad_Left_Stick PS3_Left_Stick PS3_Left_Stick Left Joystick X Twist
Left Analog Y RetroPad_Left_Stick PS3_Left_Stick PS3_Left_Stick Left Joystick Y
Right Analog X RetroPad_Right_Stick PS3_Right_Stick PS3_Right_Stick Right Joystick X
Right Analog Y RetroPad_Right_Stick PS3_Right_Stick PS3_Right_Stick Right Joystick Y

Mouse device type tableLink

User 1 - 8 Input descriptors RetroMouse Inputs Mouse
Mouse pointer
Left buttpn
Right button

Lightgun device type tableLink

User 1 - 8 Input descriptors RetroLightgun Inputs Guncon / G-Con 45 Justifier
Gun Guncon / G-Con 45 pointer Justifier pointer
Gun Trigger Trigger Trigger
Gun Reload Reload Reload
Gun Aux A A Aux
Gun Aux B B
Gun Start Start


Awaiting description.