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
Enhanced port of standalone Mednafen PSX to libretro.
Why use this core?Link
How to get and install the Beetle PSX HW core:Link
Start up RetroArch. Inside the main menu, go to 'Online Updater'.
Just to make sure we have the latest info files, select 'Update Core Info FIles'. Wait until this is done. Then, select 'Core Updater'.
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
Go back to RetroArch's main menu screen. Select 'Load Content'.
Browse to the folder that contains the content you want to run.
Select the content that you want to run.
If you are asked which core to select, choose 'PlayStation (Beetle PSX HW)'.
The content should now start running!
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:
RetroArch database(s) that are associated with the Beetle PSX HW core:
Required or optional firmware files go in RetroArch's system directory.
|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.
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)
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:
1 2 3
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.
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:
1 2 3
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
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|
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|
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.
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)
- Software framebuffer (Off/On)
- Adaptive smoothing (Off/On)
Adapative smoothing - Off
Adaptive smoothing - On
- Internal GPU resolution (1x(native)/2x/4x/8x/16x/32x)
Internal GPU Resolution - 1x
Internal GPU Resolution - 2x
- Texture filtering (nearest/SABR/xBR/bilinear/3-point/JINC2)
- Internal color depth (dithered 16bpp (native)/32bpp)
- Wireframe mode (Off/On)
Wireframe mode - On
- Display full VRAM (Off/On)
Display full VRAM - On
- PGXP operation mode (Off/memory only/memory + CPU)
- PGXP vertex cache (Off/On)
- PGXP perspective correct texturing (Off/On)
- Widescreen mode hack (Off/On)
Widescreen mode hack - Off
Widescreen mode hack - On
- Frame duping (speedup) (Off/On)
- CPU Overclock (Off/On)
Gets rid of memory access latency and makes all GTE instructions have 1 cycle latency.
- Skip BIOS (Off/On)
Skip BIOS - Off
- Dithering pattern (1x(native)/internal resolution/Off):
- Display internal FPS (Off/On)
Display internal FPS - On
- Initial scanline (0 to 40 in increments of 1. 0 is default)
- Last scanline (210 to 239 in increments of 1. 239 is default)
- Initial scanline PAL (0 to 40 in increments of 1. 0 is default)
- Last scanline PAL (260 to 287 in increments of 1. 287 is default)
- Crop Overscan (Off/On)
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)
- DualShock Analog button toggle (Off/On)
- Port 1: Multitap enable (Off/On)
- Port 2: Multitap enable (Off/On)
- Gun Cursor (Cross/Dot/Off)
Gun Cursor - Cross
Gun Cursor - Dot
Gun Cursor - Off
- Mouse Sensitivity (5% to 200% in increments of 5%. 100% is default)
- CD Access Method (restart) (sync/async/precache)
- Memcard 0 method (libretro/mednafen)
- Enable memory card 1 (Off/On)
- Shared memcards (restart) (Off/On)
|Memcard slot 0||Memcard slot 1|
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)
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 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
Joypad and analog device type tableLink
|User 1 - 8 Input descriptors||RetroPad Inputs||PlayStation Controller||DualShock||Analog Controller||Analog Joystick||neGcon|
|Cross||Analog button I|
|Square||Analog button II|
|D-Pad Up||D-Pad Up|
|D-Pad Down||D-Pad Down|
|D-Pad Left||D-Pad Left|
|D-Pad Right||D-Pad Right|
|L1||Left shoulder button (analog)|
|R1||Right shoulder button (digital)|
|L2||Analog button II|
|R2||Analog button I|
|Left Analog X||Left Joystick X||Twist|
|Left Analog Y||Left Joystick Y|
|Right Analog X||Right Joystick X|
|Right Analog Y||Right Joystick Y|
Mouse device type tableLink
|User 1 - 8 Input descriptors||RetroMouse Inputs||Mouse|
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 Aux A||A||Aux|
|Gun Aux B||B|