From 8ab79646aed7496ab33b64d404991b5aba3ce0bd Mon Sep 17 00:00:00 2001 From: Alex Free Date: Mon, 20 Nov 2023 19:39:55 -0500 Subject: [PATCH] change toolchain to mipsel-none-elf and clean up build system --- .gitmodules | 3 - Makefile | 12 +- boot-cd/Makefile | 3 +- build.md | 36 +- crosstool-ng | 1 - ct-ng-config | 842 -------------------------------- entrypoints/Makefile | 1 - entrypoints/entry.S | 108 ++-- freepsxboot/Makefile | 1 - gshax/Makefile | 10 +- loader/Makefile | 1 - loader/Makefile.ff9 | 1 - loader/Makefile.freepsxboot | 2 +- loader/Makefile.rom | 2 +- loader/Makefile.tocperfect | 2 +- loader/Makefile.xstation | 2 +- loader/bios-asm.S | 90 ++-- loader/bios.h | 2 +- loader/cdrom.h | 2 +- loader/cfgparse.h | 2 +- loader/crc.h | 2 +- loader/debugscreen.h | 2 +- loader/gpu.h | 2 +- loader/integrity.c | 2 +- loader/io.h | 2 +- loader/secondary.c | 2 +- loader/str.c | 2 +- loader/tonyhax-tpl-24kb.mcs | Bin 0 -> 24704 bytes loader/tonyhax-tpl-ff9-24kb.mcs | Bin 0 -> 24704 bytes loader/util.h | 2 +- readme.md | 2 +- rom/Makefile | 3 +- scripts/build-mkpsxiso.sh | 7 - scripts/build-tool-chain.sh | 15 - scripts/build.sh | 11 - scripts/clean.sh | 5 - scripts/set-env-only.sh | 4 - scripts/update-version.sh | 10 - util/bin2h.sh | 4 +- variables-shared.mk | 11 +- variables.mk | 7 - variables.mk.freepsxboot | 4 +- variables.mk.rom | 4 +- variables.mk.tocperfect | 4 +- variables.mk.xstation | 4 +- xstation/Makefile | 3 +- 46 files changed, 167 insertions(+), 1070 deletions(-) delete mode 160000 crosstool-ng delete mode 100644 ct-ng-config create mode 100644 loader/tonyhax-tpl-24kb.mcs create mode 100644 loader/tonyhax-tpl-ff9-24kb.mcs delete mode 100755 scripts/build-mkpsxiso.sh delete mode 100755 scripts/build-tool-chain.sh delete mode 100755 scripts/build.sh delete mode 100755 scripts/clean.sh delete mode 100755 scripts/set-env-only.sh delete mode 100755 scripts/update-version.sh delete mode 100644 variables.mk diff --git a/.gitmodules b/.gitmodules index 01d66ec..5306f31 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,6 +1,3 @@ -[submodule "crosstool-ng"] - path = crosstool-ng - url = https://github.com/crosstool-ng/crosstool-ng [submodule "mkpsxiso"] path = mkpsxiso url = https://github.com/lameguy64/mkpsxiso diff --git a/Makefile b/Makefile index 0efb647..7f18e49 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,6 @@ # Thanks to whoever made https://devhints.io/makefile! -include variables.mk include variables-shared.mk PACKAGE_FILE = tonyhax-international-$(TONYHAX_VERSION).zip @@ -54,3 +53,14 @@ clean: $(MAKE) -C gameshark clean $(MAKE) -C gshax clean $(RM) tonyhax-*.zip + +deps: + scripts/get-deps.sh + $(MAKE) -C pcsx-redux-support clean tools + cd mkpsxiso; rm -rf ./build; cmake -S . -B ./build -DCMAKE_BUILD_TYPE=Release; cmake --build ./build + cd psexe2rom; $(MAKE) clean; $(MAKE) + +clean-deps: + $(MAKE) -C pcsx-redux-support clean + cd mkpsxiso; rm -rf ./build + cd psexe2rom; $(MAKE) clean \ No newline at end of file diff --git a/boot-cd/Makefile b/boot-cd/Makefile index cc323fc..55be278 100644 --- a/boot-cd/Makefile +++ b/boot-cd/Makefile @@ -1,7 +1,6 @@ # Thanks to whoever made https://devhints.io/makefile! -include ../variables.mk include ../variables-shared.mk .PHONY: clean @@ -12,4 +11,4 @@ clean: $(RM) $(BOOT_CD_FILES) $(BOOT_CD_FILES): ../loader/tonyhax.exe cd-e.xml cd-j.xml licensee.dat licensej.dat system.cnf - mkpsxiso -y cd-e.xml; mkpsxiso -y cd-j.xml + ../mkpsxiso/build/mkpsxiso -y cd-e.xml; mkpsxiso -y cd-j.xml diff --git a/build.md b/build.md index ff517ce..9da5bb7 100644 --- a/build.md +++ b/build.md @@ -1,28 +1,26 @@ # Building From Source -Obtain the **complete Tonyhax International current source tree from GitHub using git**, using the command below: +1) Install the `mipsel-none-elf` toolchain. The easist way is to use my [PSN00bSDK Builder](https://alex-free.github.io/psn00bsdk-builder): + +`git clone https://github.com/alex-free/psn00bsdk-builder` + +`cd psn00bsdk-builder` + +`./build.sh` + +`cd ../` + +2) Clone Tonyhax International **recursively** from GitHub: `git clone --recursive https://github.com/alex-free/tonyhax` -Next, install all the required dependencies: -* git -* autoconf -* automake -* g++ -* make -* libtool -* texinfo -* help2man -* ncurses-devel -* libtinyxml2-devel -* cmake -* cdrdao -* python3 -* python3-pip (and numpy, which is installed via this command: `pip3 install numpy`) +3) Install the required dependencies: + +`cd tonyhax` -If you have the `dnf` or `apt` package manager, you can download the build dependencies automatically with the `get-deps.sh` script found in the `scripts` folder of the Tonyhax International [source tree](https//alex-free.github.io/tonyhax). **For any other OS, you'll need to find the above packages and install them manually yourself.** Please feel free to add support for your package manager. +`make deps` -Next, you need to build the tool-chain. Execute the `build-tool-chain.sh` script, which is found in the `scripts` directory of the source tree. **This will take some time to build, depending on how fast your computer is.** +Build Tonyhax International: -With everything now installed, build Tonyhax International with the `build.sh` script found in the `scripts` directory of the Tonyhax International source tree. After you build Tonyhax International a release `.zip` file will be generated in the root of the source directory. \ No newline at end of file +`make` \ No newline at end of file diff --git a/crosstool-ng b/crosstool-ng deleted file mode 160000 index b8e4986..0000000 --- a/crosstool-ng +++ /dev/null @@ -1 +0,0 @@ -Subproject commit b8e49869ba6a4e8bf2d8bfd3517dd70766eeaf23 diff --git a/ct-ng-config b/ct-ng-config deleted file mode 100644 index e79bbb2..0000000 --- a/ct-ng-config +++ /dev/null @@ -1,842 +0,0 @@ -# -# Automatically generated file; DO NOT EDIT. -# crosstool-NG 1.25.0.98_b8e4986 Configuration -# -CT_CONFIGURE_has_static_link=y -CT_CONFIGURE_has_cxx11=y -CT_CONFIGURE_has_wget=y -CT_CONFIGURE_has_curl=y -CT_CONFIGURE_has_ninja=y -CT_CONFIGURE_has_rsync=y -CT_CONFIGURE_has_make_3_81_or_newer=y -CT_CONFIGURE_has_make_4_0_or_newer=y -CT_CONFIGURE_has_libtool_2_4_or_newer=y -CT_CONFIGURE_has_libtoolize_2_4_or_newer=y -CT_CONFIGURE_has_autoconf_2_71_or_newer=y -CT_CONFIGURE_has_autoreconf_2_71_or_newer=y -CT_CONFIGURE_has_automake_1_16_or_newer=y -CT_CONFIGURE_has_gnu_m4_1_4_12_or_newer=y -CT_CONFIGURE_has_python_3_4_or_newer=y -CT_CONFIGURE_has_bison_2_7_or_newer=y -CT_CONFIGURE_has_bison_3_0_4_or_newer=y -CT_CONFIGURE_has_python=y -CT_CONFIGURE_has_svn=y -CT_CONFIGURE_has_git=y -CT_CONFIGURE_has_md5sum=y -CT_CONFIGURE_has_sha1sum=y -CT_CONFIGURE_has_sha256sum=y -CT_CONFIGURE_has_sha512sum=y -CT_CONFIGURE_has_install_with_strip_program=y -CT_VERSION="1.25.0.98_b8e4986" -CT_VCHECK="" -CT_CONFIG_VERSION_ENV="4" -CT_CONFIG_VERSION_CURRENT="4" -CT_CONFIG_VERSION="4" -CT_MODULES=y - -# -# Paths and misc options -# - -# -# crosstool-NG behavior -# -# CT_OBSOLETE is not set -# CT_EXPERIMENTAL is not set -# CT_DEBUG_CT is not set - -# -# Paths -# -CT_LOCAL_TARBALLS_DIR="${CT_TOP_DIR}/src" -CT_SAVE_TARBALLS=y -# CT_TARBALLS_BUILDROOT_LAYOUT is not set -CT_WORK_DIR="${CT_TOP_DIR}/.build" -CT_BUILD_TOP_DIR="${CT_WORK_DIR:-${CT_TOP_DIR}/.build}/${CT_HOST:+HOST-${CT_HOST}/}${CT_TARGET}" -CT_BUILD_DIR="${CT_BUILD_TOP_DIR}/build" -CT_PREFIX_DIR="${CT_TOP_DIR}/toolchain" -CT_RM_RF_PREFIX_DIR=y -CT_REMOVE_DOCS=y -CT_INSTALL_LICENSES=y -CT_PREFIX_DIR_RO=y -CT_STRIP_HOST_TOOLCHAIN_EXECUTABLES=y -# CT_STRIP_TARGET_TOOLCHAIN_EXECUTABLES is not set - -# -# Downloading -# -CT_DOWNLOAD_AGENT_WGET=y -# CT_DOWNLOAD_AGENT_CURL is not set -# CT_DOWNLOAD_AGENT_NONE is not set -# CT_FORBID_DOWNLOAD is not set -# CT_FORCE_DOWNLOAD is not set -CT_CONNECT_TIMEOUT=10 -CT_DOWNLOAD_WGET_OPTIONS="--passive-ftp --tries=3 -nc --progress=dot:binary" -# CT_ONLY_DOWNLOAD is not set -# CT_USE_MIRROR is not set -CT_VERIFY_DOWNLOAD_DIGEST=y -CT_VERIFY_DOWNLOAD_DIGEST_SHA512=y -# CT_VERIFY_DOWNLOAD_DIGEST_SHA256 is not set -# CT_VERIFY_DOWNLOAD_DIGEST_SHA1 is not set -# CT_VERIFY_DOWNLOAD_DIGEST_MD5 is not set -CT_VERIFY_DOWNLOAD_DIGEST_ALG="sha512" -# CT_VERIFY_DOWNLOAD_SIGNATURE is not set - -# -# Extracting -# -# CT_FORCE_EXTRACT is not set -CT_OVERRIDE_CONFIG_GUESS_SUB=y -# CT_ONLY_EXTRACT is not set -CT_PATCH_BUNDLED=y -# CT_PATCH_BUNDLED_LOCAL is not set -CT_PATCH_ORDER="bundled" - -# -# Build behavior -# -CT_PARALLEL_JOBS=0 -CT_LOAD="" -CT_USE_PIPES=y -CT_EXTRA_CFLAGS_FOR_BUILD="" -CT_EXTRA_CXXFLAGS_FOR_BUILD="" -CT_EXTRA_LDFLAGS_FOR_BUILD="" -CT_EXTRA_CFLAGS_FOR_HOST="" -CT_EXTRA_LDFLAGS_FOR_HOST="" -# CT_CONFIG_SHELL_SH is not set -# CT_CONFIG_SHELL_ASH is not set -CT_CONFIG_SHELL_BASH=y -# CT_CONFIG_SHELL_CUSTOM is not set -CT_CONFIG_SHELL="${bash}" - -# -# Logging -# -# CT_LOG_ERROR is not set -# CT_LOG_WARN is not set -# CT_LOG_INFO is not set -CT_LOG_EXTRA=y -# CT_LOG_ALL is not set -# CT_LOG_DEBUG is not set -CT_LOG_LEVEL_MAX="EXTRA" -# CT_LOG_SEE_TOOLS_WARN is not set -CT_LOG_PROGRESS_BAR=y -CT_LOG_TO_FILE=y -CT_LOG_FILE_COMPRESS=y -# end of Paths and misc options - -# -# Target options -# -# CT_ARCH_ALPHA is not set -# CT_ARCH_ARC is not set -# CT_ARCH_ARM is not set -# CT_ARCH_AVR is not set -# CT_ARCH_M68K is not set -CT_ARCH_MIPS=y -# CT_ARCH_NIOS2 is not set -# CT_ARCH_POWERPC is not set -# CT_ARCH_PRU is not set -# CT_ARCH_S390 is not set -# CT_ARCH_SH is not set -# CT_ARCH_SPARC is not set -# CT_ARCH_X86 is not set -# CT_ARCH_XTENSA is not set -CT_ARCH="mips" -CT_ARCH_CHOICE_KSYM="MIPS" -CT_ARCH_TUNE="r3000" -CT_ARCH_MIPS_SHOW=y - -# -# Options for mips -# -CT_ARCH_MIPS_PKG_KSYM="" -CT_ARCH_mips_o32=y -CT_ARCH_mips_ABI="32" -CT_ALL_ARCH_CHOICES="ALPHA ARC ARM AVR C6X LOONGARCH M68K MICROBLAZE MIPS MOXIE MSP430 NIOS2 POWERPC PRU RISCV S390 SH SPARC X86 XTENSA" -CT_ARCH_SUFFIX="" -# CT_OMIT_TARGET_VENDOR is not set - -# -# Generic target options -# -# CT_MULTILIB is not set -CT_DEMULTILIB=y -CT_ARCH_USE_MMU=y -CT_ARCH_SUPPORTS_LIBSANITIZER=y -CT_ARCH_SUPPORTS_EITHER_ENDIAN=y -CT_ARCH_DEFAULT_BE=y -# CT_ARCH_BE is not set -CT_ARCH_LE=y -CT_ARCH_ENDIAN="little" -CT_ARCH_SUPPORTS_32=y -CT_ARCH_SUPPORTS_64=y -CT_ARCH_DEFAULT_32=y -CT_ARCH_BITNESS=32 -CT_ARCH_32=y -# CT_ARCH_64 is not set - -# -# Target optimisations -# -CT_ARCH_SUPPORTS_WITH_ARCH=y -CT_ARCH_SUPPORTS_WITH_TUNE=y -CT_ARCH_SUPPORTS_WITH_FLOAT=y -CT_ARCH_ARCH="" -# CT_ARCH_FLOAT_AUTO is not set -# CT_ARCH_FLOAT_HW is not set -CT_ARCH_FLOAT_SW=y -CT_TARGET_CFLAGS="" -CT_TARGET_LDFLAGS="" -CT_ARCH_FLOAT="soft" -# end of Target options - -# -# Toolchain options -# - -# -# General toolchain options -# -CT_FORCE_SYSROOT=y -CT_USE_SYSROOT=y -CT_SYSROOT_NAME="sysroot" -CT_SYSROOT_DIR_PREFIX="" -# CT_STATIC_TOOLCHAIN is not set -CT_SHOW_CT_VERSION=y -CT_TOOLCHAIN_PKGVERSION="" -CT_TOOLCHAIN_BUGURL="" - -# -# Tuple completion and aliasing -# -CT_TARGET_VENDOR="" -CT_TARGET_ALIAS_SED_EXPR="" -CT_TARGET_ALIAS="mips-linux-gnu" - -# -# Toolchain type -# -CT_CROSS=y -# CT_CANADIAN is not set -CT_TOOLCHAIN_TYPE="cross" - -# -# Build system -# -CT_BUILD="" -CT_BUILD_PREFIX="" -CT_BUILD_SUFFIX="" - -# -# Misc options -# -# CT_TOOLCHAIN_ENABLE_NLS is not set -# end of Toolchain options - -# -# Operating System -# -CT_KERNEL_SUPPORTS_SHARED_LIBS=y -# CT_KERNEL_BARE_METAL is not set -CT_KERNEL_LINUX=y -CT_KERNEL="linux" -CT_KERNEL_CHOICE_KSYM="LINUX" -CT_KERNEL_LINUX_SHOW=y - -# -# Options for linux -# -CT_KERNEL_LINUX_PKG_KSYM="LINUX" -CT_LINUX_DIR_NAME="linux" -CT_LINUX_USE_WWW_KERNEL_ORG=y -# CT_LINUX_USE_ORACLE is not set -CT_LINUX_USE="LINUX" -CT_LINUX_PKG_NAME="linux" -CT_LINUX_SRC_RELEASE=y -# CT_LINUX_SRC_DEVEL is not set -CT_LINUX_PATCH_ORDER="global" -# CT_LINUX_V_6_0 is not set -# CT_LINUX_V_5_19 is not set -# CT_LINUX_V_5_18 is not set -# CT_LINUX_V_5_17 is not set -CT_LINUX_V_5_16=y -# CT_LINUX_V_5_15 is not set -# CT_LINUX_V_5_14 is not set -# CT_LINUX_V_5_13 is not set -# CT_LINUX_V_5_12 is not set -# CT_LINUX_V_5_11 is not set -# CT_LINUX_V_5_10 is not set -# CT_LINUX_V_5_9 is not set -# CT_LINUX_V_5_8 is not set -# CT_LINUX_V_5_7 is not set -# CT_LINUX_V_5_4 is not set -# CT_LINUX_V_5_3 is not set -# CT_LINUX_V_5_2 is not set -# CT_LINUX_V_5_1 is not set -# CT_LINUX_V_5_0 is not set -# CT_LINUX_V_4_20 is not set -# CT_LINUX_V_4_19 is not set -# CT_LINUX_V_4_18 is not set -# CT_LINUX_V_4_17 is not set -# CT_LINUX_V_4_16 is not set -# CT_LINUX_V_4_15 is not set -# CT_LINUX_V_4_14 is not set -# CT_LINUX_V_4_13 is not set -# CT_LINUX_V_4_12 is not set -# CT_LINUX_V_4_11 is not set -# CT_LINUX_V_4_10 is not set -# CT_LINUX_V_4_9 is not set -# CT_LINUX_V_4_4 is not set -# CT_LINUX_V_4_1 is not set -# CT_LINUX_V_3_16 is not set -# CT_LINUX_V_3_13 is not set -# CT_LINUX_V_3_12 is not set -# CT_LINUX_V_3_10 is not set -# CT_LINUX_V_3_4 is not set -# CT_LINUX_V_3_2 is not set -CT_LINUX_VERSION="5.16.20" -CT_LINUX_MIRRORS="$(CT_Mirrors kernel.org linux ${CT_LINUX_VERSION})" -CT_LINUX_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_LINUX_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_LINUX_ARCHIVE_FORMATS=".tar.xz .tar.gz" -CT_LINUX_SIGNATURE_FORMAT="unpacked/.sign" -CT_LINUX_5_19_or_older=y -CT_LINUX_older_than_5_19=y -CT_LINUX_later_than_5_12=y -CT_LINUX_5_12_or_later=y -CT_LINUX_later_than_5_5=y -CT_LINUX_5_5_or_later=y -CT_LINUX_later_than_5_3=y -CT_LINUX_5_3_or_later=y -CT_LINUX_later_than_4_8=y -CT_LINUX_4_8_or_later=y -CT_LINUX_later_than_3_7=y -CT_LINUX_3_7_or_later=y -CT_LINUX_later_than_3_2=y -CT_LINUX_3_2_or_later=y -CT_LINUX_REQUIRE_3_2_or_later=y -CT_KERNEL_DEP_RSYNC=y -CT_KERNEL_LINUX_VERBOSITY_0=y -# CT_KERNEL_LINUX_VERBOSITY_1 is not set -# CT_KERNEL_LINUX_VERBOSITY_2 is not set -CT_KERNEL_LINUX_VERBOSE_LEVEL=0 -CT_ALL_KERNEL_CHOICES="BARE_METAL LINUX WINDOWS" - -# -# Common kernel options -# -CT_SHARED_LIBS=y -# end of Operating System - -# -# Binary utilities -# -CT_ARCH_BINFMT_ELF=y -CT_BINUTILS_BINUTILS=y -CT_BINUTILS="binutils" -CT_BINUTILS_CHOICE_KSYM="BINUTILS" -CT_BINUTILS_BINUTILS_SHOW=y - -# -# Options for binutils -# -CT_BINUTILS_BINUTILS_PKG_KSYM="BINUTILS" -CT_BINUTILS_DIR_NAME="binutils" -CT_BINUTILS_USE_GNU=y -# CT_BINUTILS_USE_ORACLE is not set -CT_BINUTILS_USE="BINUTILS" -CT_BINUTILS_PKG_NAME="binutils" -CT_BINUTILS_SRC_RELEASE=y -# CT_BINUTILS_SRC_DEVEL is not set -CT_BINUTILS_PATCH_ORDER="global" -# CT_BINUTILS_V_2_39 is not set -CT_BINUTILS_V_2_38=y -# CT_BINUTILS_V_2_37 is not set -# CT_BINUTILS_V_2_36 is not set -# CT_BINUTILS_V_2_35 is not set -# CT_BINUTILS_V_2_34 is not set -# CT_BINUTILS_V_2_33 is not set -# CT_BINUTILS_V_2_32 is not set -# CT_BINUTILS_V_2_31 is not set -# CT_BINUTILS_V_2_30 is not set -# CT_BINUTILS_V_2_29 is not set -# CT_BINUTILS_V_2_28 is not set -# CT_BINUTILS_V_2_27 is not set -# CT_BINUTILS_V_2_26 is not set -CT_BINUTILS_VERSION="2.38" -CT_BINUTILS_MIRRORS="$(CT_Mirrors GNU binutils) $(CT_Mirrors sourceware binutils/releases)" -CT_BINUTILS_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_BINUTILS_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_BINUTILS_ARCHIVE_FORMATS=".tar.xz .tar.bz2 .tar.gz" -CT_BINUTILS_SIGNATURE_FORMAT="packed/.sig" -CT_BINUTILS_2_39_or_older=y -CT_BINUTILS_older_than_2_39=y -CT_BINUTILS_later_than_2_30=y -CT_BINUTILS_2_30_or_later=y -CT_BINUTILS_later_than_2_27=y -CT_BINUTILS_2_27_or_later=y -CT_BINUTILS_later_than_2_26=y -CT_BINUTILS_2_26_or_later=y - -# -# GNU binutils -# -CT_BINUTILS_FORCE_LD_BFD_DEFAULT=y -CT_BINUTILS_LINKER_LD=y -CT_BINUTILS_LINKERS_LIST="ld" -CT_BINUTILS_LINKER_DEFAULT="bfd" -# CT_BINUTILS_PLUGINS is not set -CT_BINUTILS_RELRO=m -CT_BINUTILS_DETERMINISTIC_ARCHIVES=y -CT_BINUTILS_EXTRA_CONFIG_ARRAY="" -# CT_BINUTILS_FOR_TARGET is not set -CT_ALL_BINUTILS_CHOICES="BINUTILS" -# end of Binary utilities - -# -# C-library -# -CT_LIBC_GLIBC=y -# CT_LIBC_UCLIBC_NG is not set -CT_LIBC="glibc" -CT_LIBC_CHOICE_KSYM="GLIBC" -CT_LIBC_GLIBC_SHOW=y - -# -# Options for glibc -# -CT_LIBC_GLIBC_PKG_KSYM="GLIBC" -CT_GLIBC_DIR_NAME="glibc" -CT_GLIBC_USE_GNU=y -# CT_GLIBC_USE_ORACLE is not set -CT_GLIBC_USE="GLIBC" -CT_GLIBC_PKG_NAME="glibc" -CT_GLIBC_SRC_RELEASE=y -# CT_GLIBC_SRC_DEVEL is not set -CT_GLIBC_PATCH_ORDER="global" -# CT_GLIBC_V_2_36 is not set -CT_GLIBC_V_2_35=y -# CT_GLIBC_V_2_34 is not set -# CT_GLIBC_V_2_33 is not set -# CT_GLIBC_V_2_32 is not set -# CT_GLIBC_V_2_31 is not set -# CT_GLIBC_V_2_30 is not set -# CT_GLIBC_V_2_29 is not set -# CT_GLIBC_V_2_28 is not set -# CT_GLIBC_V_2_27 is not set -# CT_GLIBC_V_2_26 is not set -# CT_GLIBC_V_2_25 is not set -# CT_GLIBC_V_2_24 is not set -# CT_GLIBC_V_2_23 is not set -# CT_GLIBC_V_2_19 is not set -# CT_GLIBC_V_2_17 is not set -CT_GLIBC_VERSION="2.35" -CT_GLIBC_MIRRORS="$(CT_Mirrors GNU glibc)" -CT_GLIBC_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_GLIBC_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_GLIBC_ARCHIVE_FORMATS=".tar.xz .tar.bz2 .tar.gz" -CT_GLIBC_SIGNATURE_FORMAT="packed/.sig" -CT_GLIBC_2_36_or_older=y -CT_GLIBC_older_than_2_36=y -CT_GLIBC_later_than_2_34=y -CT_GLIBC_2_34_or_later=y -CT_GLIBC_later_than_2_32=y -CT_GLIBC_2_32_or_later=y -CT_GLIBC_later_than_2_31=y -CT_GLIBC_2_31_or_later=y -CT_GLIBC_later_than_2_30=y -CT_GLIBC_2_30_or_later=y -CT_GLIBC_later_than_2_29=y -CT_GLIBC_2_29_or_later=y -CT_GLIBC_later_than_2_28=y -CT_GLIBC_2_28_or_later=y -CT_GLIBC_later_than_2_27=y -CT_GLIBC_2_27_or_later=y -CT_GLIBC_later_than_2_26=y -CT_GLIBC_2_26_or_later=y -CT_GLIBC_later_than_2_25=y -CT_GLIBC_2_25_or_later=y -CT_GLIBC_later_than_2_24=y -CT_GLIBC_2_24_or_later=y -CT_GLIBC_later_than_2_23=y -CT_GLIBC_2_23_or_later=y -CT_GLIBC_later_than_2_20=y -CT_GLIBC_2_20_or_later=y -CT_GLIBC_later_than_2_17=y -CT_GLIBC_2_17_or_later=y -CT_GLIBC_later_than_2_14=y -CT_GLIBC_2_14_or_later=y -CT_GLIBC_DEP_KERNEL_HEADERS_VERSION=y -CT_GLIBC_DEP_BINUTILS=y -CT_GLIBC_DEP_GCC=y -CT_GLIBC_DEP_PYTHON=y -CT_THREADS="nptl" -CT_GLIBC_BUILD_SSP=y -CT_GLIBC_HAS_LIBIDN_ADDON=y -# CT_GLIBC_USE_LIBIDN_ADDON is not set -CT_GLIBC_NO_SPARC_V8=y -CT_GLIBC_EXTRA_CONFIG_ARRAY="" -CT_GLIBC_CONFIGPARMS="" -CT_GLIBC_ENABLE_DEBUG=y -CT_GLIBC_EXTRA_CFLAGS="" -# CT_GLIBC_DISABLE_VERSIONING is not set -CT_GLIBC_OLDEST_ABI="" -CT_GLIBC_FORCE_UNWIND=y -# CT_GLIBC_LOCALES is not set -# CT_GLIBC_KERNEL_VERSION_NONE is not set -CT_GLIBC_KERNEL_VERSION_AS_HEADERS=y -# CT_GLIBC_KERNEL_VERSION_CHOSEN is not set -CT_GLIBC_MIN_KERNEL="5.16.20" -CT_GLIBC_SSP_DEFAULT=y -# CT_GLIBC_SSP_NO is not set -# CT_GLIBC_SSP_YES is not set -# CT_GLIBC_SSP_ALL is not set -# CT_GLIBC_SSP_STRONG is not set -CT_GLIBC_ENABLE_WERROR=y -# CT_GLIBC_ENABLE_COMMON_FLAG is not set -CT_ALL_LIBC_CHOICES="AVR_LIBC GLIBC MINGW_W64 MOXIEBOX MUSL NEWLIB NONE UCLIBC_NG" -CT_LIBC_SUPPORT_THREADS_ANY=y -CT_LIBC_SUPPORT_THREADS_NATIVE=y - -# -# Common C library options -# -CT_THREADS_NATIVE=y -# CT_CREATE_LDSO_CONF is not set -CT_LIBC_XLDD=y -# end of C-library - -# -# C compiler -# -CT_CC_CORE_NEEDED=y -CT_CC_SUPPORT_CXX=y -CT_CC_SUPPORT_FORTRAN=y -CT_CC_SUPPORT_ADA=y -CT_CC_SUPPORT_D=y -CT_CC_SUPPORT_OBJC=y -CT_CC_SUPPORT_OBJCXX=y -CT_CC_SUPPORT_GOLANG=y -CT_CC_GCC=y -CT_CC="gcc" -CT_CC_CHOICE_KSYM="GCC" -CT_CC_GCC_SHOW=y - -# -# Options for gcc -# -CT_CC_GCC_PKG_KSYM="GCC" -CT_GCC_DIR_NAME="gcc" -CT_GCC_USE_GNU=y -# CT_GCC_USE_ORACLE is not set -CT_GCC_USE="GCC" -CT_GCC_PKG_NAME="gcc" -CT_GCC_SRC_RELEASE=y -# CT_GCC_SRC_DEVEL is not set -CT_GCC_PATCH_ORDER="global" -# CT_GCC_V_12 is not set -CT_GCC_V_11=y -# CT_GCC_V_10 is not set -# CT_GCC_V_9 is not set -# CT_GCC_V_8 is not set -# CT_GCC_V_7 is not set -# CT_GCC_V_6 is not set -CT_GCC_VERSION="11.3.0" -CT_GCC_MIRRORS="$(CT_Mirrors GNU gcc/gcc-${CT_GCC_VERSION}) $(CT_Mirrors sourceware gcc/releases/gcc-${CT_GCC_VERSION})" -CT_GCC_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_GCC_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_GCC_ARCHIVE_FORMATS=".tar.xz .tar.gz" -CT_GCC_SIGNATURE_FORMAT="" -CT_GCC_12_or_older=y -CT_GCC_older_than_12=y -CT_GCC_later_than_11=y -CT_GCC_11_or_later=y -CT_GCC_later_than_10=y -CT_GCC_10_or_later=y -CT_GCC_later_than_9=y -CT_GCC_9_or_later=y -CT_GCC_later_than_8=y -CT_GCC_8_or_later=y -CT_GCC_later_than_7=y -CT_GCC_7_or_later=y -CT_GCC_later_than_6=y -CT_GCC_6_or_later=y -CT_GCC_REQUIRE_6_or_later=y -CT_GCC_later_than_5=y -CT_GCC_5_or_later=y -CT_GCC_REQUIRE_5_or_later=y -CT_GCC_later_than_4_9=y -CT_GCC_4_9_or_later=y -CT_GCC_REQUIRE_4_9_or_later=y -CT_CC_GCC_HAS_LIBMPX=y -CT_CC_GCC_ENABLE_CXX_FLAGS="" -CT_CC_GCC_CORE_EXTRA_CONFIG_ARRAY="" -CT_CC_GCC_EXTRA_CONFIG_ARRAY="" -# CT_CC_GCC_STATIC_LIBSTDCXX is not set -# CT_CC_GCC_SYSTEM_ZLIB is not set -CT_CC_GCC_CONFIG_TLS=m - -# -# Optimisation features -# -CT_CC_GCC_USE_GRAPHITE=y -CT_CC_GCC_USE_LTO=y -CT_CC_GCC_LTO_ZSTD=m - -# -# Settings for libraries running on target -# -CT_CC_GCC_ENABLE_TARGET_OPTSPACE=y -# CT_CC_GCC_LIBMUDFLAP is not set -# CT_CC_GCC_LIBGOMP is not set -# CT_CC_GCC_LIBSSP is not set -# CT_CC_GCC_LIBQUADMATH is not set -# CT_CC_GCC_LIBSANITIZER is not set - -# -# Misc. obscure options. -# -CT_CC_CXA_ATEXIT=y -CT_CC_GCC_TM_CLONE_REGISTRY=m -# CT_CC_GCC_DISABLE_PCH is not set -CT_CC_GCC_SJLJ_EXCEPTIONS=m -CT_CC_GCC_LDBL_128=m -# CT_CC_GCC_BUILD_ID is not set -CT_CC_GCC_LNK_HASH_STYLE_DEFAULT=y -# CT_CC_GCC_LNK_HASH_STYLE_SYSV is not set -# CT_CC_GCC_LNK_HASH_STYLE_GNU is not set -# CT_CC_GCC_LNK_HASH_STYLE_BOTH is not set -CT_CC_GCC_LNK_HASH_STYLE="" -CT_CC_GCC_DEC_FLOATS_AUTO=y -# CT_CC_GCC_DEC_FLOATS_BID is not set -# CT_CC_GCC_DEC_FLOATS_DPD is not set -# CT_CC_GCC_DEC_FLOATS_NO is not set -CT_CC_GCC_DEC_FLOATS="" -CT_CC_GCC_HAS_ARCH_OPTIONS=y - -# -# archictecture-specific options -# -CT_CC_GCC_mips_llsc=m -CT_CC_GCC_mips_synci=m -# CT_CC_GCC_mips_plt is not set -CT_ALL_CC_CHOICES="GCC" - -# -# Additional supported languages: -# -# CT_CC_LANG_CXX is not set -# CT_CC_LANG_FORTRAN is not set -# end of C compiler - -# -# Debug facilities -# -# CT_DEBUG_DUMA is not set -# CT_DEBUG_GDB is not set -# CT_DEBUG_LTRACE is not set -# CT_DEBUG_STRACE is not set -CT_ALL_DEBUG_CHOICES="DUMA GDB LTRACE STRACE" -# end of Debug facilities - -# -# Companion libraries -# -# CT_COMPLIBS_CHECK is not set -# CT_COMP_LIBS_CLOOG is not set -# CT_COMP_LIBS_EXPAT is not set -CT_COMP_LIBS_GETTEXT=y -CT_COMP_LIBS_GETTEXT_PKG_KSYM="GETTEXT" -CT_GETTEXT_DIR_NAME="gettext" -CT_GETTEXT_PKG_NAME="gettext" -CT_GETTEXT_SRC_RELEASE=y -# CT_GETTEXT_SRC_DEVEL is not set -CT_GETTEXT_PATCH_ORDER="global" -CT_GETTEXT_V_0_21=y -# CT_GETTEXT_V_0_20_1 is not set -# CT_GETTEXT_V_0_19_8_1 is not set -CT_GETTEXT_VERSION="0.21" -CT_GETTEXT_MIRRORS="$(CT_Mirrors GNU gettext)" -CT_GETTEXT_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_GETTEXT_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_GETTEXT_ARCHIVE_FORMATS=".tar.xz .tar.gz" -CT_GETTEXT_SIGNATURE_FORMAT="packed/.sig" -CT_GETTEXT_0_21_or_later=y -CT_GETTEXT_0_21_or_older=y -CT_GETTEXT_INCOMPATIBLE_WITH_UCLIBC_NG=y - -# -# This version of gettext is not compatible with uClibc-NG. Select -# - -# -# a different version if uClibc-NG is used on the target or (in a -# - -# -# Canadian cross build) on the host. -# -CT_COMP_LIBS_GMP=y -CT_COMP_LIBS_GMP_PKG_KSYM="GMP" -CT_GMP_DIR_NAME="gmp" -CT_GMP_PKG_NAME="gmp" -CT_GMP_SRC_RELEASE=y -# CT_GMP_SRC_DEVEL is not set -CT_GMP_PATCH_ORDER="global" -CT_GMP_V_6_2=y -# CT_GMP_V_6_1 is not set -CT_GMP_VERSION="6.2.1" -CT_GMP_MIRRORS="https://gmplib.org/download/gmp https://gmplib.org/download/gmp/archive $(CT_Mirrors GNU gmp)" -CT_GMP_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_GMP_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_GMP_ARCHIVE_FORMATS=".tar.xz .tar.lz .tar.bz2" -CT_GMP_SIGNATURE_FORMAT="packed/.sig" -CT_COMP_LIBS_ISL=y -CT_COMP_LIBS_ISL_PKG_KSYM="ISL" -CT_ISL_DIR_NAME="isl" -CT_ISL_PKG_NAME="isl" -CT_ISL_SRC_RELEASE=y -# CT_ISL_SRC_DEVEL is not set -CT_ISL_PATCH_ORDER="global" -CT_ISL_V_0_24=y -# CT_ISL_V_0_23 is not set -# CT_ISL_V_0_22 is not set -# CT_ISL_V_0_21 is not set -# CT_ISL_V_0_20 is not set -# CT_ISL_V_0_19 is not set -# CT_ISL_V_0_18 is not set -# CT_ISL_V_0_17 is not set -# CT_ISL_V_0_16 is not set -# CT_ISL_V_0_15 is not set -CT_ISL_VERSION="0.24" -CT_ISL_MIRRORS="https://libisl.sourceforge.io" -CT_ISL_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_ISL_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_ISL_ARCHIVE_FORMATS=".tar.xz .tar.bz2 .tar.gz" -CT_ISL_SIGNATURE_FORMAT="" -CT_ISL_later_than_0_18=y -CT_ISL_0_18_or_later=y -CT_ISL_later_than_0_15=y -CT_ISL_0_15_or_later=y -# CT_COMP_LIBS_LIBELF is not set -CT_COMP_LIBS_LIBICONV=y -CT_COMP_LIBS_LIBICONV_PKG_KSYM="LIBICONV" -CT_LIBICONV_DIR_NAME="libiconv" -CT_LIBICONV_PKG_NAME="libiconv" -CT_LIBICONV_SRC_RELEASE=y -# CT_LIBICONV_SRC_DEVEL is not set -CT_LIBICONV_PATCH_ORDER="global" -CT_LIBICONV_V_1_16=y -# CT_LIBICONV_V_1_15 is not set -CT_LIBICONV_VERSION="1.16" -CT_LIBICONV_MIRRORS="$(CT_Mirrors GNU libiconv)" -CT_LIBICONV_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_LIBICONV_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_LIBICONV_ARCHIVE_FORMATS=".tar.gz" -CT_LIBICONV_SIGNATURE_FORMAT="packed/.sig" -CT_COMP_LIBS_MPC=y -CT_COMP_LIBS_MPC_PKG_KSYM="MPC" -CT_MPC_DIR_NAME="mpc" -CT_MPC_PKG_NAME="mpc" -CT_MPC_SRC_RELEASE=y -# CT_MPC_SRC_DEVEL is not set -CT_MPC_PATCH_ORDER="global" -CT_MPC_V_1_2=y -# CT_MPC_V_1_1 is not set -# CT_MPC_V_1_0 is not set -CT_MPC_VERSION="1.2.1" -CT_MPC_MIRRORS="http://www.multiprecision.org/downloads $(CT_Mirrors GNU mpc)" -CT_MPC_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_MPC_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_MPC_ARCHIVE_FORMATS=".tar.gz" -CT_MPC_SIGNATURE_FORMAT="packed/.sig" -CT_MPC_later_than_1_1_0=y -CT_MPC_1_1_0_or_later=y -CT_COMP_LIBS_MPFR=y -CT_COMP_LIBS_MPFR_PKG_KSYM="MPFR" -CT_MPFR_DIR_NAME="mpfr" -CT_MPFR_PKG_NAME="mpfr" -CT_MPFR_SRC_RELEASE=y -# CT_MPFR_SRC_DEVEL is not set -CT_MPFR_PATCH_ORDER="global" -CT_MPFR_V_4_1=y -# CT_MPFR_V_4_0 is not set -# CT_MPFR_V_3_1 is not set -CT_MPFR_VERSION="4.1.0" -CT_MPFR_MIRRORS="http://www.mpfr.org/mpfr-${CT_MPFR_VERSION} $(CT_Mirrors GNU mpfr)" -CT_MPFR_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_MPFR_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_MPFR_ARCHIVE_FORMATS=".tar.xz .tar.bz2 .tar.gz .zip" -CT_MPFR_SIGNATURE_FORMAT="packed/.asc" -CT_MPFR_later_than_4_0_0=y -CT_MPFR_4_0_0_or_later=y -CT_COMP_LIBS_NCURSES=y -CT_COMP_LIBS_NCURSES_PKG_KSYM="NCURSES" -CT_NCURSES_DIR_NAME="ncurses" -CT_NCURSES_PKG_NAME="ncurses" -CT_NCURSES_SRC_RELEASE=y -# CT_NCURSES_SRC_DEVEL is not set -CT_NCURSES_PATCH_ORDER="global" -CT_NCURSES_V_6_2=y -# CT_NCURSES_V_6_1 is not set -# CT_NCURSES_V_6_0 is not set -CT_NCURSES_VERSION="6.2" -CT_NCURSES_MIRRORS="https://invisible-mirror.net/archives/ncurses $(CT_Mirrors GNU ncurses)" -CT_NCURSES_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_NCURSES_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_NCURSES_ARCHIVE_FORMATS=".tar.gz" -CT_NCURSES_SIGNATURE_FORMAT="packed/.sig" -CT_NCURSES_NEW_ABI=y -CT_NCURSES_HOST_CONFIG_ARGS="" -CT_NCURSES_HOST_DISABLE_DB=y -CT_NCURSES_HOST_FALLBACKS="linux,xterm,xterm-color,xterm-256color,vt100" -CT_NCURSES_TARGET_CONFIG_ARGS="" -# CT_NCURSES_TARGET_DISABLE_DB is not set -CT_NCURSES_TARGET_FALLBACKS="" -CT_COMP_LIBS_ZLIB=y -CT_COMP_LIBS_ZLIB_PKG_KSYM="ZLIB" -CT_ZLIB_DIR_NAME="zlib" -CT_ZLIB_PKG_NAME="zlib" -CT_ZLIB_SRC_RELEASE=y -# CT_ZLIB_SRC_DEVEL is not set -CT_ZLIB_PATCH_ORDER="global" -CT_ZLIB_V_1_2_13=y -CT_ZLIB_VERSION="1.2.13" -CT_ZLIB_MIRRORS="https://github.com/madler/zlib/releases/download/v${CT_ZLIB_VERSION} https://www.zlib.net/" -CT_ZLIB_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_ZLIB_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_ZLIB_ARCHIVE_FORMATS=".tar.xz .tar.gz" -CT_ZLIB_SIGNATURE_FORMAT="packed/.asc" -CT_ALL_COMP_LIBS_CHOICES="CLOOG EXPAT GETTEXT GMP GNUPRUMCU ISL LIBELF LIBICONV MPC MPFR NCURSES NEWLIB_NANO PICOLIBC ZLIB" -CT_LIBICONV_NEEDED=y -CT_GETTEXT_NEEDED=y -CT_GMP_NEEDED=y -CT_MPFR_NEEDED=y -CT_ISL_NEEDED=y -CT_MPC_NEEDED=y -CT_NCURSES_NEEDED=y -CT_ZLIB_NEEDED=y -CT_LIBICONV=y -CT_GETTEXT=y -CT_GMP=y -CT_MPFR=y -CT_ISL=y -CT_MPC=y -CT_NCURSES=y -CT_ZLIB=y -# end of Companion libraries - -# -# Companion tools -# -# CT_COMP_TOOLS_FOR_HOST is not set -# CT_COMP_TOOLS_AUTOCONF is not set -# CT_COMP_TOOLS_AUTOMAKE is not set -# CT_COMP_TOOLS_BISON is not set -# CT_COMP_TOOLS_DTC is not set -# CT_COMP_TOOLS_LIBTOOL is not set -# CT_COMP_TOOLS_M4 is not set -# CT_COMP_TOOLS_MAKE is not set -CT_ALL_COMP_TOOLS_CHOICES="AUTOCONF AUTOMAKE BISON DTC LIBTOOL M4 MAKE" -# end of Companion tools diff --git a/entrypoints/Makefile b/entrypoints/Makefile index adff2cc..6c56c2a 100644 --- a/entrypoints/Makefile +++ b/entrypoints/Makefile @@ -3,7 +3,6 @@ # Seek value = offset to start of entry loader, which will be updated on code changes to entry.S -include ../variables.mk include ../variables-shared.mk all: $(ENTRY_MCS) $(ENTRY_RAW) diff --git a/entrypoints/entry.S b/entrypoints/entry.S index 6c06e31..af66000 100755 --- a/entrypoints/entry.S +++ b/entrypoints/entry.S @@ -1,47 +1,45 @@ -#include - .text .globl __start -# s0 = realstart physical address -# s1 = file descriptor -# s2 = load address -# s3 = real save size (excluding useless trailing zeros) +# $16 = realstart physical address +# $17 = file descriptor +# $18 = load address +# $19 = real save size (excluding useless trailing zeros) __start: # Restore stack pointer - li t0, 0x801FFF00 - move sp, t0 + li $8, 0x801FFF00 + move $29, $8 - # Call ourselves to get the current program counter in ra + # Call ourselves to get the current program counter in $31 bal realstart realstart: - # Save real start address in s0 - move s0, ra + # Save real start address in $16 + move $16, $31 #ifndef BAREBONES # Paint blue - li a0, 0xFF0000 + li $4, 0xFF0000 bal paintscr #endif # Keep only VBlank interrupts enabled - li t1, 0x1 - lui t0, 0x1f80 - sw t1, 0x1074(t0) + li $9, 0x1 + lui $8, 0x1f80 + sw $9, 0x1074($8) # Call ChangeClearPad(1) so the BIOS card IRQ clears the interrupt flags. # This prevents the PsyQ VBlank ISR from detecting that VBlank fired, and thus prevent its # LIBMCRD from interrupting us. - li t1, 0x5B - li a0, 1 + li $9, 0x5B + li $4, 1 jal 0xB0 # Call wait_card_status(0) to make sure we can access card on slot 1 safely - li t1, 0x5D - li a0, 0 + li $9, 0x5D + li $4, 0 jal 0xB0 # Call wait_card_status(1) @@ -57,99 +55,99 @@ realstart: # # This combination results in dev_card_open failing because it checks a buffer for the "MC" # signature before the actual sector read has finished. - li t1, 0x5D - li a0, 1 + li $9, 0x5D + li $4, 1 jal 0xB0 # Call FileOpen - li t1, 0x32 - addi a0, s0, (splname - realstart) - li a1, 0b00000001 + li $9, 0x32 + addi $4, $16, (splname - realstart) + li $5, 0b00000001 jal 0xB0 # Save handle - move s1, v0 + move $17, $2 #ifndef BAREBONES - # If less than zero, it failed - blt v0, zero, fatalerror + # If less than $0, it failed + blt $2, $0, fatalerror #endif # The kernel will fail to read if we don't wait a bit (here, ~1/10th of a second) # This is a known issue as specified in LIBOVR46.PDF section 5-11: # "If read() or write() is issued immediately after open(), an error occurs" - li t0, 1000000 + li $8, 1000000 busywait: - addi t0, -1 - bne t0, zero, busywait + addi $8, -1 + bne $8, $0, busywait - # Load temp buffer address (originally was 0x801FA000, - 0x100 from original start addr of Tonyhax: 0x801FA100) Current start addr of International is 0x801F6200 + # Load temp buffer address (originally was 0x801F$400, - 0x100 from original start addr of Tonyhax: 0x801F$500) Current start addr of International is 0x801F6200 # Final Fantasy IX uses 0x801F4380 as the start addr of Tonyhax, so -0x100 from that is the temp buffer address. #ifdef FF9 - li s2, 0x801F4280 + li $18, 0x801F4280 #else - li s2, 0x801F6100 + li $18, 0x801F6100 #endif # Load header using FileRead - li t1, 0x34 - move a0, s1 - move a1, s2 - li a2, 0x100 + li $9, 0x34 + move $4, $17 + move $5, $18 + li $6, 0x100 jal 0xB0 #ifndef BAREBONES # If we did not read the correct amount, lock - bne v0, 0x100, fatalerror + bne $2, 0x100, fatalerror #endif # Load executable load address and size - lw s3, 0x44(s2) - lw s2, 0x40(s2) + lw $19, 0x44($18) + lw $18, 0x40($18) # Load executable using FileRead - li t1, 0x34 - move a0, s1 - move a1, s2 - move a2, s3 + li $9, 0x34 + move $4, $17 + move $5, $18 + move $6, $19 jal 0xB0 #ifndef BAREBONES # If we did not read the correct amount, lock - bne v0, s3, fatalerror + bne $2, $19, fatalerror # Paint green - li a0, 0x00FF00 + li $4, 0x00FF00 bal paintscr #endif # Jump to it! - jr s2 + jr $18 #ifndef BAREBONES fatalerror: # Red - li a0, 0x0000FF + li $4, 0x0000FF bal paintscr lock: b lock paintscr: - # Add command byte to a0 - li t0, 0x02000000 - or t0, a0 + # Add command byte to $4 + li $8, 0x02000000 + or $8, $4 # Calculate effective address - addi a0, s0, (redscreen - realstart) + addi $4, $16, (redscreen - realstart) # Store color with command on buffer - sw t0, 0(a0) + sw $8, 0($4) # Tail call GPU_cwp to paint the entire screen - li a1, 3 - li t1, 0x4A + li $5, 3 + li $9, 0x4A j 0xA0 redscreen: diff --git a/freepsxboot/Makefile b/freepsxboot/Makefile index ee9584f..29d7f50 100644 --- a/freepsxboot/Makefile +++ b/freepsxboot/Makefile @@ -2,7 +2,6 @@ # Thanks to whoever made https://devhints.io/makefile! # NOTE: CAN'T USE -fastload option because it screws up reading from memory cards for GameShark functionallity after exploit on at least BIOS v4.4/v4.5 (verified with a SCPH-101). It may also affect other models so we do not use it. -include ../variables.mk include ../variables-shared.mk .PHONY: clean FreePSXBoot/builder/builder diff --git a/gshax/Makefile b/gshax/Makefile index 786acac..cc05613 100644 --- a/gshax/Makefile +++ b/gshax/Makefile @@ -4,16 +4,16 @@ all: gshax-tool gen-wipeout-usa gen-parasite-eve-usa gen-ridge-racer-usa clean: - $(RM) wipeout-usa/wipeout-usa-gshax-code.txt wipeout-usa/CODELIST00 parasite-eve-usa/parasite-eve-usa-gshax-code.txt parasite-eve-usa/CODELIST00 ridge-racer-usa/ridge-racer-usa-gshax-code.txt ridge-racer-usa/CODELIST00 + $(RM) -r wipeout-usa parasite-eve-usa ridge-racer-usa gshax-tool: cd ../gshax-tool; make clean; make - + gen-wipeout-usa: - ../gshax-tool/gshax -g 8005798C -jal 8006C68C 8007E864 ../entrypoints/entry-bb.bin wipeout-usa/CODELIST00; ../gshax-tool/gshax -t 8005798C -jal 8006C68C 8007E864 ../entrypoints/entry-bb.bin wipeout-usa/wipeout-usa-gshax-code.txt + mkdir wipeout-usa; ../gshax-tool/gshax -g 8005798C -jal 8006C68C 8007E864 ../entrypoints/entry-bb.bin wipeout-usa/CODELIST00; ../gshax-tool/gshax -t 8005798C -jal 8006C68C 8007E864 ../entrypoints/entry-bb.bin wipeout-usa/wipeout-usa-gshax-code.txt gen-parasite-eve-usa: - ../gshax-tool/gshax -g 8018FAC8 -j 8018FB78 80193288 ../entrypoints/entry-bb.bin parasite-eve-usa/CODELIST00; ../gshax-tool/gshax -t 8018FAC8 -j 8018FB78 80193288 ../entrypoints/entry-bb.bin parasite-eve-usa/parasite-eve-usa-gshax-code.txt + mkdir parasite-eve-usa; ../gshax-tool/gshax -g 8018FAC8 -j 8018FB78 80193288 ../entrypoints/entry-bb.bin parasite-eve-usa/CODELIST00; ../gshax-tool/gshax -t 8018FAC8 -j 8018FB78 80193288 ../entrypoints/entry-bb.bin parasite-eve-usa/parasite-eve-usa-gshax-code.txt gen-ridge-racer-usa: - ../gshax-tool/gshax -g 8004EB1C -j 8004EB54 8007FA30 ../entrypoints/entry-bb.bin ridge-racer-usa/CODELIST00; ../gshax-tool/gshax -t 8004EB1C -j 8004EB54 8007FA30 ../entrypoints/entry-bb.bin ridge-racer-usa/ridge-racer-usa-gshax-code.txt \ No newline at end of file + mkdir ridge-racer-usa; ../gshax-tool/gshax -g 8004EB1C -j 8004EB54 8007FA30 ../entrypoints/entry-bb.bin ridge-racer-usa/CODELIST00; ../gshax-tool/gshax -t 8004EB1C -j 8004EB54 8007FA30 ../entrypoints/entry-bb.bin ridge-racer-usa/ridge-racer-usa-gshax-code.txt \ No newline at end of file diff --git a/loader/Makefile b/loader/Makefile index eaca111..d5413ba 100644 --- a/loader/Makefile +++ b/loader/Makefile @@ -1,7 +1,6 @@ # Thanks to whoever made https://devhints.io/makefile! -include ../variables.mk include ../variables-shared.mk LOADER_AUTOGEN := orca.inc diff --git a/loader/Makefile.ff9 b/loader/Makefile.ff9 index 18c0f5f..21e589d 100644 --- a/loader/Makefile.ff9 +++ b/loader/Makefile.ff9 @@ -1,7 +1,6 @@ # Thanks to whoever made https://devhints.io/makefile! -include ../variables.mk include ../variables-shared.mk LOADER_AUTOGEN := orca.inc diff --git a/loader/Makefile.freepsxboot b/loader/Makefile.freepsxboot index acabe11..2ba06fd 100644 --- a/loader/Makefile.freepsxboot +++ b/loader/Makefile.freepsxboot @@ -1,8 +1,8 @@ # Thanks to whoever made https://devhints.io/makefile! -include ../variables.mk.freepsxboot include ../variables-shared.mk +include ../variables.mk.freepsxboot LOADER_HEADERS := $(wildcard *.h) $(LOADER_AUTOGEN) LOADER_OBJECTS := $(patsubst %.c, %.o, $(patsubst %.S, %.o, $(wildcard *.c *.S))) diff --git a/loader/Makefile.rom b/loader/Makefile.rom index e705543..d075686 100644 --- a/loader/Makefile.rom +++ b/loader/Makefile.rom @@ -1,8 +1,8 @@ # Thanks to whoever made https://devhints.io/makefile! -include ../variables.mk.rom include ../variables-shared.mk +include ../variables.mk.rom LOADER_HEADERS := $(wildcard *.h) $(LOADER_AUTOGEN) LOADER_OBJECTS := $(patsubst %.c, %.o, $(patsubst %.S, %.o, $(wildcard *.c *.S))) diff --git a/loader/Makefile.tocperfect b/loader/Makefile.tocperfect index d4c8f5b..d73b172 100644 --- a/loader/Makefile.tocperfect +++ b/loader/Makefile.tocperfect @@ -1,8 +1,8 @@ # Thanks to whoever made https://devhints.io/makefile! -include ../variables.mk.tocperfect include ../variables-shared.mk +include ../variables.mk.tocperfect LOADER_HEADERS := $(wildcard *.h) $(LOADER_AUTOGEN) LOADER_OBJECTS := $(patsubst %.c, %.o, $(patsubst %.S, %.o, $(wildcard *.c *.S))) diff --git a/loader/Makefile.xstation b/loader/Makefile.xstation index 083575f..0154130 100644 --- a/loader/Makefile.xstation +++ b/loader/Makefile.xstation @@ -1,8 +1,8 @@ # Thanks to whoever made https://devhints.io/makefile! -include ../variables.mk.xstation include ../variables-shared.mk +include ../variables.mk.xstation LOADER_HEADERS := $(wildcard *.h) $(LOADER_AUTOGEN) LOADER_OBJECTS := $(patsubst %.c, %.o, $(patsubst %.S, %.o, $(wildcard *.c *.S))) diff --git a/loader/bios-asm.S b/loader/bios-asm.S index a71573d..2101cb6 100644 --- a/loader/bios-asm.S +++ b/loader/bios-asm.S @@ -1,6 +1,4 @@ -#include - .text .align 4 @@ -10,9 +8,9 @@ .global FakeEnqueueCdIntr FakeEnqueueCdIntr: - lw ra, 0x14(sp) - addi sp, 0x18 - jr ra + lw $31, 0x14($29) + addi $29, 0x18 + jr $31 ############ # SYSCALLS # @@ -20,15 +18,15 @@ FakeEnqueueCdIntr: .global EnterCriticalSection EnterCriticalSection: - li a0, 0x01 + li $4, 0x01 syscall - jr ra + jr $31 .global ExitCriticalSection ExitCriticalSection: - li a0, 0x02 + li $4, 0x02 syscall - jr ra + jr $31 ############### # A-FUNCTIONS # @@ -36,105 +34,105 @@ ExitCriticalSection: .global todigit todigit: - li t1, 0x0A + li $9, 0x0A j 0xA0 .global strcmp strcmp: - li t1, 0x17 + li $9, 0x17 j 0xA0 .global strncmp strncmp: - li t1, 0x18 + li $9, 0x18 j 0xA0 .global strcpy strcpy: - li t1, 0x19 + li $9, 0x19 j 0xA0 .global strlen strlen: - li t1, 0x1B + li $9, 0x1B j 0xA0 .global strchr strchr: - li t1, 0x1E + li $9, 0x1E j 0xA0 .global memcpy memcpy: - li t1, 0x2A + li $9, 0x2A j 0xA0 .global DoExecute DoExecute: - # Pepsiman (J) crashes if s5 is not zero - # The BIOS leaves them s1-s6 zeroed, so we'll do the same - li s1, 0 - li s2, 0 - li s3, 0 - li s4, 0 - li s5, 0 - li s6, 0 - li t1, 0x43 + # Pepsiman (J) crashes if $21 is not zero + # The BIOS leaves them $17-s6 zeroed, so we'll do the same + li $17, 0 + li $18, 0 + li $19, 0 + li $20, 0 + li $21, 0 + li $22, 0 + li $9, 0x43 j 0xA0 .global FlushCache FlushCache: - li t1, 0x44 + li $9, 0x44 j 0xA0 .global init_a0_b0_c0_vectors init_a0_b0_c0_vectors: - li t1, 0x45 + li $9, 0x45 j 0xA0 .global GPU_dw GPU_dw: - li t1, 0x46 + li $9, 0x46 j 0xA0 .global SendGP1Command SendGP1Command: - li t1, 0x48 + li $9, 0x48 j 0xA0 .global GPU_cw GPU_cw: - li t1, 0x49 + li $9, 0x49 j 0xA0 .global GPU_cwp GPU_cwp: - li t1, 0x4A + li $9, 0x4A j 0xA0 .global LoadAndExecute LoadAndExecute: - li t1, 0x51 + li $9, 0x51 j 0xA0 .global CdInit CdInit: - li t1, 0x54 + li $9, 0x54 j 0xA0 .global SetConf SetConf: - li t1, 0x9C + li $9, 0x9C j 0xA0 .global CdReadSector CdReadSector: - li t1, 0xA5 + li $9, 0xA5 j 0xA0 .global SetMemSize SetMemSize: - li t1, 0x9F + li $9, 0x9F j 0xA0 ############### @@ -143,37 +141,37 @@ SetMemSize: .global SetDefaultExitFromException SetDefaultExitFromException: - li t1, 0x18 + li $9, 0x18 j 0xB0 .global FileOpen FileOpen: - li t1, 0x32 + li $9, 0x32 j 0xB0 .global FileRead FileRead: - li t1, 0x34 + li $9, 0x34 j 0xB0 .global FileClose FileClose: - li t1, 0x36 + li $9, 0x36 j 0xB0 .global GetLastError GetLastError: - li t1, 0x54 + li $9, 0x54 j 0xB0 .global GetC0Table GetC0Table: - li t1, 0x56 + li $9, 0x56 j 0xB0 .global GetB0Table GetB0Table: - li t1, 0x57 + li $9, 0x57 j 0xB0 ############### @@ -182,15 +180,15 @@ GetB0Table: .global InstallExceptionHandlers InstallExceptionHandlers: - li t1, 0x07 + li $9, 0x07 j 0xC0 .global InstallDevices InstallDevices: - li t1, 0x12 + li $9, 0x12 j 0xC0 .global AdjustA0Table AdjustA0Table: - li t1, 0x1C + li $9, 0x1C j 0xC0 diff --git a/loader/bios.h b/loader/bios.h index 6aa00ce..723bcab 100644 --- a/loader/bios.h +++ b/loader/bios.h @@ -1,7 +1,7 @@ #pragma once #include -#include +#include typedef struct exe_header exe_header_t; typedef struct handler_info handler_info_t; diff --git a/loader/cdrom.h b/loader/cdrom.h index c26874d..3503705 100644 --- a/loader/cdrom.h +++ b/loader/cdrom.h @@ -1,6 +1,6 @@ #pragma once -#include +#include #include #define CD_CMD_GETSTAT 0x01 diff --git a/loader/cfgparse.h b/loader/cfgparse.h index 00e9464..7935129 100644 --- a/loader/cfgparse.h +++ b/loader/cfgparse.h @@ -1,6 +1,6 @@ #pragma once -#include +#include #include bool config_get_hex(const char * config, const char * wanted, uint32_t * value); diff --git a/loader/crc.h b/loader/crc.h index cf3305b..4e1e512 100644 --- a/loader/crc.h +++ b/loader/crc.h @@ -1,6 +1,6 @@ #pragma once -#include +#include uint32_t crc32(const void * data, uint32_t len); diff --git a/loader/debugscreen.h b/loader/debugscreen.h index d06a360..ef52ae0 100644 --- a/loader/debugscreen.h +++ b/loader/debugscreen.h @@ -1,6 +1,6 @@ #pragma once -#include +#include #include void debug_init(); diff --git a/loader/gpu.h b/loader/gpu.h index c7ac757..de5fa81 100644 --- a/loader/gpu.h +++ b/loader/gpu.h @@ -1,7 +1,7 @@ #pragma once #include -#include +#include #define GPU_DISPLAY_H256 0 #define GPU_DISPLAY_H320 1 diff --git a/loader/integrity.c b/loader/integrity.c index e7c4e3d..f3134f2 100644 --- a/loader/integrity.c +++ b/loader/integrity.c @@ -1,7 +1,7 @@ #include "integrity.h" #include "crc.h" -#include +#include // Loading address of tonyhax, provided by the secondary.ld linker script extern uint8_t __RO_START__, __CRC_START__; diff --git a/loader/io.h b/loader/io.h index b7012b5..1164b7b 100644 --- a/loader/io.h +++ b/loader/io.h @@ -1,6 +1,6 @@ #pragma once -#include +#include #define _REG32(x) (*((volatile uint32_t *) x)) #define _REG16(x) (*((volatile uint16_t *) x)) diff --git a/loader/secondary.c b/loader/secondary.c index 0fc25ec..1c9f920 100644 --- a/loader/secondary.c +++ b/loader/secondary.c @@ -1,6 +1,6 @@ #include -#include +#include #include #include "str.h" #include "audio.h" diff --git a/loader/str.c b/loader/str.c index 0f9c895..4ae2e05 100644 --- a/loader/str.c +++ b/loader/str.c @@ -1,6 +1,6 @@ #include "str.h" -#include +#include int isspace(int c) { switch (c) { diff --git a/loader/tonyhax-tpl-24kb.mcs b/loader/tonyhax-tpl-24kb.mcs new file mode 100644 index 0000000000000000000000000000000000000000..ed08bc6a30eda0c305eb1dfde59e831d23e70615 GIT binary patch literal 24704 zcmeIuu?@m75CA~iEI=ke$^=AA5C{^`K^jEGCX5bF914mQ2#M;xi2d(>JGyhoaSve; z4()Z=|2Izku1dc=*>>HfKi>B9cdXL$vE0s`S0!RB4Na`;ltOA^$lqzrrH{PS$AR3R zhJhyL;<&!^oaPIL^AyJU(m%b|tT!d*{!5(z0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF i5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5(rBk%&#uMM97 literal 0 HcmV?d00001 diff --git a/loader/tonyhax-tpl-ff9-24kb.mcs b/loader/tonyhax-tpl-ff9-24kb.mcs new file mode 100644 index 0000000000000000000000000000000000000000..660761e5056af065fef4fb26e75e43bd6cf5f8b9 GIT binary patch literal 24704 zcmeIuu?@m75CA~iEI=ke$^=AIlt73C9i*dT6GjIo4h2ODghX{;#Qyic9o;45xQDO^ zUAGraa`YdPV)uBc?#ov>7U+f)|(P@|D{fV009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 i2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjZR5qJScY7K(` literal 0 HcmV?d00001 diff --git a/loader/util.h b/loader/util.h index 6102557..db06d8a 100644 --- a/loader/util.h +++ b/loader/util.h @@ -1,6 +1,6 @@ #pragma once -#include +#include /** * Executes a delay of roughly the amount of specified deciseconds (1/10th of a second) diff --git a/readme.md b/readme.md index 901d3a5..50f839f 100644 --- a/readme.md +++ b/readme.md @@ -26,7 +26,7 @@ Tonyhax International is a fork of the [Tonyhax](https://orca.pet/tonyhax/) "Sof * Enables speeding up xStation boot time and allows for applying codes to games `Full Boot`ed by xStation. This is accomplished by a [special xStation ROM version](xstation.md). -* Uses a completely different [build system](build.md) that is portable to many more Linux distributions. This new build system is more efficient and easier to use as well. +* Uses a different [build system](build.md) compatible with the `mipsel-none-elf` toolchain and more operating systems. | [Tonyhax International Homepage](https://alex-free.github.io/tonyhax-international) | [Tonyhax International GitHub](https://github.com/alex-free/tonyhax) | [PSX-Place Thread](https://www.psx-place.com/threads/tonyhax-international-backup-loader-for-all-japanese-usa-and-pal-ps1-consoles-early-ps2-consoles.37925/) | [PSXDEV Thread](http://www.psxdev.net/forum/viewtopic.php?f=66&t=3967) | [GBATemp Thread](https://gbatemp.net/threads/tonyhax-international-backup-loader-for-all-japanese-usa-and-pal-ps1-consoles-early-ps2-consoles-gameshark-cheat-cart-flasher.615892/##post-9922514) | diff --git a/rom/Makefile b/rom/Makefile index 4d30f11..d986eaf 100644 --- a/rom/Makefile +++ b/rom/Makefile @@ -1,7 +1,6 @@ # Thanks to whoever made https://devhints.io/makefile! -include ../variables.mk include ../variables-shared.mk .PHONY: clean @@ -12,4 +11,4 @@ clean: $(RM) $(ROM_FILES) $(ROM_FILES): ../loader/tonyhax.exe cd.xml ../boot-cd/licensej.dat ../nxflash/CDFILES/system.cnf - cd ../psexe2rom; make clean; make; rm -f romfile.dat; ./psexe2rom -d ../loader/tonyhax.exe ../rom/tonyhax-international-$(TONYHAX_VERSION).rom; cp -r ../psexe2rom/romfile.dat ../boot-cd/licensej.dat ../nxflash/CDFILES/system.cnf ../nxflash/NXFLASH.EXE ../rom; cd ../rom; mkpsxiso -y cd.xml; rm -rf romfile.dat NXFLASH.EXE licensej.dat system.cnf ../psexe2rom/romfile.dat ../nxflash/tonyhax-international-$(TONYHAX_VERSION).rom + rm -f romfile.dat; rm -f ../rom/tonyhax-international-$(TONYHAX_VERSION).rom; ./psexe2rom -d ../loader/tonyhax.exe ../rom/tonyhax-international-$(TONYHAX_VERSION).rom; cp -r ../psexe2rom/romfile.dat ../boot-cd/licensej.dat ../nxflash/CDFILES/system.cnf ../nxflash/NXFLASH.EXE ../rom; cd ../rom; mkpsxiso -y cd.xml; rm -rf romfile.dat NXFLASH.EXE licensej.dat system.cnf ../psexe2rom/romfile.dat ../nxflash/tonyhax-international-$(TONYHAX_VERSION).rom diff --git a/scripts/build-mkpsxiso.sh b/scripts/build-mkpsxiso.sh deleted file mode 100755 index e33c1fc..0000000 --- a/scripts/build-mkpsxiso.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/bash -set -e -cd "$(dirname "$0")"/../mkpsxiso -git submodule update --init --recursive -rm -rf ./build -cmake -S . -B ./build -DCMAKE_BUILD_TYPE=Release -cmake --build ./build \ No newline at end of file diff --git a/scripts/build-tool-chain.sh b/scripts/build-tool-chain.sh deleted file mode 100755 index 9ff0d2d..0000000 --- a/scripts/build-tool-chain.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/bash - -set -e -cd "$(dirname "$0")"/../crosstool-ng -./bootstrap -./configure --enable-local -make clean -make -cp ../ct-ng-config .config -rm -rf src -mkdir src -./ct-ng build -../scripts/build-mkpsxiso.sh -make -C ../pcsx-redux-support clean -make -C ../pcsx-redux-support tools diff --git a/scripts/build.sh b/scripts/build.sh deleted file mode 100755 index e65ac2b..0000000 --- a/scripts/build.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash -set -e -cd "$(dirname "$0")"/../ -export PATH="${PWD}"/crosstool-ng/toolchain/bin:"${PWD}"/mkpsxiso/build:"$PATH" -make clean -# git doesn't allow us to store empty directories... -mkdir -p gshax/wipeout-usa -mkdir -p gshax/parasite-eve-usa -mkdir -p gshax/ridge-racer-usa -make -size loader/secondary.elf diff --git a/scripts/clean.sh b/scripts/clean.sh deleted file mode 100755 index f90b71b..0000000 --- a/scripts/clean.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -set -e -cd "$(dirname "$0")"/../ -make clean diff --git a/scripts/set-env-only.sh b/scripts/set-env-only.sh deleted file mode 100755 index e1e4ba0..0000000 --- a/scripts/set-env-only.sh +++ /dev/null @@ -1,4 +0,0 @@ -set -e -cd "$(dirname "$0")"/../ -export PATH="${PWD}"/crosstool-ng/toolchain/bin:"${PWD}"/mkpsxiso/build:"$PATH" -bash \ No newline at end of file diff --git a/scripts/update-version.sh b/scripts/update-version.sh deleted file mode 100755 index 96a3ada..0000000 --- a/scripts/update-version.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash -echo "UpdateVer For Tonyhax International" - -if [ -z "$1" ] || [ -z "$2" ]; then - echo -e "\nError: at least 2 arguments are required.\n\nUsage:\nuver \n\n is the current version in the variable.mk files, i.e. 1.0.8.\n\n is the new version you want to update the variable.mk files to use, i.e. 1.0.9.\n" - exit 1 -fi -cd "$(dirname "$0")"/../ -make clean -find variables.mk* -type f -exec sed -i 's/'TONYHAX_VERSION=v"${1}"'/'TONYHAX_VERSION=v"${2}"'/' {} \; diff --git a/util/bin2h.sh b/util/bin2h.sh index 99fcd58..24c3f4d 100644 --- a/util/bin2h.sh +++ b/util/bin2h.sh @@ -13,11 +13,11 @@ header_file="${3}" cat <"${header_file}" /* - * Automatically generated from ${binary_file}. + * Automatically generated from ${binary_file} by util/bin2h.sh * Do not edit */ -#include +#include #pragma once static const uint8_t ${constant_name}[] = { diff --git a/variables-shared.mk b/variables-shared.mk index 04e900a..c59b991 100644 --- a/variables-shared.mk +++ b/variables-shared.mk @@ -6,12 +6,17 @@ SELF_DIR := $(dir $(lastword $(MAKEFILE_LIST))) # Common variables +TONYHAX_VERSION=v1.4.4 -CC=mips-linux-gnu-gcc -LD=mips-linux-gnu-ld +CC=mipsel-none-elf-gcc +CFLAGS=-Wno-error=array-bounds -G0 -Oz -Wall -Wextra -Wno-main -EL -march=r3000 -mabi=32 -mfp32 -mno-abicalls -fno-pic -fdata-sections -ffunction-sections -fno-builtin -nostdlib -DTONYHAX_VERSION=$(TONYHAX_VERSION) +# Original Tonyhax +#CFLAGS=-O1 -Wall -Wextra -Wno-main -EL -march=r3000 -mabi=32 -mfp32 -mno-abicalls -fno-pic -fdata-sections -ffunction-sections -fno-builtin -nostdlib -DTONYHAX_VERSION=$(TONYHAX_VERSION) -DSOFTUART_PATCH=$(SOFTUART_PATCH) + +LD=mipsel-none-elf-ld LDFLAGS=--gc-sections -OBJCOPY=mips-linux-gnu-objcopy +OBJCOPY=mipsel-none-elf-objcopy OBJCOPYFLAGS=-O binary # Entry point variables diff --git a/variables.mk b/variables.mk deleted file mode 100644 index 86177ca..0000000 --- a/variables.mk +++ /dev/null @@ -1,7 +0,0 @@ - -.DELETE_ON_ERROR: - -.PHONY: clean - -TONYHAX_VERSION=v1.4.4 -CFLAGS=-Os -Wall -Wextra -Wno-main -Werror -mfp32 -mno-abicalls -fno-pic -fdata-sections -ffunction-sections -fno-builtin -nostdlib -DTONYHAX_VERSION=$(TONYHAX_VERSION) diff --git a/variables.mk.freepsxboot b/variables.mk.freepsxboot index 6cd5c9a..375c3e7 100644 --- a/variables.mk.freepsxboot +++ b/variables.mk.freepsxboot @@ -5,5 +5,5 @@ SELF_DIR := $(dir $(lastword $(MAKEFILE_LIST))) -TONYHAX_VERSION=v1.4.4-freepsxboot -CFLAGS=-Os -Wall -Wextra -Wno-main -Werror -mfp32 -mno-abicalls -fno-pic -fdata-sections -ffunction-sections -fno-builtin -nostdlib -DTONYHAX_VERSION=$(TONYHAX_VERSION) -DFREEPSXBOOT +TONYHAX_VERSION:=$(TONYHAX_VERSION)-freepsxboot +CFLAGS+=-DFREEPSXBOOT \ No newline at end of file diff --git a/variables.mk.rom b/variables.mk.rom index b3f52cd..3e9eb0c 100644 --- a/variables.mk.rom +++ b/variables.mk.rom @@ -5,5 +5,5 @@ SELF_DIR := $(dir $(lastword $(MAKEFILE_LIST))) -TONYHAX_VERSION=v1.4.4-rom -CFLAGS=-Os -Wall -Wextra -Wno-main -Werror -mfp32 -mno-abicalls -fno-pic -fdata-sections -ffunction-sections -fno-builtin -nostdlib -DTONYHAX_VERSION=$(TONYHAX_VERSION) -DROM +TONYHAX_VERSION:=$(TONYHAX_VERSION) +CFLAGS+=-DROM diff --git a/variables.mk.tocperfect b/variables.mk.tocperfect index 9f46bc4..df8859a 100644 --- a/variables.mk.tocperfect +++ b/variables.mk.tocperfect @@ -5,5 +5,5 @@ SELF_DIR := $(dir $(lastword $(MAKEFILE_LIST))) -TONYHAX_VERSION=v1.4.4-tocperfect -CFLAGS=-Os -Wall -Wextra -Wno-main -Werror -mfp32 -mno-abicalls -fno-pic -fdata-sections -ffunction-sections -fno-builtin -nostdlib -DTONYHAX_VERSION=$(TONYHAX_VERSION) -DTOCPERFECT +TONYHAX_VERSION:=$(TONYHAX_VERSION)-tocperfect +CFLAGS+=-DTOCPERFECT \ No newline at end of file diff --git a/variables.mk.xstation b/variables.mk.xstation index a01aa97..331daaa 100644 --- a/variables.mk.xstation +++ b/variables.mk.xstation @@ -5,5 +5,5 @@ SELF_DIR := $(dir $(lastword $(MAKEFILE_LIST))) -TONYHAX_VERSION=v1.4.4-xstation -CFLAGS=-Os -Wall -Wextra -Wno-main -Werror -mfp32 -mno-abicalls -fno-pic -fdata-sections -ffunction-sections -fno-builtin -nostdlib -DTONYHAX_VERSION=$(TONYHAX_VERSION) -DXSTATION -DROM +TONYHAX_VERSION:=$(TONYHAX_VERSION)-xstation +CFLAGS+=-DXSTATION \ No newline at end of file diff --git a/xstation/Makefile b/xstation/Makefile index fd64b58..16347ac 100644 --- a/xstation/Makefile +++ b/xstation/Makefile @@ -1,7 +1,6 @@ # Thanks to whoever made https://devhints.io/makefile! -include ../variables.mk include ../variables-shared.mk .PHONY: clean @@ -12,4 +11,4 @@ clean: $(RM) $(X_ROM_FILES) $(X_ROM_FILES): ../loader/tonyhax.exe cd.xml ../boot-cd/licensej.dat ../nxflash/CDFILES/system.cnf - cd ../psexe2rom; make clean; make; rm -f romfile.dat; ./psexe2rom -d ../loader/tonyhax.exe ../xstation/tonyhax-international-x-$(TONYHAX_VERSION).rom; cp -r ../psexe2rom/romfile.dat ../boot-cd/licensej.dat ../nxflash/CDFILES/system.cnf ../nxflash/NXFLASH.EXE ../xstation; cd ../xstation; mkpsxiso -y cd.xml; rm -rf romfile.dat NXFLASH.EXE licensej.dat system.cnf ../psexe2rom/romfile.dat ../nxflash/tonyhax-international-x$(TONYHAX_VERSION).rom + rm -f romfile.dat; rm -f ../xstation/tonyhax-international-x-$(TONYHAX_VERSION).rom; ./psexe2rom -d ../loader/tonyhax.exe ../xstation/tonyhax-international-x-$(TONYHAX_VERSION).rom; cp -r ../psexe2rom/romfile.dat ../boot-cd/licensej.dat ../nxflash/CDFILES/system.cnf ../nxflash/NXFLASH.EXE ../xstation; cd ../xstation; mkpsxiso -y cd.xml; rm -rf romfile.dat NXFLASH.EXE licensej.dat system.cnf ../psexe2rom/romfile.dat ../nxflash/tonyhax-international-x$(TONYHAX_VERSION).rom