2.4 KiB
Ovl-upload : On-demand Overlay uploading on the PSX
This example code demonstrates (as opposed to this gif above) how to use the companion 'ovl-upload.py' script that should be provided with this file.
Once the code is loaded on a unirom enabled PSX via a serial/USB cable, 'ovl-upload.py' listens for a specific command
to load an overlay file on demand.
For an explanation about overlays, see http://psx.arthus.net/sdk/Psy-Q/DOCS/TRAINING/FALL96/overlay.pdf
For a basic example see @JaberwockySeamonstah's https://github.com/JaberwockySeamonstah/PSXOverlayExample
Thanks
@JaberwockySeamonstah, @JonathanDotCel, @nicolasnoble, @Lameguy64 for their help and patience.
Set-up
- You need to set up the Nugget+PsyQ SDK, as described here : https://github.com/ABelliqueux/nolibgs_hello_worlds
- Clone this repo.
- Get Unirom + NotPSXserial.
- Get mkpsxiso.
- With your PSX on at the unirom prompt, serial/USB cable plugged, upload the default data at the right address :
# We need debug mode for runtime data uploading
nops /debug /dev/ttyUSB0
nops /fast /bin 0x8003e5c8 Overlay.ovl0
nops /fast /exe ovl-upload.ps-exe
nops /slow
You should see a cube on a blue background.
-
In a terminal/cmd, launch the python script
./ovl-upload.py
. You should see a message :Listening for incoming data...
-
Push the select button on your controller. The cube should change shape ! In reality, we are loading the geometry data from another file :
Overlay.ovl1
Alternatively, you can use the bin/cue in an emulator or xstation.
Helper scripts are provided for convenience and are dependent on pcsx-redux
and mkpsxiso
being in your $PATH.
isotest.sh
will make, build the bin/cue, and open the resulting image in pcsx-redux.ovly-upload-helper.sh
is a small wrapper fornops
, hence depending on it being in your $PATH, that takes 4 args : load address, overlay filename, ps-exe filename and optional comport/serialdevice - e.g :
# make &&
./ovly-upload-helper.sh 0x8003e5c8 Overlay.ovl0 ovl-upload.ps-exe /dev/ttyUSB0