Compare commits
7 Commits
Alpha-0.0.
...
4089bdbe92
Author | SHA1 | Date | |
---|---|---|---|
|
4089bdbe92 | ||
|
8b2ab62640 | ||
|
6dfb9106e3 | ||
|
42286db6b7 | ||
|
b612420032 | ||
|
70efef7f30 | ||
|
8ab478162c |
2
.gitattributes
vendored
2
.gitattributes
vendored
@@ -2,5 +2,3 @@
|
|||||||
*.wav filter=lfs diff=lfs merge=lfs -text
|
*.wav filter=lfs diff=lfs merge=lfs -text
|
||||||
*.png filter=lfs diff=lfs merge=lfs -text
|
*.png filter=lfs diff=lfs merge=lfs -text
|
||||||
*.mp3 filter=lfs diff=lfs merge=lfs -text
|
*.mp3 filter=lfs diff=lfs merge=lfs -text
|
||||||
*.TMD filter=lfs diff=lfs merge=lfs -text
|
|
||||||
* text=auto eol=lf
|
|
6
bin/convert2cdda.sh
Normal file
6
bin/convert2cdda.sh
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#Made possible by Cody the white tiger
|
||||||
|
|
||||||
|
# $1 => Input file
|
||||||
|
# $2 => Output file
|
||||||
|
ffmpeg -i $1 -sample_fmt s16 -ar 44100 $2
|
BIN
bin/extern/32BIT.TMD
(Stored with Git LFS)
vendored
BIN
bin/extern/32BIT.TMD
(Stored with Git LFS)
vendored
Binary file not shown.
9
bin/run_pop_fe.sh
Normal file
9
bin/run_pop_fe.sh
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#Made possible by Cody the white tiger
|
||||||
|
|
||||||
|
BASEDIR=$(dirname "$0")
|
||||||
|
cd $BASEDIR
|
||||||
|
source extern/py3venv/bin/activate
|
||||||
|
|
||||||
|
cd extern/pop-fe/
|
||||||
|
./pop-fe.py --title=$1 --ps1-newemu --cover=$2/Icon.png --pic0=$2/Title.png --pic1=$2/Background.png --ps3-pkg="${3%.*}.pkg" $3
|
@@ -1,6 +0,0 @@
|
|||||||
# Known bugs
|
|
||||||
- [Known bugs](#known-bugs)
|
|
||||||
- [`psxreadmap` is not functional under Linux](#psxreadmap-is-not-functional-under-linux)
|
|
||||||
|
|
||||||
## `psxreadmap` is not functional under Linux
|
|
||||||
Key input seems not work under any version under Linux...
|
|
@@ -2,7 +2,7 @@
|
|||||||
- [JabyEngine Documentation](#jabyengine-documentation)
|
- [JabyEngine Documentation](#jabyengine-documentation)
|
||||||
- [Features](#features)
|
- [Features](#features)
|
||||||
- [Known limitations](#known-limitations)
|
- [Known limitations](#known-limitations)
|
||||||
- [Bugs](#bugs)
|
- [Observed bugs](#observed-bugs)
|
||||||
|
|
||||||
## Features
|
## Features
|
||||||
- [Auto LBAs](./Features/auto_lba.md)
|
- [Auto LBAs](./Features/auto_lba.md)
|
||||||
@@ -10,6 +10,5 @@
|
|||||||
## Known limitations
|
## Known limitations
|
||||||
- Insufficient documentation
|
- Insufficient documentation
|
||||||
|
|
||||||
### Bugs
|
## Observed bugs
|
||||||
- [Known bugs](./Bugs/known_bugs.md)
|
|
||||||
- [Observed bugs](./Bugs/observed_bugs.md)
|
- [Observed bugs](./Bugs/observed_bugs.md)
|
@@ -11,17 +11,32 @@
|
|||||||
{
|
{
|
||||||
"label": "build",
|
"label": "build",
|
||||||
"type": "shell",
|
"type": "shell",
|
||||||
"command": "${env:JABY_ENGINE_PATH}/scripts/podman_jaby_engine.sh ${workspaceFolder}:. make ${input:project}_${input:target} BUILD_PROFILE=${input:build profile} REGION=${input:region} CUSTOM_CONFIG=${input:custom config}",
|
"windows": { // v re-export for WSL v re-export for WSL
|
||||||
|
"command": "wsl make ${input:project}_${input:target} BUILD_PROFILE=${input:build profile} REGION=${input:region} CUSTOM_CONFIG=${input:custom config} PSX_LICENSE_PATH=$(wslpath ${env:PSX_LICENSE_PATH}) JABY_ENGINE_DIR=$(wslpath ${env:JABY_ENGINE_PATH})",
|
||||||
|
},
|
||||||
|
"linux": {
|
||||||
|
"command": "make ${input:project}_${input:target} BUILD_PROFILE=${input:build profile} REGION=${input:region} CUSTOM_CONFIG=${input:custom config}",
|
||||||
|
},
|
||||||
"group": {
|
"group": {
|
||||||
"kind": "build",
|
"kind": "build",
|
||||||
"isDefault": true
|
"isDefault": true
|
||||||
},
|
},
|
||||||
|
"options": {
|
||||||
|
"env": {
|
||||||
|
"PATH": "${env:JABY_ENGINE_PATH}/bin;${env:PATH}"
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"label": "read memory map",
|
"label": "read memory map",
|
||||||
"type": "shell",
|
"type": "shell",
|
||||||
"command": "${env:JABY_ENGINE_PATH}/bin/psxreadmap ${input:output memory map} application/bin/${input:tv format}/PSX-${input:build profile}/PoolBox.elf",
|
"command": "psxreadmap.exe ${input:output memory map} application/bin/${input:tv format}/PSX-${input:build profile}/PoolBox.elf",
|
||||||
"problemMatcher": [],
|
"problemMatcher": [],
|
||||||
|
"options": {
|
||||||
|
"env": {
|
||||||
|
"PATH": "${env:JABY_ENGINE_PATH}/bin;${env:PATH}"
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"inputs": [
|
"inputs": [
|
||||||
@@ -58,7 +73,7 @@
|
|||||||
"type": "command",
|
"type": "command",
|
||||||
"command": "shellCommand.execute",
|
"command": "shellCommand.execute",
|
||||||
"args": {
|
"args": {
|
||||||
"command": "echo \"|<Default>\" && ls -d */",
|
"command": "echo ^|^<Default^> && dir /b /a:d",
|
||||||
"cwd": "${env:JABY_ENGINE_PATH}/config",
|
"cwd": "${env:JABY_ENGINE_PATH}/config",
|
||||||
"fieldSeparator": "|"
|
"fieldSeparator": "|"
|
||||||
}
|
}
|
||||||
|
Binary file not shown.
21
license
21
license
@@ -1,21 +0,0 @@
|
|||||||
MIT License
|
|
||||||
|
|
||||||
Copyright (c) 2025 Jaby
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in all
|
|
||||||
copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
||||||
SOFTWARE.
|
|
@@ -8,7 +8,7 @@ $(CD_OUTPUT): always
|
|||||||
$(PKG_OUTPUT): always
|
$(PKG_OUTPUT): always
|
||||||
@mkdir -p $(REGION)
|
@mkdir -p $(REGION)
|
||||||
@echo "!!PKG generation is experimentel!!"
|
@echo "!!PKG generation is experimentel!!"
|
||||||
run_pop_fe.sh $(ARTIFACT) $(shell pwd)/../assets/pkg $(shell pwd)/$(REGION)/$(ARTIFACT).cue
|
run_pop_fe.sh $(ARTIFACT) $(PWD)/assets/pkg $(PWD)/iso/$(REGION)/$(ARTIFACT).cue
|
||||||
|
|
||||||
all: $(CD_OUTPUT)
|
all: $(CD_OUTPUT)
|
||||||
clean: pkg_clean
|
clean: pkg_clean
|
||||||
|
@@ -10,7 +10,7 @@ PLATFORM ?= PSX
|
|||||||
#Build profile, possible values: release, debug, profile, coverage
|
#Build profile, possible values: release, debug, profile, coverage
|
||||||
BUILD_DIR ?= bin/$(PSX_TV_FORMAT)
|
BUILD_DIR ?= bin/$(PSX_TV_FORMAT)
|
||||||
BUILD_PROFILE ?= debug
|
BUILD_PROFILE ?= debug
|
||||||
PSX_TV_FORMAT ?= PAL
|
PSX_TV_FORMAT ?= PAL
|
||||||
|
|
||||||
CONFIG_NAME ?= $(PLATFORM)-$(BUILD_PROFILE)
|
CONFIG_NAME ?= $(PLATFORM)-$(BUILD_PROFILE)
|
||||||
OUTPUT_DIR = $(BUILD_DIR)/$(CONFIG_NAME)
|
OUTPUT_DIR = $(BUILD_DIR)/$(CONFIG_NAME)
|
||||||
|
@@ -1,19 +0,0 @@
|
|||||||
FROM "ubuntu:22.04"
|
|
||||||
WORKDIR /usr/scripts
|
|
||||||
ADD ["scripts/make_gcc.sh", "/usr/scripts"]
|
|
||||||
WORKDIR /tmp
|
|
||||||
RUN apt update && /usr/scripts/make_gcc.sh
|
|
||||||
|
|
||||||
WORKDIR /usr/scripts
|
|
||||||
ADD ["scripts/install_rust.sh", "/usr/scripts"]
|
|
||||||
RUN apt update && ./install_rust.sh
|
|
||||||
|
|
||||||
ADD ["scripts/install_pop-fe.sh", "scripts/run_pop_fe.sh", "/usr/scripts"]
|
|
||||||
WORKDIR /usr/jaby_engine/bin/extern
|
|
||||||
RUN apt update && /usr/scripts/install_pop-fe.sh
|
|
||||||
|
|
||||||
WORKDIR /project
|
|
||||||
ENV PATH="/jaby_engine/bin:/root/.cargo/bin:${PATH}"
|
|
||||||
ENV JABY_ENGINE_PATH=/jaby_engine
|
|
||||||
ENV JABY_ENGINE_DIR=/jaby_engine
|
|
||||||
ENV PSX_LICENSE_PATH=/psx_license
|
|
@@ -1,17 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
podman build -t jaby_engine .
|
|
||||||
|
|
||||||
if [[ -z "${JABY_ENGINE_PATH}" ]]; then
|
|
||||||
echo "Setting JABY_ENGINE_PATH to parent folder"
|
|
||||||
|
|
||||||
SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &> /dev/null && pwd)"
|
|
||||||
export JABY_ENGINE_PATH="$(dirname "$SCRIPT_DIR")"
|
|
||||||
if cat /etc/passwd | grep $USER | grep bash > /dev/null; then
|
|
||||||
# Bash found
|
|
||||||
echo "export JABY_ENGINE_PATH="$JABY_ENGINE_PATH"" >> ~/.bashrc
|
|
||||||
|
|
||||||
else
|
|
||||||
# No bash found
|
|
||||||
echo "Please add export JABY_ENGINE_PATH="$JABY_ENGINE_PATH" to your shell profile"
|
|
||||||
fi
|
|
||||||
fi
|
|
@@ -1,17 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
# Made possible by Cody the white tiger
|
|
||||||
|
|
||||||
echo "<<< Install pop-fe >>>"
|
|
||||||
apt-get install -y cmake python-is-python3 python3 python3-pip python3-venv pkg-config libiso9660-dev libsndfile1-dev swig libsndfile-dev ffmpeg mame-tools cmake wget unzip
|
|
||||||
|
|
||||||
git clone --recursive https://github.com/sahlberg/pop-fe
|
|
||||||
pip3 install pytubefix PyPDF2 requests pycdlib ecdsa tkinterdnd2 opencv-contrib-python rarfile scikit-learn scipy
|
|
||||||
make -C pop-fe/PSL1GHT/tools/ps3py/
|
|
||||||
cmake -B pop-fe/atracdenc/src/ -S pop-fe/atracdenc/src/
|
|
||||||
make -C pop-fe/atracdenc/src/
|
|
||||||
|
|
||||||
cd pop-fe
|
|
||||||
./pop-fe.py --install
|
|
||||||
|
|
||||||
echo "<<< Register pop-fe >>>"
|
|
||||||
ln -s /usr/scripts/run_pop_fe.sh /usr/local/bin/run_pop_fe.sh
|
|
@@ -1,9 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
echo "<<< Install Rust prerequisites >>>"
|
|
||||||
apt install -y curl
|
|
||||||
|
|
||||||
RUST_VERSION=1.78.0
|
|
||||||
echo "<<< Install Rust $RUST_VERSION >>>"
|
|
||||||
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain=$RUST_VERSION -y
|
|
||||||
. "$HOME/.cargo/env"
|
|
||||||
cargo install cargo-edit --locked
|
|
@@ -1,65 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
echo "<<< Install GCC prerequisites >>>"
|
|
||||||
apt install -y make texinfo g++ gcc git libgmp3-dev libmpfr-dev libmpc-dev flex install-info info bison
|
|
||||||
|
|
||||||
GCC_VERSION=13.1.0
|
|
||||||
|
|
||||||
echo "<<< Build GCC >>>"
|
|
||||||
mkdir -p psx-gcc
|
|
||||||
cd psx-gcc
|
|
||||||
|
|
||||||
echo "<<< clone binutils >>>"
|
|
||||||
git clone git://sourceware.org/git/binutils-gdb.git
|
|
||||||
cd binutils-gdb
|
|
||||||
|
|
||||||
mkdir -p build
|
|
||||||
cd build
|
|
||||||
|
|
||||||
echo "<<< Configure binutils >>>"
|
|
||||||
../configure --target=mipsel-linux-gnu --with-sysroot --disable-nls --disable-werror
|
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
echo "<<< Make binutils >>>"
|
|
||||||
make -j$(nproc)
|
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
echo "<<< Install binutils >>>"
|
|
||||||
make -j$(nproc) install
|
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
cd ../..
|
|
||||||
|
|
||||||
echo "<<< clone gcc >>>"
|
|
||||||
git clone --recurse-submodules git://gcc.gnu.org/git/gcc.git
|
|
||||||
cd gcc
|
|
||||||
|
|
||||||
echo "<<< checkout gcc $GCC_VERSION >>>"
|
|
||||||
git checkout "releases/gcc-$GCC_VERSION"
|
|
||||||
|
|
||||||
mkdir -p build
|
|
||||||
cd build
|
|
||||||
echo "<<< configure gcc >>>"
|
|
||||||
../configure --target=mipsel-linux-gnu --disable-nls --enable-languages=c,c++ --without-headers
|
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "<<< Make gcc >>>"
|
|
||||||
make -j$(nproc) all-gcc
|
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "<<< Install gcc >>>"
|
|
||||||
make -j$(nproc) install-gcc
|
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "<<< Delete GCC folder >>>"
|
|
||||||
cd /tmp
|
|
||||||
rm -fr psx-gcc
|
|
@@ -1,5 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
# Made possible by Cody the white tiger
|
|
||||||
|
|
||||||
cd /usr/jaby_engine/bin/extern/pop-fe
|
|
||||||
./pop-fe.py --title=$1 --ps1-newemu --cover=$2/Icon.png --pic0=$2/Title.png --pic1=$2/Background.png --ps3-pkg="${3%.*}.pkg" $3
|
|
43
readme.md
43
readme.md
@@ -1,52 +1,33 @@
|
|||||||
- [JabyEngine](#jabyengine)
|
- [JabyEngine](#jabyengine)
|
||||||
- [About](#about)
|
- [About](#about)
|
||||||
- [How to build](#how-to-build)
|
- [How to build](#how-to-build)
|
||||||
- [Building `Tools` (without VS Code)](#building-tools-without-vs-code)
|
- [Building `JabyEngine` (without VSCode)](#building-jabyengine-without-vscode)
|
||||||
- [Building `JabyEngine` (without VS Code)](#building-jabyengine-without-vs-code)
|
- [Building support library (without VSCode)](#building-support-library-without-vscode)
|
||||||
- [Building support library (without VS Code)](#building-support-library-without-vs-code)
|
|
||||||
- [`FontWriter` (without VSCode)](#fontwriter-without-vscode)
|
- [`FontWriter` (without VSCode)](#fontwriter-without-vscode)
|
||||||
- [Building `PoolBox` (without VSCode)](#building-poolbox-without-vscode)
|
- [Building `PoolBox` (without VSCode)](#building-poolbox-without-vscode)
|
||||||
- [Media creators](#media-creators)
|
- [Media creators](#media-creators)
|
||||||
- [JabyEngine](#jabyengine-1)
|
- [JabyEngine](#jabyengine-1)
|
||||||
- [PoolBox](#poolbox)
|
- [PoolBox](#poolbox)
|
||||||
- [Special thanks](#special-thanks)
|
- [Special thanks](#special-thanks)
|
||||||
- [Support this project](#support-this-project)
|
|
||||||
|
|
||||||
# JabyEngine
|
# JabyEngine
|
||||||
## About
|
## About
|
||||||
JabyEngine is my personal attempt to eventually make my own PS1 game from "ground up". Originally I didn't indented to release this code publicly but recently I decided to give it a try. If you read this, thank you!
|
JabyEngine is my personal attempt to eventually make my own PS1 game from "ground up". Originally I didn't indented to release this code publicly but recently I decided to give it a try. If you read this, thank you!
|
||||||
|
|
||||||
## How to build
|
## How to build
|
||||||
JabyEngine can be build with a docker image using `podman`. Simply run the `install.sh` script from the `podman` folder and you should be good to go.
|
JabyEngine relies on linux to be build. For Windows users it uses `wsl` instead but support for it might get dropped during further development.
|
||||||
|
|
||||||
`podman_jaby_engine.sh` allows you to easily run the docker image for builds:
|
|
||||||
`podman_jaby_engine.sh <project mounting folder>:<working directory relative to project mounting folder> <Command to run> <Arg1> <Args2> <...>`
|
|
||||||
|
|
||||||
The following environment variables should be set:
|
The following environment variables should be set:
|
||||||
* `JABY_ENGINE_PATH`: The path to the root folder of this repo. If you used the `install.sh` script and the environment variable was not set, the script will have set it to the folder. Restarting the shell or VS Code might be required.
|
* `JABY_ENGINE_PATH`: The path to the root folder of this repo
|
||||||
* `PSX_LICENSE_PATH`: The path to a folder containing the PS1 licenses for generating a CD.
|
* `PSX_LICENSE_PATH`: The path to a folder containing the PS1 licenses for generating a CD.
|
||||||
|
|
||||||
Additionally you can also specify the following optional environment variables:
|
### Building `JabyEngine` (without VSCode)
|
||||||
* `JABY_ENGINE_NO_DOCKER`: Turns off the usage of `podman` for builds. This is only recommended for specific development.
|
|
||||||
|
|
||||||
VS Code has build targets set for all the projects which should be build in this order:
|
|
||||||
* `src/Tools/Tools.code-workspace`: Build all tools
|
|
||||||
* `src/Library/Library.code-workspace`: Build JabyEngine for the configurations you need
|
|
||||||
* `support/src/SupportLibrary.code-workspace` (optional): Build for using support code
|
|
||||||
* `examples/PoolBox/PoolBox.code-workspace`(optional): Build for an example "game"
|
|
||||||
|
|
||||||
### Building `Tools` (without VS Code)
|
|
||||||
`make` requires the following values to be passed:
|
|
||||||
* `CARGO_CMD`: `build`
|
|
||||||
* `BUILD_PROFILE`: `debug`/`release`
|
|
||||||
|
|
||||||
### Building `JabyEngine` (without VS Code)
|
|
||||||
`make` requires the following values to be passed:
|
`make` requires the following values to be passed:
|
||||||
* `BUILD_PROFILE`: `debug`/`release`
|
* `BUILD_PROFILE`: `debug`/`release`
|
||||||
* `PSX_TV_FORMAT`: `PAL`/`NTSC`
|
* `PSX_TV_FORMAT`: `PAL`/`NTSC`
|
||||||
* `CUSTOM_CONFIG`: Empty or folder name under `./config`
|
* `CUSTOM_CONFIG`: Empty or folder name under `./config`
|
||||||
|
|
||||||
### Building support library (without VS Code)
|
### Building support library (without VSCode)
|
||||||
These projects shall eventually turn into useful extensions for the engine. So far they are more tests then proper code. However `PoolBox` is depended on `FontWriter`.
|
These projects shall eventually turn into useful extensions for the engine. So far they are more tests then proper code. However `PoolBox` is depended on `FontWriter`.
|
||||||
|
|
||||||
#### `FontWriter` (without VSCode)
|
#### `FontWriter` (without VSCode)
|
||||||
@@ -63,10 +44,9 @@ These projects shall eventually turn into useful extensions for the engine. So f
|
|||||||
|
|
||||||
# Media creators
|
# Media creators
|
||||||
## JabyEngine
|
## JabyEngine
|
||||||
| Art | Author |
|
| Art | Author |
|
||||||
|-----------------------------------------------------------------|------------------------------------------------------------|
|
|-----------------------------------------------------------------|--------|
|
||||||
| `ressources\Splash_ntsc.png` <br/> `ressources\Splash_ntsc.png` | Niuka |
|
| `ressources\Splash_ntsc.png` <br/> `ressources\Splash_ntsc.png` | Niuka |
|
||||||
| `bin/extern/32BIT.TMD` | http://psx.arthus.net/homebrew/assets/boot_logos/32BIT.TMD |
|
|
||||||
|
|
||||||
## PoolBox
|
## PoolBox
|
||||||
| Art | Author |
|
| Art | Author |
|
||||||
@@ -89,8 +69,3 @@ These projects shall eventually turn into useful extensions for the engine. So f
|
|||||||
* Nicolas Noble
|
* Nicolas Noble
|
||||||
* Pyravia
|
* Pyravia
|
||||||
* Sickle
|
* Sickle
|
||||||
|
|
||||||
# Support this project
|
|
||||||
* Try it out
|
|
||||||
* Open Issues or Pull Requests
|
|
||||||
* [Support it on KoFi](https://ko-fi.com/jabyspielkiste)
|
|
@@ -1,25 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
JABY_ENGINE_DOT_FOLDER="$HOME/.jaby_engine"
|
|
||||||
JABY_ENGINE_CARGO_FOLDER="$JABY_ENGINE_DOT_FOLDER/cargo/registry"
|
|
||||||
|
|
||||||
if [[ -n "${PSX_LICENSE_PATH}" ]]; then
|
|
||||||
LICENSE_MOUNT="-v ${PSX_LICENSE_PATH}:/psx_license"
|
|
||||||
else
|
|
||||||
LICENSE_MOUNT=
|
|
||||||
fi
|
|
||||||
|
|
||||||
PROJECT_PATH_ARR=(${1//:/ })
|
|
||||||
PROJECT_PATH=${PROJECT_PATH_ARR[0]}
|
|
||||||
PROJECT_WORK_DIR=${PROJECT_PATH_ARR[1]}
|
|
||||||
shift
|
|
||||||
|
|
||||||
if [[ -z "${JABY_ENGINE_NO_DOCKER}" ]]; then
|
|
||||||
mkdir -p $JABY_ENGINE_CARGO_FOLDER
|
|
||||||
podman run --rm -it -v $JABY_ENGINE_CARGO_FOLDER:/root/.cargo/registry -v ${JABY_ENGINE_PATH}:/jaby_engine -v ${PROJECT_PATH}:/project $LICENSE_MOUNT -w /project/$PROJECT_WORK_DIR jaby_engine $@
|
|
||||||
else
|
|
||||||
echo "WARNING! You are not running in podman"
|
|
||||||
export JABY_ENGINE_DIR=$JABY_ENGINE_PATH
|
|
||||||
export PATH="$JABY_ENGINE_PATH/bin:${PATH}"
|
|
||||||
cd $PROJECT_PATH/$PROJECT_WORK_DIR
|
|
||||||
$@
|
|
||||||
fi
|
|
@@ -19,13 +19,23 @@
|
|||||||
{
|
{
|
||||||
"label": "make",
|
"label": "make",
|
||||||
"type": "shell",
|
"type": "shell",
|
||||||
"command": "../../scripts/podman_jaby_engine.sh ../../:src/Library make ${input:target} BUILD_PROFILE=${input:build cfg} PSX_TV_FORMAT=${input:tv format} CUSTOM_CONFIG=${input:config options}",
|
"windows": {
|
||||||
|
"command": "wsl make ${input:target} BUILD_PROFILE=${input:build cfg} PSX_TV_FORMAT=${input:tv format} CUSTOM_CONFIG=${input:config options}",
|
||||||
|
},
|
||||||
|
"linux": {
|
||||||
|
"command": "make ${input:target} BUILD_PROFILE=${input:build cfg} PSX_TV_FORMAT=${input:tv format} CUSTOM_CONFIG=${input:config options}",
|
||||||
|
},
|
||||||
"group": "build"
|
"group": "build"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"label": "make_all",
|
"label": "make_all",
|
||||||
"type": "shell",
|
"type": "shell",
|
||||||
"command": "../../scripts/podman_jaby_engine.sh ../../:src/Library make -f MakeAll.mk ${input:target prefix}_${input:target} BUILD_PROFILE=${input:build cfg} CUSTOM_CONFIG=${input:config options}",
|
"windows": {
|
||||||
|
"command": "wsl make -f MakeAll.mk ${input:target prefix}_${input:target} BUILD_PROFILE=${input:build cfg} CUSTOM_CONFIG=${input:config options}",
|
||||||
|
},
|
||||||
|
"linux": {
|
||||||
|
"command": "make -f MakeAll.mk ${input:target} BUILD_PROFILE=${input:build cfg}",
|
||||||
|
},
|
||||||
"group": "build"
|
"group": "build"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
@@ -49,7 +59,7 @@
|
|||||||
"type": "command",
|
"type": "command",
|
||||||
"command": "shellCommand.execute",
|
"command": "shellCommand.execute",
|
||||||
"args": {
|
"args": {
|
||||||
"command": "echo \"|<Default>\" && ls -d */",
|
"command": "echo ^|^<Default^> && dir /b /a:d",
|
||||||
"cwd": "${workspaceFolder}/../../config",
|
"cwd": "${workspaceFolder}/../../config",
|
||||||
"fieldSeparator": "|"
|
"fieldSeparator": "|"
|
||||||
}
|
}
|
||||||
@@ -71,7 +81,7 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"extensions": {
|
"extensions": {
|
||||||
"recommendations": ["augustocdias.tasks-shell-input", "cantonios.project-templates"]
|
"recommendations": ["augustocdias.tasks-shell-input"]
|
||||||
},
|
},
|
||||||
"settings": {
|
"settings": {
|
||||||
"cmake.configureOnOpen": false,
|
"cmake.configureOnOpen": false,
|
||||||
|
@@ -31,4 +31,5 @@ define cargo_unix_default
|
|||||||
)
|
)
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
# Run `cargo install cargo-edit --locked`to support upgrade
|
||||||
# Windows build requires "rustup target add x86_64-pc-windows-gnu" and "sudo apt-get install mingw-w64"
|
# Windows build requires "rustup target add x86_64-pc-windows-gnu" and "sudo apt-get install mingw-w64"
|
@@ -6,14 +6,23 @@
|
|||||||
],
|
],
|
||||||
"settings": {
|
"settings": {
|
||||||
"cargo_task": [
|
"cargo_task": [
|
||||||
"./ all!All",
|
"./ all!Unix: All",
|
||||||
"cpp_out all!cpp_out",
|
"cpp_out all!Unix: cpp_out",
|
||||||
"mkoverlay all!mkoverlay",
|
"mkoverlay all!Unix: mkoverlay",
|
||||||
"psxcdgen_ex all!psxcdgen_ex",
|
"psxcdgen_ex all!Unix: psxcdgen_ex",
|
||||||
"psxcdread all!psxcdread",
|
"psxcdread all!Unix: psxcdread",
|
||||||
"psxfileconv all!psxfileconv",
|
"psxfileconv all!Unix: psxfileconv",
|
||||||
"psxreadmap all!psxreadmap",
|
"psxreadmap all!Unix: psxreadmap",
|
||||||
"wslpath all!wslpath",
|
"wslpath all!Unix: wslpath",
|
||||||
|
|
||||||
|
"./ all-windows!Windows: All",
|
||||||
|
"cpp_out all-windows!Windows: cpp_out",
|
||||||
|
"mkoverlay all-windows!Windows: mkoverlay",
|
||||||
|
"psxcdgen_ex all-windows!Windows: psxcdgen_ex",
|
||||||
|
"psxcdread all-windows!Windows: psxcdread",
|
||||||
|
"psxfileconv all-windows!Windows: psxfileconv",
|
||||||
|
"psxreadmap all-windows!Windows: psxreadmap",
|
||||||
|
"wslpath all-windows!Windows: wslpath"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"tasks": {
|
"tasks": {
|
||||||
@@ -25,11 +34,26 @@
|
|||||||
"group": {
|
"group": {
|
||||||
"kind": "build"
|
"kind": "build"
|
||||||
},
|
},
|
||||||
"command": "../../scripts/podman_jaby_engine.sh ../../:src/Tools make -C ${input:linux_cargo_task} CARGO_CMD=${input:cargo cmd} BUILD_PROFILE=${input:build cfg}",
|
"windows": {
|
||||||
|
"command": "wsl --shell-type login make -C ${input:windows_cargo_task} CARGO_CMD=${input:cargo cmd} BUILD_PROFILE=${input:build cfg}"
|
||||||
|
},
|
||||||
|
"linux": {
|
||||||
|
"command": "make -C ${input:linux_cargo_task} BUILD_PROFILE=${input:build cfg}"
|
||||||
|
},
|
||||||
"problemMatcher": []
|
"problemMatcher": []
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"inputs": [
|
"inputs": [
|
||||||
|
{
|
||||||
|
"id": "windows_cargo_task",
|
||||||
|
"type": "command",
|
||||||
|
"command": "shellCommand.execute",
|
||||||
|
"args": {
|
||||||
|
"command": "powershell",
|
||||||
|
"commandArgs": ["-command", "'${config:cargo_task}'.Replace(',',\"`n\")"],
|
||||||
|
"fieldSeparator": "!"
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"id": "linux_cargo_task",
|
"id": "linux_cargo_task",
|
||||||
"type": "command",
|
"type": "command",
|
||||||
@@ -49,7 +73,7 @@
|
|||||||
{
|
{
|
||||||
"id": "cargo cmd",
|
"id": "cargo cmd",
|
||||||
"type":"pickString",
|
"type":"pickString",
|
||||||
"options": ["build", "check", "upgrade", "clean", "run", "tree"],
|
"options": ["build", "check", "update", "upgrade", "clean", "run", "tree"],
|
||||||
"default": "build",
|
"default": "build",
|
||||||
"description": "cargo command to run"
|
"description": "cargo command to run"
|
||||||
}
|
}
|
||||||
|
@@ -1,3 +1,4 @@
|
|||||||
|
JABY_ENGINE_DIR = ../../..
|
||||||
include $(JABY_ENGINE_DIR)/mkfile/common/RebuildTarget.mk
|
include $(JABY_ENGINE_DIR)/mkfile/common/RebuildTarget.mk
|
||||||
|
|
||||||
ARTIFACT = libFontWriter
|
ARTIFACT = libFontWriter
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
.PHONY: FontWriter
|
FontWriter: always
|
||||||
|
|
||||||
FontWriter:
|
|
||||||
$(MAKE) -C $(JABY_ENGINE_DIR)/support/src/FontWriter $(MAKECMDGOALS)
|
$(MAKE) -C $(JABY_ENGINE_DIR)/support/src/FontWriter $(MAKECMDGOALS)
|
||||||
|
|
||||||
all: FontWriter
|
all: FontWriter
|
||||||
|
|
||||||
|
always: ;
|
@@ -19,7 +19,15 @@
|
|||||||
{
|
{
|
||||||
"label": "make",
|
"label": "make",
|
||||||
"type": "shell",
|
"type": "shell",
|
||||||
"command": "../../scripts/podman_jaby_engine.sh ${workspaceFolder}/..:src/FontWriter make ${input:target} BUILD_PROFILE=${input:build cfg}",
|
"windows": {
|
||||||
|
"command": "wsl make ${input:target} BUILD_PROFILE=${input:build cfg}",
|
||||||
|
},
|
||||||
|
"linux": {
|
||||||
|
"command": "make ${input:target} BUILD_PROFILE=${input:build cfg}",
|
||||||
|
},
|
||||||
|
"options": {
|
||||||
|
"cwd": "${workspaceFolder}/FontWriter"
|
||||||
|
},
|
||||||
"group": "build"
|
"group": "build"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
@@ -11,17 +11,32 @@
|
|||||||
{
|
{
|
||||||
"label": "build",
|
"label": "build",
|
||||||
"type": "shell",
|
"type": "shell",
|
||||||
"command": "${env:JABY_ENGINE_PATH}/scripts/podman_jaby_engine.sh ${workspaceFolder}:. make ${input:project}_${input:target} BUILD_PROFILE=${input:build profile} REGION=${input:region} CUSTOM_CONFIG=${input:custom config}",
|
"windows": { // v re-export for WSL v re-export for WSL
|
||||||
|
"command": "wsl make ${input:project}_${input:target} BUILD_PROFILE=${input:build profile} REGION=${input:region} CUSTOM_CONFIG=${input:custom config} PSX_LICENSE_PATH=$(wslpath ${env:PSX_LICENSE_PATH}) JABY_ENGINE_DIR=$(wslpath ${env:JABY_ENGINE_PATH})",
|
||||||
|
},
|
||||||
|
"linux": {
|
||||||
|
"command": "make ${input:project}_${input:target} BUILD_PROFILE=${input:build profile} REGION=${input:region} CUSTOM_CONFIG=${input:custom config}",
|
||||||
|
},
|
||||||
"group": {
|
"group": {
|
||||||
"kind": "build",
|
"kind": "build",
|
||||||
"isDefault": true
|
"isDefault": true
|
||||||
},
|
},
|
||||||
|
"options": {
|
||||||
|
"env": {
|
||||||
|
"PATH": "${env:JABY_ENGINE_PATH}/bin;${env:PATH}"
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"label": "read memory map",
|
"label": "read memory map",
|
||||||
"type": "shell",
|
"type": "shell",
|
||||||
"command": "${env:JABY_ENGINE_PATH}/bin/psxreadmap ${input:output memory map} application/bin/${input:tv format}/PSX-${input:build profile}/#{ProjectName}.elf",
|
"command": "psxreadmap.exe ${input:output memory map} application/bin/${input:tv format}/PSX-${input:build profile}/#{ProjectName}.elf",
|
||||||
"problemMatcher": [],
|
"problemMatcher": [],
|
||||||
|
"options": {
|
||||||
|
"env": {
|
||||||
|
"PATH": "${env:JABY_ENGINE_PATH}/bin;${env:PATH}"
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"inputs": [
|
"inputs": [
|
||||||
@@ -58,7 +73,7 @@
|
|||||||
"type": "command",
|
"type": "command",
|
||||||
"command": "shellCommand.execute",
|
"command": "shellCommand.execute",
|
||||||
"args": {
|
"args": {
|
||||||
"command": "echo \"|<Default>\" && ls -d */",
|
"command": "echo ^|^<Default^> && dir /b /a:d",
|
||||||
"cwd": "${env:JABY_ENGINE_PATH}/config",
|
"cwd": "${env:JABY_ENGINE_PATH}/config",
|
||||||
"fieldSeparator": "|"
|
"fieldSeparator": "|"
|
||||||
}
|
}
|
||||||
|
6
template/install.bat
Normal file
6
template/install.bat
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
echo off
|
||||||
|
set dst_name=JabyEngine-PSX_Game
|
||||||
|
set dst="%APPDATA%\Code\User\ProjectTemplates\%dst_name%"
|
||||||
|
|
||||||
|
mkdir %dst%
|
||||||
|
xcopy /s %dst_name% %dst%
|
@@ -1,5 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
dst="$HOME/.config/Code/User/ProjectTemplates"
|
|
||||||
|
|
||||||
mkdir -p $dst
|
|
||||||
cp -r "JabyEngine-PSX_Game" "$dst"
|
|
42
wsl_scripts/install_pop-fe.sh
Normal file
42
wsl_scripts/install_pop-fe.sh
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#Made possible by Cody the white tiger
|
||||||
|
|
||||||
|
BASEDIR=$(dirname "$0")
|
||||||
|
mkdir -p $BASEDIR/../bin/extern/
|
||||||
|
cd $BASEDIR/../bin/extern
|
||||||
|
|
||||||
|
sudo apt install -y python3 python3-pip python3-venv pkg-config libiso9660-dev libsndfile1-dev swig
|
||||||
|
if ! test -d py3venv; then
|
||||||
|
python3 -m venv py3venv
|
||||||
|
fi
|
||||||
|
source py3venv/bin/activate
|
||||||
|
pip3 install ecdsa wheel pillow rarfile PyPDF2 requests opencv-contrib-python pycryptodome pycdio pycdlib
|
||||||
|
|
||||||
|
if ! test -d pop-fe; then
|
||||||
|
git clone https://github.com/sahlberg/pop-fe
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! test -d Cue2cu2; then
|
||||||
|
git clone https://github.com/NRGDEAD/Cue2cu2
|
||||||
|
cp Cue2cu2/cue2cu2.py pop-fe
|
||||||
|
fi
|
||||||
|
|
||||||
|
cd pop-fe
|
||||||
|
if ! test -d atracdenc; then
|
||||||
|
git clone https://github.com/dcherednik/atracdenc.git
|
||||||
|
cd atracdenc/src/
|
||||||
|
cmake .
|
||||||
|
make
|
||||||
|
cd ../..
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! test -d PSL1GHT; then
|
||||||
|
git clone https://github.com/sahlberg/PSL1GHT
|
||||||
|
cd PSL1GHT/tools/ps3py
|
||||||
|
git checkout origin/use-python3
|
||||||
|
make
|
||||||
|
fi
|
||||||
|
|
||||||
|
#if ! test -f /usr/local/bin/python; then
|
||||||
|
# sudo ln -s $(which python3) /usr/local/bin/python
|
||||||
|
#fi
|
2
wsl_scripts/install_rust.sh
Normal file
2
wsl_scripts/install_rust.sh
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
sudo curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
|
55
wsl_scripts/make_gcc.sh
Normal file
55
wsl_scripts/make_gcc.sh
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
mkdir -p psx-gcc
|
||||||
|
cd psx-gcc
|
||||||
|
|
||||||
|
echo "clone binutils"
|
||||||
|
git clone git://sourceware.org/git/binutils-gdb.git
|
||||||
|
cd binutils-gdb
|
||||||
|
|
||||||
|
mkdir -p build
|
||||||
|
cd build
|
||||||
|
|
||||||
|
echo "Configure binutils"
|
||||||
|
../configure --target=mipsel-linux-gnu --with-sysroot --disable-nls --disable-werror
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
echo "Make binutils"
|
||||||
|
make
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
echo "Install binutils"
|
||||||
|
sudo make install
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
cd ../..
|
||||||
|
|
||||||
|
echo "clone gcc"
|
||||||
|
git clone --recurse-submodules git://gcc.gnu.org/git/gcc.git
|
||||||
|
cd gcc
|
||||||
|
|
||||||
|
echo "checkout gcc 13.1.0"
|
||||||
|
git checkout releases/gcc-13.1.0
|
||||||
|
|
||||||
|
mkdir -p build
|
||||||
|
cd build
|
||||||
|
echo "configure gcc"
|
||||||
|
../configure --target=mipsel-linux-gnu --disable-nls --enable-languages=c,c++ --without-headers
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Make gcc"
|
||||||
|
make all-gcc
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Install gcc"
|
||||||
|
sudo make install-gcc
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
exit 1
|
||||||
|
fi
|
3
wsl_scripts/prerequisites.sh
Normal file
3
wsl_scripts/prerequisites.sh
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
sudo apt update
|
||||||
|
sudo apt install make texinfo g++ gcc libgmp3-dev libmpfr-dev libmpc-dev flex install-info info bison
|
Reference in New Issue
Block a user