mirror of
https://github.com/spicyjpeg/573in1.git
synced 2025-01-22 19:52:05 +01:00
Bump to 0.4.7, rename to 573in1 and update docs
This commit is contained in:
parent
c4ff4eb62e
commit
84985785c8
4
.github/scripts/buildRelease.sh
vendored
4
.github/scripts/buildRelease.sh
vendored
@ -1,7 +1,7 @@
|
||||
#!/bin/bash
|
||||
|
||||
ROOT_DIR="$(pwd)"
|
||||
PROJECT_DIR="$ROOT_DIR/cart-tool"
|
||||
PROJECT_DIR="$ROOT_DIR/573in1"
|
||||
OPENBIOS_DIR="$ROOT_DIR/nugget/openbios"
|
||||
TOOLCHAIN_DIR="$ROOT_DIR/gcc-mipsel-none-elf"
|
||||
|
||||
@ -14,7 +14,7 @@ cmake --build "$PROJECT_DIR/build" \
|
||||
|
||||
RELEASE_NAME="$(
|
||||
ls "$PROJECT_DIR/build" |
|
||||
grep -E -o '^cart-tool-[0-9]+\.[0-9]+\.[0-9]+' |
|
||||
grep -E -o '^573in1-[0-9]+\.[0-9]+\.[0-9]+' |
|
||||
head -n 1
|
||||
)"
|
||||
|
||||
|
12
.github/workflows/build.yml
vendored
12
.github/workflows/build.yml
vendored
@ -21,7 +21,7 @@ jobs:
|
||||
- name: Fetch repo contents
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
path: cart-tool
|
||||
path: 573in1
|
||||
|
||||
- name: Fetch OpenBIOS repo contents
|
||||
uses: actions/checkout@v4
|
||||
@ -34,27 +34,27 @@ jobs:
|
||||
run: |
|
||||
sudo apt-get update -y
|
||||
sudo apt-get install -y --no-install-recommends ninja-build mame-tools
|
||||
sudo pip3 install -r cart-tool/tools/requirements.txt
|
||||
sudo pip3 install -r 573in1/tools/requirements.txt
|
||||
|
||||
- name: Build GCC toolchain
|
||||
if: ${{ steps.cache.outputs.cache-hit != 'true' }}
|
||||
run: |
|
||||
cart-tool/.github/scripts/buildToolchain.sh gcc-mipsel-none-elf mipsel-none-elf
|
||||
573in1/.github/scripts/buildToolchain.sh gcc-mipsel-none-elf mipsel-none-elf
|
||||
|
||||
- name: Build project
|
||||
run: |
|
||||
cart-tool/.github/scripts/buildRelease.sh
|
||||
573in1/.github/scripts/buildRelease.sh
|
||||
|
||||
- name: Upload build artifacts
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: build
|
||||
if-no-files-found: error
|
||||
path: cart-tool-*.zip
|
||||
path: 573in1-*.zip
|
||||
|
||||
- name: Publish release
|
||||
if: ${{ github.ref_type == 'tag' }}
|
||||
uses: softprops/action-gh-release@v1
|
||||
with:
|
||||
fail_on_unmatched_files: true
|
||||
files: cart-tool-*.zip
|
||||
files: 573in1-*.zip
|
||||
|
@ -4,10 +4,10 @@ cmake_minimum_required(VERSION 3.25)
|
||||
set(CMAKE_TOOLCHAIN_FILE "${CMAKE_CURRENT_LIST_DIR}/cmake/toolchain.cmake")
|
||||
|
||||
project(
|
||||
cart-tool
|
||||
573in1
|
||||
LANGUAGES C CXX ASM
|
||||
VERSION 0.4.6
|
||||
DESCRIPTION "Konami System 573 security cartridge tool"
|
||||
VERSION 0.4.7
|
||||
DESCRIPTION "Konami System 573 maintenance tool"
|
||||
)
|
||||
|
||||
set(
|
||||
|
86
README.md
86
README.md
@ -1,41 +1,65 @@
|
||||
|
||||
# Konami System 573 security cartridge tool
|
||||
<p align="center">
|
||||
<img src="doc/assets/logo.png" alt="573in1 logo" />
|
||||
</p>
|
||||
|
||||
## Building
|
||||
573in1 is a full-featured homebrew maintenance and troubleshooting tool, game
|
||||
installer and BIOS ROM replacement for arcade games based on Konami's System 573
|
||||
PCB, such as earlier versions of Dance Dance Revolution and other Bemani rhythm
|
||||
games from the same era. It currently allows for:
|
||||
|
||||
The following dependencies are required in order to build the project:
|
||||
- dumping, erasing and writing images to the onboard flash memory, PCMCIA flash
|
||||
cards and RTC RAM;
|
||||
- dumping security cartridge EEPROMs and editing the serial number stored in
|
||||
them in order to reinstall a game on a different system;
|
||||
- repurposing cartridges for use with any game that uses the same cartridge
|
||||
type;
|
||||
- browsing the CD-ROM, or any attached IDE hard drive or CF card, and launching
|
||||
System 573 and PS1 executables.
|
||||
|
||||
- CMake 3.25 or later;
|
||||
- Python 3.10 or later;
|
||||
- [Ninja](https://ninja-build.org/);
|
||||
- a recent version of the GCC toolchain that targets the `mipsel-none-elf`
|
||||
architecture;
|
||||
- optionally, `xorriso` and `chdman` (in order to build the CD-ROM image).
|
||||
## Download and usage
|
||||
|
||||
The toolchain can be installed on Windows, Linux or macOS by following the
|
||||
instructions [here](https://github.com/grumpycoders/pcsx-redux/blob/main/src/mips/psyqo/GETTING_STARTED.md#the-toolchain)
|
||||
and should be added to `PATH`. The other dependencies can be installed through a
|
||||
package manager.
|
||||
The latest version of 573in1 can be found on the releases page, accessible
|
||||
through the GitHub sidebar. The tool is available in three different formats:
|
||||
|
||||
The Python script used to convert images at build time requires additional
|
||||
dependencies which can be installed by running:
|
||||
- as a CD-ROM image, usable on any 573 equipped with a CD-ROM drive (including
|
||||
ones fitted with BIOS mod boards);
|
||||
- as a BIOS ROM image, allowing the system to boot directly into the 573in1 main
|
||||
menu (even with no IDE drives connected) and optionally launch a game or
|
||||
custom executable automatically;
|
||||
- as a standalone 573 executable for advanced users.
|
||||
|
||||
```
|
||||
py -m pip install -r tools/requirements.txt (Windows)
|
||||
sudo pip install -r tools/requirements.txt (Linux/macOS)
|
||||
```
|
||||
See the [documentation](doc/index.md) for more information and usage
|
||||
instructions. Reading the documentation before proceeding is highly recommended.
|
||||
|
||||
Once all prerequisites are installed, the tool can be built in debug mode (with
|
||||
command-line argument parsing disabled and serial port logging enabled by
|
||||
default) by running:
|
||||
## Contributing
|
||||
|
||||
```
|
||||
cmake --preset debug
|
||||
cmake --build ./build
|
||||
```
|
||||
Pull requests are welcome. If you wish to add functionality (e.g. game-specific
|
||||
menus to manipulate user data, extract assets and so on) feel free to do so,
|
||||
however please stick to the following guidelines:
|
||||
|
||||
Replace `debug` with `release` to build in release mode or `min-size-release` to
|
||||
optimize the executable for size. If `xorriso` is installed and listed in the
|
||||
`PATH` environment variable, a bootable CD-ROM image will be generated alongside
|
||||
the executable. A copy of the image in CHD format will additionally be generated
|
||||
if MAME's `chdman` tool is also present.
|
||||
- Do not include any code lifted as-is or minimally modified from a game
|
||||
disassembly. Rewritten and properly explained/commented code is fine.
|
||||
- Do not include any Konami game files or excerpts thereof. If necessary, only
|
||||
include metadata about the files such as hashes, offsets, sizes and so on.
|
||||
- Store any such metadata as a file in the resource archive (see
|
||||
`resources.json`) rather than hardcoding it. If possible, provide a copy of
|
||||
the scripts used to gather the data from the original files in the `tools`
|
||||
directory.
|
||||
- Adding a section to the documentation covering usage of the newly added
|
||||
functionality is not required, but would be highly appreciated.
|
||||
|
||||
## License
|
||||
|
||||
The tool is licensed under the [GNU GPLv3](LICENSE). You may freely distribute
|
||||
modified versions as long as you also provide the full source code, attribution
|
||||
and a link back to this repository.
|
||||
|
||||
## See also
|
||||
|
||||
- Naoki Saito's 573 resources:
|
||||
- [Konami's System 573 - Everything you wanted to know about it!](https://youtube.com/watch?v=Cm6ycmTbwIU)
|
||||
- [System 573 repo](https://github.com/NaokiS28/KSystem-573)
|
||||
- [System 573 specifications](https://psx-spx.consoledev.net/konamisystem573)
|
||||
- [ps1-bare-metal](https://github.com/spicyjpeg/ps1-bare-metal)
|
||||
- [PSX.Dev Discord server](https://discord.gg/QByKPpH)
|
||||
|
@ -1,4 +1,4 @@
|
||||
- Konami System 573 tool -
|
||||
- 573in1: Konami System 573 maintenance tool -
|
||||
|
||||
Version ${PROJECT_VERSION}
|
||||
(C) 2022-2024 spicyjpeg
|
||||
@ -25,6 +25,7 @@ Testing:
|
||||
Special thanks:
|
||||
987123879113
|
||||
Gabrimax
|
||||
Hyphen/4434
|
||||
Martin Korth (nocash)
|
||||
Nicolas Noble
|
||||
Everyone on the Rhythm Game Cabs and PSX.Dev Discord servers
|
||||
@ -182,7 +183,5 @@ Software.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Several security cartridges were killed during the development of this tool. May
|
||||
they rest in peace.
|
||||
A System 573, a flash chip and several security cartridges were killed during
|
||||
the development of this tool. May they all rest in peace.
|
||||
|
@ -1,6 +1,6 @@
|
||||
|
||||
Konami System 573 tool
|
||||
======================
|
||||
573in1: Konami System 573 maintenance tool
|
||||
==========================================
|
||||
|
||||
Version ${PROJECT_VERSION}
|
||||
(C) 2022-2024 spicyjpeg
|
||||
|
Binary file not shown.
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 2.5 KiB |
BIN
doc/assets/logo.png
Normal file
BIN
doc/assets/logo.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 4.3 KiB |
@ -11,7 +11,7 @@
|
||||
#define VERSION_STRING VERSION "-debug"
|
||||
#endif
|
||||
|
||||
#define EXTERNAL_DATA_DIR "hdd:/cartdata"
|
||||
#define EXTERNAL_DATA_DIR "hdd:/573in1"
|
||||
|
||||
enum Character : char {
|
||||
CH_UP_ARROW = '\x80',
|
||||
|
@ -431,56 +431,43 @@ static constexpr inline util::Hash operator""_h(
|
||||
|
||||
/* Logging macros */
|
||||
|
||||
#ifdef ENABLE_APP_LOGGING
|
||||
#define LOG_APP(fmt, ...) \
|
||||
#define LOG(type, fmt, ...) \
|
||||
util::logger.log( \
|
||||
"app,%s(%d): " fmt, __func__, __LINE__ __VA_OPT__(,) __VA_ARGS__ \
|
||||
type ",%s(%d): " fmt, __func__, __LINE__ __VA_OPT__(,) __VA_ARGS__ \
|
||||
)
|
||||
|
||||
#ifdef ENABLE_APP_LOGGING
|
||||
#define LOG_APP(fmt, ...) LOG("app", fmt __VA_OPT__(,) __VA_ARGS__)
|
||||
#else
|
||||
#define LOG_APP(fmt, ...)
|
||||
#endif
|
||||
|
||||
#ifdef ENABLE_CART_IO_LOGGING
|
||||
#define LOG_CART_IO(fmt, ...) \
|
||||
util::logger.log( \
|
||||
"cart,%s(%d): " fmt, __func__, __LINE__ __VA_OPT__(,) __VA_ARGS__ \
|
||||
)
|
||||
#define LOG_CART_IO(fmt, ...) LOG("cart", fmt __VA_OPT__(,) __VA_ARGS__)
|
||||
#else
|
||||
#define LOG_CART_IO(fmt, ...)
|
||||
#endif
|
||||
|
||||
#ifdef ENABLE_CART_DATA_LOGGING
|
||||
#define LOG_CART_DATA(fmt, ...) \
|
||||
util::logger.log( \
|
||||
"data,%s(%d): " fmt, __func__, __LINE__ __VA_OPT__(,) __VA_ARGS__ \
|
||||
)
|
||||
#define LOG_CART_DATA(fmt, ...) LOG("data", fmt __VA_OPT__(,) __VA_ARGS__)
|
||||
#else
|
||||
#define LOG_CART_DATA(fmt, ...)
|
||||
#endif
|
||||
|
||||
#ifdef ENABLE_ROM_LOGGING
|
||||
#define LOG_ROM(fmt, ...) \
|
||||
util::logger.log( \
|
||||
"rom,%s(%d): " fmt, __func__, __LINE__ __VA_OPT__(,) __VA_ARGS__ \
|
||||
)
|
||||
#define LOG_ROM(fmt, ...) LOG("rom", fmt __VA_OPT__(,) __VA_ARGS__)
|
||||
#else
|
||||
#define LOG_ROM(fmt, ...)
|
||||
#endif
|
||||
|
||||
#ifdef ENABLE_IDE_LOGGING
|
||||
#define LOG_IDE(fmt, ...) \
|
||||
util::logger.log( \
|
||||
"ide,%s(%d): " fmt, __func__, __LINE__ __VA_OPT__(,) __VA_ARGS__ \
|
||||
)
|
||||
#define LOG_IDE(fmt, ...) LOG("ide", fmt __VA_OPT__(,) __VA_ARGS__)
|
||||
#else
|
||||
#define LOG_IDE(fmt, ...)
|
||||
#endif
|
||||
|
||||
#ifdef ENABLE_FS_LOGGING
|
||||
#define LOG_FS(fmt, ...) \
|
||||
util::logger.log( \
|
||||
"fs,%s(%d): " fmt, __func__, __LINE__ __VA_OPT__(,) __VA_ARGS__ \
|
||||
)
|
||||
#define LOG_FS(fmt, ...) LOG("fs", fmt __VA_OPT__(,) __VA_ARGS__)
|
||||
#else
|
||||
#define LOG_FS(fmt, ...)
|
||||
#endif
|
||||
|
Loading…
x
Reference in New Issue
Block a user