5 changed files with 185 additions and 0 deletions
@ -0,0 +1,62 @@
|
||||
name: PS5 (ps5-payload-dev) |
||||
|
||||
on: |
||||
push: |
||||
branches: |
||||
- master |
||||
paths-ignore: |
||||
- '*.md' |
||||
- 'docs/**' |
||||
pull_request: |
||||
types: [opened, synchronize] |
||||
paths-ignore: |
||||
- '*.md' |
||||
- 'docs/**' |
||||
release: |
||||
types: [published] |
||||
paths-ignore: |
||||
- '*.md' |
||||
- 'docs/**' |
||||
|
||||
concurrency: |
||||
group: ${{ github.workflow }}-${{ github.ref }} |
||||
cancel-in-progress: true |
||||
|
||||
|
||||
jobs: |
||||
ps5: |
||||
runs-on: ubuntu-24.04 |
||||
steps: |
||||
- name: Checkout |
||||
uses: actions/checkout@v4 |
||||
with: |
||||
fetch-depth: 0 |
||||
|
||||
- name: Create Build Environment |
||||
run: | |
||||
sudo apt update |
||||
sudo apt install cmake pkg-config clang-15 lld-15 |
||||
sudo apt install build-essential autoconf libtool yasm nasm |
||||
sudo apt install smpq gperf pkgconf libarchive-tools autopoint po4a git curl doxygen wget |
||||
wget https://github.com/ps5-payload-dev/pacbrew-repo/releases/download/v0.8/ps5-payload-dev.tar.gz |
||||
sudo tar -xf ps5-payload-dev.tar.gz -C / |
||||
|
||||
- name: Build |
||||
working-directory: ${{github.workspace}} |
||||
shell: bash |
||||
run: Packaging/ps5/build.sh |
||||
|
||||
- name: Upload-Package |
||||
if: ${{ !env.ACT }} |
||||
uses: actions/upload-artifact@v4 |
||||
with: |
||||
name: devilutionx-ps5.zip |
||||
path: build-ps5/devilutionx-ps5.zip |
||||
|
||||
- name: Update Release |
||||
if: ${{ github.event_name == 'release' && !env.ACT }} |
||||
uses: svenstaro/upload-release-action@v2 |
||||
with: |
||||
asset_name: devilutionx-ps5.zip |
||||
file: build-ps5/devilutionx-ps5.zip |
||||
overwrite: true |
||||
@ -0,0 +1,40 @@
|
||||
# devilutionX PS5 port |
||||
|
||||
## Prerequisites |
||||
- A Playstation 5 capable of running the [ps5-payload-websrv][websrv] homebrew. |
||||
- Game assets from the Diablo game (diabdat.mpq), |
||||
or its [shareware][shareware] (spawn.mpq) |
||||
|
||||
## Installation |
||||
- Copy the game assets (e.g., via ftp) to /data/homebrew/devilutionX |
||||
- Launch the [ps5-payload-websrv][websrv] homebrew |
||||
- Launch the game from your browser at http://PS5-IP:8080, or using the |
||||
[companion launcher][launcher] from the PS5 menu system |
||||
|
||||
## Controls |
||||
- D-pad: move hero |
||||
- ○: attack nearby enemies, talk to townspeople and merchants, pickup/place |
||||
items in the inventory, OK while in main menu |
||||
- ×: select spell, back while in menus |
||||
- △: pickup items, open nearby chests and doors, use item in the inventory |
||||
- □: cast spell, delete character while in main menu |
||||
- L1: use health item from belt |
||||
- R1: use mana potion from belt |
||||
- L2: toggle character sheet |
||||
- R2: toggle inventory |
||||
- Left stick: move hero |
||||
- Right stick: move cursor |
||||
- L3: toggle auto map |
||||
- R3: click with cursor |
||||
|
||||
## Building from Source |
||||
Install the [PacBrew PS5 SDK][pacbrew], then run the following |
||||
bash script: |
||||
```console |
||||
devilutionX$ ./Packaging/ps5/build.sh |
||||
``` |
||||
|
||||
[shareware]: http://ftp.blizzard.com/pub/demos/diablosw.exe |
||||
[pacbrew]: https://github.com/ps5-payload-dev/pacbrew-repo |
||||
[websrv]: https://github.com/ps5-payload-dev/websrv |
||||
[launcher]: https://github.com/ps5-payload-dev/websrv/blob/master/homebrew/IV9999-FAKE00001_00-HOMEBREWLOADER01.pkg?raw=true |
||||
@ -0,0 +1,39 @@
|
||||
#!/usr/bin/env bash |
||||
|
||||
set -e |
||||
SCRIPTDIR="${BASH_SOURCE[0]}" |
||||
SCRIPTDIR="$(dirname "${SCRIPTDIR}")" |
||||
|
||||
if [ -z "${PS5_PAYLOAD_SDK}" ]; then |
||||
export PS5_PAYLOAD_SDK=/opt/ps5-payload-sdk |
||||
fi |
||||
|
||||
source "${PS5_PAYLOAD_SDK}/toolchain/prospero.sh" |
||||
|
||||
${CMAKE} -DCMAKE_BUILD_TYPE=Release \ |
||||
-DDISCORD_INTEGRATION=OFF \ |
||||
-DBUILD_TESTING=OFF \ |
||||
-DASAN=OFF \ |
||||
-DUBSAN=OFF \ |
||||
-DDISABLE_LTO=ON \ |
||||
-DNOEXIT=ON \ |
||||
-DNONET=OFF \ |
||||
-DBUILD_ASSETS_MPQ=ON \ |
||||
-DDEVILUTIONX_SYSTEM_SDL_IMAGE=OFF \ |
||||
-B build-ps5 \ |
||||
-S "${SCRIPTDIR}/../../" |
||||
${MAKE} -C build-ps5 -j $(getconf _NPROCESSORS_ONLN) |
||||
|
||||
rm -rf build-ps5/DevilutionX |
||||
mkdir build-ps5/DevilutionX |
||||
|
||||
cp -r "${SCRIPTDIR}/sce_sys" build-ps5/DevilutionX/ |
||||
cp "${SCRIPTDIR}/homebrew.js" build-ps5/DevilutionX/ |
||||
cp "${SCRIPTDIR}/README.md" build-ps5/DevilutionX/ |
||||
cp build-ps5/devilutionx.mpq build-ps5/DevilutionX/ |
||||
cp build-ps5/devilutionx build-ps5/DevilutionX/devilutionx.elf |
||||
|
||||
# Let github actions do this? |
||||
cd build-ps5 |
||||
rm -f devilutionx-ps5.zip |
||||
zip -r devilutionx-ps5.zip DevilutionX |
||||
@ -0,0 +1,44 @@
|
||||
|
||||
async function main() { |
||||
const PAYLOAD = window.workingDir + '/devilutionx.elf'; |
||||
|
||||
return { |
||||
mainText: "DevilutionX", |
||||
secondaryText: 'Diablo build for modern OSes', |
||||
onclick: async () => { |
||||
return { |
||||
path: PAYLOAD, |
||||
args: '' |
||||
}; |
||||
}, |
||||
options: [ |
||||
{ |
||||
text: "Force Shareware mode", |
||||
onclick: async () => { |
||||
return { |
||||
path: PAYLOAD, |
||||
args: '--spawn' |
||||
}; |
||||
} |
||||
}, |
||||
{ |
||||
text: "Force Diablo mode", |
||||
onclick: async () => { |
||||
return { |
||||
path: PAYLOAD, |
||||
args: '--diablo' |
||||
}; |
||||
} |
||||
}, |
||||
{ |
||||
text: "Force Hellfire mode", |
||||
onclick: async () => { |
||||
return { |
||||
path: PAYLOAD, |
||||
args: '--hellfire' |
||||
}; |
||||
} |
||||
} |
||||
] |
||||
}; |
||||
} |
||||
|
After Width: | Height: | Size: 44 KiB |
Loading…
Reference in new issue