Compare commits
43 Commits
4089bdbe92
...
Alpha-0.0.
Author | SHA1 | Date | |
---|---|---|---|
d03ded6e30 | |||
|
c6bb65fae0 | ||
dd77ab7d74 | |||
|
8ef6e3a9df | ||
0f48b3aedb | |||
|
620283c7b8 | ||
|
70fd4bf806 | ||
|
0d24b0fb02 | ||
|
c6eeb40680 | ||
|
de915a0d33 | ||
|
1f255e15e1 | ||
|
9dab245122 | ||
|
7759a15c9e | ||
|
db32b1a5b5 | ||
|
265b106eab | ||
|
fb8337206d | ||
|
7536980be4 | ||
|
49b0e80697 | ||
|
61d403de5e | ||
|
5d746aa6c8 | ||
|
5e97f1537b | ||
|
3cac7f7720 | ||
|
819558cf9d | ||
|
7128681a2f | ||
|
18256d1ff0 | ||
|
bc603ecb7a | ||
|
38bc7eab06 | ||
|
fbe9b91006 | ||
|
2a4c0a834c | ||
|
09cb984f56 | ||
d0a60373ec | |||
cc3c57e7c9 | |||
04ea6b2d3b | |||
|
8b2c3b2673 | ||
|
690fa57053 | ||
09e6e54368 | |||
|
f889325164 | ||
|
c24d053648 | ||
|
79244df874 | ||
|
f480ce64fe | ||
|
98e801b4c7 | ||
|
51620e2082 | ||
|
eab4558460 |
3
.gitattributes
vendored
3
.gitattributes
vendored
@@ -1,3 +1,6 @@
|
||||
*.xa filter=lfs diff=lfs merge=lfs -text
|
||||
*.wav filter=lfs diff=lfs merge=lfs -text
|
||||
*.png 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
|
@@ -1,6 +0,0 @@
|
||||
#!/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
Normal file
BIN
bin/extern/32BIT.TMD
(Stored with Git LFS)
vendored
Normal file
Binary file not shown.
@@ -1,9 +0,0 @@
|
||||
#!/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
|
6
docs/Bugs/known_bugs.md
Normal file
6
docs/Bugs/known_bugs.md
Normal file
@@ -0,0 +1,6 @@
|
||||
# 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...
|
6
docs/Bugs/observed_bugs.md
Normal file
6
docs/Bugs/observed_bugs.md
Normal file
@@ -0,0 +1,6 @@
|
||||
# Observed bugs
|
||||
- [Observed bugs](#observed-bugs)
|
||||
- [Deadlock](#deadlock)
|
||||
|
||||
## Deadlock
|
||||
It was observed in `PoolBox` when loading the `FontCycler` overlay that a deadlock occurred. This error has not been observed since. The current theory is that accidentally an old save state in the emulator was loaded.
|
@@ -1,68 +1,40 @@
|
||||
# Auto LBA
|
||||
- [Auto LBA](#auto-lba)
|
||||
- [In Code](#in-code)
|
||||
- [For CD generation](#for-cd-generation)
|
||||
|
||||
## Table of Contents
|
||||
- [In Code](#in-code)
|
||||
- [Overlay](#overlay)
|
||||
- [Main file](#main-file)
|
||||
- [For CD generation](#for-cd-generation)
|
||||
|
||||
To support the `Auto LBA` feature changes need to be applied to the source files and the CD configuration file. The changes for the source files depend on if they are an Overlay or part of the main executable.
|
||||
|
||||
---
|
||||
To support the `Auto LBA` feature changes need to be applied to the source files and the CD configuration file.
|
||||
|
||||
## In Code
|
||||
To use the `Auto LBA` feature the LBAs first need to be defined in either an `enum` or `enum struct`. These need to fit a special pattern.
|
||||
To use the `Auto LBA` feature the LBAs first need to be defined in either an `enum` or `enum struct`. These need to fit a special pattern. The usage of a `namespace` is recommended.
|
||||
|
||||
`__jabyengine_start_lba_request` needs to be the first entry while `__jabyengine_end_lba_request` needs to be the last. Each LBA entry needs to be declared with `__jabyengine_request_lba_for` followed by the name for the enum entry and the file path on the disk.
|
||||
|
||||
```c++
|
||||
#include <PSX/AutoLBA/auto_lba.hpp>
|
||||
|
||||
enum LBA {
|
||||
namespace Assets {
|
||||
enum LBA {
|
||||
__jabyengine_start_lba_request
|
||||
__jabyengine_request_lba_for(SYSTEM_CNF, "SYSTEM.CNF"),
|
||||
__jabyengine_end_lba_request
|
||||
};
|
||||
```
|
||||
};
|
||||
__declare_lba_header(LBA);
|
||||
|
||||
### __Overlay__
|
||||
For use with Overlays you need to include the related header file. You must place this include into the Namespace of your overlay to avoid name clash. Now the `lba` array is accessible.
|
||||
|
||||
```c++
|
||||
namespace Overlay {
|
||||
#include <PSX/Overlay/overlay_declaration.hpp>
|
||||
|
||||
// ...
|
||||
namespace {
|
||||
void load() {
|
||||
printf("LBA: %i, Words: %i\n", lba[LBA::SYSTEM_CNF].lba, lba[LBA::SYSTEM_CNF].size_words);
|
||||
// ...
|
||||
|
||||
__declare_overlay_header(execute, LBA);
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### __Main file__
|
||||
For use with the main file you need to include the header file and use the `__declare_lba_header` macro with the name of your enum to create the LBA area in any file. The header allows to access the `lba` array with your enum as the index.
|
||||
|
||||
```c++
|
||||
#include <PSX/AutoLBA/auto_lba_declaration.hpp>
|
||||
|
||||
// ...
|
||||
printf("LBA: %i, Words: %i\n", lba[LBA::SYSTEM_CNF].lba, lba[LBA::SYSTEM_CNF].size_words);
|
||||
// ...
|
||||
|
||||
__declare_lba_header(LBA);
|
||||
```
|
||||
|
||||
## For CD generation
|
||||
To automatically fill the LBA values `psxcdgen_ex` needs to be used.
|
||||
|
||||
For the main file the special XML type `Main` needs to be used while specifing the LBA file being used.
|
||||
|
||||
For Overlays the instruction will follow...
|
||||
The attribute `lba_source` automatically fills in the values. It can be used with the XML `Main` and `Overlay` tag.
|
||||
|
||||
```xml
|
||||
<Track>
|
||||
<File name="SYSTEM.CNF">System.cnf</File>
|
||||
<Main name="SCES_XXX.XX" lba_source="main.cpp">Application.psexe</Main>
|
||||
<File name = "SYSTEM.CNF">System.cnf</File>
|
||||
<Main name = "%PSX_BOOT_FILE%" lba_source = "main.cpp">Application.psexe</Main>
|
||||
<Overlay name = "OVL.BIN" lba_source = "state.cpp">Overlay.state</Overlay>
|
||||
</Track>
|
||||
```
|
14
docs/docs.md
14
docs/docs.md
@@ -1,7 +1,15 @@
|
||||
# JabyEngine Documentation
|
||||
- [JabyEngine Documentation](#jabyengine-documentation)
|
||||
- [Features](#features)
|
||||
- [Known limitations](#known-limitations)
|
||||
- [Bugs](#bugs)
|
||||
|
||||
## Table of Contents
|
||||
- [Features](#features)
|
||||
---
|
||||
## Features
|
||||
- [Auto LBAs](./Features/auto_lba.md)
|
||||
|
||||
## Known limitations
|
||||
- Insufficient documentation
|
||||
|
||||
### Bugs
|
||||
- [Known bugs](./Bugs/known_bugs.md)
|
||||
- [Observed bugs](./Bugs/observed_bugs.md)
|
1
examples/PoolBox/.gitignore
vendored
1
examples/PoolBox/.gitignore
vendored
@@ -5,4 +5,3 @@
|
||||
*.o
|
||||
*.lba
|
||||
**/bin
|
||||
**/audio/temp/*
|
@@ -11,32 +11,17 @@
|
||||
{
|
||||
"label": "build",
|
||||
"type": "shell",
|
||||
"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}",
|
||||
},
|
||||
"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}",
|
||||
"group": {
|
||||
"kind": "build",
|
||||
"isDefault": true
|
||||
},
|
||||
"options": {
|
||||
"env": {
|
||||
"PATH": "${env:JABY_ENGINE_PATH}/bin;${env:PATH}"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"label": "read memory map",
|
||||
"type": "shell",
|
||||
"command": "psxreadmap.exe ${input:output memory map} application/bin/${input:tv format}/PSX-${input:build profile}/PoolBox.elf",
|
||||
"command": "${env:JABY_ENGINE_PATH}/bin/psxreadmap ${input:output memory map} application/bin/${input:tv format}/PSX-${input:build profile}/PoolBox.elf",
|
||||
"problemMatcher": [],
|
||||
"options": {
|
||||
"env": {
|
||||
"PATH": "${env:JABY_ENGINE_PATH}/bin;${env:PATH}"
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"inputs": [
|
||||
@@ -73,7 +58,7 @@
|
||||
"type": "command",
|
||||
"command": "shellCommand.execute",
|
||||
"args": {
|
||||
"command": "echo ^|^<Default^> && dir /b /a:d",
|
||||
"command": "echo \"|<Default>\" && ls -d */",
|
||||
"cwd": "${env:JABY_ENGINE_PATH}/config",
|
||||
"fieldSeparator": "|"
|
||||
}
|
||||
|
@@ -206,8 +206,8 @@ namespace NormalScene {
|
||||
FontWriter::new_font_writer.write(cursor.change_position(Make::PositionI16((GPU::Display::Width-VersionLength)/2, 16 + DefaultFont::Info.get_kern_size().height)), Version, GPU::Color24::Green(0xD0), &FontWriter::wiggle);
|
||||
menu.update(FontWriter::bios_font_writer, cursor, Make::PositionI16(8, 64));
|
||||
|
||||
cursor.change_position(Make::PositionI16(doener_fish.position.x + doener_fish.size.width, GPU::Display::Height - 32));
|
||||
FontWriter::bios_font_writer.write(cursor, "Audio:\n%s", cd_player.is_xa ? "CD-XA" : "CD-DA");
|
||||
cursor.change_position(Make::PositionI16(doener_fish.position.x + doener_fish.size.width, GPU::Display::Height - 48));
|
||||
FontWriter::bios_font_writer.write(cursor, "Audio:\n%s\n(SEL/R1/R2)", cd_player.is_xa ? "CD-XA" : "CD-DA");
|
||||
|
||||
if(Shared::load_test) {
|
||||
// Force state change if we are in the load_test state
|
||||
|
@@ -7,7 +7,7 @@ CLUT_4_COLOR_TRANS_FLAGS = simple-tim clut4 --color-trans
|
||||
# Ressources to convert
|
||||
## Music tracks
|
||||
INPUT += $(OUTPUT_DIR)/Evacuation_cdda.xa
|
||||
INPUT += $(OUTPUT_DIR)/fox.xa
|
||||
INPUT += $(OUTPUT_DIR)/OnMyOwn_BailBonds.xa
|
||||
INPUT += $(OUTPUT_DIR)/apple.vag
|
||||
INPUT += $(OUTPUT_DIR)/blubb-mono.vag
|
||||
INPUT += $(OUTPUT_DIR)/Friendship_samp.vag
|
||||
@@ -40,14 +40,14 @@ IMG_6921_TIM_FLAGS = tim full16 --clut-pos {384,255} --tex-pos {384,256}
|
||||
INPUT += $(OUTPUT_DIR)/AllTheJaby.tim
|
||||
AllTheJaby_TIM_FLAGS = tim full16 --tex-pos {0,0}
|
||||
|
||||
$(OUTPUT_DIR)/fox.xa: audio/temp/fox.wav
|
||||
@mkdir -p $(OUTPUT_DIR)
|
||||
psxfileconv $< -o $@ xa
|
||||
|
||||
$(OUTPUT_DIR)/%.vag: audio/temp/%.wav
|
||||
$(OUTPUT_DIR)/%.vag: audio/%.wav
|
||||
@mkdir -p $(OUTPUT_DIR)
|
||||
psxfileconv --lz4 $< -o $@ vag
|
||||
|
||||
$(OUTPUT_DIR)/OnMyOwn_BailBonds.xa: audio/OnMyOwn_BailBonds.mp3
|
||||
@mkdir -p $(OUTPUT_DIR)
|
||||
psxfileconv $< -o $@ xa
|
||||
|
||||
$(OUTPUT_DIR)/%.xa: audio/%.wav
|
||||
@mkdir -p $(OUTPUT_DIR)
|
||||
psxfileconv $< -o $@ xa
|
||||
|
BIN
examples/PoolBox/assets/audio/Friendship_samp.wav
(Stored with Git LFS)
Normal file
BIN
examples/PoolBox/assets/audio/Friendship_samp.wav
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
examples/PoolBox/assets/audio/OnMyOwn_BailBonds.mp3
(Stored with Git LFS)
Normal file
BIN
examples/PoolBox/assets/audio/OnMyOwn_BailBonds.mp3
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
examples/PoolBox/assets/audio/apple.wav
(Stored with Git LFS)
Normal file
BIN
examples/PoolBox/assets/audio/apple.wav
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
examples/PoolBox/assets/audio/blubb-mono.wav
(Stored with Git LFS)
Normal file
BIN
examples/PoolBox/assets/audio/blubb-mono.wav
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
examples/PoolBox/assets/audio/jlbrock44_Three_Kings_Funk_cdda_ready.wav
(Stored with Git LFS)
Normal file
BIN
examples/PoolBox/assets/audio/jlbrock44_Three_Kings_Funk_cdda_ready.wav
(Stored with Git LFS)
Normal file
Binary file not shown.
@@ -47,7 +47,7 @@
|
||||
<Directory name = "XAAUDIO" hidden = "true">
|
||||
<InterleavedFile name = "MIX.XA">
|
||||
<Channel>../assets/bin/Evacuation_cdda.xa</Channel>
|
||||
<Channel>../assets/bin/fox.xa</Channel>
|
||||
<Channel>../assets/bin/OnMyOwn_BailBonds.xa</Channel>
|
||||
</InterleavedFile>
|
||||
</Directory>
|
||||
<Directory name = "SFX" hidden = "true">
|
||||
@@ -56,5 +56,5 @@
|
||||
<File name = "FRIEND.VAG" lz4 = "already">../assets/bin/Friendship_samp.vag</File>
|
||||
</Directory>
|
||||
</Filesystem>
|
||||
<AudioTrack align = "true">../assets/audio/temp/breaking.wav</AudioTrack>
|
||||
<AudioTrack align = "true">../assets/audio/jlbrock44_Three_Kings_Funk_cdda_ready.wav</AudioTrack>
|
||||
</PSXCD>
|
@@ -1,8 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
// No include here because this header should be included in a namespace and we don't want multiple namespace definitions of OverlayHeader and OverlayLBA
|
||||
|
||||
#include "../AutoLBA/auto_lba_declaration.hpp"
|
||||
|
||||
#define __declare_overlay_header(function, enum_struct) \
|
||||
__declare_lba_header(enum_struct)
|
21
license
Normal file
21
license
Normal file
@@ -0,0 +1,21 @@
|
||||
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
|
||||
@mkdir -p $(REGION)
|
||||
@echo "!!PKG generation is experimentel!!"
|
||||
run_pop_fe.sh $(ARTIFACT) $(PWD)/assets/pkg $(PWD)/iso/$(REGION)/$(ARTIFACT).cue
|
||||
run_pop_fe.sh $(ARTIFACT) $(shell pwd)/../assets/pkg $(shell pwd)/$(REGION)/$(ARTIFACT).cue
|
||||
|
||||
all: $(CD_OUTPUT)
|
||||
clean: pkg_clean
|
||||
|
19
podman/Dockerfile
Normal file
19
podman/Dockerfile
Normal file
@@ -0,0 +1,19 @@
|
||||
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
|
17
podman/install.sh
Executable file
17
podman/install.sh
Executable file
@@ -0,0 +1,17 @@
|
||||
#!/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
|
17
podman/scripts/install_pop-fe.sh
Executable file
17
podman/scripts/install_pop-fe.sh
Executable file
@@ -0,0 +1,17 @@
|
||||
#!/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
|
9
podman/scripts/install_rust.sh
Executable file
9
podman/scripts/install_rust.sh
Executable file
@@ -0,0 +1,9 @@
|
||||
#!/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
|
65
podman/scripts/make_gcc.sh
Executable file
65
podman/scripts/make_gcc.sh
Executable file
@@ -0,0 +1,65 @@
|
||||
#!/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
|
5
podman/scripts/run_pop_fe.sh
Executable file
5
podman/scripts/run_pop_fe.sh
Executable file
@@ -0,0 +1,5 @@
|
||||
#!/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
|
120
readme.md
120
readme.md
@@ -1,26 +1,96 @@
|
||||
# Compatibility
|
||||
* PS1
|
||||
* Emulator
|
||||
- [X] Duckstation
|
||||
- [X] No$PSX
|
||||
- [X] Xebra
|
||||
- [ ] Real Hardware
|
||||
- PS3
|
||||
- [ ] Emulator
|
||||
- [ ] Real Hardware
|
||||
- [JabyEngine](#jabyengine)
|
||||
- [About](#about)
|
||||
- [How to build](#how-to-build)
|
||||
- [Building `Tools` (without VS Code)](#building-tools-without-vs-code)
|
||||
- [Building `JabyEngine` (without VS Code)](#building-jabyengine-without-vs-code)
|
||||
- [Building support library (without VS Code)](#building-support-library-without-vs-code)
|
||||
- [`FontWriter` (without VSCode)](#fontwriter-without-vscode)
|
||||
- [Building `PoolBox` (without VSCode)](#building-poolbox-without-vscode)
|
||||
- [Media creators](#media-creators)
|
||||
- [JabyEngine](#jabyengine-1)
|
||||
- [PoolBox](#poolbox)
|
||||
- [Special thanks](#special-thanks)
|
||||
- [Support this project](#support-this-project)
|
||||
|
||||
# TODO
|
||||
- [ ] Ko-fi supporter list
|
||||
- [ ] Support more GTE
|
||||
- [X] Easy serial code swap
|
||||
- [X] Support .subst files to be substituted with environment variables
|
||||
- [X] Support pop-fe
|
||||
- [ ] PS3 PKG generation tool?
|
||||
- [ ] PS3 runtime detection?
|
||||
- [ ] Move DMA code to public include for custom loading of files?
|
||||
- [ ] Maybe make it an interface with SPU/GPU as a specification...?
|
||||
- [ ] Could be empty classes that the linker maps to 0 or somewhere
|
||||
- [ ] Could be a all static struct (I like that better; We are not Nicolas Noble)
|
||||
- [ ] Redo the IO ports again...?
|
||||
- [ ] Support better file loading with threads
|
||||
- [ ] Loading Screen with GPU IO? (Does DMA and IO work together?)
|
||||
# JabyEngine
|
||||
## 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!
|
||||
|
||||
## 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.
|
||||
|
||||
`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:
|
||||
* `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.
|
||||
* `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:
|
||||
* `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:
|
||||
* `BUILD_PROFILE`: `debug`/`release`
|
||||
* `PSX_TV_FORMAT`: `PAL`/`NTSC`
|
||||
* `CUSTOM_CONFIG`: Empty or folder name under `./config`
|
||||
|
||||
### Building support library (without VS Code)
|
||||
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)
|
||||
`make` requires the following values to be passed:
|
||||
* `BUILD_PROFILE`: `debug`/`release`
|
||||
|
||||
### Building `PoolBox` (without VSCode)
|
||||
`PoolBox` is the one and only example project so far.
|
||||
`make` requires the following values to be passed:
|
||||
* `BUILD_PROFILE`: `debug`/`release`
|
||||
* `REGION`: `SCEE`/`SCEA`/`SCEI`
|
||||
* `CUSTOM_CONFIG`: Empty or folder name under `$(JABY_ENGINE_PATH)/config`
|
||||
|
||||
|
||||
# Media creators
|
||||
## JabyEngine
|
||||
| Art | Author |
|
||||
|-----------------------------------------------------------------|------------------------------------------------------------|
|
||||
| `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
|
||||
| Art | Author |
|
||||
|-----------------------------------------------------------------|-------------|
|
||||
| `examples\PoolBox\assets\AllTheJaby.png` | Niuka |
|
||||
| `examples\PoolBox\assets\IconTexture.png` | Charlie Nax |
|
||||
| `examples\PoolBox\assets\Paco.png` | Paco |
|
||||
|
||||
| Music | Author |
|
||||
|---------------------------------------------------------------------------|---------------------------------------|
|
||||
| `examples\PoolBox\assets\audio\apple.wav` | ??? |
|
||||
| `examples\PoolBox\assets\audio\blubb-mono.wav` | ??? |
|
||||
| `examples\PoolBox\assets\audio\Evacuation_cdda.wav` | Cody the white tiger |
|
||||
| `examples\PoolBox\assets\audio\Friendship_samp.wav` | From Dragon Quest VII |
|
||||
| `examples\PoolBox\assets\audio\jlbrock44_Three_Kings_Funk_cdda_ready.wav` | `Three Kings Funk` by spinningmerkaba |
|
||||
| `examples\PoolBox\assets\audio\OnMyOwn_BailBonds.mp3` | `On My Own` by Bail Bonds |
|
||||
|
||||
# Special thanks
|
||||
* Cody the white tiger
|
||||
* Nicolas Noble
|
||||
* Pyravia
|
||||
* Sickle
|
||||
|
||||
# Support this project
|
||||
* Try it out
|
||||
* Open Issues or Pull Requests
|
||||
* [Support it on KoFi](https://ko-fi.com/jabyspielkiste)
|
25
scripts/podman_jaby_engine.sh
Executable file
25
scripts/podman_jaby_engine.sh
Executable file
@@ -0,0 +1,25 @@
|
||||
#!/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,23 +19,13 @@
|
||||
{
|
||||
"label": "make",
|
||||
"type": "shell",
|
||||
"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}",
|
||||
},
|
||||
"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}",
|
||||
"group": "build"
|
||||
},
|
||||
{
|
||||
"label": "make_all",
|
||||
"type": "shell",
|
||||
"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}",
|
||||
},
|
||||
"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}",
|
||||
"group": "build"
|
||||
}
|
||||
],
|
||||
@@ -59,7 +49,7 @@
|
||||
"type": "command",
|
||||
"command": "shellCommand.execute",
|
||||
"args": {
|
||||
"command": "echo ^|^<Default^> && dir /b /a:d",
|
||||
"command": "echo \"|<Default>\" && ls -d */",
|
||||
"cwd": "${workspaceFolder}/../../config",
|
||||
"fieldSeparator": "|"
|
||||
}
|
||||
@@ -81,7 +71,7 @@
|
||||
]
|
||||
},
|
||||
"extensions": {
|
||||
"recommendations": ["augustocdias.tasks-shell-input"]
|
||||
"recommendations": ["augustocdias.tasks-shell-input", "cantonios.project-templates"]
|
||||
},
|
||||
"settings": {
|
||||
"cmake.configureOnOpen": false,
|
||||
|
@@ -14,13 +14,21 @@ define cp_artifact
|
||||
endef
|
||||
|
||||
define cargo_windows_default
|
||||
$(if $(findstring upgrade,$(CARGO_CMD)),
|
||||
cargo $(CARGO_CMD) --$(BUILD_PROFILE),
|
||||
|
||||
cargo $(CARGO_CMD) --$(BUILD_PROFILE) --target=$(WINDOWS_TARGET)
|
||||
$(call cp_artifact,$(WINDOWS_ARTIFACT), ../../../bin/$(ARTIFACT).exe)
|
||||
)
|
||||
endef
|
||||
|
||||
define cargo_unix_default
|
||||
$(if $(findstring upgrade,$(CARGO_CMD)),
|
||||
cargo $(CARGO_CMD) --$(BUILD_PROFILE),
|
||||
|
||||
cargo $(CARGO_CMD) --$(BUILD_PROFILE) --target=$(UNIX_TARGET)
|
||||
$(call cp_artifact,$(UNIX_ARTIFACT), ../../../bin/$(ARTIFACT))
|
||||
)
|
||||
endef
|
||||
|
||||
# Windows build requires "rustup target add x86_64-pc-windows-gnu" and "sudo apt-get install mingw-w64"
|
@@ -1,3 +1,4 @@
|
||||
SUPPORT_PROJECTS = cdtypes tool_helper
|
||||
PROJECTS = cpp_out psxfileconv mkoverlay psxcdgen_ex psxreadmap wslpath
|
||||
.PHONY: $(PROJECTS)
|
||||
|
||||
|
@@ -6,23 +6,14 @@
|
||||
],
|
||||
"settings": {
|
||||
"cargo_task": [
|
||||
"./ all!Unix: All",
|
||||
"cpp_out all!Unix: cpp_out",
|
||||
"mkoverlay all!Unix: mkoverlay",
|
||||
"psxcdgen_ex all!Unix: psxcdgen_ex",
|
||||
"psxcdread all!Unix: psxcdread",
|
||||
"psxfileconv all!Unix: psxfileconv",
|
||||
"psxreadmap all!Unix: psxreadmap",
|
||||
"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"
|
||||
"./ all!All",
|
||||
"cpp_out all!cpp_out",
|
||||
"mkoverlay all!mkoverlay",
|
||||
"psxcdgen_ex all!psxcdgen_ex",
|
||||
"psxcdread all!psxcdread",
|
||||
"psxfileconv all!psxfileconv",
|
||||
"psxreadmap all!psxreadmap",
|
||||
"wslpath all!wslpath",
|
||||
]
|
||||
},
|
||||
"tasks": {
|
||||
@@ -34,26 +25,11 @@
|
||||
"group": {
|
||||
"kind": "build"
|
||||
},
|
||||
"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}"
|
||||
},
|
||||
"command": "../../scripts/podman_jaby_engine.sh ../../:src/Tools make -C ${input:linux_cargo_task} CARGO_CMD=${input:cargo cmd} BUILD_PROFILE=${input:build cfg}",
|
||||
"problemMatcher": []
|
||||
}
|
||||
],
|
||||
"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",
|
||||
"type": "command",
|
||||
@@ -66,14 +42,14 @@
|
||||
{
|
||||
"id": "build cfg",
|
||||
"type": "pickString",
|
||||
"options": ["debug", "release"],
|
||||
"options": ["debug", "release", "compatible", "incompatible"],
|
||||
"default": "release",
|
||||
"description": "build configuration"
|
||||
},
|
||||
{
|
||||
"id": "cargo cmd",
|
||||
"type":"pickString",
|
||||
"options": ["build", "check", "update", "clean", "run", "tree"],
|
||||
"options": ["build", "check", "upgrade", "clean", "run", "tree"],
|
||||
"default": "build",
|
||||
"description": "cargo command to run"
|
||||
}
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "cdtypes"
|
||||
version = "0.7.2"
|
||||
version = "1.0.0"
|
||||
edition = "2021"
|
||||
|
||||
[profile.release]
|
||||
@@ -8,5 +8,5 @@ panic = "abort"
|
||||
|
||||
[dependencies]
|
||||
byteorder = "1.5.0"
|
||||
chrono = "0.4.31"
|
||||
paste = "1.0.14"
|
||||
chrono = "0.4.39"
|
||||
paste = "1.0.15"
|
||||
|
13
src/Tools/cdtypes/Makefile
Normal file
13
src/Tools/cdtypes/Makefile
Normal file
@@ -0,0 +1,13 @@
|
||||
include ../Common.mk
|
||||
|
||||
ARTIFACT = cdtypes
|
||||
|
||||
.PHONY: $(WINDOWS_ARTIFACT) $(UNIX_ARTIFACT)
|
||||
$(WINDOWS_ARTIFACT):
|
||||
$(call cargo_windows_default)
|
||||
|
||||
$(UNIX_ARTIFACT):
|
||||
$(call cargo_unix_default)
|
||||
|
||||
all-windows: $(WINDOWS_ARTIFACT)
|
||||
all: $(UNIX_ARTIFACT)
|
@@ -7,5 +7,5 @@ edition = "2021"
|
||||
panic = "abort"
|
||||
|
||||
[dependencies]
|
||||
clap = {version = "4.4.11", features = ["derive"]}
|
||||
clap = {version = "4.5.23", features = ["derive"]}
|
||||
tool_helper = {path = "../tool_helper"}
|
||||
|
@@ -7,6 +7,6 @@ edition = "2021"
|
||||
panic = "abort"
|
||||
|
||||
[dependencies]
|
||||
clap = {version = "4.4.11", features = ["derive"]}
|
||||
serde_json = "1.0.108"
|
||||
clap = {version = "4.5.23", features = ["derive"]}
|
||||
serde_json = "1.0.134"
|
||||
tool_helper = {path = "../tool_helper"}
|
@@ -8,10 +8,10 @@ panic = "abort"
|
||||
|
||||
[dependencies]
|
||||
cdtypes = {path = "../cdtypes"}
|
||||
clap = {version = "4.4.11", features = ["derive"]}
|
||||
colored = "2.1.0"
|
||||
clap = {version = "4.5.23", features = ["derive"]}
|
||||
colored = "2.2.0"
|
||||
hound = "3.5.1"
|
||||
no-comment = "0.0.3"
|
||||
paste = "1.0.14"
|
||||
paste = "1.0.15"
|
||||
roxmltree = "0.19.0"
|
||||
tool_helper = {path = "../tool_helper"}
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "psxfileconv"
|
||||
version = "0.9.0"
|
||||
version = "1.0.0"
|
||||
edition = "2021"
|
||||
|
||||
[profile.release]
|
||||
@@ -28,11 +28,11 @@ symphonia-vorbis = ["symphonia", "symphonia/vorbis"]
|
||||
[dependencies]
|
||||
bitflags = "2.6.0"
|
||||
cdtypes = {path = "../cdtypes"}
|
||||
clap = {version = "4.4.11", features = ["derive"]}
|
||||
image = "0.24.7"
|
||||
clap = {version = "4.5.23", features = ["derive"]}
|
||||
image = "0.24.9"
|
||||
hound = "3.5.1"
|
||||
paste = "1.0.14"
|
||||
png = "0.17.10"
|
||||
paste = "1.0.15"
|
||||
png = "0.17.16"
|
||||
rubato = "0.16.1"
|
||||
symphonia = {version = "0.5.4", optional = true, default-features = false}
|
||||
tool_helper = {path = "../tool_helper"}
|
@@ -7,7 +7,7 @@ edition = "2021"
|
||||
panic = "abort"
|
||||
|
||||
[dependencies]
|
||||
clap = {version = "4.4.11", features = ["derive"]}
|
||||
clap = {version = "4.5.23", features = ["derive"]}
|
||||
crossterm = "0.27.0"
|
||||
ratatui = "0.25.0"
|
||||
readmap = {version = "*", path = "readmap"}
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "tool_helper"
|
||||
version = "0.9.8"
|
||||
version = "1.0.0"
|
||||
edition = "2021"
|
||||
|
||||
[profile.release]
|
||||
@@ -9,9 +9,9 @@ panic = "abort"
|
||||
[dependencies]
|
||||
byteorder = "1.5.0"
|
||||
cdtypes = {path = "../cdtypes"}
|
||||
colored = "2.0.4"
|
||||
colored = "2.2.0"
|
||||
envmnt = "0.10.4"
|
||||
hound = "3.5.1"
|
||||
lz4 = "1.24.0"
|
||||
paste = "1.0.14"
|
||||
lz4 = "1.28.0"
|
||||
paste = "1.0.15"
|
||||
wslpath = {path = "../wslpath"}
|
13
src/Tools/tool_helper/Makefile
Normal file
13
src/Tools/tool_helper/Makefile
Normal file
@@ -0,0 +1,13 @@
|
||||
include ../Common.mk
|
||||
|
||||
ARTIFACT = tool_helper
|
||||
|
||||
.PHONY: $(WINDOWS_ARTIFACT) $(UNIX_ARTIFACT)
|
||||
$(WINDOWS_ARTIFACT):
|
||||
$(call cargo_windows_default)
|
||||
|
||||
$(UNIX_ARTIFACT):
|
||||
$(call cargo_unix_default)
|
||||
|
||||
all-windows: $(WINDOWS_ARTIFACT)
|
||||
all: $(UNIX_ARTIFACT)
|
@@ -7,4 +7,4 @@ edition = "2021"
|
||||
panic = "abort"
|
||||
|
||||
[dependencies]
|
||||
clap = {version = "4.4.7", features = ["derive"]}
|
||||
clap = {version = "4.5.23", features = ["derive"]}
|
||||
|
@@ -1,4 +1,3 @@
|
||||
JABY_ENGINE_DIR = ../../..
|
||||
include $(JABY_ENGINE_DIR)/mkfile/common/RebuildTarget.mk
|
||||
|
||||
ARTIFACT = libFontWriter
|
||||
|
@@ -1,6 +1,6 @@
|
||||
FontWriter: always
|
||||
.PHONY: FontWriter
|
||||
|
||||
FontWriter:
|
||||
$(MAKE) -C $(JABY_ENGINE_DIR)/support/src/FontWriter $(MAKECMDGOALS)
|
||||
|
||||
all: FontWriter
|
||||
|
||||
always: ;
|
@@ -19,15 +19,7 @@
|
||||
{
|
||||
"label": "make",
|
||||
"type": "shell",
|
||||
"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"
|
||||
},
|
||||
"command": "../../scripts/podman_jaby_engine.sh ${workspaceFolder}/..:src/FontWriter make ${input:target} BUILD_PROFILE=${input:build cfg}",
|
||||
"group": "build"
|
||||
}
|
||||
],
|
||||
|
@@ -11,32 +11,17 @@
|
||||
{
|
||||
"label": "build",
|
||||
"type": "shell",
|
||||
"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}",
|
||||
},
|
||||
"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}",
|
||||
"group": {
|
||||
"kind": "build",
|
||||
"isDefault": true
|
||||
},
|
||||
"options": {
|
||||
"env": {
|
||||
"PATH": "${env:JABY_ENGINE_PATH}/bin;${env:PATH}"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"label": "read memory map",
|
||||
"type": "shell",
|
||||
"command": "psxreadmap.exe ${input:output memory map} application/bin/${input:tv format}/PSX-${input:build profile}/#{ProjectName}.elf",
|
||||
"command": "${env:JABY_ENGINE_PATH}/bin/psxreadmap ${input:output memory map} application/bin/${input:tv format}/PSX-${input:build profile}/#{ProjectName}.elf",
|
||||
"problemMatcher": [],
|
||||
"options": {
|
||||
"env": {
|
||||
"PATH": "${env:JABY_ENGINE_PATH}/bin;${env:PATH}"
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"inputs": [
|
||||
@@ -73,7 +58,7 @@
|
||||
"type": "command",
|
||||
"command": "shellCommand.execute",
|
||||
"args": {
|
||||
"command": "echo ^|^<Default^> && dir /b /a:d",
|
||||
"command": "echo \"|<Default>\" && ls -d */",
|
||||
"cwd": "${env:JABY_ENGINE_PATH}/config",
|
||||
"fieldSeparator": "|"
|
||||
}
|
||||
|
@@ -1,6 +0,0 @@
|
||||
echo off
|
||||
set dst_name=JabyEngine-PSX_Game
|
||||
set dst="%APPDATA%\Code\User\ProjectTemplates\%dst_name%"
|
||||
|
||||
mkdir %dst%
|
||||
xcopy /s %dst_name% %dst%
|
5
template/install.sh
Executable file
5
template/install.sh
Executable file
@@ -0,0 +1,5 @@
|
||||
#!/usr/bin/env bash
|
||||
dst="$HOME/.config/Code/User/ProjectTemplates"
|
||||
|
||||
mkdir -p $dst
|
||||
cp -r "JabyEngine-PSX_Game" "$dst"
|
@@ -1,42 +0,0 @@
|
||||
#!/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
|
@@ -1,2 +0,0 @@
|
||||
#!/bin/bash
|
||||
sudo curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
|
@@ -1,55 +0,0 @@
|
||||
#!/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
|
@@ -1,3 +0,0 @@
|
||||
#!/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