From 5da7c2e3b04873cd68def4871da15fcb60bd3ace Mon Sep 17 00:00:00 2001 From: Ed_ Date: Tue, 5 Aug 2025 21:22:49 -0400 Subject: [PATCH] Updating dependencies docs and prepping for more advanced script usage of toolchain for Psy-Q --- code/hello_psyqo/hello_psyqo.s | 0 code/hello_psyqo/hookup.c | 0 psxdev_sample/SpinningCube/build.ps1 | 2 +- readme.md | 39 +- scripts/build.ps1 | 19 - scripts/{build_asm.ps1 => build_armips.ps1} | 0 scripts/build_psyqo.ps1 | 234 +++ scripts/{psx_debug.ps1 => debug_psyqo.ps1} | 0 scripts/update_deps.ps1 | 7 +- toolchain/pcsx-redux | 1 + toolchain/psyq-4_7/include/abs.h | 24 + toolchain/psyq-4_7/include/asm.h | 156 ++ toolchain/psyq-4_7/include/assert.h | 23 + toolchain/psyq-4_7/include/convert.h | 23 + toolchain/psyq-4_7/include/ctype.h | 49 + toolchain/psyq-4_7/include/errno.h | 59 + toolchain/psyq-4_7/include/fcntl.h | 25 + toolchain/psyq-4_7/include/file.h | 33 + toolchain/psyq-4_7/include/fs.h | 103 ++ toolchain/psyq-4_7/include/gtemac.h | 358 +++++ toolchain/psyq-4_7/include/gtenom.h | 167 +++ toolchain/psyq-4_7/include/gtereg.h | 87 ++ toolchain/psyq-4_7/include/gtereg_s.h | 87 ++ toolchain/psyq-4_7/include/inline_a.h | 233 +++ toolchain/psyq-4_7/include/inline_c.h | 1450 ++++++++++++++++++ toolchain/psyq-4_7/include/inline_o.h | 1194 +++++++++++++++ toolchain/psyq-4_7/include/inline_s.h | 194 +++ toolchain/psyq-4_7/include/ioctl.h | 44 + toolchain/psyq-4_7/include/kernel.h | 171 +++ toolchain/psyq-4_7/include/libapi.h | 134 ++ toolchain/psyq-4_7/include/libcd.h | 326 +++++ toolchain/psyq-4_7/include/libcomb.h | 67 + toolchain/psyq-4_7/include/libds.h | 286 ++++ toolchain/psyq-4_7/include/libetc.h | 81 + toolchain/psyq-4_7/include/libgpu.h | 824 +++++++++++ toolchain/psyq-4_7/include/libgs.h | 1467 +++++++++++++++++++ toolchain/psyq-4_7/include/libgte.h | 766 ++++++++++ toolchain/psyq-4_7/include/libgun.h | 25 + toolchain/psyq-4_7/include/libhmd.h | 1121 ++++++++++++++ toolchain/psyq-4_7/include/libmath.h | 44 + toolchain/psyq-4_7/include/libmcrd.h | 59 + toolchain/psyq-4_7/include/libmcx.h | 101 ++ toolchain/psyq-4_7/include/libpad.h | 82 ++ toolchain/psyq-4_7/include/libpress.h | 73 + toolchain/psyq-4_7/include/libsio.h | 79 + toolchain/psyq-4_7/include/libsn.h | 158 ++ toolchain/psyq-4_7/include/libsnd.h | 508 +++++++ toolchain/psyq-4_7/include/libspu.h | 552 +++++++ toolchain/psyq-4_7/include/libtap.h | 25 + toolchain/psyq-4_7/include/limits.h | 38 + toolchain/psyq-4_7/include/malloc.h | 41 + toolchain/psyq-4_7/include/mcgui.h | 132 ++ toolchain/psyq-4_7/include/memory.h | 44 + toolchain/psyq-4_7/include/pad.h | 37 + toolchain/psyq-4_7/include/qsort.h | 30 + toolchain/psyq-4_7/include/r3000.h | 244 +++ toolchain/psyq-4_7/include/rand.h | 22 + toolchain/psyq-4_7/include/romio.h | 15 + toolchain/psyq-4_7/include/setjmp.h | 40 + toolchain/psyq-4_7/include/stdarg.h | 27 + toolchain/psyq-4_7/include/stddef.h | 50 + toolchain/psyq-4_7/include/stdio.h | 47 + toolchain/psyq-4_7/include/stdlib.h | 30 + toolchain/psyq-4_7/include/string.h | 26 + toolchain/psyq-4_7/include/strings.h | 52 + toolchain/psyq-4_7/include/sys/errno.h | 59 + toolchain/psyq-4_7/include/sys/fcntl.h | 25 + toolchain/psyq-4_7/include/sys/file.h | 33 + toolchain/psyq-4_7/include/sys/ioctl.h | 44 + toolchain/psyq-4_7/include/sys/types.h | 80 + toolchain/psyq-4_7/include/types.h | 80 + toolchain/psyq-4_7/lib/libapi.a | Bin 0 -> 70026 bytes toolchain/psyq-4_7/lib/libc.a | Bin 0 -> 42942 bytes toolchain/psyq-4_7/lib/libc2.a | Bin 0 -> 54490 bytes toolchain/psyq-4_7/lib/libcard.a | Bin 0 -> 16230 bytes toolchain/psyq-4_7/lib/libcd.a | Bin 0 -> 94836 bytes toolchain/psyq-4_7/lib/libcomb.a | Bin 0 -> 13306 bytes toolchain/psyq-4_7/lib/libds.a | Bin 0 -> 73900 bytes toolchain/psyq-4_7/lib/libetc.a | Bin 0 -> 20950 bytes toolchain/psyq-4_7/lib/libgpu.a | Bin 0 -> 114856 bytes toolchain/psyq-4_7/lib/libgs.a | Bin 0 -> 438538 bytes toolchain/psyq-4_7/lib/libgte.a | Bin 0 -> 628602 bytes toolchain/psyq-4_7/lib/libgun.a | Bin 0 -> 12200 bytes toolchain/psyq-4_7/lib/libhmd.a | Bin 0 -> 980934 bytes toolchain/psyq-4_7/lib/libmath.a | Bin 0 -> 93904 bytes toolchain/psyq-4_7/lib/libmcrd.a | Bin 0 -> 36742 bytes toolchain/psyq-4_7/lib/libmcx.a | Bin 0 -> 68308 bytes toolchain/psyq-4_7/lib/libpad.a | Bin 0 -> 61468 bytes toolchain/psyq-4_7/lib/libpress.a | Bin 0 -> 94404 bytes toolchain/psyq-4_7/lib/libsio.a | Bin 0 -> 11086 bytes toolchain/psyq-4_7/lib/libsn.a | Bin 0 -> 6594 bytes toolchain/psyq-4_7/lib/libsnd.a | Bin 0 -> 279446 bytes toolchain/psyq-4_7/lib/libspu.a | Bin 0 -> 181518 bytes toolchain/psyq-4_7/lib/libtap.a | Bin 0 -> 8694 bytes 94 files changed, 12730 insertions(+), 26 deletions(-) create mode 100644 code/hello_psyqo/hello_psyqo.s create mode 100644 code/hello_psyqo/hookup.c delete mode 100644 scripts/build.ps1 rename scripts/{build_asm.ps1 => build_armips.ps1} (100%) create mode 100644 scripts/build_psyqo.ps1 rename scripts/{psx_debug.ps1 => debug_psyqo.ps1} (100%) create mode 160000 toolchain/pcsx-redux create mode 100644 toolchain/psyq-4_7/include/abs.h create mode 100644 toolchain/psyq-4_7/include/asm.h create mode 100644 toolchain/psyq-4_7/include/assert.h create mode 100644 toolchain/psyq-4_7/include/convert.h create mode 100644 toolchain/psyq-4_7/include/ctype.h create mode 100644 toolchain/psyq-4_7/include/errno.h create mode 100644 toolchain/psyq-4_7/include/fcntl.h create mode 100644 toolchain/psyq-4_7/include/file.h create mode 100644 toolchain/psyq-4_7/include/fs.h create mode 100644 toolchain/psyq-4_7/include/gtemac.h create mode 100644 toolchain/psyq-4_7/include/gtenom.h create mode 100644 toolchain/psyq-4_7/include/gtereg.h create mode 100644 toolchain/psyq-4_7/include/gtereg_s.h create mode 100644 toolchain/psyq-4_7/include/inline_a.h create mode 100644 toolchain/psyq-4_7/include/inline_c.h create mode 100644 toolchain/psyq-4_7/include/inline_o.h create mode 100644 toolchain/psyq-4_7/include/inline_s.h create mode 100644 toolchain/psyq-4_7/include/ioctl.h create mode 100644 toolchain/psyq-4_7/include/kernel.h create mode 100644 toolchain/psyq-4_7/include/libapi.h create mode 100644 toolchain/psyq-4_7/include/libcd.h create mode 100644 toolchain/psyq-4_7/include/libcomb.h create mode 100644 toolchain/psyq-4_7/include/libds.h create mode 100644 toolchain/psyq-4_7/include/libetc.h create mode 100644 toolchain/psyq-4_7/include/libgpu.h create mode 100644 toolchain/psyq-4_7/include/libgs.h create mode 100644 toolchain/psyq-4_7/include/libgte.h create mode 100644 toolchain/psyq-4_7/include/libgun.h create mode 100644 toolchain/psyq-4_7/include/libhmd.h create mode 100644 toolchain/psyq-4_7/include/libmath.h create mode 100644 toolchain/psyq-4_7/include/libmcrd.h create mode 100644 toolchain/psyq-4_7/include/libmcx.h create mode 100644 toolchain/psyq-4_7/include/libpad.h create mode 100644 toolchain/psyq-4_7/include/libpress.h create mode 100644 toolchain/psyq-4_7/include/libsio.h create mode 100644 toolchain/psyq-4_7/include/libsn.h create mode 100644 toolchain/psyq-4_7/include/libsnd.h create mode 100644 toolchain/psyq-4_7/include/libspu.h create mode 100644 toolchain/psyq-4_7/include/libtap.h create mode 100644 toolchain/psyq-4_7/include/limits.h create mode 100644 toolchain/psyq-4_7/include/malloc.h create mode 100644 toolchain/psyq-4_7/include/mcgui.h create mode 100644 toolchain/psyq-4_7/include/memory.h create mode 100644 toolchain/psyq-4_7/include/pad.h create mode 100644 toolchain/psyq-4_7/include/qsort.h create mode 100644 toolchain/psyq-4_7/include/r3000.h create mode 100644 toolchain/psyq-4_7/include/rand.h create mode 100644 toolchain/psyq-4_7/include/romio.h create mode 100644 toolchain/psyq-4_7/include/setjmp.h create mode 100644 toolchain/psyq-4_7/include/stdarg.h create mode 100644 toolchain/psyq-4_7/include/stddef.h create mode 100644 toolchain/psyq-4_7/include/stdio.h create mode 100644 toolchain/psyq-4_7/include/stdlib.h create mode 100644 toolchain/psyq-4_7/include/string.h create mode 100644 toolchain/psyq-4_7/include/strings.h create mode 100644 toolchain/psyq-4_7/include/sys/errno.h create mode 100644 toolchain/psyq-4_7/include/sys/fcntl.h create mode 100644 toolchain/psyq-4_7/include/sys/file.h create mode 100644 toolchain/psyq-4_7/include/sys/ioctl.h create mode 100644 toolchain/psyq-4_7/include/sys/types.h create mode 100644 toolchain/psyq-4_7/include/types.h create mode 100644 toolchain/psyq-4_7/lib/libapi.a create mode 100644 toolchain/psyq-4_7/lib/libc.a create mode 100644 toolchain/psyq-4_7/lib/libc2.a create mode 100644 toolchain/psyq-4_7/lib/libcard.a create mode 100644 toolchain/psyq-4_7/lib/libcd.a create mode 100644 toolchain/psyq-4_7/lib/libcomb.a create mode 100644 toolchain/psyq-4_7/lib/libds.a create mode 100644 toolchain/psyq-4_7/lib/libetc.a create mode 100644 toolchain/psyq-4_7/lib/libgpu.a create mode 100644 toolchain/psyq-4_7/lib/libgs.a create mode 100644 toolchain/psyq-4_7/lib/libgte.a create mode 100644 toolchain/psyq-4_7/lib/libgun.a create mode 100644 toolchain/psyq-4_7/lib/libhmd.a create mode 100644 toolchain/psyq-4_7/lib/libmath.a create mode 100644 toolchain/psyq-4_7/lib/libmcrd.a create mode 100644 toolchain/psyq-4_7/lib/libmcx.a create mode 100644 toolchain/psyq-4_7/lib/libpad.a create mode 100644 toolchain/psyq-4_7/lib/libpress.a create mode 100644 toolchain/psyq-4_7/lib/libsio.a create mode 100644 toolchain/psyq-4_7/lib/libsn.a create mode 100644 toolchain/psyq-4_7/lib/libsnd.a create mode 100644 toolchain/psyq-4_7/lib/libspu.a create mode 100644 toolchain/psyq-4_7/lib/libtap.a diff --git a/code/hello_psyqo/hello_psyqo.s b/code/hello_psyqo/hello_psyqo.s new file mode 100644 index 0000000..e69de29 diff --git a/code/hello_psyqo/hookup.c b/code/hello_psyqo/hookup.c new file mode 100644 index 0000000..e69de29 diff --git a/psxdev_sample/SpinningCube/build.ps1 b/psxdev_sample/SpinningCube/build.ps1 index 1b7ef7d..aec3d32 100644 --- a/psxdev_sample/SpinningCube/build.ps1 +++ b/psxdev_sample/SpinningCube/build.ps1 @@ -76,7 +76,7 @@ if (-not (test-path $path_build)) { $path_nugget_common = join-path $path_nugget 'common' $unit_nugget_crt0 = join-path $path_nugget_common 'crt0/crt0.s' -$unit_main = join-path $path_root 'main.c' +$unit_main = join-path $path_root 'main.c' $units = @( $unit_nugget_crt0, $unit_main diff --git a/readme.md b/readme.md index 02d85d8..233db6b 100644 --- a/readme.md +++ b/readme.md @@ -6,19 +6,48 @@ A rest from the usual. ## Dependencies +I will be programming from a Windows 11 machine: ![system_info](./docs/assets/system_info.png) ```ps1 -scoop bucket add extras -scoop install armips +# not really used yet for scripts (may never) scoop install lua - -powershell -c "& { iwr -UseBasicParsing https://bit.ly/mips-ps1 | iex }" -mips install 14.2.0 ``` +[armips](https://github.com/Kingcom/armips) + +* Supports doing bare-metal assembly for the ps1 +* `scoop install armips` + [pscx-redux](https://github.com/grumpycoders/pcsx-redux/): A collection of tools, research, hardware design, and libraries aiming at development and reverse engineering on the PlayStation 1. +* Used as the runtime sandbox emulated the ps1 +* Has hookups to behaving as a gdb server which can be utilized with the gdb client in vscode. +* Supports symbolic info emitted by armips +* pysq library has been sucessfully adjusted for modern compiler usage (see: src/) + +[MIPS Toolchain (from pscx-redux)](https://static.grumpycoder.net/pixel/mips/) + +* Used for building ps1 programs for the C runtime provided by the psyq/o SDK + +[nugget](https://github.com/pcsx-redux/nugget) + +* Readonly mirror of pcsx-redux's `src/mips` directory. +* Not necessary if the pcsx-redux repo is cloned + +[PSX Psy-Q SDK (supplied by `psx.arthus.net`)](https://psx.arthus.net/sdk/Psy-Q/) + +* Original official SDK +* Modernized using obj parser to extract info for GNU toolchain usage. +* Can be utilized effectively with the includes below +* Can either grab from arthus [psyq-4.7-converted-full.7z](https://psx.arthus.net/sdk/Psy-Q/psyq-4.7-converted-full.7z) or [psyq-4_7-converted-light.zip](psyq-4_7-converted-light.zip) + * The light version omits the link modules (object files), just keeps the static archives. + +[psyq_include_what_you_use](https://github.com/johnbaumann/psyq_include_what_you_use/) + +* Fixes psyq headers to include what they use, so changing the include order in your project doesn't break compiling. +* Needed if you want to link and utilize the psyq C SDK + ## Gallery ![clear!](./docs/assets/pcsx-redux.main_2025-08-03_18-02-08.png) diff --git a/scripts/build.ps1 b/scripts/build.ps1 deleted file mode 100644 index d974483..0000000 --- a/scripts/build.ps1 +++ /dev/null @@ -1,19 +0,0 @@ -$path_root = split-path -Path $PSScriptRoot -Parent -$path_build = join-path $path_root 'build' -$path_code = join-path $path_root 'code' -$path_scripts = join-path $path_root 'scripts' -$path_toolchain = join-path $path_root 'toolchain' - -if ((test-path $path_build) -eq $false) { - new-item -itemtype directory -path $path_build -} - -$armips = join-path $path_toolchain 'armips/build/Debug/armips.exe' -$bin2exe_lua = join-path $path_scripts 'bin2exe.lua' -$bin2exe_py = join-path $path_scripts 'bin2exe.py' - -# TODO(Ed): General way to build C runtime sandboxed projects. - -# The goal here is to lift w/e is going on in SpinningCube to just utilize the toolchain dir's content -# We also want to strip down the C to just calling the ASM's entry point, from there we'll try to use -# the PS1 SDK from asm and just setup macros for the ABI calling convention diff --git a/scripts/build_asm.ps1 b/scripts/build_armips.ps1 similarity index 100% rename from scripts/build_asm.ps1 rename to scripts/build_armips.ps1 diff --git a/scripts/build_psyqo.ps1 b/scripts/build_psyqo.ps1 new file mode 100644 index 0000000..9acb669 --- /dev/null +++ b/scripts/build_psyqo.ps1 @@ -0,0 +1,234 @@ +$path_root = split-path -Path $PSScriptRoot -Parent +$path_build = join-path $path_root 'build' +$path_code = join-path $path_root 'code' +$path_scripts = join-path $path_root 'scripts' +$path_toolchain = join-path $path_root 'toolchain' + +if ((test-path $path_build) -eq $false) { + new-item -itemtype directory -path $path_build +} + +# TODO(Ed): General way to build C runtime sandboxed projects. + +# The goal here is to lift w/e is going on in SpinningCube to just utilize the toolchain dir's content +# We also want to strip down the C to just calling the ASM's entry point, from there we'll try to use +# the PS1 SDK from asm and just setup macros for the ABI calling convention + +# --- Toolchain Definition --- +# Assumes 'mipsel-none-elf' toolchain is in your system's PATH. +$Prefix = "mipsel-none-elf" +$Compiler = "$($Prefix)-gcc" +$Objcopy = "$($Prefix)-objcopy" + +# --- Abstracted GCC/MIPS Flags --- + +# General Compiler Flags +$f_compile = "-c" +$f_debug = "-g" +$f_define = "-D" +$f_include = "-I" +$f_output = "-o" +$f_std_c11 = "-std=c11" + +# Warning Flags +$f_wall = "-Wall" +$f_wno_attributes = "-Wno-attributes" + +# Optimization Flags +$f_optimize_none = "-O0" # For Debug builds +$f_optimize_size = "-Os" # For Release builds +$f_omit_frame_ptr = "-fomit-frame-pointer" + +# Environment & Standard Library Flags +$f_no_stdlib = "-nostdlib" +$f_freestanding = "-ffreestanding" +$f_no_builtin = "-fno-builtin" + +# MIPS Architecture Specific Flags +$f_arch_mips1 = "-march=mips1" +$f_arch_abi32 = "-mabi=32" +$f_arch_little_endian = "-EL" +$f_arch_fp32 = "-mfp32" +$f_arch_no_pic = "-fno-pic" +$f_arch_no_shared = "-mno-shared" +$f_arch_no_abicalls = "-mno-abicalls" +$f_arch_no_llsc = "-mno-llsc" +$f_arch_no_gpopt = "-mno-gpopt" +$f_arch_no_stack_prot = "-fno-stack-protector" + +# Linker-related Flags (for Compiler) +$f_code_sections = "-ffunction-sections" +$f_data_sections = "-fdata-sections" +$f_no_strict_alias = "-fno-strict-aliasing" + +# Linker Flags (passed via -Wl,) +$f_link_pass_through_prefix = "-Wl," +$f_link_mapfile = "-Map=" # Usage: $flag_link_pass_through_prefix + $flag_link_mapfile + path +$f_link_gc_sections = "--gc-sections" +$f_link_format = "--oformat=" +$f_link_start_group = "--start-group" +$f_link_end_group = "--end-group" +$f_link_static = "-static" +$f_link_script = "-T" +$f_link_lib_path = "-L" +$f_link_lib = "-l" + +# Objcopy Flags +$f_objcopy_format = "-O" + + + +$path_nugget = join-path $path_third_party 'nugget' +$path_psyq = join-path $path_third_party 'psyq' +$path_psyq_imyu = join-path $path_third_party 'psyq-iwyu' + +$path_nugget_common = join-path $path_nugget 'common' + + +function assemble-unit { param( + [string]$ + ) + $compile_args_asm += $f_debug + $compile_args_asm += @( + $f_arch_mips1, + $f_arch_abi32, + $f_arch_fp32, + $f_arch_little_endian, + $f_arch_no_abicalls, + $f_arch_no_pic, + $f_arch_no_llsc, + $f_arch_no_shared, + $f_arch_no_stack_prot + ) + $compile_args_asm += $f_no_stdlib + $compile_args_asm += $f_freestanding + $compile_args_asm += ($f_include + $path_nugget) + + +} + +function compile-unit { param( + [string]$module, + [string]$unit +) + write-host "--- Compiling Source Files ---" -ForegroundColor Cyan + + $compile_args_c = @() + $compile_args_c += $f_debug + $compile_args_c += $f_optimize_none + # $compile_args_c += $f_optimize_size + + $compile_args_c += $f_code_sections + $compile_args_c += $f_data_sections + + $compile_args_c += $f_wno_attributes + $compile_args_c += $f_freestanding + $compile_args_c += $f_omit_frame_ptr + $compile_args_c += $f_no_builtin + $compile_args_c += $f_no_stdlib + $compile_args_c += $f_no_strict_alias + $compile_args_c += @( + $f_arch_mips1, + $f_arch_abi32, + $f_arch_fp32, + $f_arch_little_endian, + $f_arch_no_abicalls, + $f_arch_no_gpopt, + $f_arch_no_pic, + $f_arch_no_llsc, + $f_arch_no_shared, + $f_arch_no_stack_prot + ) + $path_psyq_imyu_inc = join-path $path_psyq_imyu 'include' + $compile_args_c += ($f_include + $path_psyq_imyu_inc) + $compile_args_c += ($f_include + $path_nugget) +} + +function link-modules { param( + + + ) + write-host "`n--- Linking Modules ---" -ForegroundColor Cyan + + $link_args = @() + $link_args += $f_debug + # $link_args += $f_optimize_size + + $link_args += $f_no_stdlib + $link_args += $f_link_static + + $link_args += $f_arch_mips1 + $link_args += $f_arch_abi32 + $link_args += $f_arch_little_endian + + $link_args += ($f_link_pass_through_prefix + $f_link_gc_sections) + $link_args += ($f_link_pass_through_prefix + $f_link_format + "elf32-littlemips") + + $linkscript_nugget = join-path $path_nugget 'nooverlay.ld' + $linkscript_ps_exe = join-path $path_nugget "ps-exe.ld" + $link_args += ($f_link_script + $linkscript_nugget) + $link_args += ($f_link_script + $linkscript_ps_exe) + + $path_psyq_lib = join-path $path_psyq 'lib' + $link_args += ($f_link_lib_path + $path_psyq_lib) + + $link_args += $link_modules + + $map = join-path $path_build 'SpinningCube.map' + $link_args += ($f_link_pass_through_prefix + $f_link_mapfile + $map) + + $link_args += ($f_link_pass_through_prefix + $f_link_start_group) + $libraries = @( + "api", + "c", + "c2", + "card", + "cd", + "comb", + "ds", + "etc", + "gpu", + "gs", + "gte", + "gun", + "hmd", + "math", + "mcrd", + "mcx", + "pad", + "press", + "sio", + "snd", + "spu", + "tap" + ) + foreach ($lib in $libraries) { + $link_args += ($f_link_lib + $lib) + } + + $elf = Join-Path $path_build "SpinningCube.elf" + $final_link_args = @($link_args) + ($f_output + $elf) + + write-host "Linking modules into 'SpinningCube.elf'" + $final_link_args += ($f_link_pass_through_prefix + $f_link_end_group) + $final_link_args | foreach-object { write-host $_ } + & $Compiler $final_link_args + if ($LASTEXITCODE -ne 0) { write-error "Linking failed. Aborting."; exit 1 } +} + +function make-binary { param( + +) + Write-Host "`n--- Creating Final Binary ---" -ForegroundColor Cyan + $exe = join-path $path_build "SpinningCube.ps-exe" + + write-host "Converting ELF to PS-EXE -> 'SpinningCube.ps-exe'" + $objcopy_args = ($f_objcopy_format + "binary"), $elf, $exe + & $Objcopy $objcopy_args + if ($LASTEXITCODE -ne 0) { Write-Error "Objcopy failed. Aborting."; exit 1 } +} + +function build-hello_psyqo { + +} +build-hello_psyqo diff --git a/scripts/psx_debug.ps1 b/scripts/debug_psyqo.ps1 similarity index 100% rename from scripts/psx_debug.ps1 rename to scripts/debug_psyqo.ps1 diff --git a/scripts/update_deps.ps1 b/scripts/update_deps.ps1 index 52c1556..f3a5518 100644 --- a/scripts/update_deps.ps1 +++ b/scripts/update_deps.ps1 @@ -18,7 +18,7 @@ $url_armips = 'https://github.com/Kingcom/armips.git' $url_pcsx_redux = 'https://github.com/grumpycoders/pcsx-redux.git' $path_armips = join-path $path_toolchain 'armips' -$path_pcsx_redux = join-path $path_toolchain 'pcsx_redux' +$path_pcsx_redux = join-path $path_toolchain 'pcsx-redux' clone-gitrepo $path_armips $url_armips clone-gitrepo $path_pcsx_redux $url_pcsx_redux @@ -29,3 +29,8 @@ push-location $path_armips_build & cmake .. & cmake --build . --config Debug pop-location + +$path_pcsx_redux_vsprojects = join-path $path_pcsx_redux 'vscprojects' +$path_pcsx_redux_binaries = join-path $path_pcsx_redux_vsprojects 'x64/Release' + +$psyq_obj_parser = join-path $path_pcsx_redux_binaries 'psyq-obj-parser.exe' diff --git a/toolchain/pcsx-redux b/toolchain/pcsx-redux new file mode 160000 index 0000000..a2a6d77 --- /dev/null +++ b/toolchain/pcsx-redux @@ -0,0 +1 @@ +Subproject commit a2a6d77cba728e8f2b3713f9c4ee0c0ee7bf11a1 diff --git a/toolchain/psyq-4_7/include/abs.h b/toolchain/psyq-4_7/include/abs.h new file mode 100644 index 0000000..4178081 --- /dev/null +++ b/toolchain/psyq-4_7/include/abs.h @@ -0,0 +1,24 @@ +/* + * File:abs.h + */ +/* + * $PSLibId: Run-time Library Release 4.7$ + */ + +#ifndef _ABS_H +#define _ABS_H + +#ifndef ABS +#define ABS(x) (((x)>=0)?(x):(-(x))) +#endif /* abs */ + +#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus) +extern "C" { +#endif +extern int abs(int); +#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus) +} +#endif + +#endif /* _ABS_H */ + diff --git a/toolchain/psyq-4_7/include/asm.h b/toolchain/psyq-4_7/include/asm.h new file mode 100644 index 0000000..6685112 --- /dev/null +++ b/toolchain/psyq-4_7/include/asm.h @@ -0,0 +1,156 @@ +/* + * File:asm.h +*/ +/* + * $PSLibId: Run-time Library Release 4.7$ + */ +#ifndef _ASM_H +#define _ASM_H + +#define R0 $0 +#define R1 $1 +#define R2 $2 +#define R3 $3 +#define R4 $4 +#define R5 $5 +#define R6 $6 +#define R7 $7 +#define R8 $8 +#define R9 $9 +#define R10 $10 +#define R11 $11 +#define R12 $12 +#define R13 $13 +#define R14 $14 +#define R15 $15 +#define R16 $16 +#define R17 $17 +#define R18 $18 +#define R19 $19 +#define R20 $20 +#define R21 $21 +#define R22 $22 +#define R23 $23 +#define R24 $24 +#define R25 $25 +#define R26 $26 +#define R27 $27 +#define R28 $28 +#define R29 $29 +#define R30 $30 +#define R31 $31 + +#if defined(_LANGUAGE_C)||defined(LANGUAGE_C)||defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus) +#else +#define zero $0 /* wired zero */ +#define AT $1 /* assembler temp */ +#define v0 $2 /* return value */ +#define v1 $3 +#define a0 $4 /* argument registers */ +#define a1 $5 +#define a2 $6 +#define a3 $7 +#define t0 $8 /* caller saved */ +#define t1 $9 +#define t2 $10 +#define t3 $11 +#define t4 $12 +#define t5 $13 +#define t6 $14 +#define t7 $15 +#define s0 $16 /* callee saved */ +#define s1 $17 +#define s2 $18 +#define s3 $19 +#define s4 $20 +#define s5 $21 +#define s6 $22 +#define s7 $23 +#define t8 $24 /* code generator */ +#define t9 $25 +#define k0 $26 /* kernel temporary */ +#define k1 $27 +#define gp $28 /* global pointer */ +#define sp $29 /* stack pointer */ +#define fp $30 /* frame pointer */ +#define ra $31 /* return address */ +#endif + + +/* register offset */ +#define R_R0 0 +#define R_R1 1 +#define R_R2 2 +#define R_R3 3 +#define R_R4 4 +#define R_R5 5 +#define R_R6 6 +#define R_R7 7 +#define R_R8 8 +#define R_R9 9 +#define R_R10 10 +#define R_R11 11 +#define R_R12 12 +#define R_R13 13 +#define R_R14 14 +#define R_R15 15 +#define R_R16 16 +#define R_R17 17 +#define R_R18 18 +#define R_R19 19 +#define R_R20 20 +#define R_R21 21 +#define R_R22 22 +#define R_R23 23 +#define R_R24 24 +#define R_R25 25 +#define R_R26 26 +#define R_R27 27 +#define R_R28 28 +#define R_R29 29 +#define R_R30 30 +#define R_R31 31 +#define R_EPC 32 +#define R_MDHI 33 +#define R_MDLO 34 +#define R_SR 35 +#define R_CAUSE 36 +#define NREGS 40 + +/* + * compiler defined bindings + */ +#define R_ZERO R_R0 +#define R_AT R_R1 +#define R_V0 R_R2 +#define R_V1 R_R3 +#define R_A0 R_R4 +#define R_A1 R_R5 +#define R_A2 R_R6 +#define R_A3 R_R7 +#define R_T0 R_R8 +#define R_T1 R_R9 +#define R_T2 R_R10 +#define R_T3 R_R11 +#define R_T4 R_R12 +#define R_T5 R_R13 +#define R_T6 R_R14 +#define R_T7 R_R15 +#define R_S0 R_R16 +#define R_S1 R_R17 +#define R_S2 R_R18 +#define R_S3 R_R19 +#define R_S4 R_R20 +#define R_S5 R_R21 +#define R_S6 R_R22 +#define R_S7 R_R23 +#define R_T8 R_R24 +#define R_T9 R_R25 +#define R_K0 R_R26 +#define R_K1 R_R27 +#define R_GP R_R28 +#define R_SP R_R29 +#define R_FP R_R30 +#define R_RA R_R31 + +#endif diff --git a/toolchain/psyq-4_7/include/assert.h b/toolchain/psyq-4_7/include/assert.h new file mode 100644 index 0000000..f1f92f1 --- /dev/null +++ b/toolchain/psyq-4_7/include/assert.h @@ -0,0 +1,23 @@ +/* + * $PSLibId: Run-time Library Release 4.7$ + */ +/* + * File:assert.h + */ + +#ifndef _ASSERT_H +#define _ASSERT_H + +# ifdef NDEBUG + +# define _assert(x) +# define assert(x) + +# else + +# define _assert(x) {if (!(x)){printf("Assertion failed: file \"%s\", line %d\n", __FILE__, __LINE__);exit(1);}} +# define assert(x) _assert(x) + +# endif + +#endif /* _ASSERT_H */ diff --git a/toolchain/psyq-4_7/include/convert.h b/toolchain/psyq-4_7/include/convert.h new file mode 100644 index 0000000..77a4d5e --- /dev/null +++ b/toolchain/psyq-4_7/include/convert.h @@ -0,0 +1,23 @@ +/* + * File:convert.h + */ +/* + * $PSLibId: Run-time Library Release 4.7$ + */ +#ifndef _CONVERT_H +#define _CONVERT_H + +#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus) +extern "C" { +#endif +extern int atoi(const char *); +extern long atol(const char *); +extern long strtol(const char *,char**, int); +extern unsigned long strtoul(const char *, char **, int); +extern long labs(long); + +#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus) +} +#endif + +#endif diff --git a/toolchain/psyq-4_7/include/ctype.h b/toolchain/psyq-4_7/include/ctype.h new file mode 100644 index 0000000..ec4a8ec --- /dev/null +++ b/toolchain/psyq-4_7/include/ctype.h @@ -0,0 +1,49 @@ +/* + * File:ctype.h + * character handling macro definitions + */ +/* + * $PSLibId: Run-time Library Release 4.7$ + */ + +#ifndef _CTYPE_H +#define _CTYPE_H + +#define _U 0x01 /* upper case letter */ +#define _L 0x02 /* lower case letter */ +#define _N 0x04 /* digit */ +#define _S 0x08 /* space, tab, newline, vertical tab, formfeed, or + carriage return */ +#define _P 0x10 /* punctuation character */ +#define _C 0x20 /* control character or delete */ +#define _X 0x40 /* hexadecimal digit [0-9a-fA-F]*/ +#define _B 0x80 /* blank (space) */ + +extern char _ctype_[]; +#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus) +extern "C" { +#endif +extern char toupper(char); +extern char tolower(char); +#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus) +} +#endif + +#define isalpha(c) ((_ctype_+1)[(unsigned char)(c)]&(_U|_L)) +#define isupper(c) ((_ctype_+1)[(unsigned char)(c)]&_U) +#define islower(c) ((_ctype_+1)[(unsigned char)(c)]&_L) +#define isdigit(c) ((_ctype_+1)[(unsigned char)(c)]&_N) +#define isxdigit(c) ((_ctype_+1)[(unsigned char)(c)]&(_X|_N)) +#define isspace(c) ((_ctype_+1)[(unsigned char)(c)]&_S) +#define ispunct(c) ((_ctype_+1)[(unsigned char)(c)]&_P) +#define isalnum(c) ((_ctype_+1)[(unsigned char)(c)]&(_U|_L|_N)) +#define isprint(c) ((_ctype_+1)[(unsigned char)(c)]&(_P|_U|_L|_N|_B)) +#define isgraph(c) ((_ctype_+1)[(unsigned char)(c)]&(_P|_U|_L|_N)) +#define iscntrl(c) ((_ctype_+1)[(unsigned char)(c)]&_C) +#define isascii(c) ((unsigned)(c)<=0x7f) +#define toascii(c) ((unsigned char)(c)&0x7f) +#define _toupper(c) ((unsigned char)(c)-'a'+'A') +#define _tolower(c) ((unsigned char)(c)-'A'+'a') + +#endif /* _CTYPE_H */ + diff --git a/toolchain/psyq-4_7/include/errno.h b/toolchain/psyq-4_7/include/errno.h new file mode 100644 index 0000000..be0c751 --- /dev/null +++ b/toolchain/psyq-4_7/include/errno.h @@ -0,0 +1,59 @@ +/* + * Error codes + * $RCSfile: errno.h,v $ + * $Id: errno.h,v 1.3 1995/02/28 10:02:53 yoshi Exp $ + */ +/* + * $PSLibId: Run-time Library Release 4.7$ + */ + +#ifndef _ERRNO_H +#define _ERRNO_H + +/* Error codes */ + +#define EPERM 1 /* Not owner */ +#define ENOENT 2 /* No such file or directory */ +#define ESRCH 3 /* No such process */ +#define EINTR 4 /* Interrupted system call */ +#define EIO 5 /* I/O error */ +#define ENXIO 6 /* No such device or address */ +#define E2BIG 7 /* Arg list too long */ +#define ENOEXEC 8 /* Exec format error */ +#define EBADF 9 /* Bad file number */ +#define ECHILD 10 /* No children */ +#define EAGAIN 11 /* No more processes */ +#define ENOMEM 12 /* Not enough core */ +#define EACCES 13 /* Permission denied */ +#define EFAULT 14 /* Bad address */ +#define ENOTBLK 15 /* Block device required */ +#define EBUSY 16 /* Mount device busy */ +#define EEXIST 17 /* File exists */ +#define EXDEV 18 /* Cross-device link */ +#define ENODEV 19 /* No such device */ +#define ENOTDIR 20 /* Not a directory*/ +#define EISDIR 21 /* Is a directory */ +#define EINVAL 22 /* Invalid argument */ +#define ENFILE 23 /* File table overflow */ +#define EMFILE 24 /* Too many open files */ +#define ENOTTY 25 /* Not a typewriter */ +#define ETXTBSY 26 /* Text file busy */ +#define EFBIG 27 /* File too large */ +#define ENOSPC 28 /* No space left on device */ +#define ESPIPE 29 /* Illegal seek */ +#define EROFS 30 /* Read-only file system */ +#define EFORMAT 31 /* Bad file format */ +#define EPIPE 32 /* Broken pipe */ + +/* math software */ +#define EDOM 33 /* Argument too large */ +#define ERANGE 34 /* Result too large */ + +/* non-blocking and interrupt i/o */ +#define EWOULDBLOCK 35 /* Operation would block */ +#define EINPROGRESS 36 /* Operation now in progress */ +#define EALREADY 37 /* Operation already in progress */ + +extern int errno; + +#endif /* _ERRNO_H */ diff --git a/toolchain/psyq-4_7/include/fcntl.h b/toolchain/psyq-4_7/include/fcntl.h new file mode 100644 index 0000000..b963ce3 --- /dev/null +++ b/toolchain/psyq-4_7/include/fcntl.h @@ -0,0 +1,25 @@ +/* + * File:fcntl.h + */ +/* + * $PSLibId: Run-time Library Release 4.7$ + */ + +#ifndef _SYS_FCNTL_H +#define _SYS_FCNTL_H + +/* flags */ +#define FREAD 0x0001 /* readable */ +#define FWRITE 0x0002 /* writable */ +#define FNBLOCK 0x0004 /* non-blocking reads */ +#define FRLOCK 0x0010 /* read locked (non-shared) */ +#define FWLOCK 0x0020 /* write locked (non-shared) */ +#define FAPPEND 0x0100 /* append on each write */ +#define FCREAT 0x0200 /* create if nonexistant */ +#define FTRUNC 0x0400 /* truncate to zero length */ +#define FSCAN 0x1000 /* scan type */ +#define FRCOM 0x2000 /* remote command entry */ +#define FNBUF 0x4000 /* no ring buf. and console interrupt */ +#define FASYNC 0x8000 /* asyncronous i/o */ + +#endif /* _SYS_FCNTL_H */ diff --git a/toolchain/psyq-4_7/include/file.h b/toolchain/psyq-4_7/include/file.h new file mode 100644 index 0000000..0db9e08 --- /dev/null +++ b/toolchain/psyq-4_7/include/file.h @@ -0,0 +1,33 @@ +/* + * File:file.h +*/ +/* + * $PSLibId: Run-time Library Release 4.7$ + */ + +#ifndef _SYS_FILE_H +#define _SYS_FILE_H + +#include + +/* Flag for open() */ +#define O_RDONLY FREAD +#define O_WRONLY FWRITE +#define O_RDWR FREAD|FWRITE +#define O_CREAT FCREAT /* open with file create */ +#define O_NOBUF FNBUF /* no device buffer and console interrupt */ +#define O_NBLOCK FNBLOCK /* non blocking mode */ +#define O_NOWAIT FASYNC /* asyncronous i/o */ + +#ifndef SEEK_SET +#define SEEK_SET 0 +#endif +#ifndef SEEK_CUR +#define SEEK_CUR 1 +#endif +#ifndef SEEK_END +#define SEEK_END 2 +#endif + +#endif /* _SYS_FILE_H */ + diff --git a/toolchain/psyq-4_7/include/fs.h b/toolchain/psyq-4_7/include/fs.h new file mode 100644 index 0000000..ff7e953 --- /dev/null +++ b/toolchain/psyq-4_7/include/fs.h @@ -0,0 +1,103 @@ +/* + * File:fs.h + */ +/* + * $PSLibId: Run-time Library Release 4.7$ + */ + +#ifndef _FS_H +#define _FS_H + +#if defined(_LANGUAGE_C)||defined(LANGUAGE_C)||defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus) + +/* device table */ +struct device_table { + char *dt_string; /* device name */ + int dt_type; /* device "type" */ + int dt_bsize; /* file system type */ + char *dt_desc; /* device description */ + int (*dt_init)(); /* device init routine */ + int (*dt_open)(); /* device open routine */ + int (*dt_strategy)(); /* device strategy routine, returns cnt */ + int (*dt_close)(); /* device close routine */ + int (*dt_ioctl)(); /* device ioctl routine */ + int (*dt_read)(); /* fs read routine, returns count */ + int (*dt_write)(); /* fs write routine, return count */ + int (*dt_delete)(); /* file delete routine */ + int (*dt_undelete)(); /* file delete routine */ + int (*dt_firstfile)(); /* directory serach routine */ + int (*dt_nextfile)(); /* directory serach routine */ + int (*dt_format)(); + int (*dt_cd)(); + int (*dt_rename)(); + int (*dt_remove)(); + int (*dt_else)(); +}; +#endif /* LANGUAGE_C */ + +/* device types */ +#define DTTYPE_CHAR 0x1 /* character device */ +#define DTTYPE_CONS 0x2 /* can be console */ +#define DTTYPE_BLOCK 0x4 /* block device */ +#define DTTYPE_RAW 0x8 /* raw device that uses fs switch */ +#define DTTYPE_FS 0x10 + + +/* character device flags */ +#define DB_RAW 0x1 /* don't interpret special chars */ +#define DB_STOPPED 0x2 /* stop output */ +#define DB_BREAK 0x4 /* cntl-c raise console interrpt */ + +/* character device buffer */ +#define CBUFSIZE 256 + +#if defined(_LANGUAGE_C)||defined(LANGUAGE_C)||defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus) +struct device_buf { + int db_flags; /* character device flags */ + char *db_in; /* pts at next free char */ + char *db_out; /* pts at next filled char */ + char db_buf[CBUFSIZE]; /* circular buffer for input */ +}; +#endif /* LANGUAGE_C */ + +/* circular buffer functions */ +#define CIRC_EMPTY(x) ((x)->db_in == (x)->db_out) +#define CIRC_FLUSH(x) ((x)->db_in = (x)->db_out = (x)->db_buf) +#define CIRC_STOPPED(x) ((x)->db_flags & DB_STOPPED) + + +/* io block */ +#if defined(_LANGUAGE_C)||defined(LANGUAGE_C)||defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus) +struct iob { + int i_flgs; + int i_unit; /* pseudo device unit */ + char *i_ma; /* memory address of i/o buffer */ + unsigned int i_cc; /* character count of transfer */ + unsigned long i_offset; /* seek offset in file */ + int i_fstype; /* file system type */ + int i_errno; /* error # return */ + struct device_table *i_dp; /* pointer into device_table */ + unsigned long i_size; + long i_head; + long i_fd; /* file descriptor */ +}; +#endif /* LANGUAGE_C */ + +#ifndef NULL +#define NULL 0 +#endif + +/* Request codes */ +#define READ 1 +#define WRITE 2 + +#define NIOB 16 /* max number of open files */ + +/* +extern int _nulldev(); +extern int _nodev(); +*/ + +#endif /* _FS_H */ + + diff --git a/toolchain/psyq-4_7/include/gtemac.h b/toolchain/psyq-4_7/include/gtemac.h new file mode 100644 index 0000000..08a4fe2 --- /dev/null +++ b/toolchain/psyq-4_7/include/gtemac.h @@ -0,0 +1,358 @@ +/* + * $PSLibId: Run-time Library Release 4.7$ + */ +/* + * GTE inline functions(Simple) + */ +#define gte_RotTransPers(r1,r2,r3,r4,r5) \ + { gte_ldv0(r1); \ + gte_rtps(); \ + gte_stsxy(r2); \ + gte_stdp(r3); \ + gte_stflg(r4); \ + gte_stszotz(r5); } + +#define gte_RotTransPers3(r1,r2,r3,r4,r5,r6,r7,r8,r9) \ + { gte_ldv3(r1,r2,r3); \ + gte_rtpt(); \ + gte_stsxy3(r4,r5,r6); \ + gte_stdp(r7); \ + gte_stflg(r8); \ + gte_stszotz(r9); } + +#define gte_RotTrans(r1,r2,r3) \ + { gte_ldv0(r1); \ + gte_rt(); \ + gte_stlvnl(r2); \ + gte_stflg(r3); } + +#define gte_LocalLight(r1,r2) \ + { gte_ldv0(r1); \ + gte_ll(); \ + gte_stlvl(r2); } + +#define gte_LightColor(r1,r2) \ + { gte_ldlvl(r1); \ + gte_lc(); \ + gte_stlvl(r2); } + +#define gte_DpqColorLight(r1,r2,r3,r4) \ + { gte_ldlvl(r1); \ + gte_ldrgb(r2); \ + gte_lddp(r3); \ + gte_dpcl(); \ + gte_strgb(r4); } + +#define gte_DpqColor(r1,r2,r3) \ + { gte_ldrgb(r1); \ + gte_lddp(r2); \ + gte_dpcs(); \ + gte_strgb(r3); } + +#define gte_DpqColor3(r1,r2,r3,r4,r5,r6,r7) \ + { gte_ldrgb3(r1,r2,r3); \ + gte_lddp(r4); \ + gte_dpct(); \ + gte_strgb3(r5,r6,r7); } + +#define gte_Intpl(r1,r2,r3) \ + { gte_ldlvl(r1); \ + gte_lddp(r2); \ + gte_intpl(); \ + gte_strgb(r3); } + +#define gte_Square12(r1,r2) \ + { gte_ldlvl(r1); \ + gte_sqr12(); \ + gte_stlvnl(r2); } + +#define gte_Square0(r1,r2) \ + { gte_ldlvl(r1); \ + gte_sqr0(); \ + gte_stlvnl(r2); } + +#define gte_NormalColor(r1,r2) \ + { gte_ldv0(r1); \ + gte_ncs(); \ + gte_strgb(r2); } + +#define gte_NormalColor3(r1,r2,r3,r4,r5,r6) \ + { gte_ldv3(r1,r2,r3); \ + gte_nct(); \ + gte_strgb3(r4,r5,r6); } + +#define gte_NormalColorDpq(r1,r2,r3,r4) \ + { gte_ldv0(r1); \ + gte_ldrgb(r2); \ + gte_lddp(r3); \ + gte_ncds(); \ + gte_strgb(r4); } + +#define gte_NormalColorDpq3(r1,r2,r3,r4,r5,r6,r7,r8) \ + { gte_ldv3(r1,r2,r3); \ + gte_ldrgb(r4); \ + gte_lddp(r5); \ + gte_ncdt(); \ + gte_strgb3(r6,r7,r8); } + +#define gte_NormalColorCol(r1,r2,r3) \ + { gte_ldv0(r1); \ + gte_ldrgb(r2); \ + gte_nccs(); \ + gte_strgb(r3); } + +#define gte_NormalColorCol3(r1,r2,r3,r4,r5,r6,r7) \ + { gte_ldv3(r1,r2,r3); \ + gte_ldrgb(r4); \ + gte_ncct(); \ + gte_strgb3(r5,r6,r7); } + +#define gte_ColorDpq(r1,r2,r3,r4) \ + { gte_ldlvl(r1); \ + gte_ldrgb(r2); \ + gte_lddp(r3); \ + gte_cdp(); \ + gte_strgb(r4); } + +#define gte_ColorCol(r1,r2,r3) \ + { gte_ldlvl(r1); \ + gte_ldrgb(r2); \ + gte_cc(); \ + gte_strgb(r3); } + +#define gte_NormalClip(r1,r2,r3,r4) \ + { gte_ldsxy3(r1,r2,r3); \ + gte_nclip(); \ + gte_stopz(r4); } + +#define gte_AverageZ3(r1,r2,r3,r4) \ + { gte_ldsz3(r1,r2,r3); \ + gte_avsz3(); \ + gte_stotz(r4); } + +#define gte_AverageZ4(r1,r2,r3,r4,r5) \ + { gte_ldsz4(r1,r2,r3,r4); \ + gte_avsz4(); \ + gte_stotz(r5); } + +#define gte_OuterProduct12(r1,r2,r3) \ + { gte_ldopv1(r1); \ + gte_ldopv2(r2); \ + gte_op12(); \ + gte_stlvnl(r3); } + +#define gte_OuterProduct0(r1,r2,r3) \ + { gte_ldopv1(r1); \ + gte_ldopv2(r2); \ + gte_op0(); \ + gte_stlvnl(r3); } + +#define gte_OuterProduct12SVL(r1,r2,r3) \ + { gte_ldopv1SV(r1); \ + gte_ldopv2SV(r2); \ + gte_op12(); \ + gte_stlvnl(r3); } + +#define gte_OuterProduct0SVL(r1,r2,r3) \ + { gte_ldopv1SV(r1); \ + gte_ldopv2SV(r2); \ + gte_op0(); \ + gte_stlvnl(r3); } + +#define gte_OuterProduct12SV(r1,r2,r3) \ + { gte_ldopv1SV(r1); \ + gte_ldopv2SV(r2); \ + gte_op12(); \ + gte_stsv(r3); } + +#define gte_OuterProduct0SV(r1,r2,r3) \ + { gte_ldopv1SV(r1); \ + gte_ldopv2SV(r2); \ + gte_op0(); \ + gte_stsv(r3); } + +#define gte_Lzc(r1,r2) \ + { gte_ldlzc(r1); \ + gte_nop(); \ + gte_nop(); \ + gte_stlzc(r2); } + +/* + * GTE inline functions(Combination) + * 4 vertices functions can't be replaced by equivalent macros + * because they use OR of flags after rtpt & rtps + * Please write directry in your program. + */ +#define gte_RotAverage3(r1,r2,r3,r4,r5,r6,r7,r8,r9) \ + { gte_ldv3(r1,r2,r3); \ + gte_rtpt(); \ + gte_stsxy3(r4,r5,r6); \ + gte_stdp(r7); \ + gte_stflg(r8); \ + gte_avsz3(); \ + gte_stotz(r9); } + +#define gte_RotNclip3(r1,r2,r3,r4,r5,r6,r7,r8,r9,r10) \ + { gte_ldv3(r1,r2,r3); \ + gte_rtpt(); \ + gte_stflg(r9); \ + gte_nclip(); \ + gte_stopz(r10); \ + gte_stsxy3(r4,r5,r6); \ + gte_stdp(r7); \ + gte_stszotz(r8); } + +#define gte_RotAverageNclip3(r1,r2,r3,r4,r5,r6,r7,r8,r9,r10) \ + { gte_ldv3(r1,r2,r3); \ + gte_rtpt(); \ + gte_stflg(r9); \ + gte_nclip(); \ + gte_stopz(r10); \ + gte_stsxy3(r4,r5,r6); \ + gte_stdp(r7); \ + gte_avsz3(); \ + gte_stotz(r8); } + +#define gte_RotColorDpq(r1,r2,r3,r4,r5,r6,r7) \ + { gte_ldv0(r1); \ + gte_rtps(); \ + gte_stsxy(r4); \ + gte_stflg(r6); \ + gte_ldv0(r2); \ + gte_ldrgb(r3); \ + gte_ncds(); \ + gte_strgb(r5); \ + gte_stszotz(r7); } + +#define gte_RotColorDpq3(r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,r11,r12,r13,r14,r15) \ + { gte_ldv3(r1,r2,r3); \ + gte_rtpt(); \ + gte_stsxy3(r8,r9,r10); \ + gte_stflg(r14); \ + gte_ldv3(r4,r5,r6); \ + gte_ldrgb(r7); \ + gte_ncdt(); \ + gte_strgb3(r11,r12,r13);\ + gte_stszotz(r15); } + +#define gte_RotAverageNclipColorDpq3(r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,r11,r12,r13,r14,r15,r16) \ + { gte_ldv3(r1,r2,r3); \ + gte_rtpt(); \ + gte_stflg(r15); \ + gte_nclip(); \ + gte_stopz(r16); \ + gte_ldv3(r4,r5,r6); \ + gte_ldrgb(r7); \ + gte_ncdt(); \ + gte_stsxy3(r8,r9,r10); \ + gte_strgb3(r11,r12,r13);\ + gte_avsz3(); \ + gte_stotz(r14); } + +#define gte_RotAverageNclipColorCol3(r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,r11,r12,r13,r14,r15,r16) \ + { gte_ldv3(r1,r2,r3); \ + gte_rtpt(); \ + gte_stflg(r15); \ + gte_nclip(); \ + gte_stopz(r16); \ + gte_ldv3(r4,r5,r6); \ + gte_ldrgb(r7); \ + gte_ncct(); \ + gte_stsxy3(r8,r9,r10); \ + gte_strgb3(r11,r12,r13);\ + gte_avsz3(); \ + gte_stotz(r14); } + +#define gte_LoadAverage12(r1,r2,r3,r4,r5) \ + { gte_lddp(r3); \ + gte_ldlvl(r1); \ + gte_gpf12(); \ + gte_lddp(r4); \ + gte_ldlvl(r2); \ + gte_gpl12(); \ + gte_stlvl(r5); } + +#define gte_LoadAverage0(r1,r2,r3,r4,r5) \ + { gte_lddp(r3); \ + gte_ldlvl(r1); \ + gte_gpf0(); \ + gte_lddp(r4); \ + gte_ldlvl(r2); \ + gte_gpl0(); \ + gte_stlvl(r5); } + +#define gte_LoadAverageShort12(r1,r2,r3,r4,r5) \ + { gte_lddp(r3); \ + gte_ldsv(r1); \ + gte_gpf12(); \ + gte_lddp(r4); \ + gte_ldsv(r2); \ + gte_gpl12(); \ + gte_stsv(r5); } + +#define gte_LoadAverageShort0(r1,r2,r3,r4,r5) \ + { gte_lddp(r3); \ + gte_ldsv(r1); \ + gte_gpf0(); \ + gte_lddp(r4); \ + gte_ldsv(r2); \ + gte_gpl0(); \ + gte_stsv(r5); } + +#define gte_LoadAverageByte(r1,r2,r3,r4,r5) \ + { gte_lddp(r3); \ + gte_ldbv(r1); \ + gte_gpf12(); \ + gte_lddp(r4); \ + gte_ldbv(r2); \ + gte_gpl12(); \ + gte_stbv(r5); } + +#define gte_LoadAverageCol(r1,r2,r3,r4,r5) \ + { gte_lddp(r3); \ + gte_ldcv(r1); \ + gte_gpf12(); \ + gte_lddp(r4); \ + gte_ldcv(r2); \ + gte_gpl12(); \ + gte_stcv(r5); } + +/* + * + */ +#define gte_MulMatrix0(r1,r2,r3) \ + { gte_SetRotMatrix(r1); \ + gte_ldclmv(r2); \ + gte_rtir(); \ + gte_stclmv(r3); \ + gte_ldclmv((char*)r2+2);\ + gte_rtir(); \ + gte_stclmv((char*)r3+2);\ + gte_ldclmv((char*)r2+4);\ + gte_rtir(); \ + gte_stclmv((char*)r3+4); } + +#define gte_ApplyMatrix(r1,r2,r3) \ + { gte_SetRotMatrix(r1); \ + gte_ldv0(r2); \ + gte_rtv0(); \ + gte_stlvnl(r3); } + +#define gte_ApplyMatrixSV(r1,r2,r3) \ + { gte_SetRotMatrix(r1); \ + gte_ldv0(r2); \ + gte_rtv0(); \ + gte_stsv(r3); } + +#define gte_CompMatrix(r1,r2,r3) \ + { gte_MulMatrix0(r1,r2,r3);\ + gte_SetTransMatrix(r1); \ + gte_ldlv0((char*)r2+20);\ + gte_rt(); \ + gte_stlvnl((char*)r3+20); } + +#define gte_ApplyRotMatrix(r1,r2) \ + { gte_ldv0(r1); \ + gte_rtv0(); \ + gte_stlvnl(r2); } + diff --git a/toolchain/psyq-4_7/include/gtenom.h b/toolchain/psyq-4_7/include/gtenom.h new file mode 100644 index 0000000..448003b --- /dev/null +++ b/toolchain/psyq-4_7/include/gtenom.h @@ -0,0 +1,167 @@ +; +; $PSLibId: Run-time Library Release 4.7$ +; + +; +; gtenom.h +; Copyright(C) 1995,1996,1997 Sony Computer Entertainment Inc. +; All rights reserved. +; + +read_sz_fifo3 macro reg1,reg2,reg3 + mfc2 reg1,r17 + mfc2 reg2,r18 + mfc2 reg3,r19 + nop + endm + +read_sz_fifo4 macro reg1,reg2,reg3,reg4 + mfc2 reg1,r16 + mfc2 reg2,r17 + mfc2 reg3,r18 + mfc2 reg4,r19 + nop + endm + +read_szx macro reg1 + mfc2 reg1,r16 + nop + endm + +read_sz0 macro reg1 + mfc2 reg1,r17 + nop + endm + +read_sz1 macro reg1 + mfc2 reg1,r18 + nop + endm + +read_sz2 macro reg1 + mfc2 reg1,r19 + nop + endm + +read_sxsy_fifo3 macro reg1,reg2,reg3 + mfc2 reg1,r12 + mfc2 reg2,r13 + mfc2 reg3,r14 + nop + endm + +read_sxsy0 macro reg1 + mfc2 reg1,r12 + nop + endm + +read_sxsy1 macro reg1 + mfc2 reg1,r13 + nop + endm + +read_sxsy2 macro reg1 + mfc2 reg1,r14 + nop + endm + +read_rgb_fifo macro reg1,reg2,reg3 + mfc2 reg1,r20 + mfc2 reg2,r21 + mfc2 reg3,r22 + nop + endm + +read_rgb0 macro reg1 + mfc2 reg1,r20 + nop + endm + +read_rgb1 macro reg1 + mfc2 reg1,r21 + nop + endm + +read_rgb2 macro reg1 + mfc2 reg1,r22 + nop + endm + +read_flag macro reg1 + cfc2 reg1,r31 + nop + endm + +read_p macro reg1 + mfc2 reg1,r8 + nop + endm + +read_otz macro reg1 + mfc2 reg1,r7 + nop + endm + +read_opz macro reg1 + mfc2 reg1,r24 + nop + endm + +read_mt macro reg1,reg2,reg3 + mfc2 reg1,r25 + mfc2 reg2,r26 + mfc2 reg3,r27 + nop + endm + +store_sxsy_fifo3 macro reg1,reg2,reg3 + swc2 r12,(reg1) + swc2 r13,(reg2) + swc2 r14,(reg3) + nop + endm + +store_sxsy0 macro reg1 + swc2 r12,(reg1) + nop + endm + +store_sxsy1 macro reg1 + swc2 r13,(reg1) + nop + endm + +store_sxsy2 macro reg1 + swc2 r14,(reg1) + nop + endm + +store_rgb_fifo macro reg1,reg2,reg3 + swc2 r20,(reg1) + swc2 r21,(reg2) + swc2 r22,(reg3) + nop + endm + +store_rgb0 macro reg1 + swc2 r20,(reg1) + nop + endm + +store_rgb1 macro reg1 + swc2 r21,(reg1) + nop + endm + +store_rgb2 macro reg1 + swc2 r22,(reg1) + nop + endm + +set_trans_matrix macro reg1,reg2,reg3 + ctc2 reg1,r5 + ctc2 reg2,r6 + ctc2 reg3,r7 + nop + endm + diff --git a/toolchain/psyq-4_7/include/gtereg.h b/toolchain/psyq-4_7/include/gtereg.h new file mode 100644 index 0000000..1961460 --- /dev/null +++ b/toolchain/psyq-4_7/include/gtereg.h @@ -0,0 +1,87 @@ +; +; $PSLibId: Run-time Library Release 4.7$ +; + +; +; gtereg.h +; Copyright(C) 1995,1996,1997 Sony Computer Entertainment Inc. +; All rights reserved. +; + +; +; GTE data registers +; +C2_VXY0 equs "r0" +C2_VZ0 equs "r1" +C2_VXY1 equs "r2" +C2_VZ1 equs "r3" +C2_VXY2 equs "r4" +C2_VZ2 equs "r5" +C2_RGB equs "r6" +C2_OTZ equs "r7" + +C2_IR0 equs "r8" +C2_IR1 equs "r9" +C2_IR2 equs "r10" +C2_IR3 equs "r11" +C2_SXY0 equs "r12" +C2_SXY1 equs "r13" +C2_SXY2 equs "r14" +C2_SXYP equs "r15" + +C2_SZ0 equs "r16" +C2_SZ1 equs "r17" +C2_SZ2 equs "r18" +C2_SZ3 equs "r19" +C2_RGB0 equs "r20" +C2_RGB1 equs "r21" +C2_RGB2 equs "r22" + + +C2_MAC0 equs "r24" +C2_MAC1 equs "r25" +C2_MAC2 equs "r26" +C2_MAC3 equs "r27" +C2_IRGB equs "r28" +C2_ORGB equs "r29" +C2_LZCS equs "r30" +C2_LZCR equs "r31" + +; +; GTE control registers +; +C2_R11R12 equs "r0" +C2_R13R21 equs "r1" +C2_R22R23 equs "r2" +C2_R31R32 equs "r3" +C2_R33 equs "r4" +C2_TRX equs "r5" +C2_TRY equs "r6" +C2_TRZ equs "r7" + +C2_L11L12 equs "r8" +C2_L13L21 equs "r9" +C2_L22L23 equs "r10" +C2_L31L32 equs "r11" +C2_L33 equs "r12" +C2_RBK equs "r13" +C2_GBK equs "r14" +C2_BBK equs "r15" + +C2_LR1LR2 equs "r16" +C2_LR3LG1 equs "r17" +C2_LG2LG3 equs "r18" +C2_LB1LB2 equs "r19" +C2_LB3 equs "r20" +C2_RFC equs "r21" +C2_GFC equs "r22" +C2_BFC equs "r23" + +C2_OFX equs "r24" +C2_OFY equs "r25" +C2_H equs "r26" +C2_DQA equs "r27" +C2_DQB equs "r28" +C2_ZSF3 equs "r29" +C2_ZSF4 equs "r30" +C2_FLAG equs "r31" diff --git a/toolchain/psyq-4_7/include/gtereg_s.h b/toolchain/psyq-4_7/include/gtereg_s.h new file mode 100644 index 0000000..96f87b2 --- /dev/null +++ b/toolchain/psyq-4_7/include/gtereg_s.h @@ -0,0 +1,87 @@ +/* + * $PSLibId: Run-time Library Release 4.7$ + */ + +/* + * gtereg_s.h + * Copyright(C) 1998 Sony Computer Entertainment Inc. + * All rights reserved. + */ + +/* + * GTE data registers + */ +#define C2_VXY0 R0 +#define C2_VZ0 R1 +#define C2_VXY1 R2 +#define C2_VZ1 R3 +#define C2_VXY2 R4 +#define C2_VZ2 R5 +#define C2_RGB R6 +#define C2_OTZ R7 + +#define C2_IR0 R8 +#define C2_IR1 R9 +#define C2_IR2 R10 +#define C2_IR3 R11 +#define C2_SXY0 R12 +#define C2_SXY1 R13 +#define C2_SXY2 R14 +#define C2_SXYP R15 + +#define C2_SZ0 R16 +#define C2_SZ1 R17 +#define C2_SZ2 R18 +#define C2_SZ3 R19 +#define C2_RGB0 R20 +#define C2_RGB1 R21 +#define C2_RGB2 R22 + + +#define C2_MAC0 R24 +#define C2_MAC1 R25 +#define C2_MAC2 R26 +#define C2_MAC3 R27 +#define C2_IRGB R28 +#define C2_ORGB R29 +#define C2_LZCS R30 +#define C2_LZCR R31 + +/* + * GTE control Registers + */ +#define C2_R11R12 R0 +#define C2_R13R21 R1 +#define C2_R22R23 R2 +#define C2_R31R32 R3 +#define C2_R33 R4 +#define C2_TRX R5 +#define C2_TRY R6 +#define C2_TRZ R7 + +#define C2_L11L12 R8 +#define C2_L13L21 R9 +#define C2_L22L23 R10 +#define C2_L31L32 R11 +#define C2_L33 R12 +#define C2_RBK R13 +#define C2_GBK R14 +#define C2_BBK R15 + +#define C2_LR1LR2 R16 +#define C2_LR3LG1 R17 +#define C2_LG2LG3 R18 +#define C2_LB1LB2 R19 +#define C2_LB3 R20 +#define C2_RFC R21 +#define C2_GFC R22 +#define C2_BFC R23 + +#define C2_OFX R24 +#define C2_OFY R25 +#define C2_H R26 +#define C2_DQA R27 +#define C2_DQB R28 +#define C2_ZSF3 R29 +#define C2_ZSF4 R30 +#define C2_FLAG R31 diff --git a/toolchain/psyq-4_7/include/inline_a.h b/toolchain/psyq-4_7/include/inline_a.h new file mode 100644 index 0000000..dd9129b --- /dev/null +++ b/toolchain/psyq-4_7/include/inline_a.h @@ -0,0 +1,233 @@ +; $PSLibId: Run-time Library Release 4.7$ +; +; Macro definitions of DMPSX version 3 for Assembler programs +; inline_a.h +; Copyright(C) 1996, Sony Computer Entertainment Inc. +; All rights reserved. +; + +; +; GTE commands with 2 nops +; +nRTPS macro + nop + nop + dw $0000007f + endm + +nRTPT macro + nop + nop + dw $000000bf + endm + +nDCPL macro + nop + nop + dw $00000dff + endm + +nDPCS macro + nop + nop + dw $00000e3f + endm + +nDPCT macro + nop + nop + dw $00000e7f + endm + +nINTPL macro + nop + nop + dw $00000ebf + endm + +nNCS macro + nop + nop + dw $00000f7f + endm + +nNCT macro + nop + nop + dw $00000fbf + endm + +nNCDS macro + nop + nop + dw $00000fff + endm + +nNCDT macro + nop + nop + dw $0000103f + endm + +nNCCS macro + nop + nop + dw $0000107f + endm + +nNCCT macro + nop + nop + dw $000010bf + endm + +nCDP macro + nop + nop + dw $000010ff + endm + +nCC macro + nop + nop + dw $0000113f + endm + +nNCLIP macro + nop + nop + dw $0000117f + endm + +nAVSZ3 macro + nop + nop + dw $000011bf + endm + +nAVSZ4 macro + nop + nop + dw $000011ff + endm + +nMVMVA macro sf,mx,v,cv,lm + nop + nop + dw $000013bf|sf<<25|mx<<23|v<<21|cv<<19|lm<<18 + endm + +nSQR macro sf + nop + nop + dw $000013ff|sf<<25 + endm + +nOP macro sf + nop + nop + dw $0000143f|sf<<25 + endm + +nGPF macro sf + nop + nop + dw $0000147f|sf<<25 + endm + +nGPL macro sf + nop + nop + dw $000014bf|sf<<25 + endm + +; +; GTE commands without nops +; +RTPS macro + dw $0000007f + endm + +RTPT macro + dw $000000bf + endm + +DCPL macro + dw $00000dff + endm + +DPCS macro + dw $00000e3f + endm + +DPCT macro + dw $00000e7f + endm + +INTPL macro + dw $00000ebf + endm + +NCS macro + dw $00000f7f + endm + +NCT macro + dw $00000fbf + endm + +NCDS macro + dw $00000fff + endm + +NCDT macro + dw $0000103f + endm + +NCCS macro + dw $0000107f + endm + +NCCT macro + dw $000010bf + endm + +CDP macro + dw $000010ff + endm + +CC macro + dw $0000113f + endm + +NCLIP macro + dw $0000117f + endm + +AVSZ3 macro + dw $000011bf + endm + +AVSZ4 macro + dw $000011ff + endm + +MVMVA macro sf,mx,v,cv,lm + dw $000013bf|sf<<25|mx<<23|v<<21|cv<<19|lm<<18 + endm + +SQR macro sf + dw $000013ff|sf<<25 + endm + +OP macro sf + dw $0000143f|sf<<25 + endm + +GPF macro sf + dw $0000147f|sf<<25 + endm + +GPL macro sf + dw $000014bf|sf<<25 + endm diff --git a/toolchain/psyq-4_7/include/inline_c.h b/toolchain/psyq-4_7/include/inline_c.h new file mode 100644 index 0000000..cdbf85c --- /dev/null +++ b/toolchain/psyq-4_7/include/inline_c.h @@ -0,0 +1,1450 @@ +/* + * $PSLibId: Run-time Library Release 4.7$ + */ + +/* + * Macro definitions of DMPSX version 3 + * inline_c.h + * Copyright(C) 1996, Sony Computer Entertainment Inc. + * All rights reserved. + */ + +/* + * Type 1 functions + */ + +#define gte_ldv0( r0 ) __asm__ volatile ( \ + "lwc2 $0, 0( %0 );" \ + "lwc2 $1, 4( %0 )" \ + : \ + : "r"( r0 ) ) + +#define gte_ldv1( r0 ) __asm__ volatile ( \ + "lwc2 $2, 0( %0 );" \ + "lwc2 $3, 4( %0 )" \ + : \ + : "r"( r0 ) ) + +#define gte_ldv2( r0 ) __asm__ volatile ( \ + "lwc2 $4, 0( %0 );" \ + "lwc2 $5, 4( %0 )" \ + : \ + : "r"( r0 ) ) + +#define gte_ldv3( r0, r1, r2 ) __asm__ volatile ( \ + "lwc2 $0, 0( %0 );" \ + "lwc2 $1, 4( %0 );" \ + "lwc2 $2, 0( %1 );" \ + "lwc2 $3, 4( %1 );" \ + "lwc2 $4, 0( %2 );" \ + "lwc2 $5, 4( %2 )" \ + : \ + : "r"( r0 ), "r"( r1 ), "r"( r2 ) ) + +#define gte_ldv3c( r0 ) __asm__ volatile ( \ + "lwc2 $0, 0( %0 );" \ + "lwc2 $1, 4( %0 );" \ + "lwc2 $2, 8( %0 );" \ + "lwc2 $3, 12( %0 );" \ + "lwc2 $4, 16( %0 );" \ + "lwc2 $5, 20( %0 )" \ + : \ + : "r"( r0 ) ) + +#define gte_ldv3c_vertc( r0 ) __asm__ volatile ( \ + "lwc2 $0, 0( %0 );" \ + "lwc2 $1, 4( %0 );" \ + "lwc2 $2, 12( %0 );" \ + "lwc2 $3, 16( %0 );" \ + "lwc2 $4, 24( %0 );" \ + "lwc2 $5, 28( %0 )" \ + : \ + : "r"( r0 ) ) + +#define gte_ldv01( r0, r1 ) __asm__ volatile ( \ + "lwc2 $0, 0( %0 );" \ + "lwc2 $1, 4( %0 );" \ + "lwc2 $2, 0( %1 );" \ + "lwc2 $3, 4( %1 )" \ + : \ + : "r"( r0 ), "r"( r1 ) ) + +#define gte_ldv01c( r0 ) __asm__ volatile ( \ + "lwc2 $0, 0( %0 );" \ + "lwc2 $1, 4( %0 );" \ + "lwc2 $2, 8( %0 );" \ + "lwc2 $3, 12( %0 )" \ + : \ + : "r"( r0 ) ) + +#define gte_ldrgb( r0 ) __asm__ volatile ( \ + "lwc2 $6, 0( %0 )" \ + : \ + : "r"( r0 ) ) + +#define gte_ldrgb3( r0, r1, r2 ) __asm__ volatile ( \ + "lwc2 $20, 0( %0 );" \ + "lwc2 $21, 0( %1 );" \ + "lwc2 $22, 0( %2 );" \ + "lwc2 $6, 0( %2 )" \ + : \ + : "r"( r0 ), "r"( r1 ), "r"( r2 ) ) + +#define gte_ldrgb3c( r0 ) __asm__ volatile ( \ + "lwc2 $20, 0( %0 );" \ + "lwc2 $21, 4( %0 );" \ + "lwc2 $22, 8( %0 );" \ + "lwc2 $6, 8( %0 )" \ + : \ + : "r"( r0 ) ) + +#define gte_ldlv0( r0 ) __asm__ volatile ( \ + "lhu $13, 4( %0 );" \ + "lhu $12, 0( %0 );" \ + "sll $13, $13, 16;" \ + "or $12, $12, $13;" \ + "mtc2 $12, $0;" \ + "lwc2 $1, 8( %0 )" \ + : \ + : "r"( r0 ) \ + : "$12", "$13" ) + +#define gte_ldlvl( r0 ) __asm__ volatile ( \ + "lwc2 $9, 0( %0 );" \ + "lwc2 $10, 4( %0 );" \ + "lwc2 $11, 8( %0 )" \ + : \ + : "r"( r0 ) ) + +#define gte_ldsv( r0 ) __asm__ volatile ( \ + "lhu $12, 0( %0 );" \ + "lhu $13, 2( %0 );" \ + "lhu $14, 4( %0 );" \ + "mtc2 $12, $9;" \ + "mtc2 $13, $10;" \ + "mtc2 $14, $11" \ + : \ + : "r"( r0 ) \ + : "$12", "$13", "$14" ) + +#define gte_ldbv( r0 ) __asm__ volatile ( \ + "lbu $12, 0( %0 );" \ + "lbu $13, 1( %0 );" \ + "mtc2 $12, $9;" \ + "mtc2 $13, $10" \ + : \ + : "r"( r0 ) \ + : "$12", "$13" ) + +#define gte_ldcv( r0 ) __asm__ volatile ( \ + "lbu $12, 0( %0 );" \ + "lbu $13, 1( %0 );" \ + "lbu $14, 2( %0 );" \ + "mtc2 $12, $9;" \ + "mtc2 $13, $10;" \ + "mtc2 $14, $11" \ + : \ + : "r"( r0 ) \ + : "$12", "$13", "$14" ) + +#define gte_ldclmv( r0 ) __asm__ volatile ( \ + "lhu $12, 0( %0 );" \ + "lhu $13, 6( %0 );" \ + "lhu $14, 12( %0 );" \ + "mtc2 $12, $9;" \ + "mtc2 $13, $10;" \ + "mtc2 $14, $11" \ + : \ + : "r"( r0 ) \ + : "$12", "$13", "$14" ) + +#define gte_lddp( r0 ) __asm__ volatile ( \ + "mtc2 %0, $8" \ + : \ + : "r"( r0 ) ) + +#define gte_ldsxy0( r0 ) __asm__ volatile ( \ + "mtc2 %0, $12" \ + : \ + : "r"( r0 ) ) + +#define gte_ldsxy1( r0 ) __asm__ volatile ( \ + "mtc2 %0, $13" \ + : \ + : "r"( r0 ) ) + +#define gte_ldsxy2( r0 ) __asm__ volatile ( \ + "mtc2 %0, $14" \ + : \ + : "r"( r0 ) ) + +#define gte_ldsxy3( r0, r1, r2 ) __asm__ volatile ( \ + "mtc2 %0, $12;" \ + "mtc2 %2, $14;" \ + "mtc2 %1, $13" \ + : \ + : "r"( r0 ), "r"( r1 ), "r"( r2 ) ) + +#define gte_ldsxy3c( r0 ) __asm__ volatile ( \ + "lwc2 $12, 0( %0 );" \ + "lwc2 $13, 4( %0 );" \ + "lwc2 $14, 8( %0 )" \ + : \ + : "r"( r0 ) ) + +#define gte_ldsz3( r0, r1, r2 ) __asm__ volatile ( \ + "mtc2 %0, $17;" \ + "mtc2 %1, $18;" \ + "mtc2 %2, $19" \ + : \ + : "r"( r0 ), "r"( r1 ), "r"( r2 ) ) + +#define gte_ldsz4( r0, r1, r2, r3 ) __asm__ volatile ( \ + "mtc2 %0, $16;" \ + "mtc2 %1, $17;" \ + "mtc2 %2, $18;" \ + "mtc2 %3, $19" \ + : \ + : "r"( r0 ), "r"( r1 ), "r"( r2 ), "r"( r3 ) ) + +#define gte_ldopv1( r0 ) __asm__ volatile ( \ + "lw $12, 0( %0 );" \ + "lw $13, 4( %0 );" \ + "ctc2 $12, $0;" \ + "lw $14, 8( %0 );" \ + "ctc2 $13, $2;" \ + "ctc2 $14, $4" \ + : \ + : "r"( r0 ) \ + : "$12", "$13", "$14" ) + +#define gte_ldopv2( r0 ) __asm__ volatile ( \ + "lwc2 $11, 8( %0 );" \ + "lwc2 $9, 0( %0 );" \ + "lwc2 $10, 4( %0 )" \ + : \ + : "r"( r0 ) ) + +#define gte_ldlzc( r0 ) __asm__ volatile ( \ + "mtc2 %0, $30" \ + : \ + : "r"( r0 ) ) + +#define gte_SetRGBcd( r0 ) __asm__ volatile ( \ + "lwc2 $6, 0( %0 )" \ + : \ + : "r"( r0 ) ) + +#define gte_ldbkdir( r0, r1, r2 ) __asm__ volatile ( \ + "ctc2 %0, $13;" \ + "ctc2 %1, $14;" \ + "ctc2 %2, $15" \ + : \ + : "r"( r0 ), "r"( r1 ), "r"( r2 ) ) + +#define gte_SetBackColor( r0, r1, r2 ) __asm__ volatile ( \ + "sll $12, %0, 4;" \ + "sll $13, %1, 4;" \ + "sll $14, %2, 4;" \ + "ctc2 $12, $13;" \ + "ctc2 $13, $14;" \ + "ctc2 $14, $15" \ + : \ + : "r"( r0 ), "r"( r1 ), "r"( r2 ) \ + : "$12", "$13", "$14" ) + +#define gte_ldfcdir( r0, r1, r2 ) __asm__ volatile ( \ + "ctc2 %0, $21;" \ + "ctc2 %1, $22;" \ + "ctc2 %2, $23" \ + : \ + : "r"( r0 ), "r"( r1 ), "r"( r2 ) ) + +#define gte_SetFarColor( r0, r1, r2 ) __asm__ volatile ( \ + "sll $12, %0, 4;" \ + "sll $13, %1, 4;" \ + "sll $14, %2, 4;" \ + "ctc2 $12, $21;" \ + "ctc2 $13, $22;" \ + "ctc2 $14, $23" \ + : \ + : "r"( r0 ), "r"( r1 ), "r"( r2 ) \ + : "$12", "$13", "$14" ) + +#define gte_SetGeomOffset( r0, r1 ) __asm__ volatile ( \ + "sll $12, %0, 16;" \ + "sll $13, %1, 16;" \ + "ctc2 $12, $24;" \ + "ctc2 $13, $25" \ + : \ + : "r"( r0 ), "r"( r1 ) \ + : "$12", "$13" ) + +#define gte_SetGeomScreen( r0 ) __asm__ volatile ( \ + "ctc2 %0, $26" \ + : \ + : "r"( r0 ) ) + +#define gte_ldsvrtrow0( r0 ) __asm__ volatile ( \ + "lw $12, 0( %0 );" \ + "lw $13, 4( %0 );" \ + "ctc2 $12, $0;" \ + "ctc2 $13, $1" \ + : \ + : "r"( r0 ) \ + : "$12", "$13" ) + +#define gte_SetRotMatrix( r0 ) __asm__ volatile ( \ + "lw $12, 0( %0 );" \ + "lw $13, 4( %0 );" \ + "ctc2 $12, $0;" \ + "ctc2 $13, $1;" \ + "lw $12, 8( %0 );" \ + "lw $13, 12( %0 );" \ + "lw $14, 16( %0 );" \ + "ctc2 $12, $2;" \ + "ctc2 $13, $3;" \ + "ctc2 $14, $4" \ + : \ + : "r"( r0 ) \ + : "$12", "$13", "$14" ) + +#define gte_ldsvllrow0( r0 ) __asm__ volatile ( \ + "lw $12, 0( %0 );" \ + "lw $13, 4( %0 );" \ + "ctc2 $12, $8;" \ + "ctc2 $13, $9" \ + : \ + : "r"( r0 ) \ + : "$12", "$13" ) + +#define gte_SetLightMatrix( r0 ) __asm__ volatile ( \ + "lw $12, 0( %0 );" \ + "lw $13, 4( %0 );" \ + "ctc2 $12, $8;" \ + "ctc2 $13, $9;" \ + "lw $12, 8( %0 );" \ + "lw $13, 12( %0 );" \ + "lw $14, 16( %0 );" \ + "ctc2 $12, $10;" \ + "ctc2 $13, $11;" \ + "ctc2 $14, $12" \ + : \ + : "r"( r0 ) \ + : "$12", "$13", "$14" ) + +#define gte_ldsvlcrow0( r0 ) __asm__ volatile ( \ + "lw $12, 0( %0 );" \ + "lw $13, 4( %0 );" \ + "ctc2 $12, $16;" \ + "ctc2 $13, $17" \ + : \ + : "r"( r0 ) \ + : "$12", "$13" ) + +#define gte_SetColorMatrix( r0 ) __asm__ volatile ( \ + "lw $12, 0( %0 );" \ + "lw $13, 4( %0 );" \ + "ctc2 $12, $16;" \ + "ctc2 $13, $17;" \ + "lw $12, 8( %0 );" \ + "lw $13, 12( %0 );" \ + "lw $14, 16( %0 );" \ + "ctc2 $12, $18;" \ + "ctc2 $13, $19;" \ + "ctc2 $14, $20" \ + : \ + : "r"( r0 ) \ + : "$12", "$13", "$14" ) + +#define gte_SetTransMatrix( r0 ) __asm__ volatile ( \ + "lw $12, 20( %0 );" \ + "lw $13, 24( %0 );" \ + "ctc2 $12, $5;" \ + "lw $14, 28( %0 );" \ + "ctc2 $13, $6;" \ + "ctc2 $14, $7" \ + : \ + : "r"( r0 ) \ + : "$12", "$13", "$14" ) + +#define gte_ldtr( r0, r1, r2 ) __asm__ volatile ( \ + "ctc2 %0, $5;" \ + "ctc2 %1, $6;" \ + "ctc2 %2, $7" \ + : \ + : "r"( r0 ), "r"( r1 ), "r"( r2 ) ) + +#define gte_SetTransVector( r0 ) __asm__ volatile ( \ + "lw $12, 0( %0 );" \ + "lw $13, 4( %0 );" \ + "lw $14, 8( %0 );" \ + "ctc2 $12, $5;" \ + "ctc2 $13, $6;" \ + "ctc2 $14, $7" \ + : \ + : "r"( r0 ) \ + : "$12", "$13", "$14" ) + +#define gte_ld_intpol_uv0( r0 ) __asm__ volatile ( \ + "lbu $12, 0( %0 );" \ + "lbu $13, 1( %0 );" \ + "ctc2 $12, $21;" \ + "ctc2 $13, $22" \ + : \ + : "r"( r0 ) \ + : "$12", "$13" ) + +#define gte_ld_intpol_uv1( r0 ) __asm__ volatile ( \ + "lbu $12, 0( %0 );" \ + "lbu $13, 1( %0 );" \ + "mtc2 $12, $9;" \ + "mtc2 $13, $10" \ + : \ + : "r"( r0 ) \ + : "$12", "$13" ) + +#define gte_ld_intpol_bv0( r0 ) __asm__ volatile ( \ + "lbu $12, 0( %0 );" \ + "lbu $13, 1( %0 );" \ + "ctc2 $12, $21;" \ + "ctc2 $13, $22" \ + : \ + : "r"( r0 ) \ + : "$12", "$13" ) + +#define gte_ld_intpol_bv1( r0 ) __asm__ volatile ( \ + "lbu $12, 0( %0 );" \ + "lbu $13, 1( %0 );" \ + "mtc2 $12, $9;" \ + "mtc2 $13, $10" \ + : \ + : "r"( r0 ) \ + : "$12", "$13" ) + +#define gte_ld_intpol_sv0( r0 ) __asm__ volatile ( \ + "lh $12, 0( %0 );" \ + "lh $13, 2( %0 );" \ + "lh $14, 4( %0 );" \ + "ctc2 $12, $21;" \ + "ctc2 $13, $22;" \ + "ctc2 $14, $23" \ + : \ + : "r"( r0 ) \ + : "$12", "$13", "$14" ) + +#define gte_ld_intpol_sv1( r0 ) __asm__ volatile ( \ + "lh $12, 0( %0 );" \ + "lh $13, 2( %0 );" \ + "lh $14, 4( %0 );" \ + "mtc2 $12, $9;" \ + "mtc2 $13, $10;" \ + "mtc2 $14, $11" \ + : \ + : "r"( r0 ) \ + : "$12", "$13", "$14" ) + +#define gte_ldfc( r0 ) __asm__ volatile ( \ + "lw $12, 0( %0 );" \ + "lw $13, 4( %0 );" \ + "lw $14, 8( %0 );" \ + "ctc2 $12, $21;" \ + "ctc2 $13, $22;" \ + "ctc2 $14, $23" \ + : \ + : "r"( r0 ) \ + : "$12", "$13", "$14" ) + +#define gte_ldopv2SV( r0 ) __asm__ volatile ( \ + "lh $12, 0( %0 );" \ + "lh $13, 2( %0 );" \ + "lh $14, 4( %0 );" \ + "mtc2 $12, $9;" \ + "mtc2 $13, $10;" \ + "mtc2 $14, $11" \ + : \ + : "r"( r0 ) \ + : "$12", "$13", "$14" ) + +#define gte_ldopv1SV( r0 ) __asm__ volatile ( \ + "lh $12, 0( %0 );" \ + "lh $13, 2( %0 );" \ + "ctc2 $12, $0;" \ + "lh $14, 4( %0 );" \ + "ctc2 $13, $2;" \ + "ctc2 $14, $4" \ + : \ + : "r"( r0 ) \ + : "$12", "$13", "$14" ) + +/* + * Type 2 functions + */ + +#define gte_rtps() __asm__ volatile ( \ + "nop;" \ + "nop;" \ + ".word 0x0000007f" ) + +#define gte_rtpt() __asm__ volatile ( \ + "nop;" \ + "nop;" \ + ".word 0x000000bf" ) + +#define gte_rt() __asm__ volatile ( \ + "nop;" \ + "nop;" \ + ".word 0x000000ff" ) + +#define gte_rtv0() __asm__ volatile ( \ + "nop;" \ + "nop;" \ + ".word 0x0000013f" ) + +#define gte_rtv1() __asm__ volatile ( \ + "nop;" \ + "nop;" \ + ".word 0x0000017f" ) + +#define gte_rtv2() __asm__ volatile ( \ + "nop;" \ + "nop;" \ + ".word 0x000001bf" ) + +#define gte_rtir() __asm__ volatile ( \ + "nop;" \ + "nop;" \ + ".word 0x000001ff" ) + +#define gte_rtir_sf0() __asm__ volatile ( \ + "nop;" \ + "nop;" \ + ".word 0x0000023f" ) + +#define gte_rtv0tr() __asm__ volatile ( \ + "nop;" \ + "nop;" \ + ".word 0x0000027f" ) + +#define gte_rtv1tr() __asm__ volatile ( \ + "nop;" \ + "nop;" \ + ".word 0x000002bf" ) + +#define gte_rtv2tr() __asm__ volatile ( \ + "nop;" \ + "nop;" \ + ".word 0x000002ff" ) + +#define gte_rtirtr() __asm__ volatile ( \ + "nop;" \ + "nop;" \ + ".word 0x0000033f" ) + +#define gte_rtv0bk() __asm__ volatile ( \ + "nop;" \ + "nop;" \ + ".word 0x0000037f" ) + +#define gte_rtv1bk() __asm__ volatile ( \ + "nop;" \ + "nop;" \ + ".word 0x000003bf" ) + +#define gte_rtv2bk() __asm__ volatile ( \ + "nop;" \ + "nop;" \ + ".word 0x000003ff" ) + +#define gte_rtirbk() __asm__ volatile ( \ + "nop;" \ + "nop;" \ + ".word 0x0000043f" ) + +#define gte_ll() __asm__ volatile ( \ + "nop;" \ + "nop;" \ + ".word 0x0000057f" ) + +#define gte_llv0() __asm__ volatile ( \ + "nop;" \ + "nop;" \ + ".word 0x000005bf" ) + +#define gte_llv1() __asm__ volatile ( \ + "nop;" \ + "nop;" \ + ".word 0x000005ff" ) + +#define gte_llv2() __asm__ volatile ( \ + "nop;" \ + "nop;" \ + ".word 0x0000063f" ) + +#define gte_llir() __asm__ volatile ( \ + "nop;" \ + "nop;" \ + ".word 0x0000067f" ) + +#define gte_llv0tr() __asm__ volatile ( \ + "nop;" \ + "nop;" \ + ".word 0x000006bf" ) + +#define gte_llv1tr() __asm__ volatile ( \ + "nop;" \ + "nop;" \ + ".word 0x000006ff" ) + +#define gte_llv2tr() __asm__ volatile ( \ + "nop;" \ + "nop;" \ + ".word 0x0000073f" ) + +#define gte_llirtr() __asm__ volatile ( \ + "nop;" \ + "nop;" \ + ".word 0x0000077f" ) + +#define gte_llv0bk() __asm__ volatile ( \ + "nop;" \ + "nop;" \ + ".word 0x000007bf" ) + +#define gte_llv1bk() __asm__ volatile ( \ + "nop;" \ + "nop;" \ + ".word 0x000007ff" ) + +#define gte_llv2bk() __asm__ volatile ( \ + "nop;" \ + "nop;" \ + ".word 0x0000083f" ) + +#define gte_llirbk() __asm__ volatile ( \ + "nop;" \ + "nop;" \ + ".word 0x0000087f" ) + +#define gte_lc() __asm__ volatile ( \ + "nop;" \ + "nop;" \ + ".word 0x000009bf" ) + +#define gte_lcv0() __asm__ volatile ( \ + "nop;" \ + "nop;" \ + ".word 0x000009ff" ) + +#define gte_lcv1() __asm__ volatile ( \ + "nop;" \ + "nop;" \ + ".word 0x00000a3f" ) + +#define gte_lcv2() __asm__ volatile ( \ + "nop;" \ + "nop;" \ + ".word 0x00000a7f" ) + +#define gte_lcir() __asm__ volatile ( \ + "nop;" \ + "nop;" \ + ".word 0x00000abf" ) + +#define gte_lcv0tr() __asm__ volatile ( \ + "nop;" \ + "nop;" \ + ".word 0x00000aff" ) + +#define gte_lcv1tr() __asm__ volatile ( \ + "nop;" \ + "nop;" \ + ".word 0x00000b3f" ) + +#define gte_lcv2tr() __asm__ volatile ( \ + "nop;" \ + "nop;" \ + ".word 0x00000b7f" ) + +#define gte_lcirtr() __asm__ volatile ( \ + "nop;" \ + "nop;" \ + ".word 0x00000bbf" ) + +#define gte_lcv0bk() __asm__ volatile ( \ + "nop;" \ + "nop;" \ + ".word 0x00000bff" ) + +#define gte_lcv1bk() __asm__ volatile ( \ + "nop;" \ + "nop;" \ + ".word 0x00000c3f" ) + +#define gte_lcv2bk() __asm__ volatile ( \ + "nop;" \ + "nop;" \ + ".word 0x00000c7f" ) + +#define gte_lcirbk() __asm__ volatile ( \ + "nop;" \ + "nop;" \ + ".word 0x00000cbf" ) + +#define gte_dpcl() __asm__ volatile ( \ + "nop;" \ + "nop;" \ + ".word 0x00000dff" ) + +#define gte_dpcs() __asm__ volatile ( \ + "nop;" \ + "nop;" \ + ".word 0x00000e3f" ) + +#define gte_dpct() __asm__ volatile ( \ + "nop;" \ + "nop;" \ + ".word 0x00000e7f" ) + +#define gte_intpl() __asm__ volatile ( \ + "nop;" \ + "nop;" \ + ".word 0x00000ebf" ) + +#define gte_sqr12() __asm__ volatile ( \ + "nop;" \ + "nop;" \ + ".word 0x00000eff" ) + +#define gte_sqr0() __asm__ volatile ( \ + "nop;" \ + "nop;" \ + ".word 0x00000f3f" ) + +#define gte_ncs() __asm__ volatile ( \ + "nop;" \ + "nop;" \ + ".word 0x00000f7f" ) + +#define gte_nct() __asm__ volatile ( \ + "nop;" \ + "nop;" \ + ".word 0x00000fbf" ) + +#define gte_ncds() __asm__ volatile ( \ + "nop;" \ + "nop;" \ + ".word 0x00000fff" ) + +#define gte_ncdt() __asm__ volatile ( \ + "nop;" \ + "nop;" \ + ".word 0x0000103f" ) + +#define gte_nccs() __asm__ volatile ( \ + "nop;" \ + "nop;" \ + ".word 0x0000107f" ) + +#define gte_ncct() __asm__ volatile ( \ + "nop;" \ + "nop;" \ + ".word 0x000010bf" ) + +#define gte_cdp() __asm__ volatile ( \ + "nop;" \ + "nop;" \ + ".word 0x000010ff" ) + +#define gte_cc() __asm__ volatile ( \ + "nop;" \ + "nop;" \ + ".word 0x0000113f" ) + +#define gte_nclip() __asm__ volatile ( \ + "nop;" \ + "nop;" \ + ".word 0x0000117f" ) + +#define gte_avsz3() __asm__ volatile ( \ + "nop;" \ + "nop;" \ + ".word 0x000011bf" ) + +#define gte_avsz4() __asm__ volatile ( \ + "nop;" \ + "nop;" \ + ".word 0x000011ff" ) + +#define gte_op12() __asm__ volatile ( \ + "nop;" \ + "nop;" \ + ".word 0x0000123f" ) + +#define gte_op0() __asm__ volatile ( \ + "nop;" \ + "nop;" \ + ".word 0x0000127f" ) + +#define gte_gpf12() __asm__ volatile ( \ + "nop;" \ + "nop;" \ + ".word 0x000012bf" ) + +#define gte_gpf0() __asm__ volatile ( \ + "nop;" \ + "nop;" \ + ".word 0x000012ff" ) + +#define gte_gpl12() __asm__ volatile ( \ + "nop;" \ + "nop;" \ + ".word 0x0000133f" ) + +#define gte_gpl0() __asm__ volatile ( \ + "nop;" \ + "nop;" \ + ".word 0x0000137f" ) + +#define gte_mvmva_core( r0 ) __asm__ volatile ( \ + "nop;" \ + "nop;" \ + ".word %0" \ + : \ + : "g"( r0 ) ) + +#define gte_mvmva(sf,mx,v,cv,lm) gte_mvmva_core( 0x000013bf | \ + ((sf)<<25) | ((mx)<<23) | ((v)<<21) | ((cv)<<19) | ((lm)<<18)) + + +/* + * Type 2 functions without nop + */ + +#define gte_rtps_b() __asm__ volatile ( ".word 0x0000007f" ) +#define gte_rtpt_b() __asm__ volatile ( ".word 0x000000bf" ) +#define gte_rt_b() __asm__ volatile ( ".word 0x000000ff" ) +#define gte_rtv0_b() __asm__ volatile ( ".word 0x0000013f" ) +#define gte_rtv1_b() __asm__ volatile ( ".word 0x0000017f" ) +#define gte_rtv2_b() __asm__ volatile ( ".word 0x000001bf" ) +#define gte_rtir_b() __asm__ volatile ( ".word 0x000001ff" ) +#define gte_rtir_sf0_b() __asm__ volatile ( ".word 0x0000023f" ) +#define gte_rtv0tr_b() __asm__ volatile ( ".word 0x0000027f" ) +#define gte_rtv1tr_b() __asm__ volatile ( ".word 0x000002bf" ) +#define gte_rtv2tr_b() __asm__ volatile ( ".word 0x000002ff" ) +#define gte_rtirtr_b() __asm__ volatile ( ".word 0x0000033f" ) +#define gte_rtv0bk_b() __asm__ volatile ( ".word 0x0000037f" ) +#define gte_rtv1bk_b() __asm__ volatile ( ".word 0x000003bf" ) +#define gte_rtv2bk_b() __asm__ volatile ( ".word 0x000003ff" ) +#define gte_rtirbk_b() __asm__ volatile ( ".word 0x0000043f" ) +#define gte_ll_b() __asm__ volatile ( ".word 0x0000057f" ) +#define gte_llv0_b() __asm__ volatile ( ".word 0x000005bf" ) +#define gte_llv1_b() __asm__ volatile ( ".word 0x000005ff" ) +#define gte_llv2_b() __asm__ volatile ( ".word 0x0000063f" ) +#define gte_llir_b() __asm__ volatile ( ".word 0x0000067f" ) +#define gte_llv0tr_b() __asm__ volatile ( ".word 0x000006bf" ) +#define gte_llv1tr_b() __asm__ volatile ( ".word 0x000006ff" ) +#define gte_llv2tr_b() __asm__ volatile ( ".word 0x0000073f" ) +#define gte_llirtr_b() __asm__ volatile ( ".word 0x0000077f" ) +#define gte_llv0bk_b() __asm__ volatile ( ".word 0x000007bf" ) +#define gte_llv1bk_b() __asm__ volatile ( ".word 0x000007ff" ) +#define gte_llv2bk_b() __asm__ volatile ( ".word 0x0000083f" ) +#define gte_llirbk_b() __asm__ volatile ( ".word 0x0000087f" ) +#define gte_lc_b() __asm__ volatile ( ".word 0x000009bf" ) +#define gte_lcv0_b() __asm__ volatile ( ".word 0x000009ff" ) +#define gte_lcv1_b() __asm__ volatile ( ".word 0x00000a3f" ) +#define gte_lcv2_b() __asm__ volatile ( ".word 0x00000a7f" ) +#define gte_lcir_b() __asm__ volatile ( ".word 0x00000abf" ) +#define gte_lcv0tr_b() __asm__ volatile ( ".word 0x00000aff" ) +#define gte_lcv1tr_b() __asm__ volatile ( ".word 0x00000b3f" ) +#define gte_lcv2tr_b() __asm__ volatile ( ".word 0x00000b7f" ) +#define gte_lcirtr_b() __asm__ volatile ( ".word 0x00000bbf" ) +#define gte_lcv0bk_b() __asm__ volatile ( ".word 0x00000bff" ) +#define gte_lcv1bk_b() __asm__ volatile ( ".word 0x00000c3f" ) +#define gte_lcv2bk_b() __asm__ volatile ( ".word 0x00000c7f" ) +#define gte_lcirbk_b() __asm__ volatile ( ".word 0x00000cbf" ) +#define gte_dpcl_b() __asm__ volatile ( ".word 0x00000dff" ) +#define gte_dpcs_b() __asm__ volatile ( ".word 0x00000e3f" ) +#define gte_dpct_b() __asm__ volatile ( ".word 0x00000e7f" ) +#define gte_intpl_b() __asm__ volatile ( ".word 0x00000ebf" ) +#define gte_sqr12_b() __asm__ volatile ( ".word 0x00000eff" ) +#define gte_sqr0_b() __asm__ volatile ( ".word 0x00000f3f" ) +#define gte_ncs_b() __asm__ volatile ( ".word 0x00000f7f" ) +#define gte_nct_b() __asm__ volatile ( ".word 0x00000fbf" ) +#define gte_ncds_b() __asm__ volatile ( ".word 0x00000fff" ) +#define gte_ncdt_b() __asm__ volatile ( ".word 0x0000103f" ) +#define gte_nccs_b() __asm__ volatile ( ".word 0x0000107f" ) +#define gte_ncct_b() __asm__ volatile ( ".word 0x000010bf" ) +#define gte_cdp_b() __asm__ volatile ( ".word 0x000010ff" ) +#define gte_cc_b() __asm__ volatile ( ".word 0x0000113f" ) +#define gte_nclip_b() __asm__ volatile ( ".word 0x0000117f" ) +#define gte_avsz3_b() __asm__ volatile ( ".word 0x000011bf" ) +#define gte_avsz4_b() __asm__ volatile ( ".word 0x000011ff" ) +#define gte_op12_b() __asm__ volatile ( ".word 0x0000123f" ) +#define gte_op0_b() __asm__ volatile ( ".word 0x0000127f" ) +#define gte_gpf12_b() __asm__ volatile ( ".word 0x000012bf" ) +#define gte_gpf0_b() __asm__ volatile ( ".word 0x000012ff" ) +#define gte_gpl12_b() __asm__ volatile ( ".word 0x0000133f" ) +#define gte_gpl0_b() __asm__ volatile ( ".word 0x0000137f" ) +#define gte_mvmva_core_b( r0 ) __asm__ volatile ( \ + ".word %0" \ + : \ + : "g"( r0 ) ) +#define gte_mvmva_b(sf,mx,v,cv,lm) gte_mvmva_core_b( 0x000013bf |\ + ((sf)<<25) | ((mx)<<23) | ((v)<<21) | ((cv)<<19) | ((lm)<<18)) + +/* + * Type 3 functions + */ + +#define gte_stsxy( r0 ) __asm__ volatile ( \ + "swc2 $14, 0( %0 )" \ + : \ + : "r"( r0 ) \ + : "memory" ) + +#define gte_stsxy3( r0, r1, r2 ) __asm__ volatile ( \ + "swc2 $12, 0( %0 );" \ + "swc2 $13, 0( %1 );" \ + "swc2 $14, 0( %2 )" \ + : \ + : "r"( r0 ), "r"( r1 ), "r"( r2 ) \ + : "memory" ) + +#define gte_stsxy3c( r0 ) __asm__ volatile ( \ + "swc2 $12, 0( %0 );" \ + "swc2 $13, 4( %0 );" \ + "swc2 $14, 8( %0 )" \ + : \ + : "r"( r0 ) \ + : "memory" ) + +#define gte_stsxy2( r0 ) __asm__ volatile ( \ + "swc2 $14, 0( %0 )" \ + : \ + : "r"( r0 ) \ + : "memory" ) + +#define gte_stsxy1( r0 ) __asm__ volatile ( \ + "swc2 $13, 0( %0 )" \ + : \ + : "r"( r0 ) \ + : "memory" ) + +#define gte_stsxy0( r0 ) __asm__ volatile ( \ + "swc2 $12, 0( %0 )" \ + : \ + : "r"( r0 ) \ + : "memory" ) + +#define gte_stsxy01( r0, r1 ) __asm__ volatile ( \ + "swc2 $12, 0( %0 );" \ + "swc2 $13, 0( %1 )" \ + : \ + : "r"( r0 ), "r"( r1 ) \ + : "memory" ) + +#define gte_stsxy01c( r0 ) __asm__ volatile ( \ + "swc2 $12, 0( %0 );" \ + "swc2 $13, 4( %0 )" \ + : \ + : "r"( r0 ) \ + : "memory" ) + +#define gte_stsxy3_f3( r0 ) __asm__ volatile ( \ + "swc2 $12, 8( %0 );" \ + "swc2 $13, 12( %0 );" \ + "swc2 $14, 16( %0 )" \ + : \ + : "r"( r0 ) \ + : "memory" ) + +#define gte_stsxy3_g3( r0 ) __asm__ volatile ( \ + "swc2 $12, 8( %0 );" \ + "swc2 $13, 16( %0 );" \ + "swc2 $14, 24( %0 )" \ + : \ + : "r"( r0 ) \ + : "memory" ) + +#define gte_stsxy3_ft3( r0 ) __asm__ volatile ( \ + "swc2 $12, 8( %0 );" \ + "swc2 $13, 16( %0 );" \ + "swc2 $14, 24( %0 )" \ + : \ + : "r"( r0 ) \ + : "memory" ) + +#define gte_stsxy3_gt3( r0 ) __asm__ volatile ( \ + "swc2 $12, 8( %0 );" \ + "swc2 $13, 20( %0 );" \ + "swc2 $14, 32( %0 )" \ + : \ + : "r"( r0 ) \ + : "memory" ) + +#define gte_stsxy3_f4( r0 ) __asm__ volatile ( \ + "swc2 $12, 8( %0 );" \ + "swc2 $13, 12( %0 );" \ + "swc2 $14, 16( %0 )" \ + : \ + : "r"( r0 ) \ + : "memory" ) + +#define gte_stsxy3_g4( r0 ) __asm__ volatile ( \ + "swc2 $12, 8( %0 );" \ + "swc2 $13, 16( %0 );" \ + "swc2 $14, 24( %0 )" \ + : \ + : "r"( r0 ) \ + : "memory" ) + +#define gte_stsxy3_ft4( r0 ) __asm__ volatile ( \ + "swc2 $12, 8( %0 );" \ + "swc2 $13, 16( %0 );" \ + "swc2 $14, 24( %0 )" \ + : \ + : "r"( r0 ) \ + : "memory" ) + +#define gte_stsxy3_gt4( r0 ) __asm__ volatile ( \ + "swc2 $12, 8( %0 );" \ + "swc2 $13, 20( %0 );" \ + "swc2 $14, 32( %0 )" \ + : \ + : "r"( r0 ) \ + : "memory" ) + +#define gte_stdp( r0 ) __asm__ volatile ( \ + "swc2 $8, 0( %0 )" \ + : \ + : "r"( r0 ) \ + : "memory" ) + +#define gte_stflg( r0 ) __asm__ volatile ( \ + "cfc2 $12, $31;" \ + "nop;" \ + "sw $12, 0( %0 )" \ + : \ + : "r"( r0 ) \ + : "$12", "memory" ) + +#define gte_stflg_4( r0 ) __asm__ volatile ( \ + "cfc2 $12, $31;" \ + "addi $13, $0, 4;" \ + "sll $13, $13, 16;" \ + "and $12, $12, $13;" \ + "sw $12, 0( %0 )" \ + : \ + : "r"( r0 ) \ + : "$12", "$13", "memory" ) + +#define gte_stsz( r0 ) __asm__ volatile ( \ + "swc2 $19, 0( %0 )" \ + : \ + : "r"( r0 ) \ + : "memory" ) + +#define gte_stsz3( r0, r1, r2 ) __asm__ volatile ( \ + "swc2 $17, 0( %0 );" \ + "swc2 $18, 0( %1 );" \ + "swc2 $19, 0( %2 )" \ + : \ + : "r"( r0 ), "r"( r1 ), "r"( r2 ) \ + : "memory" ) + +#define gte_stsz4( r0, r1, r2, r3 ) __asm__ volatile ( \ + "swc2 $16, 0( %0 );" \ + "swc2 $17, 0( %1 );" \ + "swc2 $18, 0( %2 );" \ + "swc2 $19, 0( %3 )" \ + : \ + : "r"( r0 ), "r"( r1 ), "r"( r2 ), "r"( r3 ) \ + : "memory" ) + +#define gte_stsz3c( r0 ) __asm__ volatile ( \ + "swc2 $17, 0( %0 );" \ + "swc2 $18, 4( %0 );" \ + "swc2 $19, 8( %0 )" \ + : \ + : "r"( r0 ) \ + : "memory" ) + +#define gte_stsz4c( r0 ) __asm__ volatile ( \ + "swc2 $16, 0( %0 );" \ + "swc2 $17, 4( %0 );" \ + "swc2 $18, 8( %0 );" \ + "swc2 $19, 12( %0 )" \ + : \ + : "r"( r0 ) \ + : "memory" ) + +#define gte_stszotz( r0 ) __asm__ volatile ( \ + "mfc2 $12, $19;" \ + "nop;" \ + "sra $12, $12, 2;" \ + "sw $12, 0( %0 )" \ + : \ + : "r"( r0 ) \ + : "$12", "memory" ) + +#define gte_stotz( r0 ) __asm__ volatile ( \ + "swc2 $7, 0( %0 )" \ + : \ + : "r"( r0 ) \ + : "memory" ) + +#define gte_stopz( r0 ) __asm__ volatile ( \ + "swc2 $24, 0( %0 )" \ + : \ + : "r"( r0 ) \ + : "memory" ) + +#define gte_stlvl( r0 ) __asm__ volatile ( \ + "swc2 $9, 0( %0 );" \ + "swc2 $10, 4( %0 );" \ + "swc2 $11, 8( %0 )" \ + : \ + : "r"( r0 ) \ + : "memory" ) + +#define gte_stlvnl( r0 ) __asm__ volatile ( \ + "swc2 $25, 0( %0 );" \ + "swc2 $26, 4( %0 );" \ + "swc2 $27, 8( %0 )" \ + : \ + : "r"( r0 ) \ + : "memory" ) + +#define gte_stlvnl0( r0 ) __asm__ volatile ( \ + "swc2 $25, 0( %0 )" \ + : \ + : "r"( r0 ) \ + : "memory" ) + +#define gte_stlvnl1( r0 ) __asm__ volatile ( \ + "swc2 $26, 0( %0 )" \ + : \ + : "r"( r0 ) \ + : "memory" ) + +#define gte_stlvnl2( r0 ) __asm__ volatile ( \ + "swc2 $27, 0( %0 )" \ + : \ + : "r"( r0 ) \ + : "memory" ) + +#define gte_stsv( r0 ) __asm__ volatile ( \ + "mfc2 $12, $9;" \ + "mfc2 $13, $10;" \ + "mfc2 $14, $11;" \ + "sh $12, 0( %0 );" \ + "sh $13, 2( %0 );" \ + "sh $14, 4( %0 )" \ + : \ + : "r"( r0 ) \ + : "$12", "$13", "$14", "memory" ) + +#define gte_stclmv( r0 ) __asm__ volatile ( \ + "mfc2 $12, $9;" \ + "mfc2 $13, $10;" \ + "mfc2 $14, $11;" \ + "sh $12, 0( %0 );" \ + "sh $13, 6( %0 );" \ + "sh $14, 12( %0 )" \ + : \ + : "r"( r0 ) \ + : "$12", "$13", "$14", "memory" ) + +#define gte_stbv( r0 ) __asm__ volatile ( \ + "mfc2 $12, $9;" \ + "mfc2 $13, $10;" \ + "sb $12, 0( %0 );" \ + "sb $13, 1( %0 )" \ + : \ + : "r"( r0 ) \ + : "$12", "$13", "memory" ) + +#define gte_stcv( r0 ) __asm__ volatile ( \ + "mfc2 $12, $9;" \ + "mfc2 $13, $10;" \ + "mfc2 $14, $11;" \ + "sb $12, 0( %0 );" \ + "sb $13, 1( %0 );" \ + "sb $14, 2( %0 )" \ + : \ + : "r"( r0 ) \ + : "$12", "$13", "$14", "memory" ) + +#define gte_strgb( r0 ) __asm__ volatile ( \ + "swc2 $22, 0( %0 )" \ + : \ + : "r"( r0 ) \ + : "memory" ) + +#define gte_strgb3( r0, r1, r2 ) __asm__ volatile ( \ + "swc2 $20, 0( %0 );" \ + "swc2 $21, 0( %1 );" \ + "swc2 $22, 0( %2 )" \ + : \ + : "r"( r0 ), "r"( r1 ), "r"( r2 ) \ + : "memory" ) + +#define gte_strgb3_g3( r0 ) __asm__ volatile ( \ + "swc2 $20, 4( %0 );" \ + "swc2 $21, 12( %0 );" \ + "swc2 $22, 20( %0 )" \ + : \ + : "r"( r0 ) \ + : "memory" ) + +#define gte_strgb3_gt3( r0 ) __asm__ volatile ( \ + "swc2 $20, 4( %0 );" \ + "swc2 $21, 16( %0 );" \ + "swc2 $22, 28( %0 )" \ + : \ + : "r"( r0 ) \ + : "memory" ) + +#define gte_strgb3_g4( r0 ) __asm__ volatile ( \ + "swc2 $20, 4( %0 );" \ + "swc2 $21, 12( %0 );" \ + "swc2 $22, 20( %0 )" \ + : \ + : "r"( r0 ) \ + : "memory" ) + +#define gte_strgb3_gt4( r0 ) __asm__ volatile ( \ + "swc2 $20, 4( %0 );" \ + "swc2 $21, 16( %0 );" \ + "swc2 $22, 28( %0 )" \ + : \ + : "r"( r0 ) \ + : "memory" ) + +#define gte_ReadGeomOffset( r0, r1 ) __asm__ volatile ( \ + "cfc2 $12, $24;" \ + "cfc2 $13, $25;" \ + "sra $12, $12, 16;" \ + "sra $13, $13, 16;" \ + "sw $12, 0( %0 );" \ + "sw $13, 0( %1 )" \ + : \ + : "r"( r0 ), "r"( r1 ) \ + : "$12", "$13", "memory" ) + +#define gte_ReadGeomScreen( r0 ) __asm__ volatile ( \ + "cfc2 $12, $26;" \ + "nop;" \ + "sw $12, 0( %0 )" \ + : \ + : "r"( r0 ) \ + : "$12", "memory" ) + +#define gte_ReadRotMatrix( r0 ) __asm__ volatile ( \ + "cfc2 $12, $0;" \ + "cfc2 $13, $1;" \ + "sw $12, 0( %0 );" \ + "sw $13, 4( %0 );" \ + "cfc2 $12, $2;" \ + "cfc2 $13, $3;" \ + "cfc2 $14, $4;" \ + "sw $12, 8( %0 );" \ + "sw $13, 12( %0 );" \ + "sw $14, 16( %0 );" \ + "cfc2 $12, $5;" \ + "cfc2 $13, $6;" \ + "cfc2 $14, $7;" \ + "sw $12, 20( %0 );" \ + "sw $13, 24( %0 );" \ + "sw $14, 28( %0 )" \ + : \ + : "r"( r0 ) \ + : "$12", "$13", "$14", "memory" ) + +#define gte_sttr( r0 ) __asm__ volatile ( \ + "cfc2 $12, $5;" \ + "cfc2 $13, $6;" \ + "cfc2 $14, $7;" \ + "sw $12, 0( %0 );" \ + "sw $13, 4( %0 );" \ + "sw $14, 8( %0 )" \ + : \ + : "r"( r0 ) \ + : "$12", "$13", "$14", "memory" ) + +#define gte_ReadLightMatrix( r0 ) __asm__ volatile ( \ + "cfc2 $12, $8;" \ + "cfc2 $13, $9;" \ + "sw $12, 0( %0 );" \ + "sw $13, 4( %0 );" \ + "cfc2 $12, $10;" \ + "cfc2 $13, $11;" \ + "cfc2 $14, $12;" \ + "sw $12, 8( %0 );" \ + "sw $13, 12( %0 );" \ + "sw $14, 16( %0 );" \ + "cfc2 $12, $13;" \ + "cfc2 $13, $14;" \ + "cfc2 $14, $15;" \ + "sw $12, 20( %0 );" \ + "sw $13, 24( %0 );" \ + "sw $14, 28( %0 )" \ + : \ + : "r"( r0 ) \ + : "$12", "$13", "$14", "memory" ) + +#define gte_ReadColorMatrix( r0 ) __asm__ volatile ( \ + "cfc2 $12, $16;" \ + "cfc2 $13, $17;" \ + "sw $12, 0( %0 );" \ + "sw $13, 4( %0 );" \ + "cfc2 $12, $18;" \ + "cfc2 $13, $19;" \ + "cfc2 $14, $20;" \ + "sw $12, 8( %0 );" \ + "sw $13, 12( %0 );" \ + "sw $14, 16( %0 );" \ + "cfc2 $12, $21;" \ + "cfc2 $13, $22;" \ + "cfc2 $14, $23;" \ + "sw $12, 20( %0 );" \ + "sw $13, 24( %0 );" \ + "sw $14, 28( %0 )" \ + : \ + : "r"( r0 ) \ + : "$12", "$13", "$14", "memory" ) + +#define gte_stlzc( r0 ) __asm__ volatile ( \ + "swc2 $31, 0( %0 )" \ + : \ + : "r"( r0 ) \ + : "memory" ) + +#define gte_stfc( r0 ) __asm__ volatile ( \ + "cfc2 $12, $21;" \ + "cfc2 $13, $22;" \ + "cfc2 $14, $23;" \ + "sw $12, 0( %0 );" \ + "sw $13, 4( %0 );" \ + "sw $14, 8( %0 )" \ + : \ + : "r"( r0 ) \ + : "$12", "$13", "$14", "memory" ) + +#define gte_mvlvtr() __asm__ volatile ( \ + "mfc2 $12, $25;" \ + "mfc2 $13, $26;" \ + "mfc2 $14, $27;" \ + "ctc2 $12, $5;" \ + "ctc2 $13, $6;" \ + "ctc2 $14, $7" \ + : \ + : \ + : "$12", "$13", "$14" ) + +#define gte_nop() __asm__ volatile ( \ + "nop" ) + +#define gte_subdvl( r0, r1, r2 ) __asm__ volatile ( \ + "lw $12, 0( %0 );" \ + "lw $13, 0( %1 );" \ + "mtc2 $12, $9;" \ + "mtc2 $13, $10;" \ + "sra $12, $12, 16;" \ + "sra $13, $13, 16;" \ + "subu $15, $12, $13;" \ + "mfc2 $12, $9;" \ + "mfc2 $13, $10;" \ + "sw $15, 4( %2 );" \ + "subu $12, $12, $13;" \ + "sw $12, 0( %2 )" \ + : \ + : "r"( r0 ), "r"( r1 ), "r"( r2 ) \ + : "$12", "$13", "$14", "$15", "memory" ) + +#define gte_subdvd( r0, r1, r2 ) __asm__ volatile ( \ + "lw $12, 0( %0 );" \ + "lw $13, 0( %1 );" \ + "mtc2 $12, $9;" \ + "mtc2 $13, $10;" \ + "sra $12, $12, 16;" \ + "sra $13, $13, 16;" \ + "subu $15, $12, $13;" \ + "mfc2 $12, $9;" \ + "mfc2 $13, $10;" \ + "sh $15, 2( %2 );" \ + "subu $12, $12, $13;" \ + "sh $12, 0( %2 )" \ + : \ + : "r"( r0 ), "r"( r1 ), "r"( r2 ) \ + : "$12", "$13", "$14", "$15", "memory" ) + +#define gte_adddvl( r0, r1, r2 ) __asm__ volatile ( \ + "lw $12, 0( %0 );" \ + "lw $13, 0( %1 );" \ + "mtc2 $12, $9;" \ + "mtc2 $13, $10;" \ + "sra $12, $12, 16;" \ + "sra $13, $13, 16;" \ + "addu $15, $12, $13;" \ + "mfc2 $12, $9;" \ + "mfc2 $13, $10;" \ + "sw $15, 4( %2 );" \ + "addu $12, $12, $13;" \ + "sw $12, 0( %2 )" \ + : \ + : "r"( r0 ), "r"( r1 ), "r"( r2 ) \ + : "$12", "$13", "$14", "$15", "memory" ) + +#define gte_adddvd( r0, r1, r2 ) __asm__ volatile ( \ + "lw $12, 0( %0 );" \ + "lw $13, 0( %1 );" \ + "mtc2 $12, $9;" \ + "mtc2 $13, $10;" \ + "sra $12, $12, 16;" \ + "sra $13, $13, 16;" \ + "addu $15, $12, $13;" \ + "mfc2 $12, $9;" \ + "mfc2 $13, $10;" \ + "sh $15, 2( %2 );" \ + "addu $12, $12, $13;" \ + "sh $12, 0( %2 )" \ + : \ + : "r"( r0 ), "r"( r1 ), "r"( r2 ) \ + : "$12", "$13", "$14", "$15", "memory" ) + +#define gte_FlipRotMatrixX() __asm__ volatile ( \ + "cfc2 $12, $0;" \ + "cfc2 $13, $1;" \ + "sll $14, $12, 16;" \ + "sra $14, $14, 16;" \ + "subu $14, $0, $14;" \ + "sra $15, $12, 16;" \ + "subu $15, $0, $15;" \ + "sll $15, $15, 16;" \ + "sll $14, $14, 16;" \ + "srl $14, $14, 16;" \ + "or $14, $14, $15;" \ + "ctc2 $14, $0;" \ + "sll $14, $13, 16;" \ + "sra $14, $14, 16;" \ + "subu $14, $0, $14;" \ + "sra $15, $13, 16;" \ + "sll $15, $15, 16;" \ + "sll $14, $14, 16;" \ + "srl $14, $14, 16;" \ + "or $14, $14, $15;" \ + "ctc2 $14, $1" \ + : \ + : \ + : "$12", "$13", "$14", "$15" ) + +#define gte_FlipTRX() __asm__ volatile ( \ + "cfc2 $12, $5;" \ + "nop;" \ + "subu $12, $0, $12;" \ + "ctc2 $12, $5" \ + : \ + : \ + : "$12" ) diff --git a/toolchain/psyq-4_7/include/inline_o.h b/toolchain/psyq-4_7/include/inline_o.h new file mode 100644 index 0000000..1af597f --- /dev/null +++ b/toolchain/psyq-4_7/include/inline_o.h @@ -0,0 +1,1194 @@ +/* + * $PSLibId: Run-time Library Release 4.7$ + */ + +/* + * Macro definitions of DMPSX version 3 + * inline_o.h + * Copyright(C) 1996, Sony Computer Entertainment Inc. + * All rights reserved. + */ + +/* + * Type 1 functions + */ + +#define gte_ldv0(r1) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lwc2 $0,($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lwc2 $1,4($12)": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_ldv1(r1) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lwc2 $2,($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lwc2 $3,4($12)": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_ldv2(r1) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lwc2 $4,($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lwc2 $5,4($12)": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_ldv3(r1,r2,r3) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("move $13,%0": :"r"(r2):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("move $14,%0": :"r"(r3):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lwc2 $0,($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lwc2 $1,4($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lwc2 $2,($13)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lwc2 $3,4($13)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lwc2 $4,($14)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lwc2 $5,4($14)": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_ldv3c(r1) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lwc2 $0,($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lwc2 $1,4($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lwc2 $2,8($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lwc2 $3,12($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lwc2 $4,16($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lwc2 $5,20($12)": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_ldv3c_vertc(r1) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lwc2 $0,($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lwc2 $1,4($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lwc2 $2,12($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lwc2 $3,16($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lwc2 $4,24($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lwc2 $5,28($12)": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_ldv01(r1,r2) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("move $13,%0": :"r"(r2):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lwc2 $0,($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lwc2 $1,4($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lwc2 $2,($13)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lwc2 $3,4($13)": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_ldv01c(r1) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lwc2 $0,($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lwc2 $1,4($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lwc2 $2,8($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lwc2 $3,12($12)": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_ldrgb(r1) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lwc2 $6,($12)": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_ldrgb3(r1,r2,r3) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("move $13,%0": :"r"(r2):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("move $14,%0": :"r"(r3):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lwc2 $20,($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lwc2 $21,($13)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lwc2 $22,($14)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lwc2 $6,($14)": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_ldrgb3c(r1) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lwc2 $20,($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lwc2 $21,4($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lwc2 $22,8($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lwc2 $6,8($12)": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_ldlv0(r1) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lhu $14,4($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lhu $13,($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("sll $14,$14,16": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("or $13,$13,$14": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("mtc2 $13,$0": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lwc2 $1,8($12)": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_ldlvl(r1) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lwc2 $9,($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lwc2 $10,4($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lwc2 $11,8($12)": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_ldsv(r1) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lhu $13,($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lhu $14,2($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lhu $15,4($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("mtc2 $13,$9": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("mtc2 $14,$10": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("mtc2 $15,$11": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_ldbv(r1) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lbu $13,($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lbu $14,1($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("mtc2 $13,$9": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("mtc2 $14,$10": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_ldcv(r1) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lbu $13,($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lbu $14,1($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lbu $15,2($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("mtc2 $13,$9": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("mtc2 $14,$10": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("mtc2 $15,$11": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_ldclmv(r1) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lhu $13,($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lhu $14,6($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lhu $15,12($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("mtc2 $13,$9": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("mtc2 $14,$10": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("mtc2 $15,$11": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_lddp(r1) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("mtc2 $12,$8": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_ldsxy0(r1) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("mtc2 $12,$12": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_ldsxy1(r1) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("mtc2 $12,$13": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_ldsxy2(r1) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("mtc2 $12,$14": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_ldsxy3(r1,r2,r3) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("move $13,%0": :"r"(r2):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("move $14,%0": :"r"(r3):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("mtc2 $12,$12": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("mtc2 $14,$14": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("mtc2 $13,$13": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_ldsxy3c(r1) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lwc2 $12,($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lwc2 $13,4($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lwc2 $14,8($12)": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_ldsz3(r1,r2,r3) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("move $13,%0": :"r"(r2):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("move $14,%0": :"r"(r3):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("mtc2 $12,$17": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("mtc2 $13,$18": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("mtc2 $14,$19": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_ldsz4(r1,r2,r3,r4) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("move $13,%0": :"r"(r2):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("move $14,%0": :"r"(r3):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("move $15,%0": :"r"(r4):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("mtc2 $12,$16": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("mtc2 $13,$17": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("mtc2 $14,$18": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("mtc2 $15,$19": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_ldopv1(r1) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lw $13,($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lw $14,4($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("ctc2 $13,$0": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lw $15,8($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("ctc2 $14,$2": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("ctc2 $15,$4": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_ldopv2(r1) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lwc2 $11,8($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lwc2 $9,($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lwc2 $10,4($12)": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_ldlzc(r1) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("mtc2 $12,$30": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_SetRGBcd(r1) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lwc2 $6,($12)": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_ldbkdir(r1,r2,r3) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("move $13,%0": :"r"(r2):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("move $14,%0": :"r"(r3):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("ctc2 $12,$13": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("ctc2 $13,$14": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("ctc2 $14,$15": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_SetBackColor(r1,r2,r3) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("move $13,%0": :"r"(r2):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("move $14,%0": :"r"(r3):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("sll $12,$12,4": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("sll $13,$13,4": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("sll $14,$14,4": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("ctc2 $12,$13": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("ctc2 $13,$14": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("ctc2 $14,$15": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_ldfcdir(r1,r2,r3) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("move $13,%0": :"r"(r2):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("move $14,%0": :"r"(r3):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("ctc2 $12,$21": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("ctc2 $13,$22": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("ctc2 $14,$23": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_SetFarColor(r1,r2,r3) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("move $13,%0": :"r"(r2):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("move $14,%0": :"r"(r3):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("sll $12,$12,4": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("sll $13,$13,4": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("sll $14,$14,4": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("ctc2 $12,$21": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("ctc2 $13,$22": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("ctc2 $14,$23": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_SetGeomOffset(r1,r2) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("move $13,%0": :"r"(r2):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("sll $12,$12,16": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("sll $13,$13,16": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("ctc2 $12,$24": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("ctc2 $13,$25": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_SetGeomScreen(r1) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("ctc2 $12,$26": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_ldsvrtrow0(r1) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lw $13,($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lw $14,4($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("ctc2 $13,$0": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("ctc2 $14,$1": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_SetRotMatrix(r1) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lw $13,($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lw $14,4($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("ctc2 $13,$0": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("ctc2 $14,$1": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lw $13,8($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lw $14,12($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lw $15,16($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("ctc2 $13,$2": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("ctc2 $14,$3": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("ctc2 $15,$4": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_ldsvllrow0(r1) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lw $13,($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lw $14,4($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("ctc2 $13,$8": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("ctc2 $14,$9": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_SetLightMatrix(r1) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lw $13,($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lw $14,4($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("ctc2 $13,$8": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("ctc2 $14,$9": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lw $13,8($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lw $14,12($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lw $15,16($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("ctc2 $13,$10": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("ctc2 $14,$11": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("ctc2 $15,$12": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_ldsvlcrow0(r1) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lw $13,($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lw $14,4($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("ctc2 $13,$16": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("ctc2 $14,$17": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_SetColorMatrix(r1) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lw $13,($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lw $14,4($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("ctc2 $13,$16": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("ctc2 $14,$17": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lw $13,8($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lw $14,12($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lw $15,16($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("ctc2 $13,$18": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("ctc2 $14,$19": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("ctc2 $15,$20": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_SetTransMatrix(r1) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lw $13,20($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lw $14,24($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("ctc2 $13,$5": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lw $15,28($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("ctc2 $14,$6": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("ctc2 $15,$7": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_ldtr(r1,r2,r3) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("move $13,%0": :"r"(r2):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("move $14,%0": :"r"(r3):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("ctc2 $12,$5": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("ctc2 $13,$6": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("ctc2 $14,$7": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_SetTransVector(r1) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lw $13,($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lw $14,4($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lw $15,8($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("ctc2 $13,$5": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("ctc2 $14,$6": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("ctc2 $15,$7": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_ld_intpol_uv0(r1) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lbu $13,($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lbu $14,1($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("ctc2 $13,$21": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("ctc2 $14,$22": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_ld_intpol_uv1(r1) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lbu $13,($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lbu $14,1($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("mtc2 $13,$9": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("mtc2 $14,$10": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_ld_intpol_bv0(r1) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lbu $13,($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lbu $14,1($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("ctc2 $13,$21": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("ctc2 $14,$22": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_ld_intpol_bv1(r1) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lbu $13,($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lbu $14,1($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("ctc2 $13,$9": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("ctc2 $14,$10": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_ld_intpol_sv0(r1) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lh $13,($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lh $14,2($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lh $15,4($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("ctc2 $13,$21": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("ctc2 $14,$22": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("ctc2 $15,$23": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_ld_intpol_sv1(r1) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lh $13,($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lh $14,2($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lh $15,4($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("mtc2 $13,$9": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("mtc2 $14,$10": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("mtc2 $15,$11": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_ldfc(r1) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lw $13,($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lw $14,4($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lw $15,8($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("ctc2 $13,$21": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("ctc2 $14,$22": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("ctc2 $15,$23": : :"$12","$13","$14","$15","memory"); \ +} + +/* + * Type 2 functions + */ + +#define gte_rtps() { \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile (".word 0x0000007f": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_rtpt() { \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile (".word 0x000000bf": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_rt() { \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile (".word 0x000000ff": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_rtv0() { \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile (".word 0x0000013f": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_rtv1() { \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile (".word 0x0000017f": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_rtv2() { \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile (".word 0x000001bf": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_rtir() { \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile (".word 0x000001ff": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_rtir_sf0() { \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile (".word 0x0000023f": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_rtv0tr() { \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile (".word 0x0000027f": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_rtv1tr() { \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile (".word 0x000002bf": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_rtv2tr() { \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile (".word 0x000002ff": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_rtirtr() { \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile (".word 0x0000033f": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_rtv0bk() { \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile (".word 0x0000037f": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_rtv1bk() { \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile (".word 0x000003bf": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_rtv2bk() { \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile (".word 0x000003ff": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_rtirbk() { \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile (".word 0x0000043f": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_ll() { \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile (".word 0x0000057f": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_llv0() { \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile (".word 0x000005bf": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_llv1() { \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile (".word 0x000005ff": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_llv2() { \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile (".word 0x0000063f": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_llir() { \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile (".word 0x0000067f": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_llv0tr() { \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile (".word 0x000006bf": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_llv1tr() { \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile (".word 0x000006ff": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_llv2tr() { \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile (".word 0x0000073f": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_llirtr() { \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile (".word 0x0000077f": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_llv0bk() { \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile (".word 0x000007bf": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_llv1bk() { \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile (".word 0x000007ff": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_llv2bk() { \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile (".word 0x0000083f": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_llirbk() { \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile (".word 0x0000087f": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_lc() { \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile (".word 0x000009bf": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_lcv0() { \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile (".word 0x000009ff": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_lcv1() { \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile (".word 0x00000a3f": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_lcv2() { \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile (".word 0x00000a7f": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_lcir() { \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile (".word 0x00000abf": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_lcv0tr() { \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile (".word 0x00000aff": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_lcv1tr() { \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile (".word 0x00000b3f": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_lcv2tr() { \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile (".word 0x00000b7f": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_lcirtr() { \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile (".word 0x00000bbf": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_lcv0bk() { \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile (".word 0x00000bff": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_lcv1bk() { \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile (".word 0x00000c3f": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_lcv2bk() { \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile (".word 0x00000c7f": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_lcirbk() { \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile (".word 0x00000cbf": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_dpcl() { \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile (".word 0x00000dff": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_dpcs() { \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile (".word 0x00000e3f": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_dpct() { \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile (".word 0x00000e7f": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_intpl() { \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile (".word 0x00000ebf": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_sqr12() { \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile (".word 0x00000eff": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_sqr0() { \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile (".word 0x00000f3f": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_ncs() { \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile (".word 0x00000f7f": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_nct() { \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile (".word 0x00000fbf": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_ncds() { \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile (".word 0x00000fff": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_ncdt() { \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile (".word 0x0000103f": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_nccs() { \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile (".word 0x0000107f": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_ncct() { \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile (".word 0x000010bf": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_cdp() { \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile (".word 0x000010ff": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_cc() { \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile (".word 0x0000113f": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_nclip() { \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile (".word 0x0000117f": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_avsz3() { \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile (".word 0x000011bf": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_avsz4() { \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile (".word 0x000011ff": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_op12() { \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile (".word 0x0000123f": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_op0() { \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile (".word 0x0000127f": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_gpf12() { \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile (".word 0x000012bf": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_gpf0() { \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile (".word 0x000012ff": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_gpl12() { \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile (".word 0x0000133f": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_gpl0() { \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile (".word 0x0000137f": : :"$12","$13","$14","$15","memory"); \ +} + +/* + * Type 3 functions + */ + +#define gte_stsxy(r1) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("swc2 $14,($12)": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_stsxy3(r1,r2,r3) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("move $13,%0": :"r"(r2):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("move $14,%0": :"r"(r3):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("swc2 $12,($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("swc2 $13,($13)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("swc2 $14,($14)": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_stsxy3c(r1) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("swc2 $12,($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("swc2 $13,4($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("swc2 $14,8($12)": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_stsxy2(r1) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("swc2 $14,($12)": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_stsxy1(r1) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("swc2 $13,($12)": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_stsxy0(r1) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("swc2 $12,($12)": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_stsxy01(r1,r2) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("move $13,%0": :"r"(r2):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("swc2 $12,($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("swc2 $13,($13)": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_stsxy01c(r1) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("swc2 $12,($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("swc2 $13,4($12)": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_stsxy3_f3(r1) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("swc2 $12,8($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("swc2 $13,12($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("swc2 $14,16($12)": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_stsxy3_g3(r1) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("swc2 $12,8($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("swc2 $13,16($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("swc2 $14,24($12)": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_stsxy3_ft3(r1) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("swc2 $12,8($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("swc2 $13,16($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("swc2 $14,24($12)": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_stsxy3_gt3(r1) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("swc2 $12,8($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("swc2 $13,20($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("swc2 $14,32($12)": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_stsxy3_f4(r1) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("swc2 $12,8($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("swc2 $13,12($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("swc2 $14,16($12)": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_stsxy3_g4(r1) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("swc2 $12,8($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("swc2 $13,16($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("swc2 $14,24($12)": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_stsxy3_ft4(r1) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("swc2 $12,8($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("swc2 $13,16($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("swc2 $14,24($12)": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_stsxy3_gt4(r1) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("swc2 $12,8($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("swc2 $13,20($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("swc2 $14,32($12)": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_stdp(r1) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("swc2 $8,($12)": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_stflg(r1) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("cfc2 $13,$31": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("sw $13,($12)": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_stflg_4(r1) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("cfc2 $13,$31": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("addi $14,$0,4": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("sll $14,$14,16": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("and $13,$13,$14": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("sw $13,($12)": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_stsz(r1) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("swc2 $19,($12)": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_stsz3(r1,r2,r3) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("move $13,%0": :"r"(r2):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("move $14,%0": :"r"(r3):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("swc2 $17,($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("swc2 $18,($13)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("swc2 $19,($14)": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_stsz4(r1,r2,r3,r4) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("move $13,%0": :"r"(r2):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("move $14,%0": :"r"(r3):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("move $15,%0": :"r"(r4):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("swc2 $16,($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("swc2 $17,($13)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("swc2 $18,($14)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("swc2 $19,($15)": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_stsz3c(r1) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("swc2 $17,($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("swc2 $18,4($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("swc2 $19,8($12)": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_stsz4c(r1) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("swc2 $16,($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("swc2 $17,4($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("swc2 $18,8($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("swc2 $19,12($12)": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_stszotz(r1) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("mfc2 $13,$19": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("sra $13,$13,2": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("sw $13,($12)": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_stotz(r1) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("swc2 $7,($12)": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_stopz(r1) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("swc2 $24,($12)": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_stlvl(r1) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("swc2 $9,($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("swc2 $10,4($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("swc2 $11,8($12)": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_stlvnl(r1) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("swc2 $25,($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("swc2 $26,4($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("swc2 $27,8($12)": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_stlvnl0(r1) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("swc2 $25,($12)": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_stlvnl1(r1) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("swc2 $26,($12)": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_stlvnl2(r1) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("swc2 $27,($12)": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_stsv(r1) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("mfc2 $13,$9": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("mfc2 $14,$10": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("mfc2 $15,$11": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("sh $13,($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("sh $14,2($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("sh $15,4($12)": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_stclmv(r1) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("mfc2 $13,$9": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("mfc2 $14,$10": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("mfc2 $15,$11": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("sh $13,($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("sh $14,6($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("sh $15,12($12)": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_stbv(r1) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("mfc2 $13,$9": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("mfc2 $14,$10": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("sb $13,($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("sb $14,1($12)": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_stcv(r1) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("mfc2 $13,$9": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("mfc2 $14,$10": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("mfc2 $15,$11": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("sb $13,($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("sb $14,1($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("sb $15,2($12)": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_strgb(r1) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("swc2 $22,($12)": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_strgb3(r1,r2,r3) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("move $13,%0": :"r"(r2):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("move $14,%0": :"r"(r3):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("swc2 $20,($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("swc2 $21,($13)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("swc2 $22,($14)": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_strgb3_g3(r1) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("swc2 $20,4($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("swc2 $21,12($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("swc2 $22,20($12)": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_strgb3_gt3(r1) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("swc2 $20,4($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("swc2 $21,16($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("swc2 $22,28($12)": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_strgb3_g4(r1) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("swc2 $20,4($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("swc2 $21,12($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("swc2 $22,20($12)": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_strgb3_gt4(r1) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("swc2 $20,4($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("swc2 $21,16($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("swc2 $22,28($12)": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_ReadGeomOffset(r1,r2) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("move $13,%0": :"r"(r2):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("cfc2 $14,$24": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("cfc2 $15,$25": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("sra $14,$14,16": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("sra $15,$15,16": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("sw $14,($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("sw $15,($13)": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_ReadGeomScreen(r1) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("cfc2 $13,$26": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("sw $13,($12)": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_ReadRotMatrix(r1) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("cfc2 $13,$0": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("cfc2 $14,$1": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("sw $13,($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("sw $14,4($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("cfc2 $13,$2": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("cfc2 $14,$3": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("cfc2 $15,$4": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("sw $13,8($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("sw $14,12($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("sw $15,16($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("cfc2 $13,$5": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("cfc2 $14,$6": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("cfc2 $15,$7": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("sw $13,20($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("sw $14,24($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("sw $15,28($12)": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_sttr(r1) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("cfc2 $13,$5": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("cfc2 $14,$6": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("cfc2 $15,$7": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("sw $13,($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("sw $14,4($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("sw $15,8($12)": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_ReadLightMatrix(r1) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("cfc2 $13,$8": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("cfc2 $14,$9": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("sw $13,($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("sw $14,4($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("cfc2 $13,$10": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("cfc2 $14,$11": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("cfc2 $15,$12": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("sw $13,8($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("sw $14,12($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("sw $15,16($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("cfc2 $13,$13": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("cfc2 $14,$14": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("cfc2 $15,$15": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("sw $13,20($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("sw $14,24($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("sw $15,28($12)": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_ReadColorMatrix(r1) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("cfc2 $13,$16": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("cfc2 $14,$17": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("sw $13,($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("sw $14,4($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("cfc2 $13,$18": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("cfc2 $14,$19": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("cfc2 $15,$20": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("sw $13,8($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("sw $14,12($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("sw $15,16($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("cfc2 $13,$21": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("cfc2 $14,$22": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("cfc2 $15,$23": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("sw $13,20($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("sw $14,24($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("sw $15,28($12)": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_stlzc(r1) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("swc2 $31,($12)": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_stfc(r1) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("cfc2 $13,$21": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("cfc2 $14,$22": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("cfc2 $15,$23": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("sw $13,($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("sw $14,4($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("sw $15,8($12)": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_mvlvtr() { \ + __asm__ volatile ("mfc2 $12,$25": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("mfc2 $13,$26": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("mfc2 $14,$27": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("ctc2 $12,$5": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("ctc2 $13,$6": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("ctc2 $14,$7": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_nop() { \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_subdvl(r1,r2,r3) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("move $13,%0": :"r"(r2):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("move $14,%0": :"r"(r3):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lw $12,($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lw $13,($13)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("mtc2 $12,$9": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("mtc2 $13,$10": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("sra $12,$12,16": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("sra $13,$13,16": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("subu $15,$12,$13": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("mfc2 $12,$9": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("mfc2 $13,$10": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("sw $15,4($14)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("subu $12,$12,$13": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("sw $12,($14)": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_subdvd(r1,r2,r3) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("move $13,%0": :"r"(r2):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("move $14,%0": :"r"(r3):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lw $12,($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lw $13,($13)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("mtc2 $12,$9": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("mtc2 $13,$10": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("sra $12,$12,16": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("sra $13,$13,16": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("subu $15,$12,$13": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("mfc2 $12,$9": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("mfc2 $13,$10": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("sh $15,2($14)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("subu $12,$12,$13": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("sh $12,($14)": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_adddvl(r1,r2,r3) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("move $13,%0": :"r"(r2):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("move $14,%0": :"r"(r3):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lw $12,($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lw $13,($13)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("mtc2 $12,$9": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("mtc2 $13,$10": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("sra $12,$12,16": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("sra $13,$13,16": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("addu $15,$12,$13": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("mfc2 $12,$9": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("mfc2 $13,$10": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("sw $15,4($14)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("addu $12,$12,$13": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("sw $12,($14)": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_adddvd(r1,r2,r3) { \ + __asm__ volatile ("move $12,%0": :"r"(r1):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("move $13,%0": :"r"(r2):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("move $14,%0": :"r"(r3):"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lw $12,($12)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("lw $13,($13)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("mtc2 $12,$9": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("mtc2 $13,$10": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("sra $12,$12,16": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("sra $13,$13,16": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("addu $15,$12,$13": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("mfc2 $12,$9": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("mfc2 $13,$10": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("sh $15,2($14)": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("addu $12,$12,$13": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("sh $12,($14)": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_FlipRotMatrixX() { \ + __asm__ volatile ("cfc2 $12,$0": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("cfc2 $13,$1": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("sll $14,$12,16": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("sra $14,$14,16": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("subu $14,$0,$14": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("sra $15,$12,16": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("subu $15,$0,$15": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("sll $15,$15,16": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("sll $14,$14,16": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("srl $14,$14,16": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("or $14,$14,$15": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("ctc2 $14,$0": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("sll $14,$13,16": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("sra $14,$14,16": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("subu $14,$0,$14": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("sra $15,$13,16": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("sll $15,$15,16": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("sll $14,$14,16": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("srl $14,$14,16": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("or $14,$14,$15": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("ctc2 $14,$1": : :"$12","$13","$14","$15","memory"); \ +} +#define gte_FlipTRX() { \ + __asm__ volatile ("cfc2 $12,$5": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("nop ": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("subu $12,$0,$12": : :"$12","$13","$14","$15","memory"); \ + __asm__ volatile ("ctc2 $12,$5": : :"$12","$13","$14","$15","memory"); \ +} diff --git a/toolchain/psyq-4_7/include/inline_s.h b/toolchain/psyq-4_7/include/inline_s.h new file mode 100644 index 0000000..f857699 --- /dev/null +++ b/toolchain/psyq-4_7/include/inline_s.h @@ -0,0 +1,194 @@ +/* $PSLibId: Run-time Library Release 4.7$ + * + * Macro definitions of DMPSX version 3 for Assembler(aspsx) programs + * inline_s.h + * Copyright(C) 1998 Sony Computer Entertainment Inc. + * All rights reserved. + */ + +/* + * GTE commands with 2 nops + */ +#define nRTPS \ + nop; \ + nop; \ + .word 0x0000007f + +#define nRTPT \ + nop; \ + nop; \ + .word 0x000000bf + +#define nDCPL \ + nop; \ + nop; \ + .word 0x00000dff + +#define nDPCS \ + nop; \ + nop; \ + .word 0x00000e3f + +#define nDPCT \ + nop; \ + nop; \ + .word 0x00000e7f + +#define nINTPL \ + nop; \ + nop; \ + .word 0x00000ebf + +#define nNCS \ + nop; \ + nop; \ + .word 0x00000f7f + +#define nNCT \ + nop; \ + nop; \ + .word 0x00000fbf + +#define nNCDS \ + nop; \ + nop; \ + .word 0x00000fff + +#define nNCDT \ + nop; \ + nop; \ + .word 0x0000103f + +#define nNCCS \ + nop; \ + nop; \ + .word 0x0000107f + +#define nNCCT \ + nop; \ + nop; \ + .word 0x000010bf + +#define nCDP \ + nop; \ + nop; \ + .word 0x000010ff + +#define nCC \ + nop; \ + nop; \ + .word 0x0000113f + +#define nNCLIP \ + nop; \ + nop; \ + .word 0x0000117f + +#define nAVSZ3 \ + nop; \ + nop; \ + .word 0x000011bf + +#define nAVSZ4 \ + nop; \ + nop; \ + .word 0x000011ff + +#define nMVMVA(sf,mx,v,cv,lm) \ + nop; \ + nop; \ + .word 0x000013bf|sf<<25|mx<<23|v<<21|cv<<19|lm<<18 + +#define nSQR(sf) \ + nop; \ + nop; \ + .word 0x000013ff|sf<<25 + +#define nOP(sf) \ + nop; \ + nop; \ + .word 0x0000143f|sf<<25 + +#define nGPF(sf) \ + nop; \ + nop; \ + .word 0x0000147f|sf<<25 + +#define nGPL(sf) \ + nop; \ + nop; \ + .word 0x000014bf|sf<<25 + +/* + * GTE commands without nops + */ +#define RTPS \ + .word 0x0000007f + +#define RTPT \ + .word 0x000000bf + +#define DCPL \ + .word 0x00000dff + +#define DPCS \ + .word 0x00000e3f + +#define DPCT \ + .word 0x00000e7f + +#define INTPL \ + .word 0x00000ebf + +#define NCS \ + .word 0x00000f7f + +#define NCT \ + .word 0x00000fbf + +#define NCDS \ + .word 0x00000fff + +#define NCDT \ + .word 0x0000103f + +#define NCCS \ + .word 0x0000107f + +#define NCCT \ + .word 0x000010bf + +#define CDP \ + .word 0x000010ff + +#define CC \ + .word 0x0000113f + +#define NCLIP \ + .word 0x0000117f + +#define AVSZ3 \ + .word 0x000011bf + +#define AVSZ4 \ + .word 0x000011ff + +#define MVMVA(sf,mx,v,cv,lm) \ + .word 0x000013bf|sf<<25|mx<<23|v<<21|cv<<19|lm<<18 + + +#define SQR(sf) \ + .word 0x000013ff|sf<<25 + + +#define OP(sf) \ + .word 0x0000143f|sf<<25 + + +#define GPF(sf) \ + .word 0x0000147f|sf<<25 + + +#define GPL(sf) \ + .word 0x000014bf|sf<<25 + diff --git a/toolchain/psyq-4_7/include/ioctl.h b/toolchain/psyq-4_7/include/ioctl.h new file mode 100644 index 0000000..bcec335 --- /dev/null +++ b/toolchain/psyq-4_7/include/ioctl.h @@ -0,0 +1,44 @@ +/* + * File:ioctl.h + */ +/* + * $PSLibId: Run-time Library Release 4.7$ + */ + +#ifndef _SYS_IOCTL_H +#define _SYS_IOCTL_H + + +#ifndef NULL +#define NULL 0 +#endif + +#ifndef EOF +#define EOF (-1) /* EOF from getc() */ +#endif + +/* general */ +#define FIOCNBLOCK (('f'<<8)|1) /* set non-blocking io */ +#define FIOCSCAN (('f'<<8)|2) /* scan for input */ + +/* tty and sio */ +#define TIOCRAW (('t'<<8)|1) /* disable xon/xoff control */ +#define TIOCFLUSH (('t'<<8)|2) /* flush input buffer */ +#define TIOCREOPEN (('t'<<8)|3) /* reopen */ +#define TIOCBAUD (('t'<<8)|4) /* set baud rate */ +#define TIOCEXIT (('t'<<8)|5) /* console interrup */ +#define TIOCDTR (('t'<<8)|6) /* control DTR line */ +#define TIOCRTS (('t'<<8)|7) /* control RTS line */ +#define TIOCLEN (('t'<<8)|8) /* stop<<16 | char */ + /* stop 0:none 1:1 2:1.5 3:2bit */ + /* char 0:5 1:6 2:7 3:8bit */ +#define TIOCPARITY (('t'<<8)|9) /* parity 0:none 1:e 3:o */ +#define TIOSTATUS (('t'<<8)|10) /* return status */ +#define TIOERRRST (('t'<<8)|11) /* error reset */ +#define TIOEXIST (('t'<<8)|12) /* exist test with DTR/CTS */ +#define TIORLEN (('t'<<8)|13) /* receive buffer length */ + +/* disk */ +#define DIOFORMAT (('d'<<8)|1) /* format */ + +#endif /* _SYS_IOCTL_H */ diff --git a/toolchain/psyq-4_7/include/kernel.h b/toolchain/psyq-4_7/include/kernel.h new file mode 100644 index 0000000..1ed7aba --- /dev/null +++ b/toolchain/psyq-4_7/include/kernel.h @@ -0,0 +1,171 @@ +#ifndef _KERNEL_H +#define _KERNEL_H + +/* + * File:kernel.h Rev. 3 +*/ +/* + * $PSLibId: Run-time Library Release 4.7$ + */ +#ifndef _R3000_H +#include +#endif + +#ifndef _ASM_H +#include +#endif + +/* don't change these macros and structures which is refereced in kernel code */ + +#define DescMask 0xff000000 +#define DescTH DescMask +#define DescHW 0xf0000000 +#define DescEV 0xf1000000 +#define DescRC 0xf2000000 +#define DescUEV 0xf3000000 /* User event */ +#define DescSW 0xf4000000 /* BIOS */ + +#define HwVBLANK (DescHW|0x01) /* VBLANK */ +#define HwGPU (DescHW|0x02) /* GPU */ +#define HwCdRom (DescHW|0x03) /* CDROM Decorder */ +#define HwDMAC (DescHW|0x04) /* DMA controller */ +#define HwRTC0 (DescHW|0x05) /* RTC0 */ +#define HwRTC1 (DescHW|0x06) /* RTC1 */ +#define HwRTC2 (DescHW|0x07) /* RTC2 */ +#define HwCNTL (DescHW|0x08) /* Controller */ +#define HwSPU (DescHW|0x09) /* SPU */ +#define HwPIO (DescHW|0x0a) /* PIO */ +#define HwSIO (DescHW|0x0b) /* SIO */ + +#define HwCPU (DescHW|0x10) /* Exception */ +#define HwCARD (DescHW|0x11) /* memory card */ +#define HwCARD_0 (DescHW|0x12) /* memory card */ +#define HwCARD_1 (DescHW|0x13) /* memory card */ +#define SwCARD (DescSW|0x01) /* memory card */ +#define SwMATH (DescSW|0x02) /* libmath */ + +#define RCntCNT0 (DescRC|0x00) /* display pixel */ +#define RCntCNT1 (DescRC|0x01) /* horizontal sync */ +#define RCntCNT2 (DescRC|0x02) /* one-eighth of system clock */ +#define RCntCNT3 (DescRC|0x03) /* vertical sync target value fixed to 1 */ + +#define RCntMdINTR 0x1000 +#define RCntMdNOINTR 0x2000 +#define RCntMdSC 0x0001 +#define RCntMdSP 0x0000 +#define RCntMdFR 0x0000 +#define RCntMdGATE 0x0010 + +#define EvSpCZ 0x0001 /* counter becomes zero */ +#define EvSpINT 0x0002 /* interrupted */ +#define EvSpIOE 0x0004 /* end of i/o */ +#define EvSpCLOSE 0x0008 /* file was closed */ +#define EvSpACK 0x0010 /* command acknowledged */ +#define EvSpCOMP 0x0020 /* command completed */ +#define EvSpDR 0x0040 /* data ready */ +#define EvSpDE 0x0080 /* data end */ +#define EvSpTIMOUT 0x0100 /* time out */ +#define EvSpUNKNOWN 0x0200 /* unknown command */ +#define EvSpIOER 0x0400 /* end of read buffer */ +#define EvSpIOEW 0x0800 /* end of write buffer */ +#define EvSpTRAP 0x1000 /* general interrupt */ +#define EvSpNEW 0x2000 /* new device */ +#define EvSpSYSCALL 0x4000 /* system call instruction */ +#define EvSpERROR 0x8000 /* error happned */ +#define EvSpPERROR 0x8001 /* previous write error happned */ +#define EvSpEDOM 0x0301 /* domain error in libmath */ +#define EvSpERANGE 0x0302 /* range error in libmath */ + +#define EvMdINTR 0x1000 +#define EvMdNOINTR 0x2000 + +#define EvStUNUSED 0x0000 +#define EvStWAIT 0x1000 +#define EvStACTIVE 0x2000 +#define EvStALREADY 0x4000 + +#define TcbMdRT 0x1000 /* reserved by system */ +#define TcbMdPRI 0x2000 /* reserved by system */ + +#define TcbStUNUSED 0x1000 +#define TcbStACTIVE 0x4000 + +#if defined(_LANGUAGE_C)||defined(LANGUAGE_C)||defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus) +struct ToT { + unsigned long *head; + long size; +}; + +struct TCBH { + struct TCB *entry; /* NULL */ + long flag; +}; + +struct TCB { + long status; + long mode; + unsigned long reg[NREGS]; /* never change the offset of this */ + long system[6]; /* reserved by system */ +}; + +struct EvCB { + unsigned long desc; + long status; + long spec; + long mode; + long (*FHandler)(); + long system[2]; /* reserved by system */ +}; + + +struct EXEC { + unsigned long pc0; + unsigned long gp0; + unsigned long t_addr; + unsigned long t_size; + unsigned long d_addr; + unsigned long d_size; + unsigned long b_addr; + unsigned long b_size; + unsigned long s_addr; + unsigned long s_size; + unsigned long sp,fp,gp,ret,base; +}; + + +struct XF_HDR { + char key[8]; + unsigned long text; + unsigned long data; + struct EXEC exec; + char title[60]; /* "PlayStation(tm) Executable A1" */ +}; + + +struct DIRENTRY { + char name[20]; + long attr; + long size; + struct DIRENTRY *next; + long head; + char system[4]; +}; + + +extern struct ToT SysToT[32]; + +extern long SysClearRCnt[]; + +#ifndef NULL +#define NULL (0) +#endif + +#if defined(_LANGUAGE_C)||defined(LANGUAGE_C) +#define delete erase +#endif /* LANGUAGE_C */ + +#endif /* LANGUAGE_C||_LANGUAGE_C_PLUS_PLUS||__cplusplus||c_plusplus */ + +#endif /* _KERNEL_H */ + + diff --git a/toolchain/psyq-4_7/include/libapi.h b/toolchain/psyq-4_7/include/libapi.h new file mode 100644 index 0000000..628cc3c --- /dev/null +++ b/toolchain/psyq-4_7/include/libapi.h @@ -0,0 +1,134 @@ +#ifndef _LIBAPI_H_ +#define _LIBAPI_H_ + +/* + * File:libapi.h + * Copyright (C) 1997 by Sony Computer Entertainment Inc. + * All rights Reserved + */ +/* + * $PSLibId: Run-time Library Release 4.7$ + */ + +#ifndef _KERNEL_H +#include "kernel.h" +#endif + +/* don't change these macros and structures which is referred in controler code */ + +/* + * Prototypes + */ + +#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus) +extern "C" { +#endif + +/* prototypes added by suzu 96/03/01 and changed by hakama 96/06/06*/ + +extern long SetRCnt(unsigned long, unsigned short, long); +extern long GetRCnt(unsigned long); +extern long ResetRCnt(unsigned long); +extern long StartRCnt(unsigned long); +extern long StopRCnt(unsigned long); + +extern long OpenEvent(unsigned long,long,long,long (*func)()); +extern long CloseEvent(long); +extern long WaitEvent(long); +extern long TestEvent(long); +extern long EnableEvent(long); +extern long DisableEvent(long); +extern void DeliverEvent(unsigned long, unsigned long); +extern void UnDeliverEvent(unsigned long, unsigned long); + +extern long OpenTh(long (*func)(), unsigned long , unsigned long); +extern int CloseTh(long); +extern int ChangeTh(long); + +extern long open(char *, unsigned long); +extern long close(long); +extern long lseek(long, long, long); +extern long read(long, void *, long); +extern long write(long, void *, long); +extern long ioctl(long, long, long); +extern struct DIRENTRY * firstfile(char *, struct DIRENTRY *); +extern struct DIRENTRY * nextfile(struct DIRENTRY *); +extern long erase(char *); + + +extern long undelete(char *); +extern long format(char *); +extern long rename(char *, char *); +extern long cd(char *); + +extern long LoadTest(char *, struct EXEC *); +extern long Load(char *, struct EXEC *); +extern long Exec(struct EXEC *, long, char **); +extern long LoadExec(char *, unsigned long, unsigned long); + +extern long InitPAD(char *,long ,char *,long); +extern long StartPAD(void); +extern void StopPAD(void); +extern void EnablePAD(void); +extern void DisablePAD(void); + +extern void FlushCache(void); +extern void ReturnFromException(void); +extern int EnterCriticalSection(void); +extern void ExitCriticalSection(void); +extern void Exception(void); +extern void SwEnterCriticalSection(void); +extern void SwExitCriticalSection(void); + +extern unsigned long SetSp(unsigned long); +extern unsigned long GetSp( void ); +extern unsigned long GetGp( void ); +extern unsigned long GetCr( void ); +extern unsigned long GetSr( void ); +extern unsigned long GetSysSp(void); + +extern long SetConf(unsigned long,unsigned long,unsigned long); +extern void GetConf(unsigned long *,unsigned long *,unsigned long *); + +extern long _get_errno(void); +extern long _get_error(long); + +extern void SystemError( char, long); +extern void SetMem(long); + +extern long Krom2RawAdd( unsigned long ); +extern long Krom2RawAdd2(unsigned short); + +extern void _96_init(void); +extern void _96_remove(void); +extern void _boot(void); + +extern void ChangeClearPAD( long ); + +/* prototypes added by shino 96/05/22 */ +extern void InitCARD(long val); +extern long StartCARD(void); +extern long StopCARD(void); +extern void _bu_init(void); +extern long _card_info(long chan); +extern long _card_clear(long chan); +extern long _card_load(long chan); +extern long _card_auto(long val); +extern void _new_card(void); +extern long _card_status(long drv); +extern long _card_wait(long drv); +extern unsigned long _card_chan(void); +extern long _card_write(long chan, long block, unsigned char *buf); +extern long _card_read(long chan, long block, unsigned char *buf); +extern long _card_format(long chan); /* added by iwano 98/03/24 */ + + + +#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus) +} +#endif + +#endif /* _LIBAPI_H_ */ + +/* don't add stuff after this */ + diff --git a/toolchain/psyq-4_7/include/libcd.h b/toolchain/psyq-4_7/include/libcd.h new file mode 100644 index 0000000..57d4f46 --- /dev/null +++ b/toolchain/psyq-4_7/include/libcd.h @@ -0,0 +1,326 @@ +/* $PSLibId: Run-time Library Release 4.7$ */ +#ifndef _LIBCD_H_ +#define _LIBCD_H_ +/* + * (C) Copyright 1993/1994 Sony Computer Entertainment ,Tokyo,Japan. + * All Rights Reserved + * + * libcd.h: CD-ROM sub system hendler + * + * CD-ROM Primitive Command list: + * + * Symbol type Contents + * ------------------------------------------------------ + * CdlNop B NOP + * CdlSetloc B Set position + * CdlPlay B CD-DA Play + * CdlForward B Forward + * CdlBackward B Backward + * CdlReadN B Read with retry + * CdlStanby N Standby + * CdlStop N Stop + * CdlPause N Pause + * CdlMute B Mute on + * CdlDemute B Mute off + * CdlSetfilter B Set SubHeader filter + * CdlSetmode B Set mode + * CdlGetlocL B Get logical position + * CdlGetlocP B Get phisycal position + * CdlSeekL N Logical Seek + * CdlSeekP N Phisical Seek + * CdlReadS B Read without retry + * ------------------------------------------------------ + * B: Blocking, N: Non-Blocking operation + * + * + * Symbol arg result + * -------------------------------------------------------------- + * CdlNop - status + * CdlSetloc min,sec,sector status + * CdlPlay - status + * CdlForward - status + * CdlBackward - status + * CdlReadN - status + * CdlStanby - status + * CdlStop - status + * CdlPause - status + * CdlMute - status + * CdlDemute - status + * CdlSetfilter file,chan status + * CdlSetmode mode status + * CdlGetlocL - min,sec,sector,mode,file, chan + * CdlGetlocP - track,index,min,sec,frame, + * amin,asec,aframe + * CdlSeekL - status + * CdlSeekP - status + * CdlReadS - status + * -------------------------------------------------------------- + */ +/* + * CD-ROM Basic System + */ + +/* + * CD-ROM Mode (used int CdlSetmode) + */ +#define CdlModeStream 0x100 /* Normal Streaming */ +#define CdlModeStream2 0x120 /* SUB HEADER information includes */ +#define CdlModeSpeed 0x80 /* 0: normal speed 1: double speed */ +#define CdlModeRT 0x40 /* 0: ADPCM off 1: ADPCM on */ +#define CdlModeSize1 0x20 /* 0: 2048 byte 1: 2340byte */ +#define CdlModeSize0 0x10 /* 0: - 1: 2328byte */ +#define CdlModeSF 0x08 /* 0: Channel off 1: Channel on */ +#define CdlModeRept 0x04 /* 0: Report off 1: Report on */ +#define CdlModeAP 0x02 /* 0: AutoPause off 1: AutoPause on */ +#define CdlModeDA 0x01 /* 0: CD-DA off 1: CD-DA on */ + +/* + * Status Contents + */ +#define CdlStatPlay 0x80 /* playing CD-DA */ +#define CdlStatSeek 0x40 /* seeking */ +#define CdlStatRead 0x20 /* reading data sectors */ +#define CdlStatShellOpen 0x10 /* once shell open */ +#define CdlStatSeekError 0x04 /* seek error detected */ +#define CdlStatStandby 0x02 /* spindle motor rotating */ +#define CdlStatError 0x01 /* command error detected */ + +/* + * Macros for CdGetDiskType() + */ +#define CdlStatNoDisk 0 +#define CdlOtherFormat 1 +#define CdlCdromFormat 2 + +/* + * CD-ROM Primitive Commands + */ +#define CdlNop 0x01 +#define CdlSetloc 0x02 +#define CdlPlay 0x03 +#define CdlForward 0x04 +#define CdlBackward 0x05 +#define CdlReadN 0x06 +#define CdlStandby 0x07 +#define CdlStop 0x08 +#define CdlPause 0x09 +#define CdlMute 0x0b +#define CdlDemute 0x0c +#define CdlSetfilter 0x0d +#define CdlSetmode 0x0e +#define CdlGetparam 0x0f +#define CdlGetlocL 0x10 +#define CdlGetlocP 0x11 +#define CdlGetTN 0x13 +#define CdlGetTD 0x14 +#define CdlSeekL 0x15 +#define CdlSeekP 0x16 +#define CdlReadS 0x1B + +/* + * Interrupts + */ +#define CdlNoIntr 0x00 /* No interrupt */ +#define CdlDataReady 0x01 /* Data Ready */ +#define CdlComplete 0x02 /* Command Complete */ +#define CdlAcknowledge 0x03 /* Acknowledge (reserved) */ +#define CdlDataEnd 0x04 /* End of Data Detected */ +#define CdlDiskError 0x05 /* Error Detected */ + +/* + * Library Macros + */ +#ifndef btoi +#define btoi(b) ((b)/16*10 + (b)%16) /* BCD to u_char */ +#endif +#ifndef itob +#define itob(i) ((i)/10*16 + (i)%10) /* u_char to BCD */ +#endif + +#define CdSeekL(p) CdControl(CdlSeekL, (u_char *)p, 0) +#define CdSeekP(p) CdControl(CdlSeekP, (u_char *)p, 0) +#define CdStandby() CdControl(CdlStandby, 0, 0) +#define CdPause() CdControl(CdlPause, 0, 0) +#define CdStop() CdControl(CdlStop, 0, 0) +#define CdMute() CdControl(CdlMute, 0, 0) +#define CdDeMute() CdControl(CdlDemute, 0, 0) +#define CdForward() CdControl(CdlForward, 0, 0) +#define CdBackward() CdControl(CdlBackward, 0, 0) + +/* + * Position + */ +#define CdlMAXTOC 100 + +/* + * Callback + */ + +typedef void (*CdlCB)(u_char,u_char *); + +/* + * Location + */ +typedef struct { + u_char minute; /* minute (BCD) */ + u_char second; /* second (BCD) */ + u_char sector; /* sector (BCD) */ + u_char track; /* track (void) */ +} CdlLOC; + +/* + * ADPCM Filter + */ +typedef struct { + u_char file; /* file ID (always 1) */ + u_char chan; /* channel ID */ + u_short pad; +} CdlFILTER; + +/* + * Attenuator + */ +typedef struct { + u_char val0; /* volume for CD(L) -> SPU (L) */ + u_char val1; /* volume for CD(L) -> SPU (R) */ + u_char val2; /* volume for CD(R) -> SPU (L) */ + u_char val3; /* volume for CD(R) -> SPU (R) */ +} CdlATV; + +/* + * Low Level File System for CdSearchFile() + */ +#define CdlMAXFILE 64 /* max number of files in a directory */ +#define CdlMAXDIR 128 /* max number of total directories */ +#define CdlMAXLEVEL 8 /* max levels of directories */ + +typedef struct { + CdlLOC pos; /* file location */ + u_long size; /* file size */ + char name[16]; /* file name (body) */ +} CdlFILE; + + +/*#define MULTI_INTERRUPT */ +#ifndef MULTI_INTERRUPT +#define pauseMULI() +#define restartMULI() +#endif + +#ifndef _LIBDS_H_ +/* + * Streaming Structures + */ +typedef struct { + u_short id; + u_short type; + u_short secCount; + u_short nSectors; + u_long frameCount; + u_long frameSize; + + u_short width; + u_short height; + u_long dummy1; + u_long dummy2; + CdlLOC loc; +} StHEADER; /* CD-ROM STR structure */ + +#define StFREE 0x0000 +#define StREWIND 0x0001 +#define StCOMPLETE 0x0002 +#define StBUSY 0x0003 +#define StLOCK 0x0004 + +#define EDC 0 +#define SECTOR_SIZE (512) /* Sector Size (word) */ +#define HEADER_SIZE (8) /* Header Size (word) */ + +#define StSTATUS 0x00 +#define StVER 0x00 +#define StTYPE 0x01 +#define StSECTOR_OFFSET 0x02 +#define StSECTOR_SIZE 0x03 +#define StFRAME_NO 0x04 +#define StFRAME_SIZE 0x06 + +#define StMOVIE_WIDTH 0x08 +#define StMOVIE_HEIGHT 0x09 + + +/* + * Prototypes for Streaming + */ +#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus) +extern "C" { +#endif +void StSetRing(u_long *ring_addr,u_long ring_size); +void StClearRing(void); +void StUnSetRing(void); +void StSetStream(u_long mode,u_long start_frame,u_long end_frame, + void (*func1)(),void (*func2)()); +void StSetEmulate(u_long *addr,u_long mode,u_long start_frame, + u_long end_frame,void (*func1)(),void (*func2)()); +u_long StFreeRing(u_long *base); +u_long StGetNext(u_long **addr,u_long **header); +u_long StGetNextS(u_long **addr,u_long **header); +u_short StNextStatus(u_long **addr,u_long **header); +void StRingStatus(short *free_sectors,short *over_sectors); +void StSetMask(u_long mask,u_long start,u_long end); +void StCdInterrupt(void); +int StGetBackloc(CdlLOC *loc); +int StSetChannel(u_long channel); +#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus) +} +#endif +#endif /* ifndef _LIBDS_H_ */ + + +/* + * Prototypes + */ +#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus) +extern "C" { +#endif + +void CdFlush(void); +CdlFILE *CdSearchFile(CdlFILE *fp, char *name); +CdlLOC *CdIntToPos(int i, CdlLOC *p) ; +char *CdComstr(u_char com); +char *CdIntstr(u_char intr); +int CdControl(u_char com, u_char *param, u_char *result); +int CdControlB(u_char com, u_char *param, u_char *result); +int CdControlF(u_char com, u_char *param); +int CdGetSector(void *madr, int size); +int CdGetSector2( void* madr, int size ); +int CdDataSync(int mode); +int CdGetToc(CdlLOC *loc) ; +int CdPlay(int mode, int *track, int offset); +int CdMix(CdlATV *vol); +int CdPosToInt(CdlLOC *p); +int CdRead(int sectors, u_long *buf, int mode); +int CdRead2(long mode); +int CdReadFile(char *file, u_long *addr, int nbyte); +int CdReadSync(int mode, u_char *result); +int CdReady(int mode, u_char *result) ; +int CdSetDebug(int level); +int CdSync(int mode, u_char *result) ; +void (*CdDataCallback(void (*func)())); +CdlCB CdReadCallback(CdlCB func); +CdlCB CdReadyCallback(CdlCB func); +CdlCB CdSyncCallback(CdlCB func); +int CdInit(void); +int CdReset(int mode); +int CdStatus(void); +int CdLastCom(void); +CdlLOC *CdLastPos(void); +int CdMode(void); +int CdDiskReady( int mode ); +int CdGetDiskType( void ); +struct EXEC *CdReadExec(char *file); +void CdReadBreak( void ); + +#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus) +} +#endif +#endif /* _LIBCD_H_ */ diff --git a/toolchain/psyq-4_7/include/libcomb.h b/toolchain/psyq-4_7/include/libcomb.h new file mode 100644 index 0000000..b309aa7 --- /dev/null +++ b/toolchain/psyq-4_7/include/libcomb.h @@ -0,0 +1,67 @@ +/* + * $PSLibId: Run-time Library Release 4.7$ + */ +/* + * File:libcomb.h +*/ +#ifndef _LIBCOMB_H_ +#define _LIBCOMB_H_ + +/* Status bits */ +#define COMB_CTS 0x100 +#define COMB_DSR 0x80 +#define COMB_FE 0x20 +#define COMB_OE 0x10 +#define COMB_PERROR 0x8 +#define COMB_TXU 0x4 +#define COMB_RXRDY 0x2 +#define COMB_TXRDY 0x1 + + +/* Control bits */ +#define COMB_BIT_DTR 0x1 +#define COMB_BIT_RTS 0x2 + +/* Macros */ +#define CombSioStatus() _comb_control(0,0,0) /* Return serial controller status */ +#define CombControlStatus() _comb_control(0,1,0) /* Return control line status */ +#define CombGetMode() _comb_control(0,2,0) /* Return communication mode */ +#define CombGetBPS() _comb_control(0,3,0) /* Return transfer rate */ +#define CombGetPacketSize() _comb_control(0,4,0) /* Return current packet size */ +#define CombBytesToWrite() _comb_control(0,5,0) /* Return # bytes remaining in write buffer */ +#define CombBytesToRead() _comb_control(0,5,1) /* Return # bytes remaining to be read */ +#define CombBytesRemaining(a) _comb_control(0,5,a) /* Return # bytes remaining to read or write */ +#define CombAsyncRequest(a) _comb_control(0,6,a) /* Return async read/write request */ + +#define CombSetControl(a) _comb_control(1,1,a) /* Set the control line status */ +#define CombSetMode(a) _comb_control(1,2,a) /* Sets communications mode */ +#define CombSetBPS(a) _comb_control(1,3,a) /* Sets the transfer rate */ +#define CombSetPacketSize(a) _comb_control(1,4,a) /* Sets the packet size */ + +#define CombReset() _comb_control(2,0,0) /* Reset serial controller */ +#define CombResetError() _comb_control(2,1,0) /* Reset error bits */ +#define CombCancelWrite() _comb_control(2,2,0) /* Cancel async write request */ +#define CombCancelRead() _comb_control(2,3,0) /* Cancel async read request */ + +#define CombSetRTS(a) _comb_control(3,0,a) /* Set RTS to 'a' */ +#define CombCTS() _comb_control(3,1,0) /* Return status of CTS */ + +#define CombWaitCallback(a) _comb_control(4,0,a) /* Install wait callback function */ + +#define CombResetVBLANK() _comb_control(5,0,0) /* Restart VBLANK signal */ + +/* Prototypes */ +#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus) +extern "C" { +#endif + +extern void AddCOMB(void); +extern void DelCOMB(void); +extern void ChangeClearSIO(long); +extern long _comb_control(unsigned long,unsigned long,unsigned long); + +#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus) +} +#endif +#endif /*_LIBCOMB_H_*/ + diff --git a/toolchain/psyq-4_7/include/libds.h b/toolchain/psyq-4_7/include/libds.h new file mode 100644 index 0000000..30072f5 --- /dev/null +++ b/toolchain/psyq-4_7/include/libds.h @@ -0,0 +1,286 @@ +/* $PSLibId: Run-time Library Release 4.7$ */ +/* + * libds.h + * Copyright(C) 1996 1997, Sony Computer Entertainment Inc. + * All Rights Reserved. + */ + +#ifndef _LIBDS_H_ +#define _LIBDS_H_ + +#include + +/* + * CD-ROM Mode (used int CdlSetmode) + */ +#define DslModeStream 0x100 /* Normal Streaming */ +#define DslModeStream2 0x120 /* SUB HEADER information includes */ +#define DslModeSpeed 0x80 /* 0: normal speed 1: double speed */ +#define DslModeRT 0x40 /* 0: ADPCM off 1: ADPCM on */ +#define DslModeSize1 0x20 /* 0: 2048 byte 1: 2340byte */ +#define DslModeSize0 0x10 /* 0: - 1: 2328byte */ +#define DslModeSF 0x08 /* 0: Channel off 1: Channel on */ +#define DslModeRept 0x04 /* 0: Report off 1: Report on */ +#define DslModeAP 0x02 /* 0: AutoPause off 1: AutoPause on */ +#define DslModeDA 0x01 /* 0: CD-DA off 1: CD-DA on */ + +/* + * Status contents + */ +#define DslStatPlay 0x80 /* playing CD-DA */ +#define DslStatSeek 0x40 /* seeking */ +#define DslStatRead 0x20 /* reading data sectors */ +#define DslStatShellOpen 0x10 /* once shell open */ +#define DslStatSeekError 0x04 /* seek error detected */ +#define DslStatStandby 0x02 /* spindle motor rotating */ +#define DslStatError 0x01 /* command error detected */ + +/* + * Macros for DsGetDiskType() + */ +#define DslStatNoDisk 0x01 +#define DslOtherFormat 0x02 +#define DslCdromFormat 0x04 + +/* + * CD-ROM Primitive Commands + */ +#define DslNop 0x01 /* no operation */ +#define DslSetloc 0x02 /* set head position */ +#define DslPlay 0x03 /* play CD-DA */ +#define DslForward 0x04 /* forward DA play */ +#define DslBackward 0x05 /* backward DA play */ +#define DslReadN 0x06 /* read data with retry */ +#define DslStandby 0x07 /* start spindle motor */ +#define DslStop 0x08 /* stop spindle motor */ +#define DslPause 0x09 /* pause */ +#define DslMute 0x0b /* mute on */ +#define DslDemute 0x0c /* mute off */ +#define DslSetfilter 0x0d /* set subheader filter */ +#define DslSetmode 0x0e /* set mode */ +#define DslGetparam 0x0f /* get mode */ +#define DslGetlocL 0x10 /* get head position (data sector) */ +#define DslGetlocP 0x11 /* get head position (DA sector) */ +#define DslGetTN 0x13 /* get number of TOC */ +#define DslGetTD 0x14 /* get TOC data */ +#define DslSeekL 0x15 /* logical seek */ +#define DslSeekP 0x16 /* phisical seek */ +#define DslReadS 0x1B /* read data without retry */ + +/* + * Interrupts + */ +#define DslNoIntr 0x00 /* No interrupt */ +#define DslDataReady 0x01 /* Data Ready */ +#define DslComplete 0x02 /* Command Complete */ +#define DslAcknowledge 0x03 /* Acknowledge (reserved) */ +#define DslDataEnd 0x04 /* End of Data Detected */ +#define DslDiskError 0x05 /* Error Detected */ + +#define DslNoResult 0x06 +#define DslFinished 0x07 + +#ifndef btoi +#define btoi( b ) ( ( b ) / 16 * 10 + ( b ) % 16 ) +#endif +#ifndef itob +#define itob( i ) ( ( i ) / 10 * 16 + ( i ) % 10 ) +#endif + +/* + * Position + */ +#define DslMAXTOC 100 + +/* + * Callback + */ +typedef void ( *DslCB )( u_char, u_char* ); +typedef void ( *DslRCB )( u_char, u_char*, u_long* ); + +/* + * Location + */ +typedef struct { + u_char minute; /* minute (BCD) */ + u_char second; /* second (BCD) */ + u_char sector; /* sector (BCD) */ + u_char track; /* track (void) */ +} DslLOC; + +/* + * ADPCM Filter + */ +typedef struct { + u_char file; /* file ID (always 1) */ + u_char chan; /* channel ID */ + u_short pad; +} DslFILTER; + +/* + * Attenuator + */ +typedef struct { + u_char val0; /* volume for CD(L) -> SPU (L) */ + u_char val1; /* volume for CD(L) -> SPU (R) */ + u_char val2; /* volume for CD(R) -> SPU (L) */ + u_char val3; /* volume for CD(R) -> SPU (R) */ +} DslATV; + +/* + * Low Level File System for DsSearchFile() + */ +#define DslMAXFILE 64 /* max number of files in a directory */ +#define DslMAXDIR 128 /* max number of total directories */ +#define DslMAXLEVEL 8 /* max levels of directories */ + +typedef struct { + DslLOC pos; /* file location */ + u_long size; /* file size */ + char name[ 16 ]; /* file name (body) */ +} DslFILE; + +#ifndef _LIBCD_H_ +/* + * Streaming Structures + */ +typedef struct { + u_short id; + u_short type; + u_short secCount; + u_short nSectors; + u_long frameCount; + u_long frameSize; + + u_short width; + u_short height; + u_long dummy1; + u_long dummy2; + DslLOC loc; +} StHEADER; /* CD-ROM STR structure */ + +#define StFREE 0x0000 +#define StREWIND 0x0001 +#define StCOMPLETE 0x0002 +#define StBUSY 0x0003 +#define StLOCK 0x0004 + +#define EDC 0 +#define SECTOR_SIZE ( 512 ) /* Sector Size (word) */ +#define HEADER_SIZE ( 8 ) /* Header Size (word) */ + +#define StSTATUS 0x00 +#define StVER 0x00 +#define StTYPE 0x01 +#define StSECTOR_OFFSET 0x02 +#define StSECTOR_SIZE 0x03 +#define StFRAME_NO 0x04 +#define StFRAME_SIZE 0x06 + +#define StMOVIE_WIDTH 0x08 +#define StMOVIE_HEIGHT 0x09 + +/* + * streaming library prototype declarations */ + +#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus) +extern "C" { +#endif + +void StSetRing( u_long* ring_addr, u_long ring_size ); +void StClearRing( void ); +void StUnSetRing( void ); +void StSetStream( u_long mode, u_long start_frame, u_long end_frame, + void ( *func1 )(), void ( *func2 )() ); +void StSetEmulate( u_long* addr, u_long mode, u_long start_frame, + u_long end_frame, void ( *func1 )(), void ( *func2 )() ); +u_long StFreeRing( u_long* base ); +u_long StGetNext( u_long** addr, u_long** header ); +u_long StGetNextS( u_long** addr, u_long** header ); +u_short StNextStatus( u_long** addr, u_long** header ); +void StRingStatus( short* free_sectors, short* over_sectors ); +void StSetMask( u_long mask, u_long start, u_long end ); +void StCdInterrupt( void ); +int StGetBackloc( DslLOC* loc ); +int StSetChannel( u_long channel ); + +#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus) +} +#endif + +#endif /* _LIBCD_H_ */ + +/* **** system status **** */ + +#define DslReady 1 +#define DslBusy 2 +#define DslNoCD 3 + +/* **** maximum number of commands that can be added to the queue **** */ +#define DslMaxCOMMANDS 8 + +/***** maximum number of command execution results **** */ +#define DslMaxRESULTS 8 + +/***** DS function prototype **** */ + +#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus) +extern "C" { +#endif + +int DsInit( void ); +int DsReset( void ); +void DsClose( void ); +int DsCommand( u_char com, u_char* param, DslCB cbsync, int count ); +int DsPacket( u_char mode, DslLOC* pos, u_char com, DslCB func, int count ); +DslCB DsSyncCallback( DslCB func ); +DslCB DsReadyCallback( DslCB func ); +int DsSync( int id, u_char* result ); +int DsReady( u_char* result ); +void DsFlush( void ); +int DsSystemStatus( void ); +int DsQueueLen( void ); +u_char DsStatus( void ); +int DsShellOpen( void ); + +int DsMix( DslATV* vol ); +int DsGetSector( void* madr, int size ); +int DsGetSector2( void* madr, int size ); +int DsGetToc( DslLOC* loc ); +void ( *DsDataCallback( void ( *func )() ) ); +int DsDataSync( int mode ); +DslLOC* DsIntToPos( int i, DslLOC* p ); +int DsPosToInt( DslLOC* p ); +int DsSetDebug( int level ); +DslLOC* DsLastPos( DslLOC* p ); +u_char DsLastCom( void ); + +char* DsComstr( u_char com ); +char* DsIntstr( u_char intr ); + +int DsStartReadySystem( DslRCB func, int count ); +void DsEndReadySystem( void ); +int DsReadySystemMode( int mode ); + +int DsControlF( u_char com, u_char* param ); +int DsControl( u_char com, u_char* param, u_char* result ); +int DsControlB( u_char com, u_char* param, u_char* result ); + +int DsRead( DslLOC* pos, int sectors, u_long* buf, int mode ); +int DsReadSync( u_char* result ); +DslCB DsReadCallback( DslCB func ); +void DsReadBreak( void ); +int DsRead2( DslLOC* pos, int mode ); + +DslFILE* DsSearchFile( DslFILE* fp, char* name ); +int DsReadFile( char* file, u_long* addr, int nbyte ); +struct EXEC* DsReadExec( char* file ); +int DsPlay( int mode, int* tracks, int offset ); + +int DsGetDiskType( void ); + +#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus) +} +#endif + +#endif /* _LIBDS_H_ */ diff --git a/toolchain/psyq-4_7/include/libetc.h b/toolchain/psyq-4_7/include/libetc.h new file mode 100644 index 0000000..8a524df --- /dev/null +++ b/toolchain/psyq-4_7/include/libetc.h @@ -0,0 +1,81 @@ +/* $PSLibId: Run-time Library Release 4.7$ */ +#ifndef _LIBETC_H_ +#define _LIBETC_H_ + +/* + * (C) Copyright 1993/1994 Sony Corporation,Tokyo,Japan. All Rights Reserved + * + * libetc.h: Pad Interface + */ +extern int PadIdentifier; +/* + * PAD I/O (SIO Pad) + */ +#define PADLup (1<<12) +#define PADLdown (1<<14) +#define PADLleft (1<<15) +#define PADLright (1<<13) +#define PADRup (1<< 4) +#define PADRdown (1<< 6) +#define PADRleft (1<< 7) +#define PADRright (1<< 5) +#define PADi (1<< 9) +#define PADj (1<<10) +#define PADk (1<< 8) +#define PADl (1<< 3) +#define PADm (1<< 1) +#define PADn (1<< 2) +#define PADo (1<< 0) +#define PADh (1<<11) +#define PADL1 PADn +#define PADL2 PADo +#define PADR1 PADl +#define PADR2 PADm +#define PADstart PADh +#define PADselect PADk + +#define MOUSEleft (1<<3) +#define MOUSEright (1<<2) + +/* + * PAD utility macro: _PAD(x,y) + * x: controller ID (0 or 1) + * y: PAD assign macro + * + * Example: _PAD(0,PADstart) ... PADstart of controller 1 + * _PAD(1,PADLup) ... PADLup of controller 2 + */ +#define _PAD(x,y) ((y)<<((x)<<4)) + +/* scratch pad address 0x1f800000 - 0x1f800400 */ +#define getScratchAddr(offset) ((u_long *)(0x1f800000+(offset)*4)) + +/* + * Video Mode: NTSC/PAL + */ +#define MODE_NTSC 0 +#define MODE_PAL 1 + +/* + * Prototypes + */ +#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus) +extern "C" { +#endif +int CheckCallback(void) ; +void PadInit(int mode); +int ResetCallback(void) ; +int RestartCallback(void) ; +int StopCallback(void) ; +int VSync(int mode); +int VSyncCallback(void (*f)(void)) ; +long GetVideoMode (void); +long SetVideoMode (long mode); +u_long PadRead(int id); +void PadStop(void); +#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus) +} +#endif +#endif /* _LIBETC_H_ */ + + diff --git a/toolchain/psyq-4_7/include/libgpu.h b/toolchain/psyq-4_7/include/libgpu.h new file mode 100644 index 0000000..5bf8536 --- /dev/null +++ b/toolchain/psyq-4_7/include/libgpu.h @@ -0,0 +1,824 @@ +/* $PSLibId: Run-time Library Release 4.7$ */ +#ifndef _LIBGPU_H_ +#define _LIBGPU_H_ +/* + * (C) Copyright 1993-1995 Sony Corporation,Tokyo,Japan. All Rights Reserved + * + * libgpu.h: Graphic Primitive Structures Database + * + * Primitive list: + * + * Name |Size*1|Shade |Vertex |Texture| Function + * ---------+------+-------+-------+-------+------------------------ + * POLY_F3 | 5 |Flat | 3 |OFF | Flat Triangle + * POLY_FT3 | 8 |Flat | 3 |ON | Flat Textured Triangle + * POLY_G3 | 7 |Gouraud| 3 |OFF | Gouraud Triangle + * POLY_GT3 |10 |Gouraud| 3 |ON | Gouraud Textured Triangle + * POLY_F4 | 6 |Flat | 4 |OFF | Flat Quadrangle + * POLY_FT4 |10 |Flat | 4 |ON | Flat Textured Quadrangle + * POLY_G4 | 9 |Gouraud| 4 |OFF | Gouraud Quadrangle + * POLY_GT4 |13 |Gouraud| 4 |ON | Gouraud Textured Quadrangle + * ---------+------+-------+-------+-------+------------------------ + * LINE_F2 | 4 |Flat | 2 | - | unconnected Flat Line + * LINE_G2 | 5 |Gouraud| 2 | - | unconnected Gouraud Line + * LINE_F3 | 6 |Flat | 3 | - | 3-connected Flat Line + * LINE_G3 | 8 |Gouraud| 3 | - | 3-connected Gouraud Line + * LINE_F4 | 7 |Flat | 4 | - | 4-connected Flat Line + * LINE_G4 |10 |Gouraud| 4 | - | 4-connected Gouraud Line + * ---------+------+-------+-------+-------+------------------------ + * SPRT | 5 |Flat | 1 |ON | free size Sprite + * SPRT_16 | 4 |Flat | 1 |ON | 16x16 Sprite + * SPRT_8 | 4 |Flat | 1 |ON | 8x8 Sprite + * ---------+------+-------+-------+-------+------------------------ + * TILE | 4 |Flat | 1 |OFF | free size Sprite + * TILE_16 | 3 |Flat | 1 |OFF | 16x16 Sprite + * TILE_8 | 3 |Flat | 1 |OFF | 8x8 Sprite + * TILE_1 | 3 |Flat | 1 |OFF | 1x1 Sprite + * ---------+------+-------+-------+-------+------------------------ + * DR_TWIN | 3 | - | - | - | Texture Window + * DR_AREA | 3 | - | - | - | Drawing Area + * DR_OFFSET| 3 | - | - | - | Drawing Offset + * DR_MODE | 3 | - | - | - | Drawing Mode + * DR_ENV |16 | - | - | - | Drawing Environment + * DR_MOVE | 6 | - | - | - | MoveImage + * DR_LOAD |17 | - | - | - | LoadImage + * DR_TPAGE | 2 | - | - | - | Drawing TPage + * DR_STP | 3 | - | - | - | Drawing STP + * + * *1: in long-word + * + * Texture Attributes: + * abr: ambient rate + * abr 0 1 2 3 + * ------------------------------------- + * Front 0.5 1.0 0.5 -1.0 + * Back 0.5 1.0 1.0 1.0 + * + * tp: texture mode + * tp 0 1 2 + * ----------------------------- + * depth 4bit 8bit 16bit + * color CLUT CLUT DIRECT + */ + +/* + * Externals + */ +extern int (*GPU_printf)(char *fmt, ...); /* printf() object */ + +/* + * Time-out Cycle + */ +#define WAIT_TIME 0x800000 + +/* + * General Macros + */ +#define limitRange(x, l, h) ((x)=((x)<(l)?(l):(x)>(h)?(h):(x))) + +/* + * Set/Add Vector/Rectangle Attributes + */ +#define setVector(v, _x, _y, _z) \ + (v)->vx = _x, (v)->vy = _y, (v)->vz = _z + +#define applyVector(v, _x, _y, _z, op) \ + (v)->vx op _x, (v)->vy op _y, (v)->vz op _z + +#define copyVector(v0, v1) \ + (v0)->vx = (v1)->vx, (v0)->vy = (v1)->vy, (v0)->vz = (v1)->vz + +#define addVector(v0, v1) \ + (v0)->vx += (v1)->vx, \ + (v0)->vy += (v1)->vy, \ + (v0)->vz += (v1)->vz + +#define dumpVector(str, v) \ + GPU_printf("%s=(%d,%d,%d)\n", str, (v)->vx, (v)->vy, (v)->vz) + +#define dumpMatrix(x) \ + GPU_printf("\t%5d,%5d,%5d\n",(x)->m[0][0],(x)->m[0][1],(x)->m[0][2]),\ + GPU_printf("\t%5d,%5d,%5d\n",(x)->m[1][0],(x)->m[1][1],(x)->m[1][2]),\ + GPU_printf("\t%5d,%5d,%5d\n",(x)->m[2][0],(x)->m[2][1],(x)->m[2][2]) + +#define setRECT(r, _x, _y, _w, _h) \ + (r)->x = (_x),(r)->y = (_y),(r)->w = (_w),(r)->h = (_h) + +/* + * Set Primitive Attributes + */ +#define setTPage(p,tp,abr,x,y) \ + ((p)->tpage = getTPage(tp,abr,x,y)) + +#define setClut(p,x,y) \ + ((p)->clut = getClut(x,y)) + +/* + * Set Primitive Colors + */ +#define setRGB0(p,_r0,_g0,_b0) \ + (p)->r0 = _r0,(p)->g0 = _g0,(p)->b0 = _b0 + +#define setRGB1(p,_r1,_g1,_b1) \ + (p)->r1 = _r1,(p)->g1 = _g1,(p)->b1 = _b1 + +#define setRGB2(p,_r2,_g2,_b2) \ + (p)->r2 = _r2,(p)->g2 = _g2,(p)->b2 = _b2 + +#define setRGB3(p,_r3,_g3,_b3) \ + (p)->r3 = _r3,(p)->g3 = _g3,(p)->b3 = _b3 + +/* + * Set Primitive Screen Points + */ +#define setXY0(p,_x0,_y0) \ + (p)->x0 = (_x0), (p)->y0 = (_y0) \ + +#define setXY2(p,_x0,_y0,_x1,_y1) \ + (p)->x0 = (_x0), (p)->y0 = (_y0), \ + (p)->x1 = (_x1), (p)->y1 = (_y1) + +#define setXY3(p,_x0,_y0,_x1,_y1,_x2,_y2) \ + (p)->x0 = (_x0), (p)->y0 = (_y0), \ + (p)->x1 = (_x1), (p)->y1 = (_y1), \ + (p)->x2 = (_x2), (p)->y2 = (_y2) + +#define setXY4(p,_x0,_y0,_x1,_y1,_x2,_y2,_x3,_y3) \ + (p)->x0 = (_x0), (p)->y0 = (_y0), \ + (p)->x1 = (_x1), (p)->y1 = (_y1), \ + (p)->x2 = (_x2), (p)->y2 = (_y2), \ + (p)->x3 = (_x3), (p)->y3 = (_y3) + +#define setXYWH(p,_x0,_y0,_w,_h) \ + (p)->x0 = (_x0), (p)->y0 = (_y0), \ + (p)->x1 = (_x0)+(_w), (p)->y1 = (_y0), \ + (p)->x2 = (_x0), (p)->y2 = (_y0)+(_h), \ + (p)->x3 = (_x0)+(_w), (p)->y3 = (_y0)+(_h) + +/* + * Set Primitive Width/Height + */ +#define setWH(p,_w,_h) (p)->w = _w, (p)->h = _h + +/* + * Set Primitive Texture Points + */ +#define setUV0(p,_u0,_v0) \ + (p)->u0 = (_u0), (p)->v0 = (_v0) \ + +#define setUV3(p,_u0,_v0,_u1,_v1,_u2,_v2) \ + (p)->u0 = (_u0), (p)->v0 = (_v0), \ + (p)->u1 = (_u1), (p)->v1 = (_v1), \ + (p)->u2 = (_u2), (p)->v2 = (_v2) + +#define setUV4(p,_u0,_v0,_u1,_v1,_u2,_v2,_u3,_v3) \ + (p)->u0 = (_u0), (p)->v0 = (_v0), \ + (p)->u1 = (_u1), (p)->v1 = (_v1), \ + (p)->u2 = (_u2), (p)->v2 = (_v2), \ + (p)->u3 = (_u3), (p)->v3 = (_v3) + +#define setUVWH(p,_u0,_v0,_w,_h) \ + (p)->u0 = (_u0), (p)->v0 = (_v0), \ + (p)->u1 = (_u0)+(_w), (p)->v1 = (_v0), \ + (p)->u2 = (_u0), (p)->v2 = (_v0)+(_h), \ + (p)->u3 = (_u0)+(_w), (p)->v3 = (_v0)+(_h) + + +/* + * Dump Primivie Parameters + */ +#define dumpRECT(r) \ + GPU_printf("(%d,%d)-(%d,%d)\n", (r)->x,(r)->y,(r)->w,(r)->h) + +#define dumpWH(p) GPU_printf("(%d,%d)\n", (p)->w, (p)->h ) +#define dumpXY0(p) GPU_printf("(%d,%d)\n", (p)->x0, (p)->y0) +#define dumpUV0(p) GPU_printf("(%d,%d)\n", (p)->u0, (p)->v0) + +#define dumpXY2(p) \ + GPU_printf("(%d,%d)-(%d,%d)\n", \ + (p)->x0, (p)->y0, (p)->x1, (p)->y1) + +#define dumpXY3(p) \ + GPU_printf("(%d,%d)-(%d,%d)-(%d,%d)\n", \ + (p)->x0, (p)->y0, (p)->x1, (p)->y1, \ + (p)->x2, (p)->y2) + +#define dumpUV3(p) \ + GPU_printf("(%d,%d)-(%d,%d)-(%d,%d)\n", \ + (p)->u0, (p)->v0, (p)->u1, (p)->v1, \ + (p)->u2, (p)->v2) + +#define dumpXY4(p) \ + GPU_printf("(%d,%d)-(%d,%d)-(%d,%d)-(%d,%d)\n", \ + (p)->x0, (p)->y0, (p)->x1, (p)->y1, \ + (p)->x2, (p)->y2, (p)->x3, (p)->y3) + +#define dumpUV4(p) \ + GPU_printf("(%d,%d)-(%d,%d)-(%d,%d)-(%d,%d)\n", \ + (p)->u0, (p)->v0, (p)->u1, (p)->v1, \ + (p)->u2, (p)->v2, (p)->u3, (p)->v3) + +#define dumpRGB0(p) \ + GPU_printf("(%3d,%3d,%3d)\n", (p)->r0, (p)->g0, (p)->b0) + +#define dumpRGB1(p) \ + GPU_printf("(%3d,%3d,%3d)\n", (p)->r1, (p)->g1, (p)->b1) + +#define dumpRGB2(p) \ + GPU_printf("(%3d,%3d,%3d)\n", (p)->r2, (p)->g2, (p)->b2) + +#define dumpRGB3(p) \ + GPU_printf("(%3d,%3d,%3d)\n", (p)->r3, (p)->g3, (p)->b3) + +/* + * Primitive Handling Macros + */ +#define setlen( p, _len) (((P_TAG *)(p))->len = (u_char)(_len)) +#define setaddr(p, _addr) (((P_TAG *)(p))->addr = (u_long)(_addr)) +#define setcode(p, _code) (((P_TAG *)(p))->code = (u_char)(_code)) + +#define getlen(p) (u_char)(((P_TAG *)(p))->len) +#define getcode(p) (u_char)(((P_TAG *)(p))->code) +#define getaddr(p) (u_long)(((P_TAG *)(p))->addr) + +#define nextPrim(p) (void *)((((P_TAG *)(p))->addr)|0x80000000) +#define isendprim(p) ((((P_TAG *)(p))->addr)==0xffffff) + +#define addPrim(ot, p) setaddr(p, getaddr(ot)), setaddr(ot, p) +#define addPrims(ot, p0, p1) setaddr(p1, getaddr(ot)),setaddr(ot, p0) + +#define catPrim(p0, p1) setaddr(p0, p1) +#define termPrim(p) setaddr(p, 0xffffffff) + +#define setSemiTrans(p, abe) \ + ((abe)?setcode(p, getcode(p)|0x02):setcode(p, getcode(p)&~0x02)) + +#define setShadeTex(p, tge) \ + ((tge)?setcode(p, getcode(p)|0x01):setcode(p, getcode(p)&~0x01)) + +#define getTPage(tp, abr, x, y) \ + ((((tp)&0x3)<<7)|(((abr)&0x3)<<5)|(((y)&0x100)>>4)|(((x)&0x3ff)>>6)| \ + (((y)&0x200)<<2)) + +#define getClut(x, y) \ + (((y)<<6)|(((x)>>4)&0x3f)) + +#define dumpTPage(tpage) \ + GPU_printf("tpage: (%d,%d,%d,%d)\n", \ + ((tpage)>>7)&0x003,((tpage)>>5)&0x003, \ + ((tpage)<<6)&0x7c0, \ + (((tpage)<<4)&0x100)+(((tpage)>>2)&0x200)) + +#define dumpClut(clut) \ + GPU_printf("clut: (%d,%d)\n", (clut&0x3f)<<4, (clut>>6)) + +#define _get_mode(dfe, dtd, tpage) \ + ((0xe1000000)|((dtd)?0x0200:0)| \ + ((dfe)?0x0400:0)|((tpage)&0x9ff)) + +#define setDrawTPage(p, dfe, dtd, tpage) \ + setlen(p, 1), \ + ((u_long *)(p))[1] = _get_mode(dfe, dtd, tpage) + +#define _get_tw(tw) \ + (tw ? ((0xe2000000)|((((tw)->y&0xff)>>3)<<15)| \ + ((((tw)->x&0xff)>>3)<<10)|(((~((tw)->h-1)&0xff)>>3)<<5)| \ + (((~((tw)->w-1)&0xff)>>3))) : 0) + +#define setTexWindow(p, tw) \ + setlen(p, 2), \ + ((u_long *)(p))[1] = _get_tw(tw), \ + ((u_long *)(p))[2] = 0 + +#define _get_len(rect) \ + (((rect)->w*(rect)->h+1)/2+4) + +#define setDrawLoad(pt, rect) \ + (_get_len(rect) <= 16) ? ( \ + (setlen(pt, _get_len(rect))), \ + ((pt)->code[0] = 0xa0000000), \ + ((pt)->code[1] = *((u_long *)&(rect)->x)), \ + ((pt)->code[2] = *((u_long *)&(rect)->w)), \ + ((pt)->p[_get_len(rect)-4] = 0x01000000) \ + ) : ( \ + (setlen(pt,0)) \ + ) + +#define setDrawStp(p, pbw) \ + setlen(p, 2), \ + ((u_long *)p)[1] = 0xe6000000|(pbw?0x01:0), \ + ((u_long *)p)[2] = 0 + +#define setDrawMode(p, dfe, dtd, tpage, tw) \ + setlen(p, 2), \ + ((u_long *)p)[1] = _get_mode(dfe, dtd, tpage), \ + ((u_long *)p)[2] = _get_tw((RECT *)tw) + + +/* Primitive Lentgh Code */ +/*-------------------------------------------------------------------- */ +/* */ +#define setPolyF3(p) setlen(p, 4), setcode(p, 0x20) +#define setPolyFT3(p) setlen(p, 7), setcode(p, 0x24) +#define setPolyG3(p) setlen(p, 6), setcode(p, 0x30) +#define setPolyGT3(p) setlen(p, 9), setcode(p, 0x34) +#define setPolyF4(p) setlen(p, 5), setcode(p, 0x28) +#define setPolyFT4(p) setlen(p, 9), setcode(p, 0x2c) +#define setPolyG4(p) setlen(p, 8), setcode(p, 0x38) +#define setPolyGT4(p) setlen(p, 12), setcode(p, 0x3c) + +#define setSprt8(p) setlen(p, 3), setcode(p, 0x74) +#define setSprt16(p) setlen(p, 3), setcode(p, 0x7c) +#define setSprt(p) setlen(p, 4), setcode(p, 0x64) + +#define setTile1(p) setlen(p, 2), setcode(p, 0x68) +#define setTile8(p) setlen(p, 2), setcode(p, 0x70) +#define setTile16(p) setlen(p, 2), setcode(p, 0x78) +#define setTile(p) setlen(p, 3), setcode(p, 0x60) +#define setLineF2(p) setlen(p, 3), setcode(p, 0x40) +#define setLineG2(p) setlen(p, 4), setcode(p, 0x50) +#define setLineF3(p) setlen(p, 5), setcode(p, 0x48),(p)->pad = 0x55555555 +#define setLineG3(p) setlen(p, 7), setcode(p, 0x58),(p)->pad = 0x55555555, \ + (p)->p2 = 0 +#define setLineF4(p) setlen(p, 6), setcode(p, 0x4c),(p)->pad = 0x55555555 +#define setLineG4(p) setlen(p, 9), setcode(p, 0x5c),(p)->pad = 0x55555555, \ + (p)->p2 = 0, (p)->p3 = 0 + +/* + * Rectangle: + */ +typedef struct { + short x, y; /* offset point on VRAM */ + short w, h; /* width and height */ +} RECT; + +typedef struct { + int x, y; /* offset point on VRAM */ + int w, h; /* width and height */ +} RECT32; + +/* + * Environment + */ +typedef struct { + u_long tag; + u_long code[15]; +} DR_ENV; /* Packed Drawing Environment */ + +typedef struct { + RECT clip; /* clip area */ + short ofs[2]; /* drawing offset */ + RECT tw; /* texture window */ + u_short tpage; /* texture page */ + u_char dtd; /* dither flag (0:off, 1:on) */ + u_char dfe; /* flag to draw on display area (0:off 1:on) */ + u_char isbg; /* enable to auto-clear */ + u_char r0, g0, b0; /* initital background color */ + DR_ENV dr_env; /* reserved */ +} DRAWENV; + +typedef struct { + RECT disp; /* display area */ + RECT screen; /* display start point */ + u_char isinter; /* interlace 0: off 1: on */ + u_char isrgb24; /* RGB24 bit mode */ + u_char pad0, pad1; /* reserved */ +} DISPENV; + +/* + * Polygon Primitive Definitions + */ +typedef struct { + unsigned addr: 24; + unsigned len: 8; + u_char r0, g0, b0, code; +} P_TAG; + +typedef struct { + u_char r0, g0, b0, code; +} P_CODE; + +typedef struct { + u_long tag; + u_char r0, g0, b0, code; + short x0, y0; + short x1, y1; + short x2, y2; +} POLY_F3; /* Flat Triangle */ + +typedef struct { + u_long tag; + u_char r0, g0, b0, code; + short x0, y0; + short x1, y1; + short x2, y2; + short x3, y3; +} POLY_F4; /* Flat Quadrangle */ + +typedef struct { + u_long tag; + u_char r0, g0, b0, code; + short x0, y0; + u_char u0, v0; u_short clut; + short x1, y1; + u_char u1, v1; u_short tpage; + short x2, y2; + u_char u2, v2; u_short pad1; +} POLY_FT3; /* Flat Textured Triangle */ + +typedef struct { + u_long tag; + u_char r0, g0, b0, code; + short x0, y0; + u_char u0, v0; u_short clut; + short x1, y1; + u_char u1, v1; u_short tpage; + short x2, y2; + u_char u2, v2; u_short pad1; + short x3, y3; + u_char u3, v3; u_short pad2; +} POLY_FT4; /* Flat Textured Quadrangle */ + +typedef struct { + u_long tag; + u_char r0, g0, b0, code; + short x0, y0; + u_char r1, g1, b1, pad1; + short x1, y1; + u_char r2, g2, b2, pad2; + short x2, y2; +} POLY_G3; /* Gouraud Triangle */ + +typedef struct { + u_long tag; + u_char r0, g0, b0, code; + short x0, y0; + u_char r1, g1, b1, pad1; + short x1, y1; + u_char r2, g2, b2, pad2; + short x2, y2; + u_char r3, g3, b3, pad3; + short x3, y3; +} POLY_G4; /* Gouraud Quadrangle */ + +typedef struct { + u_long tag; + u_char r0, g0, b0, code; + short x0, y0; + u_char u0, v0; u_short clut; + u_char r1, g1, b1, p1; + short x1, y1; + u_char u1, v1; u_short tpage; + u_char r2, g2, b2, p2; + short x2, y2; + u_char u2, v2; u_short pad2; +} POLY_GT3; /* Gouraud Textured Triangle */ + +typedef struct { + u_long tag; + u_char r0, g0, b0, code; + short x0, y0; + u_char u0, v0; u_short clut; + u_char r1, g1, b1, p1; + short x1, y1; + u_char u1, v1; u_short tpage; + u_char r2, g2, b2, p2; + short x2, y2; + u_char u2, v2; u_short pad2; + u_char r3, g3, b3, p3; + short x3, y3; + u_char u3, v3; u_short pad3; +} POLY_GT4; /* Gouraud Textured Quadrangle */ + +/* + * Line Primitive Definitions + */ +typedef struct { + u_long tag; + u_char r0, g0, b0, code; + short x0, y0; + short x1, y1; +} LINE_F2; /* Unconnected Flat Line */ + +typedef struct { + u_long tag; + u_char r0, g0, b0, code; + short x0, y0; + u_char r1, g1, b1, p1; + short x1, y1; +} LINE_G2; /* Unconnected Gouraud Line */ + +typedef struct { + u_long tag; + u_char r0, g0, b0, code; + short x0, y0; + short x1, y1; + short x2, y2; + u_long pad; +} LINE_F3; /* 2 connected Flat Line */ + +typedef struct { + u_long tag; + u_char r0, g0, b0, code; + short x0, y0; + u_char r1, g1, b1, p1; + short x1, y1; + u_char r2, g2, b2, p2; + short x2, y2; + u_long pad; +} LINE_G3; /* 2 connected Gouraud Line */ + +typedef struct { + u_long tag; + u_char r0, g0, b0, code; + short x0, y0; + short x1, y1; + short x2, y2; + short x3, y3; + u_long pad; +} LINE_F4; /* 3 connected Flat Line Quadrangle */ + +typedef struct { + u_long tag; + u_char r0, g0, b0, code; + short x0, y0; + u_char r1, g1, b1, p1; + short x1, y1; + u_char r2, g2, b2, p2; + short x2, y2; + u_char r3, g3, b3, p3; + short x3, y3; + u_long pad; +} LINE_G4; /* 3 connected Gouraud Line */ + +/* + * Sprite Primitive Definitions + */ +typedef struct { + u_long tag; + u_char r0, g0, b0, code; + short x0, y0; + u_char u0, v0; u_short clut; + short w, h; +} SPRT; /* free size Sprite */ + +typedef struct { + u_long tag; + u_char r0, g0, b0, code; + short x0, y0; + u_char u0, v0; u_short clut; +} SPRT_16; /* 16x16 Sprite */ + +typedef struct { + u_long tag; + u_char r0, g0, b0, code; + short x0, y0; + u_char u0, v0; u_short clut; +} SPRT_8; /* 8x8 Sprite */ + +/* + * Tile Primitive Definitions + */ +typedef struct { + u_long tag; + u_char r0, g0, b0, code; + short x0, y0; + short w, h; +} TILE; /* free size Tile */ + +typedef struct { + u_long tag; + u_char r0, g0, b0, code; + short x0, y0; +} TILE_16; /* 16x16 Tile */ + +typedef struct { + u_long tag; + u_char r0, g0, b0, code; + short x0, y0; +} TILE_8; /* 8x8 Tile */ + +typedef struct { + u_long tag; + u_char r0, g0, b0, code; + short x0, y0; +} TILE_1; /* 1x1 Tile */ + +/* + * Special Primitive Definitions + */ +typedef struct { + u_long tag; + u_long code[2]; +} DR_MODE; /* Drawing Mode */ + +typedef struct { + u_long tag; + u_long code[2]; +} DR_TWIN; /* Texture Window */ + +typedef struct { + u_long tag; + u_long code[2]; +} DR_AREA; /* Drawing Area */ + +typedef struct { + u_long tag; + u_long code[2]; +} DR_OFFSET; /* Drawing Offset */ + +typedef struct { /* MoveImage */ + u_long tag; + u_long code[5]; +} DR_MOVE; + +typedef struct { /* LoadImage */ + u_long tag; + u_long code[3]; + u_long p[13]; +} DR_LOAD; + +typedef struct { + u_long tag; + u_long code[1]; +} DR_TPAGE; /* Drawing TPage */ + +typedef struct { + u_long tag; + u_long code[2]; +} DR_STP; /* Drawing STP */ + +/* + * Font Stream Parameters + */ +#define FNT_MAX_ID 8 /* max number of stream ID */ +#define FNT_MAX_SPRT 1024 /* max number of sprites in all streams */ + +/* + * Multi-purpose Sony-TMD primitive + */ +typedef struct { + u_long id; + u_char r0, g0, b0, p0; /* Color of vertex 0 */ + u_char r1, g1, b1, p1; /* Color of vertex 1 */ + u_char r2, g2, b2, p2; /* Color of vertex 2 */ + u_char r3, g3, b3, p3; /* Color of vertex 3 */ + u_short tpage, clut; /* texture page ID, clut ID */ + u_char u0, v0, u1, v1; /* texture corner point */ + u_char u2, v2, u3, v3; + + /* independent vertex model */ + SVECTOR x0, x1, x2, x3; /* 3D corner point */ + SVECTOR n0, n1, n2, n3; /* 3D corner normal vector */ + + /* Common vertex model */ + SVECTOR *v_ofs; /* offset to vertex database */ + SVECTOR *n_ofs; /* offset to normal database */ + + u_short vert0, vert1; /* index of vertex */ + u_short vert2, vert3; + u_short norm0, norm1; /* index of normal */ + u_short norm2, norm3; + + +} TMD_PRIM; + +/* + * Multi-purpose TIM image + */ +typedef struct { + u_long mode; /* pixel mode */ + RECT *crect; /* CLUT rectangle on frame buffer */ + u_long *caddr; /* CLUT address on main memory */ + RECT *prect; /* texture image rectangle on frame buffer */ + u_long *paddr; /* texture image address on main memory */ +} TIM_IMAGE; + +/* + * Prototypes + */ +#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus) +extern "C" { +#ifndef _FNTPRINT_ +#define _FNTPRINT_ +extern int FntPrint(...); +#endif /* _FNTPRINT_ */ +#ifndef _KANJIFNTPRINT_ +#define _KANJIFNTPRINT_ +extern int KanjiFntPrint(...); +#endif /* _KANJIFNTPRINT_ */ +#else +#ifndef _FNTPRINT_ +#define _FNTPRINT_ +extern int FntPrint(); +#endif /* _FNTPRINT_ */ +#ifndef _KANJIFNTPRINT_ +#define _KANJIFNTPRINT_ +extern int KanjiFntPrint(); +#endif /* _KANJIFNTPRINT_ */ +#endif + +extern DISPENV *GetDispEnv(DISPENV *env); +extern DISPENV *PutDispEnv(DISPENV *env); +extern DISPENV *SetDefDispEnv(DISPENV *env, int x, int y, int w, int h); +extern DRAWENV *GetDrawEnv(DRAWENV *env); +extern DRAWENV *PutDrawEnv(DRAWENV *env); +extern DRAWENV *SetDefDrawEnv(DRAWENV *env, int x, int y, int w, int h); +extern TIM_IMAGE *ReadTIM(TIM_IMAGE *timimg); +extern TMD_PRIM *ReadTMD(TMD_PRIM *tmdprim); +extern int CheckPrim(char *s, u_long *p); +extern int ClearImage(RECT *rect, u_char r, u_char g, u_char b); +extern int ClearImage2(RECT *rect, u_char r, u_char g, u_char b); +extern int DrawSync(int mode); +extern int FntOpen(int x, int y, int w, int h, int isbg, int n); +extern int GetGraphDebug(void) ; +extern int GetTimSize(u_char *sjis); +extern int IsEndPrim(void *p) ; +extern int KanjiFntOpen(int x, int y, int w, int h, int dx, int dy, int cx, int cy, int isbg, int n); +extern void KanjiFntClose(void); +extern int Krom2Tim(u_char *sjis, u_long *taddr, int dx, int dy, int cdx, int cdy, u_int fg, u_int bg); +extern int LoadImage(RECT *rect, u_long *p); +extern int MargePrim(void *p0, void *p1); +extern int MoveImage(RECT *rect, int x, int y); +extern int OpenTIM(u_long *addr); +extern int OpenTMD(u_long *tmd, int obj_no); +extern int ResetGraph(int mode); +extern int SetGraphDebug(int level); +extern int StoreImage(RECT *rect, u_long *p); +extern u_long *ClearOTag(u_long *ot, int n); +extern u_long *ClearOTagR(u_long *ot, int n); +extern u_long *FntFlush(int id); +extern u_long *KanjiFntFlush(int id); +extern u_long DrawSyncCallback(void (*func)(void)); +extern u_short GetClut(int x, int y) ; +extern u_short GetTPage(int tp, int abr, int x, int y) ; +extern u_short LoadClut(u_long *clut, int x, int y); +extern u_short LoadClut2(u_long *clut, int x, int y); +extern u_short LoadTPage(u_long *pix, int tp, int abr, int x, int y, int w, int h); +extern void *NextPrim(void *p) ; +extern void AddPrim(void *ot, void *p) ; +extern void AddPrims(void *ot, void *p0, void *p1) ; +extern void CatPrim(void *p0, void *p1) ; +extern void DrawOTag(u_long *p); +extern void DrawOTagIO(u_long *p); +extern void DrawOTagEnv(u_long *p, DRAWENV *env); +extern void DrawPrim(void *p); +extern void DumpClut(u_short clut) ; +extern void DumpDispEnv(DISPENV *env); +extern void DumpDrawEnv(DRAWENV *env); +extern void DumpOTag(u_long *p); +extern void DumpTPage(u_short tpage) ; +extern void FntLoad(int tx, int ty); +extern void SetDispMask(int mask); +extern void SetDrawArea(DR_AREA *p, RECT *r); +extern void SetDrawEnv(DR_ENV *dr_env, DRAWENV *env); +extern void SetDrawLoad(DR_LOAD *p, RECT *rect); +extern void SetDrawMode(DR_MODE *p, int dfe, int dtd, int tpage, RECT *tw); +extern void SetDrawTPage(DR_TPAGE *p, int dfe, int dtd, int tpage); +extern void SetDrawMove(DR_MOVE *p, RECT *rect, int x, int y) ; +extern void SetDrawOffset(DR_OFFSET *p, u_short *ofs); +extern void SetDrawStp(DR_STP *p, int pbw); +extern void SetDumpFnt(int id); +extern void SetLineF2(LINE_F2 *p) ; +extern void SetLineF3(LINE_F3 *p) ; +extern void SetLineF4(LINE_F4 *p) ; +extern void SetLineG2(LINE_G2 *p) ; +extern void SetLineG3(LINE_G3 *p) ; +extern void SetLineG4(LINE_G4 *p) ; +extern void SetPolyF3(POLY_F3 *p) ; +extern void SetPolyF4(POLY_F4 *p) ; +extern void SetPolyFT3(POLY_FT3 *p) ; +extern void SetPolyFT4(POLY_FT4 *p) ; +extern void SetPolyG3(POLY_G3 *p) ; +extern void SetPolyG4(POLY_G4 *p) ; +extern void SetPolyGT3(POLY_GT3 *p) ; +extern void SetPolyGT4(POLY_GT4 *p) ; +extern void SetSemiTrans(void *p, int abe) ; +extern void SetShadeTex(void *p, int tge) ; +extern void SetSprt(SPRT *p) ; +extern void SetSprt16(SPRT_16 *p) ; +extern void SetSprt8(SPRT_8 *p) ; +extern void SetTexWindow(DR_TWIN *p, RECT *tw); +extern void SetTile(TILE *p) ; +extern void SetTile1(TILE_1 *p) ; +extern void SetTile16(TILE_16 *p) ; +extern void SetTile8(TILE_8 *p) ; +extern void TermPrim(void *p) ; +extern u_long *BreakDraw(void); +extern void ContinueDraw(u_long *insaddr, u_long *contaddr); +extern int IsIdleGPU(int max_count); +extern int GetODE(void); +extern int LoadImage2(RECT *rect, u_long *p); +extern int StoreImage2(RECT *rect, u_long *p); +extern int MoveImage2(RECT *rect, int x, int y); +extern int DrawOTag2(u_long *p); +extern void GetDrawMode(DR_MODE *p); +extern void GetTexWindow(DR_TWIN *p); +extern void GetDrawArea(DR_AREA *p); +extern void GetDrawOffset(DR_OFFSET *p); +extern void GetDrawEnv2(DR_ENV *p); + +#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus) +} +#endif +#endif /* _LIBGPU_H_ */ diff --git a/toolchain/psyq-4_7/include/libgs.h b/toolchain/psyq-4_7/include/libgs.h new file mode 100644 index 0000000..e40510f --- /dev/null +++ b/toolchain/psyq-4_7/include/libgs.h @@ -0,0 +1,1467 @@ +#ifndef _LIBGS_H_ +#define _LIBGS_H_ + +/* + * $PSLibId: Run-time Library Release 4.7$ + */ + +/* + * libgs.h: Graphic Library Header + * + * + * Version 1.** Apr, 8, 1994 + * + * Copyright (C) 1993 by Sony Corporation All rights Reserved + */ + +#ifndef NULL +#define NULL 0 +#endif + +/*** packet peripheral pointer ***/ +typedef unsigned char PACKET; + +#define PSBANK 0x80000000 +/*** --- Zsort resolution --- ***/ +#define ZRESOLUTION 0x3fff + +/*** --- coordinate keyword - ***/ +#define WORLD NULL +#define SCREEN ((GsCOORDINATE2 *)0x0001) + + +typedef struct { + VECTOR scale; + SVECTOR rotate; + VECTOR trans; +} GsCOORD2PARAM; + +typedef struct _GsCOORDINATE2 { + unsigned long flg; + MATRIX coord; + MATRIX workm; + GsCOORD2PARAM *param; + struct _GsCOORDINATE2 *super; + struct _GsCOORDINATE2 *sub; +} GsCOORDINATE2; + +typedef struct { + MATRIX view; + GsCOORDINATE2 *super; +} GsVIEW2; + +typedef struct { + long vpx, vpy, vpz; + long vrx, vry, vrz; + long rz; + GsCOORDINATE2 *super; +} GsRVIEW2; + +typedef struct { + int vx, vy, vz; + unsigned char r, g, b; +} GsF_LIGHT; + + +typedef struct { + unsigned p:24; + unsigned char num:8; +} GsOT_TAG; + + +typedef struct { + unsigned long length; + GsOT_TAG *org; + unsigned long offset; + unsigned long point; + GsOT_TAG *tag; +} GsOT; + +typedef struct { + unsigned long attribute;/* pers,trans,rotate,disp */ + GsCOORDINATE2 *coord2; /* local dmatrix */ + unsigned long *tmd; + unsigned long id; +} GsDOBJ2; + +typedef struct { + unsigned long attribute;/* pers,trans,rotate,disp */ + GsCOORDINATE2 *coord2; /* local dmatrix */ + unsigned long *pmd; /* pmd top address */ + unsigned long *base; /* object base address */ + unsigned long *sv; /* shared vertex base */ + unsigned long id; +} GsDOBJ3; + +typedef struct { + unsigned long attribute;/* pers,trans,rotate,disp */ + GsCOORDINATE2 *coord2; /* local dmatrix */ + unsigned long *tmd; + unsigned long id; +} GsDOBJ4; + +typedef struct { + unsigned long attribute; + GsCOORDINATE2 *coord2; + unsigned long *tmd; + unsigned long *packet; + unsigned long id; +} GsDOBJ5; + +typedef struct { + unsigned long attribute; + short x, y; + unsigned short w, h; + unsigned short tpage; + unsigned char u, v; + short cx, cy; + unsigned char r, g, b; + short mx, my; + short scalex, scaley; + long rotate; +} GsSPRITE; + +typedef struct { + unsigned char u, v; + unsigned short cba; + unsigned short flag; + unsigned short tpage; +} GsCELL; + +typedef struct { + unsigned char cellw, cellh; + unsigned short ncellw, ncellh; + GsCELL *base; + unsigned short *index; +} GsMAP; + +typedef struct { + unsigned long attribute; + short x, y; + short w, h; + short scrollx, scrolly; + unsigned char r, g, b; + GsMAP *map; + short mx, my; + short scalex, scaley; + long rotate; +} GsBG; + +typedef struct { + unsigned long attribute; + short x0, y0; + short x1, y1; + unsigned char r, g, b; +} GsLINE; + +typedef struct { + unsigned long attribute; + short x0, y0; + short x1, y1; + unsigned char r0, g0, b0; + unsigned char r1, g1, b1; +} GsGLINE; + +typedef struct { + unsigned long attribute; + short x, y; + unsigned short w, h; + unsigned char r, g, b; +} GsBOXF; + +typedef struct { + short dqa; + long dqb; + unsigned char rfc, gfc, bfc; +} GsFOGPARAM; + + +typedef struct { + unsigned long pmode; + short px, py; + unsigned short pw, ph; + unsigned long *pixel; + short cx, cy; + unsigned short cw, ch; + unsigned long *clut; +} GsIMAGE; + +typedef struct { + short offx, offy; +} _GsPOSITION; + +typedef struct { + GsDOBJ2 *top; + int nobj; + int maxobj; +} GsOBJTABLE2; + +typedef struct { + PACKET + * (*f3[2][3]) (); + PACKET + * (*nf3[2]) (); + PACKET + * (*g3[2][3]) (); + PACKET + * (*ng3[2]) (); + PACKET + * (*tf3[2][3]) (); + PACKET + * (*ntf3[2]) (); + PACKET + * (*tg3[2][3]) (); + PACKET + * (*ntg3[2]) (); + PACKET + * (*f4[2][3]) (); + PACKET + * (*nf4[2]) (); + PACKET + * (*g4[2][3]) (); + PACKET + * (*ng4[2]) (); + PACKET + * (*tf4[2][3]) (); + PACKET + * (*ntf4[2]) (); + PACKET + * (*tg4[2][3]) (); + PACKET + * (*ntg4[2]) (); + PACKET + * (*f3g[3])(); + PACKET + * (*g3g[3])(); + PACKET + * (*f4g[3])(); + PACKET + * (*g4g[3])(); +} _GsFCALL; + + +#define GsDivMODE_NDIV 0 +#define GsDivMODE_DIV 1 +#define GsLMODE_NORMAL 0 +#define GsLMODE_FOG 1 +#define GsLMODE_LOFF 2 + +/* + * libgs macro + */ +#define GsOFSGTE 0 +#define GsOFSGPU 4 +#define GsINTER 1 +#define GsNONINTER 0 +#define GsRESET0 0 +#define GsRESET3 (3<<4) + +/* + * object attribute set macro + */ +#define GsLDIM0 0 +#define GsLDIM1 1 +#define GsLDIM2 2 +#define GsLDIM3 3 +#define GsLDIM4 4 +#define GsLDIM5 5 +#define GsLDIM6 6 +#define GsLDIM7 7 +#define GsFOG (1<<3) +#define GsMATE (1<<4) +#define GsLLMOD (1<<5) +#define GsLOFF (1<<6) +#define GsZIGNR (1<<7) +#define GsNBACKC (1<<8) +#define GsDIV1 (1<<9) +#define GsDIV2 (2<<9) +#define GsDIV3 (3<<9) +#define GsDIV4 (4<<9) +#define GsDIV5 (5<<9) +#define GsAZERO (0<<28) +#define GsAONE (1<<28) +#define GsATWO (2<<28) +#define GsATHREE (3<<28) +#define GsALON (1<<30) +#define GsDOFF (1<<31) +/* + * BG/sprite attribute set macro + */ +#define GsPERS (1<<26) +#define GsROTOFF (1<<27) + +#define GsIncFrame() (PSDCNT++, PSDCNT= PSDCNT?PSDCNT:1, \ + (PSDIDX= (PSDIDX==0?1:0))) + +#define GsUpdateCoord() (PSDCNT++, PSDCNT= PSDCNT?PSDCNT:1) + +#define GsSetAzwh(z,w,h) GsADIVZ = (z),GsADIVW = (w),GsADIVH = (h); + +#define GsTMDFlagGRD 0x04 + +/* + * FLIP macro for GsSort[Fast]SpriteB + */ +#define GsHFLIP 0x01 +#define GsVFLIP 0x02 + +/* + * TMD structure + */ +/*** GTE PACKET to-GPU command '.code' ***/ +#define GPU_COM_F3 0x20 +#define GPU_COM_TF3 0x24 +#define GPU_COM_G3 0x30 +#define GPU_COM_TG3 0x34 + +#define GPU_COM_F4 0x28 +#define GPU_COM_TF4 0x2c +#define GPU_COM_G4 0x38 +#define GPU_COM_TG4 0x3c + +#define GPU_COM_NF3 0x21 +#define GPU_COM_NTF3 0x25 +#define GPU_COM_NG3 0x31 +#define GPU_COM_NTG3 0x35 + +#define GPU_COM_NF4 0x29 +#define GPU_COM_NTF4 0x2d +#define GPU_COM_NG4 0x39 +#define GPU_COM_NTG4 0x3d + + +/*** TMD structure ****/ +typedef struct { + u_char out, in, dummy, cd; + u_char r0, g0, b0, code; + u_short n0, v0; + u_short v1, v2; +} TMD_P_F3; + +typedef struct { + u_char out, in, dummy, cd; + u_char r0, g0, b0, code; + u_short n0, v0; + u_short n1, v1; + u_short n2, v2; +} TMD_P_G3; + +typedef struct { + u_char out, in, dummy, cd; + u_char r0, g0, b0, code; + u_char r1, g1, b1, dummy1; + u_char r2, g2, b2, dummy2; + u_short n0, v0; + u_short v1, v2; +} TMD_P_F3G; + +typedef struct { + u_char out, in, dummy, cd; + u_char r0, g0, b0, code; + u_char r1, g1, b1, dummy1; + u_char r2, g2, b2, dummy2; + u_short n0, v0; + u_short n1, v1; + u_short n2, v2; +} TMD_P_G3G; + +typedef struct { + u_char out, in, dummy, cd; + u_char r0, g0, b0, code; + u_short v0, v1; + u_short v2, p; +} TMD_P_NF3; + +typedef struct { + u_char out, in, dummy, cd; + u_char r0, g0, b0, code; + u_char r1, g1, b1, p1; + u_char r2, g2, b2, p2; + u_short v0, v1; + u_short v2, p; +} TMD_P_NG3; + +typedef struct { + u_char out, in, dummy, cd; + u_char r0, g0, b0, code; + u_short n0, v0; + u_short v1, v2; + u_short v3, p; +} TMD_P_F4; + +typedef struct { + u_char out, in, dummy, cd; + u_char r0, g0, b0, code; + u_short n0, v0; + u_short n1, v1; + u_short n2, v2; + u_short n3, v3; +} TMD_P_G4; + +typedef struct { + u_char out, in, dummy, cd; + u_char r0, g0, b0, code; + u_char r1, g1, b1, dummy1; + u_char r2, g2, b2, dummy2; + u_char r3, g3, b3, dummy3; + u_short n0, v0; + u_short v1, v2; + u_short v3, dummy4; +} TMD_P_F4G; + +typedef struct { + u_char out, in, dummy, cd; + u_char r0, g0, b0, code; + u_char r1, g1, b1, dummy1; + u_char r2, g2, b2, dummy2; + u_char r3, g3, b3, dummy3; + u_short n0, v0; + u_short n1, v1; + u_short n2, v2; + u_short n3, v3; +} TMD_P_G4G; + +typedef struct { + u_char out, in, dummy, cd; + u_char r0, g0, b0, code; + u_short v0, v1; + u_short v2, v3; +} TMD_P_NF4; + +typedef struct { + u_char out, in, dummy, cd; + u_char r0, g0, b0, code; + u_char r1, g1, b1, p1; + u_char r2, g2, b2, p2; + u_char r3, g3, b3, p3; + u_short v0, v1; + u_short v2, v3; +} TMD_P_NG4; + +typedef struct { + u_char out, in, dummy, cd; + u_char tu0, tv0; + u_short clut; + u_char tu1, tv1; + u_short tpage; + u_char tu2, tv2; + u_short p; + u_short n0, v0; + u_short v1, v2; +} TMD_P_TF3; + +typedef struct { + u_char out, in, dummy, cd; + u_char tu0, tv0; + u_short clut; + u_char tu1, tv1; + u_short tpage; + u_char tu2, tv2; + u_short p; + u_short n0, v0; + u_short n1, v1; + u_short n2, v2; +} TMD_P_TG3; + +typedef struct { + u_char out, in, dummy, cd; + u_char tu0, tv0; + u_short clut; + u_char tu1, tv1; + u_short tpage; + u_char tu2, tv2; + u_short p0; + u_char r0, g0, b0, p1; + u_short v0, v1; + u_short v2, p2; +} TMD_P_TNF3; + +typedef struct { + u_char out, in, dummy, cd; + u_char tu0, tv0; + u_short clut; + u_char tu1, tv1; + u_short tpage; + u_char tu2, tv2; + u_short p0; + u_char r0, g0, b0, p1; + u_char r1, g1, b1, p2; + u_char r2, g2, b2, p3; + u_short v0, v1; + u_short v2, p4; +} TMD_P_TNG3; + +typedef struct { + u_char out, in, dummy, cd; + u_char tu0, tv0; + u_short clut; + u_char tu1, tv1; + u_short tpage; + u_char tu2, tv2; + u_short p0; + u_char tu3, tv3; + u_short p1; + u_short n0, v0; + u_short v1, v2; + u_short v3, p2; +} TMD_P_TF4; + +typedef struct { + u_char out, in, dummy, cd; + u_char tu0, tv0; + u_short clut; + u_char tu1, tv1; + u_short tpage; + u_char tu2, tv2; + u_short p0; + u_char tu3, tv3; + u_short p1; + u_short n0, v0; + u_short n1, v1; + u_short n2, v2; + u_short n3, v3; +} TMD_P_TG4; + +typedef struct { + u_char out, in, dummy, cd; + u_char tu0, tv0; + u_short clut; + u_char tu1, tv1; + u_short tpage; + u_char tu2, tv2; + u_short p0; + u_char tu3, tv3; + u_short p1; + u_char r0, g0, b0, p2; + u_short v0, v1; + u_short v2, v3; +} TMD_P_TNF4; + +typedef struct { + u_char out, in, dummy, cd; + u_char tu0, tv0; + u_short clut; + u_char tu1, tv1; + u_short tpage; + u_char tu2, tv2; + u_short p0; + u_char tu3, tv3; + u_short p1; + u_char r0, g0, b0, p2; + u_char r1, g1, b1, p3; + u_char r2, g2, b2, p4; + u_char r3, g3, b3, p5; + u_short v0, v1; + u_short v2, v3; +} TMD_P_TNG4; + +struct TMD_STRUCT { + u_long *vertop; /* vertex top address of TMD format */ + u_long vern; /* the number of vertex of TMD format */ + u_long *nortop; /* normal top address of TMD format */ + u_long norn; /* the number of normal of TMD format */ + u_long *primtop; /* primitive top address of TMD format */ + u_long primn; /* the number of primitives of TMD format */ + u_long scale; /* the scale factor of TMD format */ +}; + +/* + * active sub divide structure + * + */ + +#define minmax4(x1,x2,x3,x4,x5,x6) x1>x2?(x6=x1,x5=x2):(x5=x1,x6=x2),\ + x3>x6?x6=x3:x3x6?x6=x4:x4x2?(x5=x1,x4=x2):(x4=x1,x5=x2),\ + x3>x5?x5=x3:x3 + +typedef void (*MemCB)( long cmds, long rslt ); + +#define McFuncExist (1) +#define McFuncAccept (2) +#define McFuncReadFile (3) +#define McFuncWriteFile (4) +#define McFuncReadData (5) +#define McFuncWriteData (6) + +#define McErrNone (0) +#define McErrCardNotExist (1) +#define McErrCardInvalid (2) +#define McErrNewCard (3) +#define McErrNotFormat (4) +#define McErrFileNotExist (5) +#define McErrAlreadyExist (6) +#define McErrBlockFull (7) +#define McErrExtend (0x8000) + +#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus) +extern "C" { +#endif + +void MemCardInit( long val ); +void MemCardEnd( void ); +void MemCardStart(void); +void MemCardStop(void); +long MemCardExist( long chan ); +long MemCardAccept( long chan ); +long MemCardOpen( long chan, char* file, long flag ); +void MemCardClose(void); +long MemCardReadData( unsigned long* adrs, long ofs, long bytes ); +long MemCardReadFile( long chan, char* file, unsigned long* adrs, long ofs, long bytes ); +long MemCardWriteData( unsigned long* adrs, long ofs, long bytes ); +long MemCardWriteFile( long chan, char* file, unsigned long* adrs, long ofs ,long bytes ); +long MemCardCreateFile( long chan, char* file, long blocks ); +long MemCardDeleteFile( long chan, char* file ); +long MemCardFormat( long chan ); +long MemCardUnformat(long chan); +long MemCardSync( long mode, long* cmds, long* rslt ); +MemCB MemCardCallback( MemCB func ); +long MemCardGetDirentry( long chan, char* name, struct DIRENTRY* dir, long* files, long ofs, long max ); + +#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus) +} +#endif + + +#endif /* _MEMCARD_H_ */ diff --git a/toolchain/psyq-4_7/include/libmcx.h b/toolchain/psyq-4_7/include/libmcx.h new file mode 100644 index 0000000..c70bf41 --- /dev/null +++ b/toolchain/psyq-4_7/include/libmcx.h @@ -0,0 +1,101 @@ +#ifndef _LIBMCX_H_ +#define _LIBMCX_H_ + +/* + * File:libmcx.h + * Copyright (C) 1998 by Sony Computer Entertainment Inc. + * All rights Reserved + */ +/* + * $PSLibId: Run-time Library Release 4.7$ + */ + +/* don't change these macros and structures which is referred in mcx code */ + +#ifndef TRUE +#define TRUE 1 +#endif +#ifndef FALSE +#define FALSE 0 +#endif +#ifndef NULL +#define NULL 0 +#endif +#ifndef ERROR +#define ERROR (-1) +#endif + + +#define McxFuncGetApl 1 +#define McxFuncExecApl 2 +#define McxFuncGetTime 3 +#define McxFuncGetMem 4 +#define McxFuncSetMem 5 +#define McxFuncShowTrans 6 +#define McxFuncHideTrans 7 +#define McxFuncCurrCtrl 8 +#define McxFuncSetLED 9 +#define McxFuncGetSerial 10 +#define McxFuncExecFlag 11 +#define McxFuncAllInfo 12 +#define McxFuncFlashAcs 13 +#define McxFuncReadDev 14 +#define McxFuncWriteDev 15 +#define McxFuncGetUIFS 16 +#define McxFuncSetUIFS 17 +#define McxFuncSetTime 18 +#define McxFuncCardType 19 + + +#define McxSyncRun 0 +#define McxSyncNone (-1) +#define McxSyncFin 1 + +#define McxErrSuccess 0 +#define McxErrNoCard 1 +#define McxErrInvalid 2 +#define McxErrNewCard 3 + + + +/* + * Prototypes + */ + +#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus) +extern "C" { +#endif + +void McxStartCom(void); +void McxStopCom(void); +int McxSync(int, long *, long *); + +int McxGetApl(int , long *); +int McxExecApl(int, int, long); +int McxGetTime(int, unsigned char *); +int McxGetMem(int, unsigned char *, unsigned, unsigned); +int McxSetMem(int, unsigned char *, unsigned, unsigned); +int McxShowTrans(int, int, int); +int McxHideTrans(int); +int McxCurrCtrl(int, int, int, int); +int McxFlashAcs(int, int); +int McxGetSerial(int, unsigned long *); +int McxSetLED(int, int); +int McxAllInfo(int, unsigned char *); +int McxExecFlag(int, int, int); +int McxReadDev(int, int, unsigned char *, unsigned char *); +int McxWriteDev(int, int, unsigned char *, unsigned char *); +int McxSetTime(int, unsigned char *); +int McxGetUIFS(int, unsigned char *); +int McxSetUIFS(int, unsigned char *); +int McxCardType(int); + + +#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus) +} +#endif + +#endif /* _LIBMCX_H_ */ + +/* don't add stuff after this */ + diff --git a/toolchain/psyq-4_7/include/libpad.h b/toolchain/psyq-4_7/include/libpad.h new file mode 100644 index 0000000..b26a243 --- /dev/null +++ b/toolchain/psyq-4_7/include/libpad.h @@ -0,0 +1,82 @@ +#ifndef _LIBPAD_H_ +#define _LIBPAD_H_ + +/* + * File:libpad.h + * Copyright (C) 1997 by Sony Computer Entertainment Inc. + * All rights Reserved + */ +/* + * $PSLibId: Run-time Library Release 4.7$ + */ + +/* don't change these macros and structures which is referred in controler code */ + +#ifndef TRUE +#define TRUE 1 +#endif +#ifndef FALSE +#define FALSE 0 +#endif +#ifndef NULL +#define NULL 0 +#endif + + +#define PadStateDiscon 0 +#define PadStateFindPad 1 +#define PadStateFindCTP1 2 +#define PadStateFindCTP2 3 +#define PadStateReqInfo 4 +#define PadStateExecCmd 5 +#define PadStateStable 6 + +#define InfoModeCurID 1 +#define InfoModeCurExID 2 +#define InfoModeCurExOffs 3 +#define InfoModeIdTable 4 + +#define InfoActFunc 1 +#define InfoActSub 2 +#define InfoActSize 3 +#define InfoActCurr 4 +#define InfoActSign 5 + +#define PadMaxCurr 60 /* PS maximum current supply */ +#define PadCurrCTP1 10 /* SCPH-1150 biblator current */ + + +/* + * Prototypes + */ + +#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus) +extern "C" { +#endif + +void PadInitDirect(unsigned char *, unsigned char *); +void PadInitMtap(unsigned char *, unsigned char *); +void PadInitGun(unsigned char *, int); +int PadChkVsync(void); +void PadStartCom(void); +void PadStopCom(void); +unsigned PadEnableCom(unsigned); +void PadEnableGun(unsigned char); +void PadRemoveGun(void); +int PadGetState(int); +int PadInfoMode(int, int, int); +int PadInfoAct(int, int, int); +int PadInfoComb(int, int, int); +int PadSetActAlign(int, unsigned char *); +int PadSetMainMode(int socket, int offs, int lock); +void PadSetAct(int, unsigned char *, int); + + +#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus) +} +#endif + +#endif /* _LIBPAD_H_ */ + +/* don't add stuff after this */ + diff --git a/toolchain/psyq-4_7/include/libpress.h b/toolchain/psyq-4_7/include/libpress.h new file mode 100644 index 0000000..11f8ce4 --- /dev/null +++ b/toolchain/psyq-4_7/include/libpress.h @@ -0,0 +1,73 @@ +/* $PSLibId: Run-time Library Release 4.7$ */ +#ifndef _LIBPRESS_H_ +#define _LIBPRESS_H_ +/* + * (C) Copyright 1995 Sony Corporation,Tokyo,Japan. All Rights Reserved + * + * libpress.h: Prototypes for libpress + * + */ +/* DecDCTvlc Table */ +typedef u_short DECDCTTAB[34816]; + +/* DecDCTEnv */ +typedef struct { + u_char iq_y[64]; /* IQ (Y): zig-zag order */ + u_char iq_c[64]; /* IQ (Cb,Cr): zig-zag order */ + short dct[64]; /* IDCT coef (reserved) */ +} DECDCTENV; + +typedef struct { + short *src; /* 16-bit strait PCM */ + short *dest; /* PlayStation original waveform data */ + short *work; /* scratch pad or NULL */ + long size; /* size (unit: byte) of source data */ + long loop_start; /* loop start point (unit: byte) of source data */ + char loop; /* whether loop or not */ + char byte_swap; /* source data is 16-bit big endian (1) / little endian (0) */ + char proceed; /* proceeding ? whole (0) / start (1) / cont. (2) / end (4) */ + char quality; /* quality ? middle (0) / high (1) */ +} ENCSPUENV; + + +#define ENCSPU_ENCODE_ERROR (-1) +#define ENCSPU_ENCODE_WHOLE 0 +#define ENCSPU_ENCODE_START (1<<0) +#define ENCSPU_ENCODE_CONTINUE (1<<1) +#define ENCSPU_ENCODE_END (1<<2) + +#define ENCSPU_ENCODE_LOOP 1 +#define ENCSPU_ENCODE_NO_LOOP 0 + +#define ENCSPU_ENCODE_ENDIAN_LITTLE 0 +#define ENCSPU_ENCODE_ENDIAN_BIG 1 + +#define ENCSPU_ENCODE_MIDDLE_QULITY 0 +#define ENCSPU_ENCODE_HIGH_QULITY 1 + + +#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus) +extern "C" { +#endif +extern void DecDCTReset(int mode); +extern DECDCTENV *DecDCTGetEnv(DECDCTENV *env); +extern DECDCTENV *DecDCTPutEnv(DECDCTENV *env); +extern int DecDCTBufSize(u_long *bs); +extern int DecDCTvlc(u_long *bs, u_long *buf); +extern int DecDCTvlc2(u_long *bs, u_long *buf, DECDCTTAB table); +extern int DecDCTvlcSize(int size); +extern int DecDCTvlcSize2(int size); +extern void DecDCTvlcBuild(u_short *table); +extern void DecDCTin(u_long *buf, int mode); +extern void DecDCTout(u_long *buf, int size); +extern int DecDCTinSync( int mode) ; +extern int DecDCToutSync( int mode) ; +extern int DecDCTinCallback(void (*func)()); +extern int DecDCToutCallback(void (*func)()); + +extern long EncSPU (ENCSPUENV *env); +extern long EncSPU2(ENCSPUENV *env); +#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus) +} +#endif +#endif /* _LIBPRESS_H_ */ diff --git a/toolchain/psyq-4_7/include/libsio.h b/toolchain/psyq-4_7/include/libsio.h new file mode 100644 index 0000000..b45adc8 --- /dev/null +++ b/toolchain/psyq-4_7/include/libsio.h @@ -0,0 +1,79 @@ +/* $PSLibId: Run-time Library Release 4.7$ */ +#ifndef _LIBSIO_H_ +#define _LIBSIO_H_ + +/* + * Copyright (C) 1996,1997 Sony Computer Entertainment Inc. All Rights Reserved + * libsio.h: Sio Interface + */ + +/* status bits */ +#define SR_IRQ 0x200 +#define SR_CTS 0x100 +#define SR_DSR 0x80 +#define SR_FE 0x20 +#define SR_OE 0x10 +#define SR_PERROR 0x8 +#define SR_TXU 0x4 +#define SR_RXRDY 0x2 +#define SR_TXRDY 0x1 + +#define SIO_CTS 0x100 +#define SIO_DSR 0x80 +#define SIO_FE 0x20 +#define SIO_OE 0x10 +#define SIO_PERROR 0x8 +#define SIO_TXU 0x4 +#define SIO_RXRDY 0x2 +#define SIO_TXRDY 0x1 + + +/* control bits */ +#define CR_DSRIEN 0x1000 +#define CR_RXIEN 0x800 +#define CR_TXIEN 0x400 +#define CR_BUFSZ_1 0x0 +#define CR_BUFSZ_2 0x100 +#define CR_BUFSZ_4 0x200 +#define CR_BUFSZ_8 0x300 +#define CR_INTRST 0x40 +#define CR_RTS 0x20 +#define CR_ERRRST 0x10 +#define CR_BRK 0x8 +#define CR_RXEN 0x4 +#define CR_DTR 0x2 +#define CR_TXEN 0x1 + +#define SIO_BIT_DTR CR_DTR +#define SIO_BIT_RTS CR_RTS + +/* mode bits */ +#define MR_SB_00 0x0 +#define MR_SB_01 0x40 +#define MR_SB_10 0x80 +#define MR_SB_11 0xC0 +#define MR_P_EVEN 0x20 +#define MR_PEN 0x10 +#define MR_CHLEN_5 0x0 +#define MR_CHLEN_6 0x4 +#define MR_CHLEN_7 0x8 +#define MR_CHLEN_8 0xC +#define MR_BR_1 0x1 +#define MR_BR_16 0x2 +#define MR_BR_64 0x3 + +/* + * Prototypes + */ + +#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus) +extern "C" { +#endif +extern long AddSIO(int baud); +extern long DelSIO(void); +extern long _sio_control(unsigned long cmd, unsigned long arg, unsigned long param); +extern int Sio1Callback (void (*func)()); +#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus) +} +#endif +#endif /* _LIBSIO_H_ */ diff --git a/toolchain/psyq-4_7/include/libsn.h b/toolchain/psyq-4_7/include/libsn.h new file mode 100644 index 0000000..1e8726e --- /dev/null +++ b/toolchain/psyq-4_7/include/libsn.h @@ -0,0 +1,158 @@ +/* + * $PSLibId: Run-time Library Release 4.7$ + */ +#ifndef _LIBSN_H_ +#define _LIBSN_H_ + +#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus) +extern "C" { +#endif + + +/* +** LIBSN.H declare libary functions provided by LIBSN.LIB +** +** 05/02/94 ADB +** 21/03/94 ADB added user notes as comments +** 18/09/94 ADB added PCcreat() - it was missing before +** 31/05/95 ADB added PSYQpause() for new debug stub 4.04 +** 20/09/95 ADB added SNFlushCache - but removed after email from Tom Boyd +** 27/03/97 GJ v2.00 + C++ linkage + Call to global destructors in snmain.s +** 12.2.98 GJ v2.01 + C++ structor functions added in ctors.c + snmain.s shuffled - __do_global_dtors removed + Compiler support functions moved to libsngcc.lib +** 18.2.98 GJ v2.02 + C++ structor functions trimmed down because of assumptions about group names +** 24.3.98 GJ v2.03 + Initialise GP from __SN_GP_BASE linker symbol +*/ + +#define pollhost() __asm__ volatile ("break 1024") /* inline to keep variable scope */ +#define PSYQpause() __asm__ volatile ("break 1031") /* inline to keep variable scope */ + +/* +** C++ static class object functions +** These are here for when you can't use __SN_ENTRY_POINT (eg a final build) +** or when you need to instantiate static class objects from an overlay. +** Static class objects are those declared with non-function scope which +** have constructors. How do these get called? In the startup code, normally! +** But in final builds you can't link with our startup code, and the Sony +** startup objects don't have hooks for C++ initialisation. So: +** Call __sn_cpp_structors to initialise your standard static class +** objects, or to destroy them. Memory has already +** been allocated for these objects in the image; these functions just call +** the constructors to populate that memory appropriately. +** Call __sn_cpp_structors(section_obj, section_objend), +** supplying the obj and objend variables for a ctors section, to initialise +** the class objects referenced in that section. Or supply the obj and +** objend variables for a dtors section to call the corresponding +** destructors. +*/ + +extern void __sn_cpp_structors (long, long); + + +/* +** FILESERVER FUNCTIONS: +** +** NOTE: For PCread and PCwrite do not load files by passing extreme +** values for count as you might on UNIX as this will cause the full +** amount specified to be transferred - the file will be padded to +** that length with zeroes which may over-write memory beyond the +** end of the file. +** +** If you are unsure of the length of a file which you are about +** to read into memory then perform a +** len = PClseek( fd, 0, 2); +** This will set len to the length of the file which you can then +** pass to a PCread() function call. +** +*/ + +/* +** re-initialise PC filing system, close open files etc +** +** passed: void +** +** return: error code (0 if no error) +*/ +int PCinit (void); + +/* +** open a file on PC host +** +** passed: PC file pathname, open mode, permission flags +** +** return: file-handle or -1 if error +** +** note: perms should be zero (it is ignored) +** +** open mode: 0 => read only +** 1 => write only +** 2 => read/write +*/ +int PCopen (char *name, int flags, int perms); + +/* +** create (and open) a file on PC host +** +** passed: PC file pathname, open mode, permission flags +** +** return: file-handle or -1 if error +** +** note: perms should be zero (it is ignored) +*/ +int PCcreat (char *name, int perms); + +/* +** seek file pointer to new position in file +** +** passed: file-handle, seek offset, seek mode +** +** return: absolute value of new file pointer position +** +** (mode 0 = rel to start, mode 1 = rel to current fp, mode 2 = rel to end) +*/ +int PClseek (int fd, int offset, int mode); + +/* +** read bytes from file on PC +** +** passed: file-handle, buffer address, count +** +** return: count of number of bytes actually read +** +** note: unlike assembler function this provides for full 32 bit count +*/ +int PCread (int fd, char *buff, int len); + +/* +** write bytes to file on PC +** +** passed: file-handle, buffer address, count +** +** return: count of number of bytes actually written +** +** note: unlike assembler function this provides for full 32 bit count +*/ +int PCwrite (int fd, char *buff, int len); + +/* +** close an open file on PC +** +** passed: file-handle +** +** return: negative if error +** +*/ +int PCclose (int fd); + + +#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus) +} +#endif + +#endif /* _LIBSN_H_ */ diff --git a/toolchain/psyq-4_7/include/libsnd.h b/toolchain/psyq-4_7/include/libsnd.h new file mode 100644 index 0000000..4afb5df --- /dev/null +++ b/toolchain/psyq-4_7/include/libsnd.h @@ -0,0 +1,508 @@ +#ifndef _LIBSND_H_ +#define _LIBSND_H_ + +/***************************************************************** + * + * $RCSfile: libsnd.h,v $ + * + * Copyright (C) 1994 by Sony Computer Entertainment Inc. + * All Rights Reserved. + * + * Sony Computer Entertainment Inc. Development Department + * + *****************************************************************/ +/* + * $PSLibId: Run-time Library Release 4.7$ + */ + +#include + +/* + * Macro + */ +#define SSPLAY_INFINITY 0 +#define SS_NOTICK 0x1000 +#define SS_NOTICK0 0 +#define SS_TICK60 1 +#define SS_TICK240 2 +#define SS_TICK120 3 +#define SS_TICK50 4 +#define SS_TICKVSYNC 5 +#define SS_TICKMODE_MAX 6 +#define SSPLAY_PAUSE 0 +#define SSPLAY_PLAY 1 +#define SS_SOFF 0 +#define SS_SON 1 +#define SS_MIX 0 +#define SS_REV 1 +#define SS_SERIAL_A 0 +#define SS_SERIAL_B 1 +#define SS_MUTE_OFF 0 +#define SS_MUTE_ON 1 + +#define SS_IMEDIATE 0 +#define SS_IMMEDIATE 0 +#define SS_WAIT_COMPLETED 1 + +#define SS_REV_TYPE_OFF 0 +#define SS_REV_TYPE_ROOM 1 +#define SS_REV_TYPE_STUDIO_A 2 +#define SS_REV_TYPE_STUDIO_B 3 +#define SS_REV_TYPE_STUDIO_C 4 +#define SS_REV_TYPE_HALL 5 +#define SS_REV_TYPE_SPACE 6 +#define SS_REV_TYPE_ECHO 7 +#define SS_REV_TYPE_DELAY 8 +#define SS_REV_TYPE_PIPE 9 +#define SSSKIP_TICK 0 +#define SSSKIP_NOTE4 1 +#define SSSKIP_NOTE8 2 +#define SSSKIP_BAR 3 + +#define SS_SEQ_TABSIZ 176 + +#define SND_VOLL 1 +#define SND_VOLR 2 +#define SND_ADSR1 4 +#define SND_ADSR2 8 +#define SND_ADDR 16 +#define SND_PITCH 32 + +#ifndef NULL +#define NULL 0 +#endif + + +/* + * Vag & Vab Structure + */ +typedef struct VabHdr { /* VAB Bank Headdings */ + + long form; /* always 'VABp' */ + long ver; /* VAB file version number */ + long id; /* VAB id */ + unsigned long fsize; /* VAB file size */ + unsigned short reserved0; /* system reserved */ + unsigned short ps; /* # of the programs in this bank */ + unsigned short ts; /* # of the tones in this bank */ + unsigned short vs; /* # of the vags in this bank */ + unsigned char mvol; /* master volume for this bank */ + unsigned char pan; /* master panning for this bank */ + unsigned char attr1; /* bank attributes1 */ + unsigned char attr2; /* bank attributes2 */ + unsigned long reserved1; /* system reserved */ + +} VabHdr; /* 32 byte */ + + +typedef struct ProgAtr { /* Program Headdings */ + + unsigned char tones; /* # of tones */ + unsigned char mvol; /* program volume */ + unsigned char prior; /* program priority */ + unsigned char mode; /* program mode */ + unsigned char mpan; /* program pan */ + char reserved0; /* system reserved */ + short attr; /* program attribute */ + unsigned long reserved1; /* system reserved */ + unsigned long reserved2; /* system reserved */ + +} ProgAtr; /* 16 byte */ + + +typedef struct VagAtr { /* VAG Tone Headdings */ + + unsigned char prior; /* tone priority */ + unsigned char mode; /* play mode */ + unsigned char vol; /* tone volume*/ + unsigned char pan; /* tone panning */ + unsigned char center; /* center note */ + unsigned char shift; /* center note fine tune */ + unsigned char min; /* minimam note limit */ + unsigned char max; /* maximam note limit */ + unsigned char vibW; /* vibrate depth */ + unsigned char vibT; /* vibrate duration */ + unsigned char porW; /* portamento depth */ + unsigned char porT; /* portamento duration */ + unsigned char pbmin; /* under pitch bend max */ + unsigned char pbmax; /* upper pitch bend max */ + unsigned char reserved1; /* system reserved */ + unsigned char reserved2; /* system reserved */ + unsigned short adsr1; /* adsr1 */ + unsigned short adsr2; /* adsr2 */ + short prog; /* parent program*/ + short vag; /* vag reference */ + short reserved[4]; /* system reserved */ + +} VagAtr; /* 32 byte */ + + +/* + * Volume Structure + */ +typedef struct { + unsigned short left; /* L Channel */ + unsigned short right; /* R Channel */ +} SndVolume; + +typedef struct SndVolume2 { + short left; + short right; +} SndVolume2; + +typedef struct SndRegisterAttr { + SndVolume2 volume; + short pitch; + short mask; + short addr; + short adsr1; + short adsr2; +} SndRegisterAttr; + +typedef struct SndVoiceStats { + short vagId; + short vabId; + unsigned short pitch; + short note; + short tone; + short prog_num; + short prog_actual; + short vol; + short pan; +} SndVoiceStats; + +/* + * CallBack + */ +typedef void (*SsMarkCallbackProc)(short, short, short); + + +/* + * Prototype + */ +#if defined(_LANGUAGE_C_PLUS_PLUS) || defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif +extern short SsVabOpenHead(unsigned char*, short); +extern short SsVabOpenHeadSticky(unsigned char*, short, unsigned long); +extern short SsVabTransBody(unsigned char*, short); +extern short SsVabTransBodyPartly(unsigned char*, unsigned long, short); +extern short SsVabTransfer(unsigned char *, unsigned char *, short, short); +extern short SsVabTransCompleted(short); +extern void SsVabClose(short); + +extern void SsInit(void); +extern void SsInitHot(void); +extern void SsSetTableSize(char*, short, short); +extern void SsSetTickMode(long); +extern int SsSetTickCallback(void (*cb)()); +extern void SsStart(void); +extern void SsStart2(void); +extern void SsEnd(void); +extern void SsQuit(void); + +extern void SsSeqCalledTbyT(void); + +extern short SsSeqOpen(unsigned long*, short); +extern void SsSeqPlay(short, char, short); +extern void SsSeqPlayPtoP(short, short, unsigned char *, unsigned char *, char, short); +extern void SsSeqPause(short); +extern void SsSeqReplay(short); +extern int SsSeqSkip(short, short, char, short); +extern void SsSeqStop(short); +extern void SsSeqSetVol(short, short, short); +extern void SsSeqSetNext(short, short); +extern void SsSeqSetCrescendo(short, short, long); +extern void SsSeqSetDecrescendo(short, short, long); +extern void SsSeqSetAccelerando(short, long, long); +extern void SsSeqSetRitardando(short, long, long); +extern void SsSeqClose(short); + +extern short SsSepOpen(unsigned long*, short, short); +extern void SsSepPlay(short, short, char, short); +extern void SsSepPause(short, short); +extern void SsSepReplay(short, short); +extern void SsSepStop(short, short); +extern void SsSepSetVol(short, short, short, short); +extern void SsSepSetCrescendo(short, short, short, long); +extern void SsSepSetDecrescendo(short, short, short, long); +extern void SsSepSetAccelerando(short, short, long, long); +extern void SsSepSetRitardando(short, short, long, long); +extern void SsSepClose(short); + +extern long SsVoKeyOn(long, long, unsigned short, unsigned short); +extern long SsVoKeyOff(long, long); + +extern void SsSetMVol(short, short); +extern void SsGetMVol(SndVolume*); +extern void SsSetRVol(short, short); +extern void SsGetRVol(SndVolume*); +extern void SsSetMute(char); +extern char SsGetMute(void); +extern void SsSetSerialAttr(char, char, char); +extern char SsGetSerialAttr(char, char); +extern void SsSetSerialVol(char, short, short); +extern void SsGetSerialVol(char, SndVolume*); +extern void SsSetNck(short); +extern short SsGetNck(void); +extern void SsSetNoiseOn(short, short); +extern void SsSetNoiseOff(void); +extern void SsSetMono(void); +extern void SsSetStereo(void); +extern void SsSetTempo(short, short, short); +extern void SsSetLoop(short, short, short); +extern short SsIsEos(short, short); +extern void SsPlayBack(short, short, short); +extern void SsSetMarkCallback(short, short, SsMarkCallbackProc); +extern char SsSetReservedVoice(char); + +extern short SsUtKeyOn(short, short, short, short, short, short, short); +extern short SsUtKeyOff(short, short, short, short, short); +extern short SsUtKeyOnV(short voice, short vabId, short prog, short tone, + short note, short fine, short voll, short volr); +extern short SsUtKeyOffV(short voice); +extern short SsUtPitchBend(short, short, short, short, short); +extern short SsUtChangePitch(short, short, short, short, short, + short, short); +extern short SsUtChangeADSR(short, short, short, short, + unsigned short, unsigned short); +extern short SsUtSetVabHdr(short, VabHdr*); +extern short SsUtGetVabHdr(short, VabHdr*); +extern short SsUtSetProgAtr(short, short, ProgAtr*); +extern short SsUtGetProgAtr(short, short, ProgAtr*); +extern short SsUtSetVagAtr(short, short, short, VagAtr*); +extern short SsUtGetVagAtr(short, short, short, VagAtr*); +extern short SsUtSetDetVVol(short, short, short); +extern short SsUtGetDetVVol(short, short*, short*); +extern short SsUtSetVVol(short, short, short); +extern short SsUtGetVVol(short, short*, short*); +extern short SsUtAutoVol(short, short, short, short); +extern short SsUtAutoPan(short, short, short, short); +extern void SsUtReverbOn(void); +extern void SsUtReverbOff(void); +extern short SsUtSetReverbType(short); +extern short SsUtGetReverbType(void); +extern void SsUtSetReverbDepth(short, short); +extern void SsUtSetReverbFeedback(short); +extern void SsUtSetReverbDelay(short); +extern void SsUtAllKeyOff(short); +extern void SsSetAutoKeyOffMode (short mode); +extern void SsUtFlush(void); +extern short SsVabFakeHead(unsigned char*, short, unsigned long); +extern short SsVabFakeBody(short); +extern unsigned long SsUtGetVBaddrInSB(short); +extern long SsUtGetVagAddr(short vabId, short vagId); +extern unsigned long SsUtGetVagAddrFromTone(short vabId, short progId, + short toneId); +extern void SsSetNext(short, short, short, short); +extern void SsSeqGetVol(short, short, short*, short*); +extern void SsChannelMute(short, short, long); +extern short SsSeqOpenJ(unsigned long*, short); +extern short SsSepOpenJ(unsigned long*, short, short); +extern unsigned char* SsGetCurrentPoint(short, short); +extern int SsSetCurrentPoint(short, short, unsigned char *); +extern long SsGetChannelMute(short, short); +extern void SsSetVoiceMask(unsigned long); +extern unsigned long SsGetVoiceMask(void); +extern void SsQueueRegisters(long, SndRegisterAttr*); +extern void SsQueueKeyOn(long); +extern void SsQueueReverb(long, long); +extern short SsGetActualProgFromProg(short, short); +extern void SsSetVoiceSettings(long, SndVoiceStats*); +extern unsigned short SsPitchFromNote(short, short, unsigned char, + unsigned char); +extern short SsVoiceCheck(long, long, short); +extern char SsBlockVoiceAllocation(void); +extern char SsUnBlockVoiceAllocation(void); +extern long SsAllocateVoices(unsigned char, unsigned char); + + +#if defined(_LANGUAGE_C_PLUS_PLUS) || defined(__cplusplus) || defined(c_plusplus) +} +#endif + +/* + * for function table + */ + +#define CC_NUMBER 0 +#define CC_BANKCHANGE 1 +#define CC_DATAENTRY 2 +#define CC_MAINVOL 3 +#define CC_PANPOT 4 +#define CC_EXPRESSION 5 +#define CC_DAMPER 6 +#define CC_NRPN1 7 +#define CC_NRPN2 8 +#define CC_RPN1 9 +#define CC_RPN2 10 +#define CC_EXTERNAL 11 +#define CC_RESETALL 12 + +#define DE_PRIORITY 0 +#define DE_MODE 1 +#define DE_LIMITL 2 +#define DE_LIMITH 3 +#define DE_ADSR_AR_L 4 +#define DE_ADSR_AR_E 5 +#define DE_ADSR_DR 6 +#define DE_ADSR_SL 7 +#define DE_ADSR_SR_L 8 +#define DE_ADSR_SR_E 9 +#define DE_ADSR_RR_L 10 +#define DE_ADSR_RR_E 11 +#define DE_ADSR_SR 12 +#define DE_VIB_TIME 13 +#define DE_PORTA_DEPTH 14 +#define DE_REV_TYPE 15 +#define DE_REV_DEPTH 16 +#define DE_ECHO_FB 17 +#define DE_ECHO_DELAY 18 +#define DE_DELAY 19 + +typedef struct { + void (*noteon) (); + void (*programchange) (); + void (*pitchbend) (); + void (*metaevent) (); + void (*control[13]) (); + void (*ccentry[20]) (); +} _SsFCALL; + +#if defined(_LANGUAGE_C_PLUS_PLUS) || defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +extern void _SsNoteOn (short, short, unsigned char, unsigned char); +extern void _SsSetProgramChange(short, short, unsigned char); +extern void _SsGetMetaEvent(short, short, unsigned char); +extern void _SsSetPitchBend(short, short); +extern void _SsSetControlChange(short, short, unsigned char); +extern void _SsContBankChange(short, short); +extern void _SsContDataEntry(short, short, unsigned char); +extern void _SsContMainVol(short, short, unsigned char); +extern void _SsContPanpot(short, short, unsigned char); +extern void _SsContExpression(short, short, unsigned char); +extern void _SsContDamper(short, short, unsigned char); +extern void _SsContExternal(short, short, unsigned char); +extern void _SsContNrpn1(short, short, unsigned char); +extern void _SsContNrpn2(short, short, unsigned char); +extern void _SsContRpn1(short, short, unsigned char); +extern void _SsContRpn2(short, short, unsigned char); +extern void _SsContResetAll(short, short); + +extern void _SsSetNrpnVabAttr0(short, short, short, VagAtr, short, unsigned char); +extern void _SsSetNrpnVabAttr1(short, short, short, VagAtr, short, unsigned char); +extern void _SsSetNrpnVabAttr2(short, short, short, VagAtr, short, unsigned char); +extern void _SsSetNrpnVabAttr3(short, short, short, VagAtr, short, unsigned char); +extern void _SsSetNrpnVabAttr4(short, short, short, VagAtr, short, unsigned char); +extern void _SsSetNrpnVabAttr5(short, short, short, VagAtr, short, unsigned char); +extern void _SsSetNrpnVabAttr6(short, short, short, VagAtr, short, unsigned char); +extern void _SsSetNrpnVabAttr7(short, short, short, VagAtr, short, unsigned char); +extern void _SsSetNrpnVabAttr8(short, short, short, VagAtr, short, unsigned char); +extern void _SsSetNrpnVabAttr9(short, short, short, VagAtr, short, unsigned char); +extern void _SsSetNrpnVabAttr10(short, short, short, VagAtr, short, unsigned char); +extern void _SsSetNrpnVabAttr11(short, short, short, VagAtr, short, unsigned char); +extern void _SsSetNrpnVabAttr12(short, short, short, VagAtr, short, unsigned char); +extern void _SsSetNrpnVabAttr13(short, short, short, VagAtr, short, unsigned char); +extern void _SsSetNrpnVabAttr14(short, short, short, VagAtr, short, unsigned char); +extern void _SsSetNrpnVabAttr15(short, short, short, VagAtr, short, unsigned char); +extern void _SsSetNrpnVabAttr16(short, short, short, VagAtr, short, unsigned char); +extern void _SsSetNrpnVabAttr17(short, short, short, VagAtr, short, unsigned char); +extern void _SsSetNrpnVabAttr18(short, short, short, VagAtr, short, unsigned char); +extern void _SsSetNrpnVabAttr19(short, short, short, VagAtr, short, unsigned char); + +extern void dmy_nothing1(short, short, unsigned char, unsigned char); +extern void dmy_SsNoteOn (short, short, unsigned char, unsigned char); +extern void dmy_SsSetProgramChange(short, short, unsigned char); +extern void dmy_SsGetMetaEvent(short, short, unsigned char); +extern void dmy_SsSetPitchBend(short, short); +extern void dmy_SsSetControlChange(short, short, unsigned char); +extern void dmy_SsContBankChange(short, short); +extern void dmy_SsContDataEntry(short, short, unsigned char); +extern void dmy_SsContMainVol(short, short, unsigned char); +extern void dmy_SsContPanpot(short, short, unsigned char); +extern void dmy_SsContExpression(short, short, unsigned char); +extern void dmy_SsContDamper(short, short, unsigned char); +extern void dmy_SsContExternal(short, short, unsigned char); +extern void dmy_SsContNrpn1(short, short, unsigned char); +extern void dmy_SsContNrpn2(short, short, unsigned char); +extern void dmy_SsContRpn1(short, short, unsigned char); +extern void dmy_SsContRpn2(short, short, unsigned char); +extern void dmy_SsContResetAll(short, short); +extern void dmy_SsSetNrpnVabAttr0(short, short, short, VagAtr, short, unsigned char); +extern void dmy_SsSetNrpnVabAttr1(short, short, short, VagAtr, short, unsigned char); +extern void dmy_SsSetNrpnVabAttr2(short, short, short, VagAtr, short, unsigned char); +extern void dmy_SsSetNrpnVabAttr3(short, short, short, VagAtr, short, unsigned char); +extern void dmy_SsSetNrpnVabAttr4(short, short, short, VagAtr, short, unsigned char); +extern void dmy_SsSetNrpnVabAttr5(short, short, short, VagAtr, short, unsigned char); +extern void dmy_SsSetNrpnVabAttr6(short, short, short, VagAtr, short, unsigned char); +extern void dmy_SsSetNrpnVabAttr7(short, short, short, VagAtr, short, unsigned char); +extern void dmy_SsSetNrpnVabAttr8(short, short, short, VagAtr, short, unsigned char); +extern void dmy_SsSetNrpnVabAttr9(short, short, short, VagAtr, short, unsigned char); +extern void dmy_SsSetNrpnVabAttr10(short, short, short, VagAtr, short, unsigned char); +extern void dmy_SsSetNrpnVabAttr11(short, short, short, VagAtr, short, unsigned char); +extern void dmy_SsSetNrpnVabAttr12(short, short, short, VagAtr, short, unsigned char); +extern void dmy_SsSetNrpnVabAttr13(short, short, short, VagAtr, short, unsigned char); +extern void dmy_SsSetNrpnVabAttr14(short, short, short, VagAtr, short, unsigned char); +extern void dmy_SsSetNrpnVabAttr15(short, short, short, VagAtr, short, unsigned char); +extern void dmy_SsSetNrpnVabAttr16(short, short, short, VagAtr, short, unsigned char); +extern void dmy_SsSetNrpnVabAttr17(short, short, short, VagAtr, short, unsigned char); +extern void dmy_SsSetNrpnVabAttr18(short, short, short, VagAtr, short, unsigned char); +extern void dmy_SsSetNrpnVabAttr19(short, short, short, VagAtr, short, unsigned char); + +extern _SsFCALL SsFCALL; + +#if defined(_LANGUAGE_C_PLUS_PLUS) || defined(__cplusplus) || defined(c_plusplus) +} +#endif + + +#if 0 +jt_SsInit () +{ + SsFCALL.noteon = (void (*)())_SsNoteOn; + SsFCALL.programchange = (void (*)())_SsSetProgramChange; + SsFCALL.metaevent = (void (*)())_SsGetMetaEvent; + SsFCALL.pitchbend = (void (*)())_SsSetPitchBend; + SsFCALL.control [CC_NUMBER] = (void (*)())_SsSetControlChange; + SsFCALL.control [CC_BANKCHANGE] = (void (*)())_SsContBankChange; + SsFCALL.control [CC_MAINVOL] = (void (*)())_SsContMainVol; + SsFCALL.control [CC_PANPOT] = (void (*)())_SsContPanpot; + SsFCALL.control [CC_EXPRESSION] = (void (*)())_SsContExpression; + SsFCALL.control [CC_DAMPER] = (void (*)())_SsContDamper; + SsFCALL.control [CC_NRPN1] = (void (*)())_SsContNrpn1; + SsFCALL.control [CC_NRPN2] = (void (*)())_SsContNrpn2; + SsFCALL.control [CC_RPN1] = (void (*)())_SsContRpn1; + SsFCALL.control [CC_RPN2] = (void (*)())_SsContRpn2; + SsFCALL.control [CC_EXTERNAL] = (void (*)())_SsContExternal; + SsFCALL.control [CC_RESETALL] = (void (*)())_SsContResetAll; + SsFCALL.control [CC_DATAENTRY] = (void (*)())_SsContDataEntry; + SsFCALL.ccentry [DE_PRIORITY] = (void (*)())_SsSetNrpnVabAttr0; + SsFCALL.ccentry [DE_MODE] = (void (*)())_SsSetNrpnVabAttr1; + SsFCALL.ccentry [DE_LIMITL] = (void (*)())_SsSetNrpnVabAttr2; + SsFCALL.ccentry [DE_LIMITH] = (void (*)())_SsSetNrpnVabAttr3; + SsFCALL.ccentry [DE_ADSR_AR_L] = (void (*)())_SsSetNrpnVabAttr4; + SsFCALL.ccentry [DE_ADSR_AR_E] = (void (*)())_SsSetNrpnVabAttr5; + SsFCALL.ccentry [DE_ADSR_DR] = (void (*)())_SsSetNrpnVabAttr6; + SsFCALL.ccentry [DE_ADSR_SL] = (void (*)())_SsSetNrpnVabAttr7; + SsFCALL.ccentry [DE_ADSR_SR_L] = (void (*)())_SsSetNrpnVabAttr8; + SsFCALL.ccentry [DE_ADSR_SR_E] = (void (*)())_SsSetNrpnVabAttr9; + SsFCALL.ccentry [DE_ADSR_RR_L] = (void (*)())_SsSetNrpnVabAttr10; + SsFCALL.ccentry [DE_ADSR_RR_E] = (void (*)())_SsSetNrpnVabAttr11; + SsFCALL.ccentry [DE_ADSR_SR] = (void (*)())_SsSetNrpnVabAttr12; + SsFCALL.ccentry [DE_VIB_TIME] = (void (*)())_SsSetNrpnVabAttr13; + SsFCALL.ccentry [DE_PORTA_DEPTH] = (void (*)())_SsSetNrpnVabAttr14; + SsFCALL.ccentry [DE_REV_TYPE] = (void (*)())_SsSetNrpnVabAttr15; + SsFCALL.ccentry [DE_REV_DEPTH] = (void (*)())_SsSetNrpnVabAttr16; + SsFCALL.ccentry [DE_ECHO_FB] = (void (*)())_SsSetNrpnVabAttr17; + SsFCALL.ccentry [DE_ECHO_DELAY] = (void (*)())_SsSetNrpnVabAttr18; + SsFCALL.ccentry [DE_DELAY] = (void (*)())_SsSetNrpnVabAttr19; +} +#endif + +/* ---------------------------------------------------------------- + * End on File + * ---------------------------------------------------------------- */ +#endif /* _LIBSND_H_ */ +/* DON'T ADD STUFF AFTER THIS */ diff --git a/toolchain/psyq-4_7/include/libspu.h b/toolchain/psyq-4_7/include/libspu.h new file mode 100644 index 0000000..bc14137 --- /dev/null +++ b/toolchain/psyq-4_7/include/libspu.h @@ -0,0 +1,552 @@ +#ifndef _LIBSPU_H_ +#define _LIBSPU_H_ + +/***************************************************************** + * -*- c -*- + * $RCSfile: libspu.h,v $ + * + * Copyright (c) 1993, 1994, 1995, 1996 Sony Computer Entertainment Inc. + * All Rights Reserved. + * + * This file is part of ``PlayStation(R)'' Programmer Tool / + * Runtime Library. + * + * R & D Division, Sony Computer Entertainment Inc. + * + * $Id: libspu.h,v 1.80 1997/06/24 11:14:04 kaol Exp $ + * + *****************************************************************/ +/* + * $PSLibId: Run-time Library Release 4.7$ + */ + +/* ---------------------------------------------------------------- + * CONSTANT + * ---------------------------------------------------------------- */ + +#define SPU_SUCCESS 0 +#define SPU_INVALID_ARGS (-3) +#define SPU_DIAG (-2) +#define SPU_CHECK (-1) +#define SPU_OFF 0 +#define SPU_ON 1 +#define SPU_CLEAR 2 +#define SPU_RESET 3 +#define SPU_DONT_CARE 4 +#define SPU_ALL 0 +#define SPU_CDONLY 5 +#define SPU_VOICEONLY 6 +#define SPU_CONT 7 +#define SPU_BIT 8 +#define SPU_NULL 0 +/* Macros below will be obsoleted. */ +#define SpuDiag SPU_DIAG +#define SpuCheck SPU_CHECK +#define SpuOff SPU_OFF +#define SpuOn SPU_ON +#define SpuClear SPU_CLEAR +#define SpuReset SPU_RESET +#define SpuDontCare SPU_DONT_CARE +#define SpuALL SPU_ALL +#define SpuCDOnly SPU_CDONLY +#define SpuVoiceOnly SPU_VOICEONLY +#define SpuCont SPU_CONT +#define SpuNull SPU_NULL + +#define SPU_OFF_ENV_ON 2 +#define SPU_ON_ENV_OFF 3 +/* Macros below will be obsoleted. */ +#define SpuOffEnvOn SPU_OFF_ENV_ON +#define SpuOnEnvOff SPU_ON_ENV_OFF + +#define SPU_ERROR (-1) +/* Macros below will be obsoleted. */ +#define SpuError SPU_ERROR + +#define SPU_TRANSFER_BY_DMA 0L +#define SPU_TRANSFER_BY_IO 1L +/* Macros below will be obsoleted. */ +#define SpuTransferByDMA SPU_TRANSFER_BY_DMA +#define SpuTransferByIO SPU_TRANSFER_BY_IO +#define SpuTransByDMA SpuTransferByDMA +#define SpuTransByIO SpuTransferByIO + +#define SPU_TRANSFER_WAIT 1 +#define SPU_TRANSFER_PEEK 0 +#define SPU_TRANSFER_GLANCE SPU_TRANSFER_PEEK + +/* + * Voice designate + */ + +#ifndef __SPU_VOICE +#define __SPU_VOICE + +#define SPU_00CH (0x1L<< 0) +#define SPU_01CH (0x1L<< 1) +#define SPU_02CH (0x1L<< 2) +#define SPU_03CH (0x1L<< 3) +#define SPU_04CH (0x1L<< 4) +#define SPU_05CH (0x1L<< 5) +#define SPU_06CH (0x1L<< 6) +#define SPU_07CH (0x1L<< 7) +#define SPU_08CH (0x1L<< 8) +#define SPU_09CH (0x1L<< 9) +#define SPU_10CH (0x1L<<10) +#define SPU_11CH (0x1L<<11) +#define SPU_12CH (0x1L<<12) +#define SPU_13CH (0x1L<<13) +#define SPU_14CH (0x1L<<14) +#define SPU_15CH (0x1L<<15) +#define SPU_16CH (0x1L<<16) +#define SPU_17CH (0x1L<<17) +#define SPU_18CH (0x1L<<18) +#define SPU_19CH (0x1L<<19) + +#define SPU_20CH (0x1L<<20) +#define SPU_21CH (0x1L<<21) +#define SPU_22CH (0x1L<<22) +#define SPU_23CH (0x1L<<23) + +#define SPU_0CH SPU_00CH +#define SPU_1CH SPU_01CH +#define SPU_2CH SPU_02CH +#define SPU_3CH SPU_03CH +#define SPU_4CH SPU_04CH +#define SPU_5CH SPU_05CH +#define SPU_6CH SPU_06CH +#define SPU_7CH SPU_07CH +#define SPU_8CH SPU_08CH +#define SPU_9CH SPU_09CH + +#define SPU_ALLCH (SPU_00CH | SPU_01CH | SPU_02CH | SPU_03CH | SPU_04CH | \ + SPU_05CH | SPU_06CH | SPU_07CH | SPU_08CH | SPU_09CH | \ + SPU_10CH | SPU_11CH | SPU_12CH | SPU_13CH | SPU_14CH | \ + SPU_15CH | SPU_16CH | SPU_17CH | SPU_18CH | SPU_19CH | \ + SPU_20CH | SPU_21CH | SPU_22CH | SPU_23CH) + +#define SPU_KEYCH(x) (0x1L<<(x)) +#define SPU_VOICECH(x) SPU_KEYCH(x) + +#endif /* __SPU_VOICE */ + +/* for Voice setting */ + +#define SPU_VOICE_VOLL (0x01 << 0) /* volume (left) */ +#define SPU_VOICE_VOLR (0x01 << 1) /* volume (right) */ +#define SPU_VOICE_VOLMODEL (0x01 << 2) /* volume mode (left) */ +#define SPU_VOICE_VOLMODER (0x01 << 3) /* volume mode (right) */ +#define SPU_VOICE_PITCH (0x01 << 4) /* tone (pitch setting) */ +#define SPU_VOICE_NOTE (0x01 << 5) /* tone (note setting) */ +#define SPU_VOICE_SAMPLE_NOTE (0x01 << 6) /* waveform data sample note */ +#define SPU_VOICE_WDSA (0x01 << 7) /* waveform data start address */ +#define SPU_VOICE_ADSR_AMODE (0x01 << 8) /* ADSR Attack rate mode */ +#define SPU_VOICE_ADSR_SMODE (0x01 << 9) /* ADSR Sustain rate mode */ +#define SPU_VOICE_ADSR_RMODE (0x01 << 10) /* ADSR Release rate mode */ +#define SPU_VOICE_ADSR_AR (0x01 << 11) /* ADSR Attack rate */ +#define SPU_VOICE_ADSR_DR (0x01 << 12) /* ADSR Decay rate */ +#define SPU_VOICE_ADSR_SR (0x01 << 13) /* ADSR Sustain rate */ +#define SPU_VOICE_ADSR_RR (0x01 << 14) /* ADSR Release rate */ +#define SPU_VOICE_ADSR_SL (0x01 << 15) /* ADSR Sustain level */ +#define SPU_VOICE_LSAX (0x01 << 16) /* start address for loop */ +#define SPU_VOICE_ADSR_ADSR1 (0x01 << 17) /* ADSR adsr1 for `VagAtr' */ +#define SPU_VOICE_ADSR_ADSR2 (0x01 << 18) /* ADSR adsr2 for `VagAtr' */ + +#define SPU_VOICE_DIRECT 0 +#define SPU_VOICE_LINEARIncN 1 +#define SPU_VOICE_LINEARIncR 2 +#define SPU_VOICE_LINEARDecN 3 +#define SPU_VOICE_LINEARDecR 4 +#define SPU_VOICE_EXPIncN 5 +#define SPU_VOICE_EXPIncR 6 +#define SPU_VOICE_EXPDec 7 +#define SPU_VOICE_EXPDecN SPU_VOICE_EXPDec +#define SPU_VOICE_EXPDecR SPU_VOICE_EXPDec + +#define SPU_DECODED_FIRSTHALF 0 +#define SPU_DECODED_SECONDHALF 1 +#define SPU_DECODE_FIRSTHALF SPU_DECODED_FIRSTHALF +#define SPU_DECODE_SECONDHALF SPU_DECODED_SECONDHALF + + +#define SPU_COMMON_MVOLL (0x01 << 0) /* master volume (left) */ +#define SPU_COMMON_MVOLR (0x01 << 1) /* master volume (right) */ +#define SPU_COMMON_MVOLMODEL (0x01 << 2) /* master volume mode (left) */ +#define SPU_COMMON_MVOLMODER (0x01 << 3) /* master volume mode (right) */ +#define SPU_COMMON_RVOLL (0x01 << 4) /* reverb volume (left) */ +#define SPU_COMMON_RVOLR (0x01 << 5) /* reverb volume (right) */ +#define SPU_COMMON_CDVOLL (0x01 << 6) /* CD input volume (left) */ +#define SPU_COMMON_CDVOLR (0x01 << 7) /* CD input volume (right) */ +#define SPU_COMMON_CDREV (0x01 << 8) /* CD input reverb on/off */ +#define SPU_COMMON_CDMIX (0x01 << 9) /* CD input on/off */ +#define SPU_COMMON_EXTVOLL (0x01 << 10) /* external digital input volume (left) */ +#define SPU_COMMON_EXTVOLR (0x01 << 11) /* external digital input volume (right) */ +#define SPU_COMMON_EXTREV (0x01 << 12) /* external digital input reverb on/off */ +#define SPU_COMMON_EXTMIX (0x01 << 13) /* external digital input on/off */ + +/* for Reverb setting */ + +#define SPU_REV_MODE (0x01 << 0) /* mode setting */ +#define SPU_REV_DEPTHL (0x01 << 1) /* reverb depth (left) */ +#define SPU_REV_DEPTHR (0x01 << 2) /* reverb depth (right) */ +#define SPU_REV_DELAYTIME (0x01 << 3) /* Delay Time (ECHO, DELAY only) */ +#define SPU_REV_FEEDBACK (0x01 << 4) /* Feedback (ECHO only) */ + +#define SPU_REV_MODE_CHECK (-1) +#define SPU_REV_MODE_OFF 0 +#define SPU_REV_MODE_ROOM 1 +#define SPU_REV_MODE_STUDIO_A 2 +#define SPU_REV_MODE_STUDIO_B 3 +#define SPU_REV_MODE_STUDIO_C 4 +#define SPU_REV_MODE_HALL 5 +#define SPU_REV_MODE_SPACE 6 +#define SPU_REV_MODE_ECHO 7 +#define SPU_REV_MODE_DELAY 8 +#define SPU_REV_MODE_PIPE 9 +#define SPU_REV_MODE_MAX 10 + +#define SPU_REV_MODE_CLEAR_WA 0x100 + +/* ---------------------------------------------------------------- + * Event flushing + * ---------------------------------------------------------------- */ + +#define SPU_EVENT_KEY (0x01 << 0) +#define SPU_EVENT_PITCHLFO (0x01 << 1) +#define SPU_EVENT_NOISE (0x01 << 2) +#define SPU_EVENT_REVERB (0x01 << 3) + +#define SPU_EVENT_ALL 0 + +/* ---------------------------------------------------------------- + * Structure + * ---------------------------------------------------------------- */ + +typedef struct { + short left; /* Lch */ + short right; /* Rch */ +} SpuVolume; + +typedef struct { + unsigned long voice; /* set voice: + SpuSetVoiceAttr: each voice is a bit array + SpuGetVoiceAttr: voice is a bit value */ + unsigned long mask; /* settings attribute bit (invalid with Get) */ + SpuVolume volume; /* volume */ + SpuVolume volmode; /* volume mode */ + SpuVolume volumex; /* current volume (invalid with Set) */ + unsigned short pitch; /* tone (pitch setting) */ + unsigned short note; /* tone (note setting) */ + unsigned short sample_note; /* tone (note setting) */ + short envx; /* current envelope value (invalid with Set) */ + unsigned long addr; /* waveform data start address */ + unsigned long loop_addr; /* loop start address */ + long a_mode; /* Attack rate mode */ + long s_mode; /* Sustain rate mode */ + long r_mode; /* Release rate mode */ + unsigned short ar; /* Attack rate */ + unsigned short dr; /* Decay rate */ + unsigned short sr; /* Sustain rate */ + unsigned short rr; /* Release rate */ + unsigned short sl; /* Sustain level */ + unsigned short adsr1; /* adsr1 for `VagAtr' */ + unsigned short adsr2; /* adsr2 for `VagAtr' */ +} SpuVoiceAttr; + +typedef struct { + short voiceNum; /* voice number */ + short pad; /* padding */ + SpuVoiceAttr attr; /* voice attribute */ +} SpuLVoiceAttr; + +typedef struct { + unsigned long mask; /* settings mask */ + + long mode; /* reverb mode */ + SpuVolume depth; /* reverb depth */ + long delay; /* Delay Time (ECHO, DELAY only) */ + long feedback; /* Feedback (ECHO only) */ +} SpuReverbAttr; + +#define SPU_DECODEDDATA_SIZE 0x200 +#define SPU_DECODEDATA_SIZE SPU_DECODEDDATA_SIZE +typedef struct { + short cd_left [SPU_DECODEDDATA_SIZE]; + short cd_right [SPU_DECODEDDATA_SIZE]; + short voice1 [SPU_DECODEDDATA_SIZE]; + short voice3 [SPU_DECODEDDATA_SIZE]; +} SpuDecodedData; +typedef SpuDecodedData SpuDecodeData; + +typedef struct { + SpuVolume volume; /* volume */ + long reverb; /* reverb on/off */ + long mix; /* mixing on/off */ +} SpuExtAttr; + +typedef struct { + unsigned long mask; /* settings mask */ + + SpuVolume mvol; /* master volume */ + SpuVolume mvolmode; /* master volume mode */ + SpuVolume mvolx; /* current master volume */ + SpuExtAttr cd; /* CD input attributes */ + SpuExtAttr ext; /* external digital input attributes */ +} SpuCommonAttr; + +#ifndef __SPU_IRQCALLBACK_PROC +#define __SPU_IRQCALLBACK_PROC +typedef void (*SpuIRQCallbackProc)(void); +#endif /* __SPU_IRQCALLBACK_PROC */ +#ifndef __SPU_TRANSFERCALLBACK_PROC +#define __SPU_TRANSFERCALLBACK_PROC +typedef void (*SpuTransferCallbackProc)(void); +#endif /* __SPU_TRANSFERCALLBACK_PROC */ + +/* ---------------------------------------------------------------- + * for SPU Malloc (used in SpuInitMalloc()) + * ---------------------------------------------------------------- */ + +#define SPU_MALLOC_RECSIZ 8 + +/* ---------------------------------------------------------------- + * User specifiable global environment + * ---------------------------------------------------------------- */ + +typedef struct { + unsigned long mask; + unsigned long queueing; +} SpuEnv; + +#define SPU_ENV_EVENT_QUEUEING (0x01 << 0) + +/* ---------------------------------------------------------------- + * prototype declaration + * ---------------------------------------------------------------- */ + +#if defined(_LANGUAGE_C_PLUS_PLUS) || defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif +extern void SpuInit (void); +extern void SpuInitHot (void); +extern void SpuStart (void); +extern void SpuQuit (void); +extern long SpuSetMute (long on_off); +extern long SpuGetMute (void); +extern void SpuSetEnv (SpuEnv *env); + +extern long SpuSetNoiseClock (long n_clock); +extern long SpuGetNoiseClock (void); +extern unsigned long SpuSetNoiseVoice (long on_off, unsigned long voice_bit); +extern unsigned long SpuGetNoiseVoice (void); + +extern long SpuSetReverb (long on_off); +extern long SpuGetReverb (void); +extern long SpuSetReverbModeParam (SpuReverbAttr *attr); +extern void SpuGetReverbModeParam (SpuReverbAttr *attr); +extern long SpuSetReverbDepth (SpuReverbAttr *attr); +extern long SpuReserveReverbWorkArea (long on_off); +extern long SpuIsReverbWorkAreaReserved (long on_off); +extern unsigned long SpuSetReverbVoice (long on_off, unsigned long voice_bit); +extern unsigned long SpuGetReverbVoice (void); +extern long SpuClearReverbWorkArea (long mode); + +extern unsigned long SpuWrite (unsigned char *addr, unsigned long size); +extern unsigned long SpuWrite0 (unsigned long size); +extern unsigned long SpuRead (unsigned char *addr, unsigned long size); +extern long SpuSetTransferMode (long mode); +#define SpuSetTransMode(mode) SpuSetTransferMode((mode)) +extern long SpuGetTransferMode (void); +#define SpuGetTransMode() SpuGetTransferMode() +extern unsigned long SpuSetTransferStartAddr (unsigned long addr); +#define SpuSetTransStartAddr(addr) SpuSetTransferStartAddr((addr)) +extern unsigned long SpuGetTransferStartAddr (void); +#define SpuGetTransStartAddr() SpuGetTransferStartAddr() +extern unsigned long SpuWritePartly (unsigned char *addr, unsigned long size); + +extern long SpuIsTransferCompleted (long flag); +extern SpuTransferCallbackProc SpuSetTransferCallback (SpuTransferCallbackProc func); +extern long SpuReadDecodedData (SpuDecodedData *d_data, long flag); +#define SpuReadDecodeData(d_data,flag) SpuReadDecodedData((d_data), (flag)) + +extern long SpuSetIRQ (long on_off); +extern long SpuGetIRQ (void); +extern unsigned long SpuSetIRQAddr (unsigned long); +extern unsigned long SpuGetIRQAddr (void); +extern SpuIRQCallbackProc SpuSetIRQCallback (SpuIRQCallbackProc); + +extern void SpuSetVoiceAttr (SpuVoiceAttr *arg); +extern void SpuGetVoiceAttr (SpuVoiceAttr *arg); +extern void SpuSetKey (long on_off, unsigned long voice_bit); +extern void SpuSetKeyOnWithAttr (SpuVoiceAttr *attr); +extern long SpuGetKeyStatus (unsigned long voice_bit); +extern void SpuGetAllKeysStatus (char *status); +extern unsigned long SpuFlush (unsigned long ev); + +extern unsigned long SpuSetPitchLFOVoice (long on_off, unsigned long voice_bit); +extern unsigned long SpuGetPitchLFOVoice (void); + +extern void SpuSetCommonAttr (SpuCommonAttr *attr); +extern void SpuGetCommonAttr (SpuCommonAttr *attr); + +extern long SpuInitMalloc (long num, char *top); +extern long SpuMalloc (long size); +extern long SpuMallocWithStartAddr (unsigned long addr, long size); +extern void SpuFree (unsigned long addr); + +extern long SpuRGetAllKeysStatus (long min_, long max_, char *status); +extern long SpuRSetVoiceAttr (long min_, long max_, SpuVoiceAttr *arg); + +extern void SpuNSetVoiceAttr (int vNum, SpuVoiceAttr *arg); +extern void SpuNGetVoiceAttr (int vNum, SpuVoiceAttr *arg); + +extern void SpuLSetVoiceAttr (int num, SpuLVoiceAttr *argList); + +extern void SpuSetVoiceVolume (int vNum, short volL, short volR); +extern void SpuSetVoiceVolumeAttr (int vNum, short volL, short volR, + short volModeL, short volModeR); +extern void SpuSetVoicePitch (int vNum, unsigned short pitch); +extern void SpuSetVoiceNote (int vNum, unsigned short note); +extern void SpuSetVoiceSampleNote (int vNum, unsigned short sampleNote); +extern void SpuSetVoiceStartAddr (int vNum, unsigned long startAddr); +extern void SpuSetVoiceLoopStartAddr (int vNum, unsigned long lsa); +extern void SpuSetVoiceAR (int vNum, unsigned short AR); +extern void SpuSetVoiceDR (int vNum, unsigned short DR); +extern void SpuSetVoiceSR (int vNum, unsigned short SR); +extern void SpuSetVoiceRR (int vNum, unsigned short RR); +extern void SpuSetVoiceSL (int vNum, unsigned short SL); +extern void SpuSetVoiceARAttr (int vNum, unsigned short AR, long ARmode); +extern void SpuSetVoiceSRAttr (int vNum, unsigned short SR, long SRmode); +extern void SpuSetVoiceRRAttr (int vNum, unsigned short RR, long RRmode); +extern void SpuSetVoiceADSR (int vNum, unsigned short AR, unsigned short DR, + unsigned short SR, unsigned short RR, + unsigned short SL); +extern void SpuSetVoiceADSRAttr (int vNum, + unsigned short AR, unsigned short DR, + unsigned short SR, unsigned short RR, + unsigned short SL, + long ARmode, long SRmode, long RRmode); + +extern void SpuGetVoiceVolume (int vNum, short *volL, short *volR); +extern void SpuGetVoiceVolumeAttr (int vNum, short *volL, short *volR, + short *volModeL, short *volModeR); +extern void SpuGetVoiceVolumeX (int vNum, short *volXL, short *volXR); +extern void SpuGetVoicePitch (int vNum, unsigned short *pitch); +extern void SpuGetVoiceNote (int vNum, unsigned short *note); +extern void SpuGetVoiceSampleNote (int vNum, unsigned short *sampleNote); +extern void SpuGetVoiceEnvelope (int vNum, short *envx); +extern void SpuGetVoiceStartAddr (int vNum, unsigned long *startAddr); +extern void SpuGetVoiceLoopStartAddr (int vNum, unsigned long *loopStartAddr); +extern void SpuGetVoiceAR (int vNum, unsigned short *AR); +extern void SpuGetVoiceDR (int vNum, unsigned short *DR); +extern void SpuGetVoiceSR (int vNum, unsigned short *SR); +extern void SpuGetVoiceRR (int vNum, unsigned short *RR); +extern void SpuGetVoiceSL (int vNum, unsigned short *SL); +extern void SpuGetVoiceARAttr (int vNum, unsigned short *AR, long *ARmode); +extern void SpuGetVoiceSRAttr (int vNum, unsigned short *SR, long *SRmode); +extern void SpuGetVoiceRRAttr (int vNum, unsigned short *RR, long *RRmode); +extern void SpuGetVoiceADSR (int vNum, + unsigned short *AR, unsigned short *DR, + unsigned short *SR, unsigned short *RR, + unsigned short *SL); +extern void SpuGetVoiceADSRAttr (int vNum, + unsigned short *AR, unsigned short *DR, + unsigned short *SR, unsigned short *RR, + unsigned short *SL, + long *ARmode, long *SRmode, long *RRmode); +extern void SpuGetVoiceEnvelopeAttr (int vNum, long *keyStat, short *envx ); + +extern void SpuSetCommonMasterVolume (short mvol_left, short mvol_right); +extern void SpuSetCommonMasterVolumeAttr (short mvol_left, short mvol_right, + short mvolmode_left, + short mvolmode_right); +extern void SpuSetCommonCDMix (long cd_mix); +extern void SpuSetCommonCDVolume (short cd_left, short cd_right); +extern void SpuSetCommonCDReverb (long cd_reverb); + +extern void SpuGetCommonMasterVolume (short *mvol_left, short *mvol_right); +extern void SpuGetCommonMasterVolumeX (short *mvolx_left, short *mvolx_right); +extern void SpuGetCommonMasterVolumeAttr (short *mvol_left, short *mvol_right, + short *mvolmode_left, + short *mvolmode_right); +extern void SpuGetCommonCDMix (long *cd_mix); +extern void SpuGetCommonCDVolume (short *cd_left, short *cd_right); +extern void SpuGetCommonCDReverb (long *cd_reverb); + +extern long SpuSetReverbModeType (long mode); +extern void SpuSetReverbModeDepth (short depth_left, short depth_right); +extern void SpuSetReverbModeDelayTime (long delay); +extern void SpuSetReverbModeFeedback (long feedback); +extern void SpuGetReverbModeType (long *mode); +extern void SpuGetReverbModeDepth (short *depth_left, short *depth_right); +extern void SpuGetReverbModeDelayTime (long *delay); +extern void SpuGetReverbModeFeedback (long *feedback); +extern void SpuSetESA( long revAddr ); +#if defined(_LANGUAGE_C_PLUS_PLUS) || defined(__cplusplus) || defined(c_plusplus) +} +#endif + +/* ---------------------------------------------------------------- */ + +#define SPU_ST_NOT_AVAILABLE 0 +#define SPU_ST_ACCEPT 1 + +#define SPU_ST_ERROR (-1) +#define SPU_ST_INVALID_ARGUMENT (-2) +#define SPU_ST_WRONG_STATUS (-3) + +#define SPU_ST_STOP 2 +#define SPU_ST_IDLE 3 +#define SPU_ST_PREPARE 4 +#define SPU_ST_START 5 +#define SPU_ST_PLAY 6 +#define SPU_ST_TRANSFER 7 +#define SPU_ST_FINAL 8 + + +/* VAG's header size */ +#define SPU_ST_VAG_HEADER_SIZE 0x30 + +typedef struct { + char status; /* stream status */ + char pad1; /* padding */ + char pad2; /* padding */ + char pad3; /* padding */ + long last_size; /* the size of last transferring + (last_size <= (size / 2)) */ + unsigned long buf_addr; /* The start address of stream buffer */ + unsigned long data_addr; /* The start address of SPU streaming + data in main memory */ +} SpuStVoiceAttr; + +typedef struct { + long size; /* The size of stream buffer */ + long low_priority; /* transfer priority */ + SpuStVoiceAttr voice [24]; +} SpuStEnv; + +#ifndef __SPU_ST_TRANSFERCALLBACK_PROC +#define __SPU_ST_TRANSFERCALLBACK_PROC +typedef void (*SpuStCallbackProc)(unsigned long, long); +#endif /* __SPU_TRANSFERCALLBACK_PROC */ + +#if defined(_LANGUAGE_C_PLUS_PLUS) || defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif +extern SpuStEnv *SpuStInit (long); +extern long SpuStQuit (void); +extern long SpuStGetStatus (void); +extern unsigned long SpuStGetVoiceStatus (void); +extern long SpuStTransfer (long flag, unsigned long voice_bit); +extern SpuStCallbackProc SpuStSetPreparationFinishedCallback (SpuStCallbackProc func); +extern SpuStCallbackProc SpuStSetTransferFinishedCallback (SpuStCallbackProc func); +extern SpuStCallbackProc SpuStSetStreamFinishedCallback (SpuStCallbackProc func); +#if defined(_LANGUAGE_C_PLUS_PLUS) || defined(__cplusplus) || defined(c_plusplus) +} +#endif + +/* ---------------------------------------------------------------- + * End on File + * ---------------------------------------------------------------- */ +#endif /* _LIBSPU_H_ */ +/* DON'T ADD STUFF AFTER THIS */ diff --git a/toolchain/psyq-4_7/include/libtap.h b/toolchain/psyq-4_7/include/libtap.h new file mode 100644 index 0000000..d767543 --- /dev/null +++ b/toolchain/psyq-4_7/include/libtap.h @@ -0,0 +1,25 @@ +/* $PSLibId: Run-time Library Release 4.7$ */ +#ifndef _LIBTAP_H_ +#define _LIBTAP_H_ + +/* + * Copyright (C) 1996 Sony Computer Entertainment Inc. All Rights Reserved + * libtap.h: Multi Tap Interface + */ + +/* + * Prototypes + */ + +#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus) +extern "C" { +#endif +extern void InitTAP(char *, long, char *, long); +extern void StartTAP(void); +extern void StopTAP(void); +extern void EnableTAP(void); +extern void DisableTAP(void); +#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus) +} +#endif +#endif /* _LIBTAP_H_ */ diff --git a/toolchain/psyq-4_7/include/limits.h b/toolchain/psyq-4_7/include/limits.h new file mode 100644 index 0000000..cf47163 --- /dev/null +++ b/toolchain/psyq-4_7/include/limits.h @@ -0,0 +1,38 @@ +/* + * File:limits.h + */ +/* + * $PSLibId: Run-time Library Release 4.7$ + */ + +#ifndef _LIMITS_H +#define _LIMITS_H +/* + * This file specifies the sizes of intergral types as required by the + * proposed ANSI C standard. + */ + +#define CHAR_BIT 8 +#define SCHAR_MIN (-128) +#define SCHAR_MAX 127 +#define UCHAR_MAX 255 +#define CHAR_MIN SCHAR_MIN +#define CHAR_MAX SCHAR_MAX +#define SHRT_MIN (-32768) +#define SHRT_MAX 32767 +#define USHRT_MAX 65535 +#define INT_MIN (-2147483647-1) +#define INT_MAX 2147483647 +#define UINT_MAX 4294967295U +#define LONG_MIN (-2147483647-1) +#define LONG_MAX 2147483647 +#define ULONG_MAX 4294967295UL + +#define USI_MAX 4294967295 /* max decimal value of an "unsigned" */ +#define WORD_BIT 32 /* # of bits in a "word" or "int" */ + +#ifndef MB_LEN_MAX +#define MB_LEN_MAX 4 +#endif + +#endif /* _LIMITS_H */ diff --git a/toolchain/psyq-4_7/include/malloc.h b/toolchain/psyq-4_7/include/malloc.h new file mode 100644 index 0000000..4cb73a7 --- /dev/null +++ b/toolchain/psyq-4_7/include/malloc.h @@ -0,0 +1,41 @@ +/* + * File:malloc.h + */ +/* + * $PSLibId: Run-time Library Release 4.7$ + */ +#ifndef _MALLOC_H +#define _MALLOC_H + +#ifndef _SIZE_T +#define _SIZE_T +typedef unsigned int size_t; /* result type of the sizeof operator (ANSI) */ +#endif +#ifndef NULL +#define NULL 0 /* null pointer constant */ +#endif + +#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus) +extern "C" { +#endif +extern void InitHeap (unsigned long *, unsigned long); +extern void free(void *); +extern void *malloc(size_t); +extern void *calloc(size_t, size_t); +extern void *realloc(void *, size_t); +extern void InitHeap2 (unsigned long *, unsigned long); +extern void free2(void *); +extern void *malloc2(size_t); +extern void *calloc2(size_t, size_t); +extern void *realloc2(void *, size_t); +extern void InitHeap3(unsigned long *, unsigned long); +extern void free3(void *); +extern void *malloc3(size_t); +extern void *calloc3(size_t, size_t); +extern void *realloc3(void *, size_t); +#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus) +} +#endif + +#endif /* _MALLOC_H */ + diff --git a/toolchain/psyq-4_7/include/mcgui.h b/toolchain/psyq-4_7/include/mcgui.h new file mode 100644 index 0000000..656d1ec --- /dev/null +++ b/toolchain/psyq-4_7/include/mcgui.h @@ -0,0 +1,132 @@ +/* + * $PSLibId: Run-time Library Release 4.7$ + */ +#ifndef _MCGUI_H_ +#define _MCGUI_H_ + + +#define NEGICON_A (0x20) +#define NEGICON_B (0x10) + +#define MOUSE_LBUTTON (0x08) +#define MOUSE_RBUTTON (0x04) + +#define MCGUI_INTERNAL_FONT (0) +#define MCGUI_EXTERNAL_FONT (1) + +/* Texture Information Structure */ + +typedef struct { + unsigned long* addr; +} sMcGuiTexture; + + +/* Memory Card Information Structure */ + +typedef struct { + char file[21]; + char title[65]; + char frame; + char block; + long dataBytes; + unsigned long* iconAddr; + unsigned long* dataAddr; +} sMcGuiCards; + +/* BG Information Structure */ + +typedef struct { + short mode; + signed char scrollDirect; /* 0:Up 1:Up&Left 2:Left 3:Down&left 4:Down ...*/ + signed char scrollSpeed; /* 0:no scroll 1:1/60 2:1/30 3:1/20 */ + unsigned long* timadr; +} sMcGuiBg; + +/* Cursor Information Structure */ + +typedef struct { + char type; + unsigned char r; + unsigned char g; + unsigned char b; +} sMcGuiCursor; + +/* BGM,Sound Effects Information Structure */ + +typedef struct { + int MVOL; + struct { + int isbgm; + unsigned long* seq; + unsigned long* vh; + unsigned long* vb; + int SVOL; + int isReverb; + int reverbType; + int reverbDepth; + } bgm; + struct { + int isse; + unsigned long* vh; + unsigned long* vb; + int vol; + int prog; + int TONE_OK; + int TONE_CANCEL; + int TONE_CURSOR; + int TONE_ERROR; + } se; +} sMcGuiSnd; + +/* Controller Related Information Structure */ + +typedef struct { + volatile unsigned char* buf[2]; + struct { + int flag; + unsigned long BUTTON_OK; + unsigned long BUTTON_CANCEL; + } type1; + struct { + int flag; + unsigned long BUTTON_OK; + unsigned long BUTTON_CANCEL; + } type2; + struct { + int flag; + unsigned long BUTTON_OK; + unsigned long BUTTON_CANCEL; + } type3; + struct { + int flag; + unsigned long BUTTON_OK; + unsigned long BUTTON_CANCEL; + } type4; +} sMcGuiController; + + +/* Memory Card Screen Configuration Structure */ + +typedef struct { + sMcGuiCards cards; /* Memory Card Information */ + sMcGuiBg bg; /* BG Information */ + sMcGuiController controller; /* Controller Related Information */ + sMcGuiSnd sound; /* BGM Sound Effects Information */ + sMcGuiTexture texture; /* Texture Information */ + sMcGuiCursor cursor; /* Cursor Information */ +} McGuiEnv; + +#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus) +extern "C" { +#endif + +extern int McGuiSave(McGuiEnv* env); +extern int McGuiLoad(McGuiEnv* env); + +int McGuiSetExternalFont(McGuiEnv* env, int mode); + +#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus) +} +#endif + +#endif /* _MCGUI_H_ */ diff --git a/toolchain/psyq-4_7/include/memory.h b/toolchain/psyq-4_7/include/memory.h new file mode 100644 index 0000000..ff58946 --- /dev/null +++ b/toolchain/psyq-4_7/include/memory.h @@ -0,0 +1,44 @@ +/* + * File:memory.h + * memory functions pseudo definition header + */ +/* + * $PSLibId: Run-time Library Release 4.7$ + */ + +#ifndef _MEMORY_H +#define _MEMORY_H + +#ifndef _SIZE_T +#define _SIZE_T +typedef unsigned int size_t; /* result type of the sizeof operator (ANSI) */ +#endif + +#ifndef NULL +#define NULL 0 /* null pointer constant */ +#endif + +#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus) +extern "C" { +#endif +/* To avoid conflicting */ +extern void *memcpy (/* unsigned char *, unsigned char *, int */); +extern void *memmove(unsigned char *, const unsigned char *, int); +/* To avoid conflicting */ +extern int memcmp (/* unsigned char *, unsigned char *, int */); +extern void *memchr (const unsigned char *, unsigned char, int); +extern void *memset (/* unsigned char *, unsigned char, int */); + +extern void *bcopy(const unsigned char *, unsigned char *, int); /* src,dest */ +extern void *bzero(unsigned char *, int); +extern int bcmp (const unsigned char *, const unsigned char *, int); +#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus) +} +#endif + +#endif /* _MEMORY_H */ + + + + + diff --git a/toolchain/psyq-4_7/include/pad.h b/toolchain/psyq-4_7/include/pad.h new file mode 100644 index 0000000..f08236d --- /dev/null +++ b/toolchain/psyq-4_7/include/pad.h @@ -0,0 +1,37 @@ +#ifndef pad_h +#define pad_h + +/* Controller Pad 1 Defines */ +#define Pad1Up (1<<12) +#define Pad1Down (1<<14) +#define Pad1Left (1<<15) +#define Pad1Right (1<<13) +#define Pad1L1 (1<< 2) +#define Pad1L2 (1<< 0) +#define Pad1R1 (1<< 3) +#define Pad1R2 (1<< 1) +#define Pad1tri (1<< 4) +#define Pad1sqr (1<< 7) +#define Pad1crc (1<< 5) +#define Pad1x (1<< 6) +#define Pad1Start (1<<11) +#define Pad1Select (1<<8) + +/* Controller Pad 2 Defines */ +#define Pad2Up (1<<28) +#define Pad2Down (1<<30) +#define Pad2Left (1<<31) +#define Pad2Right (1<<29) +#define Pad2L1 (1<<18) +#define Pad2L2 (1<<16) +#define Pad2R1 (1<<19) +#define Pad2R2 (1<<17) +#define Pad2tri (1<<20) +#define Pad2sqr (1<<23) +#define Pad2crc (1<<21) +#define Pad2x (1<<22) +#define Pad2Start (1<<27) +#define Pad2Select (1<<24) + +#endif + diff --git a/toolchain/psyq-4_7/include/qsort.h b/toolchain/psyq-4_7/include/qsort.h new file mode 100644 index 0000000..58d4eab --- /dev/null +++ b/toolchain/psyq-4_7/include/qsort.h @@ -0,0 +1,30 @@ +/* + * File:qsort.h + * memory functions pseudo definition header + */ +/* + * $PSLibId: Run-time Library Release 4.7$ + */ + +#ifndef _QSORT_H +#define _QSORT_H + +#ifndef _SIZE_T +#define _SIZE_T +typedef unsigned int size_t; /* result type of the sizeof operator (ANSI) */ +#endif + +#ifndef NULL +#define NULL 0 /* null pointer constant */ +#endif + +#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus) +extern "C" { +#endif +extern void qsort(void *, size_t, size_t, int (*)()); +#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus) +} +#endif + +#endif /* _QSORT_H */ + diff --git a/toolchain/psyq-4_7/include/r3000.h b/toolchain/psyq-4_7/include/r3000.h new file mode 100644 index 0000000..2dbf13d --- /dev/null +++ b/toolchain/psyq-4_7/include/r3000.h @@ -0,0 +1,244 @@ +/* + * File:r3000.h + */ +/* + * $PSLibId: Run-time Library Release 4.7$ + */ +#ifndef _R3000_H +#define _R3000_H +/* + * Segment base addresses and sizes + */ +#define K0BASE 0x80000000 +#define K0SIZE 0x20000000 +#define K1BASE 0xA0000000 +#define K1SIZE 0x20000000 +#define K2BASE 0xC0000000 +#define K2SIZE 0x20000000 + +/* + * Exception vectors + */ +#define UT_VEC K0BASE /* utlbmiss vector */ +#define E_VEC (K0BASE+0x80) /* exception vector */ +#define R_VEC (K1BASE+0x1fc00000) /* reset vector */ + +/* + * Address conversion macros + */ +#define K0_TO_K1(x) ((unsigned)(x)|0xA0000000) /* kseg0 to kseg1 */ +#define K1_TO_K0(x) ((unsigned)(x)&0x9FFFFFFF) /* kseg1 to kseg0 */ +#define K0_TO_PHYS(x) ((unsigned)(x)&0x1FFFFFFF) /* kseg0 to physical */ +#define K1_TO_PHYS(x) ((unsigned)(x)&0x1FFFFFFF) /* kseg1 to physical */ +#define PHYS_TO_K0(x) ((unsigned)(x)|0x80000000) /* physical to kseg0 */ +#define PHYS_TO_K1(x) ((unsigned)(x)|0xA0000000) /* physical to kseg1 */ + +/* + * Address predicates + */ +#define IS_KSEG0(x) ((unsigned)(x) >= K0BASE && (unsigned)(x) < K1BASE) +#define IS_KSEG1(x) ((unsigned)(x) >= K1BASE && (unsigned)(x) < K2BASE) +#define IS_KSEG2(x) ((unsigned)(x) >= K2BASE && (unsigned)(x) < KPTEBASE) +#define IS_KPTESEG(x) ((unsigned)(x) >= KPTEBASE) +#define IS_KUSEG(x) ((unsigned)(x) < K0BASE) + +/* + * Cache size constants + */ +#define MINCACHE +(4*1024) /* leading plus for mas's benefit */ +#define MAXCACHE +(64*1024) /* leading plus for mas's benefit */ + + +/* + * Status register + */ +#define SR_CUMASK 0xf0000000 /* coproc usable bits */ + +#define SR_CU3 0x80000000 /* Coprocessor 3 usable */ +#define SR_CU2 0x40000000 /* Coprocessor 2 usable */ +#define SR_CU1 0x20000000 /* Coprocessor 1 usable */ +#define SR_CU0 0x10000000 /* Coprocessor 0 usable */ + +#define SR_BEV 0x00400000 /* use boot exception vectors */ + +/* Cache control bits */ +#define SR_TS 0x00200000 /* TLB shutdown */ +#define SR_PE 0x00100000 /* cache parity error */ +#define SR_CM 0x00080000 /* cache miss */ +#define SR_PZ 0x00040000 /* cache parity zero */ +#define SR_SWC 0x00020000 /* swap cache */ +#define SR_ISC 0x00010000 /* Isolate data cache */ + +#define SR_MM_MODE 0x00010000 /* lwl/swl/etc become scache/etc */ +#define lcache lwl +#define scache swl +#define flush lwr $0, +#define inval swr $0, + +/* + * Interrupt enable bits + * (NOTE: bits set to 1 enable the corresponding level interrupt) + */ +#define SR_IMASK 0x0000ff00 /* Interrupt mask */ +#define SR_IMASK8 0x00000000 /* mask level 8 */ +#define SR_IMASK7 0x00008000 /* mask level 7 */ +#define SR_IMASK6 0x0000c000 /* mask level 6 */ +#define SR_IMASK5 0x0000e000 /* mask level 5 */ +#define SR_IMASK4 0x0000f000 /* mask level 4 */ +#define SR_IMASK3 0x0000f800 /* mask level 3 */ +#define SR_IMASK2 0x0000fc00 /* mask level 2 */ +#define SR_IMASK1 0x0000fe00 /* mask level 1 */ +#define SR_IMASK0 0x0000ff00 /* mask level 0 */ + +#define SR_IBIT8 0x00008000 /* bit level 8 */ +#define SR_IBIT7 0x00004000 /* bit level 7 */ +#define SR_IBIT6 0x00002000 /* bit level 6 */ +#define SR_IBIT5 0x00001000 /* bit level 5 */ +#define SR_IBIT4 0x00000800 /* bit level 4 */ +#define SR_IBIT3 0x00000400 /* bit level 3 */ +#define SR_IBIT2 0x00000200 /* bit level 2 */ +#define SR_IBIT1 0x00000100 /* bit level 1 */ + +#define SR_KUO 0x00000020 /* old kernel/user, 0 => k, 1 => u */ +#define SR_IEO 0x00000010 /* old interrupt enable, 1 => enable */ +#define SR_KUP 0x00000008 /* prev kernel/user, 0 => k, 1 => u */ +#define SR_IEP 0x00000004 /* prev interrupt enable, 1 => enable */ +#define SR_KUC 0x00000002 /* cur kernel/user, 0 => k, 1 => u */ +#define SR_IEC 0x00000001 /* cur interrupt enable, 1 => enable */ + +#define SR_IMASKSHIFT 8 + +#define SR_FMT "\20\40BD\26TS\25PE\24CM\23PZ\22SwC\21IsC\20IM7\17IM6\16IM5\15IM4\14IM3\13IM2\12IM1\11IM0\6KUo\5IEo\4KUp\3IEp\2KUc\1IEc" + +/* + * Cause Register + */ +#define CAUSE_BD 0x80000000 /* Branch delay slot */ +#define CAUSE_CEMASK 0x30000000 /* coprocessor error */ +#define CAUSE_CESHIFT 28 + +/* Interrupt pending bits */ +#define CAUSE_IP8 0x00008000 /* External level 8 pending */ +#define CAUSE_IP7 0x00004000 /* External level 7 pending */ +#define CAUSE_IP6 0x00002000 /* External level 6 pending */ +#define CAUSE_IP5 0x00001000 /* External level 5 pending */ +#define CAUSE_IP4 0x00000800 /* External level 4 pending */ +#define CAUSE_IP3 0x00000400 /* External level 3 pending */ +#define CAUSE_SW2 0x00000200 /* Software level 2 pending */ +#define CAUSE_SW1 0x00000100 /* Software level 1 pending */ + +#define CAUSE_IPMASK 0x0000FF00 /* Pending interrupt mask */ +#define CAUSE_IPSHIFT 8 + +#define CAUSE_EXCMASK 0x0000003C /* Cause code bits */ +#define CAUSE_EXCSHIFT 2 + +#define CAUSE_FMT "\20\40BD\36CE1\35CE0\20IP8\17IP7\16IP6\15IP5\14IP4\13IP3\12SW2\11SW1\1INT" + +/* Cause register exception codes */ + +#define EXC_CODE(x) ((x)<<2) + +/* Hardware exception codes */ +#define EXC_INT EXC_CODE(0) /* interrupt */ +#define EXC_MOD EXC_CODE(1) /* TLB mod */ +#define EXC_RMISS EXC_CODE(2) /* Read TLB Miss */ +#define EXC_WMISS EXC_CODE(3) /* Write TLB Miss */ +#define EXC_RADE EXC_CODE(4) /* Read Address Error */ +#define EXC_WADE EXC_CODE(5) /* Write Address Error */ +#define EXC_IBE EXC_CODE(6) /* Instruction Bus Error */ +#define EXC_DBE EXC_CODE(7) /* Data Bus Error */ +#define EXC_SYSCALL EXC_CODE(8) /* SYSCALL */ +#define EXC_BREAK EXC_CODE(9) /* BREAKpoint */ +#define EXC_II EXC_CODE(10) /* Illegal Instruction */ +#define EXC_CPU EXC_CODE(11) /* CoProcessor Unusable */ +#define EXC_OV EXC_CODE(12) /* OVerflow */ + +/* software exception codes */ +#define SEXC_SEGV EXC_CODE(16) /* Software detected seg viol */ +#define SEXC_RESCHED EXC_CODE(17) /* resched request */ +#define SEXC_PAGEIN EXC_CODE(18) /* page-in request */ +#define SEXC_CPU EXC_CODE(19) /* coprocessor unusable */ + + +/* + * Coprocessor 0 registers + */ +#define C0_INX $0 /* tlb index */ +#define C0_RAND $1 /* tlb random */ +#define C0_TLBLO $2 /* tlb entry low */ + +#define C0_CTXT $4 /* tlb context */ + +#define C0_PIDMASK $6 /* Mips2 */ + +#define C0_BADVADDR $8 /* bad virtual address */ + +#define C0_TLBHI $10 /* tlb entry hi */ +#define C0_PID $10 /* Mips2 */ + +#define C0_SR $12 /* status register */ +#define C0_CAUSE $13 /* exception cause */ +#define C0_EPC $14 /* exception pc */ +#define C0_PRID $15 /* revision identifier */ +#define C0_ERREG $16 /* Mips2 */ + +/* + * Coprocessor 0 operations + */ +#define C0_READI 0x1 /* read ITLB entry addressed by C0_INDEX */ +#define C0_WRITEI 0x2 /* write ITLB entry addressed by C0_INDEX */ +#define C0_WRITER 0x6 /* write ITLB entry addressed by C0_RAND */ +#define C0_PROBE 0x8 /* probe for ITLB entry addressed by TLBHI */ +#define C0_RFE 0x10 /* restore for exception */ + +/* + * Flags for the nofault handler. 0 means no fault is expected. + */ +#define NF_BADADDR 1 /* badaddr, wbadaddr */ +#define NF_COPYIO 2 /* copyin, copyout */ +#define NF_ADDUPC 3 /* addupc */ +#define NF_FSUMEM 4 /* fubyte, subyte, fuword, suword */ +#define NF_USERACC 5 /* useracc */ +#define NF_SOFTFP 6 /* softfp */ +#define NF_REVID 7 /* revision ids */ +#define NF_NENTRIES 8 + +/* + * TLB size constants + */ +#define TLBWIREDBASE 0 /* WAG for now */ +#define NWIREDENTRIES 8 /* WAG for now */ +#define TLBRANDOMBASE NWIREDENTRIES +#define NRANDOMENTRIES (NTLBENTRIES-NWIREDENTRIES) +#define NTLBENTRIES 64 /* WAG for now */ + +#define TLBRAND_RANDMASK 0x00003f00 +#define TLBRAND_RANDSHIFT 8 + + +/* + * Chip interrupt vector + */ +#define NC0VECS 8 +#ifndef LOCORE +#ifdef KERNEL +#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus) +extern "C" { +#endif +extern int (*c0vec_tbl[])(); +#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus) +} +#endif +#endif +#endif /* !LOCORE */ + +#define BRK_KERNEL 0xf1 +#define EXCEPT_NORM 1 +#define EXCEPT_UTLB 2 +#define EXCEPT_BRKPT 3 +#define EXCEPT_DB 4 +#define EXCEPT_GDB 4 +#define EXCEPT_INT 9 +#define EXCEPT_ELSE 0xff +#endif /* _R3000_H */ diff --git a/toolchain/psyq-4_7/include/rand.h b/toolchain/psyq-4_7/include/rand.h new file mode 100644 index 0000000..8002ac6 --- /dev/null +++ b/toolchain/psyq-4_7/include/rand.h @@ -0,0 +1,22 @@ +/* + * File:rand.h + */ +/* + * $PSLibId: Run-time Library Release 4.7$ + */ + +#ifndef _RAND_H +#define _RAND_H + +#define RAND_MAX 32767 + +#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus) +extern "C" { +#endif +extern int rand(void); +extern void srand(unsigned int); +#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus) +} +#endif + +#endif /* _RAND_H */ diff --git a/toolchain/psyq-4_7/include/romio.h b/toolchain/psyq-4_7/include/romio.h new file mode 100644 index 0000000..1a7430e --- /dev/null +++ b/toolchain/psyq-4_7/include/romio.h @@ -0,0 +1,15 @@ +/* + * romio.h + * + * rom monitor i/o + */ +/* + * $PSLibId: Run-time Library Release 4.7$ + */ + +#ifndef _ROMIO_H +#define _ROMIO_H + +#include + +#endif /* _ROMIO_H */ diff --git a/toolchain/psyq-4_7/include/setjmp.h b/toolchain/psyq-4_7/include/setjmp.h new file mode 100644 index 0000000..24002d9 --- /dev/null +++ b/toolchain/psyq-4_7/include/setjmp.h @@ -0,0 +1,40 @@ +/* + * $PSLibId: Run-time Library Release 4.7$ + */ +/* + * File:setjmp.h + * simple non-local-jump for single task environment + */ + +#ifndef _SETJMP_H +#define _SETJMP_H + +/* jmp_buf indices */ +#define JB_PC 0 +#define JB_SP 1 +#define JB_FP 2 +#define JB_S0 3 +#define JB_S1 4 +#define JB_S2 5 +#define JB_S3 6 +#define JB_S4 7 +#define JB_S5 8 +#define JB_S6 9 +#define JB_S7 10 +#define JB_GP 11 + +#define JB_SIZE 12 + +#if defined(_LANGUAGE_C)||defined(LANGUAGE_C)||defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus) +typedef int jmp_buf[JB_SIZE]; +#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus) +extern "C" { +#endif +extern int setjmp(jmp_buf); +extern void longjmp(jmp_buf, int); +#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus) +} +#endif +#endif + +#endif /* _SETJMP_H */ diff --git a/toolchain/psyq-4_7/include/stdarg.h b/toolchain/psyq-4_7/include/stdarg.h new file mode 100644 index 0000000..6d23388 --- /dev/null +++ b/toolchain/psyq-4_7/include/stdarg.h @@ -0,0 +1,27 @@ +/* + * File:stdarg.h + */ +/* + * $PSLibId: Run-time Library Release 4.7$ + */ + +#ifndef _STDARG_H +#define _STDARG_H + + +#define __va_rounded_size(TYPE) \ + (((sizeof (TYPE) + sizeof (int) - 1) / sizeof (int)) * sizeof (int)) + +#define va_start(AP, LASTARG) \ + (AP = ((char *)&(LASTARG) + __va_rounded_size(LASTARG))) + +#define va_end(AP) AP = (char *)NULL + +#define va_arg(AP, TYPE) \ + (AP = ((char *) (AP)) += __va_rounded_size (TYPE), \ + *((TYPE *) ((char *) (AP) - __va_rounded_size (TYPE)))) + + +typedef void *va_list; + +#endif /* _STDARG_H */ diff --git a/toolchain/psyq-4_7/include/stddef.h b/toolchain/psyq-4_7/include/stddef.h new file mode 100644 index 0000000..61932d1 --- /dev/null +++ b/toolchain/psyq-4_7/include/stddef.h @@ -0,0 +1,50 @@ +/* + * File:stddef.h + */ +/* + * $PSLibId: Run-time Library Release 4.7$ + */ + +#ifndef _STDDEF_H +#define _STDDEF_H + + +#ifndef _SIZE_T +#define _SIZE_T +typedef unsigned int size_t; /* result type of the sizeof operator (ANSI) */ +#endif + +#ifndef _WCHAR_T +#define _WCHAR_T +typedef unsigned long wchar_t; /* type of a wide character */ +#endif + +#ifndef _UCHAR_T +#define _UCHAR_T +typedef unsigned char u_char; +#endif + +#ifndef _USHORT_T +#define _USHORT_T +typedef unsigned short u_short; +#endif + +#ifndef _UINT_T +#define _UINT_T +typedef unsigned int u_int; +#endif + +#ifndef _ULONG_T +#define _ULONG_T +typedef unsigned long u_long; +#endif + +#ifndef WEOF +#define WEOF 0xffffffff +#endif + +#ifndef NULL +#define NULL 0 /* null pointer constant */ +#endif + +#endif /* _STDDEF_H */ diff --git a/toolchain/psyq-4_7/include/stdio.h b/toolchain/psyq-4_7/include/stdio.h new file mode 100644 index 0000000..41c0085 --- /dev/null +++ b/toolchain/psyq-4_7/include/stdio.h @@ -0,0 +1,47 @@ +/* + * $PSLibId: Run-time Library Release 4.7$ + */ +/* + * File:stdio.h +*/ + +#ifndef _STDIO_H +#define _STDIO_H + +#define BUFSIZ 1024 +#define EOF (-1) + +#ifndef SEEK_SET +#define SEEK_SET 0 +#endif +#ifndef SEEK_CUR +#define SEEK_CUR 1 +#endif +#ifndef SEEK_END +#define SEEK_END 2 +#endif + +#ifndef _SIZE_T +#define _SIZE_T +typedef unsigned int size_t; /* result type of the sizeof operator (ANSI) */ +#endif + +/* under constraction now */ + +#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus) +extern "C" { +#endif +extern int printf(const char *fmt, ...); /**/ +extern int sprintf(char *buffer, const char *fmt, ...); + +extern char getc(int); /**/ +extern char getchar(void); +extern char *gets(char *); +extern void putc(char, int); /**/ +extern void putchar(char); +extern void puts(const char *); +#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus) +} +#endif + +#endif /* _STDIO_H */ diff --git a/toolchain/psyq-4_7/include/stdlib.h b/toolchain/psyq-4_7/include/stdlib.h new file mode 100644 index 0000000..6bcf493 --- /dev/null +++ b/toolchain/psyq-4_7/include/stdlib.h @@ -0,0 +1,30 @@ +/* + * File:stdlib.h +*/ +/* + * $PSLibId: Run-time Library Release 4.7$ + */ + +#ifndef _STDLIB_H +#define _STDLIB_H + +#include +#include +#include +#include +#include +#include + +#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus) +extern "C" { +#endif + +extern void *bsearch(const unsigned char *, const unsigned char *, + size_t, size_t, int (*)()); +extern void exit(); + +#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus) +} +#endif + +#endif /* _STDLIB_H */ diff --git a/toolchain/psyq-4_7/include/string.h b/toolchain/psyq-4_7/include/string.h new file mode 100644 index 0000000..73d8fea --- /dev/null +++ b/toolchain/psyq-4_7/include/string.h @@ -0,0 +1,26 @@ +#ifndef _STRING_H +#define _STRING_H + +/***************************************************************** + * -*- c -*- + * $RCSfile$ + * + * Copyright (C) 1994, 1995 by Sony Computer Entertainment Inc. + * All Rights Reserved. + * + * Sony Computer Entertainment Inc. R & D Division + * + * $Id$ + * + *****************************************************************/ +/* + * $PSLibId: Run-time Library Release 4.7$ + */ + +#include + +/* ---------------------------------------------------------------- + * End on File + * ---------------------------------------------------------------- */ +#endif /* _STRING_H_ */ +/* DON'T ADD STUFF AFTER THIS */ diff --git a/toolchain/psyq-4_7/include/strings.h b/toolchain/psyq-4_7/include/strings.h new file mode 100644 index 0000000..84da8bf --- /dev/null +++ b/toolchain/psyq-4_7/include/strings.h @@ -0,0 +1,52 @@ +/* + * File:strings.h + * string functions pseudo definition header + */ +/* + * $PSLibId: Run-time Library Release 4.7$ + */ + +#ifndef _STRINGS_H +#define _STRINGS_H + +#define LMAX 256 + +#ifndef NULL +#define NULL 0 /* null pointer constant */ +#endif + +#ifndef _SIZE_T +#define _SIZE_T +typedef unsigned int size_t; /* result type of the sizeof operator (ANSI) */ +#endif + +#include + +#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus) +extern "C" { +#endif +extern char *strcat (char *, const char *); +extern char *strncat(char *, const char *, int); +extern int strcmp (/* char *, char * */); /* To avoid conflicting */ +extern int strncmp(const char *,const char *, int); +extern char *strcpy (/* char *, char * */); /* To avoid conflicting */ +extern char *strncpy(char *, const char *, int); +extern unsigned int strlen (/* char * */); /* To avoid conflicting */ +extern char *index (const char *, char); +extern char *rindex (const char *, char); + +extern char *strchr (const char *, char); +extern char *strrchr(const char *, char); +extern char *strpbrk(const char *, const char *); +extern int strspn (const char *, const char *); +extern int strcspn(const char *, const char *); +extern char *strtok (char *, const char *); +extern char *strstr (const char *, const char *); +#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus) +} +#endif + +#define strdup(p) ( strcpy(malloc(strlen(p)+1),p); ) + +#endif /* _STRINGS_H */ + diff --git a/toolchain/psyq-4_7/include/sys/errno.h b/toolchain/psyq-4_7/include/sys/errno.h new file mode 100644 index 0000000..1ff6daa --- /dev/null +++ b/toolchain/psyq-4_7/include/sys/errno.h @@ -0,0 +1,59 @@ +/* + * Error codes + * $RCSfile: errno.h,v $ + * $Id: errno.h,v 1.3 1995/02/28 10:02:53 yoshi Exp $ + */ +/* + * $PSLibId: Run-time Library Release 4.6$ + */ + +#ifndef _ERRNO_H +#define _ERRNO_H + +/* Error codes */ + +#define EPERM 1 /* Not owner */ +#define ENOENT 2 /* No such file or directory */ +#define ESRCH 3 /* No such process */ +#define EINTR 4 /* Interrupted system call */ +#define EIO 5 /* I/O error */ +#define ENXIO 6 /* No such device or address */ +#define E2BIG 7 /* Arg list too long */ +#define ENOEXEC 8 /* Exec format error */ +#define EBADF 9 /* Bad file number */ +#define ECHILD 10 /* No children */ +#define EAGAIN 11 /* No more processes */ +#define ENOMEM 12 /* Not enough core */ +#define EACCES 13 /* Permission denied */ +#define EFAULT 14 /* Bad address */ +#define ENOTBLK 15 /* Block device required */ +#define EBUSY 16 /* Mount device busy */ +#define EEXIST 17 /* File exists */ +#define EXDEV 18 /* Cross-device link */ +#define ENODEV 19 /* No such device */ +#define ENOTDIR 20 /* Not a directory*/ +#define EISDIR 21 /* Is a directory */ +#define EINVAL 22 /* Invalid argument */ +#define ENFILE 23 /* File table overflow */ +#define EMFILE 24 /* Too many open files */ +#define ENOTTY 25 /* Not a typewriter */ +#define ETXTBSY 26 /* Text file busy */ +#define EFBIG 27 /* File too large */ +#define ENOSPC 28 /* No space left on device */ +#define ESPIPE 29 /* Illegal seek */ +#define EROFS 30 /* Read-only file system */ +#define EFORMAT 31 /* Bad file format */ +#define EPIPE 32 /* Broken pipe */ + +/* math software */ +#define EDOM 33 /* Argument too large */ +#define ERANGE 34 /* Result too large */ + +/* non-blocking and interrupt i/o */ +#define EWOULDBLOCK 35 /* Operation would block */ +#define EINPROGRESS 36 /* Operation now in progress */ +#define EALREADY 37 /* Operation already in progress */ + +extern int errno; + +#endif /* _ERRNO_H */ diff --git a/toolchain/psyq-4_7/include/sys/fcntl.h b/toolchain/psyq-4_7/include/sys/fcntl.h new file mode 100644 index 0000000..f81e23b --- /dev/null +++ b/toolchain/psyq-4_7/include/sys/fcntl.h @@ -0,0 +1,25 @@ +/* + * File:fcntl.h + */ +/* + * $PSLibId: Run-time Library Release 4.6$ + */ + +#ifndef _SYS_FCNTL_H +#define _SYS_FCNTL_H + +/* flags */ +#define FREAD 0x0001 /* readable */ +#define FWRITE 0x0002 /* writable */ +#define FNBLOCK 0x0004 /* non-blocking reads */ +#define FRLOCK 0x0010 /* read locked (non-shared) */ +#define FWLOCK 0x0020 /* write locked (non-shared) */ +#define FAPPEND 0x0100 /* append on each write */ +#define FCREAT 0x0200 /* create if nonexistant */ +#define FTRUNC 0x0400 /* truncate to zero length */ +#define FSCAN 0x1000 /* scan type */ +#define FRCOM 0x2000 /* remote command entry */ +#define FNBUF 0x4000 /* no ring buf. and console interrupt */ +#define FASYNC 0x8000 /* asyncronous i/o */ + +#endif /* _SYS_FCNTL_H */ diff --git a/toolchain/psyq-4_7/include/sys/file.h b/toolchain/psyq-4_7/include/sys/file.h new file mode 100644 index 0000000..d0f5e29 --- /dev/null +++ b/toolchain/psyq-4_7/include/sys/file.h @@ -0,0 +1,33 @@ +/* + * File:file.h +*/ +/* + * $PSLibId: Run-time Library Release 4.6$ + */ + +#ifndef _SYS_FILE_H +#define _SYS_FILE_H + +#include + +/* Flag for open() */ +#define O_RDONLY FREAD +#define O_WRONLY FWRITE +#define O_RDWR FREAD|FWRITE +#define O_CREAT FCREAT /* open with file create */ +#define O_NOBUF FNBUF /* no device buffer and console interrupt */ +#define O_NBLOCK FNBLOCK /* non blocking mode */ +#define O_NOWAIT FASYNC /* asyncronous i/o */ + +#ifndef SEEK_SET +#define SEEK_SET 0 +#endif +#ifndef SEEK_CUR +#define SEEK_CUR 1 +#endif +#ifndef SEEK_END +#define SEEK_END 2 +#endif + +#endif /* _SYS_FILE_H */ + diff --git a/toolchain/psyq-4_7/include/sys/ioctl.h b/toolchain/psyq-4_7/include/sys/ioctl.h new file mode 100644 index 0000000..c9ac62d --- /dev/null +++ b/toolchain/psyq-4_7/include/sys/ioctl.h @@ -0,0 +1,44 @@ +/* + * File:ioctl.h + */ +/* + * $PSLibId: Run-time Library Release 4.6$ + */ + +#ifndef _SYS_IOCTL_H +#define _SYS_IOCTL_H + + +#ifndef NULL +#define NULL 0 +#endif + +#ifndef EOF +#define EOF (-1) /* EOF from getc() */ +#endif + +/* general */ +#define FIOCNBLOCK (('f'<<8)|1) /* set non-blocking io */ +#define FIOCSCAN (('f'<<8)|2) /* scan for input */ + +/* tty and sio */ +#define TIOCRAW (('t'<<8)|1) /* disable xon/xoff control */ +#define TIOCFLUSH (('t'<<8)|2) /* flush input buffer */ +#define TIOCREOPEN (('t'<<8)|3) /* reopen */ +#define TIOCBAUD (('t'<<8)|4) /* set baud rate */ +#define TIOCEXIT (('t'<<8)|5) /* console interrup */ +#define TIOCDTR (('t'<<8)|6) /* control DTR line */ +#define TIOCRTS (('t'<<8)|7) /* control RTS line */ +#define TIOCLEN (('t'<<8)|8) /* stop<<16 | char */ + /* stop 0:none 1:1 2:1.5 3:2bit */ + /* char 0:5 1:6 2:7 3:8bit */ +#define TIOCPARITY (('t'<<8)|9) /* parity 0:none 1:e 3:o */ +#define TIOSTATUS (('t'<<8)|10) /* return status */ +#define TIOERRRST (('t'<<8)|11) /* error reset */ +#define TIOEXIST (('t'<<8)|12) /* exist test with DTR/CTS */ +#define TIORLEN (('t'<<8)|13) /* receive buffer length */ + +/* disk */ +#define DIOFORMAT (('d'<<8)|1) /* format */ + +#endif /* _SYS_IOCTL_H */ diff --git a/toolchain/psyq-4_7/include/sys/types.h b/toolchain/psyq-4_7/include/sys/types.h new file mode 100644 index 0000000..c3eaca6 --- /dev/null +++ b/toolchain/psyq-4_7/include/sys/types.h @@ -0,0 +1,80 @@ +/* + * File:types.h + */ +/* + * $PSLibId: Run-time Library Release 4.6$ + */ + +#ifndef _SYS_TYPES_H +#define _SYS_TYPES_H + +/* + * Basic system types and major/minor device constructing/busting macros. + */ + +/* major part of a device */ +#define major(x) ((int)(((unsigned)(x)>>8)&0377)) + +/* minor part of a device */ +#define minor(x) ((int)((x)&0377)) + +/* make a device number */ +#define makedev(x,y) ((dev_t)(((x)<<8) | (y))) + +#ifndef _UCHAR_T +#define _UCHAR_T +typedef unsigned char u_char; +#endif +#ifndef _USHORT_T +#define _USHORT_T +typedef unsigned short u_short; +#endif +#ifndef _UINT_T +#define _UINT_T +typedef unsigned int u_int; +#endif +#ifndef _ULONG_T +#define _ULONG_T +typedef unsigned long u_long; +#endif +#ifndef _SYSIII_USHORT +#define _SYSIII_USHORT +typedef unsigned short ushort; /* sys III compat */ +#endif +#ifndef __psx__ +#ifndef _SYSV_UINT +#define _SYSV_UINT +typedef unsigned int uint; /* sys V compat */ +#endif +#ifndef _SYSV_ULONG +#define _SYSV_ULONG +typedef unsigned long ulong; /* sys V compat */ +#endif +#endif /* ! __psx__ */ + +typedef struct _physadr { int r[1]; } *physadr; +typedef struct label_t { + int val[12]; +} label_t; + +typedef struct _quad { long val[2]; } quad; +typedef long daddr_t; +typedef char * caddr_t; +typedef long * qaddr_t; /* should be typedef quad * qaddr_t; */ +typedef u_long ino_t; +typedef long swblk_t; + +#ifndef _SIZE_T +#define _SIZE_T +typedef unsigned int size_t; +#endif + +typedef long time_t; +typedef short dev_t; +typedef long off_t; +typedef u_short uid_t; +typedef u_short gid_t; + +#define NBBY 8 /* number of bits in a byte */ + +#endif /* _SYS_TYPES_H */ diff --git a/toolchain/psyq-4_7/include/types.h b/toolchain/psyq-4_7/include/types.h new file mode 100644 index 0000000..5fe5a83 --- /dev/null +++ b/toolchain/psyq-4_7/include/types.h @@ -0,0 +1,80 @@ +/* + * File:types.h + */ +/* + * $PSLibId: Run-time Library Release 4.7$ + */ + +#ifndef _SYS_TYPES_H +#define _SYS_TYPES_H + +/* + * Basic system types and major/minor device constructing/busting macros. + */ + +/* major part of a device */ +#define major(x) ((int)(((unsigned)(x)>>8)&0377)) + +/* minor part of a device */ +#define minor(x) ((int)((x)&0377)) + +/* make a device number */ +#define makedev(x,y) ((dev_t)(((x)<<8) | (y))) + +#ifndef _UCHAR_T +#define _UCHAR_T +typedef unsigned char u_char; +#endif +#ifndef _USHORT_T +#define _USHORT_T +typedef unsigned short u_short; +#endif +#ifndef _UINT_T +#define _UINT_T +typedef unsigned int u_int; +#endif +#ifndef _ULONG_T +#define _ULONG_T +typedef unsigned long u_long; +#endif +#ifndef _SYSIII_USHORT +#define _SYSIII_USHORT +typedef unsigned short ushort; /* sys III compat */ +#endif +#ifndef __psx__ +#ifndef _SYSV_UINT +#define _SYSV_UINT +typedef unsigned int uint; /* sys V compat */ +#endif +#ifndef _SYSV_ULONG +#define _SYSV_ULONG +typedef unsigned long ulong; /* sys V compat */ +#endif +#endif /* ! __psx__ */ + +typedef struct _physadr { int r[1]; } *physadr; +typedef struct label_t { + int val[12]; +} label_t; + +typedef struct _quad { long val[2]; } quad; +typedef long daddr_t; +typedef char * caddr_t; +typedef long * qaddr_t; /* should be typedef quad * qaddr_t; */ +typedef u_long ino_t; +typedef long swblk_t; + +#ifndef _SIZE_T +#define _SIZE_T +typedef unsigned int size_t; +#endif + +typedef long time_t; +typedef short dev_t; +typedef long off_t; +typedef u_short uid_t; +typedef u_short gid_t; + +#define NBBY 8 /* number of bits in a byte */ + +#endif /* _SYS_TYPES_H */ diff --git a/toolchain/psyq-4_7/lib/libapi.a b/toolchain/psyq-4_7/lib/libapi.a new file mode 100644 index 0000000000000000000000000000000000000000..494a484a72bf4db530bce1d2df73c833227424fd GIT binary patch literal 70026 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 literal 0 HcmV?d00001 diff --git a/toolchain/psyq-4_7/lib/libc2.a b/toolchain/psyq-4_7/lib/libc2.a new file mode 100644 index 0000000000000000000000000000000000000000..3deb53f6352e3055ea1ad5f443db0d0c164d9eea GIT binary patch literal 54490 zcmeHweQ;dYb>G3;1qf1*wWMGQvKeO|xdIW2q!u3pL6>$`ASBUa)~0MFRy@iG#D@er z5D5WbOu6!C4N)=E!5E0d+HAun8<4cv3~Nv_ZEHGmh)Rm0rc9$wH5vY)w1}-*8b?lP zmmSl#?CtM&Ki=Mbc>4iKu}xTa@Nn+A_q_Y=J@=e*zwi3n_l))reQ?E1$zqpwQ0;gB zCzG8Wora=!g^2tM5$~@>YTqxi>?+9cRuhJA{o5X{T-28SBree6ZtUw1OFs)FXHTT zKk{*4gUDwP&*!uE=qHPJk9<+&DB}LOS>#VXDU$n{$Z_P0&*RARpLdG<$M1?f(I#^C z--&#qPvk!#y{G@D$XvI`U#=GUFZky9zZUuLpWM?oCd2%x z(l<6pmP+4e21obH-TmVaj11l_oa5-lu~O41=Qsd+!A^Q6YDyH}4Mwxs(KVc62Do-O{OHGTFQ0p<8y{T2oUK zgCr|gBlS{a5x^cI3CO4<;c1aN#%>-PVz&15$>#CFgX6#rHuk`MDs!TxdRqZ2yJzY@?*FAF@0C+x0A0L((*a`2_`@Lh(-@sMvmo@IEfdl4S6Wr1V;v@S~C zx&n(?N#1s{;KJ&gTT#7ixg zzQ#1*CW)mOhj%AP|3-dCV%s-98b903P(2dlF63xV ztfTJ!8jyJ#0PFXGz^`rKEg}407U7)z&gNJ7!LyrHYmq@ zTnX(_tI02c+ibVpcI!bzmb4*G!&S+K*#1&A{iI>?1C?#ttv72!UQ;&Y+$>USz=I^uL4Urv zKIl7@(it{jszV;F2u^i@Z(0wSJ{|i_Yqi(lx=xp}{3f09mXhDYpwWiPA%-_Bzh@AZ z!9&@#a!I}S@woDP5jek9Nq#SbCQ5!e)N;CA$x8COWm{pSTB+YP5R%`;_VcfjxkNty zSE+oyE+z8tw8#t|_F?-P*CqO3OAaCK)zszuchI(-OtJk7WSWE#a;?j&N0=mWU09yq z>qIW)aX`i?XDPYOfhOtDS#MZw=Ma&`6D7BS6?Hmnq!h#;~!PcQ@x)^ zdN<g*T(hxO}yh&mKRd-9v`A93*Bz_0r_!@${Be~=JH55-oF=`N+d`J676`d_MzXhETe z96IX_>m!V&>_#Np2nrM*^3BKN_HE`t$8g5mJ`leh?wel(U8LS}&N$FotE<#n>o3;Z z&aUd`lsFD~JM?zBX;Wg7TjM9PNEG8;B}Ca=K7TUx(|itX%Ar)yuZhwVUCuxW6dKZz zwk|V;&M$-A!LJf z)DyN9)>*wEPP!{WAKY=MEt{Q}p{&yN;+dw$xKjFX5%HKnT;Rg`(1Z_BznH$Y=~f@y z@d4-Tqinjar^19wMLAzYU+fr}fXuwrz8J>_dFewji|1iI%)@$^+a#0b^AD$Fbxe&D zVynps$CZ>%PRQ7`PdiEJyl1?&E{R6TsasFX4C}NO6+(ZVf$&~2a$N2FVupn>u9O^~ zLi}b+^qf~_qL!Hb0x`pjU(?#c{B2katCYt@5npE z2)0RNDa$)|asew-^2ZwO8XAZ$O`nsGc{eZJjJ?*8nf#B>kTQ2 z#`zbv%fBk~i>kphd?;miM-ZQMcxAm|yE~1DG@dBC>-Hb!Koez8xk+d-^3~aCC9v}R z;)5aidb8^_^O(zN!rV+kPO^)Jwb8m1`VCF_yq8MI%)^MoTuS-%8(mJlCkk7h29VAI zS4kd|&Ks;lE*>rAIS$H|b*1E#e~@mrPp2bgdxDbLt# z7KpT!Rt~PTU;nprlbws$rtv$C>z4Qw~QqSo5|BshlgUF?0HtiWEF zU&o#p?3HO*hH+p$@Fei%fExhwg6%eD%4s#ixX0!?v&ZIY;E52;LlI%_cW+Fr^qS3h zQ>PoBVf+e-rvT~4Tw@0F_Pf3RkPA*P`ql13}_#F;@0C*CQcAh+Dy?|u& zABXVcMYt!Yig1xTfd}gro}S|&eum*taO!#-Rd$K67JHD87s6czCK-+n7u!R^rwHpr zINwS5ih-{i$gYF; zY<~}{2~XA3ig zOk4ZAoHg$3{q7qZlg*=gMmc&sW*0VOv)vG=IC zVcy!^Uuk*9d27lzily8^{I}&|fYm*Q@g0gGT`9Wj5Jx)d8Qoz#8G4Mf>2dF;{U)Pc zz!MTh2CFfH{U&kR`d&boRHdJ&29@7UfUYi2g02N&R^Lg-Z*Ro|vm3axpo`LFbNVGv z=St&)tsR!4a$o8^83cw}U4FCUUG8z_-sUds>t!FxKb%Ff-1D3>dlu$}dz^jjL0Epd z7kd)~dl53+i$j*y``J}q*?qwgx*YJuYOD>g=EdkN)=ljJqJY=d!{S?K=h<0T+UdOm z7GqXnd{moj<&y7T3HnxTTi0s~3rHEI3%7MIAnZ03Q~WR7)+NB43`nS3e5`)>@Vol4 z8+7~@<0%YQKf-O@ouG@-4}B^uP>+i9jh$PnZ|lPANsFCt%$fPdcFZ?ge~07W>iE^1 zWQ3gC@=2NFZ(v)I1FHf@xu%V?j&hs=!iSFdMnJYHbi~^M+4j&8ztZGgcK~$$Eidf4 zsBI5=5uMf~>VGMDpGIt#Lub8Vd8c0V;-RctIVRtHJg%KDwN9juFjg#agpw%+{t=y0Ey=abJg-nyqk?Ckz z)_ih0BPt-&8|mx_E}K9Wid|UVxt=u;kSrWyb|8-Z3$}xFe19p8F-KIX^uJQJ`2wP= z8Dl2FoD67bm~7vIeDm?R{fb`D@mrPp6+@saVZ(9lN1!g1$C$s+edu$cedv#1ANupy zht9K2<@ceZKcUL$h&%C+v|~m^6N00~4(tn@?QgUMA>nh?dR)1bWj!5~UCSTQ@O;Wq zg!MRd)*J4Jyo`tpo=UQgO0G)QQzc|w-)FNJS+}i6<@rV!@vuot!Y+P$P&cKd_&PpR9YTuVFchNmTqz$QEf zNLxgFDUTB~D4%tu?D;7W{DviRU|7aqLR;10Q(Y~lv&Q+cpv zq7i3B(T{FS`4@SoNp3cSrw31s{IFT%+ln4HzHPj(CX>h}sKt7J2~PP=GA;DW3FQCg z=cpxg^+|ajO=Nw&jCIDPwfT+w`Y$lzyZL{J_aHCpx|X4Re4P7naPQ0*Zl;s^8}W|) z<_6@g7WWBc@m>9Xn(x>9Iq_C;jVTLEmBricCwkDI?w)2y-0XG9CK3qyVY8pu4Qfwb z%y%O{x-41g-*_?K+vsO|P;Ss5&FAtpb_yADo{cK+N#sj^=Ub05t!z^QZYL7x5z=Wm(69#cR3F3@_4PZi^T+cGs$m-M^ z`L&O-UPz05dB+)FBYkbyr_>k+_ECTFb?@4wjECm#eld ze6qs!__dTY5dwRV={M@MJ5ciYNp zVS8C#c5W$`a(n;6T)71U*={;ZI!lkm3ue6C2iN9?OtMg!7wlB z<)yzCw-*lcO5(5!&ogi@VY<#z#ngV|9tZyfqE6dr^eDLB_-O~{e&gpH{0aD9bMU`~ zf8N2r2S2(d#>M0+Wawa!shIo*{8i<;Fs`d7n7gB-{`!5J^ZgY@mqnv?%=-#{7#2{4F01I{zveicko&GUv}`nfj{Hq z=O2M*9eg?b0}lV!2XV}?C$|Dmo7@v01pZ)v$K+w)oNv}HCVvKeI9|Zd0q=40^Y_5d z$7o7O5z*Wabz2M1j1MhI+$APc0$svD_0YB@+KLLCa9T)9l^0&Zu zTNL&6J>b@{b95<$zY)S~gS7O#SVIVZZxJ3-yhG;^^C;jR^3`P^I{gaI7}#UrP6Kxt z$h`8sI}E(jz`G3WHE_VdAp?gE95IlZ$#f1H$T}pRHSmyuhYg%GaN58l1|Bu=n1MM1 zPZ)U0KO5hzf5o5SxA!&bd0i&vW$r9_Qo;lLm4g zns|$W8x2ew*kNFof!htt5H>(Z48GIAT?Xzp@D2mHe~{m~%fMd3tD(aNr!F#nnDAX# zb2Iq3fwX;$f6&0JfrkjM!Tw@{PZ~H)n1IbQ_)!Co8JIKhgn_3FJZ<0^1J4@xlz~qZ zVi94Ea20I234g)B^9H_1c&*4wgrK`%!e2IUp0H8dP?qa8;_ucr)WZn-B5};pTr%{R z4Sa*Ji9&!syvOw$4->hVpip>&fou!B_h|i%qw&h%mD)8NqhK%uc!W4MCLSXWcor~@ z#nGn?oHy__0~_$&_^<1FA>BdZfGi&&%SHH#fv+3Le8rQn#e_a=7~xvHPq+>?&cL%K z{5irD(lziRVC@ay17ICsl4Wkzwv_4KMSLyfh7j+u4Xa&`^a1Mtk1@Oj@*UUZ$0U_1 z|A|_JWA3&EI>~%&Cj_5p)8iZP9pt}uqt=T$K*|Ae)<1EsDa5fcif2XQn;{2CH@*q= zXdvw`@p^s-u*1Ls1CJPZ+Q8QgWFI4b6YM4--h&7$htFOS>(Dz)ehHXoI+!2jM-?h} z5dV`Ffgk2iIjD)EL(!FEe<5cPgjhO?KiD3)F4)Z^_!o9b1UR3OJ7HHiEsCm9d)f%e zUx-K1di4m(^?1@N^<8`IJ9yh<}E&$Mt&LDTE=c<`fnX6r|K<|PK$54;cW z*fpSZPN&&-df|CJoj!T6413GDo)4>rG)^Lo;3VY#TWcd`f6=qDLKjBQ9IRx$}3NtbeLDbPrH;;u$ zo7REI1RMg)z1oSH;0{3>U}kD`<6%Cax$pjmMFmv}PZ0-vjyS?!F!ARN{-VJz5C`2naX^-h^fc8>F9FE-M&f`;;s{Tf_yIuX zf0*IO_c+4=M;H$4sm2_L&zkr{CjKbn(U7rk&iCd__<4hKEXH(LSNz@u;(#2ZFh3k? zsr;IFHhzp}UP#X|3~`RFRQ`$My)`C2Y2s4`Z!vfmanNli4!G0A?=ta2Bjgw0 z(}3}-^;n%S$NV6iV^hXo0%Ujw?-QCvLlAsLj14HS)-lg?D3`C$xx>ESOk!E|DGaTk9}&vTFNl*C1?WVd_OJ#;DWW3#Fb}#GgfSnMj^FOW-potTWcC_Fj<}FrLuArI3THesz|=p}^l*@SmDT%KQz5EM%9z z!SbDeHGF~foclpUI_8n!&e(XEy zB~;ai-#QZ&hcMiQfITva6!+#Rx|WA=U(>rWg_}|0;bZTTPBV*X_?uZ3_|1lPO!42o zsz&~bF#0O<~NJyD{+{ocrY%@sV7mGd4z! z?83K3i+6#vVnx*qFCwGcf}VX;G=3Y-{E91CTjY@Oz|l_9p6w0-^}YG*8*1mtC#_dO zPabe^&Jhg(XP<3^5Hbv=D4hLNhF>%=jx=c}*BF>UI2}KACD_SUm0SJKvWNXB`mJ3f zFQ#oI{7NwZ!*fWNLGuv8!!A6B#QFMO5YaSP+eW_mc-(%^1<=ukfxV~^4f*XG@wj%4 z^RQ8NjX(11n6-*$eY(=s-(Sl$7T2z+U)6Q&nz}owTH}VKp1+y%EPBr1zK`^GG|3KG zl@!^Qo`4?eIRg)i=G4LbL)~eHX?;wc#_N%DrMmo9-xNk|EE;G#KZmT6asN40jyfow zM`ew$Zjce>5~xkL%_YuyW8Z>x#=Zr0l6cbKe3v-WVLWAkj^Di!bcg+K>nyLL#vry_ zq_w)kFur4TYy|!c9_uU}#~{=b>(0Ql!y*o39|J55+$H#S<6#}}eL{YdeGFH}dXR}U z!l;Lqj^AdOt7GG!i_$Uu8`=detJHT`%>?&K8kBJ-tzmosP@D$62C3 zIo%-BrxWr=n6rEo=ZYRXy+)3lPRhSIosut}ZjmpY_VKMk8~3M^cy|)-PU783ygP|^ zC-Lqi-krp|lX!O$?@r>~Nk5Tu-bKFYBE}GwU!pz1kB{pY3jbMj>!^EJRt=mzo5a33 z9dTq`Ilgx#=+1hRUjkd!aJ$osxGWy)tWJd6op}&&%p7*%b_WyNO2;VY)D^1}KK!n% z?*d(&u;g=HrwT$olSdB z&TjOcm~HXS%DS5E8X1mvOni3- z(0Zm(Ctoj$!*7-ZaWOfo;z+yFJ9)fLP88ANOiVyqC&wFkw#I$~zd;?u`8X@^Vtyut zGOO=nR|m?`O&s6zw*YGyDd>)y!Ut7AHwktc@l@=h3@Oc?q{vMk4Y7vyGBh7Sy(Pd?)){%laFj6}2L}?~ z6YGD-vmf}4RK}mpA5U$<`KE0Z&Q+PZs!!^4nPz>a;D=q*-z$;tdVVLWPHq0WSH_S> z^BXug5fsCOGgd9)-Ke{DNmVq+)z@(Ls5_lNIanq*gnj*Zbh?@^-7CF9x_BXJv-dd%nhP@gl=P!wcwU19?Ln(maJ?3GKH3&eWpj7@h#!o!w1 zo&XiVklh&y?rp36QKsI&Stn- z9DY!4kQQ}D$x^BEvve#!zrPIkRkLg?(=(_)JJ)G-egeA4@9<7&rVXW7#j=8af;i6y z5!$k_94>DjtAaOp9p!IrW?l0f67#*=*bB6iU_%`^mW16;?vd4IYvn`s^x^sJA<5*@RGYRqrtvk*tcBePsTjamB zbsG{Rxa+i_yMDG;y$9RX=;QuQyx3qM?(NLLwy8F%!EX_{4m9hsw1KC6X! zvGPpblLiiT-1cPyzj6cQ;3n8>-B#X`V>r)KS=pv;(Z2Y}QP1+ul&z6-W%|84a+W@i zGo5UQ_#Wq_m=@n9Ez-u^9kxOmy&(;4i$A@)C>_=_<9Hs8@0YNlQuni5BlEBGkje3W zcJv*l(07;5Q;lefPHo$h*^b&mAKyX$f znqX^J1%fTxf?2lc6gu}*NTI!OTYGd0ZT%HK(bgaA6NpY>YvEG&Xo8Nd6;jwziJ-G^ z>LmIT?S(@t(F9uxyB%BtcQZo;KBOzvMQh>sn)`{uZU*Q4lS|+(J7HnT%&NK+P7;OV zS0xCd%UMXFy;3o@?ulfCo6ExDSac?~>>|W!Z{(AqL9t5wtjmu#}EY9IqBOa zVIvl}8YhHfZO)}|?om6v*W++7K#WT-BBpCiGCM=X*oIUvR$nhrqdaS-ZIWIq+i+{eJ~sa51%4VLAwi z%hkvW_d95Zy(Pf!bn^F6_|YU7=gIxRUvc6eh5wj?e--{|CqLYOopZ|f{{mVj>B)7V zJ>lfH3%D8ps4rr!9{5JID%!>6Uj=EaA+t;r;c@xbMYzbLA)IC5c@)kWaNm2{Kn{wC zb3T%g9TvijfjtK9G;o)JyA8a8O!t@RUc`hoBa}VR-86kDHwh3p) z0P6tNzIjX%QCDhlz9GkOLhy|Aa|R~BOX3?1+-2ZFLToP18hF&e6yX}k5h2bwTq1-~ zLD7_>s$B_lbRRPLC9vkf&e4J8%4P9?UitJth?R2THS}I2V9QSeONVMuX@k|ujess| zBN1Y~w8^N}z+HsA{#!S|#54oiyfJ7J^2q>Hty+J8NT_^-*U%>+pR}vY2j3?hzr76) zJ{7o2C zDcQUK^_qGPygN7hUP-Rv8v1)Avx;-&aBBSEV_jSMvun}M?#6n!x5{ryBCIb@I9|cskG&X|vChi;4iOWli<)OQd=C0W8ZYi? zr*ZmMSBUL2==7ZbsOrGkd3f4g?H1mH*JGmq$)YTtI5^Ql2w~|kP_s|V{*_=0T9I$- zEKjU0pw7?@;W?vx`k&R^@O*s}68Nw~XT9P1`T@}GMkLjo57?)8>I1quc@}iEBaEjY z67t(O;&FBIJm^a4*$Fr%0FLh9ZTp4%kAn2@Q{w+E&}Sv&?rAy!Op=8fwMV_6;y>jU1u+*Q=^6t7ixsAm}UxB|( zqiKGGae}5H&aoJ9IBoMMvh@EWXqYbT`?|zo1{GWh`>yzL&Mt+Vrl7Jp|C zj^0~l`C(yLuF+6eCD&c0<$CYFdke=|D#`U?_H<&2w8-|p+41w6?W>{`lQu8&`|p-9rwmpH^flmL9-w*P0G!t-ooB;jFv46$B z)M9=s3M!%b<|vN}2x(8@{z>~rn4qwfZITQTVB3IsRp-0-e^>{(ZZI5>==NyH!F%Dq z!@)ln_-R``WnZbI)MKvcW(dJCZFZL4999Lt)A{vy6yd-Xc##z7NyN*tU?tV%k&)gE6=R^FF=3EyOR}X?@SgS#u%rsk@Ht8aKAWplXO4CZ*VfM7W9P9+*Up3 zwu<_L(S5*u`bP%~lUgbuq;a@S!?0L?#r;qASZDix2WJxQxDYt!D zl+U_ydUTs5a$s1G(qM81@zf(erSxb7bkr}#m(!yx=t}C5GqF`kkGfi`|NUhgU3**f z=z7!kU8m-^xKCuR$?wV{@k0BByYQhadObw<39~uk^lwPqBizf&-;9G(Rb#{L?==+t zo?I!tQ4?UU-XI{PH-(FEl=>_rz*WsAhIuJ+QF@gLD5Bdj8_jlWBM|D>E5>DdLu4LNky8`iT7n7$j4R>w-|*>sh92B9mZXCr;1zZVR!D(TtJ^LNhC|I3m; zjYV^FY=fSiR{Nlxxw&^?ZjN&hQFC)z|8!bbuW-TuyL7ld$-0^+n@g>=X#P+;=u?En z|DyE6QrLbQanfB0YmDn{=1rc7US<4sMBsYyR3q;%g02})*oEc&G6>RmSP{0pK-Dam zV{R!e$6Ob#UXJY*eO2_k9%RKKGq&Hg*maP%eJ(A!9nj^coJOvYN6(L;WXdgNIo)jw z30TT5pFvzTa!UK1##2d7Ik#M*U*j%?RGiPkk2fT>t2{n9^%mvS+S}`k?CmpI+FROS z6dUgIS*~|1Vm(B?=i1=!mRb*qmg`_CBx)suMYhh)b6I>T%XHQj60np^&m%77&{=QT z_Hx~>8kz1WBh%vr(_2xde-Y~-eizyjwYGyN`uIV_ztzN z0}=d6k&DuW-2sK3^JO1gJ5PSsdI6~`lq2@jw-ds^DaD1K>0Sx_mTLC}j-Wi&mC_yB z`2kDhz_9LY2Xn|{wg>E^^C91SJnp{0NzgHz@wR`%Z!cmUWPE?2n_f}JT3ff8jUJWT zjXRlnWX|?)!uQ84`ocUU=ejkLRl0=IL$nS}G7fW1822hFRR!U7cYi11Rxgv-t>Bhv zZ(_33q(gmNjxn^=+h?bLX!Nj7lHB46_xWktp1p=R>TDBqI-ftBfTYATM^VpH zGfdrI!>}4RKYFZzynL{bmmlPB!`xTl`&{?b`v3~xma}Ck5^sQ1;J1%=$|5Iwstiw=xCJPo$B~b-2gGxZVVKWP90bH~M5^@l`~1Dvl_o77f8uxaZ#xS1Lb3nBj=9DD?qexispP20S~8?~7PJ*RNXGXc7#SHH4X)zWLWtmjz4z{2D5Z{Cp&Z}O zQ&%_#uAL`0TQ4ArARh|hw-@2wf;&;!&xk`mE*nUDMtrw{Xq2QDiq!*H2S}SsyV*eq z1Hf<60bNpkG|p>UXYCp79@W}9-tpIK5eJ6*XgohUf_T2m2W(V)^8sCZ_5$cKCLZ3v zo`w5p^+;r)q=;@xhwpB!)}D1PV(m}y1C{+&?HSKgHR0S8eis)!IJur@sZi906;hXi zRrv~j;~DzLb52_Cl2-3Pq+DtJL%C(o`2Ie_2m3++I#n9zl8xo~0~rV$<(h_NDUU-k zL1_zZc38$wfrj!Ic3~NR2?QBDly57${ z5POkjRw($WQBir1=pv#zecuTgqY@4I(k?FTpZI8Ozt3UsO4)@z)kNEoldED=$e}5>p z-EZoHDD_Vxb(B}%%_ggH?-}~kaP=?ZUZEJm)$b=YlXK?x15Cf0H2(oKM{!5*Ltn(* zYpT8e=K5f6AwpjRK3RRW0U>?uWDj|G|EHZEa;dIyq@MONx5_PEPdDN{)%P`!a|P7H zMnLLehT#wCTz?hkC0%=FSRrBkOM^MRh^(Z4>{qscj#5VHBaG?~Q17Gk@Bahm C3>QQI literal 0 HcmV?d00001 diff --git a/toolchain/psyq-4_7/lib/libcard.a b/toolchain/psyq-4_7/lib/libcard.a new file mode 100644 index 0000000000000000000000000000000000000000..109181e873c12e1b24fc464ef3479de6be10f32a GIT binary patch literal 16230 zcmeHOVQkyQ6@PZz)JX&NXi8hrwRUmSv}+qD4M~b3Fipz}>sSOG>n5heaZD4I#-8Jh zc0*twpsE5nLeP%-1MwShdxS(j=eHl8u5@sUIR%$5os@r%bGfZap_BJC1Hq*-d2yLD`6ER)W}24rg{ zaWDg1V`GO7sMOIUMqP!|QXlq9)N`-Yg;m1Vtu687=yww7Ok%KQWO#s`YEeBX3{0C- zwB&8`BQjp!C)$#d?XRi zhW4E`o>>thyjSp;%Cl9pjPmdo+9f~Ih6X~&*RH3{sbOnGs6$Tjbc03!b za;9%fkj8ke&g%y>{bG`zFNDwGvFl3#Z(@cktOD+}(vBe>!Naml_u*mvAv}xmm~aje z3`<#vb>24b6vvN6`8-3O_@8#^iDsqM%=xv6x)iG<*zy*CayWMOy17*R_UY~8B_j2}?DsqM% zXgO2cXlt~b=z^ThE@yLMH@hP9Ue0=FmoxUj^3lq~Y{70~NUpgb&^7<<=DsR&R9Y=V^3h*k?OY?u35N6gzn*J6G`pO!2ik7x=^ z;;pSEO3i329?05f>DS_{c1oYsre>8hrw7He@iH+h+oOHnB3U@Aotv}Tcxz{?t<1tlMGj^Fw^W-s*c3?#mMDeuJ5+0-RkxirD@e=XzVAB;gj^ zPk!q+-~8D&?>sEVW5RCGRd5+4F2-x#HX;acO z?L+#f`Foc8WQSTuOh-_4iL3>EKF0*EDZ;W)ab2kql(4z#LX_O2bJ2(n<+;38qq93B zvuDSx3rFha5w1K9$73T8;BL!sa#VJWW)kThSK{3x<6}cTvG|a_rc=@tBg0H|pGQ%O zZby2mP@+b@j`(91ey|Yd^w!8zCAi49La5HgaMu-DG zL>zSe!~rSaJ_z?7LLhqyajAyufPwwH9`s6w;?{YYIiX%*|BL`~9!$ST$vg(8v5dJ( zM7k^<6AT@$<`wE<-bZ+FJ+Ca_x}MS>CgUV3p9F&8mqi+~O@6m8(Lb1veVT?mlb&ry z@Ywoi5_FaHk8^phXpyV!``Wg3>dS4_^^c#7fa%Xl|MbExPr@$K9#6^ZGoh&|c~M@Q z2^~8tN989op~JXqwX)wEY8H81eBqO@-zVg!Gsomr*zti$kHo|I{6x4Z@REF*f6^Cf zj)K8~DUU1<2jtZaep$C^qeKHC4z$)wA=v#;a~7jVyN|l%tBoeV1`&_!h+N8}Ofafw zvU-oe3QEgHy|pMCkQ3Z1G}vXC=I~q-7I_MMPJqvN_)=GlbpkNtybfcg>HUzCNwD$#JFMi0$qEw zDIz~dd=27%+OS!EHZvtF!p-u=Og?{edl=)!acRdGHezhK9|{GXabO>#Pu?VrvFk1vt%5x<0wFO~I28f5)( zXtProgENce=~F&=`pgoUIOUg#GfU-}Qw{RWnPn&+K=~CY--z$*|b#e7A@a;T$5deMRk{-Uhg<-L@P9ONelxyeCh za*&rCWGe@G%R$z1keR~%xXbL1E81_Pfr?gGr<7Rnwr!S~u0#M+KYI<4NP9Jcu8IWK zUZGkWt%=G^6sy?Qh5dxOXlz|^c6$Q@-%X^=$y~{;X{Y15f{GVKJbK~?xVKmf7@?%A z;FYM389auFuaM?ddkLy-CwS#YCaPeK{2K5=p%Jfq2>dx39u;cDU&wQ80Erb8oT-kb9H8#KF%#;(${cr#&S;O&lG5ojBl|#21O2B@Wn& zI=Gj43~&()C^cR!;Ax%yPYqM3i+i6D^xKC`!()W?7z@H1&@LfX)k#9+ze%`MjnOM4Fjwn_)0>QZze?fE<%*wr_=ihu^~99)6K#~wf|RpFpj?oMn2hB z_7l^kLJIG*7zYy!oqG=!!MsyW+`+vEn}9s90j>}3xd_=N6}!C$n*aj=(2<qd+R{!T1YAaR+9;Q_bQ7wqN-kY(g{LENIT!6=vBY8>hX3edSa#sQS=W ziJb|;&hYHUoZE2ELR#8R1%sSUZ`kLud$e)x^Bm_4$mt6UBd9h5Xp{7XbDxSf&6!c@ z!Ot)I6FofD>Ah=b=}#pU-Ns7(W#PY;`|*Db|841w4cje7S3U)sXKbqpp{K)ySc97hvHqik z_|IxLA(TijAu6H|$Mc$gLf8@N2_F>7F+!A|B82`wNr?L2B1HZLLj16Dkq}CUJTYLE zUl;nnQ*rCO$TI`Xo#LOGh9QN=^ouyUsRIAgVHuOT1UWC~1QPXGV6XMkUGo&D9}9B{`0UtjkLiWb6^oNrPddlXOk{BT6})L~8y{zxRW za+9Z72Evy+2gP}4$vLP8elnVGxO9G9#jygX$S=MqU#hHupGFG1aZrO zt4J^yuf&4YM0>k!r5(dr(NbFnytb*VVu{QDRI-E*dgkLi_n^h#l{7Q)|q(4UAj{aCXalnU&gT9|QAlo9I(fEtRK{rJl@C0$_IOX2~ zzDpeR?=c_n1L80c7l{M@g*e*%h&W&~_@W*DfDlT1FVdAiMF{*?8dr)3G(fKlyV?Oh zO(4$4F$b6AYc(ubKo+&@^U<0o{JpX)y2}(lLF? fJ`%FcCOo!X%_8F>(%g16f;8K%4uK$pG1UUR$=6L~*VZ*_Km>-dJ+#g4?>WTQV?Me;u33 zmavr80W&U+U>=y-E8gafuxXA1W{;Mb;)2Ig&>GXnyq;_e&%%~%fq5ex;hCSk%<#j^ zW~S%;Ie&h?bFZ!}8yX;#^U~G#e9rlv|KIaH=XZYRoL_O{z=5GX-+KE4g=$lZptHyS z3x&?LU7n@?c4N$LW0rKkb-!<$HD=q(#(d_yG2b<6O#e~$+YJuC&(0V#_Np-xuN(9E z7Gr+kq%l8~b-$lJZOlI^8S`AbF+X?QnCF)n^VR##L z{QeL>y2r6 z=!|K2c+@nMyG=tc{*PwU-zWE&hQ~Tg!;b5w;X7V74c|Fq8oryb{oCB{iF2l5w7s`) z*WUemC-?53JYcX74IUU77=B9DiKq4tneCGw9~&OAK4beP98bcbfbtq2o3H^!CU;Ga zOib zhsO5Vcqa!YpL8i$Tc;d-ROH*|YItPu$tUEqFJ$=hLQjlLPK*pqj@i;Bpo@a_j*bi* zcx>{%}(5zWTNfOicDldWU6mJdcg23VVkibuv#}lYLHR zhheo+toC=7sLj-jf;A2GRD^rS=)US(#AI!oQtP8wKfd=M|B)MC&yl?gk3M8RicQd` zPtJFYktr8?$JmhAi3gj)?Vb3n1WY-^QE;irpYt}03F}Nzq~Qsrhuj0G|P9*#2%_`a$wM`8Jw6f zYYwOvn>FtLq`KLf;6L%yKFfDtWHhkJ>R4rS?EA;)!7{zWqqYxu`}UEM&u)wCTfJR% z(iho3k=jujgdiSxuoL1Vc!CiCtE;?y_uf%DzYo_pvhPWo1Nc5Jo6Uy=$c5cz6@!mw za%|kjF*&e*c<`wt&mj-eT%R8}Ff5)&#|~Jl>|RAEA5v^K+$V_2#wDGh2Hkw%0J_r{ z2?c%4JTmmz{bQdW9T|RtJdN!eA02TOC4VOi#(Y8|L!jQi!sOn4BV$iaK2#tIvvT60 z_LUR&6eL^^ubk*8*Z|m=AtY(Rir$y^5Q_Za_LZfsgAeK7J(@=l=VPDz_(O#!_bVIw z3wxDN`^sVGDTX?Rjyz#?pzF}okn*x-%^G4PPlf$s1%|AFeM$h{q0d9xJ~sSNL4v$y zsN-{m&NV&j3Y{A^tbd^N-~(Mfh0^+my1V!*>>K#(*yLDY^TF}LQ)3f_HiehAe@JNz zpadUYS?W1R#JEewY(C@{%(e-pAm*b1&ZC)mE^ki<_2Kw;qf&@3m=Gpl(bzwBkL@8` zpt0Yr*cS?4FAstDPfA0+{cSj8F1plg zD&@_oXZii4@FNZ7eDR2E3?9~0^BHsac-}nwlL~ijZm^|TF{ag=Cfy8iZ}M?(vT+yS zx!n+7t6;T%gUPQ_o|;VN-Yauuo)45@=H4dDZ!(Irn134A@^ph4YHKos?bqRRZfO}^ zxm?^!O=BC{V!Ar5-f88xk@~p94BB+Ozs+MMZ(DI=v1vJJEw}mq7V-eVq`ZcFR%HkeK1qk;NZJ|o`uk^UUKA26RP1$ReR%qVX;^7eu1yxDv-noaHR^=Z1c zW5_mB#GU3#Jnu|+tUKjeLfT&=j-}AwJ?hGs+gNNrMVX$%U2@>!3hh2O*V~pegB`z2 zc`AAJf`+O(pCd;C=T-e8`?t~?J; z|F5|pZBbhiO;g6k5%OzHy>_^Zyr|tm{Bc^h-9lRG3n31dZkp$1w-ArQW+=a?s{`A{ zN%?OjPl_W;T*@2vyQveSey8{wkmH<{Wm`XO4OXUI9p8K!sf?%(`SKslk{(IXxBGFk z`T*?G$&zMTt2GPSDBS2KbyY#@>`Yu z5?c>(KX?xPm*OHC0R4Fk{do-id92A?YAl(rte!>3mdr1{P&`{<9{o!%6wgnaxw&lH zMs#hD`IQ$s%$HwiH|Nm1zkuHT(hJMbztnegtJT3Dq~HBEy0Qg&0{wRv^s!Y9=F_V( z=G|?xjhm=Tr#C{II9!-X-A%L73++kV=HAvpI&*)l+vwxSQ)`*=DUEX@?R;;(*StT` zS!sEV>H8wQUo<91o}RNhqnO`eDupaD^%9@!tHr_z+gFSE@8MD6S<3b(et&~s9G7&9 zHBEDKnKsqsW^|P7xLUt^l03w6>c)*mt0x^_u~IhQLPa4jU3U%97X-h9>9_4ZT6 z_Dh-2kDAQ1?<-3w=V5f;6#Yhh#1F|B2-9JKl2nyHF)h-#Ga@oXB6^%px&JzbP}2tG`V#Z|J|P*xsLUI(l)r zo12>-Ujy+eju7Xq$ng)%UHTKrap=Pr(Wlal#mcmCdUe)FZi~k+8R^dA5$V}qO=LR5 zeCIaWQnEj1mUrD~Ze#shDHgh`h~5kH(>yw(STN?D#@KN;1}`U(T2|#dv?X{g3P%Hk(m6 z@n_R{AMG6G6IKVeRSKGiO;5Z0_hHxkx^W}zj~om!Ryw~>E~9b2VX&>(dKlh8s~_J% zd5Q({)ZXv&<>t;Vf3Vs4+bNzGrrPe!A2$EP=P#`j<*9Spm`_drxGCQ)orSSukkc1V z4t?Hd9MyRBH05{mis1JIV^py;OWg$h^KRmvSXDe;VVv55KKip9+qT!yEkEgX%cuW> zjcrqJk#2Eg+dpDVbnW8WvI#xo^hplkjmNRCGLDTfj(yF_dD_0c$2BfCBFn{m#m9>oHX+4Z-VJ@S76wUFG-^0j|Ofp|bPUpM1XM~g|Q5Lh)X*SsM+qOBH)={M< zE&9HH_Fwt#4A0A#P#%Ny!_eQ2Io~jNf+85{&ui%2U-o#3#>S6i+A0l$rw{WBVdQoe z{3U)3vzhLH9QjqKyA10F%x#`ko*K>cv*;sm+79^HHHFx%p^n@9_M0EBu}-*xZ$Gu2 z%G-o2y-B(9j2EdMlKu+w=Rh^Ll-=oBs-!tXdlHVh)>l@$x-&*`g)z~^8RoS?=PA70 zG_SMiOxIA-xcT%$z5jX2pX6HOn$Jrjhs6>lv2E+t6jC|7M44SbDfTE_wH)F={YVbe zzNB>%&D%p-id%dNf4fgVcDvKh-J0w8NtTNR1$X0du~0S{`eoKU9iBIsZ!=Carq{Nw z*2~;n!|ALJ6rAJ4X%TX|OFIm_2w+Gci+(a^ZDjd@g~=1=76 z*XPQ1{epU1@R>!=%qoZLQ*DVHyhh!(*k@x`p9SiE8FRW;=6-qmti0*?+}wk!8qH&p z4$93OrgF2-f^D}rUJh6BlT@8&!N;b_BhO>MfR6amG4g(leA?%-c3Vb5ty%NH(AfUZ zjU1R98Gc}N@8Hnz1L1w1X{*BFZCSY_^Wb3V#{TQNZ|L8(h=2EkH;%u%Zu<63pvz!s zcfAb647>!MU&1PedRd4WhItSQ0&pCDF5366+UB zqOLT=RlRnxJgi+TiSET>cyO`Csw6hxtaqM5Od{Iy7TzBIF zl)CB_AdX-$jnY|nd`PQ!?b>=-jEYdViXsuLSAf)e(Jr!~Uh;7P2NsdhfqFF*WuRXE z;`oQ^#UF*garBG!kj0c~XLr2>()QWiU9W;t|8*N~9G)r4jdeg>O&hg;T^$ysUspa- z|MiOv-1Yll8o`FTeK7K0qyh)l*Q=md0_x6Q(i-Thn?M}FNWCgfb2w60##8^bi)gu0 z-QhINV0{saGr0T485~|;ual%19IiXJN;A+kT(1vB{x`0m&hEN>JSsrfVl$4ey4@_! z!Hr8eP*;m2HPHFsV*R|U?yM?}pu4Vrn!yJb>84$E)p#1dYoy*#AEl3w`#oBA@0j*` z{rT>B-ZL`v*<|+@%r?Uza_N=iTPFbFCTYK4B=e7tZVG_S&WAtaV!_F1c?kBZd zPh)tHIken%~BLIl^<;FGaXOhF**CBjA@KJP4kR@YCRP5k3t*6X9P2Pe=H_ zfbAlqb!#+BDa(<_za3nO@W;TD5&mBAaD;yx{CI?Cz&j%RFTh(O{NKP@C~>CIyo$2waHp`*Oxyi_&`t{Bjik zcYhM)sSEEE#vE(fl-cCP4D@6>usq8S^^$Ld5^a;I#Z1vy7FbLJ~e>J`CO%@$Uq0jqneG z%kK&Sa^|PO&rl|3a^@@G)a1->fm3LUvOF!&sKbS7uMTmDh{e;vGx zU-172*tbUbSFj(lyNSh-GrtXfEeby;{zyJP1n;HDzYIRki&tlIMkkzxqxP$S+k!Xs zJq=FlCu?TGSEBg-6ZqgeLV%oUxC8wZ;Uf6eC_j&YFGY9&d^+hsIrGEdQsU2B2QV*O zy=gQrf!|DU*8C25hCDdK4kj9-@a`0^0B=e78%>{Zl-{r!FVQhsGX*}I@Mq0w@Yf@J z0sLAN{ta;UPM2Pu_P7G(&zd~-_rCz4e&ydt-AEszCg=wlb33@hv4gXw1^kAW5AlBh zye*1S{)foG!lf3wE_cfdiv zD89=z{(k@t@-6@W1rG9~^rYJ|wD&ntDffOyBDf zMIJYbBAaDVWS~!!w6=&+zOAC@nQfwEc!wzM{J7{{#_SZOUi(FBiJ0 zP>p4|F6v4C(AR|@L?;MC-}L^My+10%<}V9X{+fh|w^D(nyjUBmllt=#1QDNF?To`&#nD#m(3_SzQa-35-Q}uLC?$BA`9?BsM)f`6gye}U&@)i+y&`w~UzI!b zb>R(+LBi1HEEqY+LnRN(gpq@SFti=2c=QaAdx(B6cc|u(ig%+h^q?^D9TJ9~fhwGy z6_l@Ya)+K5Zliw)L$3+Le_a^bp7ZHJa~~!h=n`mIcq95l7&~W=a@(1e)z*t|Gdba>$?dIWK>x=2Y27ksrB# zl>EsZYLZxBCIx0-K zabf6`FnmXZp(j0l#^bZX)c1K|=mlZoxhM>MU3eAkDh$0YOnqk=yHxK@P}O^06s6h? zRlW4cAF8>i>V1#gKT7`O4y_1N-$#U@Cxy45e}$oEg{jB$!q69?*^iSyxfAb2xkE1t z)4#3=LzmqS-zSiNsN(N~D*jRLuCZJC@~qsU*Mw;wa|aljh2}mp~Fzg=cwp+kbn78PbcIL)w74>^Mc%w z%ZqY{zAlX1ydey|DvVrS6NWaw6O3H4iPXwxD>VB!`IEcaLGIA9FnoQ&&~ahvc~Tgv zxvThJ6oy_DUPJu|LthuZk9rb@UJ-`xsxZ{N3w%FmL)E@5!fTLQVQ9NB;W~t&n!77} zpD=Wr_ut|DC%ykc??2`Jk9hwR!o+)07<$_KpYi?|geliWVd(3^q;p9adPSIgTos0D z@}2u@VQ8E1YU*1US`z*)^rA3y zhwx71R2aHP_`8u$Vd%K<_s}1Op@)Q#>xwXRN*FzHL>PKhn0y@_9Gojtb@sxY*v1&katLnROG!sxk@Fti&g zeYa6`kb0K?5OODfsGj|E!{kdCdRmxzKO+o1Cp_m86gciYVdQ zk@xHmG5(8wKk_3A-=rvfXT1M;@4t=qQoJWUy(9{Mhw2l4)QdF@{2!lq>ig~=8~on; zIhj8(a=^fv`VCDSy#K(+@RJ7%;|IpRm%BrZp<5*WdnPBxCmwp>fhYD(?s;->4ew7L zc;dj5`^KNrjRFTI9vDx;`#?8Al&8jsuNyl0_EZ$&f0&7%Og`tV9 z5nq1**aP2tvBzoa89yH)kN7^|`Dl7)uvCzzU_yK=aEOAN%KM4`oq;Q*s?R7pX6hcs zNg`4FPw>m~QyCuQhZrU1LML(oTFOu9h)-$L&8zq>!#7UB#3!D>x21+}CkafGKk*^% z3EyMb(y6I@fKE0NwsbTQY(TdS3&>-0P_ulq3 zMDEd<;J<>s^ltxhx{n@wluR2_*#vL(-exonODc-X@vpRJu1AviY&gHKzsx>p&a~&v zohiTfhu`h@clhv8%As(Shb7W+&>RXxVU|D(!gwOcW(l+;j6y(o%@Sx?80FL_4BaV=g6J29jtirR zCWWCDVbYlrhE5Bk$W9AG&w6~$<2Qv#=dv(V`IAvG-VS3G%V>!SRj;v1cIjyu)loqf zZ>T0~7``o^bid4T{R@#`4SX7_LR@0edhNXtpWI|nWJo}2UIeJVv;1!NRQ0=>Up%&q z61n)Oew&W?l{Q03)mX3$54Cfxv17r5w=x#2UFWVjTzo7TS7ylcpZQo&)JkS~I_T<3 z?O4!MJr?L()mu3h=p2^LWs$~l)qgTR$bP5vx*MZR1N#k4FJpwqVovT}IrW0{z4X4$ zLs_qd&Lz;ERl5JdMRfms|7zVo-@jV-&iAj@-ShlwbpL$+#lkO=evR($vb9z9FYbbW zrTgdW{`1t9bpMM`>Hdozzw9xhXpQRen^D(a@#Pm;NY_`Wocm%y^I>Xr{mf13dcC8X zCXU5){dM^2>H48vrBXEQFD!ZoVW+>0@FwQ{JsRW?if^Q@Z}9hJHA3B)O}(jljwQUs z&VlL-DCY(X{5K7R5w`Snz_n)v>&>HmeQ`}@^@W`AEvdb_pE6wesoONSyZb!-#hYEG z&ON8K7l?XZUFTVIIjFt5Q-!E9u}DdGEsK2BFIg^0jOLN+66EG+y*2m~HJIhI#3;V+ zO^^%EvPNR$|04-<{>N*urU9BKs-J{;qI64(FjRA7%~Mql%~K1)OvD(J%@Sz4Fny#$ z7+Qj6nZNePoycimJO3>UlSrR1bc-;Pr>(+JtEE6x*8G`Dq2$e(U4@ z1-{z(=_R~>D&h;)TAii+2(x&qZD|rqm5)^^?O z{PgsnfzGNvU+$jabq;)Kaz9AWQwa@CFPP69!ty9H>=a4>7i7dn|&qQ z!Aqs|Ohf9O?k0~8jnwxJ7c0lN@%FLo(;IG8j_;PKTADGuPO5s&e=72qjQ`CVe6k8R+UMoq zB!11Mf)V~|08rt7TZ4bM2J=v0vh)w-Sn#JlqQPpp) ze$+lD)&FApQTvn@(vRKgDy4zIvXf2n6aEo6k9WUrIkBjGY zsSa~`G2HP{zB9uecY};8_PP8t(v8S|t?ff*@W?VVXuDgZ`RW;Z65CO4{BihJK3C66Lx$RnoT9$G1!FjsUKXbc0=-#Rd?=8wLEq1P{c%>4i+8Rt>o9xAQ z4SR`Bw&J3@DBw@-573<>N-;5Yp4X*9X}|Ee?x0p`(^H1&>7Tm3$)kGe8|iXRUxgd_ zrNZZ5;~!6Ldxw+D&67*!bxS zm?NuW1`}kA>az7lwOTXI|4=SDs7__%rZ9`~-R=1pGOelb|BAEP{~^9*pb(cl^e*qR z<*5GG21EoBvlF2BGzRFWwpZRd_|b%k*-GRWLCS}C^i$e;zN2Xq(}KrBW5wEA87sO< z?h^zz@%+C{1t-&Q)mU+f^;6v+BfYHqWr{~G@!a^O7fRgOvdrpeZLQ9tpYyEtIUVn4 zCn7Ff@-$fs2>5h0f7cB0&ASVxaFe>6`Zdv~IQWjh_V8Vl+Q)wU{6|j07gN$tbVTa_ z(WgViXTREEzX+1Fcd!Kc7p~Q@lBbn{5h|UhcLc%6|B(Qo!r$((grVx=(t%}RXrC~BW{WU%t1um4n=n+m zQ1fExV9kqn3X_q3Vd$_h^W;6kZ^Lx~)kiR)&FksB=D-A{*w(1s6ej4YaqMynCh*nM zdB+12H1I9M9^#UBp2(k;rN*>@X{yAWfNvHgeJ6LC$>u|{5bHdh7dV33VmeRz{}uyEoF&(?v^#iTjD$_ydeIxcd#Pj1==SjCo@0GZps@OhjbzgU+`--JYWadVCF6hA< z=(h#tr_`UHL`wMtWrg}eHTlmvMM^4FYvIF1@?<5G{8gJEyK=3kuOu_UNJb?a!DwBR z?PQ6Oe_w)}EY+@Sex}C19jxcz5;T5qF1;gtp?)TPQ5Ht8D1PaeEy4)B^p56k+k}w? z=^g1K3kNQvDv(|I&1O>crpK< zO(S1CSkd0cJLsH!-p-<9ct<_8#0;@5wXenASIGgYMh2U^}uWJm2qE853~}=LVBR*7WBaSb$+^V z6M8^reU<6AN)O!5X@+7+eft73_qBQb^S=DAh5k9CeI(?j+APp7sgHWEF_Vs39f_0o z;5NS>Hk$i`Csb{ypZb~YSH7Q#Mb-7q*l)@zyf+K=n_2u(Nmxn3JKI1J4=JOzjQ+5puPi8 zEKfZPYclPj$!%$~kcc&%gKMR>*IzK`=&#z&%>w{GqBHWjhD>(i@(CsakNU0Yy6 zk{J1aG(nDE@}_5Y$()|qHRehuh*x88hp?ZkYfYeA7(T@-{yvX2mI!YZCfqh*s2!^r z6b=bPE8c&~`yUY|+)-hu(v?xUzZrGVtP1aq+C-*y4qv8n9&=t*|7&#+9mwvZrCM(| zcIzGIad;LRyH6}Uc6XL;K?n78dKGjNWA_ya0z&at=^!KxQEr=Ybfu-PpRdA>so%#{ zUix^|w}!XJpAt@=#ux6~Dq1k}`?fLn1W%~?h1Q#c(Y(1F05tR)^*yz>`kv%R^W zsCYC_ZWV@xFv`a_V_z#!?qC+`Ytt}%dti!aZC|^LUq8Ra`r1}1y9D22eNFp(78vh4 zqt6)^7TZg>etnN;S$yC4tINn3LJ|7f?b5=v@15-pkhk{wx$onT6zCi~KE1uL`LV}7 z`B-74zCs(Bn)lN>Z&cu?Ge=kXo#c0%-x+?>{K7e;*Ra3BZ=ByGzYwFoDHrAiTEF|& zOdpTl+PfI$8q%p{FaD{UeTMhvg5EXHzhR@!3OQYohKaui=X8j=o%D%mF7eGjeS`0V znO>V#iEnOn@_owX=G4!&nP-0%`gfJ*Ea#T8#O=P@A$_Dc^d3E=Q~kW}(piDO`~FCN zUS1VJnUx2<#}9E3D*ASv^Q)JZa#Ws9||p7@X$YP91JdgXgLOUdfzI_Cd?n1W$TSD~-Qd^>Js@ z#wJb-7wu%-&F`pb@;-HR_FnZq?IqYOYP)_Ta#Ab_I^HI;v@LJWywGB%ksEz)P&Djw z5Z~dOK0~HD>uplKggm;sxz9ZJGN?-Z4@lGKNwk)?NWlzhw(tgiF0US@! z4El6JoiSZDa^JWN{MG%*`6+CuyAU6>=iA~Zko((d zL)SLJ-{og+ZWGey(!P%}-IwoW{4dwE^`E9JEnF=HX}MI^rM6$E zZmDc6pK*S1Sp#1vldJm`lwpZ^`UGWbQ+c)|G7$KUc^_qTc{&{0`{>Q)k?$L~#rcl& z==|#CQDxmUrT=^fC-2g#kan6UmH)OI#O?gzxRv+NHm(ke1*IS!$@w7PiPiVzrpWIp z)_@Lo{7=?vv-UejAzkstI^SW*OOOknNBTmL?NHw?ZI!=V%(A9D?9*O;y22Xsiu`8Q znwbFlaN6VL;#@Ivhja(Jl5hNwzROGRZA0DeJd}&y>2S&Q;7q32h%OuIE)yp3n}(*f zwdbdnnBEhNYqb4P+dcLfypeLmWnIA)7v=o5h9%U?Qv5>wxw1(|d;Q#8sH!J&o{VFz zuhr`AYYjnn>wBs}cgJZLPN!`Xw`1UOvZ1^!G=BW)^A?XQuAXc4z5k9Ec@6n;e4+eJ zz7MDVXw0OK*=av(Rlj;n-#HCy7fsx-Qq%*0IfYCo1$`=@^6!YYiyuFhvj=P>c4^A*MG-rZ>Gd+LQsNl#W^BM*G@ zs`Vw($Zf3TdB<~S-pix!doAxK+>ahz$v1shmR^#be*UEy*QZZmPxGz$ic%>vHZDQm zIiA$bo>{m4r;dqFIzsIuoAR{i_n;PdM&&sn+TX}yL(NI_^!{|VFwXZ*Z%0qP(;bc* z(r*-`-V1D=oF8}9-pV@O$vML`?r0}`dW^BYcf2*TPUOiU$24?QuFg7Xr`}!Zw|?q| zu2*SM&eJ>d>xF(Wz45-DH_vkO+cV8tPiLKSN8W?U2M5x~qpaPy+ynK5CHfjb_2~p( z>1pB{7*YJ!hw3NZQ@fgC_q4_byfzI?jKJjgzFKd0`TRofNc`ez)v}D1V(sCsWGU9} z>q@uQCL1d3we-7&2A;I3h83GtPjgF@pJVu!f;aI!51z3jksNd8Ux0Ow zqcb^k8QhX2m@{_}x9&>}{`Z2H1xS3l8^4gOJa9L1k{2;Gnj>J{U+7HE{4CfGmDV9^ zz83MT9{zO=zEp$%YYqPIRhVbcq-?HU@2tVgYVbWZxVr{_qy~Rm4gNGZ$b;82(XV=pLxTRpicZO78rcXfyHg0B`x4q2e3%?xWs)k9W6s*AlKGcc{Iq7HaRR zg}&m$z3Rj1?peEU4XS$FB24{l6^8DBX6X=nhWCDtGSXx-NI! z&xPz|nRPco#or7Sf1Ahc9`6+9rBuH#bV``II3f(CYV93^ByaB+ln&LMa?-`RQ*Nv9 z3jdA}xzofb$(SC`i3xteN!0P+UUYd zk1M>r`moQW^pDWV7&?QiNS9XDN2}5;$LHw=4P~Bal_zJ?%HfZ((ltb=>XVKcmvr(Av zWnt(R;T4oa7`juK{Phb%M?D_*__Q!e{ERSkMws-@3PaBelb;ubp|1#&{;R^!*Mv#; zbz$fwVffw+?b0p`)m?}x zXOA#+i!kNeDhz$x@C*WT$3z3#DDfH{n&}Ul@8xn0k3b82Y9#>0B0uUJ)jptHMy- zMWFCaP=#+5mYxxYa@gDCzJ>M@hMp9roX-eDr-j#0-@;IR$3^8oFARNAm~gYg&{w_x zYu^72k1uNnz+K!qnrd!qC@*N$+)G=o{YuviH9t zOg&u{hGuW$_W=D!v>iQSoN0i(9o{GR`uvJ0&oX!Lqj;uK0CSLED3`GOWaOqW83By= z3bJ?;_!u57Ux@D{cw1nC20ql0 zWqy{2Pw_J}nJhn*;X!^hUt)AW?{ORuVT1axd`eq;bmbOIKZCi(<65Jq`&+r|rl;E< zb-RhZAR2#_>26!o-y%nMv}>+Yw8}<$>J00uEpG3a!%a88k5l!* z!bN!e-#%Hrh`=tAk;&dY1N--njHXA}YU?$~r`*G{e&A6%qD~ScT)S7KH}Q4t-VC;L zVyNcMEyC2VWJAwVRDhjBwhJQ&ic?1Ucsum%^)|QeU#L6vZP`P28OI*VCC<>tn0ikaveX!c>Z-n|d1yaw>Vpz#QRQPbzql`s!dJpg{ZQ$MPifcg z4Sfc_h5F*H+~KkzTrqePeesYoPNv_gzF6$3kU)6v;nv*kxr)+Z+}++#-m5ZYRbN$~ zEX)*33iH*|X}GWkABE@LSLMzu@5K7-J2AZrbN%{vcrSN}YW|rSB3W?Xm+o+JYlr?U zzF$$)B~l+9nbeNY?ViD|KiasWf0Dmo>h)vEKroVt#m-7dCe)857wX5hU(+@UtA5GS57m2rgPt?Ku+eb@E*K@yGjgIDQ>o81o{ zbji)>1Y>>&Js@51Ri@3-3*Id7u1$A|YfGihVBt2o>5`wH@lvhrXGS(TgcSTFAC^|Pdl%w|FwEX>&)YDP^~xAGjGCo z9G=DW%)uMznOnNoqVwj@czTAE`x7XwFX~p;772o@o5J9Am6r;=ndP(~+C2d2d)X2% zh5b>KSZzhGNWHGAcZS6!oc>3g5)*XR*~F##zBlc%kj@B3m9{+qsPOmH;Jr2YAUKO` z%Gmb;Q0baxVOmUaNVl{I^YCh)ZJ=dgnx#+v(2B=X9xI%T%Ja=Q=Xu4J-u+uh7j2_* zCL_LJt<^;r;H%)7<)Yu2o} z-3$$CZ@__(f#IhfD)bJI_JP}}+`DfCde7~qcX%81P}qFnz}SI@ zR!%&$veb33L;qMyT1hH4NMY=ABL{Ymj(t8_V4{eBW&YyTz#L|wTxow^!Qai)&Yeuf zz6t3FW4elK6Loy4mZJ(tUEiu7IF?{sNB z6pxP?vx!$O*A6hXAh`%QTyM|1>8QrFCC)|kI}BjG|rdUyP4jNIL#i!ikUOd zmbAa|{j7iJoGtZ+zaLla#QLd*Tbbs$In|SE14dlx z@wuaN*IgEI`)ZC;X?1Pq^1cE-*N%>=eOGWlm^*Vo*e?Pz|;*+f7AYOYq{e ztnZ(0v(r=NH>C}-V5yIOc|o=4cChx-AdZIpDIZ!YCH2j0>>&2f`Pv?euwHtYFsFS<6db;X`kCIYwP7N zieRLkf0V)9but)NZ@ub?(_deYAx*z?q=$KA?-(Cg7#n@md}jMo`?*`ZZJI3l=K<;DN1dk@B5F4A{F>8BS)xX+jNWB;3;n|z4eGjSqInHG5U5FPG zoU`8s(>@Ppa`xL`0ZEg+2sobbXUu;{J+U>~y+W@f{yC#PLVCaAOxA3~oCtyVoxu4FpS*xZQKxJ8JOVHTXj{xOUHKSB?Ls z8vOApoU?ljHUSurgg?iVdz1R4|zNd&C-BpMHz0+dprx(n!rV< z)&yP_X06~AVdzz1W+B&wp)3L!y*JUjJf+(N)qV&jBX%!mtK50KDhTu9k%^|gL-TQu z`#l~OCj1^@sN_d`IwkXRm#oPB8DZi%Eet&?{0{c42t#L~x<^=jLE&DOJ5+nsa=iOr z23-Oz3DdCM!q9EPgx?_yJuS=&&@;kNCQ>%Ov%>sd^mx|eSA@yWYr;^;lhVH=%Gz%7<$rU?S&Jb z7Up+Gm>)0h-QHSZ+T(&S@o2A{;(J+`e7!0ReFdt$k*~=e|4VX*zAksYN1yS~Jy$;o$%1cn~sk|ol74$pFE8z|iN0vpS zDX934K*jfr+}WdaP89xT(w0AuEY`mrnq5ZvqAQRW5PY)1=DzWAu|EGf|cKONB?QJ=!T5H62+}lM0 zpWZ(xc!*CrPI@Ppz(+M&KE%bE^F-WFy#^EbXpST<`L*IP7$OhM(EIp>yvg|x1uNsA z_z^8b6WTI72#xnkyh#65e?jbxk{6%Sewd%!f|35w_)u$xh7atzmAf_8b@klz8e+RD zQ+n4Fu(XqJDl)oT!%oj`?OF|+eRl-up@Q2}RNzF^*a5BT1^4ZHMn*>qW8)+H?NVam zeqdzsz*El2#`BH(7uG5$>_&d8^o&ePe1Z6zUz^LXYBT2f+GjhhW4U#!Y1rJe^Bn6D zTH|OZe1T`|Zu5OJpD>5*vs{b+PVcvKH>UEP=gv)&$+WFV*9S;@(^2_pjo=+T)8@_T z)xhRrLHy3%$ht;wBaeg$&$USxK@)Oo%T>PyjLt7|5^-K4TOFUr>PwO|!d|A(ChuX9zl+l`y zEngZoEtiYGHq3_zqcl3a9LQc@vMo>CQ0TCaLuCy>7XfpO~%l8+|hZi~vn-Egc= zW!p0RbhkmVy^ukM7F<({<&?YDsqeUM84 zR3??Jwhz5#*MhYMTrtIh_V2l~*i;tlx@YNwPWEf-UF)~_$=JRjDxh_eyCXlz!bfn+ zQBEfxY1;&OacvW1%=Kf|>}EoL@cq^f2YFLQ3(KVO#A`RjlJ&HCQF+}u9eKq4-BG?Q zm${R^+qsHaq?KjX)lV6#@;ikrhCXVVB?qe9m)=5n>eewCwCuzT9 zoVn*43qQ{{5!_mEJL^*+ov=N`hlwr(>{A2uVW#Uo{8FHc)IzZLmUan5v8#~b=CyEQH^T5lKB z-n;vg_6+UVru_PP4{MB0hXy^7H8D@M3@NPY_|>`PtF$)UMw?!nTW;&%t|Tp&ziV?V zth>#7rHqc19EH4Zvw8nYl6MzJ$h+1IssH4=Ls~y{{ZMx!RLnAaSHiS$?c(ZE{Zil0 zP`jz^Nz1Oe7LU)$>etL&ecs{gGq{JkjMivv_>i9XlM4A%8%?v$tafm6r*>&FUCdG3x<1MJ_HZ&1#=v)*e&!+hwjfiCe_42CEdO;c zQyY2zqA_zxR7UB_H|DIKvTbk;`)#KGZl^;x+4c-N`9IDXtFwM<&U`S{u@z>*j!*SL z|IvjQgwM0TM4kJ_bx?mz+s=E_MMc5t741^I=2^!(y3fH*q7^z_Q0y9rR!l?a)VsvT zvcevfBy_Z%8C^Y)c*o0`^%9SQmu{GN)nfJhygeA*xsW6tWxZb7ao##_nE2Z0x`-t9 zICyklMB*P8Em~=wpZC&(b?PrdobH09ew16GT z9c8WahM_l5Znq5G8@`O`o|fD?_wb{mPfqMH<4;abz-F(TVC{QoQ2Q@%=wtJRXG}iY z);qj)U}6%8KP%zeM}{WH4s-#c)$e3EJ#mehwY;tbb`9?v*tKtLcmz*-w?vdhr5r(d z2QDaAkxo825f#gt+8uO{h2UAliy-eH;lH#Q@f_VrpAA5 z4ZfLsAwu>P|E`+wqc!;RHTZB1K3apdMjMRc|G66cPiwH&X2XJw?y2}!HU9s$24AYd z{{ z4Y@<#6vqFuFf>oysJ>dEs;?u$xUOgo*I@xmq69$lx{^BdK#K#4Sq)Mq<2>CN>}czt-m75 zI^64?st+stn^1*UpB299vCh+~ea=C(hJGHZHFVu+BX>5t*tKryCaqOZNj}=C56K7g z8M)s}dyB3hKcWR=Ui9uSi>~H5MYQPG##v0&J0-=Fmz+SQ4;6lgDE!i$*)_D6r`J6# zP}b}{3?}@zQ0jd$%a=eWI&K zM|8Pc>lYpsUS{k&54~$R?fG8ue6NWXX;)G5a}BEe=pBIa!$OhGkG7pC-5yc$Bi$js zVW{{jaxaj7QOd7#_oA0Y;cr4dMYo8O&NisR?|>@&sN5;H&dn>_l;}$2LX>b9Jl%-g z3ETTZpgM;x{^lk}wO+3H3sA-1237n$P{rRTO1N#J)UUlSq>Xnu-u=3#J8#3k!;K}> zwn2Q}7VkX1Rhjihd6q#f*!&~H)*R&jHg6Z9$kymVN?{N&YcBG??5y^G;8R}~A5CIS z6JVP93MTL&Zb@A7J9E1+|2;$=n4zoqg}ll6nRoIJK19dRv=VhYrqgV^6G+W7=ufL( zaT1SyO1p<2Vv(40=(WiNr53%*xRrC*>w0efdpajnL5vICrhuiL{NND1%g{s}Jb7Sp zU=aG$K1;(Rp;@zkY;wfqG_373Y;k0WQJZ9fdk5JFk!wM zFptdkeN&2^P2+&-T;qc3U6>+UEGnaT-wx*kI&E&}Dh z@Y;wkSoK~mmh)L~nIF|=-GiJL!LgjH5(~J=U*UtC--kVx^8$Pe$@#6Eaeh0=xy~B9 z$H4FuTK$Mf6;&CkC^7Zqe0AcR>i)lyb5|+#~v=#T8J~KD0KBgNx(iKVT5QeWZH=Sa- z<0Yng3_aZ(taJS~ECbP*tJZL|Vr5r-p5mU-(a}K;^Z5S$R64NPl^k7CYWH3G8&6fT zYE#?yH9y&!uw?9c;He1rCw8X`o~Xg!SA#1x_(TmpU4=6y9>_Ibs)4g8_{X8rIsH(L ztxVtTv$p!0o+-<6hxU2A#bcF4&)z$Pq1&KY2Cto>NY1Dzld7Yl%*B+ZjOyht(-?i$ zmdgF3*w)nQF6}-1W$zc0THW<3e2P!qpDMRM)mxEYJVsB^ZsXqnMq~6aS2c5*Zl>vr@gB3p}9Xw}ek_C$7F~IK5J!>ayebc3}?r`U{DM-L3_)1}LvvlDB2jgfZ@7bx5NnQ4q_qy866n3G7BBuAQi zcR<_uN&bY_K@Uc_7yGsd%N`8PZu@@$8p2DD?TPRK?CK}M{|B*eiSUnM?~m|F?5z== z#vY8;68|xv%rC_EW$zjAEci&||LfQvkMOJ5OA-E$*eenKJ?uRZzKUJt4DqWh+Ruvs z+Woxp%h6etXWjkT0+n8ryNv4p?V$fOJ_HkFM$afJue!L*IKQLT=Kje~MrBo)m@kxH z{(+B2Wy=?yc`D!%zhDBN#-tFJ{Lb>5lcmPAfhEVmoFx?#$m^_iU zgOm^P=%=(L`wVS~(Ry!PeR^Qzmi8%juHA6cb3v`0sX}k4PyJ@an}5zX=EI#yv8?3? z@8XO33gfoECoxT*)!wC9+W1#r80MY)YUYOh>}Lsk^|b$|SW(taJ*^1XKg52QpIKdO zpEbpTTIlKHa{q^OgKgi!eiQbAh&0PdW^a}Mm^fIqz9P?i_w~TF9-b;-4H%Vq!c$bmW`9^i9I1Z*@C4H^rjS(6~+s>FwsDdq?#ibUWkU z&>joqJuvCLA^xQ*Hb&1KW9|)X@>(_&HBh={V!~LIIMCy1u*hWWd(Uj*lCk5`&Lom- z)qVL?yZHwRujDgpey$1|^NTh3D>e8+4gQxk_}|swlVH8)cm}HX9A|{l88gDri^3G( zWnt(gkKge4vM_vCgrVCgo956RV2vTuqA0Gjq9~|qqA2Bp_?TmtM0sCi-+MJ%wE@T5 zXUuun=GOfS&00I=9K^d2@kvk1sJ#_N9aTnratkK#g+26P%sB!>B_xJD@O=O~O^}!- zB33)qnw2<&H05_0a0yDYCF6(K(8R#+-EZp|JQI zzO&0OC@(&TZ&Sg^bQp7*RI|}~vYo@AQ}_ zf-SAxBe;q^kr{huUepAyK3+HiB1(K-jQ;yQr#|a>dPLiDy1y_y!qfrIPz(C#Hdzc6Nx$6@b~AI z;dwD(sNH9hF@FueLgJq>pHJ+rZym0}jpiq+uwM(HKMdn8y|xD`y>?C*xjrupZGlS9 z(HQm)X)500tsdLv#jgCn9p=uOHwF{xyjG8m!%z-P(4cozR)q=rNqm?11rzx0#zEaQ z7>yMt1Bj^BooIr@ya`_gM73KTC8{)6@r&ogdI!D5^C%thDeV%!SU+iRL_Pg9^0|@y zlee}kHzwE4K@8m;;kL}+(S=c?mY-gBJbzu|E z)@0f1>CV--ZBE+boHxBKZY|a65n2_oUNIB&%EH*LXHeAz_UY&C*_Gd$%c!|A=^Ctb zUhSEKbZx}t1D&a^CBtmM8eX4n>QLC)wUQ+4mF&hwGu5py1(Ty3)$6tO_{x6@KA$f~ z>db+?9EDk|gEecv>HP_Hy@!&e;kw?tlSyzr@6L4ZV(Kl)^6Sp&1iQZX4I?l0Bsx9~ zU4L?)`ll20(xBA6q&0l;id~C)fu9@W=4!oxo$xmWgx!+itt>No$2otWW8cW=UT&k> zto~coI1U7TCKSey;|ZVp#?{La{!Z*yBm5NhWl1D%uVUhjM*Agzbd58O=HFnccqE_y zFR{y#v3nI?Ox&_|Z%%-k^M5!=%jvmIHTdH-_&cg_qZz2etZUccNpQ%o?$G;@8h^T) zU1x8DY7A_LY7A5d(-_zz4DAzU43y5*op~DjwAXE$Fm#77ig%|l^l_-30mkKy;yx(% z@N9tA>X7?8oxavyGmWV^GE){GRBfws?HV(*H|&fk&knDPvezrCazQ&hC5SaD-rHde z{#Kt~kgJlonq3W!_FBq!Rn%cc7s-sYTF$BI=?21prk&Nn4<8Uy6Ph)UAR$qfh zdt__PDjY)Ixr#GHBzsl7eY^ILe16}^@ZN!k z3Yv(!XbXGy7lwxI3&r+rpXuW=Kum96sidVh^luubPg&VLc3|JY?$HK9ujF}I14%Llu|zX|RqjPtQ_*w!1G|G?gniBMee3=ItJ8QIN@ z$kl9IdYf+KpVXbLILYc7{@vEDOAqb!hxXq+g_S+S)UGmC9Y2{+LTU2Kx;52z@7a0P zQF;ujZPU@StY2<1zxYD&Yz1BC)-boScG+jX{6d+tMLn!%cC(Io8|#WCe=bjv{=H;9 zFRUAC{-yWbLx*?zbx8MonRNT6yqSJhKb-+8R{Ar=CT;k;r?8~Hg*Z~tPm`84aH zKfih>bEEfi-l)lJx>xI-%mGgYoTuiU0wn@&3StxgBNFJw(4=ZdpmXtwJMU*&AvOV6`b@H}e;&-2df z3oZEP%~v@~{L=HJqx#CU(sr$8g7b@yttwOJ|Bm`^b!}(mPkAHFR(GB?O;hfw8)Weq z@_7t-Jcc|TLq?AwlgE(BW5}ajQ`lCsU!s}yX3f7fXV-oS?VFfI&Lwwwrh*q!$) zmedh`6*>P!%Jb#(-D${m{S$-FBNbZunAHQK6rfcvy@`Mb` ztMkeY!XGo4ALBxRzpuJ@zd7}Pw3<`@Ol9DH%VWx$^4@GdH80N3`Zyim;EKx z3}0;jv5Z+^^WSKC&!Dl+7mweaDHh6^C4_G`ONm zd#+&rUF@mc;~`|offC3 zsk4lgzpcJ5xknT^ukNR<=Ctdh?G@_w6z}bpXWn5Nf9!VCSk)iM13D$sw$yC8t61n) zdo=OG*u0*=($r*5{fx&`ejTJzux_Slxq0?f!7QC(!M79HuWnwyIdkWTfL6 ztMaYr3ZHhH>hnv!52>HOM4Gn{SPO^ZQRZBez@YKk6G5Q!Gpy zjXAngqG0<8a#fi{F5DfsDkJ(8KHgQb_AXpOhZhUjY@eYdj4y<(bGL!zasTS9%_Pqa zVRa@rXniJLBS{uPVuo}bqic6^D0cyd!DOAJK0{}Erno-CT9!)u2Ev%3{#wgI9O+U} z%n_AiV3C6IkhNGY(lfwu8gV|?){P^5Gq6}ybPd<7?Kp|_KFWnMk)8*RIYK5nhtg%S z*gvhRp52SKM|$aK{V3L^m%7FbaXAJTE$L9*%8cVkk2WumN@r)?Ru6SiT35e8BLBL1 zi2UouALX&LzR<)yux=7@6zReDxR_BU>b6(fpzFHpCXqz2cDQZ?aTeCqJ~IE$G}KEJrR|oa}ocpMf?{Psrni> zxlbVEqAYs9^{w67@HK(c>m-?-gp0`b?-R&5{AVuxL((4}dzxNC3s zjqKCTlv=}bSz@$4t+lsoh`Iq4F011Bu zd?>0$6xa9=r z>^HIX{bgq|_N;2UX5VOb!>{k_I+HVh1AH`!|L0O+fhA*pUHr)+YR>#W;4=|_Gim9Z za)|GK@J!_YNiY}dc++UU51c^a|65?H(3_0;d2pJAjQI`l*(5-t`2%oz`9a3Ko3g(g z`L9jt!mSm5qzdQkx1>XAc`V;i<9P8quo_SI;s<8GgSBac0hI3{&BhUzNKI8&|$grgflAl_mFS7Lr)6xHdy^c_tTz+ zitnN*@#qc$-AAjl+q#cd_u$HZ8F|r}`8KG|%*n!AVe)zkqQ;h#G@~CiopbB>c zs&IM9(^~WgRQ|6)<*$2f2UywY^mXiP}QMCT_b z)U7QiB4dsCq_=~i%B(?6TD}mUbhp9=6Zq&xmXD^h<{*6I)N3$-Zv_q^F8RGlhEIk- zff-6S*YJ^;3VLalfMTWT?3k#0&}>!jd&_q_y@^N|#Le<4?T7ivEts?D$;kjBI-TKDPqUi3qWxJK zActSh6p5!S9^%SB&N^D@f{m}$+}4mWk4`^bxWoFHd$RCzUZ8c@@smI0=cNy6_w45B z{1#3`6mF}}OP-4DXOQVjwEpI4DlRp3*4=#j@pzT&vQPQFEfRC&!|nA9OuWuYYP?=|p3@_Q@aEoTj|;LPG@4EFpP%dfr%p57j5Z*-*8 z)h4u`TULs}#wuYLHM_Da*Onz5IVg5>ftLFrgUmmOHnOgb%v(&xok{y|aMbCHrdC9Mv zH*9LN6}Q0LfpU2HwFg4`c8zm0Zyoa|m0yi%e>HdbizmP9Z$W;0)~>thxkFi#85CG} z#{84ceZ%>kVx_|TNN3J7cgN>=NTtc`)o|x$Zr5Hc(v{m%c)bW~$&BZ|GI8`L{-1>1zV@6T=dhV^>tIKqd)c8&mwIeuVkB|Xp^y2dUZ2vMx-%KW5>sL{ zCiEuAjlZ9)!Wr`&RoIvUI7@r9ie~l14`p!g6Xn4yj5Er|U#9u|IOPdO`bVbrIrBB# z2CYx^zuGZH=d~4|=0y5Yjkey3(0D$twbO$4R~HbU(ypD)zYO0(bE2MG=#%Thm1Q@v z?lVc6-?%<`gZsi3=tGo?4&knfr?c#~cgB;YTBB?RQ*Vyn7CfPnUDdDT`7f&+7bssa z3(4^j7;a{6bRNDkKgn>APt{wIUo6Mhz_wl^KH*w9*5b}Wa=hVIPL2^tD zY&7<}MK^z!s+2$FLXNo;s&8cQ$tTk74pdK-Sxk=O^{pVg@w2MxTUdU7ndeT0sMb_w znOZ%41ha+`s1*je$VL$ouqX6Fowr{j0YmP~1EcNxf>LZ#X0c*|x zr(Zvz7kTe!HyYBf< z`RTl8D^%w_g=Lif+hLy6V{_~Ng*v;#=U*ZwGtMuROE~mDUUS)UhIRW2xXdq@z^A&= zSQ5(xKBFp6!ps@L zc7mOb@{tCwIeV&r9YOiSZbpY#g0OZ2E7vfwg@J$@Aby1@>#80 zzIm$ITvHh{XTNnOJwZ)W#HPS5Ewd2JTH8V0mGIfkIsKCC6qHA_msP2p4`-5iZd)jQx7ar%vt=$-dCmpErwXTQfsgtbt)v`E6)5c}&ER;6Jm#F+!oqNA_yaco9}wDUg0J>%F-M!Is&>%UPpJp>1Xl97ifo5aSY|_!p;tWLh zuokNS<$|HvJIxgV&A@Ly49zaw63x2to2OkKzH6u1OE*cgTjw*aF-spWJ`>HXZ4Aq2 zva?W5+<$;w5bR`VDFl7KwSSqH|4dC?)~2<;#TggSFmQ9$S9|NMY%9C9B({k|%V;dU zvBuVsS<-%>9Jke0%h#y=_w4?RS;;oHPnmp8{<9&JKiN6IMl{m<%f6fq)~B?GAZcbD zyU@1os{C-wBlsn*DGiheS_l6LvGm#sf?u<@4p!e|EDL^>Sm*w)_K4o^!Cy z{HokLf@$ZHU}BxORXr8agLsTs^>Hl1;Ojh;(kET|E|+f3MRD#?|CIudxghim;aEq{ ztl;$wyqXD9{5I^Z`PI6Lg2qlN1365%%I|q!hL7dBW{ngAZ-*b>m^_ye1}}-Z}ln zoja!Y82$1$cRJrOSJ}{upF=sc$j_E~;^%N|<7t|e&*#agbM=zX`bgd?Kj+df<=As{yY|$1 z-vi~51{9GA4cWMB_fMdVG<2S?)vUg03r76Yb^0yOd^){Pi~E~i{GDB=AEMyhJpQP9 z!Vrt+6te4-he_*)zvsZKbM@kH7DxKx?;Gr?tL4%=wv>>pmJNn%$jWN1G1R$w@v_z$`jORx@Kwk8;QsFiyPtdS z58b@E|NSgl&j@)rul* z@yey(6u_BqIDZ7^DeNYY?`$tb%L~jmespjhIB|JNn~jD0qT^NBXHa?dk#9FSht{c& zh+d4)yE-D|mG#;_XiUD!1H^Z;y@W>ap50{mC2-aUc>Xra{~9an+t7*s!*!1FE_^+` zXGbo+9v$D*w;$CjT6{sE`8i@%my~zk^YmW4!+&c1+$+q!2*?eV1L=%89< z#f>vnnj6|Y{KfCttHkVBMmm}7SVp#|WyigIFd)z7ef zKD^!7GEqNc*8hY(&!G9gv*UkwC$(97%Cu+Oscwr)_(pipyw7ocPOv|m#Pzi8nM0%z zemJu#nmH6ljhO-NA1O`6iLs4*f93h-AHt@~nazXIPqEAVQ0(g(#^2u`R+OSr9Vs&` z8!p?U=#!E&Eg7;78_nhM%W42x{Oagh+LcY`m9(WqY_OYlWfMHcpTPjI+Qy#(yVZ>i z=(hKi{q<(^3mb;8I3_#VWf_Hc@63uG_M(^mY|!|1h=$b8Bc)pWU+S`L@$Sia(FGp@ z32}>tgN`1yE}buYxdNWSmrkQ!ThOkZj{D|KfAX3M0ogtCsTEM4nc0c!lp39KM^kgJ zKDVXOsNtOO21VHdYp%C#m8~ucZ=JMZj`9rj)e51=CU+<_s{G0)GdnJ~p~-QJpC|4l^6Y4E%*K{S5W7vkRI4Rf#WUm5`ZodT_!gxjEa^e%XF zr13W!oq%G|cZ7?-CJpDvI12S%z2Zi*ps9|Dmi;PI|=c89RYU+;h z%ki+2(^zgbcx%B|dGLqU(5C;^3f42KtlBJ5_HE}Y;9Ap`{ZF$&mo;TQyL7FC`lw?^ z_0LVtl$&=bZTJ8_EdK85)U$TA+23Id?Em*vFk3!o|00am#-lIWIb^78#y!<{%x*6| zR3`X-q-2eoWg~ASO^l6AI$uQmJmCRi!Jlt~W24`dEEMl5zU1Q7iedIGEp%(;j5GUryu^&AoW z?l)eTOrF$0{qckWiS^g!-{~U0ti4PcF8*?3gML`WpY@}~*H4Y$;~Ko7q&RbQxY&|U zPcw#;T*4n^MfvjA@geS$q8}fd+Rb|Ahe@|Sq%>~UcvC#Qyi!gq&M;+UYhqdSJ;t?G zCM-opWy^tGR2j*>VSJt~qu$}7m1~ksjEl`P$@h@==d{v2Gd@kKs?)S+#=7bFlqnwd zIXvb8JYiJCFA8&ZgKeG}pD`POhN5^$g}Daz?f#>@tqj#Ac?kUuK)(af&-e%$@8Mh9 z^HZBFo9A8o6RDMbhc8*zWq>PTn5|&+vDWaol^<5X7&tJ&n2uOUw9?Xx(o~buvTsk4 zr0P~GmhF3E1K*N6_zk*xDqCMn^9yaVRilaL$lID0DwsVvUJfe%7in4B&wrhPB};u! zxpN*M7JMNC|0M(etqm?j|7?TV%L6Q#bCp=*T*+#UbFV9%ehfpKc#K$QW3^78v$2Wt z5j1th2*YO`{1wFrs$C8iZ3YocM;v@jF+y~;>ZQECOB(k+q4L@(t6 z+41Yw JsG!rg_VN literal 0 HcmV?d00001 diff --git a/toolchain/psyq-4_7/lib/libcomb.a b/toolchain/psyq-4_7/lib/libcomb.a new file mode 100644 index 0000000000000000000000000000000000000000..8d15a080b4b3885e0bcc8467bb93fe146beb7dfc GIT binary patch literal 13306 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 literal 0 HcmV?d00001 diff --git a/toolchain/psyq-4_7/lib/libds.a b/toolchain/psyq-4_7/lib/libds.a new file mode 100644 index 0000000000000000000000000000000000000000..904df6d4714ec6ef71769359e72082ce427bbe20 GIT binary patch literal 73900 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 literal 0 HcmV?d00001 diff --git a/toolchain/psyq-4_7/lib/libetc.a b/toolchain/psyq-4_7/lib/libetc.a new file mode 100644 index 0000000000000000000000000000000000000000..e3b4b758b804e501641f9b25d45ffba52482b93e GIT binary patch literal 20950 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 F{|iMcFc1I$ literal 0 HcmV?d00001 diff --git a/toolchain/psyq-4_7/lib/libgpu.a b/toolchain/psyq-4_7/lib/libgpu.a new file mode 100644 index 0000000000000000000000000000000000000000..308e8a0b8c7d765aa37b29075c1f0121c2ec690c GIT binary patch literal 114856 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 literal 0 HcmV?d00001 diff --git a/toolchain/psyq-4_7/lib/libgte.a b/toolchain/psyq-4_7/lib/libgte.a new file mode 100644 index 0000000000000000000000000000000000000000..1d73183b83187830d66e9493da3784bacc4e4b30 GIT binary patch literal 628602 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 IGwWafKj3<|Q~&?~ literal 0 HcmV?d00001 diff --git a/toolchain/psyq-4_7/lib/libgun.a b/toolchain/psyq-4_7/lib/libgun.a new file mode 100644 index 0000000000000000000000000000000000000000..176bac5e223ce90341f7d4d09c49ae05f4bd8eac GIT binary patch literal 12200 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 literal 0 HcmV?d00001 diff --git a/toolchain/psyq-4_7/lib/libhmd.a b/toolchain/psyq-4_7/lib/libhmd.a new file mode 100644 index 0000000000000000000000000000000000000000..5a986b8dc94dea1f88b842fac7ceeb1e1a4d874b GIT binary patch literal 980934 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 literal 0 HcmV?d00001 diff --git a/toolchain/psyq-4_7/lib/libmath.a b/toolchain/psyq-4_7/lib/libmath.a new file mode 100644 index 0000000000000000000000000000000000000000..2c25375d17207c682aba8481dbc8be7e721643b6 GIT binary patch literal 93904 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 L$a}^I^+EptZOKy| literal 0 HcmV?d00001 diff --git a/toolchain/psyq-4_7/lib/libmcrd.a b/toolchain/psyq-4_7/lib/libmcrd.a new file mode 100644 index 0000000000000000000000000000000000000000..56de923182c97f80c1cf9f55231e6d56791ff1cd GIT binary patch literal 36742 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 xP2O7dQ&8fjC2vYXqry&OM(PJ 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 KP@(ZYoBtQ*2X+ns literal 0 HcmV?d00001 diff --git a/toolchain/psyq-4_7/lib/libpress.a b/toolchain/psyq-4_7/lib/libpress.a new file mode 100644 index 0000000000000000000000000000000000000000..f5bd8ddd658a75df1e4343d64cd6e83022da1402 GIT binary patch literal 94404 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 ~SQBp5{4%nKcSThNnV(vPpZ z-6gs7{v!@cq*M6&kH0j2Jn{WB-cQ?*UiTfG*3^7>&4<@~I7XEv7+tFO;T&knukqZF zQ|gH^2wlRLmq{_hn_rv){=DF{R~H}YzgN#333WX8Lua0kadf^5ksM$33YmU9Eb~dk ze;&`iub{u?`0Zb$dClgZ?`1raZ3WWb{+u)fzDF9^f-utb)1|NRmpW?VDVJ90w%w&c6IArS&sOli|37Z2!7l&+ literal 0 HcmV?d00001 diff --git a/toolchain/psyq-4_7/lib/libsio.a b/toolchain/psyq-4_7/lib/libsio.a new file mode 100644 index 0000000000000000000000000000000000000000..21892dc2c733be880325482d6e91cc1123b608d9 GIT binary patch literal 11086 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 literal 0 HcmV?d00001 diff --git a/toolchain/psyq-4_7/lib/libsn.a b/toolchain/psyq-4_7/lib/libsn.a new file mode 100644 index 0000000000000000000000000000000000000000..762a95e7a6e4f096c6cc2360ba78bc261e156ae2 GIT binary patch literal 6594 zcmd^D%}*Og6n_hbE`+FViiLUE|CFfzXQIm=woWf^ z5OEs(gXqfg{kcq`WSfNCGSd$7d@;{i!8XlJry|X1sizQ4;P-M7DmuKN?dRiYN7K>*}#V<_DF|+YPe$_6<-TAX;g@@}c8(*G+ zq!9gCdtD01!_>vo6U2IDd*}1f((1-&Ic?ddMX#uJ8M`uSnc3}%0f%px8HZ>@sn0o1 z*?un`U(Y+a?bTSOv=v{swztYVnNrrY?0DI0?=}jM@ti#8f=?jbP})h`E}@M1UbilV zT-wD&I)6YfA*ub9AxF8wN3TNeQp&yqKZe9@xjcl#{YQ{qK$7$$7`Wva3CuqW#-FteG#HD(xcwyCmJCP2DXP`Fq97y>nyWw>#F6A{F*7$KW>(#InO%PhDtL?dRv$vT5Hq*LfHGXE_NP~YKI zqQhO%4?e!5&D>v(B=~MuA?-lw4nh}E-65BUs26;_58!K`eLAGy5-~`aw5GZnMwO!T zvaav2LS1`uj2O)ha@$>$aUQ0-dxP|m;G_D6cAX4ZO>~v!_G&dPdX3UT4pB<9(^2l$ zACRWwKB|kkU~VFZJXEDVx2)dpi2jZiCPTCjxnqs!3)&^GY!f!;4|K{z2WUa`|F)jT zDl$SmR;|_@#e7izv>W$eZ|T((@(Q^@i+Ie#3PtMynk?X-#lJB*=F-`QyF4A0)Oqq9 z9HF~H-SmMX@jh}F@-4TF<+sN4T2!eXIka|}X9q!_H z=m`+BpwL_3;aZP!5FSC|f5BsL&i>_Cx(`Xx-_T1!=t1K4tjA-IBdKxjG&*rm<|n(D zHP^gd(&&6PpW&Ub^$w}*i&dU2J}uU)JMWfHM%+pz`ER*Q#UF1i-2Jkwa&y!R2 zw>-n>d_LdeACAfV+xL}wv%&9z(hl)FDc&hDwvYVyyC|_Q?l2y;!&?O!*FCKUp?{~aTnON^UoYN=mZ|eJT PP`nKb>zhAkjkkXQWma|_ literal 0 HcmV?d00001 diff --git a/toolchain/psyq-4_7/lib/libsnd.a b/toolchain/psyq-4_7/lib/libsnd.a new file mode 100644 index 0000000000000000000000000000000000000000..b9a848309e54699819a9b12a679e4b2dfba35b10 GIT binary patch literal 279446 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

  • Dga|l2jQ$+LYAElug$3WMGoaN4%MTa-=6mt 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 Y`6895KCbW(PxvZ+@jfs5Rj<$gKU)IH(EtDd literal 0 HcmV?d00001 diff --git a/toolchain/psyq-4_7/lib/libspu.a b/toolchain/psyq-4_7/lib/libspu.a new file mode 100644 index 0000000000000000000000000000000000000000..70ebc8939ce7732d0c852d38b3589cae77ac085f GIT binary patch literal 181518 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 literal 0 HcmV?d00001 diff --git a/toolchain/psyq-4_7/lib/libtap.a b/toolchain/psyq-4_7/lib/libtap.a new file mode 100644 index 0000000000000000000000000000000000000000..5427d8213334b86329e7d8079616d51d4803708a GIT binary patch literal 8694 zcmdT}Z){sv6+gCL(l||0w@cf2lpHb~ZrNHw14 zFZcB2#>V&U=#|~0{R1OuzTGuCoFnZ^j}DS{4`*FgU#>r+c)9-ZwlPhmD`~Sm9#?8~ z#yjm7Gg5<}$hd0cjiT&-F`N zEq^t_pO2cfuG=&>v)ohJ4&DM$$hM+n~ob^f&{NSvOjj-3O0j?=wwt=hy z$Af%OQ;liL>n$S3G2RU7=JAMF)|uuN&{(AC)Sq_hgDvk_2^jubk@~Xjv(R?~^zDM4 zo$}*iTz*uH%B#gz`62q+Hi$HJMdSy?uzbI0$}7blnJ!MkCe*j&CkzP%&U+eQn@G|?M~-Yt$P9Fnx(NK{3$$*pl{$<`|HtMGsb^#(O6FrLWMQobdKj|G zsXHILV95?zGYu)z48Tbwi-SCXu|HiPg)Z>eGYy>5`BGu6CC$vFjG8&vD1sW$ZnE#Uh&~sCA*^UN_SL75l-6; zgrHA+kJV$|24;NQt1*uYYkl);k;-esve6LVMnr~G!KPHyC&!qCax-#+IU&;N_#xO) zFXnpkY##RH?POO>X zq?|fd%iO%mHS1rV_g}MYA1%LT{ZYwz|1~RQPJ7{x=c)hFHOsP+Glr9gUio0_mK_&c zoVb|Bd@d;8+H+mh;^KVsPn52wvEJO~w2xq&5N*A&*MdBBsF%C7xOhp6i;?D&O3obO z!d?&ZSP#xw_d0PQDi&;e?eA7V&Lfwav{f2%B*F1<2WxCaBeK%JXpZFuz>Sn0cXYn&W;6~AqzN57I?-SSLf3PoUeX0 zbrxsMMw~NUxwW!z0(&6v{yxR;Q=PLH9-Nt~OXKf%>Vh2x_M#r~ zhTXpIJNt?#yPEAYXxp4)i-X&Nc{Vi_wa?q;9PbCha-wLeGkaAR?*~LqU_1k7>{*<< zzXMF$o`&x1&v$b!WQv3$c%rC5U8obaavXl=ncvd|necxR?_rEbUD&r7l>OW1B52!+ zHa4aR)~li@?-qEMKs{-r-Jh~H;c;cPs5=Mp-ML&UN2Chloy^Tz8#g4%Y7f* zx~w;1m0YdwKqXfjcWb4+8aKAA&RZ*W)_qmkSK~%2xh0)rvB65oWo|Tm1)XCZvCe3; zV_AFSmE$UVV;x)3H(uFS8#lU~RgM-=bv?Hc>NB0*7GqQVPIJb1v@yzgO?m-Oh z{MW!WS1-6cDHTKhVSNNheJE6|S8fB{ueEpp@AjvYm0mf3-$Q&=#V6kYE%Oa|1sI=L zrxAjGh`(cikJAf=?1nxU#v9bPT;pne4nH*X>Z6=z^$v?20l3o zyupR&{|4|+HU1xfO^yE^aFd3EUhD)kd@FF-99sXKJq^Go2KQh!7K47^t&CB7dUHACy)0{o^Xe>ZS9_G`8XLsG!Kn!GOq?~`bW z|83y1eLi^|xLkblJK#=jynmCgjkn$q$!mBUuv^&eZeUaWv6bvoAscL(4FmHcIdmb0k{SaX%BQD9pspx`!ELSe#j*4 zg$&Xj9BfDvFqpKn-low8o1S$jbC32!L1|9{RP|>)Wb9=<=;v4uS%VH8As;fw$p@Vz zhOUQ*L0=?>F4M%I%wggM2Qx>iphFF4HE10%cmZP2Mq)fo#CSFkBd$zh&@eIPJwgoH zN{p5Bef05^4|@A3Lj#o8jQJsLLp+hT!2hJTKptrn@<`F{ zh*N)@6z%66KE$blbdd4v!AG}@4LrPMyg!poXG#ZP#Y<%;wq(+S2PVw%%-F;DW{Z4W z>pPUojb}g6-u}>VZs@>3TWai)_J=YD9vMHF8XHV!vhCxg{!XW>ARHH=T`K(U-C06B zSJ?$_R_|`xJa7V!TM!Paz+}}9DXq!^ey8DYx47;2halfwc}c`~-fiUY2oYYTHpFcA zHgbAtf%^r^OQ}Q=*Z5OXs!&57yKo-1;K8y|DoMmQ^`O4&&vwMO;?dg;q1|c7V>{~X Sw%dVsq*AGvh