File site/docs/install/playstation.md changed (mode: 100644) (index 452709a..c9c14e6) |
... |
... |
if you want it to, and you can! |
30 |
30 |
Introduction |
Introduction |
31 |
31 |
============ |
============ |
32 |
32 |
|
|
33 |
|
**Unavailable in Libreboot 20240612 or earlier. You must compile from source; |
|
34 |
|
first, check the [main build guide source](../build/) to get dependencies.** |
|
|
33 |
|
This uses the free/opensource BIOS developed by the PCSX-Redux team, which you |
|
34 |
|
can learn more about here: |
35 |
35 |
|
|
36 |
|
You can use the following command in lbmk (on Linux) to build the BIOS: |
|
|
36 |
|
<https://github.com/grumpycoders/pcsx-redux/tree/main/src/mips/openbios> |
37 |
37 |
|
|
38 |
|
./mk -b pcsx-redux |
|
|
38 |
|
Build from source |
|
39 |
|
----------------- |
39 |
40 |
|
|
40 |
|
This command only compiles the BIOS code found in `src/mips/openbios/`, of |
|
41 |
|
PCSX-Redux, which is downloaded to `src/pcsx-redux/`, so the BIOS source code |
|
42 |
|
in full would be located at `src/pcsx-redux/src/mips/openbios` within lbmk. |
|
|
41 |
|
Pre-compiled builds will be in the next Libreboot release, after |
|
42 |
|
version 20240612. For now, you must compile it from source, but the Libreboot |
|
43 |
|
build system provides automation for this. Please use the latest lbmk |
|
44 |
|
revision [from Git](../../git.md). |
43 |
45 |
|
|
44 |
|
You will then find the BIOS image under `bin/playstation/openbios.bin`. This |
|
45 |
|
can be used on PlayStation emulators, and it can also be used on the real |
|
46 |
|
hardware. It has a relatively [high |
|
47 |
|
compatibility](https://docs.google.com/spreadsheets/d/1UNGs7uYb8viAbm7YJaf1CR4dkgX7ZzntUdcowGsjcVc/edit?pli=1&gid=772799649#gid=772799649) according to the developers. |
|
|
46 |
|
First, please make sure you have build dependencies. The build logic in lbmk |
|
47 |
|
has been tested on Debian 12 (x86\_64) and you can do this for example, as root: |
48 |
48 |
|
|
49 |
|
This uses the free/opensource BIOS developed by the PCSX-Redux team, which you |
|
50 |
|
can learn more about here: |
|
|
49 |
|
./mk dependencies debian |
51 |
50 |
|
|
52 |
|
<https://github.com/grumpycoders/pcsx-redux/tree/main/src/mips/openbios> |
|
|
51 |
|
The `arch` and `parabola` dependencies should also work nicely, if you want |
|
52 |
|
to replace `debian` with one of those in the above example; you need to get the |
|
53 |
|
cross compiler (mipsel one) from the AUR, which you will see when running e.g.: |
|
54 |
|
|
|
55 |
|
./mk dependencies arch |
53 |
56 |
|
|
54 |
|
NOTE: As of 26 September 2024, lbmk for PlayStation has only been build-tested |
|
55 |
|
on Debian 12 (x86\_64). The build dependencies script provides a `mipsel` cross |
|
56 |
|
compiler; otherwise, PCSX-Redux's page has general instructions for how to get |
|
57 |
|
a compatible toolchain:\ |
|
|
57 |
|
If you have another distro, or you're unsure, the PCSX-Redux project also |
|
58 |
|
provide generic instructions for other distros. Please see:\ |
58 |
59 |
<https://github.com/grumpycoders/pcsx-redux/blob/main/src/mips/psyqo/GETTING_STARTED.md> |
<https://github.com/grumpycoders/pcsx-redux/blob/main/src/mips/psyqo/GETTING_STARTED.md> |
59 |
60 |
|
|
|
61 |
|
When you have the dependencies, including mipsel cross toolchain, you can |
|
62 |
|
just do this in lbmk: |
|
63 |
|
|
|
64 |
|
./mk -b pcsx-redux |
|
65 |
|
|
|
66 |
|
This commonly only builds the BIOS part. If you want to build all of PCSX-Redux, |
|
67 |
|
you can, but lbmk does not provide automation for this. |
|
68 |
|
|
60 |
69 |
Installation |
Installation |
61 |
70 |
============ |
============ |
62 |
71 |
|
|
|
72 |
|
If all went well, you should see `openbios.bin` located |
|
73 |
|
under the `bin/playstation/` (within lbmk). Alternatively, you may be using |
|
74 |
|
a release *after* Libreboot 20240612 that has it pre-built. Either way is fine. |
|
75 |
|
|
|
76 |
|
The `openbios.bin` file is your new BIOS build. |
|
77 |
|
|
63 |
78 |
Emulators |
Emulators |
64 |
79 |
--------- |
--------- |
65 |
80 |
|
|
|
... |
... |
These emulators can boot many commercial games, with varying degrees of |
71 |
86 |
compatibility, and they can also boot any homebrew/opensource games that you |
compatibility, and they can also boot any homebrew/opensource games that you |
72 |
87 |
might develop yourself, or that others have written. |
might develop yourself, or that others have written. |
73 |
88 |
|
|
|
89 |
|
Simply load your `openbios.bin` file into the emulator, using the instructions |
|
90 |
|
provided with your chosen PlayStation emulator. You can even freely |
|
91 |
|
redistribute this BIOS, because it's free software (released under MIT license), |
|
92 |
|
which is a major advantage over Sony's original BIOS. |
|
93 |
|
|
74 |
94 |
Hardware |
Hardware |
75 |
95 |
-------- |
-------- |
76 |
96 |
|
|
77 |
97 |
Not yet tested by the Libreboot project, but the PCSX-Redux developers have |
Not yet tested by the Libreboot project, but the PCSX-Redux developers have |
78 |
|
stated that it will work on the real console. It should be noted that the Open |
|
79 |
|
BIOS does not seem to implement a memory card save handler at present. If |
|
80 |
|
someone can recommend a boot disc that could replace this, that'd be nice; |
|
81 |
|
otherwise, read on. |
|
|
98 |
|
stated that it will work on the real console. *It should be noted that the Open |
|
99 |
|
BIOS does not seem to implement a memory card save handler at present; you can |
|
100 |
|
save and load games, in-game, but there is no built-in program for copying |
|
101 |
|
and deleting saves between memory cards.* From reading the documentation, it |
|
102 |
|
seems that this is essentially a very well-engineered proof of concept that |
|
103 |
|
happens to boot a majority of games; some polishing is still needed to make this |
|
104 |
|
really useful on a real machine. |
|
105 |
|
|
|
106 |
|
The main usefulness of the Open BIOS is that it's under an MIT license, and |
|
107 |
|
therefore legal to distribute; anyone wishing to use an emulator can use a |
|
108 |
|
compiled copy of the Open BIOS, and distribute it freely without trouble. |
|
109 |
|
|
|
110 |
|
You also do not get to listen to music CDs. The quirk with memory cards is |
|
111 |
|
easily mitigated in an *emulator*, because you can simply create different |
|
112 |
|
memory card images for each game you play. |
|
113 |
|
|
|
114 |
|
It would be nice if a memory card manager program were available, to make this |
|
115 |
|
BIOS much more polished, but a number of games have been tested and it's more |
|
116 |
|
or less fully reliable in most cases. |
82 |
117 |
|
|
83 |
118 |
Game compatibility |
Game compatibility |
84 |
119 |
================== |
================== |
|
... |
... |
The upstream maintains a compatibility list, here: |
90 |
125 |
NOTE: Google Docs, but an option exists on there to export it for LibreOffice |
NOTE: Google Docs, but an option exists on there to export it for LibreOffice |
91 |
126 |
Calc. The list is provided as a spreadsheet. |
Calc. The list is provided as a spreadsheet. |
92 |
127 |
|
|
93 |
|
Memory card handling |
|
|
128 |
|
Remarks about hardware |
94 |
129 |
==================== |
==================== |
95 |
130 |
|
|
96 |
|
Basically, the Open BIOS from PCSX-Redux does not yet support handling the |
|
97 |
|
memory cards. The game compatibility is also not complete, though it is |
|
98 |
|
excellent. Therefore, you might consider a *dual BIOS* setup - and this has |
|
99 |
|
not been tested, but should work just fine (it will be tested at a later date). |
|
100 |
|
|
|
101 |
|
Using it on hardware |
|
102 |
|
==================== |
|
103 |
|
|
|
104 |
|
The dual BIOS works like so: manipulate the OE/chip select pins on the BIOS |
|
105 |
|
chip (original one), between that and the one on the replacement chip. You |
|
106 |
|
would have both chips present, one of them containing your Open BIOS. You would |
|
107 |
|
control the OE/CS pins via a toggle switch. When the switch is set one way, it |
|
108 |
|
boots the original Sony BIOS, and the other position boots the Open BIOS. You |
|
109 |
|
would take care not to switch it while the machine is in operation, but it could |
|
110 |
|
be set before turning the machine on. |
|
111 |
|
|
|
112 |
131 |
Modern NOR flash can be used. You specifically want a TSOP-32 SMD/SMT type device, |
Modern NOR flash can be used. You specifically want a TSOP-32 SMD/SMT type device, |
113 |
132 |
one that operates at 3.3v (tolerance 2.7 to 3.6v), organised into 512KB blocks, |
one that operates at 3.3v (tolerance 2.7 to 3.6v), organised into 512KB blocks, |
114 |
133 |
for example 512KB x8 is a common part, for example [SST39VF040](https://eu.mouser.com/ProductDetail/Microchip-Technology/SST39VF040-70-4C-WHE?qs=I6DYTe5pEPUDs7BrdNtR9w%3D%3D). |
for example 512KB x8 is a common part, for example [SST39VF040](https://eu.mouser.com/ProductDetail/Microchip-Technology/SST39VF040-70-4C-WHE?qs=I6DYTe5pEPUDs7BrdNtR9w%3D%3D). |
|
... |
... |
a 40-pin chip but most later ones soon after and to end of life were 32-pin. |
122 |
141 |
This page only sells adapters for use with 32-bit boards. |
This page only sells adapters for use with 32-bit boards. |
123 |
142 |
|
|
124 |
143 |
For most boards, the one you want is probably the `PS1_Flash_Bios_(A)` one. |
For most boards, the one you want is probably the `PS1_Flash_Bios_(A)` one. |
125 |
|
You must flash the chip first, before soldering it onto this adapter board. |
|
126 |
|
You can then de-solder the BIOS chip; look for a 512K mask ROM on the board. |
|
127 |
|
|
|
128 |
|
Make sure the adapter is soldered properly, and solder it into place. You can |
|
129 |
|
find some videos online for how to do this. Libreboot cannot verify the quality |
|
130 |
|
of all of them and may provide such guidance itself in the future. |
|
131 |
|
|
|
132 |
|
**Do not** assume that the dual-BIOS idea will even work, because to our |
|
133 |
|
knowledge, it has not been tested. It is highly theoretical at this point, and |
|
134 |
|
recommended (assuming it would work) instead of simply replacing the original |
|
135 |
|
BIOS outright. Even if game compatibility were 100%, it helps to have a backup |
|
136 |
|
solution in case of bugs. |
|
137 |
|
|
|
138 |
|
There are a few edge cases: PsNee (referenced below) might not work well on |
|
139 |
|
some Japanese playstations, or PAL PSOne Slim, due to extra restrictions in |
|
140 |
|
the Sony BIOS; therefore, if doing Dual BIOS, it might be wise to use two of |
|
141 |
|
those adapter PCBs stacked, using the same OE/CE switch idea. On the one |
|
142 |
|
containing Sony BIOS, you might use a dump for US NTSC console for example, if |
|
143 |
|
setting it up on a PAL PSOne or Japanese console. Japanese consoles otherwise |
|
144 |
|
have additional region checks at startup, and PAL PSOne slims check what video |
|
145 |
|
mode a game starts in. |
|
146 |
|
|
|
147 |
|
This page may or may not be updated at some point, to document installation on |
|
148 |
|
real hardware. For now, the Open BIOS is only intended for use with emulators. |
|
|
144 |
|
|
|
145 |
|
We do not yet provide instructions for how to install this on real hardware, in |
|
146 |
|
the Libreboot project, but this can be done at a future date. |
|
147 |
|
|
|
148 |
|
Other mods (hardware) |
|
149 |
|
=============== |
149 |
150 |
|
|
150 |
151 |
Video timings |
Video timings |
151 |
152 |
------------- |
------------- |
152 |
153 |
|
|
|
154 |
|
The Open BIOS will not implement any DRM, so it's possible that you might boot |
|
155 |
|
out of region games. In an emulator, this is no problem, but it can prove |
|
156 |
|
difficult on hardware in a number of situations. |
|
157 |
|
|
153 |
158 |
The purpose of these kinds of mods *on hardware* is typically that the user |
The purpose of these kinds of mods *on hardware* is typically that the user |
154 |
159 |
wants to remove all DRM. Well, there's something many people overlook: video |
wants to remove all DRM. Well, there's something many people overlook: video |
155 |
160 |
timings out-of-region are often wrong on these machines. The GPUs have two |
timings out-of-region are often wrong on these machines. The GPUs have two |
|
... |
... |
clock inputs (early launch models only have one clock input): one for PAL and |
157 |
162 |
one for NTSC. More info could be written here at a later date but these consoles |
one for NTSC. More info could be written here at a later date but these consoles |
158 |
163 |
typically don't have a PAL GPU clock on NTSC consoles, and vice versa. You can |
typically don't have a PAL GPU clock on NTSC consoles, and vice versa. You can |
159 |
164 |
correct this. |
correct this. |
160 |
|
Look up the PS1 "dual frequency oscillator" mod. |
|
161 |
165 |
|
|
162 |
|
Other mods |
|
163 |
|
========== |
|
|
166 |
|
Look up the PS1 "dual frequency oscillator" mod. Without this mod, NTSC games |
|
167 |
|
will run slightly slower than they should and have the wrong colours, when booted |
|
168 |
|
on PAL consoles (and vice versa); RGB SCART can be used to mitigate the colour |
|
169 |
|
issue, but not the timing issue. The oscillator mod is the only solution for the |
|
170 |
|
timing issue. |
|
171 |
|
|
|
172 |
|
Modchips |
|
173 |
|
-------- |
164 |
174 |
|
|
165 |
175 |
If using hardware, you will probably still want a modchip. Many proprietary |
If using hardware, you will probably still want a modchip. Many proprietary |
166 |
176 |
modchip firmwares exist, such as Old crow, MultiMode3 and Mayumi; these run on |
modchip firmwares exist, such as Old crow, MultiMode3 and Mayumi; these run on |
|
... |
... |
recommends: |
174 |
184 |
Unlike the other modchips, PsNee runs mostly on Arduino-type boards. You can |
Unlike the other modchips, PsNee runs mostly on Arduino-type boards. You can |
175 |
185 |
find more info on its GitHub page. |
find more info on its GitHub page. |
176 |
186 |
|
|
177 |
|
The way copy protection works on a playstation is: the commercial discs have |
|
178 |
|
a special wobble in them, that can't be reproduced on consumer hardware. This |
|
179 |
|
wobble encodes region data for the disc, and it's checked for by the CD controller; |
|
180 |
|
if no wobble is present, or the region is incorrect, the disc stops booting, |
|
181 |
|
though it will still play music CDs regardless (in the Sony BIOS). |
|
|
187 |
|
Although not yet tested by Libreboot, it might be possible to have both the |
|
188 |
|
Sony BIOS and Open BIOS, by stacking them on top of each other, soldered pin |
|
189 |
|
for pin but leaving the OE/CS pins floating; then, wire up a switch that turns |
|
190 |
|
one chip or the other off, so that you can pick which BIOS you want at boot. |
|
191 |
|
This might be useful, in case you run into any compatibility issues with the |
|
192 |
|
Open BIOS. |
|
193 |
|
|
|
194 |
|
A modchip is still desirable, to mitigate copy and region protection in the |
|
195 |
|
original BIOS; it may still be required when using the Open BIOS, but this has |
|
196 |
|
not yet been confirmed by the Libreboot project. |
182 |
197 |
|
|
183 |
|
The Open BIOS will contain no restrictions whatsoever, but you are still advised |
|
184 |
|
to have a modchip. |
|
|
198 |
|
More hardware testing is planned, but the Open BIOS works perfectly in emulators. |
|
199 |
|
Give it a try! |
|
200 |
|
|
|
201 |
|
Boot games on SD cards |
|
202 |
|
----------------------- |
185 |
203 |
|
|
186 |
204 |
The [PicoStation](https://github.com/paulocode/picostation) project provides |
The [PicoStation](https://github.com/paulocode/picostation) project provides |
187 |
205 |
free firmware for RP2040 devices, which you can solder into a modboard which |
free firmware for RP2040 devices, which you can solder into a modboard which |
188 |
206 |
then emulates the PS1 CD drive. It then lets you boot software (including |
then emulates the PS1 CD drive. It then lets you boot software (including |
189 |
|
many games) from an SD card instead of a CD, using disc image files. |
|
|
207 |
|
many games) from an SD card instead of a CD, using disc image files, on a |
|
208 |
|
real playstation (the picostation replaces your CD drive). |
|
209 |
|
|
|
210 |
|
Not only is this useful in a development context, but it can also be used when |
|
211 |
|
your CD drive has worn out and no longer reads discs properly. |
|
212 |
|
|
|
213 |
|
Final remarks |
|
214 |
|
------------- |
190 |
215 |
|
|
191 |
216 |
Combined with PsNee and PicoStation, the Open BIOS from PCSX-Redux team will |
Combined with PsNee and PicoStation, the Open BIOS from PCSX-Redux team will |
192 |
217 |
turn your 90s PlayStation into a very hackable machine. There is |
turn your 90s PlayStation into a very hackable machine. There is |
|
... |
... |
coincidence; they are |
197 |
222 |
simply computers, fully reprogrammable and as such, Libreboot is happy to provide |
simply computers, fully reprogrammable and as such, Libreboot is happy to provide |
198 |
223 |
this support, for the Sony PlayStation |
this support, for the Sony PlayStation |
199 |
224 |
|
|
200 |
|
This page is very new, as of 26 September 2024, because the PS1 Open BIOS was |
|
201 |
|
only added on this day (26 September). It'll be fleshed out over time, especially |
|
202 |
|
to talk about hardware. The Open BIOS does boot a lot of software, but it is |
|
203 |
|
mostly only recommended for use in emulators at this time. |
|
204 |
|
|
|
205 |
225 |
Credit |
Credit |
206 |
226 |
====== |
====== |
207 |
227 |
|
|