The first public release of PCSX, on 7 September 2000, came with a warning. “The emulator needs the bios file to run, the scph1001.bin in particular,” the team wrote, “which you won’t find in this site for usual copyright reasons. Without it, Pcsx will crash.” Every PlayStation starts from a 512 KB ROM that Sony wrote. Its hardware manual says the ROM holds the “OS kernel and boot loader”, and it told developers that “access to ROM is prohibited and addresses are not disclosed”. Games still call the routines inside it, so an emulator has to supply them. PCSX began by borrowing them from a copy of the real ROM. Two years later it could stand in for them with its own code.
Fast facts
- Started: by a programmer known as NoComp, who wrote that he began the project in mid-December 1999.
- First release: 7 September 2000, for Windows; Linux followed in February 2001.
- Team: NoComp, Shadow, linuzappz, Nik3d and AkumaX, with graphics plugins by Pete Bernert.
- Licence: GNU GPL from version 1.0 in January 2002.
- BIOS: the first release needed a real one; an internal “HLE BIOS” arrived experimentally in 1.0 and was usable from 1.3 in July 2002.
- Forks: PCSX-df, PCSX-Reloaded, PCSX ReARMed and PCSX-Redux.
- Successor: its lead developers went on to write PlayStation 2 emulator PCSX2.
Plugins and a small team
PCSX was a team effort from the start. The news page records NoComp starting it by converting his own Nintendo 64 emulator, then leaving; Shadow leading it by March 2000; AkumaX running the website; and linuzappz joining in early 2001 to write the Linux version. In 2000 the site announced that Pete Bernert, known for his graphics plugins, had officially joined.
Those plugins were the design’s core idea. PCSX used the plugin interface of PSEmu Pro, an earlier PlayStation emulator, so graphics, sound, controllers and the CD drive were each handled by a separate library. Anyone’s compatible plugin would work: before the first release, the site boasted that PCSX already supported Direct3D, Glide, OpenGL and software rendering through them. The team spent much of 2000 running homebrew demos, because the CD-ROM emulation needed for commercial games was not ready. By the spring it counted 53 working demos, and by the September release about 100.
The BIOS problem
The first release needed Sony’s code, and users had to supply it themselves: the team would not host it “for usual copyright reasons”. The Vault’s entry on Sony vs Connectix covers how that question reached a courtroom: in 1999 a preliminary injunction ordered Connectix to stop shipping its Virtual Game Station emulator and “to stop development work on all products that used Sony’s BIOS”, as Edge reported.
PCSX’s answer was to imitate the BIOS instead. Version 1.0, released on 5 January 2002, listed an “HLE bios (experimental)”; HLE, high-level emulation, means the emulator catches each call a game makes to the BIOS and runs its own routine with the same effect, without executing Sony’s code. By version 1.3 in July 2002, linuzappz wrote, “the Internal HLE Bios, this means that you may not need a real psx bios for using Pcsx”. The same code lives on in PCSX’s descendants. PCSX-Reloaded’s README calls it “a very capable Internal HLE BIOS that can run many games”, while noting that a real BIOS image “can improve compatibility”.
Open source, then PCSX2
At Christmas 2001 linuzappz announced that PCSX “will became open source”. Version 1.0 came “with free source code, licensed under the gpl license”, on SourceForge. Versions 1.1 to 1.4 followed through 2002, adding a memory card manager, network play and a faster recompiler, and linuzappz released a Dreamcast port by Mark Grilenkov.
By then linuzappz and Shadow had begun work on a PlayStation 2 emulator. On 17 September 2003 linuzappz posted that he had not “coded for pcsx in some months”, because of “pcsx2, work, life and so on”, and invited anyone who wanted to continue to get in touch.
PCSX2 is a separate program. Its developers’ own history says the project started around the middle of 2001 with just linuzappz and Shadow, and at first could only run simple homebrew. Its README says it has been in development for more than 20 years and now runs most games at full speed, and it still requires “a BIOS dump from a legitimately-owned PS2 console”. PCSX2 2.0, released in July 2024, dropped the plugin system that both emulators had inherited from PSEmu Pro.
The forks
Others took up PCSX:
- PCSX-df, begun by Ryan Schultz in October 2005, was developed mainly for Linux.
- PCSX-Reloaded, begun in 2009, is described in its README as “a forked version of the dead PCSX emulator, with a nicer interface and several improvements to stability and functionality”. It ran on Windows, Linux and macOS and took in fixes from several other branches, including GTE code from the Wii port PCSX-Revolution. Its last stable release, 1.9.95, came in 2013.
- PCSX ReARMed, by notaz, calls itself “yet another PCSX fork”. It was built for ARM processors, with a recompiler that translates the PlayStation’s MIPS code into ARM code, and was ported to devices such as the BlackBerry PlayBook; the libretro project maintains its own version. It runs “most games” without a proprietary BIOS.
- PCSX-Redux, whose repository dates from December 2018, is run by a group called grumpycoders as “a collection of tools, research, hardware design, and libraries aiming at development and reverse engineering on the PlayStation 1”, with the emulator and its debugger at the centre. Its repository includes OpenBIOS, “a MIPS R3000A BIOS implementation that can be used to boot PlayStation 1 games without the need for a retail BIOS”.
The most surprising user was Sony. When Sony’s PlayStation Classic, a miniature console with 20 built-in games, was reviewed ahead of its release on 3 December 2018, its licence screen named PCSX ReARMed. The ReARMed README records the fact drily: “A fork of this emulator was used in PS Classic (without any coordination or even notification).”
Source code
PCSX’s source code was released by its authors under the GNU GPL with version 1.0 in January 2002, on SourceForge. The code of every later fork is public under the GPL: PCSX-Reloaded (GPL version 3 for the project as a whole, with source files under version 2 or later), PCSX ReARMed and PCSX-Redux (version 2) and PCSX2 (version 3).
Sources
- PCSX website, pcsx.net, news pages (archived copies, 2001 to 2008; the project’s own site): NoComp’s statement of 21 September 2000 on starting the project in December 1999 and converting his N64 emulator; the posts of spring 2000 on PSEmu Pro plugins, 53 demos, Shadow as leader and Pete Bernert joining; “Release day!” (7 September 2000) and the BIOS warning; the Linux port (13 February 2001); the open-source announcement (23 December 2001); version 1.0 under the GPL with the experimental HLE BIOS (5 January 2002); 1.1 (February 2002); 1.3 and the Internal HLE BIOS (July 2002); the Dreamcast port (August 2002); 1.4 (October 2002); linuzappz’s farewell (17 September 2003). https://web.archive.org/web/20080327232154/http://www.pcsx.net/
- Sony Computer Entertainment, PlayStation Hardware (1998), p. 2-3: “A 512KB OS ROM is mounted in the PlayStation. OS kernel and boot loader are stored in this ROM. Access to ROM is prohibited and addresses are not disclosed.”
- Edge issue 72, June 1999, p. 11, “Sony strikes back at Connectix”: the injunction and its terms.
- PCSX-Reloaded source code (mirror at pcsxr/PCSX-Reloaded on GitHub): README, AUTHORS, ChangeLog and ChangeLog.df, licence and source headers. https://github.com/pcsxr/PCSX-Reloaded
- notaz, PCSX ReARMed source code on GitHub: README, features and the PlayStation Classic note. https://github.com/notaz/pcsx_rearmed
- grumpycoders, PCSX-Redux source code on GitHub: README and OpenBIOS. https://github.com/grumpycoders/pcsx-redux
- refraction, “The History of PCSX2”, PCSX2 developer blog, 25 November 2010 (archived): the project’s start in mid-2001 with linuzappz and Shadow. https://web.archive.org/web/20170122032012/http://pcsx2.net/developer-blog/90-the-history-of-pcsx2.html
- PCSX2 source code on GitHub: README (20 years of development, the BIOS requirement) and licence. https://github.com/PCSX2/pcsx2
- PCSX2 team, “Introducing PCSX2 2.0!”, 12 July 2024: the removal of plugins. https://pcsx2.net/blog/2024/pcsx2-2-release
- Wikipedia, “PCSX-Reloaded” (web, secondary): PCSX-df’s Linux focus, PCSX-Reloaded’s start in 2009 and last stable release (1.9.95, August 2013), PCSX-Revolution as a Wii port, and the PlayBook port of PCSX ReARMed. https://en.wikipedia.org/wiki/PCSX-Reloaded
- Wikipedia, “PCSX2” (web, secondary): PCSX2’s PSEmu Pro plugin architecture, inherited from PCSX. https://en.wikipedia.org/wiki/PCSX2
- Chris Kohler, “PlayStation Classic Plays Fine, But It’s A Bare-Bones Experience”, Kotaku, 8 November 2018 (web, secondary): the release date, the 20 games, and the licence list naming PCSX ReARMed. https://kotaku.com/playstation-classic-plays-fine-but-it-s-a-bare-bones-e-1830294616