🥑 PlayStation 1 emulator
Go to file
2019-03-13 19:16:17 +01:00
.appveyor ci: fix Discord notifications 2019-01-13 13:18:45 +01:00
.github project: neutralized warnings in Visual Studio builds 2018-08-29 03:14:36 +02:00
.travis project: refactored Premake, macOS builds 2019-01-20 14:55:37 +01:00
data opengl: copy vram to screen on begin (WIP) 2019-03-13 19:15:18 +01:00
docs project: update README.md 2018-03-02 00:06:21 +01:00
externals spu: read IRQ address 2019-03-13 19:15:17 +01:00
premake externals: added fmt lib 2019-01-25 19:37:59 +01:00
src project: added Precompiled headers 2019-03-13 19:16:17 +01:00
tests tests: remove rtps unit tests (use auto tests) 2019-01-13 11:12:02 +01:00
.appveyor.yml project: refactored Premake, macOS builds 2019-01-20 14:55:37 +01:00
.clang-format gte: refactored read/write methods 2018-05-16 22:15:10 +02:00
.clang-tidy project: sample .clang-tidy config 2018-02-23 22:33:59 +01:00
.gitignore project: XCode builds fix 2018-11-11 20:21:28 +01:00
.gitmodules externals: added fmt lib 2019-01-25 19:37:59 +01:00
.travis.yml project: refactored Premake, macOS builds 2019-01-20 14:55:37 +01:00
CONTRIBUTING.md Folder structure 2015-07-11 13:22:42 +02:00
LICENSE Folder structure 2015-07-11 13:22:42 +02:00
premake5.lua project: added Precompiled headers 2019-03-13 19:16:17 +01:00
README.md project: update Readme, add build instructions and requirements #43 2019-01-21 09:39:58 +01:00

Avocado

A Modern Playstation 1 emulator.

If you have any questions just catch me on Twitter (@JaCzekanski) or create an Issue. There is also Discord server.

Compability

See Avocado compatibility list

Changelog

8.12.2018 - created Compatibility list webapp

19.11.2018 - added .chd file support

9.11.2018 - XA-ADPCM (streaming audio) and Red Book audio support - music should play in most games, SPU samples interpolation (sounds less harsh), Pitch modulation support (used by few games), refactored CDROM reading and cue parsing subsystems, various fixes, hardware (OpenGL) rendering

27.08.2018 - Support for digital controller, DualShock (without vibrations) and mouse. Two controllers are supported (no multitap for now)

19.08.2018 - Memory card support

11.08.2018 - Partial SPU implementation - sound working

Status

Build Status Download
Travis CI (Linux) Build Status
Travis CI (macOS) Build Status
AppVeyor (Windows x86) Build status Windows x86 - develop
AppVeyor (Windows x64) Build status Windows x64 - develop

Despite this emulator being in early development, some 3D games can run. Game compability list

Currently audio is hard synced to NTSC (60Hz) (running PAL games will make audio stutter), MDEC is missing (black screen instead of movies). The timer implementation does not function properly (games fail to boot or run at wrong speed). Many games won't boot or crash shortly after booting.

Requirements

  • OS: Windows 7 or later, macOS 10.13 or later, Linux
  • GPU: Graphics card supporting OpenGL 3.2
  • CPU: AVX compatible x64 processor or any x86 processor

Notes

Avocado focuses on supporting relatively modern hardware (2010 and forwards) and non-legacy OSes.

Emulator is currently single-threaded - if you have multicore CPU you will not benefit from it. Single thread performance is what really matters.

Currently Avocado requires OpenGL 3.2. In the future this limitation will be lifted for software rendering.

Running

Avocado requires the BIOS from real console in the data/bios directory. Selection of a BIOS rom will be required on the first run. The rom can be changed under Options->BIOS or by modifying the config.json file.

Avocado doesn't support fast booting. UniROM can be used as a work around. Place the .rom file in the data/bios directory and modify config.json:

"extension": "data/bios/unirom_caetlaNTSC_plugin.rom"

Press the Start button (Enter by default) to fastboot, or R2 (keypad *) to slowboot a game. You can run the included Playstation firmware replacement Caetla with the Select button (Right shift) then run the .exe directly from the disk.

To load a .cue/.bin/.img/.chd file just drag and drop it.

Controls

  • Space - pause/resume emulation
  • F1 - hide GUI
  • F2 - soft reset
  • Shift-F2 - hard reset
  • F7 - single frame
  • Tab - disable framelimiting
  • Q - toggle full VRAM preview

Configure controls under Options->Controller menu.

Build

Windows

Requirements:

> git clone https://github.com/JaCzekanski/Avocado.git
> cd Avocado
> git submodule update --init --recursive
> premake5 vs2017

# Open Visual Studio solution and build it

See appveyor.yml in case of problems.

Linux

Requirements:

> sudo apt update
> sudo apt install libsdl2-dev
> git clone https://github.com/JaCzekanski/Avocado.git
> cd Avocado
> git submodule update --init --recursive
> premake5 gmake
> make config=release_x64 -j4

# Running
> ./build/release_x64/avocado

See .travis/linux/build.sh in case of problems.

macOS

Requirements:

> brew update
> brew install sdl2
> git clone https://github.com/JaCzekanski/Avocado.git
> cd Avocado
> git submodule update --init --recursive
> premake5 gmake
> make config=release_x64 -j4

# Running
> ./build/release_x64/avocado.app

See .travis/macos/build.sh in case of problems.

Bugs

Use GitHub issue tracker to file bugs. Please attach Game ID, screenshots/video, BIOS and build version.

See Game compatibility list before creating a bug issue.