paintown
paintown copied to clipboard
Build PS3
Todo
- [x] Create a docker file for cross compiling
- [x] Create script easy-compile-ps3 for building paintown.ps3
- [x] Create release-ps3 for building pkg locally
- [x] GitHub action with CI/CD for building releases
- [x] Compile sdl2 and dependencies inside ps3toochain container
- [x] Create meson cross file specific for PS3
- [x] Implement ghc::filesystem for PS3
- [x] Implement ps3/system.cpp
- [x] Create a docker image with ps3toochain,pthread,sdl2,SDL2_image,SDL2_mixer,SDL2_ttf,SDL2_gfx
- [x] Add pthread POSIX to PS3
- [x] ~~Adapt paintown code to use pthread for PS3~~
- [ ] Adapt the code to run on PS3 emulator
How to test
End Used
- Download the latest paintown pkg from releases
- Download and open RPCS3 emulator specific for your current processor [x86,arm]
- Download and install the PS3 firmware from Sony
- Install on RPCS3 the pkg and play the game
Dev
./easy-compile-docker-ps3 && ./release/release-ps3
A paintown-ps3-$version.pkg will be generated
Open RPCS3 and drag and drop the .pkg inside
[!NOTE]
Tested on Mac OS - ARM. But should work on any platform supported by RPCS3
all the scons stuff should be removed eventually, but its ok to leave the code as a reference until it can be replaced.
this compiles the entire ps3 toolchain every time? maybe we can create a docker image out of it and put it on dockerhub?
this compiles the entire ps3 toolchain every time? maybe we can create a docker image out of it and put it on dockerhub?
Yes. The idea is push the image into a docker registry and just call the container to cross compile. I still didn't. Because, I'm facing problems to compile all dependencies with meson. Meanwhile, I put a simple sdl example that just draw a red rectangle to verify the flow ci/cd.