diff options
| author | Derek Hensley <hensley.derek58@gmail.com> | 2024-02-26 07:18:26 -0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-02-26 08:18:26 -0700 |
| commit | c632d1d20b680081c8b1ced4877a32d50d917730 (patch) | |
| tree | b7491ee1b79939ab9c541a0b4162c38bb3372b16 /lib/ultralib | |
| parent | a10bb11ed6784c6a16a09b7eb17657d2e1bb303c (diff) | |
Link libultra archive (#149)
* git subrepo pull --force lib/ultralib
subrepo:
subdir: "lib/ultralib"
merged: "34e07ce"
upstream:
origin: "git@github.com:decompals/ultralib.git"
branch: "main"
commit: "34e07ce"
git-subrepo:
version: "0.4.6"
origin: "git@github.com:ingydotnet/git-subrepo.git"
commit: "110b9eb"
* Link in libultra archive
* git subrepo pull (merge) lib/ultralib
subrepo:
subdir: "lib/ultralib"
merged: "ce7b219"
upstream:
origin: "git@github.com:decompals/ultralib.git"
branch: "main"
commit: "caf88de"
git-subrepo:
version: "0.4.6"
origin: "git@github.com:ingydotnet/git-subrepo.git"
commit: "110b9eb"
* Update paths in lib warnings
* git subrepo pull (merge) lib/ultralib
subrepo:
subdir: "lib/ultralib"
merged: "4f49c1e"
upstream:
origin: "git@github.com:decompals/ultralib.git"
branch: "main"
commit: "299d7fa"
git-subrepo:
version: "0.4.6"
origin: "git@github.com:ingydotnet/git-subrepo.git"
commit: "110b9eb"
* FIXUPS
Diffstat (limited to 'lib/ultralib')
164 files changed, 13528 insertions, 322 deletions
diff --git a/lib/ultralib/.github/workflows/ci_gcc.yml b/lib/ultralib/.github/workflows/ci_gcc.yml index 054270a..31efff8 100644 --- a/lib/ultralib/.github/workflows/ci_gcc.yml +++ b/lib/ultralib/.github/workflows/ci_gcc.yml @@ -13,7 +13,7 @@ jobs: strategy: fail-fast: false matrix: - version: [L] # [H, I, I_patch, J, K, L] + version: [I, J, K, L] # [H, I, I_patch, J, K, L] suffix: [~, _d, _rom] steps: @@ -32,7 +32,7 @@ jobs: token: ${{ secrets.SECRETTOKEN }} path: deps_repo - name: Get the dependency - run: cp deps_repo/libultra/${{ matrix.version }}/* . + run: cp deps_repo/libultra/${{ matrix.version }}/* base/${{ matrix.version }} - name: Setup run: make setup -j $(nproc) TARGET=libgultra${{ matrix.suffix }} VERSION=${{ matrix.version }} diff --git a/lib/ultralib/.github/workflows/ci_ido.yml b/lib/ultralib/.github/workflows/ci_ido.yml index 4d7f8dc..1410108 100644 --- a/lib/ultralib/.github/workflows/ci_ido.yml +++ b/lib/ultralib/.github/workflows/ci_ido.yml @@ -13,7 +13,7 @@ jobs: strategy: fail-fast: false matrix: - version: [L] # [E, F, G, H, I, I_patch, J, K, L] + version: [I, J, K, L] # [E, F, G, H, I, I_patch, J, K, L] suffix: [~, _rom] # [~, _d, _rom] steps: @@ -32,7 +32,7 @@ jobs: token: ${{ secrets.SECRETTOKEN }} path: deps_repo - name: Get the dependency - run: cp deps_repo/libultra/${{ matrix.version }}/* . + run: cp deps_repo/libultra/${{ matrix.version }}/* base/${{ matrix.version }} - name: Setup run: make setup -j $(nproc) TARGET=libultra${{ matrix.suffix }} VERSION=${{ matrix.version }} diff --git a/lib/ultralib/.gitignore b/lib/ultralib/.gitignore index d4c09ae..1193e99 100644 --- a/lib/ultralib/.gitignore +++ b/lib/ultralib/.gitignore @@ -10,6 +10,7 @@ __pycache__/ CMakeLists.txt cmake-build-debug venv/ +.venv # Project-specific ignores base_*/ @@ -24,3 +25,5 @@ tools/ido # Tool artifacts ctx.c + +libultra_collection/ diff --git a/lib/ultralib/.gitrepo b/lib/ultralib/.gitrepo index 0ec609d..f9183f9 100644 --- a/lib/ultralib/.gitrepo +++ b/lib/ultralib/.gitrepo @@ -6,7 +6,7 @@ [subrepo] remote = git@github.com:decompals/ultralib.git branch = main - commit = d163fa463289f0cd2a80c19f5673bd3c21d92861 - parent = ec338c391df972fb5a7a0840517e435b67c5daf1 + commit = 299d7faf8798cbe75e3247ccdf4e65c09f5270dd + parent = a10bb11ed6784c6a16a09b7eb17657d2e1bb303c method = merge - cmdver = 0.4.3 + cmdver = 0.4.6 diff --git a/lib/ultralib/Makefile b/lib/ultralib/Makefile index cf87da4..a4714b6 100644 --- a/lib/ultralib/Makefile +++ b/lib/ultralib/Makefile @@ -1,15 +1,21 @@ -NON_MATCHING ?= 0 +COMPARE ?= 1 +FIXUPS ?= 0 + +ifneq ($(FIXUPS),0) +COMPARE := 0 +endif # One of: # libgultra_rom, libgultra_d, libgultra # libultra_rom, libultra_d, libultra TARGET ?= libgultra_rom +VERSION ?= L CROSS ?= mips-linux-gnu- -BASE_DIR := base_$(TARGET) -BASE_AR := $(TARGET).a +BASE_DIR := extracted/$(VERSION)/$(TARGET) +BASE_AR := base/$(VERSION)/$(TARGET).a BUILD_ROOT := build -BUILD_DIR := $(BUILD_ROOT)/$(TARGET) +BUILD_DIR := $(BUILD_ROOT)/$(VERSION)/$(TARGET) BUILD_AR := $(BUILD_DIR)/$(TARGET).a WORKING_DIR := $(shell pwd) @@ -17,6 +23,24 @@ WORKING_DIR := $(shell pwd) CPP := cpp -P AR := ar +VERSION_D := 1 +VERSION_E := 2 +VERSION_F := 3 +VERSION_G := 4 +VERSION_H := 5 +VERSION_I := 6 +VERSION_J := 7 +VERSION_K := 8 +VERSION_L := 9 + +VERSION_DEFINE := -DBUILD_VERSION=$(VERSION_$(VERSION)) -DBUILD_VERSION_STRING=\"2.0$(VERSION)\" + +ifeq ($(findstring _d,$(TARGET)),_d) +DEBUGFLAG := -D_DEBUG +else +DEBUGFLAG := -DNDEBUG +endif + ifeq ($(findstring libgultra,$(TARGET)),libgultra) -include Makefile.gcc else ifeq ($(findstring libultra,$(TARGET)),libultra) @@ -25,28 +49,33 @@ else $(error Invalid Target) endif -ifeq ($(findstring _d,$(TARGET)),_d) -CPPFLAGS += -D_DEBUG -else -CPPFLAGS += -DNDEBUG -endif - ifeq ($(findstring _rom,$(TARGET)),_rom) CPPFLAGS += -D_FINALROM endif SRC_DIRS := $(shell find src -type d) -ASM_DIRS := $(shell find asm -type d -not -path "asm/non_matchings*") C_FILES := $(foreach dir,$(SRC_DIRS),$(wildcard $(dir)/*.c)) -S_FILES := $(foreach dir,$(SRC_DIRS) $(ASM_DIRS),$(wildcard $(dir)/*.s)) -O_FILES := $(foreach f,$(S_FILES:.s=.o),$(BUILD_DIR)/$f) \ - $(foreach f,$(C_FILES:.c=.o),$(BUILD_DIR)/$f) \ - $(foreach f,$(wildcard $(BASE_DIR)/*),$(BUILD_DIR)/$f) +S_FILES := $(foreach dir,$(SRC_DIRS),$(wildcard $(dir)/*.s)) + +# Versions J and below used the C matrix math implementations +MGU_MATRIX_FILES := mtxcatf normalize scale translate +ifneq ($(filter $(VERSION),D E F G H I J),) +S_FILES := $(filter-out $(addprefix src/mgu/,$(MGU_MATRIX_FILES:=.s)),$(S_FILES)) +else +C_FILES := $(filter-out $(addprefix src/gu/,$(MGU_MATRIX_FILES:=.c)),$(C_FILES)) +endif + +C_O_FILES := $(foreach f,$(C_FILES:.c=.o),$(BUILD_DIR)/$f) +S_O_FILES := $(foreach f,$(S_FILES:.s=.o),$(BUILD_DIR)/$f) +O_FILES := $(S_O_FILES) $(C_O_FILES) # Because we patch the object file timestamps, we can't use them as the targets since they'll always be older than the C file # Therefore instead we use marker files that have actual timestamps as the dependencies for the archive -MARKER_FILES := $(O_FILES:.o=.marker) +C_MARKER_FILES := $(C_O_FILES:.o=.marker) +S_MARKER_FILES := $(S_O_FILES:.o=.marker) +S_MARKER_FILES := $(filter-out $(MDEBUG_FILES),$(S_MARKER_FILES)) +MARKER_FILES := $(C_MARKER_FILES) $(S_MARKER_FILES) $(MDEBUG_FILES) -ifneq ($(NON_MATCHING),1) +ifneq ($(COMPARE),0) COMPARE_OBJ = cmp $(BASE_DIR)/$(@F:.marker=.o) $(@:.marker=.o) && echo "$(@:.marker=.o): OK" COMPARE_AR = cmp $(BASE_AR) $@ && echo "$@: OK" ifeq ($(COMPILER),ido) @@ -61,22 +90,40 @@ AR_OLD := $(AR) endif BASE_OBJS := $(wildcard $(BASE_DIR)/*.o) -# Try to find a file corresponding to an archive file in any of src/ asm/ or the base directory, prioritizing src then asm then the original file -AR_ORDER = $(foreach f,$(shell $(AR) t $(BASE_AR)),$(shell find $(BUILD_DIR)/src $(BUILD_DIR)/asm $(BUILD_DIR)/$(BASE_DIR) -iname $f -type f -print -quit)) -MATCHED_OBJS = $(filter-out $(BUILD_DIR)/$(BASE_DIR)/%,$(AR_ORDER)) + +# Check to make sure the current version has been set up +ifneq ($(COMPARE),0) +ifeq ($(BASE_OBJS),) +# Ignore this check if the user is currently running setup, clean or distclean +ifeq ($(filter $(MAKECMDGOALS),setup clean distclean),) +$(error Current version ($(TARGET) 2.0$(VERSION)) has not been setup!) +endif +endif +endif + +AR_OBJECTS := $(shell cat base/$(VERSION)/$(TARGET).txt) +# If the version and target doesn't have a text file yet, resort back to using the base archive to get objects +ifeq ($(AR_OBJECTS),) +AR_OBJECTS := $(shell ar t $(BASE_AR)) +endif + + +# Try to find a file corresponding to an archive file in src/ or the base directory, prioritizing src then the original file +AR_ORDER = $(foreach f,$(AR_OBJECTS),$(shell find $(BUILD_DIR)/src $(BASE_DIR) -iname $f -type f -print -quit)) +MATCHED_OBJS = $(filter-out $(BASE_DIR)/%,$(AR_ORDER)) UNMATCHED_OBJS = $(filter-out $(MATCHED_OBJS),$(AR_ORDER)) NUM_OBJS = $(words $(AR_ORDER)) NUM_OBJS_MATCHED = $(words $(MATCHED_OBJS)) NUM_OBJS_UNMATCHED = $(words $(UNMATCHED_OBJS)) -$(shell mkdir -p asm $(BASE_DIR) src $(BUILD_DIR)/$(BASE_DIR) $(foreach dir,$(ASM_DIRS) $(SRC_DIRS),$(BUILD_DIR)/$(dir))) +$(shell mkdir -p $(BASE_DIR) src $(foreach dir,$(SRC_DIRS),$(BUILD_DIR)/$(dir))) .PHONY: all clean distclean setup all: $(BUILD_AR) $(BUILD_AR): $(MARKER_FILES) $(AR_OLD) rcs $@ $(AR_ORDER) -ifneq ($(NON_MATCHING),1) +ifneq ($(COMPARE),0) # patch archive creation time and individual files' ownership & permissions dd bs=1 skip=24 seek=24 count=12 conv=notrunc if=$(BASE_AR) of=$@ status=none python3 tools/patch_ar_meta.py $@ $(BASE_AR) $(PATCH_AR_FLAGS) @@ -85,30 +132,32 @@ ifneq ($(NON_MATCHING),1) endif clean: - $(RM) -rf $(BUILD_ROOT) + $(RM) -rf $(BUILD_DIR) -distclean: clean +distclean: $(MAKE) -C tools distclean - $(RM) -rf $(BASE_DIR) + $(RM) -rf extracted/ $(BUILD_ROOT) setup: $(MAKE) -C tools - cd $(BASE_DIR) && $(AR) xo ../$(BASE_AR) +ifneq ($(COMPARE),0) + cd $(BASE_DIR) && $(AR) xo $(WORKING_DIR)/$(BASE_AR) chmod -R +rw $(BASE_DIR) ifeq ($(COMPILER),ido) export CROSS=$(CROSS) && ./tools/strip_debug.sh $(BASE_DIR) endif +endif $(BUILD_DIR)/$(BASE_DIR)/%.marker: $(BASE_DIR)/%.o cp $< $(@:.marker=.o) -ifneq ($(NON_MATCHING),1) +ifneq ($(COMPARE),0) # change file timestamps to match original @touch -r $(BASE_DIR)/$(@F:.marker=.o) $(@:.marker=.o) @$(COMPARE_OBJ) @touch $@ endif -GBIDEFINE := -DF3DEX_GBI_2 +GBIDEFINE := -DF3DEX_GBI $(BUILD_DIR)/src/gu/parse_gbi.marker: GBIDEFINE := -DF3D_GBI $(BUILD_DIR)/src/gu/us2dex_emu.marker: GBIDEFINE := @@ -119,9 +168,9 @@ $(BUILD_DIR)/src/sp/spriteex2.marker: GBIDEFINE := $(BUILD_DIR)/src/voice/%.marker: OPTFLAGS += -DLANG_JAPANESE -I$(WORKING_DIR)/src -I$(WORKING_DIR)/src/voice $(BUILD_DIR)/src/voice/%.marker: CC := tools/compile_sjis.py -D__CC=$(WORKING_DIR)/$(CC) -D__BUILD_DIR=$(BUILD_DIR) -$(BUILD_DIR)/%.marker: %.c +$(C_MARKER_FILES): $(BUILD_DIR)/%.marker: %.c cd $(<D) && $(WORKING_DIR)/$(CC) $(CFLAGS) $(MIPS_VERSION) $(CPPFLAGS) $(OPTFLAGS) $(<F) $(IINC) -o $(WORKING_DIR)/$(@:.marker=.o) -ifneq ($(NON_MATCHING),1) +ifneq ($(COMPARE),0) # check if this file is in the archive; patch corrupted bytes and change file timestamps to match original if so @$(if $(findstring $(BASE_DIR)/$(@F:.marker=.o), $(BASE_OBJS)), \ python3 tools/fix_objfile.py $(@:.marker=.o) $(BASE_DIR)/$(@F:.marker=.o) $(STRIP) && \ @@ -129,13 +178,18 @@ ifneq ($(NON_MATCHING),1) touch -r $(BASE_DIR)/$(@F:.marker=.o) $(@:.marker=.o), \ echo "Object file $(@F:.marker=.o) is not in the current archive" \ ) +endif +ifneq ($(FIXUPS),0) + tools/set_o32abi_bit.py $(WORKING_DIR)/$(@:.marker=.o) + $(CROSS)strip $(WORKING_DIR)/$(@:.marker=.o) -N asdasdasdasd + $(CROSS)objcopy --remove-section .mdebug $(WORKING_DIR)/$(@:.marker=.o) +endif # create or update the marker file @touch $@ -endif -$(BUILD_DIR)/%.marker: %.s +$(S_MARKER_FILES): $(BUILD_DIR)/%.marker: %.s cd $(<D) && $(WORKING_DIR)/$(CC) $(ASFLAGS) $(MIPS_VERSION) $(CPPFLAGS) $(ASOPTFLAGS) $(<F) $(IINC) -o $(WORKING_DIR)/$(@:.marker=.o) -ifneq ($(NON_MATCHING),1) +ifneq ($(COMPARE),0) # check if this file is in the archive; patch corrupted bytes and change file timestamps to match original if so @$(if $(findstring $(BASE_DIR)/$(@F:.marker=.o), $(BASE_OBJS)), \ python3 tools/fix_objfile.py $(@:.marker=.o) $(BASE_DIR)/$(@F:.marker=.o) $(STRIP) && \ @@ -143,9 +197,14 @@ ifneq ($(NON_MATCHING),1) touch -r $(BASE_DIR)/$(@F:.marker=.o) $(@:.marker=.o), \ echo "Object file $(@F:.marker=.o) is not in the current archive" \ ) +endif +ifneq ($(FIXUPS),0) + tools/set_o32abi_bit.py $(WORKING_DIR)/$(@:.marker=.o) + $(CROSS)strip $(WORKING_DIR)/$(@:.marker=.o) -N asdasdasdasd + $(CROSS)objcopy --remove-section .mdebug $(WORKING_DIR)/$(@:.marker=.o) +endif # create or update the marker file @touch $@ -endif # Rule for building files that require specific file paths in the mdebug section $(MDEBUG_FILES): $(BUILD_DIR)/src/%.marker: src/%.s @@ -153,7 +212,7 @@ $(MDEBUG_FILES): $(BUILD_DIR)/src/%.marker: src/%.s mkdir -p $(@:.marker=) export USR_INCLUDE=$(WORKING_DIR)/include && cd $(@:.marker=) && $(WORKING_DIR)/$(CC) $(ASFLAGS) $(CPPFLAGS) ../$(<F) -I/usr/include -o $(notdir $(<:.s=.o)) mv $(@:.marker=)/$(<F:.s=.o) $(@:.marker=)/.. -ifneq ($(NON_MATCHING),1) +ifneq ($(COMPARE),0) # check if this file is in the archive; patch corrupted bytes and change file timestamps to match original if so @$(if $(findstring $(BASE_DIR)/$(@F:.marker=.o), $(BASE_OBJS)), \ python3 tools/fix_objfile.py $(@:.marker=.o) $(BASE_DIR)/$(@F:.marker=.o) && \ @@ -161,9 +220,14 @@ ifneq ($(NON_MATCHING),1) touch -r $(BASE_DIR)/$(@F:.marker=.o) $(@:.marker=.o), \ echo "Object file $(@F:.marker=.o) is not in the current archive" \ ) +endif +ifneq ($(FIXUPS),0) + tools/set_o32abi_bit.py $(WORKING_DIR)/$(@:.marker=.o) + $(CROSS)strip $(WORKING_DIR)/$(@:.marker=.o) -N asdasdasdasd + $(CROSS)objcopy --remove-section .mdebug $(WORKING_DIR)/$(@:.marker=.o) +endif # create or update the marker file @touch $@ -endif # Disable built-in rules .SUFFIXES: diff --git a/lib/ultralib/Makefile.gcc b/lib/ultralib/Makefile.gcc index dce908b..96f1eed 100644 --- a/lib/ultralib/Makefile.gcc +++ b/lib/ultralib/Makefile.gcc @@ -9,11 +9,26 @@ export COMPILER_PATH := $(WORKING_DIR)/tools/gcc CFLAGS := -w -nostdinc -c -G 0 -mgp32 -mfp32 -D_LANGUAGE_C ASFLAGS := -w -nostdinc -c -G 0 -mgp32 -mfp32 -DMIPSEB -D_LANGUAGE_ASSEMBLY -D_MIPS_SIM=1 -D_ULTRA64 -x assembler-with-cpp -CPPFLAGS = -D_MIPS_SZLONG=32 -D__USE_ISOC99 $(GBIDEFINE) +CPPFLAGS = -D_MIPS_SZLONG=32 -D__USE_ISOC99 $(GBIDEFINE) $(VERSION_DEFINE) $(DEBUGFLAG) IINC = -I . -I $(WORKING_DIR)/include -I $(WORKING_DIR)/include/gcc -I $(WORKING_DIR)/include/PR MIPS_VERSION := -mips3 ASOPTFLAGS := +ifneq ($(filter $(VERSION),D E F G H I J),) +CFLAGS += -funsigned-char +endif + +# 2.0I libgultra_rom was not compiled with -DNDEBUG and instead libgultra had -DNDEBUG +ifneq ($(filter $(VERSION),I),) +ifeq ($(findstring _rom,$(TARGET)),_rom) +DEBUGFLAG := +else ifeq ($(findstring _d,$(TARGET)),_d) +DEBUGFLAG := -D_DEBUG +else +DEBUGFLAG := -DNDEBUG +endif +endif + ifeq ($(findstring _d,$(TARGET)),_d) OPTFLAGS := -O0 else @@ -33,7 +48,9 @@ export VR4300MUL := ON $(BUILD_DIR)/src/os/initialize_isv.marker: OPTFLAGS := -O2 $(BUILD_DIR)/src/os/initialize_isv.marker: STRIP = && tools/gcc/strip-2.7 -N initialize_isv.c $(WORKING_DIR)/$(@:.marker=.o) $(BUILD_DIR)/src/os/assert.marker: OPTFLAGS := -O0 +ifeq ($(filter $(VERSION),D E F G H I),) $(BUILD_DIR)/src/os/seterrorhandler.marker: OPTFLAGS := -O0 +endif $(BUILD_DIR)/src/mgu/%.marker: export VR4300MUL := OFF $(BUILD_DIR)/src/mgu/rotate.marker: export VR4300MUL := ON $(BUILD_DIR)/src/debug/%.marker: ASFLAGS += -P diff --git a/lib/ultralib/Makefile.ido b/lib/ultralib/Makefile.ido index 54c8ff7..1550f4d 100644 --- a/lib/ultralib/Makefile.ido +++ b/lib/ultralib/Makefile.ido @@ -9,7 +9,7 @@ export COMPILER_PATH := $(WORKING_DIR)/tools/ido CFLAGS := -c -Wab,-r4300_mul -G 0 -nostdinc -Xcpluscomm -fullwarn -woff 516,649,838,712 ASFLAGS := -c -Wab,-r4300_mul -G 0 -nostdinc -woff 516,649,838,712 -CPPFLAGS = -D_MIPS_SZLONG=32 $(GBIDEFINE) $(PICFLAGS) +CPPFLAGS = -D_MIPS_SZLONG=32 $(GBIDEFINE) $(VERSION_DEFINE) $(PICFLAGS) $(DEBUGFLAG) IINC = -I $(WORKING_DIR)/include -I $(WORKING_DIR)/include/ido -I $(WORKING_DIR)/include/PR MIPS_VERSION := -mips2 -o32 PICFLAGS := -non_shared @@ -18,7 +18,11 @@ ifeq ($(findstring _d,$(TARGET)),_d) OPTFLAGS := -O1 -g2 ASOPTFLAGS := -O0 -g2 else +ifneq ($(filter $(VERSION),D E F G H I),) +OPTFLAGS := -O1 +else OPTFLAGS := -O2 +endif ASOPTFLAGS := -O1 endif @@ -43,3 +47,14 @@ $(BUILD_DIR)/src/libc/llcvt.marker: MIPS_VERSION := -mips3 -32 $(BUILD_DIR)/src/os/exceptasm.marker: MIPS_VERSION := -mips3 -32 $(BUILD_DIR)/src/log/delay.marker: MIPS_VERSION := -mips1 -o32 $(BUILD_DIR)/src/log/delay.marker: PICFLAGS := -KPIC + +ifneq ($(filter $(VERSION),D E F G H I),) +$(BUILD_DIR)/src/libc/%.marker: OPTFLAGS := -O3 +$(BUILD_DIR)/src/sched/%.marker: OPTFLAGS := -O3 +$(BUILD_DIR)/src/gu/%.marker: OPTFLAGS := -O3 +$(BUILD_DIR)/src/mgu/%.marker: OPTFLAGS := -O3 +$(BUILD_DIR)/src/sp/%.marker: OPTFLAGS := -O3 +$(BUILD_DIR)/src/audio/%.marker: OPTFLAGS := -O3 +$(BUILD_DIR)/src/rg/%.marker: OPTFLAGS := -O3 +$(BUILD_DIR)/src/gt/%.marker: OPTFLAGS := -O3 +endif diff --git a/lib/ultralib/README.md b/lib/ultralib/README.md index ce88d5c..8fa9b97 100644 --- a/lib/ultralib/README.md +++ b/lib/ultralib/README.md @@ -11,17 +11,19 @@ Currently this repo supports building the following versions: | 2.0E | :x: / N/A | :x: / N/A | :x: / N/A | | 2.0F | :x: / N/A | :x: / N/A | :x: / N/A | | 2.0G | :x: / N/A | :x: / N/A | :x: / N/A | -| 2.0H | :x: / :x: | :x: / :x: | :x: / :x: | -| 2.0I | :x: / :x: | :x: / :x: | :x: / :x: | +| 2.0H | N/A / :x: | N/A / :x: | N/A / :x: | +| 2.0I | :heavy_check_mark: / :heavy_check_mark: | :x: / :heavy_check_mark: | :heavy_check_mark: / :heavy_check_mark: | | 2.0I_patch | :x: / :x: | :x: / :x: | :x: / :x: | -| 2.0J | :x: / :x: | :x: / :x: | :x: / :x: | -| 2.0K | :x: / :x: | :x: / :x: | :x: / :x: | +| 2.0J | :heavy_check_mark: / :heavy_check_mark: | :x: / :heavy_check_mark: | :heavy_check_mark: / :heavy_check_mark: | +| 2.0K | :heavy_check_mark: / :heavy_check_mark: | :x: / :heavy_check_mark: | :heavy_check_mark: / :heavy_check_mark: | | 2.0L | :heavy_check_mark: / :heavy_check_mark: | :x: / :heavy_check_mark: | :heavy_check_mark: / :heavy_check_mark: | | ique_v1.5 | :x: | :x: | :x: | ## Preparation -After cloning the repo, put a copy of the target archive on the root of this directory. +After cloning the repo, put a copy of the target archive(s) in their correct version folder in `base/`. +For example, if your target archive is libgultra_rom.a 2.0L then you'd place it in `base/L/`. +If you will be building without a target archive by setting `COMPARE=0` then you can skip this step. ## Build dependencies @@ -46,5 +48,25 @@ sudo apt install binutils-mips-linux-gnu ## Building -- `make setup` -- `make` +Run make setup with the proper flags set followed by make with optional jobs. +For example, if building the 2.0L PC archive you'd do the following: + +- `make VERSION=L TARGET=libgultra_rom setup` +- `make VERSION=L TARGET=libgultra_rom` + +Every target flag combination requires separate a setup command. + +If building without an target archive, than you can use `COMPARE=0` like the the following: + +- `make VERSION=L TARGET=libgultra_rom COMPARE=0 setup` +- `make VERSION=L TARGET=libgultra_rom COMPARE=0` + +note that running setup without `COMPARE=0` and no archive will result in an error, +and only needs to be run once instead of per target flag combination + +If building for use with modern linkers, than you can use `FIXUPS=1` like the the following: + +- `make VERSION=L TARGET=libgultra_rom FIXUPS=1 setup` +- `make VERSION=L TARGET=libgultra_rom FIXUPS=1` + +note that running with `FIXUPS=1` will automatically set `COMPARE=0`. diff --git a/lib/ultralib/base/I/libgultra.txt b/lib/ultralib/base/I/libgultra.txt new file mode 100644 index 0000000..315e830 --- /dev/null +++ b/lib/ultralib/base/I/libgultra.txt @@ -0,0 +1,404 @@ +gt.o +dumpturbo.o +sqrtf.o +libm_vals.o +align.o +cosf.o +coss.o +frustum.o +lookat.o +lookatref.o +lookathil.o +lookatstereo.o +mtxutil.o +mtxcatf.o +mtxcatl.o +normalize.o +ortho.o +perspective.o +rotate.o +rotaterpy.o +scale.o +sinf.o +sins.o +translate.o +loadtextureblockmipmap.o +guloadtile_bug.o +position.o +poslight.o +poslighthil.o +random.o +usprite.o +us2dex.o +us2dex_emu.o +parse_rdp.o +parse_gbi.o +dump_gbi.o +parse_string.o +exceptasm.o +getcause.o +getcompare.o +getconfig.o +getcount.o +getfpccsr.o +getsr.o +getintmask.o +gettlbasid.o +gettlbhi.o +gettlblo0.o +gettlblo1.o +gettlbpagemask.o +invaldcache.o +invalicache.o +interrupt.o +maptlb.o +parameters.o +probetlb.o +setintmask.o +setcause.o +setcompare.o +setconfig.o +setcount.o +setfpccsr.o +setsr.o +settlbasid.o +unmaptlb.o +unmaptlball.o +writebackdcache.o +writebackdcacheall.o +maptlbrdb.o +errorasm.o +assertbreak.o +atomic.o +createmesgqueue.o +createthread.o +destroythread.o +getactivequeue.o +getthreadid.o +getthreadpri.o +gettime.o +initialize.o +jammesg.o +kdebugserver.o +physicaltovirtual.o +recvmesg.o +resetglobalintmask.o +sendmesg.o +seteventmesg.o +setglobalintmask.o +sethwinterrupt.o +setthreadpri.o +settime.o +settimer.o +startthread.o +stopthread.o +stoptimer.o +syncputchars.o +thread.o +timerintr.o +virtualtophysical.o +yieldthread.o +getcurrfaultthread.o +getnextfaultthread.o +initrdb.o +rdbsend.o +getmemsize.o +error.o +seterrorhandler.o +assert.o +exit.o +profile.o +readhost.o +testhost.o +writehost.o +ackramromread.o +ackramromwrite.o +host_ptn64.o +drvrnew.o +load.o +auxbus.o +bnkf.o +env.o +event.o +filter.o +mainbus.o +resample.o +reverb.o +save.o +seq.o +sl.o +heapcheck.o +heapinit.o +heapalloc.o +copy.o +seqpdelete.o +seqpgetfxmix.o +seqpgetpan.o +seqpgetchlvol.o +seqpgetpriority.o +seqpgetprogram.o +seqpgetseq.o +seqpgettempo.o +seqpgetvol.o +seqpgetstate.o +seqploop.o +seqpplay.o +seqpsendmidi.o +seqpsetbank.o +seqpsetfxmix.o +seqpsetpan.o +seqpsetchlvol.o +seqpsetpriority.o +seqpsetprogram.o +seqpsetseq.o +seqpsettempo.o +seqpsetvol.o +seqpstop.o +seqplayer.o +cseq.o +cspdelete.o +cspgetfxmix.o +cspgetpan.o +cspgetchlvol.o +cspgetpriority.o +cspgetprogram.o +cspgetseq.o +cspgettempo.o +cspgetvol.o +cspgetstate.o +cspplay.o +cspsendmidi.o +cspsetbank.o +cspsetfxmix.o +cspsetpan.o +cspsetchlvol.o +cspsetpriority.o +cspsetprogram.o +cspsetseq.o +cspsettempo.o +cspsetvol.o +cspstop.o +csplayer.o +sndplayer.o +sndpdelete.o +sndpallocate.o +sndpdeallocate.o +sndpsetsound.o +sndpplay.o +sndpplayat.o +sndpgetsound.o +sndpstop.o +sndpgetstate.o +sndpsetpitch.o +sndpsetpriority.o +sndpsetvol.o +sndpsetpan.o +sndpsetfxmix.o +synthesizer.o +syndelete.o +synaddplayer.o +synremoveplayer.o +synfreevoice.o +synallocvoice.o +synstopvoice.o +synstartvoice.o +synstartvoiceparam.o +synsetpitch.o +synsetvol.o +synsetfxmix.o +synsetpan.o +syngetpriority.o +synsetpriority.o +synallocfx.o +synfreefx.o +syngetfxref.o +synsetfxparam.o +cents2ratio.o +parse_abi.o +color.o +clearattribute.o +hide.o +spscale.o +setattribute.o +show.o +sprite.o +ai.o +aigetlen.o +aigetstat.o +aisetfreq.o +aisetnextbuf.o +dp.o +dpgetstat.o +dpsetstat.o +dpsetnextbuf.o +dpctr.o +sp.o +spgetstat.o +spsetstat.o +spsetpc.o +sprawread.o +sprawwrite.o +sprawdma.o +sptask.o +sptaskyield.o +sptaskyielded.o +vi.o +vigetcurrcontext.o +vigetfield.o +vigetcurrframebuf.o +vigetnextframebuf.o +vigetline.o +vigetmode.o +vigetnextcontext.o +vigetstat.o +vimgr.o +visetevent.o +visetmode.o +visetspecial.o +visetxscale.o +visetyscale.o +viswapbuf.o +viswapcontext.o +vitbl.o +viblack.o +virepeatline.o +vifade.o +si.o +sigetstat.o +sirawread.o +sirawwrite.o +sirawdma.o +siacs.o +contquery.o +contreaddata.o +contreset.o +controller.o +contsetch.o +crc.o +contramread.o +contramwrite.o +contpfs.o +pfsreformat.o +pfschecker.o +pfsinit.o +pfsallocatefile.o +pfsdeletefile.o +pfsreadwritefile.o +pfsfilestate.o +pfssearchfile.o +pfssetlabel.o +pfsgetlabel.o +pfsisplug.o +pfsfreeblocks.o +pfsnumfiles.o +conteepread.o +conteepwrite.o +conteepprobe.o +conteeplongwrite.o +conteeplongread.o +pfsinitpak.o +pfsrepairid.o +pfsgetstatus.o +motor.o +vimodentsclpn1.o +vimodentsclpf1.o +vimodentsclan1.o +vimodentsclaf1.o +vimodentsclpn2.o +vimodentsclpf2.o +vimodentsclan2.o +vimodentsclaf2.o +vimodentschpn1.o +vimodentschpf1.o +vimodentschan1.o +vimodentschaf1.o +vimodentschpn2.o +vimodentschpf2.o +vimodepallpn1.o +vimodepallpf1.o +vimodepallan1.o +vimodepallaf1.o +vimodepallpn2.o +vimodepallpf2.o +vimodepallan2.o +vimodepallaf2.o +vimodepalhpn1.o +vimodepalhpf1.o +vimodepalhan1.o +vimodepalhaf1.o +vimodepalhpn2.o +vimodepalhpf2.o +vimodempallpn1.o +vimodempallpf1.o +vimodempallan1.o +vimodempallaf1.o +vimodempallpn2.o +vimodempallpf2.o +vimodempallan2.o +vimodempallaf2.o +vimodempalhpn1.o +vimodempalhpf1.o +vimodempalhan1.o +vimodempalhaf1.o +vimodempalhpn2.o +vimodempalhpf2.o +pi.o +pigettype.o +pigetstat.o +pirawread.o +pirawwrite.o +pirawdma.o +pigetcmdq.o +pimgr.o +epirawread.o +epirawwrite.o +epirawdma.o +epiwrite.o +epiread.o +epidma.o +epigettype.o +epilinkhandle.o +cartrominit.o +leodiskinit.o +leointerrupt.o +driverominit.o +devmgr.o +piacs.o +piwrite.o +piread.o +pidma.o +giorawinterrupt.o +giointerrupt.o +region.o +malloc.o +free.o +getbufcount.o +getsize.o +printregion.o +rmonrcp.o +rmonbrk.o +rmoncmds.o +rmonmem.o +rmonmisc.o +rmonprint.o +rmonregs.o +rmontask.o +rmonmain.o +rmonsio.o +bcmp.o +bcopy.o +bzero.o +ll.o +llcvt.o +string.o +ldiv.o +llbit.o +xlitob.o +xldtob.o +xprintf.o +sprintf.o +syncprintf.o +delay.o +log.o +logfloat.o +sched.o diff --git a/lib/ultralib/base/I/libgultra_d.txt b/lib/ultralib/base/I/libgultra_d.txt new file mode 100644 index 0000000..315e830 --- /dev/null +++ b/lib/ultralib/base/I/libgultra_d.txt @@ -0,0 +1,404 @@ +gt.o +dumpturbo.o +sqrtf.o +libm_vals.o +align.o +cosf.o +coss.o +frustum.o +lookat.o +lookatref.o +lookathil.o +lookatstereo.o +mtxutil.o +mtxcatf.o +mtxcatl.o +normalize.o +ortho.o +perspective.o +rotate.o +rotaterpy.o +scale.o +sinf.o +sins.o +translate.o +loadtextureblockmipmap.o +guloadtile_bug.o +position.o +poslight.o +poslighthil.o +random.o +usprite.o +us2dex.o +us2dex_emu.o +parse_rdp.o +parse_gbi.o +dump_gbi.o +parse_string.o +exceptasm.o +getcause.o +getcompare.o +getconfig.o +getcount.o +getfpccsr.o +getsr.o +getintmask.o +gettlbasid.o +gettlbhi.o +gettlblo0.o +gettlblo1.o +gettlbpagemask.o +invaldcache.o +invalicache.o +interrupt.o +maptlb.o +parameters.o +probetlb.o +setintmask.o +setcause.o +setcompare.o +setconfig.o +setcount.o +setfpccsr.o +setsr.o +settlbasid.o +unmaptlb.o +unmaptlball.o +writebackdcache.o +writebackdcacheall.o +maptlbrdb.o +errorasm.o +assertbreak.o +atomic.o +createmesgqueue.o +createthread.o +destroythread.o +getactivequeue.o +getthreadid.o +getthreadpri.o +gettime.o +initialize.o +jammesg.o +kdebugserver.o +physicaltovirtual.o +recvmesg.o +resetglobalintmask.o +sendmesg.o +seteventmesg.o +setglobalintmask.o +sethwinterrupt.o +setthreadpri.o +settime.o +settimer.o +startthread.o +stopthread.o +stoptimer.o +syncputchars.o +thread.o +timerintr.o +virtualtophysical.o +yieldthread.o +getcurrfaultthread.o +getnextfaultthread.o +initrdb.o +rdbsend.o +getmemsize.o +error.o +seterrorhandler.o +assert.o +exit.o +profile.o +readhost.o +testhost.o +writehost.o +ackramromread.o +ackramromwrite.o +host_ptn64.o +drvrnew.o +load.o +auxbus.o +bnkf.o +env.o +event.o +filter.o +mainbus.o +resample.o +reverb.o +save.o +seq.o +sl.o +heapcheck.o +heapinit.o +heapalloc.o +copy.o +seqpdelete.o +seqpgetfxmix.o +seqpgetpan.o +seqpgetchlvol.o +seqpgetpriority.o +seqpgetprogram.o +seqpgetseq.o +seqpgettempo.o +seqpgetvol.o +seqpgetstate.o +seqploop.o +seqpplay.o +seqpsendmidi.o +seqpsetbank.o +seqpsetfxmix.o +seqpsetpan.o +seqpsetchlvol.o +seqpsetpriority.o +seqpsetprogram.o +seqpsetseq.o +seqpsettempo.o +seqpsetvol.o +seqpstop.o +seqplayer.o +cseq.o +cspdelete.o +cspgetfxmix.o +cspgetpan.o +cspgetchlvol.o +cspgetpriority.o +cspgetprogram.o +cspgetseq.o +cspgettempo.o +cspgetvol.o +cspgetstate.o +cspplay.o +cspsendmidi.o +cspsetbank.o +cspsetfxmix.o +cspsetpan.o +cspsetchlvol.o +cspsetpriority.o +cspsetprogram.o +cspsetseq.o +cspsettempo.o +cspsetvol.o +cspstop.o +csplayer.o +sndplayer.o +sndpdelete.o +sndpallocate.o +sndpdeallocate.o +sndpsetsound.o +sndpplay.o +sndpplayat.o +sndpgetsound.o +sndpstop.o +sndpgetstate.o +sndpsetpitch.o +sndpsetpriority.o +sndpsetvol.o +sndpsetpan.o +sndpsetfxmix.o +synthesizer.o +syndelete.o +synaddplayer.o +synremoveplayer.o +synfreevoice.o +synallocvoice.o +synstopvoice.o +synstartvoice.o +synstartvoiceparam.o +synsetpitch.o +synsetvol.o +synsetfxmix.o +synsetpan.o +syngetpriority.o +synsetpriority.o +synallocfx.o +synfreefx.o +syngetfxref.o +synsetfxparam.o +cents2ratio.o +parse_abi.o +color.o +clearattribute.o +hide.o +spscale.o +setattribute.o +show.o +sprite.o +ai.o +aigetlen.o +aigetstat.o +aisetfreq.o +aisetnextbuf.o +dp.o +dpgetstat.o +dpsetstat.o +dpsetnextbuf.o +dpctr.o +sp.o +spgetstat.o +spsetstat.o +spsetpc.o +sprawread.o +sprawwrite.o +sprawdma.o +sptask.o +sptaskyield.o +sptaskyielded.o +vi.o +vigetcurrcontext.o +vigetfield.o +vigetcurrframebuf.o +vigetnextframebuf.o +vigetline.o +vigetmode.o +vigetnextcontext.o +vigetstat.o +vimgr.o +visetevent.o +visetmode.o +visetspecial.o +visetxscale.o +visetyscale.o +viswapbuf.o +viswapcontext.o +vitbl.o +viblack.o +virepeatline.o +vifade.o +si.o +sigetstat.o +sirawread.o +sirawwrite.o +sirawdma.o +siacs.o +contquery.o +contreaddata.o +contreset.o +controller.o +contsetch.o +crc.o +contramread.o +contramwrite.o +contpfs.o +pfsreformat.o +pfschecker.o +pfsinit.o +pfsallocatefile.o +pfsdeletefile.o +pfsreadwritefile.o +pfsfilestate.o +pfssearchfile.o +pfssetlabel.o +pfsgetlabel.o +pfsisplug.o +pfsfreeblocks.o +pfsnumfiles.o +conteepread.o +conteepwrite.o +conteepprobe.o +conteeplongwrite.o +conteeplongread.o +pfsinitpak.o +pfsrepairid.o +pfsgetstatus.o +motor.o +vimodentsclpn1.o +vimodentsclpf1.o +vimodentsclan1.o +vimodentsclaf1.o +vimodentsclpn2.o +vimodentsclpf2.o +vimodentsclan2.o +vimodentsclaf2.o +vimodentschpn1.o +vimodentschpf1.o +vimodentschan1.o +vimodentschaf1.o +vimodentschpn2.o +vimodentschpf2.o +vimodepallpn1.o +vimodepallpf1.o +vimodepallan1.o +vimodepallaf1.o +vimodepallpn2.o +vimodepallpf2.o +vimodepallan2.o +vimodepallaf2.o +vimodepalhpn1.o +vimodepalhpf1.o +vimodepalhan1.o +vimodepalhaf1.o +vimodepalhpn2.o +vimodepalhpf2.o +vimodempallpn1.o +vimodempallpf1.o +vimodempallan1.o +vimodempallaf1.o +vimodempallpn2.o +vimodempallpf2.o +vimodempallan2.o +vimodempallaf2.o +vimodempalhpn1.o +vimodempalhpf1.o +vimodempalhan1.o +vimodempalhaf1.o +vimodempalhpn2.o +vimodempalhpf2.o +pi.o +pigettype.o +pigetstat.o +pirawread.o +pirawwrite.o +pirawdma.o +pigetcmdq.o +pimgr.o +epirawread.o +epirawwrite.o +epirawdma.o +epiwrite.o +epiread.o +epidma.o +epigettype.o +epilinkhandle.o +cartrominit.o +leodiskinit.o +leointerrupt.o +driverominit.o +devmgr.o +piacs.o +piwrite.o +piread.o +pidma.o +giorawinterrupt.o +giointerrupt.o +region.o +malloc.o +free.o +getbufcount.o +getsize.o +printregion.o +rmonrcp.o +rmonbrk.o +rmoncmds.o +rmonmem.o +rmonmisc.o +rmonprint.o +rmonregs.o +rmontask.o +rmonmain.o +rmonsio.o +bcmp.o +bcopy.o +bzero.o +ll.o +llcvt.o +string.o +ldiv.o +llbit.o +xlitob.o +xldtob.o +xprintf.o +sprintf.o +syncprintf.o +delay.o +log.o +logfloat.o +sched.o diff --git a/lib/ultralib/base/I/libgultra_rom.txt b/lib/ultralib/base/I/libgultra_rom.txt new file mode 100644 index 0000000..315e830 --- /dev/null +++ b/lib/ultralib/base/I/libgultra_rom.txt @@ -0,0 +1,404 @@ +gt.o +dumpturbo.o +sqrtf.o +libm_vals.o +align.o +cosf.o +coss.o +frustum.o +lookat.o +lookatref.o +lookathil.o +lookatstereo.o +mtxutil.o +mtxcatf.o +mtxcatl.o +normalize.o +ortho.o +perspective.o +rotate.o +rotaterpy.o +scale.o +sinf.o +sins.o +translate.o +loadtextureblockmipmap.o +guloadtile_bug.o +position.o +poslight.o +poslighthil.o +random.o +usprite.o +us2dex.o +us2dex_emu.o +parse_rdp.o +parse_gbi.o +dump_gbi.o +parse_string.o +exceptasm.o +getcause.o +getcompare.o +getconfig.o +getcount.o +getfpccsr.o +getsr.o +getintmask.o +gettlbasid.o +gettlbhi.o +gettlblo0.o +gettlblo1.o +gettlbpagemask.o +invaldcache.o +invalicache.o +interrupt.o +maptlb.o +parameters.o +probetlb.o +setintmask.o +setcause.o +setcompare.o +setconfig.o +setcount.o +setfpccsr.o +setsr.o +settlbasid.o +unmaptlb.o +unmaptlball.o +writebackdcache.o +writebackdcacheall.o +maptlbrdb.o +errorasm.o +assertbreak.o +atomic.o +createmesgqueue.o +createthread.o +destroythread.o +getactivequeue.o +getthreadid.o +getthreadpri.o +gettime.o +initialize.o +jammesg.o +kdebugserver.o +physicaltovirtual.o +recvmesg.o +resetglobalintmask.o +sendmesg.o +seteventmesg.o +setglobalintmask.o +sethwinterrupt.o +setthreadpri.o +settime.o +settimer.o +startthread.o +stopthread.o +stoptimer.o +syncputchars.o +thread.o +timerintr.o +virtualtophysical.o +yieldthread.o +getcurrfaultthread.o +getnextfaultthread.o +initrdb.o +rdbsend.o +getmemsize.o +error.o +seterrorhandler.o +assert.o +exit.o +profile.o +readhost.o +testhost.o +writehost.o +ackramromread.o +ackramromwrite.o +host_ptn64.o +drvrnew.o +load.o +auxbus.o +bnkf.o +env.o +event.o +filter.o +mainbus.o +resample.o +reverb.o +save.o +seq.o +sl.o +heapcheck.o +heapinit.o +heapalloc.o +copy.o +seqpdelete.o +seqpgetfxmix.o +seqpgetpan.o +seqpgetchlvol.o +seqpgetpriority.o +seqpgetprogram.o +seqpgetseq.o +seqpgettempo.o +seqpgetvol.o +seqpgetstate.o +seqploop.o +seqpplay.o +seqpsendmidi.o +seqpsetbank.o +seqpsetfxmix.o +seqpsetpan.o +seqpsetchlvol.o +seqpsetpriority.o +seqpsetprogram.o +seqpsetseq.o +seqpsettempo.o +seqpsetvol.o +seqpstop.o +seqplayer.o +cseq.o +cspdelete.o +cspgetfxmix.o +cspgetpan.o +cspgetchlvol.o +cspgetpriority.o +cspgetprogram.o +cspgetseq.o +cspgettempo.o +cspgetvol.o +cspgetstate.o +cspplay.o +cspsendmidi.o +cspsetbank.o +cspsetfxmix.o +cspsetpan.o +cspsetchlvol.o +cspsetpriority.o +cspsetprogram.o +cspsetseq.o +cspsettempo.o +cspsetvol.o +cspstop.o +csplayer.o +sndplayer.o +sndpdelete.o +sndpallocate.o +sndpdeallocate.o +sndpsetsound.o +sndpplay.o +sndpplayat.o +sndpgetsound.o +sndpstop.o +sndpgetstate.o +sndpsetpitch.o +sndpsetpriority.o +sndpsetvol.o +sndpsetpan.o +sndpsetfxmix.o +synthesizer.o +syndelete.o +synaddplayer.o +synremoveplayer.o +synfreevoice.o +synallocvoice.o +synstopvoice.o +synstartvoice.o +synstartvoiceparam.o +synsetpitch.o +synsetvol.o +synsetfxmix.o +synsetpan.o +syngetpriority.o +synsetpriority.o +synallocfx.o +synfreefx.o +syngetfxref.o +synsetfxparam.o +cents2ratio.o +parse_abi.o +color.o +clearattribute.o +hide.o +spscale.o +setattribute.o +show.o +sprite.o +ai.o +aigetlen.o +aigetstat.o +aisetfreq.o +aisetnextbuf.o +dp.o +dpgetstat.o +dpsetstat.o +dpsetnextbuf.o +dpctr.o +sp.o +spgetstat.o +spsetstat.o +spsetpc.o +sprawread.o +sprawwrite.o +sprawdma.o +sptask.o +sptaskyield.o +sptaskyielded.o +vi.o +vigetcurrcontext.o +vigetfield.o +vigetcurrframebuf.o +vigetnextframebuf.o +vigetline.o +vigetmode.o +vigetnextcontext.o +vigetstat.o +vimgr.o +visetevent.o +visetmode.o +visetspecial.o +visetxscale.o +visetyscale.o +viswapbuf.o +viswapcontext.o +vitbl.o +viblack.o +virepeatline.o +vifade.o +si.o +sigetstat.o +sirawread.o +sirawwrite.o +sirawdma.o +siacs.o +contquery.o +contreaddata.o +contreset.o +controller.o +contsetch.o +crc.o +contramread.o +contramwrite.o +contpfs.o +pfsreformat.o +pfschecker.o +pfsinit.o +pfsallocatefile.o +pfsdeletefile.o +pfsreadwritefile.o +pfsfilestate.o +pfssearchfile.o +pfssetlabel.o +pfsgetlabel.o +pfsisplug.o +pfsfreeblocks.o +pfsnumfiles.o +conteepread.o +conteepwrite.o +conteepprobe.o +conteeplongwrite.o +conteeplongread.o +pfsinitpak.o +pfsrepairid.o +pfsgetstatus.o +motor.o +vimodentsclpn1.o +vimodentsclpf1.o +vimodentsclan1.o +vimodentsclaf1.o +vimodentsclpn2.o +vimodentsclpf2.o +vimodentsclan2.o +vimodentsclaf2.o +vimodentschpn1.o +vimodentschpf1.o +vimodentschan1.o +vimodentschaf1.o +vimodentschpn2.o +vimodentschpf2.o +vimodepallpn1.o +vimodepallpf1.o +vimodepallan1.o +vimodepallaf1.o +vimodepallpn2.o +vimodepallpf2.o +vimodepallan2.o +vimodepallaf2.o +vimodepalhpn1.o +vimodepalhpf1.o +vimodepalhan1.o +vimodepalhaf1.o +vimodepalhpn2.o +vimodepalhpf2.o +vimodempallpn1.o +vimodempallpf1.o +vimodempallan1.o +vimodempallaf1.o +vimodempallpn2.o +vimodempallpf2.o +vimodempallan2.o +vimodempallaf2.o +vimodempalhpn1.o +vimodempalhpf1.o +vimodempalhan1.o +vimodempalhaf1.o +vimodempalhpn2.o +vimodempalhpf2.o +pi.o +pigettype.o +pigetstat.o +pirawread.o +pirawwrite.o +pirawdma.o +pigetcmdq.o +pimgr.o +epirawread.o +epirawwrite.o +epirawdma.o +epiwrite.o +epiread.o +epidma.o +epigettype.o +epilinkhandle.o +cartrominit.o +leodiskinit.o +leointerrupt.o +driverominit.o +devmgr.o +piacs.o +piwrite.o +piread.o +pidma.o +giorawinterrupt.o +giointerrupt.o +region.o +malloc.o +free.o +getbufcount.o +getsize.o +printregion.o +rmonrcp.o +rmonbrk.o +rmoncmds.o +rmonmem.o +rmonmisc.o +rmonprint.o +rmonregs.o +rmontask.o +rmonmain.o +rmonsio.o +bcmp.o +bcopy.o +bzero.o +ll.o +llcvt.o +string.o +ldiv.o +llbit.o +xlitob.o +xldtob.o +xprintf.o +sprintf.o +syncprintf.o +delay.o +log.o +logfloat.o +sched.o diff --git a/lib/ultralib/base/I/libultra.txt b/lib/ultralib/base/I/libultra.txt new file mode 100644 index 0000000..bb17631 --- /dev/null +++ b/lib/ultralib/base/I/libultra.txt @@ -0,0 +1,400 @@ +gt.o +dumpturbo.o +sqrtf.o +libm_vals.o +align.o +cosf.o +coss.o +frustum.o +lookat.o +lookatref.o +lookathil.o +lookatstereo.o +mtxutil.o +mtxcatf.o +mtxcatl.o +normalize.o +ortho.o +perspective.o +rotate.o +rotateRPY.o +scale.o +sinf.o +sins.o +translate.o +loadtextureblockmipmap.o +guLoadTile_bug.o +position.o +poslight.o +poslighthil.o +random.o +usprite.o +us2dex.o +us2dex_emu.o +parse_rdp.o +parse_gbi.o +dump_gbi.o +parse_string.o +exceptasm.o +getcause.o +getcompare.o +getconfig.o +getcount.o +getfpccsr.o +getsr.o +getintmask.o +gettlbasid.o +gettlbhi.o +gettlblo0.o +gettlblo1.o +gettlbpagemask.o +invaldcache.o +invalicache.o +interrupt.o +maptlb.o +parameters.o +probetlb.o +setintmask.o +setcause.o +setcompare.o +setconfig.o +setcount.o +setfpccsr.o +setsr.o +settlbasid.o +unmaptlb.o +unmaptlball.o +writebackdcache.o +writebackdcacheall.o +maptlbrdb.o +assertbreak.o +atomic.o +createmesgqueue.o +createthread.o +destroythread.o +getactivequeue.o +getthreadid.o +getthreadpri.o +gettime.o +initialize.o +jammesg.o +kdebugserver.o +physicaltovirtual.o +recvmesg.o +resetglobalintmask.o +sendmesg.o +seteventmesg.o +setglobalintmask.o +sethwinterrupt.o +setthreadpri.o +settime.o +settimer.o +startthread.o +stopthread.o +stoptimer.o +syncputchars.o +thread.o +timerintr.o +virtualtophysical.o +yieldthread.o +getcurrfaultthread.o +getnextfaultthread.o +initrdb.o +rdbsend.o +getmemsize.o +exit.o +profile.o +readhost.o +testhost.o +writehost.o +ackramromread.o +ackramromwrite.o +host_ptn64.o +drvrNew.o +load.o +auxbus.o +bnkf.o +env.o +event.o +filter.o +mainbus.o +resample.o +reverb.o +save.o +seq.o +sl.o +heapcheck.o +heapinit.o +heapalloc.o +copy.o +seqpdelete.o +seqpgetfxmix.o +seqpgetpan.o +seqpgetchlvol.o +seqpgetpriority.o +seqpgetprogram.o +seqpgetseq.o +seqpgettempo.o +seqpgetvol.o +seqpgetstate.o +seqploop.o +seqpplay.o +seqpsendmidi.o +seqpsetbank.o +seqpsetfxmix.o +seqpsetpan.o +seqpsetchlvol.o +seqpsetpriority.o +seqpsetprogram.o +seqpsetseq.o +seqpsettempo.o +seqpsetvol.o +seqpstop.o +seqplayer.o +cseq.o +cspdelete.o +cspgetfxmix.o +cspgetpan.o +cspgetchlvol.o +cspgetpriority.o +cspgetprogram.o +cspgetseq.o +cspgettempo.o +cspgetvol.o +cspgetstate.o +cspplay.o +cspsendmidi.o +cspsetbank.o +cspsetfxmix.o +cspsetpan.o +cspsetchlvol.o +cspsetpriority.o +cspsetprogram.o +cspsetseq.o +cspsettempo.o +cspsetvol.o +cspstop.o +csplayer.o +sndplayer.o +sndpdelete.o +sndpallocate.o +sndpdeallocate.o +sndpsetsound.o +sndpplay.o +sndpplayat.o +sndpgetsound.o +sndpstop.o +sndpgetstate.o +sndpsetpitch.o +sndpsetpriority.o +sndpsetvol.o +sndpsetpan.o +sndpsetfxmix.o +synthesizer.o +syndelete.o +synaddplayer.o +synremoveplayer.o +synfreevoice.o +synallocvoice.o +synstopvoice.o +synstartvoice.o +synstartvoiceparam.o +synsetpitch.o +synsetvol.o +synsetfxmix.o +synsetpan.o +syngetpriority.o +synsetpriority.o +synallocfx.o +synfreefx.o +syngetfxref.o +synsetfxparam.o +cents2ratio.o +parse_abi.o +color.o +clearattribute.o +hide.o +spscale.o +setattribute.o +show.o +sprite.o +ai.o +aigetlen.o +aigetstat.o +aisetfreq.o +aisetnextbuf.o +dp.o +dpgetstat.o +dpsetstat.o +dpsetnextbuf.o +dpctr.o +sp.o +spgetstat.o +spsetstat.o +spsetpc.o +sprawread.o +sprawwrite.o +sprawdma.o +sptask.o +sptaskyield.o +sptaskyielded.o +vi.o +vigetcurrcontext.o +vigetfield.o +vigetcurrframebuf.o +vigetnextframebuf.o +vigetline.o +vigetmode.o +vigetnextcontext.o +vigetstat.o +vimgr.o +visetevent.o +visetmode.o +visetspecial.o +visetxscale.o +visetyscale.o +viswapbuf.o +viswapcontext.o +vitbl.o +viblack.o +virepeatline.o +vifade.o +si.o +sigetstat.o +sirawread.o +sirawwrite.o +sirawdma.o +siacs.o +contquery.o +contreaddata.o +contreset.o +controller.o +contsetch.o +crc.o +contramread.o +contramwrite.o +contpfs.o +pfsreformat.o +pfschecker.o +pfsinit.o +pfsallocatefile.o +pfsdeletefile.o +pfsreadwritefile.o +pfsfilestate.o +pfssearchfile.o +pfssetlabel.o +pfsgetlabel.o +pfsisplug.o +pfsfreeblocks.o +pfsnumfiles.o +conteepread.o +conteepwrite.o +conteepprobe.o +conteeplongwrite.o +conteeplongread.o +pfsinitpak.o +pfsrepairid.o +pfsgetstatus.o +motor.o +vimodentsclpn1.o +vimodentsclpf1.o +vimodentsclan1.o +vimodentsclaf1.o +vimodentsclpn2.o +vimodentsclpf2.o +vimodentsclan2.o +vimodentsclaf2.o +vimodentschpn1.o +vimodentschpf1.o +vimodentschan1.o +vimodentschaf1.o +vimodentschpn2.o +vimodentschpf2.o +vimodepallpn1.o +vimodepallpf1.o +vimodepallan1.o +vimodepallaf1.o +vimodepallpn2.o +vimodepallpf2.o +vimodepallan2.o +vimodepallaf2.o +vimodepalhpn1.o +vimodepalhpf1.o +vimodepalhan1.o +vimodepalhaf1.o +vimodepalhpn2.o +vimodepalhpf2.o +vimodempallpn1.o +vimodempallpf1.o +vimodempallan1.o +vimodempallaf1.o +vimodempallpn2.o +vimodempallpf2.o +vimodempallan2.o +vimodempallaf2.o +vimodempalhpn1.o +vimodempalhpf1.o +vimodempalhan1.o +vimodempalhaf1.o +vimodempalhpn2.o +vimodempalhpf2.o +pi.o +pigettype.o +pigetstat.o +pirawread.o +pirawwrite.o +pirawdma.o +pigetcmdq.o +pimgr.o +epirawread.o +epirawwrite.o +epirawdma.o +epiwrite.o +epiread.o +epidma.o +epigettype.o +epilinkhandle.o +cartrominit.o +leodiskinit.o +leointerrupt.o +driverominit.o +devmgr.o +piacs.o +piwrite.o +piread.o +pidma.o +giorawinterrupt.o +giointerrupt.o +region.o +malloc.o +free.o +getbufcount.o +getsize.o +printregion.o +rmonrcp.o +rmonbrk.o +rmoncmds.o +rmonmem.o +rmonmisc.o +rmonprint.o +rmonregs.o +rmontask.o +rmonmain.o +rmonsio.o +bcmp.o +bcopy.o +bzero.o +ll.o +llcvt.o +string.o +ldiv.o +llbit.o +xlitob.o +xldtob.o +xprintf.o +sprintf.o +syncprintf.o +delay.o +log.o +logfloat.o +sched.o diff --git a/lib/ultralib/base/I/libultra_d.txt b/lib/ultralib/base/I/libultra_d.txt new file mode 100644 index 0000000..934ef45 --- /dev/null +++ b/lib/ultralib/base/I/libultra_d.txt @@ -0,0 +1,404 @@ +gt.o +dumpturbo.o +sqrtf.o +libm_vals.o +align.o +cosf.o +coss.o +frustum.o +lookat.o +lookatref.o +lookathil.o +lookatstereo.o +mtxutil.o +mtxcatf.o +mtxcatl.o +normalize.o +ortho.o +perspective.o +rotate.o +rotateRPY.o +scale.o +sinf.o +sins.o +translate.o +loadtextureblockmipmap.o +guLoadTile_bug.o +position.o +poslight.o +poslighthil.o +random.o +usprite.o +us2dex.o +us2dex_emu.o +parse_rdp.o +parse_gbi.o +dump_gbi.o +parse_string.o +exceptasm.o +getcause.o +getcompare.o +getconfig.o +getcount.o +getfpccsr.o +getsr.o +getintmask.o +gettlbasid.o +gettlbhi.o +gettlblo0.o +gettlblo1.o +gettlbpagemask.o +invaldcache.o +invalicache.o +interrupt.o +maptlb.o +parameters.o +probetlb.o +setintmask.o +setcause.o +setcompare.o +setconfig.o +setcount.o +setfpccsr.o +setsr.o +settlbasid.o +unmaptlb.o +unmaptlball.o +writebackdcache.o +writebackdcacheall.o +maptlbrdb.o +errorasm.o +assertbreak.o +atomic.o +createmesgqueue.o +createthread.o +destroythread.o +getactivequeue.o +getthreadid.o +getthreadpri.o +gettime.o +initialize.o +jammesg.o +kdebugserver.o +physicaltovirtual.o +recvmesg.o +resetglobalintmask.o +sendmesg.o +seteventmesg.o +setglobalintmask.o +sethwinterrupt.o +setthreadpri.o +settime.o +settimer.o +startthread.o +stopthread.o +stoptimer.o +syncputchars.o +thread.o +timerintr.o +virtualtophysical.o +yieldthread.o +getcurrfaultthread.o +getnextfaultthread.o +initrdb.o +rdbsend.o +getmemsize.o +error.o +seterrorhandler.o +assert.o +exit.o +profile.o +readhost.o +testhost.o +writehost.o +ackramromread.o +ackramromwrite.o +host_ptn64.o +drvrNew.o +load.o +auxbus.o +bnkf.o +env.o +event.o +filter.o +mainbus.o +resample.o +reverb.o +save.o +seq.o +sl.o +heapcheck.o +heapinit.o +heapalloc.o +copy.o +seqpdelete.o +seqpgetfxmix.o +seqpgetpan.o +seqpgetchlvol.o +seqpgetpriority.o +seqpgetprogram.o +seqpgetseq.o +seqpgettempo.o +seqpgetvol.o +seqpgetstate.o +seqploop.o +seqpplay.o +seqpsendmidi.o +seqpsetbank.o +seqpsetfxmix.o +seqpsetpan.o +seqpsetchlvol.o +seqpsetpriority.o +seqpsetprogram.o +seqpsetseq.o +seqpsettempo.o +seqpsetvol.o +seqpstop.o +seqplayer.o +cseq.o +cspdelete.o +cspgetfxmix.o +cspgetpan.o +cspgetchlvol.o +cspgetpriority.o +cspgetprogram.o +cspgetseq.o +cspgettempo.o +cspgetvol.o +cspgetstate.o +cspplay.o +cspsendmidi.o +cspsetbank.o +cspsetfxmix.o +cspsetpan.o +cspsetchlvol.o +cspsetpriority.o +cspsetprogram.o +cspsetseq.o +cspsettempo.o +cspsetvol.o +cspstop.o +csplayer.o +sndplayer.o +sndpdelete.o +sndpallocate.o +sndpdeallocate.o +sndpsetsound.o +sndpplay.o +sndpplayat.o +sndpgetsound.o +sndpstop.o +sndpgetstate.o +sndpsetpitch.o +sndpsetpriority.o +sndpsetvol.o +sndpsetpan.o +sndpsetfxmix.o +synthesizer.o +syndelete.o +synaddplayer.o +synremoveplayer.o +synfreevoice.o +synallocvoice.o +synstopvoice.o +synstartvoice.o +synstartvoiceparam.o +synsetpitch.o +synsetvol.o +synsetfxmix.o +synsetpan.o +syngetpriority.o +synsetpriority.o +synallocfx.o +synfreefx.o +syngetfxref.o +synsetfxparam.o +cents2ratio.o +parse_abi.o +color.o +clearattribute.o +hide.o +spscale.o +setattribute.o +show.o +sprite.o +ai.o +aigetlen.o +aigetstat.o +aisetfreq.o +aisetnextbuf.o +dp.o +dpgetstat.o +dpsetstat.o +dpsetnextbuf.o +dpctr.o +sp.o +spgetstat.o +spsetstat.o +spsetpc.o +sprawread.o +sprawwrite.o +sprawdma.o +sptask.o +sptaskyield.o +sptaskyielded.o +vi.o +vigetcurrcontext.o +vigetfield.o +vigetcurrframebuf.o +vigetnextframebuf.o +vigetline.o +vigetmode.o +vigetnextcontext.o +vigetstat.o +vimgr.o +visetevent.o +visetmode.o +visetspecial.o +visetxscale.o +visetyscale.o +viswapbuf.o +viswapcontext.o +vitbl.o +viblack.o +virepeatline.o +vifade.o +si.o +sigetstat.o +sirawread.o +sirawwrite.o +sirawdma.o +siacs.o +contquery.o +contreaddata.o +contreset.o +controller.o +contsetch.o +crc.o +contramread.o +contramwrite.o +contpfs.o +pfsreformat.o +pfschecker.o +pfsinit.o +pfsallocatefile.o +pfsdeletefile.o +pfsreadwritefile.o +pfsfilestate.o +pfssearchfile.o +pfssetlabel.o +pfsgetlabel.o +pfsisplug.o +pfsfreeblocks.o +pfsnumfiles.o +conteepread.o +conteepwrite.o +conteepprobe.o +conteeplongwrite.o +conteeplongread.o +pfsinitpak.o +pfsrepairid.o +pfsgetstatus.o +motor.o +vimodentsclpn1.o +vimodentsclpf1.o +vimodentsclan1.o +vimodentsclaf1.o +vimodentsclpn2.o +vimodentsclpf2.o +vimodentsclan2.o +vimodentsclaf2.o +vimodentschpn1.o +vimodentschpf1.o +vimodentschan1.o +vimodentschaf1.o +vimodentschpn2.o +vimodentschpf2.o +vimodepallpn1.o +vimodepallpf1.o +vimodepallan1.o +vimodepallaf1.o +vimodepallpn2.o +vimodepallpf2.o +vimodepallan2.o +vimodepallaf2.o +vimodepalhpn1.o +vimodepalhpf1.o +vimodepalhan1.o +vimodepalhaf1.o +vimodepalhpn2.o +vimodepalhpf2.o +vimodempallpn1.o +vimodempallpf1.o +vimodempallan1.o +vimodempallaf1.o +vimodempallpn2.o +vimodempallpf2.o +vimodempallan2.o +vimodempallaf2.o +vimodempalhpn1.o +vimodempalhpf1.o +vimodempalhan1.o +vimodempalhaf1.o +vimodempalhpn2.o +vimodempalhpf2.o +pi.o +pigettype.o +pigetstat.o +pirawread.o +pirawwrite.o +pirawdma.o +pigetcmdq.o +pimgr.o +epirawread.o +epirawwrite.o +epirawdma.o +epiwrite.o +epiread.o +epidma.o +epigettype.o +epilinkhandle.o +cartrominit.o +leodiskinit.o +leointerrupt.o +driverominit.o +devmgr.o +piacs.o +piwrite.o +piread.o +pidma.o +giorawinterrupt.o +giointerrupt.o +region.o +malloc.o +free.o +getbufcount.o +getsize.o +printregion.o +rmonrcp.o +rmonbrk.o +rmoncmds.o +rmonmem.o +rmonmisc.o +rmonprint.o +rmonregs.o +rmontask.o +rmonmain.o +rmonsio.o +bcmp.o +bcopy.o +bzero.o +ll.o +llcvt.o +string.o +ldiv.o +llbit.o +xlitob.o +xldtob.o +xprintf.o +sprintf.o +syncprintf.o +delay.o +log.o +logfloat.o +sched.o diff --git a/lib/ultralib/base/I/libultra_rom.txt b/lib/ultralib/base/I/libultra_rom.txt new file mode 100644 index 0000000..c879d12 --- /dev/null +++ b/lib/ultralib/base/I/libultra_rom.txt @@ -0,0 +1,370 @@ +gt.o +sqrtf.o +libm_vals.o +align.o +cosf.o +coss.o +frustum.o +lookat.o +lookatref.o +lookathil.o +lookatstereo.o +mtxutil.o +mtxcatf.o +mtxcatl.o +normalize.o +ortho.o +perspective.o +rotate.o +rotateRPY.o +scale.o +sinf.o +sins.o +translate.o +loadtextureblockmipmap.o +guLoadTile_bug.o +position.o +poslight.o +poslighthil.o +random.o +usprite.o +us2dex.o +us2dex_emu.o +exceptasm.o +getcause.o +getcompare.o +getconfig.o +getcount.o +getfpccsr.o +getsr.o +getintmask.o +gettlbasid.o +gettlbhi.o +gettlblo0.o +gettlblo1.o +gettlbpagemask.o +invaldcache.o +invalicache.o +interrupt.o +maptlb.o +parameters.o +probetlb.o +setintmask.o +setcause.o +setcompare.o +setconfig.o +setcount.o +setfpccsr.o +setsr.o +settlbasid.o +unmaptlb.o +unmaptlball.o +writebackdcache.o +writebackdcacheall.o +maptlbrdb.o +atomic.o +createmesgqueue.o +createthread.o +destroythread.o +getactivequeue.o +getthreadid.o +getthreadpri.o +gettime.o +initialize.o +jammesg.o +kdebugserver.o +physicaltovirtual.o +recvmesg.o +resetglobalintmask.o +sendmesg.o +seteventmesg.o +setglobalintmask.o +sethwinterrupt.o +setthreadpri.o +settime.o +settimer.o +startthread.o +stopthread.o +stoptimer.o +syncputchars.o +thread.o +timerintr.o +virtualtophysical.o +yieldthread.o +getcurrfaultthread.o +getnextfaultthread.o +initrdb.o +rdbsend.o +getmemsize.o +drvrNew.o +load.o +auxbus.o +bnkf.o +env.o +event.o +filter.o +mainbus.o +resample.o +reverb.o +save.o +seq.o +sl.o +heapcheck.o +heapinit.o +heapalloc.o +copy.o +seqpdelete.o +seqpgetfxmix.o +seqpgetpan.o +seqpgetchlvol.o +seqpgetpriority.o +seqpgetprogram.o +seqpgetseq.o +seqpgettempo.o +seqpgetvol.o +seqpgetstate.o +seqploop.o +seqpplay.o +seqpsendmidi.o +seqpsetbank.o +seqpsetfxmix.o +seqpsetpan.o +seqpsetchlvol.o +seqpsetpriority.o +seqpsetprogram.o +seqpsetseq.o +seqpsettempo.o +seqpsetvol.o +seqpstop.o +seqplayer.o +cseq.o +cspdelete.o +cspgetfxmix.o +cspgetpan.o +cspgetchlvol.o +cspgetpriority.o +cspgetprogram.o +cspgetseq.o +cspgettempo.o +cspgetvol.o +cspgetstate.o +cspplay.o +cspsendmidi.o +cspsetbank.o +cspsetfxmix.o +cspsetpan.o +cspsetchlvol.o +cspsetpriority.o +cspsetprogram.o +cspsetseq.o +cspsettempo.o +cspsetvol.o +cspstop.o +csplayer.o +sndplayer.o +sndpdelete.o +sndpallocate.o +sndpdeallocate.o +sndpsetsound.o +sndpplay.o +sndpplayat.o +sndpgetsound.o +sndpstop.o +sndpgetstate.o +sndpsetpitch.o +sndpsetpriority.o +sndpsetvol.o +sndpsetpan.o +sndpsetfxmix.o +synthesizer.o +syndelete.o +synaddplayer.o +synremoveplayer.o +synfreevoice.o +synallocvoice.o +synstopvoice.o +synstartvoice.o +synstartvoiceparam.o +synsetpitch.o +synsetvol.o +synsetfxmix.o +synsetpan.o +syngetpriority.o +synsetpriority.o +synallocfx.o +synfreefx.o +syngetfxref.o +synsetfxparam.o +cents2ratio.o +parse_abi.o +color.o +clearattribute.o +hide.o +spscale.o +setattribute.o +show.o +sprite.o +ai.o +aigetlen.o +aigetstat.o +aisetfreq.o +aisetnextbuf.o +dp.o +dpgetstat.o +dpsetstat.o +dpsetnextbuf.o +dpctr.o +sp.o +spgetstat.o +spsetstat.o +spsetpc.o +sprawread.o +sprawwrite.o +sprawdma.o +sptask.o +sptaskyield.o +sptaskyielded.o +vi.o +vigetcurrcontext.o +vigetfield.o +vigetcurrframebuf.o +vigetnextframebuf.o +vigetline.o +vigetmode.o +vigetnextcontext.o +vigetstat.o +vimgr.o +visetevent.o +visetmode.o +visetspecial.o +visetxscale.o +visetyscale.o +viswapbuf.o +viswapcontext.o +vitbl.o +viblack.o +virepeatline.o +vifade.o +si.o +sigetstat.o +sirawread.o +sirawwrite.o +sirawdma.o +siacs.o +contquery.o +contreaddata.o +contreset.o +controller.o +contsetch.o +crc.o +contramread.o +contramwrite.o +contpfs.o +pfsreformat.o +pfschecker.o +pfsinit.o +pfsallocatefile.o +pfsdeletefile.o +pfsreadwritefile.o +pfsfilestate.o +pfssearchfile.o +pfssetlabel.o +pfsgetlabel.o +pfsisplug.o +pfsfreeblocks.o +pfsnumfiles.o +conteepread.o +conteepwrite.o +conteepprobe.o +conteeplongwrite.o +conteeplongread.o +pfsinitpak.o +pfsrepairid.o +pfsgetstatus.o +motor.o +vimodentsclpn1.o +vimodentsclpf1.o +vimodentsclan1.o +vimodentsclaf1.o +vimodentsclpn2.o +vimodentsclpf2.o +vimodentsclan2.o +vimodentsclaf2.o +vimodentschpn1.o +vimodentschpf1.o +vimodentschan1.o +vimodentschaf1.o +vimodentschpn2.o +vimodentschpf2.o +vimodepallpn1.o +vimodepallpf1.o +vimodepallan1.o +vimodepallaf1.o +vimodepallpn2.o +vimodepallpf2.o +vimodepallan2.o +vimodepallaf2.o +vimodepalhpn1.o +vimodepalhpf1.o +vimodepalhan1.o +vimodepalhaf1.o +vimodepalhpn2.o +vimodepalhpf2.o +vimodempallpn1.o +vimodempallpf1.o +vimodempallan1.o +vimodempallaf1.o +vimodempallpn2.o +vimodempallpf2.o +vimodempallan2.o +vimodempallaf2.o +vimodempalhpn1.o +vimodempalhpf1.o +vimodempalhan1.o +vimodempalhaf1.o +vimodempalhpn2.o +vimodempalhpf2.o +pi.o +pigettype.o +pigetstat.o +pirawread.o +pirawwrite.o +pirawdma.o +pigetcmdq.o +pimgr.o +epirawread.o +epirawwrite.o +epirawdma.o +epiwrite.o +epiread.o +epidma.o +epigettype.o +epilinkhandle.o +cartrominit.o +leodiskinit.o +leointerrupt.o +driverominit.o +devmgr.o +piacs.o +piwrite.o +piread.o +pidma.o +region.o +malloc.o +free.o +getbufcount.o +getsize.o +bcmp.o +bcopy.o +bzero.o +ll.o +llcvt.o +string.o +ldiv.o +llbit.o +xlitob.o +xldtob.o +xprintf.o +sprintf.o +syncprintf.o +sched.o diff --git a/lib/ultralib/base/J/libgultra.txt b/lib/ultralib/base/J/libgultra.txt new file mode 100644 index 0000000..575ae94 --- /dev/null +++ b/lib/ultralib/base/J/libgultra.txt @@ -0,0 +1,446 @@ +conteepread.o +conteepwrite.o +conteepprobe.o +conteeplongwrite.o +conteeplongread.o +getcurrfaultthread.o +getnextfaultthread.o +exceptasm.o +interrupt.o +setintmask.o +getintmask.o +sethwinterrupt.o +gethwinterrupt.o +setpiinterrupt.o +setglobalintmask.o +resetglobalintmask.o +pi.o +pigettype.o +pigetstat.o +pirawread.o +pirawwrite.o +pirawdma.o +pigetcmdq.o +pimgr.o +epirawread.o +epirawwrite.o +epirawdma.o +epiwrite.o +epiread.o +epidma.o +epigettype.o +epilinkhandle.o +cartrominit.o +devmgr.o +piacs.o +piwrite.o +piread.o +pidma.o +voicecontrolgain.o +voiceinit.o +voicecheckresult.o +voicecontwrite20.o +voicemaskdictionary.o +voicecheckword.o +voicecontwrite4.o +voicesetadconverter.o +voicecleardictionary.o +voicecrc.o +voicesetword.o +voicecontread2.o +voicegetreaddata.o +voicestartreaddata.o +voicecontread36.o +voicegetstatus.o +voicestopreaddata.o +voicecountsyllables.o +contchannelreset.o +ai.o +aigetlen.o +aigetstat.o +aisetfreq.o +aisetnextbuf.o +drvrnew.o +load.o +auxbus.o +bnkf.o +env.o +event.o +filter.o +mainbus.o +resample.o +reverb.o +save.o +seq.o +sl.o +heapcheck.o +heapinit.o +heapalloc.o +copy.o +seqpdelete.o +seqpgetfxmix.o +seqpgetpan.o +seqpgetchlvol.o +seqpgetpriority.o +seqpgetprogram.o +seqpgetseq.o +seqpgettempo.o +seqpgetvol.o +seqpgetstate.o +seqploop.o +seqpplay.o +seqpsendmidi.o +seqpsetbank.o +seqpsetfxmix.o +seqpsetpan.o +seqpsetchlvol.o +seqpsetpriority.o +seqpsetprogram.o +seqpsetseq.o +seqpsettempo.o +seqpsetvol.o +seqpstop.o +seqplayer.o +cseq.o +cspdelete.o +cspgetfxmix.o +cspgetpan.o +cspgetchlvol.o +cspgetpriority.o +cspgetprogram.o +cspgetseq.o +cspgettempo.o +cspgetvol.o +cspgetstate.o +cspplay.o +cspsendmidi.o +cspsetbank.o +cspsetfxmix.o +cspsetpan.o +cspsetchlvol.o +cspsetpriority.o +cspsetprogram.o +cspsetseq.o +cspsettempo.o +cspsetvol.o +cspstop.o +csplayer.o +sndplayer.o +sndpdelete.o +sndpallocate.o +sndpdeallocate.o +sndpsetsound.o +sndpplay.o +sndpplayat.o +sndpgetsound.o +sndpstop.o +sndpgetstate.o +sndpsetpitch.o +sndpsetpriority.o +sndpsetvol.o +sndpsetpan.o +sndpsetfxmix.o +synthesizer.o +syndelete.o +synaddplayer.o +synremoveplayer.o +synfreevoice.o +synallocvoice.o +synstopvoice.o +synstartvoice.o +synstartvoiceparam.o +synsetpitch.o +synsetvol.o +synsetfxmix.o +synsetpan.o +syngetpriority.o +synsetpriority.o +synallocfx.o +synfreefx.o +syngetfxref.o +synsetfxparam.o +cents2ratio.o +parse_abi.o +invaldcache.o +invalicache.o +writebackdcache.o +writebackdcacheall.o +contquery.o +contreaddata.o +contreset.o +controller.o +contsetch.o +physicaltovirtual.o +virtualtophysical.o +assertbreak.o +atomic.o +kdebugserver.o +syncputchars.o +profile.o +giorawinterrupt.o +giointerrupt.o +gt.o +dumpturbo.o +libm_vals.o +sqrtf.o +align.o +cosf.o +coss.o +frustum.o +guloadtile_bug.o +loadtextureblockmipmap.o +lookat.o +lookathil.o +lookatref.o +lookatstereo.o +mtxcatf.o +mtxcatl.o +mtxutil.o +normalize.o +ortho.o +perspective.o +position.o +poslight.o +poslighthil.o +random.o +rotate.o +rotaterpy.o +scale.o +sinf.o +sins.o +translate.o +us2dex.o +us2dex_emu.o +us2dex2_emu.o +usprite.o +parse_rdp.o +parse_gbi.o +dump_gbi.o +parse_string.o +rdbsend.o +initrdb.o +ackramromread.o +ackramromwrite.o +host_ptn64.o +readhost.o +testhost.o +writehost.o +bcmp.o +bcopy.o +bzero.o +ll.o +llcvt.o +string.o +ldiv.o +llbit.o +xlitob.o +xldtob.o +xprintf.o +sprintf.o +syncprintf.o +delay.o +log.o +logfloat.o +createmesgqueue.o +jammesg.o +recvmesg.o +sendmesg.o +seteventmesg.o +dp.o +dpgetstat.o +dpsetstat.o +dpsetnextbuf.o +dpctr.o +getcause.o +getcompare.o +getconfig.o +getcount.o +getfpccsr.o +getsr.o +gettlbasid.o +gettlbhi.o +gettlblo0.o +gettlblo1.o +gettlbpagemask.o +setcause.o +setcompare.o +setconfig.o +setcount.o +setfpccsr.o +setsr.o +settlbasid.o +region.o +malloc.o +free.o +getbufcount.o +getsize.o +printregion.o +rmonrcp.o +rmonbrk.o +rmoncmds.o +rmonmem.o +rmonmisc.o +rmonprint.o +rmonregs.o +rmontask.o +rmonmain.o +rmonsio.o +sp.o +spgetstat.o +spsetstat.o +spsetpc.o +sprawread.o +sprawwrite.o +sprawdma.o +sptask.o +sptaskyield.o +sptaskyielded.o +sched.o +si.o +sigetstat.o +sirawread.o +sirawwrite.o +sirawdma.o +siacs.o +crc.o +clearattribute.o +color.o +hide.o +setattribute.o +show.o +sprite.o +spriteex.o +spriteex2.o +spscale.o +createthread.o +destroythread.o +getthreadid.o +getthreadpri.o +setthreadpri.o +startthread.o +stopthread.o +thread.o +yieldthread.o +getactivequeue.o +gettime.o +settime.o +settimer.o +stoptimer.o +timerintr.o +maptlb.o +probetlb.o +maptlbrdb.o +unmaptlb.o +unmaptlball.o +vi.o +vigetcurrcontext.o +vigetfield.o +vigetcurrframebuf.o +vigetnextframebuf.o +vigetline.o +vigetmode.o +vigetnextcontext.o +vigetstat.o +vimgr.o +visetevent.o +visetmode.o +visetspecial.o +visetxscale.o +visetyscale.o +viswapbuf.o +viswapcontext.o +vitbl.o +viblack.o +virepeatline.o +vifade.o +viextendvstart.o +vimodentsclpn1.o +vimodentsclpf1.o +vimodentsclan1.o +vimodentsclaf1.o +vimodentsclpn2.o +vimodentsclpf2.o +vimodentsclan2.o +vimodentsclaf2.o +vimodentschpn1.o +vimodentschpf1.o +vimodentschan1.o +vimodentschaf1.o +vimodentschpn2.o +vimodentschpf2.o +vimodepallpn1.o +vimodepallpf1.o +vimodepallan1.o +vimodepallaf1.o +vimodepallpn2.o +vimodepallpf2.o +vimodepallan2.o +vimodepallaf2.o +vimodepalhpn1.o +vimodepalhpf1.o +vimodepalhan1.o +vimodepalhaf1.o +vimodepalhpn2.o +vimodepalhpf2.o +vimodempallpn1.o +vimodempallpf1.o +vimodempallan1.o +vimodempallaf1.o +vimodempallpn2.o +vimodempallpf2.o +vimodempallan2.o +vimodempallaf2.o +vimodempalhpn1.o +vimodempalhpf1.o +vimodempalhan1.o +vimodempalhaf1.o +vimodempalhpn2.o +vimodempalhpf2.o +vimodefpallpn1.o +vimodefpallpf1.o +vimodefpallan1.o +vimodefpallaf1.o +vimodefpallpn2.o +vimodefpallpf2.o +vimodefpallan2.o +vimodefpallaf2.o +vimodefpalhpn1.o +vimodefpalhpf1.o +vimodefpalhan1.o +vimodefpalhaf1.o +vimodefpalhpn2.o +vimodefpalhpf2.o +gbpakinit.o +gbpakgetstatus.o +gbpaksetbank.o +gbpakgetbank.o +gbpakpower.o +gbpakreadwrite.o +gbpakreadid.o +gbpakcheckconnector.o +motor.o +pfsreformat.o +pfschecker.o +pfsinit.o +pfsallocatefile.o +pfsdeletefile.o +pfsreadwritefile.o +pfsfilestate.o +pfssearchfile.o +pfssetlabel.o +pfsgetlabel.o +pfsisplug.o +pfsfreeblocks.o +pfsnumfiles.o +pfsinitpak.o +pfsrepairid.o +pfsgetstatus.o +pfsselectbank.o +contpfs.o +contramread.o +contramwrite.o +parameters.o +afterprenmi.o +getmemsize.o +initialize.o +exit.o diff --git a/lib/ultralib/base/J/libgultra_d.txt b/lib/ultralib/base/J/libgultra_d.txt new file mode 100644 index 0000000..a25743c --- /dev/null +++ b/lib/ultralib/base/J/libgultra_d.txt @@ -0,0 +1,451 @@ +conteepread.o +conteepwrite.o +conteepprobe.o +conteeplongwrite.o +conteeplongread.o +errorasm.o +getcurrfaultthread.o +getnextfaultthread.o +error.o +seterrorhandler.o +kmcprintf.o +exceptasm.o +interrupt.o +setintmask.o +getintmask.o +sethwinterrupt.o +gethwinterrupt.o +setpiinterrupt.o +setglobalintmask.o +resetglobalintmask.o +pi.o +pigettype.o +pigetstat.o +pirawread.o +pirawwrite.o +pirawdma.o +pigetcmdq.o +pimgr.o +epirawread.o +epirawwrite.o +epirawdma.o +epiwrite.o +epiread.o +epidma.o +epigettype.o +epilinkhandle.o +cartrominit.o +devmgr.o +piacs.o +piwrite.o +piread.o +pidma.o +voicecontrolgain.o +voiceinit.o +voicecheckresult.o +voicecontwrite20.o +voicemaskdictionary.o +voicecheckword.o +voicecontwrite4.o +voicesetadconverter.o +voicecleardictionary.o +voicecrc.o +voicesetword.o +voicecontread2.o +voicegetreaddata.o +voicestartreaddata.o +voicecontread36.o +voicegetstatus.o +voicestopreaddata.o +voicecountsyllables.o +contchannelreset.o +ai.o +aigetlen.o +aigetstat.o +aisetfreq.o +aisetnextbuf.o +drvrnew.o +load.o +auxbus.o +bnkf.o +env.o +event.o +filter.o +mainbus.o +resample.o +reverb.o +save.o +seq.o +sl.o +heapcheck.o +heapinit.o +heapalloc.o +copy.o +seqpdelete.o +seqpgetfxmix.o +seqpgetpan.o +seqpgetchlvol.o +seqpgetpriority.o +seqpgetprogram.o +seqpgetseq.o +seqpgettempo.o +seqpgetvol.o +seqpgetstate.o +seqploop.o +seqpplay.o +seqpsendmidi.o +seqpsetbank.o +seqpsetfxmix.o +seqpsetpan.o +seqpsetchlvol.o +seqpsetpriority.o +seqpsetprogram.o +seqpsetseq.o +seqpsettempo.o +seqpsetvol.o +seqpstop.o +seqplayer.o +cseq.o +cspdelete.o +cspgetfxmix.o +cspgetpan.o +cspgetchlvol.o +cspgetpriority.o +cspgetprogram.o +cspgetseq.o +cspgettempo.o +cspgetvol.o +cspgetstate.o +cspplay.o +cspsendmidi.o +cspsetbank.o +cspsetfxmix.o +cspsetpan.o +cspsetchlvol.o +cspsetpriority.o +cspsetprogram.o +cspsetseq.o +cspsettempo.o +cspsetvol.o +cspstop.o +csplayer.o +sndplayer.o +sndpdelete.o +sndpallocate.o +sndpdeallocate.o +sndpsetsound.o +sndpplay.o +sndpplayat.o +sndpgetsound.o +sndpstop.o +sndpgetstate.o +sndpsetpitch.o +sndpsetpriority.o +sndpsetvol.o +sndpsetpan.o +sndpsetfxmix.o +synthesizer.o +syndelete.o +synaddplayer.o +synremoveplayer.o +synfreevoice.o +synallocvoice.o +synstopvoice.o +synstartvoice.o +synstartvoiceparam.o +synsetpitch.o +synsetvol.o +synsetfxmix.o +synsetpan.o +syngetpriority.o +synsetpriority.o +synallocfx.o +synfreefx.o +syngetfxref.o +synsetfxparam.o +cents2ratio.o +parse_abi.o +invaldcache.o +invalicache.o +writebackdcache.o +writebackdcacheall.o +contquery.o +contreaddata.o +contreset.o +controller.o +contsetch.o +physicaltovirtual.o +virtualtophysical.o +assertbreak.o +atomic.o +kdebugserver.o +syncputchars.o +assert.o +profile.o +giorawinterrupt.o +giointerrupt.o +gt.o +dumpturbo.o +libm_vals.o +sqrtf.o +align.o +cosf.o +coss.o +frustum.o +guloadtile_bug.o +loadtextureblockmipmap.o +lookat.o +lookathil.o +lookatref.o +lookatstereo.o +mtxcatf.o +mtxcatl.o +mtxutil.o +normalize.o +ortho.o +perspective.o +position.o +poslight.o +poslighthil.o +random.o +rotate.o +rotaterpy.o +scale.o +sinf.o +sins.o +translate.o +us2dex.o +us2dex_emu.o +us2dex2_emu.o +usprite.o +parse_rdp.o +parse_gbi.o +dump_gbi.o +parse_string.o +rdbsend.o +initrdb.o +ackramromread.o +ackramromwrite.o +host_ptn64.o +readhost.o +testhost.o +writehost.o +bcmp.o +bcopy.o +bzero.o +ll.o +llcvt.o +string.o +ldiv.o +llbit.o +xlitob.o +xldtob.o +xprintf.o +sprintf.o +syncprintf.o +delay.o +log.o +logfloat.o +createmesgqueue.o +jammesg.o +recvmesg.o +sendmesg.o +seteventmesg.o +dp.o +dpgetstat.o +dpsetstat.o +dpsetnextbuf.o +dpctr.o +getcause.o +getcompare.o +getconfig.o +getcount.o +getfpccsr.o +getsr.o +gettlbasid.o +gettlbhi.o +gettlblo0.o +gettlblo1.o +gettlbpagemask.o +setcause.o +setcompare.o +setconfig.o +setcount.o +setfpccsr.o +setsr.o +settlbasid.o +region.o +malloc.o +free.o +getbufcount.o +getsize.o +printregion.o +rmonrcp.o +rmonbrk.o +rmoncmds.o +rmonmem.o +rmonmisc.o +rmonprint.o +rmonregs.o +rmontask.o +rmonmain.o +rmonsio.o +sp.o +spgetstat.o +spsetstat.o +spsetpc.o +sprawread.o +sprawwrite.o +sprawdma.o +sptask.o +sptaskyield.o +sptaskyielded.o +sched.o +si.o +sigetstat.o +sirawread.o +sirawwrite.o +sirawdma.o +siacs.o +crc.o +clearattribute.o +color.o +hide.o +setattribute.o +show.o +sprite.o +spriteex.o +spriteex2.o +spscale.o +createthread.o +destroythread.o +getthreadid.o +getthreadpri.o +setthreadpri.o +startthread.o +stopthread.o +thread.o +yieldthread.o +getactivequeue.o +gettime.o +settime.o +settimer.o +stoptimer.o +timerintr.o +maptlb.o +probetlb.o +maptlbrdb.o +unmaptlb.o +unmaptlball.o +vi.o +vigetcurrcontext.o +vigetfield.o +vigetcurrframebuf.o +vigetnextframebuf.o +vigetline.o +vigetmode.o +vigetnextcontext.o +vigetstat.o +vimgr.o +visetevent.o +visetmode.o +visetspecial.o +visetxscale.o +visetyscale.o +viswapbuf.o +viswapcontext.o +vitbl.o +viblack.o +virepeatline.o +vifade.o +viextendvstart.o +vimodentsclpn1.o +vimodentsclpf1.o +vimodentsclan1.o +vimodentsclaf1.o +vimodentsclpn2.o +vimodentsclpf2.o +vimodentsclan2.o +vimodentsclaf2.o +vimodentschpn1.o +vimodentschpf1.o +vimodentschan1.o +vimodentschaf1.o +vimodentschpn2.o +vimodentschpf2.o +vimodepallpn1.o +vimodepallpf1.o +vimodepallan1.o +vimodepallaf1.o +vimodepallpn2.o +vimodepallpf2.o +vimodepallan2.o +vimodepallaf2.o +vimodepalhpn1.o +vimodepalhpf1.o +vimodepalhan1.o +vimodepalhaf1.o +vimodepalhpn2.o +vimodepalhpf2.o +vimodempallpn1.o +vimodempallpf1.o +vimodempallan1.o +vimodempallaf1.o +vimodempallpn2.o +vimodempallpf2.o +vimodempallan2.o +vimodempallaf2.o +vimodempalhpn1.o +vimodempalhpf1.o +vimodempalhan1.o +vimodempalhaf1.o +vimodempalhpn2.o +vimodempalhpf2.o +vimodefpallpn1.o +vimodefpallpf1.o +vimodefpallan1.o +vimodefpallaf1.o +vimodefpallpn2.o +vimodefpallpf2.o +vimodefpallan2.o +vimodefpallaf2.o +vimodefpalhpn1.o +vimodefpalhpf1.o +vimodefpalhan1.o +vimodefpalhaf1.o +vimodefpalhpn2.o +vimodefpalhpf2.o +gbpakinit.o +gbpakgetstatus.o +gbpaksetbank.o +gbpakgetbank.o +gbpakpower.o +gbpakreadwrite.o +gbpakreadid.o +gbpakcheckconnector.o +motor.o +pfsreformat.o +pfschecker.o +pfsinit.o +pfsallocatefile.o +pfsdeletefile.o +pfsreadwritefile.o +pfsfilestate.o +pfssearchfile.o +pfssetlabel.o +pfsgetlabel.o +pfsisplug.o +pfsfreeblocks.o +pfsnumfiles.o +pfsinitpak.o +pfsrepairid.o +pfsgetstatus.o +pfsselectbank.o +contpfs.o +contramread.o +contramwrite.o +parameters.o +afterprenmi.o +getmemsize.o +initialize.o +exit.o diff --git a/lib/ultralib/base/J/libgultra_rom.txt b/lib/ultralib/base/J/libgultra_rom.txt new file mode 100644 index 0000000..7fcf23e --- /dev/null +++ b/lib/ultralib/base/J/libgultra_rom.txt @@ -0,0 +1,416 @@ +conteepread.o +conteepwrite.o +conteepprobe.o +conteeplongwrite.o +conteeplongread.o +getcurrfaultthread.o +getnextfaultthread.o +exceptasm.o +interrupt.o +setintmask.o +getintmask.o +sethwinterrupt.o +gethwinterrupt.o +setpiinterrupt.o +setglobalintmask.o +resetglobalintmask.o +pi.o +pigettype.o +pigetstat.o +pirawread.o +pirawwrite.o +pirawdma.o +pigetcmdq.o +pimgr.o +epirawread.o +epirawwrite.o +epirawdma.o +epiwrite.o +epiread.o +epidma.o +epigettype.o +epilinkhandle.o +cartrominit.o +devmgr.o +piacs.o +piwrite.o +piread.o +pidma.o +voicecontrolgain.o +voiceinit.o +voicecheckresult.o +voicecontwrite20.o +voicemaskdictionary.o +voicecheckword.o +voicecontwrite4.o +voicesetadconverter.o +voicecleardictionary.o +voicecrc.o +voicesetword.o +voicecontread2.o +voicegetreaddata.o +voicestartreaddata.o +voicecontread36.o +voicegetstatus.o +voicestopreaddata.o +voicecountsyllables.o +contchannelreset.o +ai.o +aigetlen.o +aigetstat.o +aisetfreq.o +aisetnextbuf.o +drvrnew.o +load.o +auxbus.o +bnkf.o +env.o +event.o +filter.o +mainbus.o +resample.o +reverb.o +save.o +seq.o +sl.o +heapcheck.o +heapinit.o +heapalloc.o +copy.o +seqpdelete.o +seqpgetfxmix.o +seqpgetpan.o +seqpgetchlvol.o +seqpgetpriority.o +seqpgetprogram.o +seqpgetseq.o +seqpgettempo.o +seqpgetvol.o +seqpgetstate.o +seqploop.o +seqpplay.o +seqpsendmidi.o +seqpsetbank.o +seqpsetfxmix.o +seqpsetpan.o +seqpsetchlvol.o +seqpsetpriority.o +seqpsetprogram.o +seqpsetseq.o +seqpsettempo.o +seqpsetvol.o +seqpstop.o +seqplayer.o +cseq.o +cspdelete.o +cspgetfxmix.o +cspgetpan.o +cspgetchlvol.o +cspgetpriority.o +cspgetprogram.o +cspgetseq.o +cspgettempo.o +cspgetvol.o +cspgetstate.o +cspplay.o +cspsendmidi.o +cspsetbank.o +cspsetfxmix.o +cspsetpan.o +cspsetchlvol.o +cspsetpriority.o +cspsetprogram.o +cspsetseq.o +cspsettempo.o +cspsetvol.o +cspstop.o +csplayer.o +sndplayer.o +sndpdelete.o +sndpallocate.o +sndpdeallocate.o +sndpsetsound.o +sndpplay.o +sndpplayat.o +sndpgetsound.o +sndpstop.o +sndpgetstate.o +sndpsetpitch.o +sndpsetpriority.o +sndpsetvol.o +sndpsetpan.o +sndpsetfxmix.o +synthesizer.o +syndelete.o +synaddplayer.o +synremoveplayer.o +synfreevoice.o +synallocvoice.o +synstopvoice.o +synstartvoice.o +synstartvoiceparam.o +synsetpitch.o +synsetvol.o +synsetfxmix.o +synsetpan.o +syngetpriority.o +synsetpriority.o +synallocfx.o +synfreefx.o +syngetfxref.o +synsetfxparam.o +cents2ratio.o +parse_abi.o +invaldcache.o +invalicache.o +writebackdcache.o +writebackdcacheall.o +contquery.o +contreaddata.o +contreset.o +controller.o +contsetch.o +physicaltovirtual.o +virtualtophysical.o +atomic.o +kdebugserver.o +syncputchars.o +gt.o +libm_vals.o +sqrtf.o +align.o +cosf.o +coss.o +frustum.o +guloadtile_bug.o +loadtextureblockmipmap.o +lookat.o +lookathil.o +lookatref.o +lookatstereo.o +mtxcatf.o +mtxcatl.o +mtxutil.o +normalize.o +ortho.o +perspective.o +position.o +poslight.o +poslighthil.o +random.o +rotate.o +rotaterpy.o +scale.o +sinf.o +sins.o +translate.o +us2dex.o +us2dex_emu.o +us2dex2_emu.o +usprite.o +rdbsend.o +initrdb.o +bcmp.o +bcopy.o +bzero.o +ll.o +llcvt.o +string.o +ldiv.o +llbit.o +xlitob.o +xldtob.o +xprintf.o +sprintf.o +syncprintf.o +createmesgqueue.o +jammesg.o +recvmesg.o +sendmesg.o +seteventmesg.o +dp.o +dpgetstat.o +dpsetstat.o +dpsetnextbuf.o +dpctr.o +getcause.o +getcompare.o +getconfig.o +getcount.o +getfpccsr.o +getsr.o +gettlbasid.o +gettlbhi.o +gettlblo0.o +gettlblo1.o +gettlbpagemask.o +setcause.o +setcompare.o +setconfig.o +setcount.o +setfpccsr.o +setsr.o +settlbasid.o +region.o +malloc.o +free.o +getbufcount.o +getsize.o +sp.o +spgetstat.o +spsetstat.o +spsetpc.o +sprawread.o +sprawwrite.o +sprawdma.o +sptask.o +sptaskyield.o +sptaskyielded.o +sched.o +si.o +sigetstat.o +sirawread.o +sirawwrite.o +sirawdma.o +siacs.o +crc.o +clearattribute.o +color.o +hide.o +setattribute.o +show.o +sprite.o +spriteex.o +spriteex2.o +spscale.o +createthread.o +destroythread.o +getthreadid.o +getthreadpri.o +setthreadpri.o +startthread.o +stopthread.o +thread.o +yieldthread.o +getactivequeue.o +gettime.o +settime.o +settimer.o +stoptimer.o +timerintr.o +maptlb.o +probetlb.o +maptlbrdb.o +unmaptlb.o +unmaptlball.o +vi.o +vigetcurrcontext.o +vigetfield.o +vigetcurrframebuf.o +vigetnextframebuf.o +vigetline.o +vigetmode.o +vigetnextcontext.o +vigetstat.o +vimgr.o +visetevent.o +visetmode.o +visetspecial.o +visetxscale.o +visetyscale.o +viswapbuf.o +viswapcontext.o +vitbl.o +viblack.o +virepeatline.o +vifade.o +viextendvstart.o +vimodentsclpn1.o +vimodentsclpf1.o +vimodentsclan1.o +vimodentsclaf1.o +vimodentsclpn2.o +vimodentsclpf2.o +vimodentsclan2.o +vimodentsclaf2.o +vimodentschpn1.o +vimodentschpf1.o +vimodentschan1.o +vimodentschaf1.o +vimodentschpn2.o +vimodentschpf2.o +vimodepallpn1.o +vimodepallpf1.o +vimodepallan1.o +vimodepallaf1.o +vimodepallpn2.o +vimodepallpf2.o +vimodepallan2.o +vimodepallaf2.o +vimodepalhpn1.o +vimodepalhpf1.o +vimodepalhan1.o +vimodepalhaf1.o +vimodepalhpn2.o +vimodepalhpf2.o +vimodempallpn1.o +vimodempallpf1.o +vimodempallan1.o +vimodempallaf1.o +vimodempallpn2.o +vimodempallpf2.o +vimodempallan2.o +vimodempallaf2.o +vimodempalhpn1.o +vimodempalhpf1.o +vimodempalhan1.o +vimodempalhaf1.o +vimodempalhpn2.o +vimodempalhpf2.o +vimodefpallpn1.o +vimodefpallpf1.o +vimodefpallan1.o +vimodefpallaf1.o +vimodefpallpn2.o +vimodefpallpf2.o +vimodefpallan2.o +vimodefpallaf2.o +vimodefpalhpn1.o +vimodefpalhpf1.o +vimodefpalhan1.o +vimodefpalhaf1.o +vimodefpalhpn2.o +vimodefpalhpf2.o +gbpakinit.o +gbpakgetstatus.o +gbpaksetbank.o +gbpakgetbank.o +gbpakpower.o +gbpakreadwrite.o +gbpakreadid.o +gbpakcheckconnector.o +motor.o +pfsreformat.o +pfschecker.o +pfsinit.o +pfsallocatefile.o +pfsdeletefile.o +pfsreadwritefile.o +pfsfilestate.o +pfssearchfile.o +pfssetlabel.o +pfsgetlabel.o +pfsisplug.o +pfsfreeblocks.o +pfsnumfiles.o +pfsinitpak.o +pfsrepairid.o +pfsgetstatus.o +pfsselectbank.o +contpfs.o +contramread.o +contramwrite.o +parameters.o +afterprenmi.o +getmemsize.o +initialize.o diff --git a/lib/ultralib/base/J/libultra.txt b/lib/ultralib/base/J/libultra.txt new file mode 100644 index 0000000..ba8bbc2 --- /dev/null +++ b/lib/ultralib/base/J/libultra.txt @@ -0,0 +1,446 @@ +ai.o +aigetlen.o +aigetstat.o +aisetfreq.o +aisetnextbuf.o +drvrNew.o +load.o +auxbus.o +bnkf.o +env.o +event.o +filter.o +mainbus.o +resample.o +reverb.o +save.o +seq.o +sl.o +heapcheck.o +heapinit.o +heapalloc.o +copy.o +seqpdelete.o +seqpgetfxmix.o +seqpgetpan.o +seqpgetchlvol.o +seqpgetpriority.o +seqpgetprogram.o +seqpgetseq.o +seqpgettempo.o +seqpgetvol.o +seqpgetstate.o +seqploop.o +seqpplay.o +seqpsendmidi.o +seqpsetbank.o +seqpsetfxmix.o +seqpsetpan.o +seqpsetchlvol.o +seqpsetpriority.o +seqpsetprogram.o +seqpsetseq.o +seqpsettempo.o +seqpsetvol.o +seqpstop.o +seqplayer.o +cseq.o +cspdelete.o +cspgetfxmix.o +cspgetpan.o +cspgetchlvol.o +cspgetpriority.o +cspgetprogram.o +cspgetseq.o +cspgettempo.o +cspgetvol.o +cspgetstate.o +cspplay.o +cspsendmidi.o +cspsetbank.o +cspsetfxmix.o +cspsetpan.o +cspsetchlvol.o +cspsetpriority.o +cspsetprogram.o +cspsetseq.o +cspsettempo.o +cspsetvol.o +cspstop.o +csplayer.o +sndplayer.o +sndpdelete.o +sndpallocate.o +sndpdeallocate.o +sndpsetsound.o +sndpplay.o +sndpplayat.o +sndpgetsound.o +sndpstop.o +sndpgetstate.o +sndpsetpitch.o +sndpsetpriority.o +sndpsetvol.o +sndpsetpan.o +sndpsetfxmix.o +synthesizer.o +syndelete.o +synaddplayer.o +synremoveplayer.o +synfreevoice.o +synallocvoice.o +synstopvoice.o +synstartvoice.o +synstartvoiceparam.o +synsetpitch.o +synsetvol.o +synsetfxmix.o +synsetpan.o +syngetpriority.o +synsetpriority.o +synallocfx.o +synfreefx.o +syngetfxref.o +synsetfxparam.o +cents2ratio.o +parse_abi.o +invaldcache.o +invalicache.o +writebackdcache.o +writebackdcacheall.o +contquery.o +contreaddata.o +contreset.o +controller.o +contsetch.o +physicaltovirtual.o +virtualtophysical.o +assertbreak.o +atomic.o +kdebugserver.o +syncputchars.o +profile.o +giorawinterrupt.o +giointerrupt.o +gt.o +dumpturbo.o +libm_vals.o +sqrtf.o +align.o +cosf.o +coss.o +frustum.o +guLoadTile_bug.o +loadtextureblockmipmap.o +lookat.o +lookathil.o +lookatref.o +lookatstereo.o +mtxcatf.o +mtxcatl.o +mtxutil.o +normalize.o +ortho.o +perspective.o +position.o +poslight.o +poslighthil.o +random.o +rotate.o +rotateRPY.o +scale.o +sinf.o +sins.o +translate.o +us2dex.o +us2dex_emu.o +us2dex2_emu.o +usprite.o +parse_rdp.o +parse_gbi.o +dump_gbi.o +parse_string.o +rdbsend.o +initrdb.o +ackramromread.o +ackramromwrite.o +host_ptn64.o +readhost.o +testhost.o +writehost.o +bcmp.o +bcopy.o +bzero.o +ll.o +llcvt.o +string.o +ldiv.o +llbit.o +xlitob.o +xldtob.o +xprintf.o +sprintf.o +syncprintf.o +delay.o +log.o +logfloat.o +createmesgqueue.o +jammesg.o +recvmesg.o +sendmesg.o +seteventmesg.o +dp.o +dpgetstat.o +dpsetstat.o +dpsetnextbuf.o +dpctr.o +getcause.o +getcompare.o +getconfig.o +getcount.o +getfpccsr.o +getsr.o +gettlbasid.o +gettlbhi.o +gettlblo0.o +gettlblo1.o +gettlbpagemask.o +setcause.o +setcompare.o +setconfig.o +setcount.o +setfpccsr.o +setsr.o +settlbasid.o +region.o +malloc.o +free.o +getbufcount.o +getsize.o +printregion.o +rmonrcp.o +rmonbrk.o +rmoncmds.o +rmonmem.o +rmonmisc.o +rmonprint.o +rmonregs.o +rmontask.o +rmonmain.o +rmonsio.o +sp.o +spgetstat.o +spsetstat.o +spsetpc.o +sprawread.o +sprawwrite.o +sprawdma.o +sptask.o +sptaskyield.o +sptaskyielded.o +sched.o +si.o +sigetstat.o +sirawread.o +sirawwrite.o +sirawdma.o +siacs.o +crc.o +clearattribute.o +color.o +hide.o +setattribute.o +show.o +sprite.o +spriteEX.o +spriteEX2.o +spscale.o +createthread.o +destroythread.o +getthreadid.o +getthreadpri.o +setthreadpri.o +startthread.o +stopthread.o +thread.o +yieldthread.o +getactivequeue.o +gettime.o +settime.o +settimer.o +stoptimer.o +timerintr.o +maptlb.o +probetlb.o +maptlbrdb.o +unmaptlb.o +unmaptlball.o +vi.o +vigetcurrcontext.o +vigetfield.o +vigetcurrframebuf.o +vigetnextframebuf.o +vigetline.o +vigetmode.o +vigetnextcontext.o +vigetstat.o +vimgr.o +visetevent.o +visetmode.o +visetspecial.o +visetxscale.o +visetyscale.o +viswapbuf.o +viswapcontext.o +vitbl.o +viblack.o +virepeatline.o +vifade.o +viextendvstart.o +vimodentsclpn1.o +vimodentsclpf1.o +vimodentsclan1.o +vimodentsclaf1.o +vimodentsclpn2.o +vimodentsclpf2.o +vimodentsclan2.o +vimodentsclaf2.o +vimodentschpn1.o +vimodentschpf1.o +vimodentschan1.o +vimodentschaf1.o +vimodentschpn2.o +vimodentschpf2.o +vimodepallpn1.o +vimodepallpf1.o +vimodepallan1.o +vimodepallaf1.o +vimodepallpn2.o +vimodepallpf2.o +vimodepallan2.o +vimodepallaf2.o +vimodepalhpn1.o +vimodepalhpf1.o +vimodepalhan1.o +vimodepalhaf1.o +vimodepalhpn2.o +vimodepalhpf2.o +vimodempallpn1.o +vimodempallpf1.o +vimodempallan1.o +vimodempallaf1.o +vimodempallpn2.o +vimodempallpf2.o +vimodempallan2.o +vimodempallaf2.o +vimodempalhpn1.o +vimodempalhpf1.o +vimodempalhan1.o +vimodempalhaf1.o +vimodempalhpn2.o +vimodempalhpf2.o +vimodefpallpn1.o +vimodefpallpf1.o +vimodefpallan1.o +vimodefpallaf1.o +vimodefpallpn2.o +vimodefpallpf2.o +vimodefpallan2.o +vimodefpallaf2.o +vimodefpalhpn1.o +vimodefpalhpf1.o +vimodefpalhan1.o +vimodefpalhaf1.o +vimodefpalhpn2.o +vimodefpalhpf2.o +conteepread.o +conteepwrite.o +conteepprobe.o +conteeplongwrite.o +conteeplongread.o +getcurrfaultthread.o +getnextfaultthread.o +exceptasm.o +interrupt.o +setintmask.o +getintmask.o +sethwinterrupt.o +gethwinterrupt.o +setpiinterrupt.o +setglobalintmask.o +resetglobalintmask.o +pi.o +pigettype.o +pigetstat.o +pirawread.o +pirawwrite.o +pirawdma.o +pigetcmdq.o +pimgr.o +epirawread.o +epirawwrite.o +epirawdma.o +epiwrite.o +epiread.o +epidma.o +epigettype.o +epilinkhandle.o +cartrominit.o +devmgr.o +piacs.o +piwrite.o +piread.o +pidma.o +voicecontrolgain.o +voiceinit.o +voicecheckresult.o +voicecontwrite20.o +voicemaskdictionary.o +voicecheckword.o +voicecontwrite4.o +voicesetadconverter.o +voicecleardictionary.o +voicecrc.o +voicesetword.o +voicecontread2.o +voicegetreaddata.o +voicestartreaddata.o +voicecontread36.o +voicegetstatus.o +voicestopreaddata.o +voicecountsyllables.o +contchannelreset.o +gbpakinit.o +gbpakgetstatus.o +gbpaksetbank.o +gbpakgetbank.o +gbpakpower.o +gbpakreadwrite.o +gbpakreadid.o +gbpakcheckconnector.o +motor.o +pfsreformat.o +pfschecker.o +pfsinit.o +pfsallocatefile.o +pfsdeletefile.o +pfsreadwritefile.o +pfsfilestate.o +pfssearchfile.o +pfssetlabel.o +pfsgetlabel.o +pfsisplug.o +pfsfreeblocks.o +pfsnumfiles.o +pfsinitpak.o +pfsrepairid.o +pfsgetstatus.o +pfsselectbank.o +contpfs.o +contramread.o +contramwrite.o +parameters.o +afterprenmi.o +getmemsize.o +initialize.o +exit.o diff --git a/lib/ultralib/base/J/libultra_d.txt b/lib/ultralib/base/J/libultra_d.txt new file mode 100644 index 0000000..0b357b4 --- /dev/null +++ b/lib/ultralib/base/J/libultra_d.txt @@ -0,0 +1,451 @@ +ai.o +aigetlen.o +aigetstat.o +aisetfreq.o +aisetnextbuf.o +drvrNew.o +load.o +auxbus.o +bnkf.o +env.o +event.o +filter.o +mainbus.o +resample.o +reverb.o +save.o +seq.o +sl.o +heapcheck.o +heapinit.o +heapalloc.o +copy.o +seqpdelete.o +seqpgetfxmix.o +seqpgetpan.o +seqpgetchlvol.o +seqpgetpriority.o +seqpgetprogram.o +seqpgetseq.o +seqpgettempo.o +seqpgetvol.o +seqpgetstate.o +seqploop.o +seqpplay.o +seqpsendmidi.o +seqpsetbank.o +seqpsetfxmix.o +seqpsetpan.o +seqpsetchlvol.o +seqpsetpriority.o +seqpsetprogram.o +seqpsetseq.o +seqpsettempo.o +seqpsetvol.o +seqpstop.o +seqplayer.o +cseq.o +cspdelete.o +cspgetfxmix.o +cspgetpan.o +cspgetchlvol.o +cspgetpriority.o +cspgetprogram.o +cspgetseq.o +cspgettempo.o +cspgetvol.o +cspgetstate.o +cspplay.o +cspsendmidi.o +cspsetbank.o +cspsetfxmix.o +cspsetpan.o +cspsetchlvol.o +cspsetpriority.o +cspsetprogram.o +cspsetseq.o +cspsettempo.o +cspsetvol.o +cspstop.o +csplayer.o +sndplayer.o +sndpdelete.o +sndpallocate.o +sndpdeallocate.o +sndpsetsound.o +sndpplay.o +sndpplayat.o +sndpgetsound.o +sndpstop.o +sndpgetstate.o +sndpsetpitch.o +sndpsetpriority.o +sndpsetvol.o +sndpsetpan.o +sndpsetfxmix.o +synthesizer.o +syndelete.o +synaddplayer.o +synremoveplayer.o +synfreevoice.o +synallocvoice.o +synstopvoice.o +synstartvoice.o +synstartvoiceparam.o +synsetpitch.o +synsetvol.o +synsetfxmix.o +synsetpan.o +syngetpriority.o +synsetpriority.o +synallocfx.o +synfreefx.o +syngetfxref.o +synsetfxparam.o +cents2ratio.o +parse_abi.o +invaldcache.o +invalicache.o +writebackdcache.o +writebackdcacheall.o +contquery.o +contreaddata.o +contreset.o +controller.o +contsetch.o +physicaltovirtual.o +virtualtophysical.o +assertbreak.o +atomic.o +kdebugserver.o +syncputchars.o +assert.o +profile.o +giorawinterrupt.o +giointerrupt.o +gt.o +dumpturbo.o +libm_vals.o +sqrtf.o +align.o +cosf.o +coss.o +frustum.o +guLoadTile_bug.o +loadtextureblockmipmap.o +lookat.o +lookathil.o +lookatref.o +lookatstereo.o +mtxcatf.o +mtxcatl.o +mtxutil.o +normalize.o +ortho.o +perspective.o +position.o +poslight.o +poslighthil.o +random.o +rotate.o +rotateRPY.o +scale.o +sinf.o +sins.o +translate.o +us2dex.o +us2dex_emu.o +us2dex2_emu.o +usprite.o +parse_rdp.o +parse_gbi.o +dump_gbi.o +parse_string.o +rdbsend.o +initrdb.o +ackramromread.o +ackramromwrite.o +host_ptn64.o +readhost.o +testhost.o +writehost.o +bcmp.o +bcopy.o +bzero.o +ll.o +llcvt.o +string.o +ldiv.o +llbit.o +xlitob.o +xldtob.o +xprintf.o +sprintf.o +syncprintf.o +delay.o +log.o +logfloat.o +createmesgqueue.o +jammesg.o +recvmesg.o +sendmesg.o +seteventmesg.o +dp.o +dpgetstat.o +dpsetstat.o +dpsetnextbuf.o +dpctr.o +getcause.o +getcompare.o +getconfig.o +getcount.o +getfpccsr.o +getsr.o +gettlbasid.o +gettlbhi.o +gettlblo0.o +gettlblo1.o +gettlbpagemask.o +setcause.o +setcompare.o +setconfig.o +setcount.o +setfpccsr.o +setsr.o +settlbasid.o +region.o +malloc.o +free.o +getbufcount.o +getsize.o +printregion.o +rmonrcp.o +rmonbrk.o +rmoncmds.o +rmonmem.o +rmonmisc.o +rmonprint.o +rmonregs.o +rmontask.o +rmonmain.o +rmonsio.o +sp.o +spgetstat.o +spsetstat.o +spsetpc.o +sprawread.o +sprawwrite.o +sprawdma.o +sptask.o +sptaskyield.o +sptaskyielded.o +sched.o +si.o +sigetstat.o +sirawread.o +sirawwrite.o +sirawdma.o +siacs.o +crc.o +clearattribute.o +color.o +hide.o +setattribute.o +show.o +sprite.o +spriteEX.o +spriteEX2.o +spscale.o +createthread.o +destroythread.o +getthreadid.o +getthreadpri.o +setthreadpri.o +startthread.o +stopthread.o +thread.o +yieldthread.o +getactivequeue.o +gettime.o +settime.o +settimer.o +stoptimer.o +timerintr.o +maptlb.o +probetlb.o +maptlbrdb.o +unmaptlb.o +unmaptlball.o +vi.o +vigetcurrcontext.o +vigetfield.o +vigetcurrframebuf.o +vigetnextframebuf.o +vigetline.o +vigetmode.o +vigetnextcontext.o +vigetstat.o +vimgr.o +visetevent.o +visetmode.o +visetspecial.o +visetxscale.o +visetyscale.o +viswapbuf.o +viswapcontext.o +vitbl.o +viblack.o +virepeatline.o +vifade.o +viextendvstart.o +vimodentsclpn1.o +vimodentsclpf1.o +vimodentsclan1.o +vimodentsclaf1.o +vimodentsclpn2.o +vimodentsclpf2.o +vimodentsclan2.o +vimodentsclaf2.o +vimodentschpn1.o +vimodentschpf1.o +vimodentschan1.o +vimodentschaf1.o +vimodentschpn2.o +vimodentschpf2.o +vimodepallpn1.o +vimodepallpf1.o +vimodepallan1.o +vimodepallaf1.o +vimodepallpn2.o +vimodepallpf2.o +vimodepallan2.o +vimodepallaf2.o +vimodepalhpn1.o +vimodepalhpf1.o +vimodepalhan1.o +vimodepalhaf1.o +vimodepalhpn2.o +vimodepalhpf2.o +vimodempallpn1.o +vimodempallpf1.o +vimodempallan1.o +vimodempallaf1.o +vimodempallpn2.o +vimodempallpf2.o +vimodempallan2.o +vimodempallaf2.o +vimodempalhpn1.o +vimodempalhpf1.o +vimodempalhan1.o +vimodempalhaf1.o +vimodempalhpn2.o +vimodempalhpf2.o +vimodefpallpn1.o +vimodefpallpf1.o +vimodefpallan1.o +vimodefpallaf1.o +vimodefpallpn2.o +vimodefpallpf2.o +vimodefpallan2.o +vimodefpallaf2.o +vimodefpalhpn1.o +vimodefpalhpf1.o +vimodefpalhan1.o +vimodefpalhaf1.o +vimodefpalhpn2.o +vimodefpalhpf2.o +conteepread.o +conteepwrite.o +conteepprobe.o +conteeplongwrite.o +conteeplongread.o +errorasm.o +getcurrfaultthread.o +getnextfaultthread.o +error.o +seterrorhandler.o +exceptasm.o +interrupt.o +setintmask.o +getintmask.o +sethwinterrupt.o +gethwinterrupt.o +setpiinterrupt.o +setglobalintmask.o +resetglobalintmask.o +pi.o +pigettype.o +pigetstat.o +pirawread.o +pirawwrite.o +pirawdma.o +pigetcmdq.o +pimgr.o +epirawread.o +epirawwrite.o +epirawdma.o +epiwrite.o +epiread.o +epidma.o +epigettype.o +epilinkhandle.o +cartrominit.o +devmgr.o +piacs.o +piwrite.o +piread.o +pidma.o +voicecontrolgain.o +voiceinit.o +voicecheckresult.o +voicecontwrite20.o +voicemaskdictionary.o +voicecheckword.o +voicecontwrite4.o +voicesetadconverter.o +voicecleardictionary.o +voicecrc.o +voicesetword.o +voicecontread2.o +voicegetreaddata.o +voicestartreaddata.o +voicecontread36.o +voicegetstatus.o +voicestopreaddata.o +voicecountsyllables.o +contchannelreset.o +gbpakinit.o +gbpakgetstatus.o +gbpaksetbank.o +gbpakgetbank.o +gbpakpower.o +gbpakreadwrite.o +gbpakreadid.o +gbpakcheckconnector.o +motor.o +pfsreformat.o +pfschecker.o +pfsinit.o +pfsallocatefile.o +pfsdeletefile.o +pfsreadwritefile.o +pfsfilestate.o +pfssearchfile.o +pfssetlabel.o +pfsgetlabel.o +pfsisplug.o +pfsfreeblocks.o +pfsnumfiles.o +pfsinitpak.o +pfsrepairid.o +pfsgetstatus.o +pfsselectbank.o +contpfs.o +contramread.o +contramwrite.o +parameters.o +afterprenmi.o +getmemsize.o +initialize.o +exit.o +kmcprintf.o diff --git a/lib/ultralib/base/J/libultra_rom.txt b/lib/ultralib/base/J/libultra_rom.txt new file mode 100644 index 0000000..73da3e3 --- /dev/null +++ b/lib/ultralib/base/J/libultra_rom.txt @@ -0,0 +1,418 @@ +ai.o +aigetlen.o +aigetstat.o +aisetfreq.o +aisetnextbuf.o +drvrNew.o +load.o +auxbus.o +bnkf.o +env.o +event.o +filter.o +mainbus.o +resample.o +reverb.o +save.o +seq.o +sl.o +heapcheck.o +heapinit.o +heapalloc.o +copy.o +seqpdelete.o +seqpgetfxmix.o +seqpgetpan.o +seqpgetchlvol.o +seqpgetpriority.o +seqpgetprogram.o +seqpgetseq.o +seqpgettempo.o +seqpgetvol.o +seqpgetstate.o +seqploop.o +seqpplay.o +seqpsendmidi.o +seqpsetbank.o +seqpsetfxmix.o +seqpsetpan.o +seqpsetchlvol.o +seqpsetpriority.o +seqpsetprogram.o +seqpsetseq.o +seqpsettempo.o +seqpsetvol.o +seqpstop.o +seqplayer.o +cseq.o +cspdelete.o +cspgetfxmix.o +cspgetpan.o +cspgetchlvol.o +cspgetpriority.o +cspgetprogram.o +cspgetseq.o +cspgettempo.o +cspgetvol.o +cspgetstate.o +cspplay.o +cspsendmidi.o +cspsetbank.o +cspsetfxmix.o +cspsetpan.o +cspsetchlvol.o +cspsetpriority.o +cspsetprogram.o +cspsetseq.o +cspsettempo.o +cspsetvol.o +cspstop.o +csplayer.o +sndplayer.o +sndpdelete.o +sndpallocate.o +sndpdeallocate.o +sndpsetsound.o +sndpplay.o +sndpplayat.o +sndpgetsound.o +sndpstop.o +sndpgetstate.o +sndpsetpitch.o +sndpsetpriority.o +sndpsetvol.o +sndpsetpan.o +sndpsetfxmix.o +synthesizer.o +syndelete.o +synaddplayer.o +synremoveplayer.o +synfreevoice.o +synallocvoice.o +synstopvoice.o +synstartvoice.o +synstartvoiceparam.o +synsetpitch.o +synsetvol.o +synsetfxmix.o +synsetpan.o +syngetpriority.o +synsetpriority.o +synallocfx.o +synfreefx.o +syngetfxref.o +synsetfxparam.o +cents2ratio.o +parse_abi.o +invaldcache.o +invalicache.o +writebackdcache.o +writebackdcacheall.o +contquery.o +contreaddata.o +contreset.o +controller.o +contsetch.o +physicaltovirtual.o +virtualtophysical.o +atomic.o +kdebugserver.o +syncputchars.o +giorawinterrupt.o +giointerrupt.o +gt.o +libm_vals.o +sqrtf.o +align.o +cosf.o +coss.o +frustum.o +guLoadTile_bug.o +loadtextureblockmipmap.o +lookat.o +lookathil.o +lookatref.o +lookatstereo.o +mtxcatf.o +mtxcatl.o +mtxutil.o +normalize.o +ortho.o +perspective.o +position.o +poslight.o +poslighthil.o +random.o +rotate.o +rotateRPY.o +scale.o +sinf.o +sins.o +translate.o +us2dex.o +us2dex_emu.o +us2dex2_emu.o +usprite.o +rdbsend.o +initrdb.o +bcmp.o +bcopy.o +bzero.o +ll.o +llcvt.o +string.o +ldiv.o +llbit.o +xlitob.o +xldtob.o +xprintf.o +sprintf.o +syncprintf.o +createmesgqueue.o +jammesg.o +recvmesg.o +sendmesg.o +seteventmesg.o +dp.o +dpgetstat.o +dpsetstat.o +dpsetnextbuf.o +dpctr.o +getcause.o +getcompare.o +getconfig.o +getcount.o +getfpccsr.o +getsr.o +gettlbasid.o +gettlbhi.o +gettlblo0.o +gettlblo1.o +gettlbpagemask.o +setcause.o +setcompare.o +setconfig.o +setcount.o +setfpccsr.o +setsr.o +settlbasid.o +region.o +malloc.o +free.o +getbufcount.o +getsize.o +sp.o +spgetstat.o +spsetstat.o +spsetpc.o +sprawread.o +sprawwrite.o +sprawdma.o +sptask.o +sptaskyield.o +sptaskyielded.o +sched.o +si.o +sigetstat.o +sirawread.o +sirawwrite.o +sirawdma.o +siacs.o +crc.o +clearattribute.o +color.o +hide.o +setattribute.o +show.o +sprite.o +spriteEX.o +spriteEX2.o +spscale.o +createthread.o +destroythread.o +getthreadid.o +getthreadpri.o +setthreadpri.o +startthread.o +stopthread.o +thread.o +yieldthread.o +getactivequeue.o +gettime.o +settime.o +settimer.o +stoptimer.o +timerintr.o +maptlb.o +probetlb.o +maptlbrdb.o +unmaptlb.o +unmaptlball.o +vi.o +vigetcurrcontext.o +vigetfield.o +vigetcurrframebuf.o +vigetnextframebuf.o +vigetline.o +vigetmode.o +vigetnextcontext.o +vigetstat.o +vimgr.o +visetevent.o +visetmode.o +visetspecial.o +visetxscale.o +visetyscale.o +viswapbuf.o +viswapcontext.o +vitbl.o +viblack.o +virepeatline.o +vifade.o +viextendvstart.o +vimodentsclpn1.o +vimodentsclpf1.o +vimodentsclan1.o +vimodentsclaf1.o +vimodentsclpn2.o +vimodentsclpf2.o +vimodentsclan2.o +vimodentsclaf2.o +vimodentschpn1.o +vimodentschpf1.o +vimodentschan1.o +vimodentschaf1.o +vimodentschpn2.o +vimodentschpf2.o +vimodepallpn1.o +vimodepallpf1.o +vimodepallan1.o +vimodepallaf1.o +vimodepallpn2.o +vimodepallpf2.o +vimodepallan2.o +vimodepallaf2.o +vimodepalhpn1.o +vimodepalhpf1.o +vimodepalhan1.o +vimodepalhaf1.o +vimodepalhpn2.o +vimodepalhpf2.o +vimodempallpn1.o +vimodempallpf1.o +vimodempallan1.o +vimodempallaf1.o +vimodempallpn2.o +vimodempallpf2.o +vimodempallan2.o +vimodempallaf2.o +vimodempalhpn1.o +vimodempalhpf1.o +vimodempalhan1.o +vimodempalhaf1.o +vimodempalhpn2.o +vimodempalhpf2.o +vimodefpallpn1.o +vimodefpallpf1.o +vimodefpallan1.o +vimodefpallaf1.o +vimodefpallpn2.o +vimodefpallpf2.o +vimodefpallan2.o +vimodefpallaf2.o +vimodefpalhpn1.o +vimodefpalhpf1.o +vimodefpalhan1.o +vimodefpalhaf1.o +vimodefpalhpn2.o +vimodefpalhpf2.o +conteepread.o +conteepwrite.o +conteepprobe.o +conteeplongwrite.o +conteeplongread.o +getcurrfaultthread.o +getnextfaultthread.o +exceptasm.o +interrupt.o +setintmask.o +getintmask.o +sethwinterrupt.o +gethwinterrupt.o +setpiinterrupt.o +setglobalintmask.o +resetglobalintmask.o +pi.o +pigettype.o +pigetstat.o +pirawread.o +pirawwrite.o +pirawdma.o +pigetcmdq.o +pimgr.o +epirawread.o +epirawwrite.o +epirawdma.o +epiwrite.o +epiread.o +epidma.o +epigettype.o +epilinkhandle.o +cartrominit.o +devmgr.o +piacs.o +piwrite.o +piread.o +pidma.o +voicecontrolgain.o +voiceinit.o +voicecheckresult.o +voicecontwrite20.o +voicemaskdictionary.o +voicecheckword.o +voicecontwrite4.o +voicesetadconverter.o +voicecleardictionary.o +voicecrc.o +voicesetword.o +voicecontread2.o +voicegetreaddata.o +voicestartreaddata.o +voicecontread36.o +voicegetstatus.o +voicestopreaddata.o +voicecountsyllables.o +contchannelreset.o +gbpakinit.o +gbpakgetstatus.o +gbpaksetbank.o +gbpakgetbank.o +gbpakpower.o +gbpakreadwrite.o +gbpakreadid.o +gbpakcheckconnector.o +motor.o +pfsreformat.o +pfschecker.o +pfsinit.o +pfsallocatefile.o +pfsdeletefile.o +pfsreadwritefile.o +pfsfilestate.o +pfssearchfile.o +pfssetlabel.o +pfsgetlabel.o +pfsisplug.o +pfsfreeblocks.o +pfsnumfiles.o +pfsinitpak.o +pfsrepairid.o +pfsgetstatus.o +pfsselectbank.o +contpfs.o +contramread.o +contramwrite.o +parameters.o +afterprenmi.o +getmemsize.o +initialize.o diff --git a/lib/ultralib/base/K/libgultra.txt b/lib/ultralib/base/K/libgultra.txt new file mode 100644 index 0000000..7814487 --- /dev/null +++ b/lib/ultralib/base/K/libgultra.txt @@ -0,0 +1,468 @@ +conteepread.o +conteepwrite.o +conteepprobe.o +conteeplongwrite.o +conteeplongread.o +getcurrfaultthread.o +getnextfaultthread.o +exceptasm.o +interrupt.o +setintmask.o +getintmask.o +sethwinterrupt.o +gethwinterrupt.o +setpiinterrupt.o +setglobalintmask.o +resetglobalintmask.o +pi.o +pigettype.o +pigetstat.o +pirawread.o +pirawwrite.o +pirawdma.o +pigetcmdq.o +pimgr.o +epirawread.o +epirawwrite.o +epirawdma.o +epiwrite.o +epiread.o +epidma.o +epigettype.o +epilinkhandle.o +cartrominit.o +devmgr.o +piacs.o +piwrite.o +piread.o +pidma.o +voicecontrolgain.o +voiceinit.o +voicecheckresult.o +voicecontwrite20.o +voicemaskdictionary.o +voicecheckword.o +voicecontwrite4.o +voicesetadconverter.o +voicecleardictionary.o +voicecrc.o +voicesetword.o +voicecontread2.o +voicegetreaddata.o +voicestartreaddata.o +voicecontread36.o +voicegetstatus.o +voicestopreaddata.o +voicecountsyllables.o +contchannelreset.o +ai.o +aigetlen.o +aigetstat.o +aisetfreq.o +aisetnextbuf.o +drvrnew.o +load.o +auxbus.o +bnkf.o +env.o +event.o +filter.o +mainbus.o +resample.o +reverb.o +save.o +seq.o +sl.o +heapcheck.o +heapinit.o +heapalloc.o +copy.o +seqpdelete.o +seqpgetfxmix.o +seqpgetpan.o +seqpgetchlvol.o +seqpgetpriority.o +seqpgetprogram.o +seqpgetseq.o +seqpgettempo.o +seqpgetvol.o +seqpgetstate.o +seqploop.o +seqpplay.o +seqpsendmidi.o +seqpsetbank.o +seqpsetfxmix.o +seqpsetpan.o +seqpsetchlvol.o +seqpsetpriority.o +seqpsetprogram.o +seqpsetseq.o +seqpsettempo.o +seqpsetvol.o +seqpstop.o +seqplayer.o +cseq.o +cspdelete.o +cspgetfxmix.o +cspgetpan.o +cspgetchlvol.o +cspgetpriority.o +cspgetprogram.o +cspgetseq.o +cspgettempo.o +cspgetvol.o +cspgetstate.o +cspplay.o +cspsendmidi.o +cspsetbank.o +cspsetfxmix.o +cspsetpan.o +cspsetchlvol.o +cspsetpriority.o +cspsetprogram.o +cspsetseq.o +cspsettempo.o +cspsetvol.o +cspstop.o +csplayer.o +sndplayer.o +sndpdelete.o +sndpallocate.o +sndpdeallocate.o +sndpsetsound.o +sndpplay.o +sndpplayat.o +sndpgetsound.o +sndpstop.o +sndpgetstate.o +sndpsetpitch.o +sndpsetpriority.o +sndpsetvol.o +sndpsetpan.o +sndpsetfxmix.o +synthesizer.o +syndelete.o +synaddplayer.o +synremoveplayer.o +synfreevoice.o +synallocvoice.o +synstopvoice.o +synstartvoice.o +synstartvoiceparam.o +synsetpitch.o +synsetvol.o +synsetfxmix.o +synsetpan.o +syngetpriority.o +synsetpriority.o +synallocfx.o +synfreefx.o +syngetfxref.o +synsetfxparam.o +cents2ratio.o +parse_abi.o +invaldcache.o +invalicache.o +writebackdcache.o +writebackdcacheall.o +contquery.o +contreaddata.o +contreset.o +controller.o +contsetch.o +physicaltovirtual.o +virtualtophysical.o +assertbreak.o +atomic.o +kdebugserver.o +syncputchars.o +assert.o +profile.o +threadprofile.o +threadprofileclear.o +threadprofileinit.o +threadprofilereadcount.o +threadprofilereadtime.o +threadprofilestart.o +threadprofilestop.o +giorawinterrupt.o +giointerrupt.o +gt.o +dumpturbo.o +libm_vals.o +sqrtf.o +align.o +cosf.o +coss.o +frustum.o +guloadtile_bug.o +loadtextureblockmipmap.o +lookat.o +lookathil.o +lookatref.o +lookatstereo.o +ortho.o +perspective.o +position.o +poslight.o +poslighthil.o +random.o +rotaterpy.o +sinf.o +sins.o +us2dex.o +us2dex_emu.o +us2dex2_emu.o +usprite.o +parse_rdp.o +parse_gbi.o +dump_gbi.o +parse_string.o +rdbsend.o +initrdb.o +ackramromread.o +ackramromwrite.o +host_ptn64.o +readhost.o +testhost.o +writehost.o +initialize_isv.o +monutil.o +bcmp.o +bcopy.o +bzero.o +ll.o +llcvt.o +string.o +ldiv.o +llbit.o +xlitob.o +xldtob.o +xprintf.o +sprintf.o +syncprintf.o +delay.o +log.o +logfloat.o +createmesgqueue.o +jammesg.o +recvmesg.o +sendmesg.o +seteventmesg.o +dp.o +dpgetstat.o +dpsetstat.o +dpsetnextbuf.o +dpctr.o +getcause.o +getcompare.o +getconfig.o +getcount.o +getfpccsr.o +getsr.o +gettlbasid.o +gettlbhi.o +gettlblo0.o +gettlblo1.o +gettlbpagemask.o +setcause.o +setcompare.o +setconfig.o +setcount.o +setfpccsr.o +setsr.o +settlbasid.o +getwatchlo.o +setwatchlo.o +region.o +malloc.o +free.o +getbufcount.o +getsize.o +printregion.o +rmonrcp.o +rmonbrk.o +rmoncmds.o +rmonmem.o +rmonmisc.o +rmonprint.o +rmonregs.o +rmontask.o +rmonmain.o +rmonsio.o +sp.o +spgetstat.o +spsetstat.o +spsetpc.o +sprawread.o +sprawwrite.o +sprawdma.o +sptask.o +sptaskyield.o +sptaskyielded.o +sched.o +si.o +sigetstat.o +sirawread.o +sirawwrite.o +sirawdma.o +siacs.o +crc.o +clearattribute.o +color.o +hide.o +setattribute.o +show.o +sprite.o +spriteex.o +spriteex2.o +spscale.o +createthread.o +destroythread.o +getthreadid.o +getthreadpri.o +setthreadpri.o +startthread.o +stopthread.o +thread.o +yieldthread.o +getactivequeue.o +gettime.o +settime.o +settimer.o +stoptimer.o +timerintr.o +maptlb.o +probetlb.o +maptlbrdb.o +unmaptlb.o +unmaptlball.o +vi.o +vigetcurrcontext.o +vigetfield.o +vigetcurrframebuf.o +vigetnextframebuf.o +vigetline.o +vigetmode.o +vigetnextcontext.o +vigetstat.o +vimgr.o +visetevent.o +visetmode.o +visetspecial.o +visetxscale.o +visetyscale.o +viswapbuf.o +viswapcontext.o +vitbl.o +viblack.o +virepeatline.o +vifade.o +viextendvstart.o +vimodentsclpn1.o +vimodentsclpf1.o +vimodentsclan1.o +vimodentsclaf1.o +vimodentsclpn2.o +vimodentsclpf2.o +vimodentsclan2.o +vimodentsclaf2.o +vimodentschpn1.o +vimodentschpf1.o +vimodentschan1.o +vimodentschaf1.o +vimodentschpn2.o +vimodentschpf2.o +vimodepallpn1.o +vimodepallpf1.o +vimodepallan1.o +vimodepallaf1.o +vimodepallpn2.o +vimodepallpf2.o +vimodepallan2.o +vimodepallaf2.o +vimodepalhpn1.o +vimodepalhpf1.o +vimodepalhan1.o +vimodepalhaf1.o +vimodepalhpn2.o +vimodepalhpf2.o +vimodempallpn1.o +vimodempallpf1.o +vimodempallan1.o +vimodempallaf1.o +vimodempallpn2.o +vimodempallpf2.o +vimodempallan2.o +vimodempallaf2.o +vimodempalhpn1.o +vimodempalhpf1.o +vimodempalhan1.o +vimodempalhaf1.o +vimodempalhpn2.o +vimodempalhpf2.o +vimodefpallpn1.o +vimodefpallpf1.o +vimodefpallan1.o +vimodefpallaf1.o +vimodefpallpn2.o +vimodefpallpf2.o +vimodefpallan2.o +vimodefpallaf2.o +vimodefpalhpn1.o +vimodefpalhpf1.o +vimodefpalhan1.o +vimodefpalhaf1.o +vimodefpalhpn2.o +vimodefpalhpf2.o +mtxident.o +mtxidentf.o +mtxf2l.o +mtxl2f.o +mtxcatf.o +scale.o +scalef.o +normalize.o +translate.o +translatef.o +mtxcatl.o +mtxxfml.o +mtxxfmf.o +rotate.o +gbpakinit.o +gbpakgetstatus.o +gbpaksetbank.o +gbpakgetbank.o +gbpakpower.o +gbpakreadwrite.o +gbpakreadid.o +gbpakcheckconnector.o +motor.o +pfsreformat.o +pfschecker.o +pfsinit.o +pfsallocatefile.o +pfsdeletefile.o +pfsreadwritefile.o +pfsfilestate.o +pfssearchfile.o +pfssetlabel.o +pfsgetlabel.o +pfsisplug.o +pfsfreeblocks.o +pfsnumfiles.o +pfsinitpak.o +pfsrepairid.o +pfsgetstatus.o +pfsselectbank.o +contpfs.o +contramread.o +contramwrite.o +parameters.o +afterprenmi.o +getmemsize.o +initialize.o +initialize_kmc.o +initialize_msp.o +initialize_emu.o +exit.o diff --git a/lib/ultralib/base/K/libgultra_d.txt b/lib/ultralib/base/K/libgultra_d.txt new file mode 100644 index 0000000..0a78430 --- /dev/null +++ b/lib/ultralib/base/K/libgultra_d.txt @@ -0,0 +1,471 @@ +conteepread.o +conteepwrite.o +conteepprobe.o +conteeplongwrite.o +conteeplongread.o +errorasm.o +getcurrfaultthread.o +getnextfaultthread.o +seterrorhandler.o +commonerror.o +exceptasm.o +interrupt.o +setintmask.o +getintmask.o +sethwinterrupt.o +gethwinterrupt.o +setpiinterrupt.o +setglobalintmask.o +resetglobalintmask.o +pi.o +pigettype.o +pigetstat.o +pirawread.o +pirawwrite.o +pirawdma.o +pigetcmdq.o +pimgr.o +epirawread.o +epirawwrite.o +epirawdma.o +epiwrite.o +epiread.o +epidma.o +epigettype.o +epilinkhandle.o +cartrominit.o +devmgr.o +piacs.o +piwrite.o +piread.o +pidma.o +voicecontrolgain.o +voiceinit.o +voicecheckresult.o +voicecontwrite20.o +voicemaskdictionary.o +voicecheckword.o +voicecontwrite4.o +voicesetadconverter.o +voicecleardictionary.o +voicecrc.o +voicesetword.o +voicecontread2.o +voicegetreaddata.o +voicestartreaddata.o +voicecontread36.o +voicegetstatus.o +voicestopreaddata.o +voicecountsyllables.o +contchannelreset.o +ai.o +aigetlen.o +aigetstat.o +aisetfreq.o +aisetnextbuf.o +drvrnew.o +load.o +auxbus.o +bnkf.o +env.o +event.o +filter.o +mainbus.o +resample.o +reverb.o +save.o +seq.o +sl.o +heapcheck.o +heapinit.o +heapalloc.o +copy.o +seqpdelete.o +seqpgetfxmix.o +seqpgetpan.o +seqpgetchlvol.o +seqpgetpriority.o +seqpgetprogram.o +seqpgetseq.o +seqpgettempo.o +seqpgetvol.o +seqpgetstate.o +seqploop.o +seqpplay.o +seqpsendmidi.o +seqpsetbank.o +seqpsetfxmix.o +seqpsetpan.o +seqpsetchlvol.o +seqpsetpriority.o +seqpsetprogram.o +seqpsetseq.o +seqpsettempo.o +seqpsetvol.o +seqpstop.o +seqplayer.o +cseq.o +cspdelete.o +cspgetfxmix.o +cspgetpan.o +cspgetchlvol.o +cspgetpriority.o +cspgetprogram.o +cspgetseq.o +cspgettempo.o +cspgetvol.o +cspgetstate.o +cspplay.o +cspsendmidi.o +cspsetbank.o +cspsetfxmix.o +cspsetpan.o +cspsetchlvol.o +cspsetpriority.o +cspsetprogram.o +cspsetseq.o +cspsettempo.o +cspsetvol.o +cspstop.o +csplayer.o +sndplayer.o +sndpdelete.o +sndpallocate.o +sndpdeallocate.o +sndpsetsound.o +sndpplay.o +sndpplayat.o +sndpgetsound.o +sndpstop.o +sndpgetstate.o +sndpsetpitch.o +sndpsetpriority.o +sndpsetvol.o +sndpsetpan.o +sndpsetfxmix.o +synthesizer.o +syndelete.o +synaddplayer.o +synremoveplayer.o +synfreevoice.o +synallocvoice.o +synstopvoice.o +synstartvoice.o +synstartvoiceparam.o +synsetpitch.o +synsetvol.o +synsetfxmix.o +synsetpan.o +syngetpriority.o +synsetpriority.o +synallocfx.o +synfreefx.o +syngetfxref.o +synsetfxparam.o +cents2ratio.o +parse_abi.o +invaldcache.o +invalicache.o +writebackdcache.o +writebackdcacheall.o +contquery.o +contreaddata.o +contreset.o +controller.o +contsetch.o +physicaltovirtual.o +virtualtophysical.o +assertbreak.o +atomic.o +kdebugserver.o +syncputchars.o +assert.o +profile.o +threadprofile.o +threadprofileclear.o +threadprofileinit.o +threadprofilereadcount.o +threadprofilereadtime.o +threadprofilestart.o +threadprofilestop.o +giorawinterrupt.o +giointerrupt.o +gt.o +dumpturbo.o +libm_vals.o +sqrtf.o +align.o +cosf.o +coss.o +frustum.o +guloadtile_bug.o +loadtextureblockmipmap.o +lookat.o +lookathil.o +lookatref.o +lookatstereo.o +ortho.o +perspective.o +position.o +poslight.o +poslighthil.o +random.o +rotaterpy.o +sinf.o +sins.o +us2dex.o +us2dex_emu.o +us2dex2_emu.o +usprite.o +parse_rdp.o +parse_gbi.o +dump_gbi.o +parse_string.o +rdbsend.o +initrdb.o +ackramromread.o +ackramromwrite.o +host_ptn64.o +readhost.o +testhost.o +writehost.o +initialize_isv.o +monutil.o +bcmp.o +bcopy.o +bzero.o +ll.o +llcvt.o +string.o +ldiv.o +llbit.o +xlitob.o +xldtob.o +xprintf.o +sprintf.o +syncprintf.o +delay.o +log.o +logfloat.o +createmesgqueue.o +jammesg.o +recvmesg.o +sendmesg.o +seteventmesg.o +dp.o +dpgetstat.o +dpsetstat.o +dpsetnextbuf.o +dpctr.o +getcause.o +getcompare.o +getconfig.o +getcount.o +getfpccsr.o +getsr.o +gettlbasid.o +gettlbhi.o +gettlblo0.o +gettlblo1.o +gettlbpagemask.o +setcause.o +setcompare.o +setconfig.o +setcount.o +setfpccsr.o +setsr.o +settlbasid.o +getwatchlo.o +setwatchlo.o +region.o +malloc.o +free.o +getbufcount.o +getsize.o +printregion.o +rmonrcp.o +rmonbrk.o +rmoncmds.o +rmonmem.o +rmonmisc.o +rmonprint.o +rmonregs.o +rmontask.o +rmonmain.o +rmonsio.o +sp.o +spgetstat.o +spsetstat.o +spsetpc.o +sprawread.o +sprawwrite.o +sprawdma.o +sptask.o +sptaskyield.o +sptaskyielded.o +sched.o +si.o +sigetstat.o +sirawread.o +sirawwrite.o +sirawdma.o +siacs.o +crc.o +clearattribute.o +color.o +hide.o +setattribute.o +show.o +sprite.o +spriteex.o +spriteex2.o +spscale.o +createthread.o +destroythread.o +getthreadid.o +getthreadpri.o +setthreadpri.o +startthread.o +stopthread.o +thread.o +yieldthread.o +getactivequeue.o +gettime.o +settime.o +settimer.o +stoptimer.o +timerintr.o +maptlb.o +probetlb.o +maptlbrdb.o +unmaptlb.o +unmaptlball.o +vi.o +vigetcurrcontext.o +vigetfield.o +vigetcurrframebuf.o +vigetnextframebuf.o +vigetline.o +vigetmode.o +vigetnextcontext.o +vigetstat.o +vimgr.o +visetevent.o +visetmode.o +visetspecial.o +visetxscale.o +visetyscale.o +viswapbuf.o +viswapcontext.o +vitbl.o +viblack.o +virepeatline.o +vifade.o +viextendvstart.o +vimodentsclpn1.o +vimodentsclpf1.o +vimodentsclan1.o +vimodentsclaf1.o +vimodentsclpn2.o +vimodentsclpf2.o +vimodentsclan2.o +vimodentsclaf2.o +vimodentschpn1.o +vimodentschpf1.o +vimodentschan1.o +vimodentschaf1.o +vimodentschpn2.o +vimodentschpf2.o +vimodepallpn1.o +vimodepallpf1.o +vimodepallan1.o +vimodepallaf1.o +vimodepallpn2.o +vimodepallpf2.o +vimodepallan2.o +vimodepallaf2.o +vimodepalhpn1.o +vimodepalhpf1.o +vimodepalhan1.o +vimodepalhaf1.o +vimodepalhpn2.o +vimodepalhpf2.o +vimodempallpn1.o +vimodempallpf1.o +vimodempallan1.o +vimodempallaf1.o +vimodempallpn2.o +vimodempallpf2.o +vimodempallan2.o +vimodempallaf2.o +vimodempalhpn1.o +vimodempalhpf1.o +vimodempalhan1.o +vimodempalhaf1.o +vimodempalhpn2.o +vimodempalhpf2.o +vimodefpallpn1.o +vimodefpallpf1.o +vimodefpallan1.o +vimodefpallaf1.o +vimodefpallpn2.o +vimodefpallpf2.o +vimodefpallan2.o +vimodefpallaf2.o +vimodefpalhpn1.o +vimodefpalhpf1.o +vimodefpalhan1.o +vimodefpalhaf1.o +vimodefpalhpn2.o +vimodefpalhpf2.o +mtxident.o +mtxidentf.o +mtxf2l.o +mtxl2f.o +mtxcatf.o +scale.o +scalef.o +normalize.o +translate.o +translatef.o +mtxcatl.o +mtxxfml.o +mtxxfmf.o +rotate.o +gbpakinit.o +gbpakgetstatus.o +gbpaksetbank.o +gbpakgetbank.o +gbpakpower.o +gbpakreadwrite.o +gbpakreadid.o +gbpakcheckconnector.o +motor.o +pfsreformat.o +pfschecker.o +pfsinit.o +pfsallocatefile.o +pfsdeletefile.o +pfsreadwritefile.o +pfsfilestate.o +pfssearchfile.o +pfssetlabel.o +pfsgetlabel.o +pfsisplug.o +pfsfreeblocks.o +pfsnumfiles.o +pfsinitpak.o +pfsrepairid.o +pfsgetstatus.o +pfsselectbank.o +contpfs.o +contramread.o +contramwrite.o +parameters.o +afterprenmi.o +getmemsize.o +initialize.o +initialize_kmc.o +initialize_msp.o +initialize_emu.o +exit.o diff --git a/lib/ultralib/base/K/libgultra_rom.txt b/lib/ultralib/base/K/libgultra_rom.txt new file mode 100644 index 0000000..67e702e --- /dev/null +++ b/lib/ultralib/base/K/libgultra_rom.txt @@ -0,0 +1,425 @@ +conteepread.o +conteepwrite.o +conteepprobe.o +conteeplongwrite.o +conteeplongread.o +getcurrfaultthread.o +getnextfaultthread.o +exceptasm.o +interrupt.o +setintmask.o +getintmask.o +sethwinterrupt.o +gethwinterrupt.o +setpiinterrupt.o +setglobalintmask.o +resetglobalintmask.o +pi.o +pigettype.o +pigetstat.o +pirawread.o +pirawwrite.o +pirawdma.o +pigetcmdq.o +pimgr.o +epirawread.o +epirawwrite.o +epirawdma.o +epiwrite.o +epiread.o +epidma.o +epigettype.o +epilinkhandle.o +cartrominit.o +devmgr.o +piacs.o +piwrite.o +piread.o +pidma.o +voicecontrolgain.o +voiceinit.o +voicecheckresult.o +voicecontwrite20.o +voicemaskdictionary.o +voicecheckword.o +voicecontwrite4.o +voicesetadconverter.o +voicecleardictionary.o +voicecrc.o +voicesetword.o +voicecontread2.o +voicegetreaddata.o +voicestartreaddata.o +voicecontread36.o +voicegetstatus.o +voicestopreaddata.o +voicecountsyllables.o +contchannelreset.o +ai.o +aigetlen.o +aigetstat.o +aisetfreq.o +aisetnextbuf.o +drvrnew.o +load.o +auxbus.o +bnkf.o +env.o +event.o +filter.o +mainbus.o +resample.o +reverb.o +save.o +seq.o +sl.o +heapcheck.o +heapinit.o +heapalloc.o +copy.o +seqpdelete.o +seqpgetfxmix.o +seqpgetpan.o +seqpgetchlvol.o +seqpgetpriority.o +seqpgetprogram.o +seqpgetseq.o +seqpgettempo.o +seqpgetvol.o +seqpgetstate.o +seqploop.o +seqpplay.o +seqpsendmidi.o +seqpsetbank.o +seqpsetfxmix.o +seqpsetpan.o +seqpsetchlvol.o +seqpsetpriority.o +seqpsetprogram.o +seqpsetseq.o +seqpsettempo.o +seqpsetvol.o +seqpstop.o +seqplayer.o +cseq.o +cspdelete.o +cspgetfxmix.o +cspgetpan.o +cspgetchlvol.o +cspgetpriority.o +cspgetprogram.o +cspgetseq.o +cspgettempo.o +cspgetvol.o +cspgetstate.o +cspplay.o +cspsendmidi.o +cspsetbank.o +cspsetfxmix.o +cspsetpan.o +cspsetchlvol.o +cspsetpriority.o +cspsetprogram.o +cspsetseq.o +cspsettempo.o +cspsetvol.o +cspstop.o +csplayer.o +sndplayer.o +sndpdelete.o +sndpallocate.o +sndpdeallocate.o +sndpsetsound.o +sndpplay.o +sndpplayat.o +sndpgetsound.o +sndpstop.o +sndpgetstate.o +sndpsetpitch.o +sndpsetpriority.o +sndpsetvol.o +sndpsetpan.o +sndpsetfxmix.o +synthesizer.o +syndelete.o +synaddplayer.o +synremoveplayer.o +synfreevoice.o +synallocvoice.o +synstopvoice.o +synstartvoice.o +synstartvoiceparam.o +synsetpitch.o +synsetvol.o +synsetfxmix.o +synsetpan.o +syngetpriority.o +synsetpriority.o +synallocfx.o +synfreefx.o +syngetfxref.o +synsetfxparam.o +cents2ratio.o +parse_abi.o +invaldcache.o +invalicache.o +writebackdcache.o +writebackdcacheall.o +contquery.o +contreaddata.o +contreset.o +controller.o +contsetch.o +physicaltovirtual.o +virtualtophysical.o +atomic.o +kdebugserver.o +syncputchars.o +gt.o +libm_vals.o +sqrtf.o +align.o +cosf.o +coss.o +frustum.o +guloadtile_bug.o +loadtextureblockmipmap.o +lookat.o +lookathil.o +lookatref.o +lookatstereo.o +ortho.o +perspective.o +position.o +poslight.o +poslighthil.o +random.o +rotaterpy.o +sinf.o +sins.o +us2dex.o +us2dex_emu.o +us2dex2_emu.o +usprite.o +rdbsend.o +initrdb.o +bcmp.o +bcopy.o +bzero.o +ll.o +llcvt.o +string.o +ldiv.o +llbit.o +xlitob.o +xldtob.o +xprintf.o +sprintf.o +syncprintf.o +createmesgqueue.o +jammesg.o +recvmesg.o +sendmesg.o +seteventmesg.o +dp.o +dpgetstat.o +dpsetstat.o +dpsetnextbuf.o +dpctr.o +getcause.o +getcompare.o +getconfig.o +getcount.o +getfpccsr.o +getsr.o +gettlbasid.o +gettlbhi.o +gettlblo0.o +gettlblo1.o +gettlbpagemask.o +setcause.o +setcompare.o +setconfig.o +setcount.o +setfpccsr.o +setsr.o +settlbasid.o +getwatchlo.o +setwatchlo.o +region.o +malloc.o +free.o +getbufcount.o +getsize.o +sp.o +spgetstat.o +spsetstat.o +spsetpc.o +sprawread.o +sprawwrite.o +sprawdma.o +sptask.o +sptaskyield.o +sptaskyielded.o +sched.o +si.o +sigetstat.o +sirawread.o +sirawwrite.o +sirawdma.o +siacs.o +crc.o +clearattribute.o +color.o +hide.o +setattribute.o +show.o +sprite.o +spriteex.o +spriteex2.o +spscale.o +createthread.o +destroythread.o +getthreadid.o +getthreadpri.o +setthreadpri.o +startthread.o +stopthread.o +thread.o +yieldthread.o +getactivequeue.o +gettime.o +settime.o +settimer.o +stoptimer.o +timerintr.o +maptlb.o +probetlb.o +maptlbrdb.o +unmaptlb.o +unmaptlball.o +vi.o +vigetcurrcontext.o +vigetfield.o +vigetcurrframebuf.o +vigetnextframebuf.o +vigetline.o +vigetmode.o +vigetnextcontext.o +vigetstat.o +vimgr.o +visetevent.o +visetmode.o +visetspecial.o +visetxscale.o +visetyscale.o +viswapbuf.o +viswapcontext.o +vitbl.o +viblack.o +virepeatline.o +vifade.o +viextendvstart.o +vimodentsclpn1.o +vimodentsclpf1.o +vimodentsclan1.o +vimodentsclaf1.o +vimodentsclpn2.o +vimodentsclpf2.o +vimodentsclan2.o +vimodentsclaf2.o +vimodentschpn1.o +vimodentschpf1.o +vimodentschan1.o +vimodentschaf1.o +vimodentschpn2.o +vimodentschpf2.o +vimodepallpn1.o +vimodepallpf1.o +vimodepallan1.o +vimodepallaf1.o +vimodepallpn2.o +vimodepallpf2.o +vimodepallan2.o +vimodepallaf2.o +vimodepalhpn1.o +vimodepalhpf1.o +vimodepalhan1.o +vimodepalhaf1.o +vimodepalhpn2.o +vimodepalhpf2.o +vimodempallpn1.o +vimodempallpf1.o +vimodempallan1.o +vimodempallaf1.o +vimodempallpn2.o +vimodempallpf2.o +vimodempallan2.o +vimodempallaf2.o +vimodempalhpn1.o +vimodempalhpf1.o +vimodempalhan1.o +vimodempalhaf1.o +vimodempalhpn2.o +vimodempalhpf2.o +vimodefpallpn1.o +vimodefpallpf1.o +vimodefpallan1.o +vimodefpallaf1.o +vimodefpallpn2.o +vimodefpallpf2.o +vimodefpallan2.o +vimodefpallaf2.o +vimodefpalhpn1.o +vimodefpalhpf1.o +vimodefpalhan1.o +vimodefpalhaf1.o +vimodefpalhpn2.o +vimodefpalhpf2.o +mtxident.o +mtxidentf.o +mtxf2l.o +mtxl2f.o +mtxcatf.o +scale.o +scalef.o +normalize.o +translate.o +translatef.o +mtxcatl.o +mtxxfml.o +mtxxfmf.o +rotate.o +gbpakinit.o +gbpakgetstatus.o +gbpaksetbank.o +gbpakgetbank.o +gbpakpower.o +gbpakreadwrite.o +gbpakreadid.o +gbpakcheckconnector.o +motor.o +pfsreformat.o +pfschecker.o +pfsinit.o +pfsallocatefile.o +pfsdeletefile.o +pfsreadwritefile.o +pfsfilestate.o +pfssearchfile.o +pfssetlabel.o +pfsgetlabel.o +pfsisplug.o +pfsfreeblocks.o +pfsnumfiles.o +pfsinitpak.o +pfsrepairid.o +pfsgetstatus.o +pfsselectbank.o +contpfs.o +contramread.o +contramwrite.o +parameters.o +afterprenmi.o +getmemsize.o +initialize.o diff --git a/lib/ultralib/base/K/libultra.txt b/lib/ultralib/base/K/libultra.txt new file mode 100644 index 0000000..4048e29 --- /dev/null +++ b/lib/ultralib/base/K/libultra.txt @@ -0,0 +1,468 @@ +ai.o +aigetlen.o +aigetstat.o +aisetfreq.o +aisetnextbuf.o +drvrNew.o +load.o +auxbus.o +bnkf.o +env.o +event.o +filter.o +mainbus.o +resample.o +reverb.o +save.o +seq.o +sl.o +heapcheck.o +heapinit.o +heapalloc.o +copy.o +seqpdelete.o +seqpgetfxmix.o +seqpgetpan.o +seqpgetchlvol.o +seqpgetpriority.o +seqpgetprogram.o +seqpgetseq.o +seqpgettempo.o +seqpgetvol.o +seqpgetstate.o +seqploop.o +seqpplay.o +seqpsendmidi.o +seqpsetbank.o +seqpsetfxmix.o +seqpsetpan.o +seqpsetchlvol.o +seqpsetpriority.o +seqpsetprogram.o +seqpsetseq.o +seqpsettempo.o +seqpsetvol.o +seqpstop.o +seqplayer.o +cseq.o +cspdelete.o +cspgetfxmix.o +cspgetpan.o +cspgetchlvol.o +cspgetpriority.o +cspgetprogram.o +cspgetseq.o +cspgettempo.o +cspgetvol.o +cspgetstate.o +cspplay.o +cspsendmidi.o +cspsetbank.o +cspsetfxmix.o +cspsetpan.o +cspsetchlvol.o +cspsetpriority.o +cspsetprogram.o +cspsetseq.o +cspsettempo.o +cspsetvol.o +cspstop.o +csplayer.o +sndplayer.o +sndpdelete.o +sndpallocate.o +sndpdeallocate.o +sndpsetsound.o +sndpplay.o +sndpplayat.o +sndpgetsound.o +sndpstop.o +sndpgetstate.o +sndpsetpitch.o +sndpsetpriority.o +sndpsetvol.o +sndpsetpan.o +sndpsetfxmix.o +synthesizer.o +syndelete.o +synaddplayer.o +synremoveplayer.o +synfreevoice.o +synallocvoice.o +synstopvoice.o +synstartvoice.o +synstartvoiceparam.o +synsetpitch.o +synsetvol.o +synsetfxmix.o +synsetpan.o +syngetpriority.o +synsetpriority.o +synallocfx.o +synfreefx.o +syngetfxref.o +synsetfxparam.o +cents2ratio.o +parse_abi.o +invaldcache.o +invalicache.o +writebackdcache.o +writebackdcacheall.o +contquery.o +contreaddata.o +contreset.o +controller.o +contsetch.o +physicaltovirtual.o +virtualtophysical.o +assertbreak.o +atomic.o +kdebugserver.o +syncputchars.o +assert.o +profile.o +threadprofile.o +threadprofileclear.o +threadprofileinit.o +threadprofilereadcount.o +threadprofilereadtime.o +threadprofilestart.o +threadprofilestop.o +giorawinterrupt.o +giointerrupt.o +gt.o +dumpturbo.o +libm_vals.o +sqrtf.o +align.o +cosf.o +coss.o +frustum.o +guLoadTile_bug.o +loadtextureblockmipmap.o +lookat.o +lookathil.o +lookatref.o +lookatstereo.o +ortho.o +perspective.o +position.o +poslight.o +poslighthil.o +random.o +rotateRPY.o +sinf.o +sins.o +us2dex.o +us2dex_emu.o +us2dex2_emu.o +usprite.o +parse_rdp.o +parse_gbi.o +dump_gbi.o +parse_string.o +rdbsend.o +initrdb.o +ackramromread.o +ackramromwrite.o +host_ptn64.o +readhost.o +testhost.o +writehost.o +bcmp.o +bcopy.o +bzero.o +ll.o +llcvt.o +string.o +ldiv.o +llbit.o +xlitob.o +xldtob.o +xprintf.o +sprintf.o +syncprintf.o +delay.o +log.o +logfloat.o +createmesgqueue.o +jammesg.o +recvmesg.o +sendmesg.o +seteventmesg.o +dp.o +dpgetstat.o +dpsetstat.o +dpsetnextbuf.o +dpctr.o +getcause.o +getcompare.o +getconfig.o +getcount.o +getfpccsr.o +getsr.o +gettlbasid.o +gettlbhi.o +gettlblo0.o +gettlblo1.o +gettlbpagemask.o +setcause.o +setcompare.o +setconfig.o +setcount.o +setfpccsr.o +setsr.o +settlbasid.o +getwatchlo.o +setwatchlo.o +region.o +malloc.o +free.o +getbufcount.o +getsize.o +printregion.o +rmonrcp.o +rmonbrk.o +rmoncmds.o +rmonmem.o +rmonmisc.o +rmonprint.o +rmonregs.o +rmontask.o +rmonmain.o +rmonsio.o +sp.o +spgetstat.o +spsetstat.o +spsetpc.o +sprawread.o +sprawwrite.o +sprawdma.o +sptask.o +sptaskyield.o +sptaskyielded.o +sched.o +si.o +sigetstat.o +sirawread.o +sirawwrite.o +sirawdma.o +siacs.o +crc.o +clearattribute.o +color.o +hide.o +setattribute.o +show.o +sprite.o +spriteEX.o +spriteEX2.o +spscale.o +createthread.o +destroythread.o +getthreadid.o +getthreadpri.o +setthreadpri.o +startthread.o +stopthread.o +thread.o +yieldthread.o +getactivequeue.o +gettime.o +settime.o +settimer.o +stoptimer.o +timerintr.o +maptlb.o +probetlb.o +maptlbrdb.o +unmaptlb.o +unmaptlball.o +vi.o +vigetcurrcontext.o +vigetfield.o +vigetcurrframebuf.o +vigetnextframebuf.o +vigetline.o +vigetmode.o +vigetnextcontext.o +vigetstat.o +vimgr.o +visetevent.o +visetmode.o +visetspecial.o +visetxscale.o +visetyscale.o +viswapbuf.o +viswapcontext.o +vitbl.o +viblack.o +virepeatline.o +vifade.o +viextendvstart.o +vimodentsclpn1.o +vimodentsclpf1.o +vimodentsclan1.o +vimodentsclaf1.o +vimodentsclpn2.o +vimodentsclpf2.o +vimodentsclan2.o +vimodentsclaf2.o +vimodentschpn1.o +vimodentschpf1.o +vimodentschan1.o +vimodentschaf1.o +vimodentschpn2.o +vimodentschpf2.o +vimodepallpn1.o +vimodepallpf1.o +vimodepallan1.o +vimodepallaf1.o +vimodepallpn2.o +vimodepallpf2.o +vimodepallan2.o +vimodepallaf2.o +vimodepalhpn1.o +vimodepalhpf1.o +vimodepalhan1.o +vimodepalhaf1.o +vimodepalhpn2.o +vimodepalhpf2.o +vimodempallpn1.o +vimodempallpf1.o +vimodempallan1.o +vimodempallaf1.o +vimodempallpn2.o +vimodempallpf2.o +vimodempallan2.o +vimodempallaf2.o +vimodempalhpn1.o +vimodempalhpf1.o +vimodempalhan1.o +vimodempalhaf1.o +vimodempalhpn2.o +vimodempalhpf2.o +vimodefpallpn1.o +vimodefpallpf1.o +vimodefpallan1.o +vimodefpallaf1.o +vimodefpallpn2.o +vimodefpallpf2.o +vimodefpallan2.o +vimodefpallaf2.o +vimodefpalhpn1.o +vimodefpalhpf1.o +vimodefpalhan1.o +vimodefpalhaf1.o +vimodefpalhpn2.o +vimodefpalhpf2.o +mtxident.o +mtxidentf.o +mtxf2l.o +mtxl2f.o +mtxcatf.o +scale.o +scalef.o +normalize.o +translate.o +translatef.o +mtxcatl.o +mtxxfml.o +mtxxfmf.o +rotate.o +initialize_isv.o +monutil.o +conteepread.o +conteepwrite.o +conteepprobe.o +conteeplongwrite.o +conteeplongread.o +getcurrfaultthread.o +getnextfaultthread.o +exceptasm.o +interrupt.o +setintmask.o +getintmask.o +sethwinterrupt.o +gethwinterrupt.o +setpiinterrupt.o +setglobalintmask.o +resetglobalintmask.o +pi.o +pigettype.o +pigetstat.o +pirawread.o +pirawwrite.o +pirawdma.o +pigetcmdq.o +pimgr.o +epirawread.o +epirawwrite.o +epirawdma.o +epiwrite.o +epiread.o +epidma.o +epigettype.o +epilinkhandle.o +cartrominit.o +devmgr.o +piacs.o +piwrite.o +piread.o +pidma.o +voicecontrolgain.o +voiceinit.o +voicecheckresult.o +voicecontwrite20.o +voicemaskdictionary.o +voicecheckword.o +voicecontwrite4.o +voicesetadconverter.o +voicecleardictionary.o +voicecrc.o +voicesetword.o +voicecontread2.o +voicegetreaddata.o +voicestartreaddata.o +voicecontread36.o +voicegetstatus.o +voicestopreaddata.o +voicecountsyllables.o +contchannelreset.o +gbpakinit.o +gbpakgetstatus.o +gbpaksetbank.o +gbpakgetbank.o +gbpakpower.o +gbpakreadwrite.o +gbpakreadid.o +gbpakcheckconnector.o +motor.o +pfsreformat.o +pfschecker.o +pfsinit.o +pfsallocatefile.o +pfsdeletefile.o +pfsreadwritefile.o +pfsfilestate.o +pfssearchfile.o +pfssetlabel.o +pfsgetlabel.o +pfsisplug.o +pfsfreeblocks.o +pfsnumfiles.o +pfsinitpak.o +pfsrepairid.o +pfsgetstatus.o +pfsselectbank.o +contpfs.o +contramread.o +contramwrite.o +parameters.o +afterprenmi.o +getmemsize.o +initialize.o +initialize_kmc.o +initialize_msp.o +initialize_emu.o +exit.o diff --git a/lib/ultralib/base/K/libultra_d.txt b/lib/ultralib/base/K/libultra_d.txt new file mode 100644 index 0000000..3a171d0 --- /dev/null +++ b/lib/ultralib/base/K/libultra_d.txt @@ -0,0 +1,471 @@ +ai.o +aigetlen.o +aigetstat.o +aisetfreq.o +aisetnextbuf.o +drvrNew.o +load.o +auxbus.o +bnkf.o +env.o +event.o +filter.o +mainbus.o +resample.o +reverb.o +save.o +seq.o +sl.o +heapcheck.o +heapinit.o +heapalloc.o +copy.o +seqpdelete.o +seqpgetfxmix.o +seqpgetpan.o +seqpgetchlvol.o +seqpgetpriority.o +seqpgetprogram.o +seqpgetseq.o +seqpgettempo.o +seqpgetvol.o +seqpgetstate.o +seqploop.o +seqpplay.o +seqpsendmidi.o +seqpsetbank.o +seqpsetfxmix.o +seqpsetpan.o +seqpsetchlvol.o +seqpsetpriority.o +seqpsetprogram.o +seqpsetseq.o +seqpsettempo.o +seqpsetvol.o +seqpstop.o +seqplayer.o +cseq.o +cspdelete.o +cspgetfxmix.o +cspgetpan.o +cspgetchlvol.o +cspgetpriority.o +cspgetprogram.o +cspgetseq.o +cspgettempo.o +cspgetvol.o +cspgetstate.o +cspplay.o +cspsendmidi.o +cspsetbank.o +cspsetfxmix.o +cspsetpan.o +cspsetchlvol.o +cspsetpriority.o +cspsetprogram.o +cspsetseq.o +cspsettempo.o +cspsetvol.o +cspstop.o +csplayer.o +sndplayer.o +sndpdelete.o +sndpallocate.o +sndpdeallocate.o +sndpsetsound.o +sndpplay.o +sndpplayat.o +sndpgetsound.o +sndpstop.o +sndpgetstate.o +sndpsetpitch.o +sndpsetpriority.o +sndpsetvol.o +sndpsetpan.o +sndpsetfxmix.o +synthesizer.o +syndelete.o +synaddplayer.o +synremoveplayer.o +synfreevoice.o +synallocvoice.o +synstopvoice.o +synstartvoice.o +synstartvoiceparam.o +synsetpitch.o +synsetvol.o +synsetfxmix.o +synsetpan.o +syngetpriority.o +synsetpriority.o +synallocfx.o +synfreefx.o +syngetfxref.o +synsetfxparam.o +cents2ratio.o +parse_abi.o +invaldcache.o +invalicache.o +writebackdcache.o +writebackdcacheall.o +contquery.o +contreaddata.o +contreset.o +controller.o +contsetch.o +physicaltovirtual.o +virtualtophysical.o +assertbreak.o +atomic.o +kdebugserver.o +syncputchars.o +assert.o +profile.o +threadprofile.o +threadprofileclear.o +threadprofileinit.o +threadprofilereadcount.o +threadprofilereadtime.o +threadprofilestart.o +threadprofilestop.o +giorawinterrupt.o +giointerrupt.o +gt.o +dumpturbo.o +libm_vals.o +sqrtf.o +align.o +cosf.o +coss.o +frustum.o +guLoadTile_bug.o +loadtextureblockmipmap.o +lookat.o +lookathil.o +lookatref.o +lookatstereo.o +ortho.o +perspective.o +position.o +poslight.o +poslighthil.o +random.o +rotateRPY.o +sinf.o +sins.o +us2dex.o +us2dex_emu.o +us2dex2_emu.o +usprite.o +parse_rdp.o +parse_gbi.o +dump_gbi.o +parse_string.o +rdbsend.o +initrdb.o +ackramromread.o +ackramromwrite.o +host_ptn64.o +readhost.o +testhost.o +writehost.o +bcmp.o +bcopy.o +bzero.o +ll.o +llcvt.o +string.o +ldiv.o +llbit.o +xlitob.o +xldtob.o +xprintf.o +sprintf.o +syncprintf.o +delay.o +log.o +logfloat.o +createmesgqueue.o +jammesg.o +recvmesg.o +sendmesg.o +seteventmesg.o +dp.o +dpgetstat.o +dpsetstat.o +dpsetnextbuf.o +dpctr.o +getcause.o +getcompare.o +getconfig.o +getcount.o +getfpccsr.o +getsr.o +gettlbasid.o +gettlbhi.o +gettlblo0.o +gettlblo1.o +gettlbpagemask.o +setcause.o +setcompare.o +setconfig.o +setcount.o +setfpccsr.o +setsr.o +settlbasid.o +getwatchlo.o +setwatchlo.o +region.o +malloc.o +free.o +getbufcount.o +getsize.o +printregion.o +rmonrcp.o +rmonbrk.o +rmoncmds.o +rmonmem.o +rmonmisc.o +rmonprint.o +rmonregs.o +rmontask.o +rmonmain.o +rmonsio.o +sp.o +spgetstat.o +spsetstat.o +spsetpc.o +sprawread.o +sprawwrite.o +sprawdma.o +sptask.o +sptaskyield.o +sptaskyielded.o +sched.o +si.o +sigetstat.o +sirawread.o +sirawwrite.o +sirawdma.o +siacs.o +crc.o +clearattribute.o +color.o +hide.o +setattribute.o +show.o +sprite.o +spriteEX.o +spriteEX2.o +spscale.o +createthread.o +destroythread.o +getthreadid.o +getthreadpri.o +setthreadpri.o +startthread.o +stopthread.o +thread.o +yieldthread.o +getactivequeue.o +gettime.o +settime.o +settimer.o +stoptimer.o +timerintr.o +maptlb.o +probetlb.o +maptlbrdb.o +unmaptlb.o +unmaptlball.o +vi.o +vigetcurrcontext.o +vigetfield.o +vigetcurrframebuf.o +vigetnextframebuf.o +vigetline.o +vigetmode.o +vigetnextcontext.o +vigetstat.o +vimgr.o +visetevent.o +visetmode.o +visetspecial.o +visetxscale.o +visetyscale.o +viswapbuf.o +viswapcontext.o +vitbl.o +viblack.o +virepeatline.o +vifade.o +viextendvstart.o +vimodentsclpn1.o +vimodentsclpf1.o +vimodentsclan1.o +vimodentsclaf1.o +vimodentsclpn2.o +vimodentsclpf2.o +vimodentsclan2.o +vimodentsclaf2.o +vimodentschpn1.o +vimodentschpf1.o +vimodentschan1.o +vimodentschaf1.o +vimodentschpn2.o +vimodentschpf2.o +vimodepallpn1.o +vimodepallpf1.o +vimodepallan1.o +vimodepallaf1.o +vimodepallpn2.o +vimodepallpf2.o +vimodepallan2.o +vimodepallaf2.o +vimodepalhpn1.o +vimodepalhpf1.o +vimodepalhan1.o +vimodepalhaf1.o +vimodepalhpn2.o +vimodepalhpf2.o +vimodempallpn1.o +vimodempallpf1.o +vimodempallan1.o +vimodempallaf1.o +vimodempallpn2.o +vimodempallpf2.o +vimodempallan2.o +vimodempallaf2.o +vimodempalhpn1.o +vimodempalhpf1.o +vimodempalhan1.o +vimodempalhaf1.o +vimodempalhpn2.o +vimodempalhpf2.o +vimodefpallpn1.o +vimodefpallpf1.o +vimodefpallan1.o +vimodefpallaf1.o +vimodefpallpn2.o +vimodefpallpf2.o +vimodefpallan2.o +vimodefpallaf2.o +vimodefpalhpn1.o +vimodefpalhpf1.o +vimodefpalhan1.o +vimodefpalhaf1.o +vimodefpalhpn2.o +vimodefpalhpf2.o +mtxident.o +mtxidentf.o +mtxf2l.o +mtxl2f.o +mtxcatf.o +scale.o +scalef.o +normalize.o +translate.o +translatef.o +mtxcatl.o +mtxxfml.o +mtxxfmf.o +rotate.o +initialize_isv.o +monutil.o +conteepread.o +conteepwrite.o +conteepprobe.o +conteeplongwrite.o +conteeplongread.o +errorasm.o +getcurrfaultthread.o +getnextfaultthread.o +seterrorhandler.o +commonerror.o +exceptasm.o +interrupt.o +setintmask.o +getintmask.o +sethwinterrupt.o +gethwinterrupt.o +setpiinterrupt.o +setglobalintmask.o +resetglobalintmask.o +pi.o +pigettype.o +pigetstat.o +pirawread.o +pirawwrite.o +pirawdma.o +pigetcmdq.o +pimgr.o +epirawread.o +epirawwrite.o +epirawdma.o +epiwrite.o +epiread.o +epidma.o +epigettype.o +epilinkhandle.o +cartrominit.o +devmgr.o +piacs.o +piwrite.o +piread.o +pidma.o +voicecontrolgain.o +voiceinit.o +voicecheckresult.o +voicecontwrite20.o +voicemaskdictionary.o +voicecheckword.o +voicecontwrite4.o +voicesetadconverter.o +voicecleardictionary.o +voicecrc.o +voicesetword.o +voicecontread2.o +voicegetreaddata.o +voicestartreaddata.o +voicecontread36.o +voicegetstatus.o +voicestopreaddata.o +voicecountsyllables.o +contchannelreset.o +gbpakinit.o +gbpakgetstatus.o +gbpaksetbank.o +gbpakgetbank.o +gbpakpower.o +gbpakreadwrite.o +gbpakreadid.o +gbpakcheckconnector.o +motor.o +pfsreformat.o +pfschecker.o +pfsinit.o +pfsallocatefile.o +pfsdeletefile.o +pfsreadwritefile.o +pfsfilestate.o +pfssearchfile.o +pfssetlabel.o +pfsgetlabel.o +pfsisplug.o +pfsfreeblocks.o +pfsnumfiles.o +pfsinitpak.o +pfsrepairid.o +pfsgetstatus.o +pfsselectbank.o +contpfs.o +contramread.o +contramwrite.o +parameters.o +afterprenmi.o +getmemsize.o +initialize.o +initialize_kmc.o +initialize_msp.o +initialize_emu.o +exit.o diff --git a/lib/ultralib/base/K/libultra_rom.txt b/lib/ultralib/base/K/libultra_rom.txt new file mode 100644 index 0000000..d890186 --- /dev/null +++ b/lib/ultralib/base/K/libultra_rom.txt @@ -0,0 +1,427 @@ +ai.o +aigetlen.o +aigetstat.o +aisetfreq.o +aisetnextbuf.o +drvrNew.o +load.o +auxbus.o +bnkf.o +env.o +event.o +filter.o +mainbus.o +resample.o +reverb.o +save.o +seq.o +sl.o +heapcheck.o +heapinit.o +heapalloc.o +copy.o +seqpdelete.o +seqpgetfxmix.o +seqpgetpan.o +seqpgetchlvol.o +seqpgetpriority.o +seqpgetprogram.o +seqpgetseq.o +seqpgettempo.o +seqpgetvol.o +seqpgetstate.o +seqploop.o +seqpplay.o +seqpsendmidi.o +seqpsetbank.o +seqpsetfxmix.o +seqpsetpan.o +seqpsetchlvol.o +seqpsetpriority.o +seqpsetprogram.o +seqpsetseq.o +seqpsettempo.o +seqpsetvol.o +seqpstop.o +seqplayer.o +cseq.o +cspdelete.o +cspgetfxmix.o +cspgetpan.o +cspgetchlvol.o +cspgetpriority.o +cspgetprogram.o +cspgetseq.o +cspgettempo.o +cspgetvol.o +cspgetstate.o +cspplay.o +cspsendmidi.o +cspsetbank.o +cspsetfxmix.o +cspsetpan.o +cspsetchlvol.o +cspsetpriority.o +cspsetprogram.o +cspsetseq.o +cspsettempo.o +cspsetvol.o +cspstop.o +csplayer.o +sndplayer.o +sndpdelete.o +sndpallocate.o +sndpdeallocate.o +sndpsetsound.o +sndpplay.o +sndpplayat.o +sndpgetsound.o +sndpstop.o +sndpgetstate.o +sndpsetpitch.o +sndpsetpriority.o +sndpsetvol.o +sndpsetpan.o +sndpsetfxmix.o +synthesizer.o +syndelete.o +synaddplayer.o +synremoveplayer.o +synfreevoice.o +synallocvoice.o +synstopvoice.o +synstartvoice.o +synstartvoiceparam.o +synsetpitch.o +synsetvol.o +synsetfxmix.o +synsetpan.o +syngetpriority.o +synsetpriority.o +synallocfx.o +synfreefx.o +syngetfxref.o +synsetfxparam.o +cents2ratio.o +parse_abi.o +invaldcache.o +invalicache.o +writebackdcache.o +writebackdcacheall.o +contquery.o +contreaddata.o +contreset.o +controller.o +contsetch.o +physicaltovirtual.o +virtualtophysical.o +atomic.o +kdebugserver.o +syncputchars.o +giorawinterrupt.o +giointerrupt.o +gt.o +libm_vals.o +sqrtf.o +align.o +cosf.o +coss.o +frustum.o +guLoadTile_bug.o +loadtextureblockmipmap.o +lookat.o +lookathil.o +lookatref.o +lookatstereo.o +ortho.o +perspective.o +position.o +poslight.o +poslighthil.o +random.o +rotateRPY.o +sinf.o +sins.o +us2dex.o +us2dex_emu.o +us2dex2_emu.o +usprite.o +rdbsend.o +initrdb.o +bcmp.o +bcopy.o +bzero.o +ll.o +llcvt.o +string.o +ldiv.o +llbit.o +xlitob.o +xldtob.o +xprintf.o +sprintf.o +syncprintf.o +createmesgqueue.o +jammesg.o +recvmesg.o +sendmesg.o +seteventmesg.o +dp.o +dpgetstat.o +dpsetstat.o +dpsetnextbuf.o +dpctr.o +getcause.o +getcompare.o +getconfig.o +getcount.o +getfpccsr.o +getsr.o +gettlbasid.o +gettlbhi.o +gettlblo0.o +gettlblo1.o +gettlbpagemask.o +setcause.o +setcompare.o +setconfig.o +setcount.o +setfpccsr.o +setsr.o +settlbasid.o +getwatchlo.o +setwatchlo.o +region.o +malloc.o +free.o +getbufcount.o +getsize.o +sp.o +spgetstat.o +spsetstat.o +spsetpc.o +sprawread.o +sprawwrite.o +sprawdma.o +sptask.o +sptaskyield.o +sptaskyielded.o +sched.o +si.o +sigetstat.o +sirawread.o +sirawwrite.o +sirawdma.o +siacs.o +crc.o +clearattribute.o +color.o +hide.o +setattribute.o +show.o +sprite.o +spriteEX.o +spriteEX2.o +spscale.o +createthread.o +destroythread.o +getthreadid.o +getthreadpri.o +setthreadpri.o +startthread.o +stopthread.o +thread.o +yieldthread.o +getactivequeue.o +gettime.o +settime.o +settimer.o +stoptimer.o +timerintr.o +maptlb.o +probetlb.o +maptlbrdb.o +unmaptlb.o +unmaptlball.o +vi.o +vigetcurrcontext.o +vigetfield.o +vigetcurrframebuf.o +vigetnextframebuf.o +vigetline.o +vigetmode.o +vigetnextcontext.o +vigetstat.o +vimgr.o +visetevent.o +visetmode.o +visetspecial.o +visetxscale.o +visetyscale.o +viswapbuf.o +viswapcontext.o +vitbl.o +viblack.o +virepeatline.o +vifade.o +viextendvstart.o +vimodentsclpn1.o +vimodentsclpf1.o +vimodentsclan1.o +vimodentsclaf1.o +vimodentsclpn2.o +vimodentsclpf2.o +vimodentsclan2.o +vimodentsclaf2.o +vimodentschpn1.o +vimodentschpf1.o +vimodentschan1.o +vimodentschaf1.o +vimodentschpn2.o +vimodentschpf2.o +vimodepallpn1.o +vimodepallpf1.o +vimodepallan1.o +vimodepallaf1.o +vimodepallpn2.o +vimodepallpf2.o +vimodepallan2.o +vimodepallaf2.o +vimodepalhpn1.o +vimodepalhpf1.o +vimodepalhan1.o +vimodepalhaf1.o +vimodepalhpn2.o +vimodepalhpf2.o +vimodempallpn1.o +vimodempallpf1.o +vimodempallan1.o +vimodempallaf1.o +vimodempallpn2.o +vimodempallpf2.o +vimodempallan2.o +vimodempallaf2.o +vimodempalhpn1.o +vimodempalhpf1.o +vimodempalhan1.o +vimodempalhaf1.o +vimodempalhpn2.o +vimodempalhpf2.o +vimodefpallpn1.o +vimodefpallpf1.o +vimodefpallan1.o +vimodefpallaf1.o +vimodefpallpn2.o +vimodefpallpf2.o +vimodefpallan2.o +vimodefpallaf2.o +vimodefpalhpn1.o +vimodefpalhpf1.o +vimodefpalhan1.o +vimodefpalhaf1.o +vimodefpalhpn2.o +vimodefpalhpf2.o +mtxident.o +mtxidentf.o +mtxf2l.o +mtxl2f.o +mtxcatf.o +scale.o +scalef.o +normalize.o +translate.o +translatef.o +mtxcatl.o +mtxxfml.o +mtxxfmf.o +rotate.o +conteepread.o +conteepwrite.o +conteepprobe.o +conteeplongwrite.o +conteeplongread.o +getcurrfaultthread.o +getnextfaultthread.o +exceptasm.o +interrupt.o +setintmask.o +getintmask.o +sethwinterrupt.o +gethwinterrupt.o +setpiinterrupt.o +setglobalintmask.o +resetglobalintmask.o +pi.o +pigettype.o +pigetstat.o +pirawread.o +pirawwrite.o +pirawdma.o +pigetcmdq.o +pimgr.o +epirawread.o +epirawwrite.o +epirawdma.o +epiwrite.o +epiread.o +epidma.o +epigettype.o +epilinkhandle.o +cartrominit.o +devmgr.o +piacs.o +piwrite.o +piread.o +pidma.o +voicecontrolgain.o +voiceinit.o +voicecheckresult.o +voicecontwrite20.o +voicemaskdictionary.o +voicecheckword.o +voicecontwrite4.o +voicesetadconverter.o +voicecleardictionary.o +voicecrc.o +voicesetword.o +voicecontread2.o +voicegetreaddata.o +voicestartreaddata.o +voicecontread36.o +voicegetstatus.o +voicestopreaddata.o +voicecountsyllables.o +contchannelreset.o +gbpakinit.o +gbpakgetstatus.o +gbpaksetbank.o +gbpakgetbank.o +gbpakpower.o +gbpakreadwrite.o +gbpakreadid.o +gbpakcheckconnector.o +motor.o +pfsreformat.o +pfschecker.o +pfsinit.o +pfsallocatefile.o +pfsdeletefile.o +pfsreadwritefile.o +pfsfilestate.o +pfssearchfile.o +pfssetlabel.o +pfsgetlabel.o +pfsisplug.o +pfsfreeblocks.o +pfsnumfiles.o +pfsinitpak.o +pfsrepairid.o +pfsgetstatus.o +pfsselectbank.o +contpfs.o +contramread.o +contramwrite.o +parameters.o +afterprenmi.o +getmemsize.o +initialize.o diff --git a/lib/ultralib/base/L/libgultra.txt b/lib/ultralib/base/L/libgultra.txt new file mode 100644 index 0000000..b4fc977 --- /dev/null +++ b/lib/ultralib/base/L/libgultra.txt @@ -0,0 +1,483 @@ +conteepread.o +conteepwrite.o +conteepprobe.o +conteeplongwrite.o +conteeplongread.o +getcurrfaultthread.o +getnextfaultthread.o +exceptasm.o +interrupt.o +setintmask.o +getintmask.o +sethwinterrupt.o +gethwinterrupt.o +setpiinterrupt.o +setglobalintmask.o +resetglobalintmask.o +pi.o +pigettype.o +pigetstat.o +pirawread.o +pirawwrite.o +pirawdma.o +pigetcmdq.o +pimgr.o +epirawread.o +epirawwrite.o +epirawdma.o +epiwrite.o +epiread.o +epidma.o +epigettype.o +epilinkhandle.o +cartrominit.o +devmgr.o +piacs.o +piwrite.o +piread.o +pidma.o +voicecontrolgain.o +voiceinit.o +voicecheckresult.o +voicecontwrite20.o +voicemaskdictionary.o +voicecheckword.o +voicecontwrite4.o +voicesetadconverter.o +voicecleardictionary.o +voicecrc.o +voicesetword.o +voicecontread2.o +voicegetreaddata.o +voicestartreaddata.o +voicecontread36.o +voicegetstatus.o +voicestopreaddata.o +voicecountsyllables.o +contchannelreset.o +flashgetaddr.o +flashreinit.o +flashchange.o +flashinit.o +flashreadstatus.o +flashreadid.o +flashclearstatus.o +flashallerase.o +flashallerasethrough.o +flashcheckeraseend.o +flashsectorerase.o +flashsectorerasethrough.o +flashwritebuffer.o +flashwritearray.o +flashreadarray.o +ai.o +aigetlen.o +aigetstat.o +aisetfreq.o +aisetnextbuf.o +drvrnew.o +load.o +auxbus.o +bnkf.o +env.o +event.o +filter.o +mainbus.o +resample.o +reverb.o +save.o +seq.o +sl.o +heapcheck.o +heapinit.o +heapalloc.o +copy.o +seqpdelete.o +seqpgetfxmix.o +seqpgetpan.o +seqpgetchlvol.o +seqpgetpriority.o +seqpgetprogram.o +seqpgetseq.o +seqpgettempo.o +seqpgetvol.o +seqpgetstate.o +seqploop.o +seqpplay.o +seqpsendmidi.o +seqpsetbank.o +seqpsetfxmix.o +seqpsetpan.o +seqpsetchlvol.o +seqpsetpriority.o +seqpsetprogram.o +seqpsetseq.o +seqpsettempo.o +seqpsetvol.o +seqpstop.o +seqplayer.o +cseq.o +cspdelete.o +cspgetfxmix.o +cspgetpan.o +cspgetchlvol.o +cspgetpriority.o +cspgetprogram.o +cspgetseq.o +cspgettempo.o +cspgetvol.o +cspgetstate.o +cspplay.o +cspsendmidi.o +cspsetbank.o +cspsetfxmix.o +cspsetpan.o +cspsetchlvol.o +cspsetpriority.o +cspsetprogram.o +cspsetseq.o +cspsettempo.o +cspsetvol.o +cspstop.o +csplayer.o +sndplayer.o +sndpdelete.o +sndpallocate.o +sndpdeallocate.o +sndpsetsound.o +sndpplay.o +sndpplayat.o +sndpgetsound.o +sndpstop.o +sndpgetstate.o +sndpsetpitch.o +sndpsetpriority.o +sndpsetvol.o +sndpsetpan.o +sndpsetfxmix.o +synthesizer.o +syndelete.o +synaddplayer.o +synremoveplayer.o +synfreevoice.o +synallocvoice.o +synstopvoice.o +synstartvoice.o +synstartvoiceparam.o +synsetpitch.o +synsetvol.o +synsetfxmix.o +synsetpan.o +syngetpriority.o +synsetpriority.o +synallocfx.o +synfreefx.o +syngetfxref.o +synsetfxparam.o +cents2ratio.o +parse_abi.o +invaldcache.o +invalicache.o +writebackdcache.o +writebackdcacheall.o +contquery.o +contreaddata.o +contreset.o +controller.o +contsetch.o +physicaltovirtual.o +virtualtophysical.o +assertbreak.o +atomic.o +kdebugserver.o +syncputchars.o +assert.o +profile.o +threadprofile.o +threadprofileclear.o +threadprofileinit.o +threadprofilereadcount.o +threadprofilereadtime.o +threadprofilestart.o +threadprofilestop.o +giorawinterrupt.o +giointerrupt.o +gt.o +dumpturbo.o +libm_vals.o +sqrtf.o +align.o +cosf.o +coss.o +frustum.o +guloadtile_bug.o +loadtextureblockmipmap.o +lookat.o +lookathil.o +lookatref.o +lookatstereo.o +ortho.o +perspective.o +position.o +poslight.o +poslighthil.o +random.o +rotaterpy.o +sinf.o +sins.o +us2dex.o +us2dex_emu.o +us2dex2_emu.o +usprite.o +parse_rdp.o +parse_gbi.o +dump_gbi.o +parse_string.o +rdbsend.o +initrdb.o +ackramromread.o +ackramromwrite.o +host_ptn64.o +readhost.o +testhost.o +writehost.o +initialize_isv.o +monutil.o +bcmp.o +bcopy.o +bzero.o +ll.o +llcvt.o +string.o +ldiv.o +llbit.o +xlitob.o +xldtob.o +xprintf.o +sprintf.o +syncprintf.o +delay.o +log.o +logfloat.o +createmesgqueue.o +jammesg.o +recvmesg.o +sendmesg.o +seteventmesg.o +dp.o +dpgetstat.o +dpsetstat.o +dpsetnextbuf.o +dpctr.o +getcause.o +getcompare.o +getconfig.o +getcount.o +getfpccsr.o +getsr.o +gettlbasid.o +gettlbhi.o +gettlblo0.o +gettlblo1.o +gettlbpagemask.o +setcause.o +setcompare.o +setconfig.o +setcount.o +setfpccsr.o +setsr.o +settlbasid.o +getwatchlo.o +setwatchlo.o +region.o +malloc.o +free.o +getbufcount.o +getsize.o +printregion.o +rmonrcp.o +rmonbrk.o +rmoncmds.o +rmonmem.o +rmonmisc.o +rmonprint.o +rmonregs.o +rmontask.o +rmonmain.o +rmonsio.o +sp.o +spgetstat.o +spsetstat.o +spsetpc.o +sprawread.o +sprawwrite.o +sprawdma.o +sptask.o +sptaskyield.o +sptaskyielded.o +sched.o +si.o +sigetstat.o +sirawread.o +sirawwrite.o +sirawdma.o +siacs.o +crc.o +clearattribute.o +color.o +hide.o +setattribute.o +show.o +sprite.o +spriteex.o +spriteex2.o +spscale.o +createthread.o +destroythread.o +getthreadid.o +getthreadpri.o +setthreadpri.o +startthread.o +stopthread.o +thread.o +yieldthread.o +getactivequeue.o +gettime.o +settime.o +settimer.o +stoptimer.o +timerintr.o +maptlb.o +probetlb.o +maptlbrdb.o +unmaptlb.o +unmaptlball.o +vi.o +vigetcurrcontext.o +vigetfield.o +vigetcurrframebuf.o +vigetnextframebuf.o +vigetline.o +vigetmode.o +vigetnextcontext.o +vigetstat.o +vimgr.o +visetevent.o +visetmode.o +visetspecial.o +visetxscale.o +visetyscale.o +viswapbuf.o +viswapcontext.o +vitbl.o +viblack.o +virepeatline.o +vifade.o +viextendvstart.o +vimodentsclpn1.o +vimodentsclpf1.o +vimodentsclan1.o +vimodentsclaf1.o +vimodentsclpn2.o +vimodentsclpf2.o +vimodentsclan2.o +vimodentsclaf2.o +vimodentschpn1.o +vimodentschpf1.o +vimodentschan1.o +vimodentschaf1.o +vimodentschpn2.o +vimodentschpf2.o +vimodepallpn1.o +vimodepallpf1.o +vimodepallan1.o +vimodepallaf1.o +vimodepallpn2.o +vimodepallpf2.o +vimodepallan2.o +vimodepallaf2.o +vimodepalhpn1.o +vimodepalhpf1.o +vimodepalhan1.o +vimodepalhaf1.o +vimodepalhpn2.o +vimodepalhpf2.o +vimodempallpn1.o +vimodempallpf1.o +vimodempallan1.o +vimodempallaf1.o +vimodempallpn2.o +vimodempallpf2.o +vimodempallan2.o +vimodempallaf2.o +vimodempalhpn1.o +vimodempalhpf1.o +vimodempalhan1.o +vimodempalhaf1.o +vimodempalhpn2.o +vimodempalhpf2.o +vimodefpallpn1.o +vimodefpallpf1.o +vimodefpallan1.o +vimodefpallaf1.o +vimodefpallpn2.o +vimodefpallpf2.o +vimodefpallan2.o +vimodefpallaf2.o +vimodefpalhpn1.o +vimodefpalhpf1.o +vimodefpalhan1.o +vimodefpalhaf1.o +vimodefpalhpn2.o +vimodefpalhpf2.o +mtxident.o +mtxidentf.o +mtxf2l.o +mtxl2f.o +mtxcatf.o +scale.o +scalef.o +normalize.o +translate.o +translatef.o +mtxcatl.o +mtxxfml.o +mtxxfmf.o +rotate.o +gbpakinit.o +gbpakgetstatus.o +gbpaksetbank.o +gbpakgetbank.o +gbpakpower.o +gbpakreadwrite.o +gbpakreadid.o +gbpakcheckconnector.o +motor.o +pfsreformat.o +pfschecker.o +pfsinit.o +pfsallocatefile.o +pfsdeletefile.o +pfsreadwritefile.o +pfsfilestate.o +pfssearchfile.o +pfssetlabel.o +pfsgetlabel.o +pfsisplug.o +pfsfreeblocks.o +pfsnumfiles.o +pfsinitpak.o +pfsrepairid.o +pfsgetstatus.o +pfsselectbank.o +contpfs.o +contramread.o +contramwrite.o +parameters.o +afterprenmi.o +getmemsize.o +initialize.o +initialize_kmc.o +initialize_msp.o +initialize_emu.o +exit.o diff --git a/lib/ultralib/base/L/libgultra_d.txt b/lib/ultralib/base/L/libgultra_d.txt new file mode 100644 index 0000000..78c619e --- /dev/null +++ b/lib/ultralib/base/L/libgultra_d.txt @@ -0,0 +1,486 @@ +conteepread.o +conteepwrite.o +conteepprobe.o +conteeplongwrite.o +conteeplongread.o +errorasm.o +getcurrfaultthread.o +getnextfaultthread.o +seterrorhandler.o +commonerror.o +exceptasm.o +interrupt.o +setintmask.o +getintmask.o +sethwinterrupt.o +gethwinterrupt.o +setpiinterrupt.o +setglobalintmask.o +resetglobalintmask.o +pi.o +pigettype.o +pigetstat.o +pirawread.o +pirawwrite.o +pirawdma.o +pigetcmdq.o +pimgr.o +epirawread.o +epirawwrite.o +epirawdma.o +epiwrite.o +epiread.o +epidma.o +epigettype.o +epilinkhandle.o +cartrominit.o +devmgr.o +piacs.o +piwrite.o +piread.o +pidma.o +voicecontrolgain.o +voiceinit.o +voicecheckresult.o +voicecontwrite20.o +voicemaskdictionary.o +voicecheckword.o +voicecontwrite4.o +voicesetadconverter.o +voicecleardictionary.o +voicecrc.o +voicesetword.o +voicecontread2.o +voicegetreaddata.o +voicestartreaddata.o +voicecontread36.o +voicegetstatus.o +voicestopreaddata.o +voicecountsyllables.o +contchannelreset.o +flashgetaddr.o +flashreinit.o +flashchange.o +flashinit.o +flashreadstatus.o +flashreadid.o +flashclearstatus.o +flashallerase.o +flashallerasethrough.o +flashcheckeraseend.o +flashsectorerase.o +flashsectorerasethrough.o +flashwritebuffer.o +flashwritearray.o +flashreadarray.o +ai.o +aigetlen.o +aigetstat.o +aisetfreq.o +aisetnextbuf.o +drvrnew.o +load.o +auxbus.o +bnkf.o +env.o +event.o +filter.o +mainbus.o +resample.o +reverb.o +save.o +seq.o +sl.o +heapcheck.o +heapinit.o +heapalloc.o +copy.o +seqpdelete.o +seqpgetfxmix.o +seqpgetpan.o +seqpgetchlvol.o +seqpgetpriority.o +seqpgetprogram.o +seqpgetseq.o +seqpgettempo.o +seqpgetvol.o +seqpgetstate.o +seqploop.o +seqpplay.o +seqpsendmidi.o +seqpsetbank.o +seqpsetfxmix.o +seqpsetpan.o +seqpsetchlvol.o +seqpsetpriority.o +seqpsetprogram.o +seqpsetseq.o +seqpsettempo.o +seqpsetvol.o +seqpstop.o +seqplayer.o +cseq.o +cspdelete.o +cspgetfxmix.o +cspgetpan.o +cspgetchlvol.o +cspgetpriority.o +cspgetprogram.o +cspgetseq.o +cspgettempo.o +cspgetvol.o +cspgetstate.o +cspplay.o +cspsendmidi.o +cspsetbank.o +cspsetfxmix.o +cspsetpan.o +cspsetchlvol.o +cspsetpriority.o +cspsetprogram.o +cspsetseq.o +cspsettempo.o +cspsetvol.o +cspstop.o +csplayer.o +sndplayer.o +sndpdelete.o +sndpallocate.o +sndpdeallocate.o +sndpsetsound.o +sndpplay.o +sndpplayat.o +sndpgetsound.o +sndpstop.o +sndpgetstate.o +sndpsetpitch.o +sndpsetpriority.o +sndpsetvol.o +sndpsetpan.o +sndpsetfxmix.o +synthesizer.o +syndelete.o +synaddplayer.o +synremoveplayer.o +synfreevoice.o +synallocvoice.o +synstopvoice.o +synstartvoice.o +synstartvoiceparam.o +synsetpitch.o +synsetvol.o +synsetfxmix.o +synsetpan.o +syngetpriority.o +synsetpriority.o +synallocfx.o +synfreefx.o +syngetfxref.o +synsetfxparam.o +cents2ratio.o +parse_abi.o +invaldcache.o +invalicache.o +writebackdcache.o +writebackdcacheall.o +contquery.o +contreaddata.o +contreset.o +controller.o +contsetch.o +physicaltovirtual.o +virtualtophysical.o +assertbreak.o +atomic.o +kdebugserver.o +syncputchars.o +assert.o +profile.o +threadprofile.o +threadprofileclear.o +threadprofileinit.o +threadprofilereadcount.o +threadprofilereadtime.o +threadprofilestart.o +threadprofilestop.o +giorawinterrupt.o +giointerrupt.o +gt.o +dumpturbo.o +libm_vals.o +sqrtf.o +align.o +cosf.o +coss.o +frustum.o +guloadtile_bug.o +loadtextureblockmipmap.o +lookat.o +lookathil.o +lookatref.o +lookatstereo.o +ortho.o +perspective.o +position.o +poslight.o +poslighthil.o +random.o +rotaterpy.o +sinf.o +sins.o +us2dex.o +us2dex_emu.o +us2dex2_emu.o +usprite.o +parse_rdp.o +parse_gbi.o +dump_gbi.o +parse_string.o +rdbsend.o +initrdb.o +ackramromread.o +ackramromwrite.o +host_ptn64.o +readhost.o +testhost.o +writehost.o +initialize_isv.o +monutil.o +bcmp.o +bcopy.o +bzero.o +ll.o +llcvt.o +string.o +ldiv.o +llbit.o +xlitob.o +xldtob.o +xprintf.o +sprintf.o +syncprintf.o +delay.o +log.o +logfloat.o +createmesgqueue.o +jammesg.o +recvmesg.o +sendmesg.o +seteventmesg.o +dp.o +dpgetstat.o +dpsetstat.o +dpsetnextbuf.o +dpctr.o +getcause.o +getcompare.o +getconfig.o +getcount.o +getfpccsr.o +getsr.o +gettlbasid.o +gettlbhi.o +gettlblo0.o +gettlblo1.o +gettlbpagemask.o +setcause.o +setcompare.o +setconfig.o +setcount.o +setfpccsr.o +setsr.o +settlbasid.o +getwatchlo.o +setwatchlo.o +region.o +malloc.o +free.o +getbufcount.o +getsize.o +printregion.o +rmonrcp.o +rmonbrk.o +rmoncmds.o +rmonmem.o +rmonmisc.o +rmonprint.o +rmonregs.o +rmontask.o +rmonmain.o +rmonsio.o +sp.o +spgetstat.o +spsetstat.o +spsetpc.o +sprawread.o +sprawwrite.o +sprawdma.o +sptask.o +sptaskyield.o +sptaskyielded.o +sched.o +si.o +sigetstat.o +sirawread.o +sirawwrite.o +sirawdma.o +siacs.o +crc.o +clearattribute.o +color.o +hide.o +setattribute.o +show.o +sprite.o +spriteex.o +spriteex2.o +spscale.o +createthread.o +destroythread.o +getthreadid.o +getthreadpri.o +setthreadpri.o +startthread.o +stopthread.o +thread.o +yieldthread.o +getactivequeue.o +gettime.o +settime.o +settimer.o +stoptimer.o +timerintr.o +maptlb.o +probetlb.o +maptlbrdb.o +unmaptlb.o +unmaptlball.o +vi.o +vigetcurrcontext.o +vigetfield.o +vigetcurrframebuf.o +vigetnextframebuf.o +vigetline.o +vigetmode.o +vigetnextcontext.o +vigetstat.o +vimgr.o +visetevent.o +visetmode.o +visetspecial.o +visetxscale.o +visetyscale.o +viswapbuf.o +viswapcontext.o +vitbl.o +viblack.o +virepeatline.o +vifade.o +viextendvstart.o +vimodentsclpn1.o +vimodentsclpf1.o +vimodentsclan1.o +vimodentsclaf1.o +vimodentsclpn2.o +vimodentsclpf2.o +vimodentsclan2.o +vimodentsclaf2.o +vimodentschpn1.o +vimodentschpf1.o +vimodentschan1.o +vimodentschaf1.o +vimodentschpn2.o +vimodentschpf2.o +vimodepallpn1.o +vimodepallpf1.o +vimodepallan1.o +vimodepallaf1.o +vimodepallpn2.o +vimodepallpf2.o +vimodepallan2.o +vimodepallaf2.o +vimodepalhpn1.o +vimodepalhpf1.o +vimodepalhan1.o +vimodepalhaf1.o +vimodepalhpn2.o +vimodepalhpf2.o +vimodempallpn1.o +vimodempallpf1.o +vimodempallan1.o +vimodempallaf1.o +vimodempallpn2.o +vimodempallpf2.o +vimodempallan2.o +vimodempallaf2.o +vimodempalhpn1.o +vimodempalhpf1.o +vimodempalhan1.o +vimodempalhaf1.o +vimodempalhpn2.o +vimodempalhpf2.o +vimodefpallpn1.o +vimodefpallpf1.o +vimodefpallan1.o +vimodefpallaf1.o +vimodefpallpn2.o +vimodefpallpf2.o +vimodefpallan2.o +vimodefpallaf2.o +vimodefpalhpn1.o +vimodefpalhpf1.o +vimodefpalhan1.o +vimodefpalhaf1.o +vimodefpalhpn2.o +vimodefpalhpf2.o +mtxident.o +mtxidentf.o +mtxf2l.o +mtxl2f.o +mtxcatf.o +scale.o +scalef.o +normalize.o +translate.o +translatef.o +mtxcatl.o +mtxxfml.o +mtxxfmf.o +rotate.o +gbpakinit.o +gbpakgetstatus.o +gbpaksetbank.o +gbpakgetbank.o +gbpakpower.o +gbpakreadwrite.o +gbpakreadid.o +gbpakcheckconnector.o +motor.o +pfsreformat.o +pfschecker.o +pfsinit.o +pfsallocatefile.o +pfsdeletefile.o +pfsreadwritefile.o +pfsfilestate.o +pfssearchfile.o +pfssetlabel.o +pfsgetlabel.o +pfsisplug.o +pfsfreeblocks.o +pfsnumfiles.o +pfsinitpak.o +pfsrepairid.o +pfsgetstatus.o +pfsselectbank.o +contpfs.o +contramread.o +contramwrite.o +parameters.o +afterprenmi.o +getmemsize.o +initialize.o +initialize_kmc.o +initialize_msp.o +initialize_emu.o +exit.o diff --git a/lib/ultralib/base/L/libgultra_rom.txt b/lib/ultralib/base/L/libgultra_rom.txt new file mode 100644 index 0000000..4e1e0b7 --- /dev/null +++ b/lib/ultralib/base/L/libgultra_rom.txt @@ -0,0 +1,440 @@ +conteepread.o +conteepwrite.o +conteepprobe.o +conteeplongwrite.o +conteeplongread.o +getcurrfaultthread.o +getnextfaultthread.o +exceptasm.o +interrupt.o +setintmask.o +getintmask.o +sethwinterrupt.o +gethwinterrupt.o +setpiinterrupt.o +setglobalintmask.o +resetglobalintmask.o +pi.o +pigettype.o +pigetstat.o +pirawread.o +pirawwrite.o +pirawdma.o +pigetcmdq.o +pimgr.o +epirawread.o +epirawwrite.o +epirawdma.o +epiwrite.o +epiread.o +epidma.o +epigettype.o +epilinkhandle.o +cartrominit.o +devmgr.o +piacs.o +piwrite.o +piread.o +pidma.o +voicecontrolgain.o +voiceinit.o +voicecheckresult.o +voicecontwrite20.o +voicemaskdictionary.o +voicecheckword.o +voicecontwrite4.o +voicesetadconverter.o +voicecleardictionary.o +voicecrc.o +voicesetword.o +voicecontread2.o +voicegetreaddata.o +voicestartreaddata.o +voicecontread36.o +voicegetstatus.o +voicestopreaddata.o +voicecountsyllables.o +contchannelreset.o +flashgetaddr.o +flashreinit.o +flashchange.o +flashinit.o +flashreadstatus.o +flashreadid.o +flashclearstatus.o +flashallerase.o +flashallerasethrough.o +flashcheckeraseend.o +flashsectorerase.o +flashsectorerasethrough.o +flashwritebuffer.o +flashwritearray.o +flashreadarray.o +ai.o +aigetlen.o +aigetstat.o +aisetfreq.o +aisetnextbuf.o +drvrnew.o +load.o +auxbus.o +bnkf.o +env.o +event.o +filter.o +mainbus.o +resample.o +reverb.o +save.o +seq.o +sl.o +heapcheck.o +heapinit.o +heapalloc.o +copy.o +seqpdelete.o +seqpgetfxmix.o +seqpgetpan.o +seqpgetchlvol.o +seqpgetpriority.o +seqpgetprogram.o +seqpgetseq.o +seqpgettempo.o +seqpgetvol.o +seqpgetstate.o +seqploop.o +seqpplay.o +seqpsendmidi.o +seqpsetbank.o +seqpsetfxmix.o +seqpsetpan.o +seqpsetchlvol.o +seqpsetpriority.o +seqpsetprogram.o +seqpsetseq.o +seqpsettempo.o +seqpsetvol.o +seqpstop.o +seqplayer.o +cseq.o +cspdelete.o +cspgetfxmix.o +cspgetpan.o +cspgetchlvol.o +cspgetpriority.o +cspgetprogram.o +cspgetseq.o +cspgettempo.o +cspgetvol.o +cspgetstate.o +cspplay.o +cspsendmidi.o +cspsetbank.o +cspsetfxmix.o +cspsetpan.o +cspsetchlvol.o +cspsetpriority.o +cspsetprogram.o +cspsetseq.o +cspsettempo.o +cspsetvol.o +cspstop.o +csplayer.o +sndplayer.o +sndpdelete.o +sndpallocate.o +sndpdeallocate.o +sndpsetsound.o +sndpplay.o +sndpplayat.o +sndpgetsound.o +sndpstop.o +sndpgetstate.o +sndpsetpitch.o +sndpsetpriority.o +sndpsetvol.o +sndpsetpan.o +sndpsetfxmix.o +synthesizer.o +syndelete.o +synaddplayer.o +synremoveplayer.o +synfreevoice.o +synallocvoice.o +synstopvoice.o +synstartvoice.o +synstartvoiceparam.o +synsetpitch.o +synsetvol.o +synsetfxmix.o +synsetpan.o +syngetpriority.o +synsetpriority.o +synallocfx.o +synfreefx.o +syngetfxref.o +synsetfxparam.o +cents2ratio.o +parse_abi.o +invaldcache.o +invalicache.o +writebackdcache.o +writebackdcacheall.o +contquery.o +contreaddata.o +contreset.o +controller.o +contsetch.o +physicaltovirtual.o +virtualtophysical.o +atomic.o +kdebugserver.o +syncputchars.o +gt.o +libm_vals.o +sqrtf.o +align.o +cosf.o +coss.o +frustum.o +guloadtile_bug.o +loadtextureblockmipmap.o +lookat.o +lookathil.o +lookatref.o +lookatstereo.o +ortho.o +perspective.o +position.o +poslight.o +poslighthil.o +random.o +rotaterpy.o +sinf.o +sins.o +us2dex.o +us2dex_emu.o +us2dex2_emu.o +usprite.o +rdbsend.o +initrdb.o +bcmp.o +bcopy.o +bzero.o +ll.o +llcvt.o +string.o +ldiv.o +llbit.o +xlitob.o +xldtob.o +xprintf.o +sprintf.o +syncprintf.o +createmesgqueue.o +jammesg.o +recvmesg.o +sendmesg.o +seteventmesg.o +dp.o +dpgetstat.o +dpsetstat.o +dpsetnextbuf.o +dpctr.o +getcause.o +getcompare.o +getconfig.o +getcount.o +getfpccsr.o +getsr.o +gettlbasid.o +gettlbhi.o +gettlblo0.o +gettlblo1.o +gettlbpagemask.o +setcause.o +setcompare.o +setconfig.o +setcount.o +setfpccsr.o +setsr.o +settlbasid.o +getwatchlo.o +setwatchlo.o +region.o +malloc.o +free.o +getbufcount.o +getsize.o +sp.o +spgetstat.o +spsetstat.o +spsetpc.o +sprawread.o +sprawwrite.o +sprawdma.o +sptask.o +sptaskyield.o +sptaskyielded.o +sched.o +si.o +sigetstat.o +sirawread.o +sirawwrite.o +sirawdma.o +siacs.o +crc.o +clearattribute.o +color.o +hide.o +setattribute.o +show.o +sprite.o +spriteex.o +spriteex2.o +spscale.o +createthread.o +destroythread.o +getthreadid.o +getthreadpri.o +setthreadpri.o +startthread.o +stopthread.o +thread.o +yieldthread.o +getactivequeue.o +gettime.o +settime.o +settimer.o +stoptimer.o +timerintr.o +maptlb.o +probetlb.o +maptlbrdb.o +unmaptlb.o +unmaptlball.o +vi.o +vigetcurrcontext.o +vigetfield.o +vigetcurrframebuf.o +vigetnextframebuf.o +vigetline.o +vigetmode.o +vigetnextcontext.o +vigetstat.o +vimgr.o +visetevent.o +visetmode.o +visetspecial.o +visetxscale.o +visetyscale.o +viswapbuf.o +viswapcontext.o +vitbl.o +viblack.o +virepeatline.o +vifade.o +viextendvstart.o +vimodentsclpn1.o +vimodentsclpf1.o +vimodentsclan1.o +vimodentsclaf1.o +vimodentsclpn2.o +vimodentsclpf2.o +vimodentsclan2.o +vimodentsclaf2.o +vimodentschpn1.o +vimodentschpf1.o +vimodentschan1.o +vimodentschaf1.o +vimodentschpn2.o +vimodentschpf2.o +vimodepallpn1.o +vimodepallpf1.o +vimodepallan1.o +vimodepallaf1.o +vimodepallpn2.o +vimodepallpf2.o +vimodepallan2.o +vimodepallaf2.o +vimodepalhpn1.o +vimodepalhpf1.o +vimodepalhan1.o +vimodepalhaf1.o +vimodepalhpn2.o +vimodepalhpf2.o +vimodempallpn1.o +vimodempallpf1.o +vimodempallan1.o +vimodempallaf1.o +vimodempallpn2.o +vimodempallpf2.o +vimodempallan2.o +vimodempallaf2.o +vimodempalhpn1.o +vimodempalhpf1.o +vimodempalhan1.o +vimodempalhaf1.o +vimodempalhpn2.o +vimodempalhpf2.o +vimodefpallpn1.o +vimodefpallpf1.o +vimodefpallan1.o +vimodefpallaf1.o +vimodefpallpn2.o +vimodefpallpf2.o +vimodefpallan2.o +vimodefpallaf2.o +vimodefpalhpn1.o +vimodefpalhpf1.o +vimodefpalhan1.o +vimodefpalhaf1.o +vimodefpalhpn2.o +vimodefpalhpf2.o +mtxident.o +mtxidentf.o +mtxf2l.o +mtxl2f.o +mtxcatf.o +scale.o +scalef.o +normalize.o +translate.o +translatef.o +mtxcatl.o +mtxxfml.o +mtxxfmf.o +rotate.o +gbpakinit.o +gbpakgetstatus.o +gbpaksetbank.o +gbpakgetbank.o +gbpakpower.o +gbpakreadwrite.o +gbpakreadid.o +gbpakcheckconnector.o +motor.o +pfsreformat.o +pfschecker.o +pfsinit.o +pfsallocatefile.o +pfsdeletefile.o +pfsreadwritefile.o +pfsfilestate.o +pfssearchfile.o +pfssetlabel.o +pfsgetlabel.o +pfsisplug.o +pfsfreeblocks.o +pfsnumfiles.o +pfsinitpak.o +pfsrepairid.o +pfsgetstatus.o +pfsselectbank.o +contpfs.o +contramread.o +contramwrite.o +parameters.o +afterprenmi.o +getmemsize.o +initialize.o diff --git a/lib/ultralib/base/L/libultra.txt b/lib/ultralib/base/L/libultra.txt new file mode 100644 index 0000000..ce952e2 --- /dev/null +++ b/lib/ultralib/base/L/libultra.txt @@ -0,0 +1,483 @@ +ai.o +aigetlen.o +aigetstat.o +aisetfreq.o +aisetnextbuf.o +drvrNew.o +load.o +auxbus.o +bnkf.o +env.o +event.o +filter.o +mainbus.o +resample.o +reverb.o +save.o +seq.o +sl.o +heapcheck.o +heapinit.o +heapalloc.o +copy.o +seqpdelete.o +seqpgetfxmix.o +seqpgetpan.o +seqpgetchlvol.o +seqpgetpriority.o +seqpgetprogram.o +seqpgetseq.o +seqpgettempo.o +seqpgetvol.o +seqpgetstate.o +seqploop.o +seqpplay.o +seqpsendmidi.o +seqpsetbank.o +seqpsetfxmix.o +seqpsetpan.o +seqpsetchlvol.o +seqpsetpriority.o +seqpsetprogram.o +seqpsetseq.o +seqpsettempo.o +seqpsetvol.o +seqpstop.o +seqplayer.o +cseq.o +cspdelete.o +cspgetfxmix.o +cspgetpan.o +cspgetchlvol.o +cspgetpriority.o +cspgetprogram.o +cspgetseq.o +cspgettempo.o +cspgetvol.o +cspgetstate.o +cspplay.o +cspsendmidi.o +cspsetbank.o +cspsetfxmix.o +cspsetpan.o +cspsetchlvol.o +cspsetpriority.o +cspsetprogram.o +cspsetseq.o +cspsettempo.o +cspsetvol.o +cspstop.o +csplayer.o +sndplayer.o +sndpdelete.o +sndpallocate.o +sndpdeallocate.o +sndpsetsound.o +sndpplay.o +sndpplayat.o +sndpgetsound.o +sndpstop.o +sndpgetstate.o +sndpsetpitch.o +sndpsetpriority.o +sndpsetvol.o +sndpsetpan.o +sndpsetfxmix.o +synthesizer.o +syndelete.o +synaddplayer.o +synremoveplayer.o +synfreevoice.o +synallocvoice.o +synstopvoice.o +synstartvoice.o +synstartvoiceparam.o +synsetpitch.o +synsetvol.o +synsetfxmix.o +synsetpan.o +syngetpriority.o +synsetpriority.o +synallocfx.o +synfreefx.o +syngetfxref.o +synsetfxparam.o +cents2ratio.o +parse_abi.o +invaldcache.o +invalicache.o +writebackdcache.o +writebackdcacheall.o +contquery.o +contreaddata.o +contreset.o +controller.o +contsetch.o +physicaltovirtual.o +virtualtophysical.o +assertbreak.o +atomic.o +kdebugserver.o +syncputchars.o +assert.o +profile.o +threadprofile.o +threadprofileclear.o +threadprofileinit.o +threadprofilereadcount.o +threadprofilereadtime.o +threadprofilestart.o +threadprofilestop.o +giorawinterrupt.o +giointerrupt.o +gt.o +dumpturbo.o +libm_vals.o +sqrtf.o +align.o +cosf.o +coss.o +frustum.o +guLoadTile_bug.o +loadtextureblockmipmap.o +lookat.o +lookathil.o +lookatref.o +lookatstereo.o +ortho.o +perspective.o +position.o +poslight.o +poslighthil.o +random.o +rotateRPY.o +sinf.o +sins.o +us2dex.o +us2dex_emu.o +us2dex2_emu.o +usprite.o +parse_rdp.o +parse_gbi.o +dump_gbi.o +parse_string.o +rdbsend.o +initrdb.o +ackramromread.o +ackramromwrite.o +host_ptn64.o +readhost.o +testhost.o +writehost.o +bcmp.o +bcopy.o +bzero.o +ll.o +llcvt.o +string.o +ldiv.o +llbit.o +xlitob.o +xldtob.o +xprintf.o +sprintf.o +syncprintf.o +delay.o +log.o +logfloat.o +createmesgqueue.o +jammesg.o +recvmesg.o +sendmesg.o +seteventmesg.o +dp.o +dpgetstat.o +dpsetstat.o +dpsetnextbuf.o +dpctr.o +getcause.o +getcompare.o +getconfig.o +getcount.o +getfpccsr.o +getsr.o +gettlbasid.o +gettlbhi.o +gettlblo0.o +gettlblo1.o +gettlbpagemask.o +setcause.o +setcompare.o +setconfig.o +setcount.o +setfpccsr.o +setsr.o +settlbasid.o +getwatchlo.o +setwatchlo.o +region.o +malloc.o +free.o +getbufcount.o +getsize.o +printregion.o +rmonrcp.o +rmonbrk.o +rmoncmds.o +rmonmem.o +rmonmisc.o +rmonprint.o +rmonregs.o +rmontask.o +rmonmain.o +rmonsio.o +sp.o +spgetstat.o +spsetstat.o +spsetpc.o +sprawread.o +sprawwrite.o +sprawdma.o +sptask.o +sptaskyield.o +sptaskyielded.o +sched.o +si.o +sigetstat.o +sirawread.o +sirawwrite.o +sirawdma.o +siacs.o +crc.o +clearattribute.o +color.o +hide.o +setattribute.o +show.o +sprite.o +spriteEX.o +spriteEX2.o +spscale.o +createthread.o +destroythread.o +getthreadid.o +getthreadpri.o +setthreadpri.o +startthread.o +stopthread.o +thread.o +yieldthread.o +getactivequeue.o +gettime.o +settime.o +settimer.o +stoptimer.o +timerintr.o +maptlb.o +probetlb.o +maptlbrdb.o +unmaptlb.o +unmaptlball.o +vi.o +vigetcurrcontext.o +vigetfield.o +vigetcurrframebuf.o +vigetnextframebuf.o +vigetline.o +vigetmode.o +vigetnextcontext.o +vigetstat.o +vimgr.o +visetevent.o +visetmode.o +visetspecial.o +visetxscale.o +visetyscale.o +viswapbuf.o +viswapcontext.o +vitbl.o +viblack.o +virepeatline.o +vifade.o +viextendvstart.o +vimodentsclpn1.o +vimodentsclpf1.o +vimodentsclan1.o +vimodentsclaf1.o +vimodentsclpn2.o +vimodentsclpf2.o +vimodentsclan2.o +vimodentsclaf2.o +vimodentschpn1.o +vimodentschpf1.o +vimodentschan1.o +vimodentschaf1.o +vimodentschpn2.o +vimodentschpf2.o +vimodepallpn1.o +vimodepallpf1.o +vimodepallan1.o +vimodepallaf1.o +vimodepallpn2.o +vimodepallpf2.o +vimodepallan2.o +vimodepallaf2.o +vimodepalhpn1.o +vimodepalhpf1.o +vimodepalhan1.o +vimodepalhaf1.o +vimodepalhpn2.o +vimodepalhpf2.o +vimodempallpn1.o +vimodempallpf1.o +vimodempallan1.o +vimodempallaf1.o +vimodempallpn2.o +vimodempallpf2.o +vimodempallan2.o +vimodempallaf2.o +vimodempalhpn1.o +vimodempalhpf1.o +vimodempalhan1.o +vimodempalhaf1.o +vimodempalhpn2.o +vimodempalhpf2.o +vimodefpallpn1.o +vimodefpallpf1.o +vimodefpallan1.o +vimodefpallaf1.o +vimodefpallpn2.o +vimodefpallpf2.o +vimodefpallan2.o +vimodefpallaf2.o +vimodefpalhpn1.o +vimodefpalhpf1.o +vimodefpalhan1.o +vimodefpalhaf1.o +vimodefpalhpn2.o +vimodefpalhpf2.o +mtxident.o +mtxidentf.o +mtxf2l.o +mtxl2f.o +mtxcatf.o +scale.o +scalef.o +normalize.o +translate.o +translatef.o +mtxcatl.o +mtxxfml.o +mtxxfmf.o +rotate.o +initialize_isv.o +monutil.o +conteepread.o +conteepwrite.o +conteepprobe.o +conteeplongwrite.o +conteeplongread.o +getcurrfaultthread.o +getnextfaultthread.o +exceptasm.o +interrupt.o +setintmask.o +getintmask.o +sethwinterrupt.o +gethwinterrupt.o +setpiinterrupt.o +setglobalintmask.o +resetglobalintmask.o +pi.o +pigettype.o +pigetstat.o +pirawread.o +pirawwrite.o +pirawdma.o +pigetcmdq.o +pimgr.o +epirawread.o +epirawwrite.o +epirawdma.o +epiwrite.o +epiread.o +epidma.o +epigettype.o +epilinkhandle.o +cartrominit.o +devmgr.o +piacs.o +piwrite.o +piread.o +pidma.o +voicecontrolgain.o +voiceinit.o +voicecheckresult.o +voicecontwrite20.o +voicemaskdictionary.o +voicecheckword.o +voicecontwrite4.o +voicesetadconverter.o +voicecleardictionary.o +voicecrc.o +voicesetword.o +voicecontread2.o +voicegetreaddata.o +voicestartreaddata.o +voicecontread36.o +voicegetstatus.o +voicestopreaddata.o +voicecountsyllables.o +contchannelreset.o +flashgetaddr.o +flashreinit.o +flashchange.o +flashinit.o +flashreadstatus.o +flashreadid.o +flashclearstatus.o +flashallerase.o +flashallerasethrough.o +flashcheckeraseend.o +flashsectorerase.o +flashsectorerasethrough.o +flashwritebuffer.o +flashwritearray.o +flashreadarray.o +gbpakinit.o +gbpakgetstatus.o +gbpaksetbank.o +gbpakgetbank.o +gbpakpower.o +gbpakreadwrite.o +gbpakreadid.o +gbpakcheckconnector.o +motor.o +pfsreformat.o +pfschecker.o +pfsinit.o +pfsallocatefile.o +pfsdeletefile.o +pfsreadwritefile.o +pfsfilestate.o +pfssearchfile.o +pfssetlabel.o +pfsgetlabel.o +pfsisplug.o +pfsfreeblocks.o +pfsnumfiles.o +pfsinitpak.o +pfsrepairid.o +pfsgetstatus.o +pfsselectbank.o +contpfs.o +contramread.o +contramwrite.o +parameters.o +afterprenmi.o +getmemsize.o +initialize.o +initialize_kmc.o +initialize_msp.o +initialize_emu.o +exit.o diff --git a/lib/ultralib/base/L/libultra_d.txt b/lib/ultralib/base/L/libultra_d.txt new file mode 100644 index 0000000..ca76eda --- /dev/null +++ b/lib/ultralib/base/L/libultra_d.txt @@ -0,0 +1,486 @@ +ai.o +aigetlen.o +aigetstat.o +aisetfreq.o +aisetnextbuf.o +drvrNew.o +load.o +auxbus.o +bnkf.o +env.o +event.o +filter.o +mainbus.o +resample.o +reverb.o +save.o +seq.o +sl.o +heapcheck.o +heapinit.o +heapalloc.o +copy.o +seqpdelete.o +seqpgetfxmix.o +seqpgetpan.o +seqpgetchlvol.o +seqpgetpriority.o +seqpgetprogram.o +seqpgetseq.o +seqpgettempo.o +seqpgetvol.o +seqpgetstate.o +seqploop.o +seqpplay.o +seqpsendmidi.o +seqpsetbank.o +seqpsetfxmix.o +seqpsetpan.o +seqpsetchlvol.o +seqpsetpriority.o +seqpsetprogram.o +seqpsetseq.o +seqpsettempo.o +seqpsetvol.o +seqpstop.o +seqplayer.o +cseq.o +cspdelete.o +cspgetfxmix.o +cspgetpan.o +cspgetchlvol.o +cspgetpriority.o +cspgetprogram.o +cspgetseq.o +cspgettempo.o +cspgetvol.o +cspgetstate.o +cspplay.o +cspsendmidi.o +cspsetbank.o +cspsetfxmix.o +cspsetpan.o +cspsetchlvol.o +cspsetpriority.o +cspsetprogram.o +cspsetseq.o +cspsettempo.o +cspsetvol.o +cspstop.o +csplayer.o +sndplayer.o +sndpdelete.o +sndpallocate.o +sndpdeallocate.o +sndpsetsound.o +sndpplay.o +sndpplayat.o +sndpgetsound.o +sndpstop.o +sndpgetstate.o +sndpsetpitch.o +sndpsetpriority.o +sndpsetvol.o +sndpsetpan.o +sndpsetfxmix.o +synthesizer.o +syndelete.o +synaddplayer.o +synremoveplayer.o +synfreevoice.o +synallocvoice.o +synstopvoice.o +synstartvoice.o +synstartvoiceparam.o +synsetpitch.o +synsetvol.o +synsetfxmix.o +synsetpan.o +syngetpriority.o +synsetpriority.o +synallocfx.o +synfreefx.o +syngetfxref.o +synsetfxparam.o +cents2ratio.o +parse_abi.o +invaldcache.o +invalicache.o +writebackdcache.o +writebackdcacheall.o +contquery.o +contreaddata.o +contreset.o +controller.o +contsetch.o +physicaltovirtual.o +virtualtophysical.o +assertbreak.o +atomic.o +kdebugserver.o +syncputchars.o +assert.o +profile.o +threadprofile.o +threadprofileclear.o +threadprofileinit.o +threadprofilereadcount.o +threadprofilereadtime.o +threadprofilestart.o +threadprofilestop.o +giorawinterrupt.o +giointerrupt.o +gt.o +dumpturbo.o +libm_vals.o +sqrtf.o +align.o +cosf.o +coss.o +frustum.o +guLoadTile_bug.o +loadtextureblockmipmap.o +lookat.o +lookathil.o +lookatref.o +lookatstereo.o +ortho.o +perspective.o +position.o +poslight.o +poslighthil.o +random.o +rotateRPY.o +sinf.o +sins.o +us2dex.o +us2dex_emu.o +us2dex2_emu.o +usprite.o +parse_rdp.o +parse_gbi.o +dump_gbi.o +parse_string.o +rdbsend.o +initrdb.o +ackramromread.o +ackramromwrite.o +host_ptn64.o +readhost.o +testhost.o +writehost.o +bcmp.o +bcopy.o +bzero.o +ll.o +llcvt.o +string.o +ldiv.o +llbit.o +xlitob.o +xldtob.o +xprintf.o +sprintf.o +syncprintf.o +delay.o +log.o +logfloat.o +createmesgqueue.o +jammesg.o +recvmesg.o +sendmesg.o +seteventmesg.o +dp.o +dpgetstat.o +dpsetstat.o +dpsetnextbuf.o +dpctr.o +getcause.o +getcompare.o +getconfig.o +getcount.o +getfpccsr.o +getsr.o +gettlbasid.o +gettlbhi.o +gettlblo0.o +gettlblo1.o +gettlbpagemask.o +setcause.o +setcompare.o +setconfig.o +setcount.o +setfpccsr.o +setsr.o +settlbasid.o +getwatchlo.o +setwatchlo.o +region.o +malloc.o +free.o +getbufcount.o +getsize.o +printregion.o +rmonrcp.o +rmonbrk.o +rmoncmds.o +rmonmem.o +rmonmisc.o +rmonprint.o +rmonregs.o +rmontask.o +rmonmain.o +rmonsio.o +sp.o +spgetstat.o +spsetstat.o +spsetpc.o +sprawread.o +sprawwrite.o +sprawdma.o +sptask.o +sptaskyield.o +sptaskyielded.o +sched.o +si.o +sigetstat.o +sirawread.o +sirawwrite.o +sirawdma.o +siacs.o +crc.o +clearattribute.o +color.o +hide.o +setattribute.o +show.o +sprite.o +spriteEX.o +spriteEX2.o +spscale.o +createthread.o +destroythread.o +getthreadid.o +getthreadpri.o +setthreadpri.o +startthread.o +stopthread.o +thread.o +yieldthread.o +getactivequeue.o +gettime.o +settime.o +settimer.o +stoptimer.o +timerintr.o +maptlb.o +probetlb.o +maptlbrdb.o +unmaptlb.o +unmaptlball.o +vi.o +vigetcurrcontext.o +vigetfield.o +vigetcurrframebuf.o +vigetnextframebuf.o +vigetline.o +vigetmode.o +vigetnextcontext.o +vigetstat.o +vimgr.o +visetevent.o +visetmode.o +visetspecial.o +visetxscale.o +visetyscale.o +viswapbuf.o +viswapcontext.o +vitbl.o +viblack.o +virepeatline.o +vifade.o +viextendvstart.o +vimodentsclpn1.o +vimodentsclpf1.o +vimodentsclan1.o +vimodentsclaf1.o +vimodentsclpn2.o +vimodentsclpf2.o +vimodentsclan2.o +vimodentsclaf2.o +vimodentschpn1.o +vimodentschpf1.o +vimodentschan1.o +vimodentschaf1.o +vimodentschpn2.o +vimodentschpf2.o +vimodepallpn1.o +vimodepallpf1.o +vimodepallan1.o +vimodepallaf1.o +vimodepallpn2.o +vimodepallpf2.o +vimodepallan2.o +vimodepallaf2.o +vimodepalhpn1.o +vimodepalhpf1.o +vimodepalhan1.o +vimodepalhaf1.o +vimodepalhpn2.o +vimodepalhpf2.o +vimodempallpn1.o +vimodempallpf1.o +vimodempallan1.o +vimodempallaf1.o +vimodempallpn2.o +vimodempallpf2.o +vimodempallan2.o +vimodempallaf2.o +vimodempalhpn1.o +vimodempalhpf1.o +vimodempalhan1.o +vimodempalhaf1.o +vimodempalhpn2.o +vimodempalhpf2.o +vimodefpallpn1.o +vimodefpallpf1.o +vimodefpallan1.o +vimodefpallaf1.o +vimodefpallpn2.o +vimodefpallpf2.o +vimodefpallan2.o +vimodefpallaf2.o +vimodefpalhpn1.o +vimodefpalhpf1.o +vimodefpalhan1.o +vimodefpalhaf1.o +vimodefpalhpn2.o +vimodefpalhpf2.o +mtxident.o +mtxidentf.o +mtxf2l.o +mtxl2f.o +mtxcatf.o +scale.o +scalef.o +normalize.o +translate.o +translatef.o +mtxcatl.o +mtxxfml.o +mtxxfmf.o +rotate.o +initialize_isv.o +monutil.o +conteepread.o +conteepwrite.o +conteepprobe.o +conteeplongwrite.o +conteeplongread.o +errorasm.o +getcurrfaultthread.o +getnextfaultthread.o +seterrorhandler.o +commonerror.o +exceptasm.o +interrupt.o +setintmask.o +getintmask.o +sethwinterrupt.o +gethwinterrupt.o +setpiinterrupt.o +setglobalintmask.o +resetglobalintmask.o +pi.o +pigettype.o +pigetstat.o +pirawread.o +pirawwrite.o +pirawdma.o +pigetcmdq.o +pimgr.o +epirawread.o +epirawwrite.o +epirawdma.o +epiwrite.o +epiread.o +epidma.o +epigettype.o +epilinkhandle.o +cartrominit.o +devmgr.o +piacs.o +piwrite.o +piread.o +pidma.o +voicecontrolgain.o +voiceinit.o +voicecheckresult.o +voicecontwrite20.o +voicemaskdictionary.o +voicecheckword.o +voicecontwrite4.o +voicesetadconverter.o +voicecleardictionary.o +voicecrc.o +voicesetword.o +voicecontread2.o +voicegetreaddata.o +voicestartreaddata.o +voicecontread36.o +voicegetstatus.o +voicestopreaddata.o +voicecountsyllables.o +contchannelreset.o +flashgetaddr.o +flashreinit.o +flashchange.o +flashinit.o +flashreadstatus.o +flashreadid.o +flashclearstatus.o +flashallerase.o +flashallerasethrough.o +flashcheckeraseend.o +flashsectorerase.o +flashsectorerasethrough.o +flashwritebuffer.o +flashwritearray.o +flashreadarray.o +gbpakinit.o +gbpakgetstatus.o +gbpaksetbank.o +gbpakgetbank.o +gbpakpower.o +gbpakreadwrite.o +gbpakreadid.o +gbpakcheckconnector.o +motor.o +pfsreformat.o +pfschecker.o +pfsinit.o +pfsallocatefile.o +pfsdeletefile.o +pfsreadwritefile.o +pfsfilestate.o +pfssearchfile.o +pfssetlabel.o +pfsgetlabel.o +pfsisplug.o +pfsfreeblocks.o +pfsnumfiles.o +pfsinitpak.o +pfsrepairid.o +pfsgetstatus.o +pfsselectbank.o +contpfs.o +contramread.o +contramwrite.o +parameters.o +afterprenmi.o +getmemsize.o +initialize.o +initialize_kmc.o +initialize_msp.o +initialize_emu.o +exit.o diff --git a/lib/ultralib/base/L/libultra_rom.txt b/lib/ultralib/base/L/libultra_rom.txt new file mode 100644 index 0000000..065ef27 --- /dev/null +++ b/lib/ultralib/base/L/libultra_rom.txt @@ -0,0 +1,442 @@ +ai.o +aigetlen.o +aigetstat.o +aisetfreq.o +aisetnextbuf.o +drvrNew.o +load.o +auxbus.o +bnkf.o +env.o +event.o +filter.o +mainbus.o +resample.o +reverb.o +save.o +seq.o +sl.o +heapcheck.o +heapinit.o +heapalloc.o +copy.o +seqpdelete.o +seqpgetfxmix.o +seqpgetpan.o +seqpgetchlvol.o +seqpgetpriority.o +seqpgetprogram.o +seqpgetseq.o +seqpgettempo.o +seqpgetvol.o +seqpgetstate.o +seqploop.o +seqpplay.o +seqpsendmidi.o +seqpsetbank.o +seqpsetfxmix.o +seqpsetpan.o +seqpsetchlvol.o +seqpsetpriority.o +seqpsetprogram.o +seqpsetseq.o +seqpsettempo.o +seqpsetvol.o +seqpstop.o +seqplayer.o +cseq.o +cspdelete.o +cspgetfxmix.o +cspgetpan.o +cspgetchlvol.o +cspgetpriority.o +cspgetprogram.o +cspgetseq.o +cspgettempo.o +cspgetvol.o +cspgetstate.o +cspplay.o +cspsendmidi.o +cspsetbank.o +cspsetfxmix.o +cspsetpan.o +cspsetchlvol.o +cspsetpriority.o +cspsetprogram.o +cspsetseq.o +cspsettempo.o +cspsetvol.o +cspstop.o +csplayer.o +sndplayer.o +sndpdelete.o +sndpallocate.o +sndpdeallocate.o +sndpsetsound.o +sndpplay.o +sndpplayat.o +sndpgetsound.o +sndpstop.o +sndpgetstate.o +sndpsetpitch.o +sndpsetpriority.o +sndpsetvol.o +sndpsetpan.o +sndpsetfxmix.o +synthesizer.o +syndelete.o +synaddplayer.o +synremoveplayer.o +synfreevoice.o +synallocvoice.o +synstopvoice.o +synstartvoice.o +synstartvoiceparam.o +synsetpitch.o +synsetvol.o +synsetfxmix.o +synsetpan.o +syngetpriority.o +synsetpriority.o +synallocfx.o +synfreefx.o +syngetfxref.o +synsetfxparam.o +cents2ratio.o +parse_abi.o +invaldcache.o +invalicache.o +writebackdcache.o +writebackdcacheall.o +contquery.o +contreaddata.o +contreset.o +controller.o +contsetch.o +physicaltovirtual.o +virtualtophysical.o +atomic.o +kdebugserver.o +syncputchars.o +giorawinterrupt.o +giointerrupt.o +gt.o +libm_vals.o +sqrtf.o +align.o +cosf.o +coss.o +frustum.o +guLoadTile_bug.o +loadtextureblockmipmap.o +lookat.o +lookathil.o +lookatref.o +lookatstereo.o +ortho.o +perspective.o +position.o +poslight.o +poslighthil.o +random.o +rotateRPY.o +sinf.o +sins.o +us2dex.o +us2dex_emu.o +us2dex2_emu.o +usprite.o +rdbsend.o +initrdb.o +bcmp.o +bcopy.o +bzero.o +ll.o +llcvt.o +string.o +ldiv.o +llbit.o +xlitob.o +xldtob.o +xprintf.o +sprintf.o +syncprintf.o +createmesgqueue.o +jammesg.o +recvmesg.o +sendmesg.o +seteventmesg.o +dp.o +dpgetstat.o +dpsetstat.o +dpsetnextbuf.o +dpctr.o +getcause.o +getcompare.o +getconfig.o +getcount.o +getfpccsr.o +getsr.o +gettlbasid.o +gettlbhi.o +gettlblo0.o +gettlblo1.o +gettlbpagemask.o +setcause.o +setcompare.o +setconfig.o +setcount.o +setfpccsr.o +setsr.o +settlbasid.o +getwatchlo.o +setwatchlo.o +region.o +malloc.o +free.o +getbufcount.o +getsize.o +sp.o +spgetstat.o +spsetstat.o +spsetpc.o +sprawread.o +sprawwrite.o +sprawdma.o +sptask.o +sptaskyield.o +sptaskyielded.o +sched.o +si.o +sigetstat.o +sirawread.o +sirawwrite.o +sirawdma.o +siacs.o +crc.o +clearattribute.o +color.o +hide.o +setattribute.o +show.o +sprite.o +spriteEX.o +spriteEX2.o +spscale.o +createthread.o +destroythread.o +getthreadid.o +getthreadpri.o +setthreadpri.o +startthread.o +stopthread.o +thread.o +yieldthread.o +getactivequeue.o +gettime.o +settime.o +settimer.o +stoptimer.o +timerintr.o +maptlb.o +probetlb.o +maptlbrdb.o +unmaptlb.o +unmaptlball.o +vi.o +vigetcurrcontext.o +vigetfield.o +vigetcurrframebuf.o +vigetnextframebuf.o +vigetline.o +vigetmode.o +vigetnextcontext.o +vigetstat.o +vimgr.o +visetevent.o +visetmode.o +visetspecial.o +visetxscale.o +visetyscale.o +viswapbuf.o +viswapcontext.o +vitbl.o +viblack.o +virepeatline.o +vifade.o +viextendvstart.o +vimodentsclpn1.o +vimodentsclpf1.o +vimodentsclan1.o +vimodentsclaf1.o +vimodentsclpn2.o +vimodentsclpf2.o +vimodentsclan2.o +vimodentsclaf2.o +vimodentschpn1.o +vimodentschpf1.o +vimodentschan1.o +vimodentschaf1.o +vimodentschpn2.o +vimodentschpf2.o +vimodepallpn1.o +vimodepallpf1.o +vimodepallan1.o +vimodepallaf1.o +vimodepallpn2.o +vimodepallpf2.o +vimodepallan2.o +vimodepallaf2.o +vimodepalhpn1.o +vimodepalhpf1.o +vimodepalhan1.o +vimodepalhaf1.o +vimodepalhpn2.o +vimodepalhpf2.o +vimodempallpn1.o +vimodempallpf1.o +vimodempallan1.o +vimodempallaf1.o +vimodempallpn2.o +vimodempallpf2.o +vimodempallan2.o +vimodempallaf2.o +vimodempalhpn1.o +vimodempalhpf1.o +vimodempalhan1.o +vimodempalhaf1.o +vimodempalhpn2.o +vimodempalhpf2.o +vimodefpallpn1.o +vimodefpallpf1.o +vimodefpallan1.o +vimodefpallaf1.o +vimodefpallpn2.o +vimodefpallpf2.o +vimodefpallan2.o +vimodefpallaf2.o +vimodefpalhpn1.o +vimodefpalhpf1.o +vimodefpalhan1.o +vimodefpalhaf1.o +vimodefpalhpn2.o +vimodefpalhpf2.o +mtxident.o +mtxidentf.o +mtxf2l.o +mtxl2f.o +mtxcatf.o +scale.o +scalef.o +normalize.o +translate.o +translatef.o +mtxcatl.o +mtxxfml.o +mtxxfmf.o +rotate.o +conteepread.o +conteepwrite.o +conteepprobe.o +conteeplongwrite.o +conteeplongread.o +getcurrfaultthread.o +getnextfaultthread.o +exceptasm.o +interrupt.o +setintmask.o +getintmask.o +sethwinterrupt.o +gethwinterrupt.o +setpiinterrupt.o +setglobalintmask.o +resetglobalintmask.o +pi.o +pigettype.o +pigetstat.o +pirawread.o +pirawwrite.o +pirawdma.o +pigetcmdq.o +pimgr.o +epirawread.o +epirawwrite.o +epirawdma.o +epiwrite.o +epiread.o +epidma.o +epigettype.o +epilinkhandle.o +cartrominit.o +devmgr.o +piacs.o +piwrite.o +piread.o +pidma.o +voicecontrolgain.o +voiceinit.o +voicecheckresult.o +voicecontwrite20.o +voicemaskdictionary.o +voicecheckword.o +voicecontwrite4.o +voicesetadconverter.o +voicecleardictionary.o +voicecrc.o +voicesetword.o +voicecontread2.o +voicegetreaddata.o +voicestartreaddata.o +voicecontread36.o +voicegetstatus.o +voicestopreaddata.o +voicecountsyllables.o +contchannelreset.o +flashgetaddr.o +flashreinit.o +flashchange.o +flashinit.o +flashreadstatus.o +flashreadid.o +flashclearstatus.o +flashallerase.o +flashallerasethrough.o +flashcheckeraseend.o +flashsectorerase.o +flashsectorerasethrough.o +flashwritebuffer.o +flashwritearray.o +flashreadarray.o +gbpakinit.o +gbpakgetstatus.o +gbpaksetbank.o +gbpakgetbank.o +gbpakpower.o +gbpakreadwrite.o +gbpakreadid.o +gbpakcheckconnector.o +motor.o +pfsreformat.o +pfschecker.o +pfsinit.o +pfsallocatefile.o +pfsdeletefile.o +pfsreadwritefile.o +pfsfilestate.o +pfssearchfile.o +pfssetlabel.o +pfsgetlabel.o +pfsisplug.o +pfsfreeblocks.o +pfsnumfiles.o +pfsinitpak.o +pfsrepairid.o +pfsgetstatus.o +pfsselectbank.o +contpfs.o +contramread.o +contramwrite.o +parameters.o +afterprenmi.o +getmemsize.o +initialize.o diff --git a/lib/ultralib/include/PR/gu.h b/lib/ultralib/include/PR/gu.h index aa83ba0..9a2fa2b 100644 --- a/lib/ultralib/include/PR/gu.h +++ b/lib/ultralib/include/PR/gu.h @@ -24,6 +24,7 @@ #include <PR/mbi.h> #include <PR/ultratypes.h> #include <PR/sptask.h> +#include <PR/os_version.h> #ifndef MAX #define MAX(a,b) (((a)>(b))?(a):(b)) @@ -192,7 +193,7 @@ extern float cosf(float angle); extern signed short sins (unsigned short angle); extern signed short coss (unsigned short angle); extern float sqrtf(float value); -#ifdef __sgi +#if defined(__sgi) && BUILD_VERSION >= VERSION_K #pragma intrinsic(sqrtf); #endif diff --git a/lib/ultralib/include/PR/os_host.h b/lib/ultralib/include/PR/os_host.h index 0cc1ae5..3192f6a 100644 --- a/lib/ultralib/include/PR/os_host.h +++ b/lib/ultralib/include/PR/os_host.h @@ -35,6 +35,7 @@ extern "C" { #endif #include <PR/ultratypes.h> +#include <PR/os_version.h> #if defined(_LANGUAGE_C) || defined(_LANGUAGE_C_PLUS_PLUS) @@ -126,6 +127,10 @@ extern void __osInitialize_emu(void); #endif /* _FINAL_ROM */ +#if BUILD_VERSION < VERSION_K +#undef osInitialize +#endif + /************************************************************************** * * Extern variables diff --git a/lib/ultralib/include/PR/os_internal_exception.h b/lib/ultralib/include/PR/os_internal_exception.h index 2484903..dae8a9f 100644 --- a/lib/ultralib/include/PR/os_internal_exception.h +++ b/lib/ultralib/include/PR/os_internal_exception.h @@ -26,14 +26,22 @@ extern "C" { #endif #include "os.h" +#include "os_version.h" #if defined(_LANGUAGE_C) || defined(_LANGUAGE_C_PLUS_PLUS) /* Routine for HW interrupt "handler" */ +#if BUILD_VERSION >= VERSION_J extern void __osSetHWIntrRoutine(OSHWIntr interrupt, s32 (*handler)(void), void *stackEnd); extern void __osGetHWIntrRoutine(OSHWIntr interrupt, s32 (**handler)(void), void **stackEnd); +#else +extern void __osSetHWIntrRoutine(OSHWIntr interrupt, + s32 (*handler)(void)); +extern void __osGetHWIntrRoutine(OSHWIntr interrupt, + s32 (**handler)(void)); +#endif /* Routine for global interrupt mask */ extern void __osSetGlobalIntMask(OSHWIntr); diff --git a/lib/ultralib/include/PR/os_motor.h b/lib/ultralib/include/PR/os_motor.h index f8dcbd5..2edb8e6 100644 --- a/lib/ultralib/include/PR/os_motor.h +++ b/lib/ultralib/include/PR/os_motor.h @@ -17,6 +17,7 @@ extern "C" { #include <PR/ultratypes.h> #include "os_message.h" #include "os_pfs.h" +#include "os_version.h" #if defined(_LANGUAGE_C) || defined(_LANGUAGE_C_PLUS_PLUS) @@ -62,7 +63,7 @@ extern "C" { /* Rumble PAK interface */ extern s32 osMotorInit(OSMesgQueue *, OSPfs *, int); -#if 1 +#if BUILD_VERSION >= VERSION_J #define MOTOR_START 1 #define MOTOR_STOP 0 #define osMotorStart(x) __osMotorAccess((x), MOTOR_START) diff --git a/lib/ultralib/include/PR/os_version.h b/lib/ultralib/include/PR/os_version.h index c485a43..aa10d20 100644 --- a/lib/ultralib/include/PR/os_version.h +++ b/lib/ultralib/include/PR/os_version.h @@ -10,7 +10,17 @@ #ifndef _OS_VERSION_H_ #define _OS_VERSION_H_ -#define OS_MAJOR_VERSION "2.0K" /* major version */ -#define OS_MINOR_VERSION 0 /* patch level */ +#define VERSION_D 1 +#define VERSION_E 2 +#define VERSION_F 3 +#define VERSION_G 4 +#define VERSION_H 5 +#define VERSION_I 6 +#define VERSION_J 7 +#define VERSION_K 8 +#define VERSION_L 9 + +#define OS_MAJOR_VERSION BUILD_VERSION_STRING /* major version */ +#define OS_MINOR_VERSION 0 /* patch level */ #endif /* !_OS_VERSION_H_ */ diff --git a/lib/ultralib/include/gcc/sgidefs.h b/lib/ultralib/include/gcc/sgidefs.h new file mode 100644 index 0000000..56567e8 --- /dev/null +++ b/lib/ultralib/include/gcc/sgidefs.h @@ -0,0 +1,44 @@ +/* Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ralf Baechle <ralf@gnu.org>. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with the GNU C Library; see the file COPYING.LIB. If not, + write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +#ifndef _SGIDEFS_H +#define _SGIDEFS_H 1 + +/* + * Definitions for the ISA level + */ +#define _MIPS_ISA_MIPS1 1 +#define _MIPS_ISA_MIPS2 2 +#define _MIPS_ISA_MIPS3 3 +#define _MIPS_ISA_MIPS4 4 +#define _MIPS_ISA_MIPS5 5 + +/* + * Subprogram calling convention + * + * At the moment only _MIPS_SIM_ABI32 is in use. This will change rsn. + * Until GCC 2.8.0 is released don't rely on this definitions because the + * 64bit code is essentially using the 32bit interface model just with + * 64bit registers. + */ +#define _MIPS_SIM_ABI32 1 +#define _MIPS_SIM_NABI32 2 +#define _MIPS_SIM_ABI64 3 + +#endif /* sgidefs.h */ diff --git a/lib/ultralib/include/sgidefs.h b/lib/ultralib/include/sgidefs.h index e69de29..8d4b6e1 100644 --- a/lib/ultralib/include/sgidefs.h +++ b/lib/ultralib/include/sgidefs.h @@ -0,0 +1,3 @@ +#ifdef __GNUC__ +#include "gcc/sgidefs.h" +#endif diff --git a/lib/ultralib/src/audio/csplayer.c b/lib/ultralib/src/audio/csplayer.c index 66999f7..5cd3df6 100644 --- a/lib/ultralib/src/audio/csplayer.c +++ b/lib/ultralib/src/audio/csplayer.c @@ -81,9 +81,9 @@ void alCSPNew(ALCSPlayer *seqp, ALSeqpConfig *c) seqp->initOsc = c->initOsc; seqp->updateOsc = c->updateOsc; seqp->stopOsc = c->stopOsc; - + seqp->nextEvent.type = AL_SEQP_API_EVT; /* this will start the voice handler "spinning" */ - + /* * init the channel state */ @@ -104,14 +104,13 @@ void alCSPNew(ALCSPlayer *seqp, ALSeqpConfig *c) seqp->vAllocHead = 0; seqp->vAllocTail = 0; - - /* - * init the event queue - */ +#if BUILD_VERSION < VERSION_J +#line 109 +#endif + // init the event queue items = alHeapAlloc(hp, c->maxEvents, sizeof(ALEventListItem)); alEvtqNew(&seqp->evtq, items, c->maxEvents); - /* * add ourselves to the driver */ @@ -292,10 +291,10 @@ static ALMicroTime __CSPVoiceHandler(void *node) break; case (AL_SEQP_SEQ_EVT): - -#ifdef _DEBUG - assert(seqp->state != AL_PLAYING); /* Must be done playing to change sequences. */ +#if BUILD_VERSION < VERSION_J +#line 294 #endif + assert(seqp->state != AL_PLAYING); /* Must be done playing to change sequences. */ seqp->target = seqp->nextEvent.msg.spseq.seq; __setUsptFromTempo (seqp, 500000.0); @@ -304,10 +303,10 @@ static ALMicroTime __CSPVoiceHandler(void *node) break; case (AL_SEQP_BANK_EVT): - -#ifdef _DEBUG - assert(seqp->state == AL_STOPPED); /* Must be fully stopped to change banks. */ +#if BUILD_VERSION < VERSION_J +#line 303 #endif + assert(seqp->state == AL_STOPPED); /* Must be fully stopped to change banks. */ seqp->bank = seqp->nextEvent.msg.spbank.bank; __initFromBank((ALSeqPlayer *)seqp, seqp->bank); @@ -317,10 +316,10 @@ static ALMicroTime __CSPVoiceHandler(void *node) case (AL_SEQ_END_EVT): case (AL_TEMPO_EVT): case (AL_SEQ_MIDI_EVT): - -#ifdef _DEBUG - assert(FALSE); +#if BUILD_VERSION < VERSION_J +#line 313 #endif + assert(FALSE); break; } @@ -407,16 +406,16 @@ __CSPHandleNextSeqEvent(ALCSPlayer *seqp) break; default: - -#ifdef _DEBUG - assert(FALSE); /* Sequence event type not supported. */ +#if BUILD_VERSION < VERSION_J +#line 399 #endif - + assert(FALSE); /* Sequence event type not supported. */ +#if BUILD_VERSION >= VERSION_J break; +#endif } } - static void __CSPHandleMIDIMsg(ALCSPlayer *seqp, ALEvent *event) { ALVoice *voice; @@ -723,10 +722,10 @@ static void __CSPHandleMIDIMsg(ALCSPlayer *seqp, ALEvent *event) break; case (AL_MIDI_ProgramChange): /* sct 1/16/96 - We must have a valid bank in order to process the program change. */ - -#ifdef _DEBUG - assert(seqp->bank != NULL); +#if BUILD_VERSION < VERSION_J +#line 710 #endif + assert(seqp->bank != NULL); if (key < seqp->bank->instCount) { diff --git a/lib/ultralib/src/audio/env.c b/lib/ultralib/src/audio/env.c index 9a11e23..fda20f4 100644 --- a/lib/ultralib/src/audio/env.c +++ b/lib/ultralib/src/audio/env.c @@ -93,19 +93,19 @@ Acmd *alEnvmixerPull(void *filter, s16 *outp, s32 outCount, s32 sampleOffset, */ inp = AL_RESAMPLER_OUT; - while (e->ctrlList != 0) { - + while (e->ctrlList != 0) { lastOffset = thisOffset; thisOffset = e->ctrlList->delta; samples = thisOffset - lastOffset; if (samples > outCount) break; - -#ifdef _DEBUG +#if BUILD_VERSION < VERSION_J +#line 103 +#endif assert(samples >= 0); assert(samples <= AL_MAX_RSP_SAMPLES); -#endif - + + switch (e->ctrlList->type) { case (AL_FILTER_START_VOICE_ALT): { @@ -307,8 +307,7 @@ Acmd *alEnvmixerPull(void *filter, s16 *outp, s32 outCount, s32 sampleOffset, return ptr; } -s32 -alEnvmixerParam(void *filter, s32 paramID, void *param) +s32 alEnvmixerParam(void *filter, s32 paramID, void *param) { ALFilter *f = (ALFilter *) filter; ALEnvMixer *e = (ALEnvMixer *) filter; @@ -349,9 +348,10 @@ alEnvmixerParam(void *filter, s32 paramID, void *param) } return 0; } - -static -Acmd* _pullSubFrame(void *filter, s16 *inp, s16 *outp, s32 outCount, +#if BUILD_VERSION < VERSION_J +#line 350 +#endif +static Acmd* _pullSubFrame(void *filter, s16 *inp, s16 *outp, s32 outCount, s32 sampleOffset, Acmd *p) { Acmd *ptr = p; @@ -366,9 +366,9 @@ Acmd* _pullSubFrame(void *filter, s16 *inp, s16 *outp, s32 outCount, * ask all filters upstream from us to build their command * lists. */ -#ifdef _DEBUG + assert(source); -#endif + ptr = (*source->handler)(source, inp, outCount, sampleOffset, p); diff --git a/lib/ultralib/src/audio/event.c b/lib/ultralib/src/audio/event.c index 531e17c..3112c99 100644 --- a/lib/ultralib/src/audio/event.c +++ b/lib/ultralib/src/audio/event.c @@ -59,7 +59,7 @@ ALMicroTime alEvtqNextEvent(ALEventQueue *evtq, ALEvent *evt) { /* sct 11/28/95 - If we get here, most like we overflowed the event queue */ /* with non-self-perpetuating events. Eg. if we filled the evtq with volume */ - /* events, then when the seqp is told to game_play it will handle all the events */ + /* events, then when the seqp is told to play it will handle all the events */ /* at once completely emptying out the queue. At this point this problem */ /* must be treated as an out of resource error and the evtq should be increased. */ evt->type = -1; diff --git a/lib/ultralib/src/audio/reverb.c b/lib/ultralib/src/audio/reverb.c index 8558169..f5158c3 100644 --- a/lib/ultralib/src/audio/reverb.c +++ b/lib/ultralib/src/audio/reverb.c @@ -46,7 +46,6 @@ extern u32 load_num, load_cnt, load_max, load_min, save_num, save_cnt, save_max, } - Acmd *_loadOutputBuffer(ALFx *r, ALDelay *d, s32 buff, s32 incount, Acmd *p); Acmd *_loadBuffer(ALFx *r, s16 *curr_ptr, s32 buff, s32 count, Acmd *p); Acmd *_saveBuffer(ALFx *r, s16 *curr_ptr, s32 buff, s32 count, Acmd *p); @@ -71,10 +70,10 @@ Acmd *alFxPull(void *filter, s16 *outp, s32 outCount, s32 sampleOffset, #ifdef AUD_PROFILE lastCnt[++cnt_index] = osGetCount(); #endif - -#ifdef _DEBUG - assert(source); +#if BUILD_VERSION < VERSION_J +#line 74 #endif + assert(source); /* * pull channels going into this effect first diff --git a/lib/ultralib/src/audio/save.c b/lib/ultralib/src/audio/save.c index ec6a0bf..59bd09b 100644 --- a/lib/ultralib/src/audio/save.c +++ b/lib/ultralib/src/audio/save.c @@ -25,15 +25,15 @@ Acmd *alSavePull(void *filter, s16 *outp, s32 outCount, s32 sampleOffset, Acmd *p) - { Acmd *ptr = p; ALSave *f = (ALSave *)filter; ALFilter *source = f->filter.source; - -#ifdef _DEBUG - assert(f->filter.source); +#if BUILD_VERSION < VERSION_J +#line 33 #endif + assert(f->filter.source); + ptr = (*source->handler)(source, outp, outCount, sampleOffset, ptr); diff --git a/lib/ultralib/src/audio/seqpdelete.c b/lib/ultralib/src/audio/seqpdelete.c index 8e283b1..142f190 100644 --- a/lib/ultralib/src/audio/seqpdelete.c +++ b/lib/ultralib/src/audio/seqpdelete.c @@ -17,22 +17,22 @@ * DOD or NASA FAR Supplement. Unpublished - rights reserved under the * Copyright Laws of the United States. *====================================================================*/ - +#include <PR/os_version.h> #include <libaudio.h> #include <assert.h> // TODO: this comes from a header #ident "$Revision: 1.17 $" - void alSeqpDelete(ALSeqPlayer *seqp) { /* sct 1/4/96 - If the sequence player isn't stopped, then you may end up with stuck notes. Application should check state before calling this routine to be sure. */ - -#ifdef _DEBUG - assert(seqp->state == AL_STOPPED); +#if BUILD_VERSION < VERSION_J +#line 31 #endif + assert(seqp->state == AL_STOPPED); + alSynRemovePlayer(seqp->drvr, &seqp->node); } diff --git a/lib/ultralib/src/audio/seqplayer.c b/lib/ultralib/src/audio/seqplayer.c index a25d624..9d77a6f 100644 --- a/lib/ultralib/src/audio/seqplayer.c +++ b/lib/ultralib/src/audio/seqplayer.c @@ -291,25 +291,24 @@ ALMicroTime __seqpVoiceHandler(void *node) chan = seqp->nextEvent.msg.sppriority.chan; seqp->chanState[chan].priority = seqp->nextEvent.msg.sppriority.priority; break; - case (AL_SEQP_SEQ_EVT): - -#ifdef _DEBUG - assert(seqp->state != AL_PLAYING); /* Must be done playing to change sequences. */ +#if BUILD_VERSION < VERSION_J // Adjust line numbers to match asserts +#line 295 #endif + assert(seqp->state != AL_PLAYING); /* Must be done playing to change sequences. */ + seqp->target = seqp->nextEvent.msg.spseq.seq; __setUsptFromTempo (seqp, 500000.0); if (seqp->bank) __initFromBank(seqp, seqp->bank); break; - case (AL_SEQP_BANK_EVT): - -#ifdef _DEBUG - assert(seqp->state == AL_STOPPED); /* Must be fully stopped to change banks. */ +#if BUILD_VERSION < VERSION_J +#line 304 #endif - + assert(seqp->state == AL_STOPPED); /* Must be fully stopped to change banks. */ + seqp->bank = seqp->nextEvent.msg.spbank.bank; __initFromBank(seqp, seqp->bank); break; @@ -318,10 +317,11 @@ ALMicroTime __seqpVoiceHandler(void *node) case (AL_SEQ_END_EVT): case (AL_TEMPO_EVT): case (AL_SEQ_MIDI_EVT): - -#ifdef _DEBUG - assert(FALSE); +#if BUILD_VERSION < VERSION_J +#line 314 #endif + assert(FALSE); + break; } @@ -381,7 +381,6 @@ void __postNextSeqEvent(ALSeqPlayer *seqp) alEvtqPostEvent(&seqp->evtq, &evt, deltaTicks * seqp->uspt); } - /* Call this routine to handle the next event in the sequence. Assumes that the next sequence event is scheduled to be processed @@ -419,16 +418,16 @@ __handleNextSeqEvent(ALSeqPlayer *seqp) break; default: - -#ifdef _DEBUG - assert(FALSE); /* Sequence event type not supported. */ +#if BUILD_VERSION < VERSION_J +#line 411 #endif - + assert(FALSE); /* Sequence event type not supported. */ +#if BUILD_VERSION >= VERSION_J break; +#endif } } - void __handleMIDIMsg(ALSeqPlayer *seqp, ALEvent *event) { ALVoice *voice; @@ -446,11 +445,12 @@ void __handleMIDIMsg(ALSeqPlayer *seqp, ALEvent *event) ALVoiceState *vstate; ALPan pan; ALFxRef fxref; - -#ifdef _DEBUG +#if BUILD_VERSION < VERSION_J +#line 434 +#endif /* sct 12/15/95 - Fixed assert to also allow seqp midi event types. */ assert(event->type == AL_SEQ_MIDI_EVT || event->type == AL_SEQP_MIDI_EVT); -#endif + status = midi->status & AL_MIDI_StatusMask; chan = midi->status & AL_MIDI_ChannelMask; @@ -722,16 +722,16 @@ void __handleMIDIMsg(ALSeqPlayer *seqp, ALEvent *event) case (AL_MIDI_FX3_CTRL): default: break; - } break; case (AL_MIDI_ProgramChange): /* sct 1/16/96 - We must have a valid bank in order to process the program change. */ - -#ifdef _DEBUG - assert(seqp->bank != NULL); +#if BUILD_VERSION < VERSION_J +#line 713 #endif + assert(seqp->bank != NULL); + if (key < seqp->bank->instCount) { ALInstrument *inst = seqp->bank->instArray[key]; @@ -873,7 +873,6 @@ ALVoiceState *__lookupVoice(ALSeqPlayer *seqp, u8 key, u8 channel) return 0; } - #if 0 ALSound *__lookupSound(ALSeqPlayer *seqp, u8 key, u8 vel, u8 chan) { @@ -902,10 +901,11 @@ ALSound *__lookupSoundQuick(ALSeqPlayer *seqp, u8 key, u8 vel, u8 chan) s32 r = inst->soundCount; s32 i; ALKeyMap *keymap; - -#ifdef _DEBUG - assert(inst != NULL); /* sct 10/31/95 - If inst is NULL, then the seqp probably wasn't setup correctly. */ +#if BUILD_VERSION < VERSION_J +#line 885 #endif + assert(inst != NULL); /* sct 10/31/95 - If inst is NULL, then the seqp probably wasn't setup correctly. */ + while (r >= l) { i = (l+r)/2; diff --git a/lib/ultralib/src/audio/sndp.h b/lib/ultralib/src/audio/sndp.h index e21739d..17d7015 100644 --- a/lib/ultralib/src/audio/sndp.h +++ b/lib/ultralib/src/audio/sndp.h @@ -53,7 +53,7 @@ typedef struct { ALSound *sound; /* sound referenced here */ s16 priority; f32 pitch; /* current playback pitch */ - s32 state; /* game_play state for this sound */ + s32 state; /* play state for this sound */ s16 vol; /* volume - combined with volume from bank */ ALPan pan; /* pan - 0 = left, 127 = right */ u8 fxMix; /* wet/dry mix - 0 = dry, 127 = wet */ diff --git a/lib/ultralib/src/audio/sndplayer.c b/lib/ultralib/src/audio/sndplayer.c index 8f44b43..f2d7b56 100644 --- a/lib/ultralib/src/audio/sndplayer.c +++ b/lib/ultralib/src/audio/sndplayer.c @@ -80,7 +80,9 @@ ALMicroTime _sndpVoiceHandler(void *node) switch (sndp->nextEvent.type) { case (AL_SNDP_API_EVT): evt.common.type = AL_SNDP_API_EVT; - evt.common.state = (ALSoundState*)-1; +#if BUILD_VERSION >= VERSION_K + evt.common.state = (ALSoundState*)-1; +#endif alEvtqPostEvent(&sndp->evtq, (ALEvent *)&evt, sndp->frameTime); break; @@ -230,9 +232,7 @@ void _handleEvent(ALSndPlayer *sndp, ALSndpEvent *event) break; } } - -static -void _removeEvents(ALEventQueue *evtq, ALSoundState *state) +static void _removeEvents(ALEventQueue *evtq, ALSoundState *state) { ALLink *thisNode; ALLink *nextNode; @@ -260,8 +260,6 @@ void _removeEvents(ALEventQueue *evtq, ALSoundState *state) osSetIntMask(mask); } - - /* This routine safely divides a signed 32-bit integer by a floating point value. It avoids overflow by using @@ -275,17 +273,18 @@ void _removeEvents(ALEventQueue *evtq, ALSoundState *state) very small pitch ratios can cause the reult to overflow, causing a floating point exception. */ -static -s32 _DivS32ByF32 (s32 i, f32 f) +#if BUILD_VERSION == VERSION_J // Adjust line numbers to match assert +#line 277 +#elif BUILD_VERSION < VERSION_J +#line 278 +#endif +static s32 _DivS32ByF32 (s32 i, f32 f) { #define INT_MAX 2147483647 /* Should be in a limits.h file. */ - f64 rd; int ri; -#ifdef _DEBUG assert(f!=0); /* Caller must make sure we do not divide by zero! */ -#endif rd = i/f; /* Store result as a double to avoid overflow. */ diff --git a/lib/ultralib/src/audio/synsetfxmix.c b/lib/ultralib/src/audio/synsetfxmix.c index 8c156ab..c787103 100644 --- a/lib/ultralib/src/audio/synsetfxmix.c +++ b/lib/ultralib/src/audio/synsetfxmix.c @@ -39,9 +39,18 @@ void alSynSetFXMix(ALSynth *synth, ALVoice *v, u8 fxmix) */ update->delta = synth->paramSamples + v->pvoice->offset; update->type = AL_FILTER_SET_FXAMT; - if (fxmix > 127) +#if BUILD_VERSION >= VERSION_J + if (fxmix > 127) { fxmix = 127; - update->data.i = fxmix; + } + update->data.i = fxmix; +#else + if (fxmix < 0) { // Not possible + update->data.i = -fxmix; + } else { + update->data.i = fxmix; + } +#endif update->next = 0; f = v->pvoice->channelKnob; diff --git a/lib/ultralib/src/audio/synstartvoiceparam.c b/lib/ultralib/src/audio/synstartvoiceparam.c index dbede0f..8d1a54b 100644 --- a/lib/ultralib/src/audio/synstartvoiceparam.c +++ b/lib/ultralib/src/audio/synstartvoiceparam.c @@ -23,6 +23,10 @@ #include <ultraerror.h> #include <os_internal.h> +#if BUILD_VERSION < VERSION_J +#ident "$Revision: 1.17 $" +#endif + void alSynStartVoiceParams(ALSynth *s, ALVoice *v, ALWaveTable *w, f32 pitch, s16 vol, ALPan pan, u8 fxmix, ALMicroTime t) @@ -37,8 +41,15 @@ void alSynStartVoiceParams(ALSynth *s, ALVoice *v, ALWaveTable *w, update = (ALStartParamAlt *)__allocParam(); ALFailIf(update == 0, ERR_ALSYN_NO_UPDATE); - if (fxmix > 127) +#if BUILD_VERSION >= VERSION_J + if (fxmix > 127) { fxmix = 127; + } +#else + if (fxmix < 0) { // Not possible + fxmix = -fxmix; + } +#endif /* * set offset and fxmix data diff --git a/lib/ultralib/src/audio/synthInternals.h b/lib/ultralib/src/audio/synthInternals.h index 07c08bc..c6c476c 100644 --- a/lib/ultralib/src/audio/synthInternals.h +++ b/lib/ultralib/src/audio/synthInternals.h @@ -24,6 +24,7 @@ #define __audioInternals__ #include <libaudio.h> +#include <PR/os_version.h> /* * filter message ids @@ -332,6 +333,11 @@ void _collectPVoices(ALSynth *drvr); s32 _timeToSamples(ALSynth *ALSynth, s32 micros); ALMicroTime _samplesToTime(ALSynth *synth, s32 samples); +// This was renamed to have a leading underscore in 2.0J +#if BUILD_VERSION < VERSION_J +#define _init_lpfilter init_lpfilter +#endif + void _init_lpfilter(ALLowPass *lp); #endif diff --git a/lib/ultralib/src/audio/synthesizer.c b/lib/ultralib/src/audio/synthesizer.c index e499691..9123874 100644 --- a/lib/ultralib/src/audio/synthesizer.c +++ b/lib/ultralib/src/audio/synthesizer.c @@ -17,7 +17,7 @@ *====================================================================*/ #include "synthInternals.h" #include <assert.h> - +#include <PR/os_version.h> // TODO: this comes from a header #ident "$Revision: 1.17 $" @@ -281,7 +281,6 @@ void _freePVoice(ALSynth *drvr, PVoice *pvoice) alLink((ALLink *)pvoice, &drvr->pLameList); } - /* Add 0.5 to adjust the average affect of the truncation error produced by casting @@ -303,10 +302,10 @@ static s32 __nextSampleTime(ALSynth *drvr, ALPlayer **client) { ALMicroTime delta = 0x7fffffff; /* max delta for s32 */ ALPlayer *cl; - -#ifdef _DEBUG - assert(drvr->head); +#if BUILD_VERSION < VERSION_J // Adjust line numbers to match assert +#line 306 #endif + assert(drvr->head); *client = 0; diff --git a/lib/ultralib/src/debug/assert.c b/lib/ultralib/src/debug/assert.c index 4bf6f1e..ab7e313 100644 --- a/lib/ultralib/src/debug/assert.c +++ b/lib/ultralib/src/debug/assert.c @@ -5,6 +5,8 @@ void __assertBreak(void); void __assert(const char* exp, const char* filename, int line) { +#ifndef _FINALROM osSyncPrintf("\nASSERTION FAULT: %s, %d: \"%s\"\n", filename, line, exp); __assertBreak; // Doesn't actually do anything, but is needed for matching +#endif } diff --git a/lib/ultralib/src/debug/assertbreak.s b/lib/ultralib/src/debug/assertbreak.s index 2837980..69de71d 100644 --- a/lib/ultralib/src/debug/assertbreak.s +++ b/lib/ultralib/src/debug/assertbreak.s @@ -1,4 +1,6 @@ -#ifndef _FINALROM +#include "PR/os_version.h" + +#if !defined(_FINALROM) || BUILD_VERSION < VERSION_J #include "sys/asm.h" #include "sys/regdef.h" diff --git a/lib/ultralib/src/debug/profile.c b/lib/ultralib/src/debug/profile.c index e98d192..47b19d8 100644 --- a/lib/ultralib/src/debug/profile.c +++ b/lib/ultralib/src/debug/profile.c @@ -85,7 +85,7 @@ void osProfileInit(OSProf* profp, u32 profcnt) { u32 i; OSProf* t; -#ifndef NDEBUG +#if !defined(NDEBUG) && BUILD_VERSION >= VERSION_K if (__osProfileActive) { __osError(ERR_OSPROFILEINIT_STR, 0); return; diff --git a/lib/ultralib/src/debug/threadprofilestop.c b/lib/ultralib/src/debug/threadprofilestop.c index 7cc20e7..4803620 100644 --- a/lib/ultralib/src/debug/threadprofilestop.c +++ b/lib/ultralib/src/debug/threadprofilestop.c @@ -10,8 +10,13 @@ void osThreadProfileStop(void) { #ifndef NDEBUG if (__osThprofFlag == 0) { +#if BUILD_VERSION >= VERSION_L __osRestoreInt(saveMask); __osError(138, 0); +#else + __osError(138, 0); + __osRestoreInt(saveMask); +#endif return; } #endif @@ -23,10 +28,14 @@ void osThreadProfileStop(void) { thprof[id].time += now_time - __osThprofLastTimer; } else { #ifndef NDEBUG +#if BUILD_VERSION >= VERSION_L __osRestoreInt(saveMask); +#endif __osError(147, 1, id); +#if BUILD_VERSION >= VERSION_L saveMask = __osDisableInt(); #endif +#endif } } __osThprofFunc = NULL; diff --git a/lib/ultralib/src/error/commonerror.c b/lib/ultralib/src/error/commonerror.c index 7c60755..5a6f1c9 100644 --- a/lib/ultralib/src/error/commonerror.c +++ b/lib/ultralib/src/error/commonerror.c @@ -8,8 +8,16 @@ #ifndef _FINALROM +void __osSyncVPrintf(const char* fmt, va_list args); + static u32 errorLogData[19] ALIGNED(8); -static OSLog errorLog = { OS_ERROR_MAGIC, 76, errorLogData, 0, 0 }; +static OSLog errorLog = { + OS_ERROR_MAGIC, // magic + sizeof(errorLogData), // len + errorLogData, // base + 0, //startCount + 0, //writeOffset +}; static void __commonErrorHandler(s16 code, s16 numArgs, ...); OSErrorHandler __osCommonHandler = __commonErrorHandler; @@ -126,7 +134,7 @@ const char* __os_error_message[] = { "Synthesizer: no free updates", "alSndPDeallocate: attempt to deallocate a sound which is playing", "alSndpDelete: attempt to delete player with playing sounds", - "alSndpPlay: attempt to game_play a sound which is playing", + "alSndpPlay: attempt to play a sound which is playing", "alSndpSetSound: sound id (%d) out of range (0 - %d)", "alSndpSetPriority: sound id (%d) out of range (0 - %d)", "alSndpSet Parameter: target (%d) out of range (0 - %d)", diff --git a/lib/ultralib/src/error/error.c b/lib/ultralib/src/error/error.c new file mode 100644 index 0000000..3f9ae2d --- /dev/null +++ b/lib/ultralib/src/error/error.c @@ -0,0 +1,30 @@ +// This file was removed in 2.0J +#include "stdarg.h" +#include "PR/os_internal.h" +#include "PR/ultralog.h" +#include "PR/ultraerror.h" +#include "macros.h" + +void __osLogWrite(OSLog* log, s16 code, s16 numArgs, va_list argPtr); +static void __osDefaultHandler(s16 code, s16 numArgs, ...); + +static u32 errorLogData[19] ALIGNED(8); +static OSLog errorLog ALIGNED(8) = { + OS_ERROR_MAGIC, // magic + sizeof(errorLogData), // len + errorLogData, // base + 0, //startCount + 0, //writeOffset +}; + +OSErrorHandler __osErrorHandler = __osDefaultHandler; + +static void __osDefaultHandler(s16 code, s16 numArgs, ...) { + va_list argPtr; + va_start(argPtr, numArgs); + + __osLogWrite(&errorLog, code, numArgs, argPtr); + osFlushLog(&errorLog); + + va_end(argPtr); +} diff --git a/lib/ultralib/src/error/errorasm.s b/lib/ultralib/src/error/errorasm.s index c3e3120..10f3561 100644 --- a/lib/ultralib/src/error/errorasm.s +++ b/lib/ultralib/src/error/errorasm.s @@ -1,11 +1,31 @@ -#ifndef _FINALROM +#include "PR/os_version.h" + +#if !defined(_FINALROM) || BUILD_VERSION < VERSION_J #include "sys/asm.h" #include "sys/regdef.h" +#include "PR/os_version.h" LEAF(__osError) +#if BUILD_VERSION < VERSION_J + lw t0,__osErrorHandler + beqz t0,1f + jr t0 +#elif BUILD_VERSION < VERSION_K + lw t0,__kmc_pt_mode + bnez t0,_kmc_mode + + lw t0,__osErrorHandler + beqz t0,1f + jr t0 +_kmc_mode: + lw t0,__kmcErrorHandler + beqz t0,1f + jr t0 +#else lw t0,__osCommonHandler beqz t0,1f - jr t0 + jr t0 +#endif 1: j ra END(__osError) diff --git a/lib/ultralib/src/flash/flashgetaddr.c b/lib/ultralib/src/flash/flashgetaddr.c index dafcab1..a530947 100644 --- a/lib/ultralib/src/flash/flashgetaddr.c +++ b/lib/ultralib/src/flash/flashgetaddr.c @@ -5,9 +5,10 @@ u32 __osFlashGetAddr(u32 page_num) { u32 devAddr; if (__osFlashVersion == OLD_FLASH) { - devAddr = page_num * 64; + // Account for hardware bug in old flash where the address bits are shifted 1-off where they should be + devAddr = page_num * (FLASH_BLOCK_SIZE >> 1); } else { - devAddr = page_num * 128; + devAddr = page_num * FLASH_BLOCK_SIZE; } return devAddr; diff --git a/lib/ultralib/src/gt/dumpturbo.c b/lib/ultralib/src/gt/dumpturbo.c index 59930bc..02c0e63 100644 --- a/lib/ultralib/src/gt/dumpturbo.c +++ b/lib/ultralib/src/gt/dumpturbo.c @@ -20,6 +20,10 @@ #include <gt.h> #include "macros.h" +#if BUILD_VERSION < VERSION_J +#ident "$Revision: 1.4 $" +#endif + #undef PRINTF #define PRINTF rmonPrintf diff --git a/lib/ultralib/src/gu/mtxcatf.c b/lib/ultralib/src/gu/mtxcatf.c new file mode 100644 index 0000000..6572e0f --- /dev/null +++ b/lib/ultralib/src/gu/mtxcatf.c @@ -0,0 +1,63 @@ +
+/*
+ * Copyright 1995, Silicon Graphics, Inc.
+ * ALL RIGHTS RESERVED
+ *
+ * UNPUBLISHED -- Rights reserved under the copyright laws of the United
+ * States. Use of a copyright notice is precautionary only and does not
+ * imply publication or disclosure.
+ *
+ * U.S. GOVERNMENT RESTRICTED RIGHTS LEGEND:
+ * Use, duplication or disclosure by the Government is subject to restrictions
+ * as set forth in FAR 52.227.19(c)(2) or subparagraph (c)(1)(ii) of the Rights
+ * in Technical Data and Computer Software clause at DFARS 252.227-7013 and/or
+ * in similar or successor clauses in the FAR, or the DOD or NASA FAR
+ * Supplement. Contractor/manufacturer is Silicon Graphics, Inc.,
+ * 2011 N. Shoreline Blvd. Mountain View, CA 94039-7311.
+ *
+ * THE CONTENT OF THIS WORK CONTAINS CONFIDENTIAL AND PROPRIETARY
+ * INFORMATION OF SILICON GRAPHICS, INC. ANY DUPLICATION, MODIFICATION,
+ * DISTRIBUTION, OR DISCLOSURE IN ANY FORM, IN WHOLE, OR IN PART, IS STRICTLY
+ * PROHIBITED WITHOUT THE PRIOR EXPRESS WRITTEN PERMISSION OF SILICON
+ * GRAPHICS, INC.
+ *
+ */
+
+/*
+ * File: mtxcatf.c
+ * Creator: hsa@sgi.com
+ * Create Date: Thu Nov 2 13:03:02 PST 1995
+ *
+ */
+
+#include "guint.h"
+
+void guMtxCatF(float mf[4][4], float nf[4][4], float res[4][4])
+{
+ int i, j, k;
+ float temp[4][4];
+
+ for (i=0; i<4; i++) {
+ for (j=0; j<4; j++) {
+ temp[i][j] = 0.0;
+ for (k=0; k<4; k++) {
+ temp[i][j] += mf[i][k] * nf[k][j];
+ }
+ }
+ }
+
+ /* make sure we handle case where result is an input */
+ for (i=0; i<4; i++) {
+ for (j=0; j<4; j++) {
+ res[i][j] = temp[i][j];
+ }
+ }
+}
+
+void guMtxXFMF(float mf[4][4], float x, float y, float z, float *ox, float *oy, float *oz)
+{
+ *ox = mf[0][0]*x + mf[1][0]*y + mf[2][0]*z + mf[3][0];
+ *oy = mf[0][1]*x + mf[1][1]*y + mf[2][1]*z + mf[3][1];
+ *oz = mf[0][2]*x + mf[1][2]*y + mf[2][2]*z + mf[3][2];
+}
+
diff --git a/lib/ultralib/src/gu/mtxcatl.c b/lib/ultralib/src/gu/mtxcatl.c index 11f43a1..3f165bb 100644 --- a/lib/ultralib/src/gu/mtxcatl.c +++ b/lib/ultralib/src/gu/mtxcatl.c @@ -31,6 +31,7 @@ */ #include "guint.h" +#include "os_version.h" void guMtxCatL(Mtx *m, Mtx *n, Mtx *res) { @@ -43,3 +44,14 @@ void guMtxCatL(Mtx *m, Mtx *n, Mtx *res) guMtxF2L(resf, res); } + +#if BUILD_VERSION < VERSION_K +void guMtxXFML(Mtx *m, float x, float y, float z, float *ox, float *oy, float *oz) +{ + float mf[4][4]; + + guMtxL2F(mf, m); + + guMtxXFMF(mf, x, y, z, ox, oy, oz); +} +#endif diff --git a/lib/ultralib/src/gu/normalize.c b/lib/ultralib/src/gu/normalize.c new file mode 100644 index 0000000..6884b29 --- /dev/null +++ b/lib/ultralib/src/gu/normalize.c @@ -0,0 +1,23 @@ +/**************************************************************************
+ * *
+ * Copyright (C) 1994, Silicon Graphics, Inc. *
+ * *
+ * These coded instructions, statements, and computer programs contain *
+ * unpublished proprietary information of Silicon Graphics, Inc., and *
+ * are protected by Federal copyright law. They may not be disclosed *
+ * to third parties or copied or duplicated in any form, in whole or *
+ * in part, without the prior written consent of Silicon Graphics, Inc. *
+ * *
+ **************************************************************************/
+
+#include "guint.h"
+
+void guNormalize(float *x, float *y, float *z)
+{
+ float m;
+
+ m = 1/sqrtf((*x)*(*x) + (*y)*(*y) + (*z)*(*z));
+ *x *= m;
+ *y *= m;
+ *z *= m;
+}
diff --git a/lib/ultralib/src/gu/parse_gbi.c b/lib/ultralib/src/gu/parse_gbi.c index 21cf9c3..d736d4a 100644 --- a/lib/ultralib/src/gu/parse_gbi.c +++ b/lib/ultralib/src/gu/parse_gbi.c @@ -77,7 +77,11 @@ void guParseGbiDL(u64 *gbi_dl, u32 nbytes, u8 flags) word0 = (u32*)curGfx; /* get ptr to first word */ param = ((*word0) & 0x00ff0000) >> 16; /* get param */ word1 = word0 + 1; /* get pointer to second word */ +#if BUILD_VERSION >= VERSION_J seg = ((*word1) & 0x0f000000) >> 24; /* get the segment */ +#else + seg = ((*word1) & 0xff000000) >> 24; /* get the segment */ +#endif paddr = segments[seg] + ((*word1) & 0x00ffffff); vaddr = (Gfx*)osPhysicalToVirtual(paddr); len = 1; @@ -109,7 +113,11 @@ void guParseGbiDL(u64 *gbi_dl, u32 nbytes, u8 flags) case G_MTX: word0 = (u32*)curGfx; /* get ptr to first word */ word1 = word0 + 1; /* get pointer to second word */ +#if BUILD_VERSION >= VERSION_J seg = ((*word1) & 0x0f000000) >> 24; /* get the segment */ +#else + seg = ((*word1) & 0xff000000) >> 24; /* get the segment */ +#endif paddr = segments[seg] + ((*word1) & 0x00ffffff); vaddr = (Gfx*)osPhysicalToVirtual(paddr); len = (*word0) & 0x0000ffff; diff --git a/lib/ultralib/src/gu/rotate.c b/lib/ultralib/src/gu/rotate.c index eceb096..c843d9f 100644 --- a/lib/ultralib/src/gu/rotate.c +++ b/lib/ultralib/src/gu/rotate.c @@ -11,6 +11,7 @@ **************************************************************************/ #include "guint.h" +#include "os_version.h" void guRotateF(float mf[4][4], float a, float x, float y, float z) { @@ -18,9 +19,11 @@ void guRotateF(float mf[4][4], float a, float x, float y, float z) float sine; float cosine; float ab, bc, ca, t; +#if BUILD_VERSION >= VERSION_K float xxsine; float yxsine; float zxsine; +#endif guNormalize(&x, &y, &z); a *= dtor; @@ -33,9 +36,15 @@ void guRotateF(float mf[4][4], float a, float x, float y, float z) guMtxIdentF(mf); +#if BUILD_VERSION >= VERSION_K xxsine = x * sine; yxsine = y * sine; zxsine = z * sine; +#else + #define xxsine (x * sine) + #define yxsine (y * sine) + #define zxsine (z * sine) +#endif t = x*x; mf[0][0] = t+cosine*(1-t); diff --git a/lib/ultralib/src/gu/scale.c b/lib/ultralib/src/gu/scale.c new file mode 100644 index 0000000..1523cd0 --- /dev/null +++ b/lib/ultralib/src/gu/scale.c @@ -0,0 +1,32 @@ +/**************************************************************************
+ * *
+ * Copyright (C) 1994, Silicon Graphics, Inc. *
+ * *
+ * These coded instructions, statements, and computer programs contain *
+ * unpublished proprietary information of Silicon Graphics, Inc., and *
+ * are protected by Federal copyright law. They may not be disclosed *
+ * to third parties or copied or duplicated in any form, in whole or *
+ * in part, without the prior written consent of Silicon Graphics, Inc. *
+ * *
+ **************************************************************************/
+
+#include "guint.h"
+
+void guScaleF(float mf[4][4], float x, float y, float z)
+{
+ guMtxIdentF(mf);
+
+ mf[0][0] = x;
+ mf[1][1] = y;
+ mf[2][2] = z;
+ mf[3][3] = 1;
+}
+
+void guScale(Mtx *m, float x, float y, float z)
+{
+ Matrix mf;
+
+ guScaleF(mf, x, y, z);
+
+ guMtxF2L(mf, m);
+}
diff --git a/lib/ultralib/src/gu/translate.c b/lib/ultralib/src/gu/translate.c new file mode 100644 index 0000000..f086f39 --- /dev/null +++ b/lib/ultralib/src/gu/translate.c @@ -0,0 +1,31 @@ +/**************************************************************************
+ * *
+ * Copyright (C) 1994, Silicon Graphics, Inc. *
+ * *
+ * These coded instructions, statements, and computer programs contain *
+ * unpublished proprietary information of Silicon Graphics, Inc., and *
+ * are protected by Federal copyright law. They may not be disclosed *
+ * to third parties or copied or duplicated in any form, in whole or *
+ * in part, without the prior written consent of Silicon Graphics, Inc. *
+ * *
+ **************************************************************************/
+
+#include "guint.h"
+
+void guTranslateF(float mf[4][4], float x, float y, float z)
+{
+ guMtxIdentF(mf);
+
+ mf[3][0] = x;
+ mf[3][1] = y;
+ mf[3][2] = z;
+}
+
+void guTranslate(Mtx *m, float x, float y, float z)
+{
+ Matrix mf;
+
+ guTranslateF(mf, x, y, z);
+
+ guMtxF2L(mf, m);
+}
diff --git a/lib/ultralib/src/gu/us2dex.c b/lib/ultralib/src/gu/us2dex.c index cf977f9..92f42bb 100644 --- a/lib/ultralib/src/gu/us2dex.c +++ b/lib/ultralib/src/gu/us2dex.c @@ -24,21 +24,23 @@ void guS2DInitBg(uObjBg *bg) { u16 tmemUse; u16 shift; +#if BUILD_VERSION >= VERSION_J u32 tsize; +#endif /* * Get the useable volume for TMEM - * If imageFmt is CI then TLUT will use half + * If imageFmt is CI then TLUT will use half. */ tmemUse = (bg->b.imageFmt == G_IM_FMT_CI) ? 256 : 512; /* - * Get shift volume for conversion to TMEM word + * Get shift volume for conversion to TMEM word. */ shift = 6 - bg->b.imageSiz; /* - * Set other parameters for Load Mode + * Set other parameters for Load Mode. */ if (bg->b.imageLoad == G_BGLT_LOADBLOCK){ bg->b.tmemW = bg->b.imageW >> shift; @@ -48,6 +50,7 @@ void guS2DInitBg(uObjBg *bg) bg->b.tmemLoadSH = (bg->b.tmemSize>>1) - 1; bg->b.tmemLoadTH = GS_CALC_DXT(bg->b.tmemW); } else { +#if BUILD_VERSION >= VERSION_J bg->b.tmemW = (bg->b.frameW >> shift) + 3; bg->b.tmemH = (tmemUse / bg->b.tmemW) << 2; bg->b.tmemSizeW = (bg->b.imageW >> shift) * 2; @@ -55,6 +58,14 @@ void guS2DInitBg(uObjBg *bg) bg->b.tmemSize = tsize >> 16; bg->b.tmemLoadSH = tsize & 0xffff; bg->b.tmemLoadTH = bg->b.tmemH - 1; +#else + bg->b.tmemW = (bg->b.frameW >> shift) + 1; + bg->b.tmemH = (tmemUse / bg->b.tmemW) << 2; + bg->b.tmemSizeW = (bg->b.imageW >> shift) * 2; + bg->b.tmemSize = bg->b.tmemH * bg->b.tmemSizeW; + bg->b.tmemLoadSH = (bg->b.tmemW<<4) - 1; + bg->b.tmemLoadTH = bg->b.tmemH - 1; +#endif } return; } diff --git a/lib/ultralib/src/gu/us2dex_emu.c b/lib/ultralib/src/gu/us2dex_emu.c index e79ff7b..c0a9e30 100644 --- a/lib/ultralib/src/gu/us2dex_emu.c +++ b/lib/ultralib/src/gu/us2dex_emu.c @@ -27,7 +27,9 @@ static u32 imageTop; static s16 tmemSrcLines; /* Addition 99/05/31(Y) */ +#if BUILD_VERSION >= VERSION_K static s8 bgflg; +#endif /*----------------------------------------------------------------------------* * Set scissoring parameters @@ -63,8 +65,12 @@ static void tmemLoad_B(Gfx **pkt, u32 imagePtr, s16 loadLines, s16 tmemSH) /* [LoadTile] CMD=0x34 TILE=7 SH=TMEMW*16-1 TMEMH*4-1 */ (*pkt)->words.w0 = (G_LOADTILE<<24)|0x000000; /* addition 99/5/31(Y) */ +#if BUILD_VERSION >= VERSION_K if(bgflg==3) (*pkt)->words.w1 = 0x07000000 | (tmemSH-1)<<16; else (*pkt)->words.w1 = 0x07000000 | (tmemSH-1)<<16 | (loadLines<<2)-1; +#else + (*pkt)->words.w1 = 0x07000000 | (tmemSH-1)<<16 | (loadLines<<2)-1; +#endif (*pkt) ++; } @@ -188,9 +194,11 @@ void guS2DEmuBgRect1Cyc(Gfx **pkt, uObjBg *bg) scaleH = bg->s.scaleH; /* addition 99/05/31(Y) */ +#if BUILD_VERSION >= VERSION_K bgflg=bg->s.imageSiz; if(scaleW==0) scaleW=1; if(scaleH==0) scaleH=1; +#endif { @@ -327,14 +335,20 @@ end */ // o Cut image width end number at TMEM Word boundary. // o tmem width + 1 when start position not in agreement with Word boundary */ /* addition 99/05/31(Y) */ +#if BUILD_VERSION >= VERSION_K if(bgflg==3){ tmemSize=480; imageSliceWmax = 0x2800; } else{ imageSliceWmax = (((s32)bg->s.frameW * (s32)scaleW)>>7) + (flagBilerp<<5); + if (imageSliceWmax > imageSrcW) imageSliceWmax = imageSrcW; + } +#else + imageSliceWmax = (((s32)bg->s.frameW * (s32)scaleW)>>7) + (flagBilerp<<5); if (imageSliceWmax > imageSrcW) imageSliceWmax = imageSrcW; - } +#endif + tmemSliceWmax = (imageSliceWmax + tmemMask) / tmemShift + 1; /* Get TMEM/image/frame line number that can be loaded at once */ @@ -390,6 +404,7 @@ end */ /* u32 rdpSetTimg_w0; u32 rdpSetTile_w0; */ /* Addition 99/05/31(Y) */ +#if BUILD_VERSION >= VERSION_K if(bgflg==3){ rdpSetTimg_w0 = (G_SETTIMG<<24)+0x180000+(imageSrcWsize>>1)-1; rdpSetTile_w0 = (G_SETTILE<<24)+0x180000+(tmemSliceWmax<<9); @@ -398,6 +413,10 @@ end */ rdpSetTimg_w0 = (G_SETTIMG<<24)+0x100000+(imageSrcWsize>>1)-1; rdpSetTile_w0 = (G_SETTILE<<24)+0x100000+(tmemSliceWmax<<9); } +#else + rdpSetTimg_w0 = (G_SETTIMG<<24)+0x100000+(imageSrcWsize>>1)-1; + rdpSetTile_w0 = (G_SETTILE<<24)+0x100000+(tmemSliceWmax<<9); +#endif /* [SetTile:7] */ (*pkt)->words.w0 = rdpSetTile_w0; (*pkt)->words.w1 = 0x07000000; diff --git a/lib/ultralib/src/host/host_ptn64.c b/lib/ultralib/src/host/host_ptn64.c index 6b33c4e..54e5e9e 100644 --- a/lib/ultralib/src/host/host_ptn64.c +++ b/lib/ultralib/src/host/host_ptn64.c @@ -1,9 +1,12 @@ #include "PR/os_internal.h" +#include "PR/os_version.h" #include "PR/rcp.h" #include "memory.h" #include "macros.h" +#if BUILD_VERSION >= VERSION_J || !defined(_FINALROM) + static volatile unsigned int* ptwtmode = (unsigned*)0xbff08014; static volatile unsigned int* ptstat = (unsigned*)0xbff08004; static volatile unsigned int* ptport = (unsigned*)0xbff08000; @@ -202,3 +205,5 @@ osWriteHost_ret: __osPiRelAccess(); return; } + +#endif diff --git a/lib/ultralib/src/io/aisetfreq.c b/lib/ultralib/src/io/aisetfreq.c index 55cf2af..e41d6fa 100644 --- a/lib/ultralib/src/io/aisetfreq.c +++ b/lib/ultralib/src/io/aisetfreq.c @@ -46,5 +46,8 @@ s32 osAiSetFrequency(u32 frequency) { IO_WRITE(AI_DACRATE_REG, dacRate - 1); IO_WRITE(AI_BITRATE_REG, bitRate - 1); +#if BUILD_VERSION < VERSION_J + IO_WRITE(AI_CONTROL_REG, AI_CONTROL_DMA_ON); +#endif return osViClock / (s32)dacRate; } diff --git a/lib/ultralib/src/io/aisetnextbuf.c b/lib/ultralib/src/io/aisetnextbuf.c index 23fd81b..041b61d 100644 --- a/lib/ultralib/src/io/aisetnextbuf.c +++ b/lib/ultralib/src/io/aisetnextbuf.c @@ -10,9 +10,11 @@ s32 osAiSetNextBuffer(void* bufPtr, u32 size) { static u8 hdwrBugFlag = FALSE; char* bptr; +#if BUILD_VERSION >= VERSION_J if (__osAiDeviceBusy()) { return -1; } +#endif #ifdef _DEBUG if ((u32)bufPtr & (8 - 1)) { @@ -38,6 +40,12 @@ s32 osAiSetNextBuffer(void* bufPtr, u32 size) { hdwrBugFlag = FALSE; } +#if BUILD_VERSION < VERSION_J + if (__osAiDeviceBusy()) { + return -1; + } +#endif + IO_WRITE(AI_DRAM_ADDR_REG, osVirtualToPhysical(bptr)); IO_WRITE(AI_LEN_REG, size); return 0; diff --git a/lib/ultralib/src/io/cartrominit.c b/lib/ultralib/src/io/cartrominit.c index 9651878..87aa8bb 100644 --- a/lib/ultralib/src/io/cartrominit.c +++ b/lib/ultralib/src/io/cartrominit.c @@ -1,9 +1,11 @@ #include "macros.h" +#include "PR/os_version.h" #include "PR/os_internal.h" #include "PR/R4300.h" #include "PR/rcp.h" #include "piint.h" +#if BUILD_VERSION >= VERSION_J OSPiHandle __CartRomHandle ALIGNED(8); OSPiHandle* osCartRomInit(void) { u32 value = 0; @@ -61,3 +63,33 @@ OSPiHandle* osCartRomInit(void) { return &__CartRomHandle; } +#else + +OSPiHandle CartRomHandle ALIGNED(8); +OSPiHandle* osCartRomInit(void) { + u32 domain = 0; + u32 saveMask; + + if (CartRomHandle.baseAddress == PHYS_TO_K1(PI_DOM1_ADDR2)) + return &CartRomHandle; + + CartRomHandle.type = DEVICE_TYPE_CART; + CartRomHandle.baseAddress = PHYS_TO_K1(PI_DOM1_ADDR2); + osPiRawReadIo(NULL, &domain); + CartRomHandle.latency = domain & 0xff; + CartRomHandle.pulse = (domain >> 8) & 0xff; + CartRomHandle.pageSize = (domain >> 0x10) & 0xf; + CartRomHandle.relDuration = (domain >> 0x14) & 0xf; + CartRomHandle.domain = PI_DOMAIN1; + CartRomHandle.speed = 0; + + bzero(&CartRomHandle.transferInfo, sizeof(__OSTranxInfo)); + + saveMask = __osDisableInt(); + CartRomHandle.next = __osPiTable; + __osPiTable = &CartRomHandle; + __osRestoreInt(saveMask); + + return &CartRomHandle; +} +#endif diff --git a/lib/ultralib/src/io/conteeplongwrite.c b/lib/ultralib/src/io/conteeplongwrite.c index c38acf8..c5668e1 100644 --- a/lib/ultralib/src/io/conteeplongwrite.c +++ b/lib/ultralib/src/io/conteeplongwrite.c @@ -9,7 +9,7 @@ s32 osEepromLongWrite(OSMesgQueue* mq, u8 address, u8* buffer, int length) { length -= EEPROM_BLOCK_SIZE; address++; buffer += EEPROM_BLOCK_SIZE; - osSetTimer(&__osEepromTimer, 562500, 0, &__osEepromTimerQ, &__osEepromTimerMsg); + osSetTimer(&__osEepromTimer, OS_USEC_TO_CYCLES(12000), 0, &__osEepromTimerQ, &__osEepromTimerMsg); osRecvMesg(&__osEepromTimerQ, NULL, OS_MESG_BLOCK); } diff --git a/lib/ultralib/src/io/conteepprobe.c b/lib/ultralib/src/io/conteepprobe.c index 5bee6a4..b19dc49 100644 --- a/lib/ultralib/src/io/conteepprobe.c +++ b/lib/ultralib/src/io/conteepprobe.c @@ -26,7 +26,9 @@ s32 osEepromProbe(OSMesgQueue* mq) { } } +#if BUILD_VERSION >= VERSION_L __osEepromRead16K = 0; +#endif __osSiRelAccess(); return ret; } diff --git a/lib/ultralib/src/io/conteepread.c b/lib/ultralib/src/io/conteepread.c index 708a976..2d334fa 100644 --- a/lib/ultralib/src/io/conteepread.c +++ b/lib/ultralib/src/io/conteepread.c @@ -4,7 +4,9 @@ #include "siint.h" OSPifRam __osEepPifRam ALIGNED(16); +#if BUILD_VERSION >= VERSION_L s32 __osEepromRead16K; +#endif static void __osPackEepReadData(u8 address); s32 osEepromRead(OSMesgQueue* mq, u8 address, u8* buffer) { @@ -20,6 +22,7 @@ s32 osEepromRead(OSMesgQueue* mq, u8 address, u8* buffer) { ret = __osEepStatus(mq, &sdata); type = sdata.type & (CONT_EEPROM | CONT_EEP16K); +#if BUILD_VERSION >= VERSION_J if (ret == 0) { switch (type) { case CONT_EEPROM: @@ -31,9 +34,12 @@ s32 osEepromRead(OSMesgQueue* mq, u8 address, u8* buffer) { if (address >= EEP16K_MAXBLOCKS) { // not technically possible ret = CONT_RANGE_ERROR; - } else { + } +#if BUILD_VERSION >= VERSION_L + else { __osEepromRead16K = 1; } +#endif break; default: ret = CONT_NO_RESPONSE_ERROR; @@ -44,6 +50,32 @@ s32 osEepromRead(OSMesgQueue* mq, u8 address, u8* buffer) { __osSiRelAccess(); return ret; } +#else + if (ret != 0) + { + __osSiRelAccess(); + return CONT_NO_RESPONSE_ERROR; + } else { + switch (type) { + case CONT_EEPROM: + if (address > EEPROM_MAXBLOCKS) { + __osSiRelAccess(); + return CONT_RANGE_ERROR; + } + break; + case CONT_EEPROM | CONT_EEP16K: + if (address > EEP16K_MAXBLOCKS) { + // not technically possible + __osSiRelAccess(); + return CONT_RANGE_ERROR; + } + break; + default: + __osSiRelAccess(); + return CONT_NO_RESPONSE_ERROR; + } + } +#endif while (sdata.status & CONT_EEPROM_BUSY) { __osEepStatus(mq, &sdata); @@ -78,6 +110,12 @@ static void __osPackEepReadData(u8 address) { __OSContEepromFormat eepromformat; int i; +#if BUILD_VERSION < VERSION_J + for (i = 0; i < ARRLEN(__osEepPifRam.ramarray); i++) { + __osEepPifRam.ramarray[i] = CONT_CMD_NOP; + } +#endif + __osEepPifRam.pifstatus = CONT_CMD_EXE; eepromformat.txsize = CONT_CMD_READ_EEPROM_TX; @@ -85,6 +123,12 @@ static void __osPackEepReadData(u8 address) { eepromformat.cmd = CONT_CMD_READ_EEPROM; eepromformat.address = address; +#if BUILD_VERSION < VERSION_J + for (i = 0; i < ARRLEN(eepromformat.data); i++) { + eepromformat.data[i] = 0; + } +#endif + for (i = 0; i < MAXCONTROLLERS; i++) { *ptr++ = 0; } diff --git a/lib/ultralib/src/io/conteepwrite.c b/lib/ultralib/src/io/conteepwrite.c index 5c4f4e2..7352430 100644 --- a/lib/ultralib/src/io/conteepwrite.c +++ b/lib/ultralib/src/io/conteepwrite.c @@ -6,17 +6,26 @@ static void __osPackEepWriteData(u8 address, u8* buffer); s32 osEepromWrite(OSMesgQueue* mq, u8 address, u8* buffer) { s32 ret = 0; +#if BUILD_VERSION < VERSION_J + int i; +#endif u16 type; u8* ptr = (u8*)&__osEepPifRam.ramarray; __OSContEepromFormat eepromformat; OSContStatus sdata; +#if BUILD_VERSION >= VERSION_L u8 temp[8]; +#endif __osSiGetAccess(); ret = __osEepStatus(mq, &sdata); +#if BUILD_VERSION < VERSION_J + ret = __osEepStatus(mq, &sdata); // Duplicate that was removed in 2.0J +#endif type = sdata.type & (CONT_EEPROM | CONT_EEP16K); +#if BUILD_VERSION >= VERSION_J if (ret == 0) { switch (type) { case CONT_EEPROM: @@ -28,12 +37,15 @@ s32 osEepromWrite(OSMesgQueue* mq, u8 address, u8* buffer) { if (address >= EEP16K_MAXBLOCKS) { // not technically possible ret = CONT_RANGE_ERROR; - } else if (__osEepromRead16K) { + } +#if BUILD_VERSION >= VERSION_L + else if (__osEepromRead16K) { __osEepromRead16K = 0; __osSiRelAccess(); osEepromRead(mq, (address ^ 1), temp); __osSiGetAccess(); } +#endif break; default: ret = CONT_NO_RESPONSE_ERROR; @@ -44,6 +56,32 @@ s32 osEepromWrite(OSMesgQueue* mq, u8 address, u8* buffer) { __osSiRelAccess(); return ret; } +#else + if (ret != 0) { + __osSiRelAccess(); + return CONT_NO_RESPONSE_ERROR; + } else { + switch (type) { + case CONT_EEPROM: + if (address > EEPROM_MAXBLOCKS) { + __osSiRelAccess(); + return -1; + } + + break; + case CONT_EEPROM | CONT_EEP16K: + if (address > EEP16K_MAXBLOCKS) { + // not technically possible + __osSiRelAccess(); + return -1; + } + break; + default: + __osSiRelAccess(); + return CONT_NO_RESPONSE_ERROR; + } + } +#endif while (sdata.status & CONT_EEPROM_BUSY) { __osEepStatus(mq, &sdata); @@ -57,7 +95,13 @@ s32 osEepromWrite(OSMesgQueue* mq, u8 address, u8* buffer) { osRecvMesg(mq, NULL, OS_MESG_BLOCK); // skip the first 4 bytes +#if BUILD_VERSION >= VERSION_J ptr += 4; +#else + for (i = 0; i < 4; i++) { + ptr++; + } +#endif eepromformat = *(__OSContEepromFormat*)ptr; @@ -72,6 +116,11 @@ static void __osPackEepWriteData(u8 address, u8* buffer) { __OSContEepromFormat eepromformat; int i; +#if BUILD_VERSION < VERSION_J + for (i = 0; i < ARRLEN(__osEepPifRam.ramarray); i++) { + __osEepPifRam.ramarray[i] = CONT_CMD_NOP; + } +#endif __osEepPifRam.pifstatus = CONT_CMD_EXE; eepromformat.txsize = CONT_CMD_WRITE_EEPROM_TX; @@ -123,7 +172,11 @@ s32 __osEepStatus(OSMesgQueue* mq, OSContStatus* data) { ret = __osSiRawStartDma(OS_WRITE, &__osEepPifRam); osRecvMesg(mq, NULL, OS_MESG_BLOCK); +#if BUILD_VERSION >= VERSION_J __osContLastCmd = CONT_CMD_END; +#else + __osContLastCmd = CONT_CMD_REQUEST_STATUS; +#endif ret = __osSiRawStartDma(OS_READ, &__osEepPifRam); osRecvMesg(mq, NULL, OS_MESG_BLOCK); diff --git a/lib/ultralib/src/io/contpfs.c b/lib/ultralib/src/io/contpfs.c index 5f3854d..c845a7d 100644 --- a/lib/ultralib/src/io/contpfs.c +++ b/lib/ultralib/src/io/contpfs.c @@ -1,11 +1,14 @@ #include "macros.h" #include "PR/os_internal.h" +#include "PR/os_version.h" #include "controller.h" #include "PR/rmon.h" +#if BUILD_VERSION >= VERSION_J __OSInode __osPfsInodeCache ALIGNED(8); s32 __osPfsInodeCacheChannel = -1; u8 __osPfsInodeCacheBank = 250; +#endif u16 __osSumcalc(u8* ptr, int length) { int i; @@ -14,9 +17,16 @@ u16 __osSumcalc(u8* ptr, int length) { for (i = 0; i < length; i++) { sum += *tmp++; +#if BUILD_VERSION < VERSION_J + sum = sum & 0xFFFF; +#endif } +#if BUILD_VERSION >= VERSION_J return sum & 0xFFFF; +#else + return sum; +#endif } s32 __osIdCheckSum(u16* ptr, u16* csum, u16* icsum) { @@ -40,18 +50,27 @@ s32 __osRepairPackId(OSPfs* pfs, __OSPackId* badid, __OSPackId* newid) { u8 comp[BLOCKSIZE]; u8 mask = 0; int i; - int j = 0; + int j; u16 index[4]; +#if BUILD_VERSION >= VERSION_J + j = 0; +#else + SET_ACTIVEBANK_TO_ZERO(); +#endif + newid->repaired = -1; newid->random = osGetCount(); newid->serial_mid = badid->serial_mid; newid->serial_low = badid->serial_low; - SET_ACTIVEBANK_TO_ZERO; - +#if BUILD_VERSION >= VERSION_J + SET_ACTIVEBANK_TO_ZERO(); +#else + j = 0; +#endif do { - ERRCK(__osPfsSelectBank(pfs, j)); + ERRCK(SELECT_BANK(pfs, j)); ERRCK(__osContRamRead(pfs->queue, pfs->channel, 0, temp)); temp[0] = j | 0x80; @@ -74,7 +93,7 @@ s32 __osRepairPackId(OSPfs* pfs, __OSPackId* badid, __OSPackId* newid) { } if (j > 0) { - ERRCK(__osPfsSelectBank(pfs, 0)); + ERRCK(SELECT_BANK(pfs, 0)); ERRCK(__osContRamRead(pfs->queue, pfs->channel, 0, (u8*)temp)); if (temp[0] != 0x80) { @@ -85,7 +104,11 @@ s32 __osRepairPackId(OSPfs* pfs, __OSPackId* badid, __OSPackId* newid) { j++; } while (j < PFS_MAX_BANKS); - SET_ACTIVEBANK_TO_ZERO; +#if BUILD_VERSION >= VERSION_J + SET_ACTIVEBANK_TO_ZERO(); +#else + ERRCK(SELECT_BANK(pfs, 0)); +#endif mask = (j > 0) ? 1 : 0; @@ -106,7 +129,11 @@ s32 __osRepairPackId(OSPfs* pfs, __OSPackId* badid, __OSPackId* newid) { for (i = 0; i < BLOCKSIZE; i++) { if (temp[i] != ((u8*)newid)[i]) { +#if BUILD_VERSION >= VERSION_J return PFS_ERR_DEVICE; +#else + return PFS_ERR_ID_FATAL; +#endif } } return 0; @@ -120,7 +147,7 @@ s32 __osCheckPackId(OSPfs* pfs, __OSPackId* temp) { int i; int j; - SET_ACTIVEBANK_TO_ZERO; + SET_ACTIVEBANK_TO_ZERO(); index[0] = PFS_ID_0AREA; index[1] = PFS_ID_1AREA; index[2] = PFS_ID_2AREA; @@ -147,6 +174,9 @@ s32 __osCheckPackId(OSPfs* pfs, __OSPackId* temp) { } s32 __osGetId(OSPfs* pfs) { +#if BUILD_VERSION < VERSION_J + int k; +#endif u16 sum; u16 isum; u8 temp[BLOCKSIZE]; @@ -154,7 +184,7 @@ s32 __osGetId(OSPfs* pfs) { s32 ret; __OSPackId* id; - SET_ACTIVEBANK_TO_ZERO; + SET_ACTIVEBANK_TO_ZERO(); ERRCK(__osContRamRead(pfs->queue, pfs->channel, PFS_ID_0AREA, (u8*)temp)); __osIdCheckSum((u16*)temp, &sum, &isum); id = (__OSPackId*)temp; @@ -179,7 +209,13 @@ s32 __osGetId(OSPfs* pfs) { } } +#if BUILD_VERSION >= VERSION_J bcopy(id, pfs->id, BLOCKSIZE); +#else + for (k = 0; k < ARRLEN(pfs->id); k++) { + pfs->id[k] = ((u8 *)id)[k]; + } +#endif pfs->version = id->version; pfs->banks = id->banks; pfs->inode_start_page = 1 + DEF_DIR_PAGES + (2 * pfs->banks); @@ -192,9 +228,13 @@ s32 __osGetId(OSPfs* pfs) { } s32 __osCheckId(OSPfs* pfs) { +#if BUILD_VERSION < VERSION_J + int k; +#endif u8 temp[BLOCKSIZE]; s32 ret; +#if BUILD_VERSION >= VERSION_J if (pfs->activebank != 0) { ret = __osPfsSelectBank(pfs, 0); @@ -206,6 +246,9 @@ s32 __osCheckId(OSPfs* pfs) { return ret; } } +#else + SET_ACTIVEBANK_TO_ZERO(); +#endif ret = __osContRamRead(pfs->queue, pfs->channel, PFS_ID_0AREA, (u8*)temp); @@ -216,9 +259,16 @@ s32 __osCheckId(OSPfs* pfs) { ERRCK(__osContRamRead(pfs->queue, pfs->channel, PFS_ID_0AREA, (u8*)temp)); } +#if BUILD_VERSION >= VERSION_J if (bcmp(pfs->id, temp, BLOCKSIZE) != 0) { return PFS_ERR_NEW_PACK; } +#else + for (k = 0; k < ARRLEN(temp); k++) { + if (pfs->id[k] != temp[k]) + return PFS_ERR_NEW_PACK; + } +#endif return 0; } @@ -230,12 +280,14 @@ s32 __osPfsRWInode(OSPfs* pfs, __OSInode* inode, u8 flag, u8 bank) { int offset; u8* addr; +#if BUILD_VERSION >= VERSION_J if (flag == PFS_READ && bank == __osPfsInodeCacheBank && (pfs->channel == __osPfsInodeCacheChannel)) { bcopy(&__osPfsInodeCache, inode, sizeof(__OSInode)); return 0; } +#endif - SET_ACTIVEBANK_TO_ZERO; + SET_ACTIVEBANK_TO_ZERO(); offset = (bank > 0) ? 1 : pfs->inode_start_page; @@ -251,7 +303,7 @@ s32 __osPfsRWInode(OSPfs* pfs, __OSInode* inode, u8 flag, u8 bank) { ret = __osContRamWrite(pfs->queue, pfs->channel, pfs->inode_table + bank * PFS_ONE_PAGE + j, addr, FALSE); ret = __osContRamWrite(pfs->queue, pfs->channel, pfs->minode_table + bank * PFS_ONE_PAGE + j, addr, FALSE); } else { - ret = __osContRamRead(pfs->queue, pfs->channel, pfs->inode_table + bank * 8 + j, addr); + ret = __osContRamRead(pfs->queue, pfs->channel, pfs->inode_table + bank * PFS_ONE_PAGE + j, addr); } if (ret != 0) { @@ -267,7 +319,9 @@ s32 __osPfsRWInode(OSPfs* pfs, __OSInode* inode, u8 flag, u8 bank) { ret = __osContRamRead(pfs->queue, pfs->channel, pfs->minode_table + bank * PFS_ONE_PAGE + j, addr); } +#if BUILD_VERSION >= VERSION_J sum = __osSumcalc((u8*)&inode->inode_page[offset], (PFS_INODE_SIZE_PER_PAGE - offset) * 2); +#endif if (sum != inode->inode_page[0].inode_t.page) { return PFS_ERR_INCONSISTENT; @@ -279,15 +333,43 @@ s32 __osPfsRWInode(OSPfs* pfs, __OSInode* inode, u8 flag, u8 bank) { __osContRamWrite(pfs->queue, pfs->channel, pfs->inode_table + bank * PFS_ONE_PAGE + j, addr, FALSE); } } +#if BUILD_VERSION < VERSION_J + else + { + for (j = 0; j < PFS_ONE_PAGE; j++) + { + addr = ((u8 *)inode->inode_page + j * 32); + ret = __osContRamWrite(pfs->queue, pfs->channel, pfs->minode_table + bank * PFS_ONE_PAGE + j, addr, FALSE); + } + } +#endif } +#if BUILD_VERSION >= VERSION_J __osPfsInodeCacheBank = bank; bcopy(inode, &__osPfsInodeCache, sizeof(__OSInode)); __osPfsInodeCacheChannel = pfs->channel; +#endif return 0; } +// This was moved into it's own file in 2.0J +#if BUILD_VERSION < VERSION_J +s32 __osPfsSelectBank(OSPfs* pfs) { + u8 temp[BLOCKSIZE]; + int i; + s32 ret = 0; + + for (i = 0; i < BLOCKSIZE; i++) { + temp[i] = pfs->activebank; + } + + ret = __osContRamWrite(pfs->queue, pfs->channel, CONT_BLOCK_DETECT, temp, FALSE); + return ret; +} +#endif + #ifdef _DEBUG s32 __osDumpId(OSPfs* pfs) { u8 id[BLOCKSIZE]; diff --git a/lib/ultralib/src/io/contramread.c b/lib/ultralib/src/io/contramread.c index b0346e1..9c399ee 100644 --- a/lib/ultralib/src/io/contramread.c +++ b/lib/ultralib/src/io/contramread.c @@ -3,10 +3,11 @@ #include "controller.h" #include "siint.h" -s32 __osPfsLastChannel = -1; - #define READFORMAT(ptr) ((__OSContRamReadFormat*)(ptr)) +#if BUILD_VERSION >= VERSION_J +s32 __osPfsLastChannel = -1; + s32 __osContRamRead(OSMesgQueue* mq, int channel, u16 address, u8* buffer) { s32 ret = 0; s32 i; @@ -37,8 +38,13 @@ s32 __osContRamRead(OSMesgQueue* mq, int channel, u16 address, u8* buffer) { ptr += channel; } +#if BUILD_VERSION >= VERSION_J READFORMAT(ptr)->addrh = address >> 3; READFORMAT(ptr)->addrl = (u8)((address << 5) | __osContAddressCrc(address)); +#else + READFORMAT(ptr)->address = (address << 0x5) | __osContAddressCrc(address); +#endif + ret = __osSiRawStartDma(OS_WRITE, &__osPfsPifRam); osRecvMesg(mq, NULL, OS_MESG_BLOCK); @@ -67,3 +73,91 @@ s32 __osContRamRead(OSMesgQueue* mq, int channel, u16 address, u8* buffer) { __osSiRelAccess(); return ret; } +#else + +static void __osPackRamReadData(int channel, u16 address); + +s32 __osContRamRead(OSMesgQueue* mq, int channel, u16 address, u8* buffer) { + s32 ret = 0; + int i; + u8* ptr = (u8*)&__osPfsPifRam; + __OSContRamReadFormat ramreadformat; + int retry = 2; + + __osSiGetAccess(); + __osContLastCmd = CONT_CMD_READ_PAK; + __osPackRamReadData(channel, address); + ret = __osSiRawStartDma(OS_WRITE, &__osPfsPifRam); + osRecvMesg(mq, NULL, OS_MESG_BLOCK); + + do { + ret = __osSiRawStartDma(OS_READ, &__osPfsPifRam); + osRecvMesg(mq, NULL, OS_MESG_BLOCK); + ptr = (u8*)&__osPfsPifRam; + + if (channel != 0) { + for (i = 0; i < channel; i++) { + ptr++; + } + } + + ramreadformat = *READFORMAT(ptr); + + ret = CHNL_ERR(ramreadformat); + if (ret == 0) { + u8 c = __osContDataCrc((u8*)&ramreadformat.data); + if (c != ramreadformat.datacrc) { + ret = __osPfsGetStatus(mq, channel); + + if (ret != 0) { + __osSiRelAccess(); + return ret; + } + + ret = PFS_ERR_CONTRFAIL; + } else { + for (i = 0; i < ARRLEN(ramreadformat.data); i++) { + *buffer++ = ramreadformat.data[i]; + } + } + } else { + ret = PFS_ERR_NOPACK; + } + } while ((ret == PFS_ERR_CONTRFAIL) && retry-- >= 0); + + __osSiRelAccess(); + + return ret; +} + +static void __osPackRamReadData(int channel, u16 address) { + u8 *ptr; + __OSContRamReadFormat ramreadformat; + int i; + + ptr = (u8 *)__osPfsPifRam.ramarray; + __osPfsPifRam.pifstatus = CONT_CMD_EXE; + ramreadformat.dummy = CONT_CMD_NOP; + ramreadformat.txsize = CONT_CMD_READ_PAK_TX; + ramreadformat.rxsize = CONT_CMD_READ_PAK_RX; + ramreadformat.cmd = CONT_CMD_READ_PAK; + ramreadformat.address = (address << 0x5) | __osContAddressCrc(address); + ramreadformat.datacrc = CONT_CMD_NOP; + + for (i = 0; i < ARRLEN(ramreadformat.data); i++) { + ramreadformat.data[i] = CONT_CMD_NOP; + } + + if (channel != 0) { + for (i = 0; i < channel; i++) { + *ptr++ = CONT_CMD_REQUEST_STATUS; + } + } + + *(__OSContRamReadFormat *)ptr = ramreadformat; + ptr += sizeof(__OSContRamReadFormat); + ptr[0] = CONT_CMD_END; +} + +#endif + diff --git a/lib/ultralib/src/io/contramwrite.c b/lib/ultralib/src/io/contramwrite.c index 8960c90..a213049 100644 --- a/lib/ultralib/src/io/contramwrite.c +++ b/lib/ultralib/src/io/contramwrite.c @@ -7,6 +7,7 @@ extern s32 __osPfsLastChannel; #define READFORMAT(ptr) ((__OSContRamReadFormat*)(ptr)) +#if BUILD_VERSION >= VERSION_J s32 __osContRamWrite(OSMesgQueue* mq, int channel, u16 address, u8* buffer, int force) { s32 ret = 0; s32 i; @@ -42,8 +43,12 @@ s32 __osContRamWrite(OSMesgQueue* mq, int channel, u16 address, u8* buffer, int ptr += channel; } +#if BUILD_VERSION >= VERSION_J READFORMAT(ptr)->addrh = address >> 3; READFORMAT(ptr)->addrl = ((address << 5) | __osContAddressCrc(address)); +#else + READFORMAT(ptr)->address = (address << 0x5) | __osContAddressCrc(address); +#endif bcopy(buffer, READFORMAT(ptr)->data, BLOCKSIZE); @@ -73,3 +78,88 @@ s32 __osContRamWrite(OSMesgQueue* mq, int channel, u16 address, u8* buffer, int return ret; } +#else + +static void __osPackRamWriteData(int channel, u16 address, u8 *buffer); + +s32 __osContRamWrite(OSMesgQueue* mq, int channel, u16 address, u8* buffer, int force) { + s32 ret = 0; + s32 i; + u8* ptr = (u8*)&__osPfsPifRam; + __OSContRamReadFormat ramreadformat; + s32 retry = 2; + u8 crc; + + if ((force != TRUE) && (address < PFS_LABEL_AREA) && (address != 0)) { + return 0; + } + + __osSiGetAccess(); + __osContLastCmd = CONT_CMD_WRITE_PAK; + __osPackRamWriteData(channel, address, buffer); + ret = __osSiRawStartDma(OS_WRITE, &__osPfsPifRam); + osRecvMesg(mq, NULL, OS_MESG_BLOCK); + + do { + ret = __osSiRawStartDma(OS_READ, &__osPfsPifRam); + osRecvMesg(mq, NULL, OS_MESG_BLOCK); + ptr = (u8*)&__osPfsPifRam; + + if (channel != 0) { + for (i = 0; i < channel; i++) { + ptr++; + } + } + + ramreadformat = *READFORMAT(ptr); + + ret = CHNL_ERR(ramreadformat); + if (ret == 0) { + if (__osContDataCrc(buffer) != ramreadformat.datacrc) { + ret = __osPfsGetStatus(mq, channel); + + if (ret != 0) { + __osSiRelAccess(); + return ret; + } + + ret = PFS_ERR_CONTRFAIL; + } + } else { + ret = PFS_ERR_NOPACK; + } + } while ((ret == PFS_ERR_CONTRFAIL) && retry-- >= 0); + + __osSiRelAccess(); + + return ret; +} + +static void __osPackRamWriteData(int channel, u16 address, u8 *buffer) { + u8 *ptr; + __OSContRamReadFormat ramreadformat; + int i; + + ptr = (u8 *)__osPfsPifRam.ramarray; + __osPfsPifRam.pifstatus = CONT_CMD_EXE; + ramreadformat.dummy = CONT_CMD_NOP; + ramreadformat.txsize = CONT_CMD_WRITE_PAK_TX; + ramreadformat.rxsize = CONT_CMD_WRITE_PAK_RX; + ramreadformat.cmd = CONT_CMD_WRITE_PAK; + ramreadformat.address = (address << 0x5) | __osContAddressCrc(address); + ramreadformat.datacrc = CONT_CMD_NOP; + + for (i = 0; i < ARRLEN(ramreadformat.data); i++) { + ramreadformat.data[i] = *buffer++; + } + + if (channel != 0) { + for (i = 0; i < channel; i++) { *ptr++ = CONT_CMD_REQUEST_STATUS; } + } + + *(__OSContRamReadFormat *)ptr = ramreadformat; + ptr += sizeof(__OSContRamReadFormat); + ptr[0] = CONT_CMD_END; +} + +#endif diff --git a/lib/ultralib/src/io/controller.h b/lib/ultralib/src/io/controller.h index ef67aa4..5dac7f5 100644 --- a/lib/ultralib/src/io/controller.h +++ b/lib/ultralib/src/io/controller.h @@ -2,6 +2,7 @@ #define _CONTROLLER_H #include "PR/os_internal.h" +#include "PR/os_version.h" #include "PR/rcp.h" //should go somewhere else but @@ -53,8 +54,12 @@ typedef struct /* 0x1 */ u8 txsize; /* 0x2 */ u8 rxsize; /* 0x3 */ u8 cmd; +#if BUILD_VERSION >= VERSION_J /* 0x4 */ u8 addrh; /* 0x5 */ u8 addrl; +#else + /* 0x4 */ u16 address; +#endif /* 0x6 */ u8 data[BLOCKSIZE]; /* 0x26 */ u8 datacrc; } __OSContRamReadFormat; @@ -204,9 +209,17 @@ s32 __osCheckPackId(OSPfs *pfs, __OSPackId *temp); s32 __osGetId(OSPfs *pfs); s32 __osCheckId(OSPfs *pfs); s32 __osPfsRWInode(OSPfs *pfs, __OSInode *inode, u8 flag, u8 bank); +#if BUILD_VERSION >= VERSION_J s32 __osPfsSelectBank(OSPfs *pfs, u8 bank); +#else +s32 __osPfsSelectBank(OSPfs *pfs); +#endif s32 __osPfsDeclearPage(OSPfs *pfs, __OSInode *inode, int file_size_in_pages, int *first_page, u8 bank, int *decleared, int *last_page); +#if BUILD_VERSION >= VERSION_J s32 __osPfsReleasePages(OSPfs *pfs, __OSInode *inode, u8 start_page, u8 bank, __OSInodeUnit *last_page); +#else +s32 __osPfsReleasePages(OSPfs *pfs, __OSInode *inode, u8 start_page, u16 *sum, u8 bank, __OSInodeUnit *last_page, int flag); +#endif s32 __osBlockSum(OSPfs *pfs, u8 page_no, u16 *sum, u8 bank); s32 __osContRamRead(OSMesgQueue *mq, int channel, u16 address, u8 *buffer); s32 __osContRamWrite(OSMesgQueue *mq, int channel, u16 address, u8 *buffer, int force); @@ -233,21 +246,40 @@ extern u8 __osMaxControllers; if (ret != 0) \ return ret -#define SET_ACTIVEBANK_TO_ZERO \ - if (pfs->activebank != 0) \ - { \ +#if BUILD_VERSION >= VERSION_J + +#define SELECT_BANK(pfs, bank) \ + __osPfsSelectBank((pfs), (bank)) + +#define SET_ACTIVEBANK_TO_ZERO() \ + if (pfs->activebank != 0) \ + { \ ERRCK(__osPfsSelectBank(pfs, 0)); \ } (void)0 -#define PFS_CHECK_ID \ +#else + +#define SELECT_BANK(pfs, bank) \ + (pfs->activebank = (bank), __osPfsSelectBank((pfs))) + +#define SET_ACTIVEBANK_TO_ZERO() \ + if (pfs->activebank != 0) \ + { \ + pfs->activebank = 0; \ + ERRCK(__osPfsSelectBank(pfs)); \ + } (void)0 + +#endif + +#define PFS_CHECK_ID() \ if (__osCheckId(pfs) == PFS_ERR_NEW_PACK) \ return PFS_ERR_NEW_PACK -#define PFS_CHECK_STATUS \ +#define PFS_CHECK_STATUS() \ if ((pfs->status & PFS_INITIALIZED) == 0) \ return PFS_ERR_INVALID -#define PFS_GET_STATUS \ +#define PFS_GET_STATUS() \ __osSiGetAccess(); \ ret = __osPfsGetStatus(queue, channel); \ __osSiRelAccess(); \ diff --git a/lib/ultralib/src/io/crc.c b/lib/ultralib/src/io/crc.c index 05f2698..3293b2d 100644 --- a/lib/ultralib/src/io/crc.c +++ b/lib/ultralib/src/io/crc.c @@ -1,5 +1,7 @@ #include "PR/os_internal.h" +#if BUILD_VERSION >= VERSION_J + u8 __osContAddressCrc(u16 addr) { u32 temp = 0; u32 i = 0x400; @@ -64,3 +66,49 @@ u8 __osContDataCrc(u8* data) { return temp; } + +#else + +u8 __osContAddressCrc(u16 addr) { + u8 temp = 0; + u8 temp2; + int i; + + for (i = 0; i < 16; i++) { + temp2 = (temp & 0x10) ? 0x15 : 0; + + temp <<= 1; + temp |= (u8)((addr & 0x400) ? 1 : 0); + addr <<= 1; + temp ^= temp2; + } + + return temp & 0x1f; +} + +u8 __osContDataCrc(u8 *data) { + u8 temp = 0; + u8 temp2; + int i; + int j; + + for (i = 0; i <= 32; i++) { + for (j = 7; j > -1; j--) { + temp2 = (temp & 0x80) ? 0x85 : 0; + + temp <<= 1; + + if (i == 32) { + temp &= -1; + } else { + temp |= ((*data & (1 << j)) ? 1 : 0); + } + + temp ^= temp2; + } + data++; + } + return temp; +} + +#endif diff --git a/lib/ultralib/src/io/driverominit.c b/lib/ultralib/src/io/driverominit.c new file mode 100644 index 0000000..d73d349 --- /dev/null +++ b/lib/ultralib/src/io/driverominit.c @@ -0,0 +1,31 @@ +#include "PR/os_internal.h" +#include "PR/rcp.h" +#include "macros.h" + +OSPiHandle DriveRomHandle ALIGNED(8); + +OSPiHandle *osDriveRomInit() { + u32 saveMask; + + if (DriveRomHandle.baseAddress == PHYS_TO_K1(PI_DOM1_ADDR1)) { + return &DriveRomHandle; + } + + DriveRomHandle.type = DEVICE_TYPE_BULK; + DriveRomHandle.baseAddress = PHYS_TO_K1(PI_DOM1_ADDR1); + DriveRomHandle.latency = 64; + DriveRomHandle.pulse = 7; + DriveRomHandle.pageSize = 7; + DriveRomHandle.relDuration = 2; + DriveRomHandle.domain = PI_DOMAIN1; + DriveRomHandle.speed = 0; + + bzero(&DriveRomHandle.transferInfo, sizeof(__OSTranxInfo)); + + saveMask = __osDisableInt(); + DriveRomHandle.next = __osPiTable; + __osPiTable = &DriveRomHandle; + __osRestoreInt(saveMask); + + return &DriveRomHandle; +} diff --git a/lib/ultralib/src/io/epirawread.c b/lib/ultralib/src/io/epirawread.c index 7794eb8..500a2ce 100644 --- a/lib/ultralib/src/io/epirawread.c +++ b/lib/ultralib/src/io/epirawread.c @@ -21,10 +21,10 @@ - - - - +// Adjust line numbers to match assert +#if BUILD_VERSION < VERSION_J +#line 28 +#endif // TODO: this comes from a header #ident "$Revision: 1.17 $" @@ -38,9 +38,8 @@ s32 __osEPiRawReadIo(OSPiHandle* pihandle, u32 devAddr, u32* data) { __osError(ERR_OSPIRAWREADIO, 1, devAddr); return -1; } - - assert(data != NULL); #endif + assert(data != NULL); EPI_SYNC(pihandle, stat, domain); *data = IO_READ(pihandle->baseAddress | devAddr); diff --git a/lib/ultralib/src/io/gbpakinit.c b/lib/ultralib/src/io/gbpakinit.c index d3f19b1..102d962 100644 --- a/lib/ultralib/src/io/gbpakinit.c +++ b/lib/ultralib/src/io/gbpakinit.c @@ -76,7 +76,7 @@ s32 osGbpakInit(OSMesgQueue* mq, OSPfs* pfs, int channel) { ERRCK(__osPfsGetStatus(mq, channel)); osCreateMesgQueue(&__osGbpakTimerQ, &__osGbpakTimerMsg, 1); - osSetTimer(&__osGbpakTimer, 9000000, 0, &__osGbpakTimerQ, &__osGbpakTimerMsg); + osSetTimer(&__osGbpakTimer, OS_USEC_TO_CYCLES(192000), 0, &__osGbpakTimerQ, &__osGbpakTimerMsg); osRecvMesg(&__osGbpakTimerQ, NULL, OS_MESG_BLOCK); pfs->queue = mq; pfs->status = PFS_GBPAK_INITIALIZED; diff --git a/lib/ultralib/src/io/gbpakreadid.c b/lib/ultralib/src/io/gbpakreadid.c index f35ef25..3e2fa19 100644 --- a/lib/ultralib/src/io/gbpakreadid.c +++ b/lib/ultralib/src/io/gbpakreadid.c @@ -1,13 +1,16 @@ #include "macros.h" #include "PR/os_internal.h" #include "controller.h" +#include "os_version.h" s32 osGbpakReadId(OSPfs* pfs, OSGbpakId* id, u8* status) { s32 i; s32 ret; u8 isum; u8 buf[96]; +#if BUILD_VERSION >= VERSION_K u8 temp[32]; +#endif static u8 nintendo[] = { 0xCE, 0xED, 0x66, 0x66, 0xCC, 0x0D, 0x00, 0x0B, 0x03, 0x73, 0x00, 0x83, 0x00, 0x0C, 0x00, 0x0D, 0x00, 0x08, 0x11, 0x1F, 0x88, 0x89, 0x00, 0x0E, 0xDC, 0xCC, 0x6E, 0xE6, 0xDD, 0xDD, 0xD9, 0x99, 0xBB, 0xBB, 0x67, 0x63, @@ -44,6 +47,7 @@ s32 osGbpakReadId(OSPfs* pfs, OSGbpakId* id, u8* status) { return PFS_ERR_CONTRFAIL; } +#if BUILD_VERSION >= VERSION_K if (bcmp(nintendo, buf + 4, ARRLEN(nintendo))) { for (i = 0; i < ARRLEN(temp); temp[i++] = 0) { ; @@ -67,6 +71,11 @@ s32 osGbpakReadId(OSPfs* pfs, OSGbpakId* id, u8* status) { return 4; } } +#else + if (bcmp(nintendo, buf + 4, ARRLEN(nintendo))) { + return 4; + } +#endif for (i = 0x34, isum = 0; i < 0x4E; i++) { isum += buf[i]; } diff --git a/lib/ultralib/src/io/gbpakreadwrite.c b/lib/ultralib/src/io/gbpakreadwrite.c index c73b536..a6d4b02 100644 --- a/lib/ultralib/src/io/gbpakreadwrite.c +++ b/lib/ultralib/src/io/gbpakreadwrite.c @@ -1,5 +1,6 @@ #include "PR/os_internal.h" #include "controller.h" +#include "os_version.h" s32 __osGbpakSetBank(OSPfs* pfs, u8 bank); @@ -18,9 +19,11 @@ s32 osGbpakReadWrite(OSPfs* pfs, u16 flag, u16 address, u8* buffer, u16 size) { } } +#if BUILD_VERSION >= VERSION_K if (size == 0) { return 0; } +#endif size = (u16)(size >> 5); address = (u16)((address | 0xC000) >> 5); diff --git a/lib/ultralib/src/io/leodiskinit.c b/lib/ultralib/src/io/leodiskinit.c new file mode 100644 index 0000000..e9f140b --- /dev/null +++ b/lib/ultralib/src/io/leodiskinit.c @@ -0,0 +1,36 @@ +// This file was removed in 2.0J +#include "PR/os_internal.h" +#include "PR/os_libc.h" +#include "PR/rcp.h" +#include "macros.h" + +OSPiHandle LeoDiskHandle ALIGNED(8); +OSPiHandle *__osDiskHandle; + +OSPiHandle *osLeoDiskInit() { + u32 saveMask; + + LeoDiskHandle.type = DEVICE_TYPE_64DD; + LeoDiskHandle.baseAddress = PHYS_TO_K1(PI_DOM2_ADDR1); + LeoDiskHandle.latency = 3; + LeoDiskHandle.pulse = 6; + LeoDiskHandle.pageSize = 6; + LeoDiskHandle.relDuration = 2; + LeoDiskHandle.domain = PI_DOMAIN2; + + IO_WRITE(PI_BSD_DOM2_LAT_REG, LeoDiskHandle.latency); + IO_WRITE(PI_BSD_DOM2_PWD_REG, LeoDiskHandle.pulse); + IO_WRITE(PI_BSD_DOM2_PGS_REG, LeoDiskHandle.pageSize); + IO_WRITE(PI_BSD_DOM2_RLS_REG, LeoDiskHandle.relDuration); + LeoDiskHandle.speed = 0; + + bzero(&LeoDiskHandle.transferInfo, sizeof(__OSTranxInfo)); + + saveMask = __osDisableInt(); + LeoDiskHandle.next = __osPiTable; + __osPiTable = &LeoDiskHandle; + __osDiskHandle = &LeoDiskHandle; + __osRestoreInt(saveMask); + + return &LeoDiskHandle; +} diff --git a/lib/ultralib/src/io/leointerrupt.c b/lib/ultralib/src/io/leointerrupt.c new file mode 100644 index 0000000..ad34e45 --- /dev/null +++ b/lib/ultralib/src/io/leointerrupt.c @@ -0,0 +1,194 @@ +#include "PR/os_internal.h" +#include "PR/rcp.h" +#include "../os/osint.h" +#include "piint.h" +#include "macros.h" + +extern OSPiHandle *__osDiskHandle; + +u8 leoDiskStack[OS_PIM_STACKSIZE] ALIGNED(16); + +static void __osLeoAbnormalResume(void); +static void __osLeoResume(void); + +s32 __osLeoInterrupt() { + u32 stat = 0; + volatile u32 pi_stat; + u32 bm_stat; + __OSTranxInfo *info = &__osDiskHandle->transferInfo; + __OSBlockInfo *blockInfo = &info->block[info->blockNum]; + + pi_stat = IO_READ(PI_STATUS_REG); + if (pi_stat & PI_STATUS_DMA_BUSY) { + __OSGlobalIntMask = __OSGlobalIntMask & ~SR_IBIT4; //cart interrupt + blockInfo->errStatus = LEO_ERROR_29; + __osLeoResume(); + return 1; + } + + WAIT_ON_IOBUSY(pi_stat); + stat = IO_READ(LEO_STATUS); + if (stat & LEO_STATUS_MECHANIC_INTERRUPT) { + WAIT_ON_IOBUSY(pi_stat); + IO_WRITE(LEO_BM_CTL, info->bmCtlShadow | LEO_BM_CTL_CLR_MECHANIC_INTR); + blockInfo->errStatus = LEO_ERROR_GOOD; + return 0; + } + + if (info->cmdType == LEO_CMD_TYPE_2) { + return 1; + } + + if (stat & LEO_STATUS_BUFFER_MANAGER_ERROR) { + WAIT_ON_IOBUSY(pi_stat); + stat = IO_READ(LEO_STATUS); + blockInfo->errStatus = LEO_ERROR_22; + __osLeoResume(); + IO_WRITE(PI_STATUS_REG, PI_STATUS_CLR_INTR); + __OSGlobalIntMask |= OS_IM_PI; + return 1; + } + + if (info->cmdType == LEO_CMD_TYPE_1) { + if ((stat & LEO_STATUS_DATA_REQUEST) == 0) { + if (info->sectorNum + 1 != info->transferMode * 85) { + blockInfo->errStatus = LEO_ERROR_24; + __osLeoAbnormalResume(); + return 1; + } + + IO_WRITE(PI_STATUS_REG, PI_STATUS_CLR_INTR); + __OSGlobalIntMask |= OS_IM_PI; + blockInfo->errStatus = LEO_ERROR_GOOD; + __osLeoResume(); + return 1; + } else { + blockInfo->dramAddr = (void *)((u32)blockInfo->dramAddr + blockInfo->sectorSize); + info->sectorNum++; + __osEPiRawStartDma(__osDiskHandle, OS_WRITE, LEO_SECTOR_BUFF, blockInfo->dramAddr, blockInfo->sectorSize); + return 1; + } + } else if (info->cmdType == LEO_CMD_TYPE_0) { + if (info->transferMode == LEO_SECTOR_MODE) { + if (info->sectorNum > (s32)blockInfo->C1ErrNum + 17) { + blockInfo->errStatus = LEO_ERROR_GOOD; + __osLeoAbnormalResume(); + return 1; + } + + if ((stat & LEO_STATUS_DATA_REQUEST) == 0) { + blockInfo->errStatus = LEO_ERROR_23; + __osLeoAbnormalResume(); + return 1; + } + } else { + blockInfo->dramAddr = (void *)((u32)blockInfo->dramAddr + blockInfo->sectorSize); + } + + bm_stat = IO_READ(LEO_BM_STATUS); + if ((bm_stat & LEO_BM_STATUS_C1SINGLE && bm_stat & LEO_BM_STATUS_C1DOUBLE) || bm_stat & LEO_BM_STATUS_MICRO) { + if (blockInfo->C1ErrNum > 3) { + if (info->transferMode != LEO_SECTOR_MODE || info->sectorNum > 0x52) { + blockInfo->errStatus = LEO_ERROR_23; + __osLeoAbnormalResume(); + return 1; + } + } else { + int errNum = blockInfo->C1ErrNum; + blockInfo->C1ErrSector[errNum] = info->sectorNum + 1; + } + + blockInfo->C1ErrNum++; + } + + if (stat & LEO_STATUS_C2_TRANSFER) { + if (info->sectorNum + 1 != 88) { + blockInfo->errStatus = LEO_ERROR_24; + __osLeoAbnormalResume(); + } + + if (info->transferMode == LEO_TRACK_MODE && info->blockNum == 0) { + info->blockNum = 1; + info->sectorNum = -1; + info->block[1].dramAddr = (void *)((u32)info->block[1].dramAddr - info->block[1].sectorSize); + + blockInfo->errStatus = LEO_ERROR_22; + } else { + IO_WRITE(PI_STATUS_REG, PI_STATUS_CLR_INTR); + __OSGlobalIntMask |= OS_IM_PI; + info->cmdType = LEO_CMD_TYPE_2; + blockInfo->errStatus = LEO_ERROR_GOOD; + } + + __osEPiRawStartDma(__osDiskHandle, OS_READ, LEO_C2_BUFF, blockInfo->C2Addr, blockInfo->sectorSize * 4); + return 1; + } + + if (info->sectorNum == -1 && info->transferMode == LEO_TRACK_MODE && info->blockNum == 1) { + __OSBlockInfo *bptr = &info->block[0]; + if (bptr->C1ErrNum == 0) { + if (((u32 *)bptr->C2Addr)[0] | ((u32 *)bptr->C2Addr)[1] | ((u32 *)bptr->C2Addr)[2] | ((u32 *)bptr->C2Addr)[3]) { + bptr->errStatus = LEO_ERROR_24; + __osLeoAbnormalResume(); + return 1; + } + } + + bptr->errStatus = 0; + __osLeoResume(); + } + info->sectorNum++; + if (stat & LEO_STATUS_DATA_REQUEST) { + if (info->sectorNum > 0x54) { + blockInfo->errStatus = LEO_ERROR_24; + __osLeoAbnormalResume(); + return 1; + } + + __osEPiRawStartDma(__osDiskHandle, 0, LEO_SECTOR_BUFF, blockInfo->dramAddr, blockInfo->sectorSize); + blockInfo->errStatus = LEO_ERROR_GOOD; + return 1; + } else if (info->sectorNum <= 0x54) { + blockInfo->errStatus = LEO_ERROR_24; + __osLeoAbnormalResume(); + return 1; + } + + return 1; + } else { + blockInfo->errStatus = LEO_ERROR_4; + __osLeoAbnormalResume(); + return 1; + } +} + +static void __osLeoAbnormalResume(void) { + __OSTranxInfo *info = &__osDiskHandle->transferInfo; + u32 pi_stat; + + WAIT_ON_IOBUSY(pi_stat); + IO_WRITE(LEO_BM_CTL, info->bmCtlShadow | LEO_BM_CTL_RESET); + WAIT_ON_IOBUSY(pi_stat); + IO_WRITE(LEO_BM_CTL, info->bmCtlShadow); + __osLeoResume(); + IO_WRITE(PI_STATUS_REG, PI_STATUS_CLR_INTR); + __OSGlobalIntMask |= OS_IM_PI; +} + +static void __osLeoResume(void) { + __OSEventState *es = &__osEventStateTab[OS_EVENT_PI]; + OSMesgQueue *mq = es->messageQueue; + s32 last; + + if (mq == NULL || MQ_IS_FULL(mq)) { + return; + } + + last = (mq->first + mq->validCount) % mq->msgCount; + mq->msg[last] = es->message; + mq->validCount++; + + if (mq->mtqueue->next != NULL) { + __osEnqueueThread(&__osRunQueue, __osPopThread(&mq->mtqueue)); + } +} diff --git a/lib/ultralib/src/io/motor.c b/lib/ultralib/src/io/motor.c index 8ad1b08..8028d69 100644 --- a/lib/ultralib/src/io/motor.c +++ b/lib/ultralib/src/io/motor.c @@ -1,8 +1,10 @@ #include "macros.h" #include "PR/os_internal.h" +#include "PR/os_version.h" #include "controller.h" #include "siint.h" +#if BUILD_VERSION >= VERSION_J static OSPifRam __MotorDataBuf[MAXCONTROLLERS] ALIGNED(8); #define READFORMAT(ptr) ((__OSContRamReadFormat*)(ptr)) @@ -80,10 +82,10 @@ s32 osMotorInit(OSMesgQueue* mq, OSPfs* pfs, int channel) { pfs->activebank = 0xFF; pfs->status = 0; - ret = __osPfsSelectBank(pfs, 0xFE); + ret = SELECT_BANK(pfs, 0xFE); if (ret == PFS_ERR_NEW_PACK) { - ret = __osPfsSelectBank(pfs, 0x80); + ret = SELECT_BANK(pfs, 0x80); } if (ret != 0) { @@ -102,7 +104,7 @@ s32 osMotorInit(OSMesgQueue* mq, OSPfs* pfs, int channel) { return PFS_ERR_DEVICE; } - ret = __osPfsSelectBank(pfs, 0x80); + ret = SELECT_BANK(pfs, 0x80); if (ret == PFS_ERR_NEW_PACK) { ret = PFS_ERR_CONTRFAIL; } @@ -129,3 +131,202 @@ s32 osMotorInit(OSMesgQueue* mq, OSPfs* pfs, int channel) { pfs->status = PFS_MOTOR_INITIALIZED; return 0; } + +#else + +OSPifRam _MotorStopData[MAXCONTROLLERS] ALIGNED(8); +OSPifRam _MotorStartData[MAXCONTROLLERS] ALIGNED(8); +u8 _motorstopbuf[32] ALIGNED(8); +u8 _motorstartbuf[32] ALIGNED(8); +u32 __osMotorinitialized[MAXCONTROLLERS] = {0, 0, 0, 0}; + +s32 osMotorStop(OSPfs *pfs) { + int i; + s32 ret; + u8 *ptr; + __OSContRamReadFormat ramreadformat; + + ptr = (u8 *)&__osPfsPifRam; + + if (!__osMotorinitialized[pfs->channel]) { + return PFS_ERR_INVALID; + } + + __osSiGetAccess(); + + __osContLastCmd = CONT_CMD_WRITE_PAK; + __osSiRawStartDma(OS_WRITE, &_MotorStopData[pfs->channel]); + osRecvMesg(pfs->queue, NULL, OS_MESG_BLOCK); + ret = __osSiRawStartDma(OS_READ, &__osPfsPifRam); + osRecvMesg(pfs->queue, NULL, OS_MESG_BLOCK); + ptr = (u8 *)&__osPfsPifRam; + + if (pfs->channel != 0) { + for (i = 0; i < pfs->channel; i++) { + ptr++; + } + } + + ramreadformat = *(__OSContRamReadFormat *)ptr; + ret = CHNL_ERR(ramreadformat); + + if (ret == 0 && __osContDataCrc((u8*)&_motorstopbuf) != ramreadformat.datacrc) { + ret = PFS_ERR_CONTRFAIL; + } + + __osSiRelAccess(); + return ret; +} + +s32 osMotorStart(OSPfs *pfs) { + + int i; + s32 ret; + u8 *ptr; + __OSContRamReadFormat ramreadformat; + + ptr = (u8 *)&__osPfsPifRam; + + if (!__osMotorinitialized[pfs->channel]) { + return PFS_ERR_INVALID; + } + + __osSiGetAccess(); + + __osContLastCmd = CONT_CMD_WRITE_PAK; + __osSiRawStartDma(OS_WRITE, &_MotorStartData[pfs->channel]); + osRecvMesg(pfs->queue, NULL, OS_MESG_BLOCK); + ret = __osSiRawStartDma(OS_READ, &__osPfsPifRam); + osRecvMesg(pfs->queue, NULL, OS_MESG_BLOCK); + ptr = (u8 *)&__osPfsPifRam; + + if (pfs->channel != 0) { + for (i = 0; i < pfs->channel; i++) { + ptr++; + } + } + + ramreadformat = *(__OSContRamReadFormat *)ptr; + ret = CHNL_ERR(ramreadformat); + + if (ret == 0 && __osContDataCrc((u8*)&_motorstartbuf) != ramreadformat.datacrc) { + ret = PFS_ERR_CONTRFAIL; + } + + __osSiRelAccess(); + return ret; +} + +static void _MakeMotorData(int channel, u16 address, u8 *buffer, OSPifRam *mdata) +{ + u8 *ptr = (u8 *)mdata->ramarray; + __OSContRamReadFormat ramreadformat; + int i; + + for (i = 0; i < ARRLEN(mdata->ramarray); i++) { + mdata->ramarray[i] = 0; + } + + mdata->pifstatus = CONT_CMD_EXE; + ramreadformat.dummy = CONT_CMD_NOP; + ramreadformat.txsize = CONT_CMD_WRITE_PAK_TX; + ramreadformat.rxsize = CONT_CMD_WRITE_PAK_RX; + ramreadformat.cmd = CONT_CMD_WRITE_PAK; + + ramreadformat.address = (address << 0x5) | __osContAddressCrc(address); + ramreadformat.datacrc = CONT_CMD_NOP; + + for (i = 0; i < ARRLEN(ramreadformat.data); i++) { + ramreadformat.data[i] = *buffer++; + } + + if (channel != 0) { + for (i = 0; i < channel; i++) { + *ptr++ = 0; + } + } + + *(__OSContRamReadFormat *)ptr = ramreadformat; + ptr += sizeof(__OSContRamReadFormat); + ptr[0] = CONT_CMD_END; +} + +s32 osMotorInit(OSMesgQueue* mq, OSPfs* pfs, int channel) { + int i; + s32 ret; + u8 temp[32]; + + pfs->queue = mq; + pfs->channel = channel; + pfs->status = 0; + pfs->activebank = 128; + + for (i = 0; i < ARRLEN(temp); i++) { + temp[i] = 254; + } + + ret = __osContRamWrite(mq, channel, CONT_BLOCK_DETECT, temp, FALSE); + + if (ret == PFS_ERR_NEW_PACK) { + ret = __osContRamWrite(mq, channel, CONT_BLOCK_DETECT, temp, FALSE); + } + + if (ret != 0) { + return ret; + } + + ret = __osContRamRead(mq, channel, CONT_BLOCK_DETECT, temp); + + if (ret == PFS_ERR_NEW_PACK) { + ret = PFS_ERR_CONTRFAIL; + } + + if (ret != 0) { + return ret; + } + + if (temp[31] == 254) { + return PFS_ERR_DEVICE; + } + + for (i = 0; i < ARRLEN(temp); i++) { + temp[i] = 128; + } + + ret = __osContRamWrite(mq, channel, CONT_BLOCK_DETECT, temp, FALSE); + + if (ret == PFS_ERR_NEW_PACK) { + ret = __osContRamWrite(mq, channel, CONT_BLOCK_DETECT, temp, FALSE); + } + + if (ret != 0) { + return ret; + } + + ret = __osContRamRead(mq, channel, CONT_BLOCK_DETECT, temp); + if (ret == PFS_ERR_NEW_PACK) { + ret = PFS_ERR_CONTRFAIL; + } + + if (ret != 0) { + return ret; + } + + if (temp[31] != 0x80) { + return PFS_ERR_DEVICE; + } + + if (!__osMotorinitialized[channel]) { + for (i = 0; i < ARRLEN(_motorstartbuf); i++) { + _motorstartbuf[i] = 1; + _motorstopbuf[i] = 0; + } + _MakeMotorData(channel, CONT_BLOCK_RUMBLE, _motorstartbuf, &_MotorStartData[channel]); + _MakeMotorData(channel, CONT_BLOCK_RUMBLE, _motorstopbuf, &_MotorStopData[channel]); + __osMotorinitialized[channel] = 1; + } + + return 0; +} + +#endif diff --git a/lib/ultralib/src/io/pfsallocatefile.c b/lib/ultralib/src/io/pfsallocatefile.c index 5e1a85f..24f6fe7 100644 --- a/lib/ultralib/src/io/pfsallocatefile.c +++ b/lib/ultralib/src/io/pfsallocatefile.c @@ -4,6 +4,8 @@ #define ROUND_UP_DIVIDE(numerator, denominator) (((numerator) + (denominator)-1) / (denominator)) +#if BUILD_VERSION >= VERSION_J + s32 osPfsAllocateFile(OSPfs* pfs, u16 company_code, u32 game_code, u8* game_name, u8* ext_name, int file_size_in_bytes, s32* file_no) { int start_page; @@ -144,6 +146,193 @@ s32 __osPfsDeclearPage(OSPfs* pfs, __OSInode* inode, int file_size_in_pages, int return ret; } +#else + +static s32 __osClearPage(OSPfs *pfs, int page_num, u8 *data, u8 bank); + +s32 osPfsAllocateFile(OSPfs* pfs, u16 company_code, u32 game_code, u8* game_name, u8* ext_name, int file_size_in_bytes, + s32* file_no) { + int start_page; + int decleared; + int last_page; + int old_last_page = 0; + int j; + s32 ret = 0; + int file_size_in_pages; + __OSInode inode; + __OSInode backup_inode; + __OSDir dir; + u8 bank; + u8 old_bank = 0; + int firsttime = 0; + s32 bytes; + __OSInodeUnit fpage; + + if (company_code == 0 || game_code == 0) { + return PFS_ERR_INVALID; + } + + file_size_in_pages = ROUND_UP_DIVIDE(file_size_in_bytes, BLOCKSIZE * PFS_ONE_PAGE); + + if ((pfs->status & PFS_INITIALIZED) == FALSE) { + return PFS_ERR_INVALID; + } + + PFS_CHECK_ID(); + + if (((ret = osPfsFindFile(pfs, company_code, game_code, game_name, ext_name, file_no)) != 0) && + ret != PFS_ERR_INVALID) { + return ret; + } + + if (*file_no != -1) { + return PFS_ERR_EXIST; + } + + ret = osPfsFreeBlocks(pfs, &bytes); + + if (file_size_in_bytes > bytes) { + return PFS_DATA_FULL; + } + + if (file_size_in_pages != 0) { + + if (((ret = osPfsFindFile(pfs, 0, 0, NULL, NULL, file_no)) != 0) && ret != PFS_ERR_INVALID) { + return ret; + } + + if (*file_no == -1) { + return PFS_DIR_FULL; + } + + for (bank = 0; bank < pfs->banks; bank++) { + ERRCK(__osPfsRWInode(pfs, &inode, PFS_READ, bank)); + ERRCK(__osPfsDeclearPage(pfs, &inode, file_size_in_pages, &start_page, bank, &decleared, &last_page)); + + if (start_page != -1) { + if (firsttime == 0) { + fpage.inode_t.page = start_page; + fpage.inode_t.bank = bank; + } else { + backup_inode.inode_page[old_last_page].inode_t.bank = bank; + backup_inode.inode_page[old_last_page].inode_t.page = start_page; + ERRCK(__osPfsRWInode(pfs, &backup_inode, PFS_WRITE, old_bank)); + } + + for (j = 0; j < ARRLEN(inode.inode_page); j++) { + backup_inode.inode_page[j].ipage = inode.inode_page[j].ipage; + } + old_last_page = last_page; + old_bank = bank; + firsttime++; + if (file_size_in_pages > decleared) { + file_size_in_pages = file_size_in_pages - decleared; + } else { + file_size_in_pages = 0; + break; + } + } + } + + if (file_size_in_pages > 0 || start_page == -1) { + return PFS_ERR_INCONSISTENT; + } + + backup_inode.inode_page[old_last_page].inode_t.bank = bank; + backup_inode.inode_page[old_last_page].inode_t.page = start_page; + ERRCK(__osPfsRWInode(pfs, &backup_inode, OS_WRITE, old_bank)); + + dir.start_page = fpage; + dir.company_code = company_code; + dir.game_code = game_code; + dir.data_sum = 0; + + for (j = 0; j < ARRLEN(dir.game_name); j++) + dir.game_name[j] = *game_name++; + for (j = 0; j < ARRLEN(dir.ext_name); j++) + dir.ext_name[j] = *ext_name++; + + ERRCK(__osContRamWrite(pfs->queue, pfs->channel, pfs->dir_table + *file_no, (u8*)&dir, FALSE)); + return ret; + } else { + return PFS_ERR_INVALID; + } +} + +s32 __osPfsDeclearPage(OSPfs* pfs, __OSInode* inode, int file_size_in_pages, int* first_page, u8 bank, int* decleared, + int* last_page) { + int j; + int spage; + int old_page; + u8 tmp_data[BLOCKSIZE]; + int i; + s32 ret = 0; + int offset = bank > 0 ? 1 : pfs->inode_start_page; + + for (j = offset; j < ARRLEN(inode->inode_page); j++) { + if (inode->inode_page[j].ipage == 3) { + break; + } + } + + if (j == ARRLEN(inode->inode_page)) { + *first_page = -1; + return ret; + } + + for (i = 0; i < ARRLEN(tmp_data); i++) { + tmp_data[i] = 0; + } + + spage = j; + *decleared = 1; + old_page = j; + j++; + + while (file_size_in_pages > *decleared && j < ARRLEN(inode->inode_page)) { + if (inode->inode_page[j].ipage == 3) { + inode->inode_page[old_page].inode_t.bank = bank; + inode->inode_page[old_page].inode_t.page = j; + ERRCK(__osClearPage(pfs, old_page, (u8*)tmp_data, bank)); + old_page = j; + (*decleared)++; + } + j++; + } + + *first_page = spage; + + if (j == ARRLEN(inode->inode_page) && file_size_in_pages > *decleared) { + *last_page = old_page; + return ret; + } else { + inode->inode_page[old_page].ipage = 1; + ret = __osClearPage(pfs, old_page, (u8*)tmp_data, bank); + *last_page = 0; + return ret; + } +} + +static s32 __osClearPage(OSPfs *pfs, int page_no, u8 *data, u8 bank) +{ + int i; + s32 ret; + ret = 0; + pfs->activebank = bank; + ERRCK(__osPfsSelectBank(pfs)); + for (i = 0; i < PFS_ONE_PAGE; i++) { + ret = __osContRamWrite(pfs->queue, pfs->channel, page_no * PFS_ONE_PAGE + i, data, FALSE); + if (ret != 0) { + break; + } + } + pfs->activebank = 0; + ret = __osPfsSelectBank(pfs); + return ret; +} + +#endif + #ifdef _DEBUG s32 __osDumpInode(OSPfs* pfs) { int j; @@ -151,11 +340,17 @@ s32 __osDumpInode(OSPfs* pfs) { s32 ret = 0; __OSDir dir; u8 bank; +#if BUILD_VERSION >= VERSION_J u8 startbank = PFS_ID_BANK_256K; +#endif rmonPrintf("INODE:\n"); +#if BUILD_VERSION >= VERSION_J for (bank = startbank; bank < pfs->banks; bank++) { +#else + for (bank = 0; bank < pfs->banks; bank++) { +#endif rmonPrintf("\nBank %d:\n", bank); ret = __osPfsRWInode(pfs, &inode, PFS_READ, bank); for (j = 0; j < PFS_INODE_SIZE_PER_PAGE; j++) { diff --git a/lib/ultralib/src/io/pfschecker.c b/lib/ultralib/src/io/pfschecker.c index 6830c0e..b736200 100644 --- a/lib/ultralib/src/io/pfschecker.c +++ b/lib/ultralib/src/io/pfschecker.c @@ -19,7 +19,9 @@ s32 osPfsChecker(OSPfs* pfs) { __OSInodeCache cache; int fixed = 0; u8 bank; +#if BUILD_VERSION >= VERSION_J u8 oldbank = 254; +#endif s32 cc; s32 cl; int offset; @@ -39,6 +41,7 @@ s32 osPfsChecker(OSPfs* pfs) { for (j = 0; j < pfs->dir_size; j++) { ERRCK(__osContRamRead(pfs->queue, pfs->channel, pfs->dir_table + j, (u8*)&tmp_dir)); +#if BUILD_VERSION >= VERSION_J if (tmp_dir.company_code != 0 || tmp_dir.game_code != 0) { if (tmp_dir.company_code == 0 || tmp_dir.game_code == 0) { cc = -1; @@ -73,11 +76,59 @@ s32 osPfsChecker(OSPfs* pfs) { if (cc != 0 || next_page.ipage != PFS_EOF) { bzero(&tmp_dir, sizeof(__OSDir)); - SET_ACTIVEBANK_TO_ZERO; + SET_ACTIVEBANK_TO_ZERO(); ERRCK(__osContRamWrite(pfs->queue, pfs->channel, pfs->dir_table + j, (u8*)&tmp_dir, FALSE)); fixed++; } } +#else + if (tmp_dir.company_code != 0 && tmp_dir.game_code != 0) { + next_page = tmp_dir.start_page; + cl = cc = 0; + bank = 255; + + while (CHECK_IPAGE(next_page)) { + if (bank != next_page.inode_t.bank) { + bank = next_page.inode_t.bank; + ret = __osPfsRWInode(pfs, &tmp_inode, OS_READ, bank); + if (ret != 0 && ret != PFS_ERR_INCONSISTENT) { + return ret; + } + } + + if ((cc = corrupted(pfs, next_page, &cache) - cl) != 0) { + break; + } + + cl = 1; + next_page = tmp_inode.inode_page[next_page.inode_t.page]; + } + + if (cc != 0 || next_page.ipage != PFS_EOF) { + tmp_dir.company_code = 0; + tmp_dir.game_code = 0; + tmp_dir.start_page.ipage = 0; + tmp_dir.status = DIR_STATUS_EMPTY; + tmp_dir.data_sum = 0; + + SET_ACTIVEBANK_TO_ZERO(); + ERRCK(__osContRamWrite(pfs->queue, pfs->channel, pfs->dir_table + j, (u8*)&tmp_dir, FALSE)); + fixed++; + } + } else { + if (tmp_dir.company_code != 0 || tmp_dir.game_code != 0) { + tmp_dir.company_code = 0; + tmp_dir.game_code = 0; + tmp_dir.start_page.ipage = 0; + tmp_dir.status = DIR_STATUS_EMPTY; + tmp_dir.data_sum = 0; + + SET_ACTIVEBANK_TO_ZERO(); + ERRCK(__osContRamWrite(pfs->queue, pfs->channel, pfs->dir_table + j, (u8*)&tmp_dir, FALSE)); + fixed++; + } + } +#endif } for (j = 0; j < pfs->dir_size; j++) { ERRCK(__osContRamRead(pfs->queue, pfs->channel, pfs->dir_table + j, (u8*)&tmp_dir)); @@ -152,8 +203,13 @@ s32 corrupted_init(OSPfs* pfs, __OSInodeCache* cache) { tpage = tmp_inode.inode_page[i]; if (tpage.ipage >= pfs->inode_start_page && tpage.inode_t.bank != bank) { +#if BUILD_VERSION >= VERSION_J n = ((tpage.inode_t.page & 0x7F) / PFS_SECTOR_SIZE) + ((tpage.inode_t.bank % PFS_BANK_LAPPED_BY) * BLOCKSIZE); +#else + n = ((tpage.inode_t.page) / PFS_SECTOR_SIZE) + + ((tpage.inode_t.bank % PFS_BANK_LAPPED_BY) * BLOCKSIZE); +#endif cache->map[n] |= 1 << (bank % PFS_BANK_LAPPED_BY); } } diff --git a/lib/ultralib/src/io/pfsdeletefile.c b/lib/ultralib/src/io/pfsdeletefile.c index a55b09d..e013211 100644 --- a/lib/ultralib/src/io/pfsdeletefile.c +++ b/lib/ultralib/src/io/pfsdeletefile.c @@ -3,9 +3,15 @@ s32 osPfsDeleteFile(OSPfs* pfs, u16 company_code, u32 game_code, u8* game_name, u8* ext_name) { s32 file_no; +#if BUILD_VERSION < VERSION_J + int k; +#endif s32 ret; __OSInode inode; __OSDir dir; +#if BUILD_VERSION < VERSION_J + u16 sum = 0; +#endif __OSInodeUnit last_page; u8 startpage; u8 bank; @@ -14,15 +20,30 @@ s32 osPfsDeleteFile(OSPfs* pfs, u16 company_code, u32 game_code, u8* game_name, return PFS_ERR_INVALID; } +#if BUILD_VERSION >= VERSION_J ERRCK(osPfsFindFile(pfs, company_code, game_code, game_name, ext_name, &file_no)); - SET_ACTIVEBANK_TO_ZERO; + SET_ACTIVEBANK_TO_ZERO(); +#else + PFS_CHECK_STATUS(); + PFS_CHECK_ID(); + SET_ACTIVEBANK_TO_ZERO(); + ERRCK(osPfsFindFile(pfs, company_code, game_code, game_name, ext_name, &file_no)); + + if (file_no == -1) { + return PFS_ERR_INVALID; + } +#endif ERRCK(__osContRamRead(pfs->queue, pfs->channel, pfs->dir_table + file_no, (u8*)&dir)); startpage = dir.start_page.inode_t.page; for (bank = dir.start_page.inode_t.bank; bank < pfs->banks;) { ERRCK(__osPfsRWInode(pfs, &inode, OS_READ, bank)); +#if BUILD_VERSION >= VERSION_J ERRCK(__osPfsReleasePages(pfs, &inode, startpage, bank, &last_page)); +#else + ERRCK(__osPfsReleasePages(pfs, &inode, startpage, &sum, bank, &last_page, TRUE)); +#endif ERRCK(__osPfsRWInode(pfs, &inode, OS_WRITE, bank)); if (last_page.ipage == PFS_EOF) { @@ -37,13 +58,31 @@ s32 osPfsDeleteFile(OSPfs* pfs, u16 company_code, u32 game_code, u8* game_name, return PFS_ERR_INCONSISTENT; } +#if BUILD_VERSION >= VERSION_J bzero(&dir, sizeof(__OSDir)); +#else + dir.game_code = 0; + dir.company_code = 0; + dir.start_page.ipage = 0; + dir.data_sum = 0; + for (k = 0; k < ARRLEN(dir.game_name); k++) + { + dir.game_name[k] = 0; + } + for (k = 0; k < ARRLEN(dir.ext_name); k++) + { + dir.ext_name[k] = 0; + } + dir.status = DIR_STATUS_EMPTY; +#endif ret = __osContRamWrite(pfs->queue, pfs->channel, pfs->dir_table + file_no, (u8*)&dir, FALSE); return ret; } +#if BUILD_VERSION >= VERSION_J + s32 __osPfsReleasePages(OSPfs* pfs, __OSInode* inode, u8 start_page, u8 bank, __OSInodeUnit* last_page) { __OSInodeUnit next_page; __OSInodeUnit old_page; @@ -61,3 +100,81 @@ s32 __osPfsReleasePages(OSPfs* pfs, __OSInode* inode, u8 start_page, u8 bank, __ return ret; } + +#else + +s32 __osPfsReleasePages(OSPfs *pfs, __OSInode *inode, u8 start_page, u16 *sum, u8 bank, __OSInodeUnit *last_page, int flag) +{ + __OSInodeUnit next_page; + __OSInodeUnit old_page; + s32 ret; + int offset; + ret = 0; + next_page = inode->inode_page[start_page]; + + if (next_page.ipage != 1) { + offset = (next_page.inode_t.bank > 0) ? 1 : pfs->inode_start_page; + } else { + offset = (bank > 0) ? 1 : pfs->inode_start_page; + } + + if (next_page.inode_t.page < offset && next_page.ipage != 1) { + return PFS_ERR_INCONSISTENT; + } + + *last_page = next_page; + + if (flag == TRUE) { + inode->inode_page[start_page].ipage = 3; + } + + ERRCK(__osBlockSum(pfs, start_page, sum, bank)); + + if (next_page.ipage == 1) { + return 0; + } + + while (next_page.ipage >= pfs->inode_start_page) { + old_page = next_page; + next_page = inode->inode_page[next_page.inode_t.page]; + inode->inode_page[old_page.inode_t.page].ipage = 3; + + ERRCK(__osBlockSum(pfs, old_page.inode_t.page, sum, bank)); + + if (next_page.inode_t.bank != bank) { + break; + } + } + + if (next_page.ipage >= pfs->inode_start_page && next_page.inode_t.bank == bank) { + inode->inode_page[next_page.inode_t.page].ipage = 3; + } + + *last_page = next_page; + return 0; +} +s32 __osBlockSum(OSPfs *pfs, u8 page_no, u16 *sum, u8 bank) +{ + int i; + s32 ret; + u8 data[32]; + ret = 0; + pfs->activebank = bank; + ERRCK(__osPfsSelectBank(pfs)); + for (i = 0; i < PFS_ONE_PAGE; i++) + { + ret = __osContRamRead(pfs->queue, pfs->channel, page_no * PFS_ONE_PAGE + i, data); + if (ret != 0) + { + pfs->activebank = 0; + __osPfsSelectBank(pfs); + return ret; + } + *sum = *sum + __osSumcalc(data, sizeof(data)); + } + pfs->activebank = 0; + ret = __osPfsSelectBank(pfs); + return ret; +} + +#endif diff --git a/lib/ultralib/src/io/pfsfilestate.c b/lib/ultralib/src/io/pfsfilestate.c index e617887..4f80020 100644 --- a/lib/ultralib/src/io/pfsfilestate.c +++ b/lib/ultralib/src/io/pfsfilestate.c @@ -7,15 +7,25 @@ s32 osPfsFileState(OSPfs* pfs, s32 file_no, OSPfsState* state) { __OSInode inode; __OSDir dir; __OSInodeUnit next_page; +#if BUILD_VERSION < VERSION_J + int j; +#endif u8 bank; +#if BUILD_VERSION < VERSION_J + u8 start_page; +#endif if (file_no >= pfs->dir_size || file_no < 0) { return PFS_ERR_INVALID; } - PFS_CHECK_STATUS; + PFS_CHECK_STATUS(); +#if BUILD_VERSION >= VERSION_J ERRCK(__osCheckId(pfs)); - SET_ACTIVEBANK_TO_ZERO; +#else + PFS_CHECK_ID(); +#endif + SET_ACTIVEBANK_TO_ZERO(); ERRCK(__osContRamRead(pfs->queue, pfs->channel, pfs->dir_table + file_no, (u8*)&dir)); @@ -23,6 +33,7 @@ s32 osPfsFileState(OSPfs* pfs, s32 file_no, OSPfsState* state) { return PFS_ERR_INVALID; } +#if BUILD_VERSION >= VERSION_J pages = 0; next_page = dir.start_page; bank = 0xFF; @@ -51,4 +62,51 @@ s32 osPfsFileState(OSPfs* pfs, s32 file_no, OSPfsState* state) { ret = __osPfsGetStatus(pfs->queue, pfs->channel); return ret; +#else + if (dir.start_page.ipage < pfs->inode_start_page) { + return PFS_ERR_INCONSISTENT; + } + + pages = 0; + start_page = dir.start_page.inode_t.page; + bank = dir.start_page.inode_t.bank; + + while (bank < pfs->banks) { + ERRCK(__osPfsRWInode(pfs, &inode, OS_READ, bank)); + next_page = inode.inode_page[start_page]; + pages++; + + while (next_page.ipage >= pfs->inode_start_page) { + pages++; + next_page = inode.inode_page[next_page.inode_t.page]; + if (next_page.inode_t.bank != bank) { + bank = next_page.inode_t.bank; + start_page = next_page.inode_t.page; + break; + } + } + + if (next_page.ipage == PFS_EOF) { + break; + } + } + + if (next_page.ipage != PFS_EOF) { + return PFS_ERR_INCONSISTENT; + } + + state->file_size = pages * (PFS_ONE_PAGE * BLOCKSIZE); + state->company_code = dir.company_code; + state->game_code = dir.game_code; + + for (j = 0; j < ARRLEN(state->game_name); j++) { + state->game_name[j] = dir.game_name[j]; + } + + for (j = 0; j < ARRLEN(state->ext_name); j++) { + state->ext_name[j] = dir.ext_name[j]; + } + + return 0; +#endif } diff --git a/lib/ultralib/src/io/pfsfreeblocks.c b/lib/ultralib/src/io/pfsfreeblocks.c index ad01f4f..68a54c6 100644 --- a/lib/ultralib/src/io/pfsfreeblocks.c +++ b/lib/ultralib/src/io/pfsfreeblocks.c @@ -9,8 +9,12 @@ s32 osPfsFreeBlocks(OSPfs* pfs, s32* bytes_not_used) { u8 bank; int offset; - PFS_CHECK_STATUS; + PFS_CHECK_STATUS(); +#if BUILD_VERSION >= VERSION_J ERRCK(__osCheckId(pfs)); +#else + PFS_CHECK_ID(); +#endif for (bank = 0; bank < pfs->banks; bank++) { ERRCK(__osPfsRWInode(pfs, &inode, OS_READ, bank)); offset = ((bank > 0) ? 1 : pfs->inode_start_page); diff --git a/lib/ultralib/src/io/pfsgetlabel.c b/lib/ultralib/src/io/pfsgetlabel.c index e8a62fd..0e4de49 100644 --- a/lib/ultralib/src/io/pfsgetlabel.c +++ b/lib/ultralib/src/io/pfsgetlabel.c @@ -8,7 +8,9 @@ s32 osPfsGetLabel(OSPfs* pfs, u8* label, int* len) { return PFS_ERR_INVALID; } - PFS_CHECK_ID; + if (__osCheckId(pfs) == PFS_ERR_NEW_PACK) { + return PFS_ERR_NEW_PACK; + } for (i = 0; i < ARRLEN(pfs->label); i++) { if (*(u8*)(u32)(i + pfs->label) == 0) { diff --git a/lib/ultralib/src/io/pfsgetstatus.c b/lib/ultralib/src/io/pfsgetstatus.c index 0fdcdaa..955412b 100644 --- a/lib/ultralib/src/io/pfsgetstatus.c +++ b/lib/ultralib/src/io/pfsgetstatus.c @@ -2,7 +2,11 @@ #include "controller.h" #include "siint.h" +#if BUILD_VERSION >= VERSION_J void __osPfsRequestOneChannel(int channel, u8 cmd); +#else +void __osPfsRequestOneChannel(int channel); +#endif void __osPfsGetOneChannelData(int channel, OSContStatus* data); s32 __osPfsGetStatus(OSMesgQueue* queue, int channel) { @@ -10,9 +14,13 @@ s32 __osPfsGetStatus(OSMesgQueue* queue, int channel) { OSMesg dummy; OSContStatus data; +#if BUILD_VERSION >= VERSION_J __osPfsInodeCacheBank = 250; __osPfsRequestOneChannel(channel, CONT_CMD_REQUEST_STATUS); +#else + __osPfsRequestOneChannel(channel); +#endif ret = __osSiRawStartDma(OS_WRITE, &__osPfsPifRam); osRecvMesg(queue, &dummy, OS_MESG_BLOCK); @@ -33,19 +41,31 @@ s32 __osPfsGetStatus(OSMesgQueue* queue, int channel) { return ret; } +#if BUILD_VERSION >= VERSION_J void __osPfsRequestOneChannel(int channel, u8 cmd) { +#else +void __osPfsRequestOneChannel(int channel) { +#endif u8* ptr; __OSContRequesFormatShort requestformat; int i; +#if BUILD_VERSION >= VERSION_J __osContLastCmd = CONT_CMD_END; +#else + __osContLastCmd = CONT_CMD_REQUEST_STATUS; +#endif __osPfsPifRam.pifstatus = CONT_CMD_READ_BUTTON; ptr = (u8*)&__osPfsPifRam; requestformat.txsize = CONT_CMD_REQUEST_STATUS_TX; requestformat.rxsize = CONT_CMD_REQUEST_STATUS_RX; +#if BUILD_VERSION >= VERSION_J requestformat.cmd = cmd; +#else + requestformat.cmd = CONT_CMD_REQUEST_STATUS; +#endif requestformat.typeh = CONT_CMD_NOP; requestformat.typel = CONT_CMD_NOP; requestformat.status = CONT_CMD_NOP; diff --git a/lib/ultralib/src/io/pfsinitpak.c b/lib/ultralib/src/io/pfsinitpak.c index 68fa5db..d3fde1f 100644 --- a/lib/ultralib/src/io/pfsinitpak.c +++ b/lib/ultralib/src/io/pfsinitpak.c @@ -2,9 +2,14 @@ #include "controller.h" #include "siint.h" +#if BUILD_VERSION >= VERSION_J static s32 __osPfsCheckRamArea(OSPfs* pfs); +#endif s32 osPfsInitPak(OSMesgQueue* queue, OSPfs* pfs, int channel) { +#if BUILD_VERSION < VERSION_J + int k; +#endif s32 ret = 0; u16 sum; u16 isum; @@ -26,8 +31,10 @@ s32 osPfsInitPak(OSMesgQueue* queue, OSPfs* pfs, int channel) { pfs->channel = channel; pfs->status = 0; +#if BUILD_VERSION >= VERSION_J ERRCK(__osPfsCheckRamArea(pfs)); - ERRCK(__osPfsSelectBank(pfs, 0)); +#endif + ERRCK(SELECT_BANK(pfs, 0)); ERRCK(__osContRamRead(pfs->queue, pfs->channel, PFS_ID_0AREA, temp)); __osIdCheckSum((u16*)temp, &sum, &isum); @@ -37,18 +44,29 @@ s32 osPfsInitPak(OSMesgQueue* queue, OSPfs* pfs, int channel) { ret = __osCheckPackId(pfs, id); if (ret != 0) { +#if BUILD_VERSION >= VERSION_J pfs->status |= PFS_ID_BROKEN; +#endif return ret; } + +#if BUILD_VERSION < VERSION_J + // Duplicated check + else if (ret != 0) { + return ret; + } +#endif } if (!(id->deviceid & 1)) { ret = __osRepairPackId(pfs, id, &newid); if (ret != 0) { +#if BUILD_VERSION >= VERSION_J if (ret == PFS_ERR_ID_FATAL) { pfs->status |= PFS_ID_BROKEN; } +#endif return ret; } @@ -59,7 +77,13 @@ s32 osPfsInitPak(OSMesgQueue* queue, OSPfs* pfs, int channel) { } } +#if BUILD_VERSION >= VERSION_J bcopy(id, pfs->id, BLOCKSIZE); +#else + for (k = 0; k < ARRLEN(pfs->id); k++) { + pfs->id[k] = ((u8 *)id)[k]; + } +#endif pfs->version = id->version; pfs->banks = id->banks; @@ -77,6 +101,7 @@ s32 osPfsInitPak(OSMesgQueue* queue, OSPfs* pfs, int channel) { return ret; } +#if BUILD_VERSION >= VERSION_J static s32 __osPfsCheckRamArea(OSPfs* pfs) { s32 i; s32 ret = 0; @@ -84,7 +109,7 @@ static s32 __osPfsCheckRamArea(OSPfs* pfs) { u8 temp2[BLOCKSIZE]; u8 save[BLOCKSIZE]; - ERRCK(__osPfsSelectBank(pfs, PFS_ID_BANK_256K)); + ERRCK(SELECT_BANK(pfs, PFS_ID_BANK_256K)); ERRCK(__osContRamRead(pfs->queue, pfs->channel, 0, save)); for (i = 0; i < BLOCKSIZE; i++) { @@ -101,3 +126,4 @@ static s32 __osPfsCheckRamArea(OSPfs* pfs) { ret = __osContRamWrite(pfs->queue, pfs->channel, 0, save, FALSE); return ret; } +#endif diff --git a/lib/ultralib/src/io/pfsnumfiles.c b/lib/ultralib/src/io/pfsnumfiles.c index 9f52fb4..7fa352e 100644 --- a/lib/ultralib/src/io/pfsnumfiles.c +++ b/lib/ultralib/src/io/pfsnumfiles.c @@ -7,9 +7,13 @@ s32 osPfsNumFiles(OSPfs* pfs, s32* max_files, s32* files_used) { __OSDir dir; int files = 0; - PFS_CHECK_STATUS; + PFS_CHECK_STATUS(); +#if BUILD_VERSION >= VERSION_J ERRCK(__osCheckId(pfs)); - SET_ACTIVEBANK_TO_ZERO; +#else + PFS_CHECK_ID(); +#endif + SET_ACTIVEBANK_TO_ZERO(); for (j = 0; j < pfs->dir_size; j++) { ERRCK(__osContRamRead(pfs->queue, pfs->channel, pfs->dir_table + j, (u8*)&dir)); @@ -21,6 +25,10 @@ s32 osPfsNumFiles(OSPfs* pfs, s32* max_files, s32* files_used) { *files_used = files; *max_files = pfs->dir_size; +#if BUILD_VERSION >= VERSION_J ret = __osPfsGetStatus(pfs->queue, pfs->channel); return ret; +#else + return 0; +#endif } diff --git a/lib/ultralib/src/io/pfsreadwritefile.c b/lib/ultralib/src/io/pfsreadwritefile.c index 7a6e691..17afe54 100644 --- a/lib/ultralib/src/io/pfsreadwritefile.c +++ b/lib/ultralib/src/io/pfsreadwritefile.c @@ -45,9 +45,9 @@ s32 osPfsReadWriteFile(OSPfs* pfs, s32 file_no, u8 flag, int offset, int size_in return PFS_ERR_INVALID; } - PFS_CHECK_STATUS; - PFS_CHECK_ID; - SET_ACTIVEBANK_TO_ZERO; + PFS_CHECK_STATUS(); + PFS_CHECK_ID(); + SET_ACTIVEBANK_TO_ZERO(); ERRCK(__osContRamRead(pfs->queue, pfs->channel, pfs->dir_table + file_no, (u8*)&dir)); if (dir.company_code == 0 || dir.game_code == 0) { @@ -86,7 +86,7 @@ s32 osPfsReadWriteFile(OSPfs* pfs, s32 file_no, u8 flag, int offset, int size_in } if (pfs->activebank != cur_page.inode_t.bank) { - ERRCK(__osPfsSelectBank(pfs, cur_page.inode_t.bank)); + ERRCK(SELECT_BANK(pfs, cur_page.inode_t.bank)); } blockno = cur_page.inode_t.page * PFS_ONE_PAGE + cur_block; @@ -107,10 +107,18 @@ s32 osPfsReadWriteFile(OSPfs* pfs, s32 file_no, u8 flag, int offset, int size_in if (flag == PFS_WRITE && (dir.status & DIR_STATUS_OCCUPIED) == 0) { dir.status |= DIR_STATUS_OCCUPIED; - SET_ACTIVEBANK_TO_ZERO; +#if BUILD_VERSION >= VERSION_J + SET_ACTIVEBANK_TO_ZERO(); +#else + ERRCK(SELECT_BANK(pfs, 0)); +#endif ERRCK(__osContRamWrite(pfs->queue, pfs->channel, pfs->dir_table + file_no, (u8*)&dir, FALSE)); } +#if BUILD_VERSION >= VERSION_J ret = __osPfsGetStatus(pfs->queue, pfs->channel); return ret; +#else + return 0; +#endif } diff --git a/lib/ultralib/src/io/pfsreformat.c b/lib/ultralib/src/io/pfsreformat.c index 7cd6391..687b456 100644 --- a/lib/ultralib/src/io/pfsreformat.c +++ b/lib/ultralib/src/io/pfsreformat.c @@ -23,7 +23,7 @@ s32 osPfsReFormat(OSPfs* pfs, OSMesgQueue* queue, int channel) { __osSiRelAccess(); ERRCK(__osGetId(pfs)); - SET_ACTIVEBANK_TO_ZERO; + SET_ACTIVEBANK_TO_ZERO(); for (j = 0; j < ARRLEN(tmp_data); j++) { tmp_data[j] = 0; diff --git a/lib/ultralib/src/io/pfsrepairid.c b/lib/ultralib/src/io/pfsrepairid.c index 01b5567..348f8b2 100644 --- a/lib/ultralib/src/io/pfsrepairid.c +++ b/lib/ultralib/src/io/pfsrepairid.c @@ -1,6 +1,8 @@ #include "PR/os_internal.h" #include "controller.h" +#if BUILD_VERSION >= VERSION_J + s32 osPfsRepairId(OSPfs* pfs) { s32 ret = 0; @@ -16,3 +18,56 @@ s32 osPfsRepairId(OSPfs* pfs) { return ret; } + +#else + +s32 osPfsRepairId(OSPfs *pfs) { + int k; + u16 sum; + u16 isum; + u8 temp[32]; + __OSPackId newid; + s32 ret; + __OSPackId *id; + + SET_ACTIVEBANK_TO_ZERO(); + ERRCK(__osContRamRead(pfs->queue, pfs->channel, 1, (u8*)&temp)); + __osIdCheckSum((u16*)&temp, &sum, &isum); + id = (__OSPackId*)&temp; + + if (id->checksum != sum || id->inverted_checksum != isum) { + ret = __osCheckPackId(pfs, id); + + if (ret == 10) { + ERRCK(__osRepairPackId(pfs, id, &newid)); + id = &newid; + } else if (ret != 0) { + return ret; + } + } + + if ((id->deviceid & 1) == 0) { + ERRCK(__osRepairPackId(pfs, id, &newid)); + id = &newid; + + if ((id->deviceid & 1) == 0) { + return PFS_ERR_DEVICE; + } + } + + for (k = 0; k < ARRLEN(pfs->id); k++) { + pfs->id[k] = ((u8*)id)[k]; + } + + pfs->version = id->version; + pfs->banks = id->banks; + pfs->inode_start_page = pfs->banks * 2 + 3; + pfs->dir_size = 16; + pfs->inode_table = 8; + pfs->minode_table = (pfs->banks + 1) * PFS_ONE_PAGE; + pfs->dir_table = pfs->minode_table + pfs->banks * PFS_ONE_PAGE; + ERRCK(__osContRamRead(pfs->queue, pfs->channel, 7, pfs->label)); + return 0; +} + +#endif diff --git a/lib/ultralib/src/io/pfssearchfile.c b/lib/ultralib/src/io/pfssearchfile.c index a107852..4fa3c57 100644 --- a/lib/ultralib/src/io/pfssearchfile.c +++ b/lib/ultralib/src/io/pfssearchfile.c @@ -8,15 +8,20 @@ s32 osPfsFindFile(OSPfs* pfs, u16 company_code, u32 game_code, u8* game_name, u8 s32 ret = 0; int fail; +#if BUILD_VERSION >= VERSION_J if (!(pfs->status & PFS_INITIALIZED)) { return PFS_ERR_INVALID; } - ERRCK(__osCheckId(pfs)); +#else + PFS_CHECK_ID(); +#endif for (j = 0; j < pfs->dir_size; j++) { ERRCK(__osContRamRead(pfs->queue, pfs->channel, pfs->dir_table + j, (u8*)&dir)); +#if BUILD_VERSION >= VERSION_J ERRCK(__osPfsGetStatus(pfs->queue, pfs->channel)); +#endif if ((dir.company_code == company_code) && dir.game_code == game_code) { fail = FALSE; diff --git a/lib/ultralib/src/io/pfsselectbank.c b/lib/ultralib/src/io/pfsselectbank.c index fb0ab48..7e33b2d 100644 --- a/lib/ultralib/src/io/pfsselectbank.c +++ b/lib/ultralib/src/io/pfsselectbank.c @@ -1,6 +1,7 @@ #include "PR/os_internal.h" #include "controller.h" +#if BUILD_VERSION >= VERSION_J s32 __osPfsSelectBank(OSPfs* pfs, u8 bank) { u8 temp[BLOCKSIZE]; int i; @@ -18,3 +19,4 @@ s32 __osPfsSelectBank(OSPfs* pfs, u8 bank) { return ret; } +#endif diff --git a/lib/ultralib/src/io/pfssetlabel.c b/lib/ultralib/src/io/pfssetlabel.c index 9724598..43308c7 100644 --- a/lib/ultralib/src/io/pfssetlabel.c +++ b/lib/ultralib/src/io/pfssetlabel.c @@ -5,11 +5,15 @@ s32 osPfsSetLabel(OSPfs* pfs, u8* label) { int i; s32 ret; +#if BUILD_VERSION >= VERSION_J if (!(pfs->status & PFS_INITIALIZED)) { return PFS_ERR_INVALID; } ERRCK(__osCheckId(pfs)); +#else + PFS_CHECK_ID(); +#endif if (label != NULL) { for (i = 0; i < ARRLEN(pfs->label); i++) { @@ -21,11 +25,17 @@ s32 osPfsSetLabel(OSPfs* pfs, u8* label) { } } +#if BUILD_VERSION >= VERSION_J if (pfs->activebank != 0) { - ret = (__osPfsSelectBank(pfs, 0)); + ret = SELECT_BANK(pfs, 0); if (ret == 0) { ret = (__osContRamWrite(pfs->queue, pfs->channel, PFS_LABEL_AREA, pfs->label, FALSE)); } } return ret; +#else + SET_ACTIVEBANK_TO_ZERO(); + ERRCK(__osContRamWrite(pfs->queue, pfs->channel, PFS_LABEL_AREA, pfs->label, FALSE)); + return 0; +#endif } diff --git a/lib/ultralib/src/io/piint.h b/lib/ultralib/src/io/piint.h index 5551c4b..50a0858 100644 --- a/lib/ultralib/src/io/piint.h +++ b/lib/ultralib/src/io/piint.h @@ -100,6 +100,16 @@ extern OSPiHandle LeoDiskHandle; extern OSMesgQueue __osPiAccessQueue; extern u32 __osPiAccessQueueEnabled; +// These symbols were all renamed in 2.0J. +#if BUILD_VERSION < VERSION_J +#define __osEPiRawStartDma osEPiRawStartDma +#define __osEPiRawReadIo osEPiRawReadIo +#define __osEPiRawWriteIo osEPiRawWriteIo +#define __osPiRawStartDma osPiRawStartDma +#define __osPiRawWriteIo osPiRawWriteIo +#define __osPiRawReadIo osPiRawReadIo +#endif + int __osPiDeviceBusy(void); void __osDevMgrMain(void *); void __osPiCreateAccessQueue(void); @@ -124,6 +134,8 @@ OSMesgQueue *osPiGetCmdQueue(void); if (cHandle->var != pihandle->var) \ IO_WRITE(reg, pihandle->var) +#if BUILD_VERSION >= VERSION_J + #define EPI_SYNC(pihandle, stat, domain) \ \ WAIT_ON_IOBUSY(stat); \ @@ -153,4 +165,33 @@ OSMesgQueue *osPiGetCmdQueue(void); cHandle->pulse = pihandle->pulse; \ }(void)0 +#else + +#define EPI_SYNC(pihandle, stat, domain) \ + \ + WAIT_ON_IOBUSY(stat); \ + \ + domain = pihandle->domain; \ + if (__osCurrentHandle[domain] != pihandle) \ + { \ + OSPiHandle *cHandle = __osCurrentHandle[domain]; \ + if (domain == PI_DOMAIN1) \ + { \ + UPDATE_REG(pihandle, PI_BSD_DOM1_LAT_REG, latency); \ + UPDATE_REG(pihandle, PI_BSD_DOM1_PGS_REG, pageSize); \ + UPDATE_REG(pihandle, PI_BSD_DOM1_RLS_REG, relDuration); \ + UPDATE_REG(pihandle, PI_BSD_DOM1_PWD_REG, pulse); \ + } \ + else \ + { \ + UPDATE_REG(pihandle, PI_BSD_DOM2_LAT_REG, latency); \ + UPDATE_REG(pihandle, PI_BSD_DOM2_PGS_REG, pageSize); \ + UPDATE_REG(pihandle, PI_BSD_DOM2_RLS_REG, relDuration); \ + UPDATE_REG(pihandle, PI_BSD_DOM2_PWD_REG, pulse); \ + } \ + __osCurrentHandle[domain] = pihandle; \ + }(void)0 + +#endif + #endif diff --git a/lib/ultralib/src/io/pimgr.c b/lib/ultralib/src/io/pimgr.c index 56a92ad..d98c6ad 100644 --- a/lib/ultralib/src/io/pimgr.c +++ b/lib/ultralib/src/io/pimgr.c @@ -22,9 +22,15 @@ static OSMesg piEventBuf[1]; OSDevMgr __osPiDevMgr = { 0 }; OSPiHandle* __osPiTable = NULL; +#if BUILD_VERSION >= VERSION_J OSPiHandle __Dom1SpeedParam ALIGNED(8); OSPiHandle __Dom2SpeedParam ALIGNED(8); OSPiHandle* __osCurrentHandle[2] ALIGNED(8) = { &__Dom1SpeedParam, &__Dom2SpeedParam }; +#else +extern OSPiHandle CartRomHandle; +extern OSPiHandle LeoDiskHandle; +OSPiHandle* __osCurrentHandle[2] ALIGNED(8) = { &CartRomHandle, &LeoDiskHandle }; +#endif void osCreatePiManager(OSPri pri, OSMesgQueue* cmdQ, OSMesg* cmdBuf, s32 cmdMsgCnt) { u32 savedMask; diff --git a/lib/ultralib/src/io/pirawread.c b/lib/ultralib/src/io/pirawread.c index 0fd6a2e..95d7082 100644 --- a/lib/ultralib/src/io/pirawread.c +++ b/lib/ultralib/src/io/pirawread.c @@ -39,11 +39,10 @@ - - - - - +// Adjust line numbers to match assert +#if BUILD_VERSION < VERSION_J +#line 46 +#endif // TODO: this comes from a header #ident "$Revision: 1.17 $" @@ -56,9 +55,9 @@ s32 __osPiRawReadIo(u32 devAddr, u32* data) { __osError(ERR_OSPIRAWREADIO, 1, devAddr); return -1; } +#endif assert(data != NULL); -#endif WAIT_ON_IOBUSY(stat); *data = IO_READ((u32)osRomBase | devAddr); diff --git a/lib/ultralib/src/io/sirawdma.c b/lib/ultralib/src/io/sirawdma.c index e2dd03f..5fb5f8a 100644 --- a/lib/ultralib/src/io/sirawdma.c +++ b/lib/ultralib/src/io/sirawdma.c @@ -44,20 +44,26 @@ - - - +// Adjust line numbers to match assert +#if BUILD_VERSION < VERSION_J +#line 49 +#endif // TODO: this comes from a header #ident "$Revision: 1.17 $" s32 __osSiRawStartDma(s32 direction, void* dramAddr) { -#ifdef _DEBUG assert(((u32)dramAddr & 0x3) == 0); -#endif + +#if BUILD_VERSION >= VERSION_J if (IO_READ(SI_STATUS_REG) & (SI_STATUS_DMA_BUSY | SI_STATUS_RD_BUSY)) { return -1; } +#else + if (__osSiDeviceBusy()) { + return -1; + } +#endif if (direction == OS_WRITE) { osWritebackDCache(dramAddr, 64); diff --git a/lib/ultralib/src/io/sirawread.c b/lib/ultralib/src/io/sirawread.c index 0b605db..4ce8330 100644 --- a/lib/ultralib/src/io/sirawread.c +++ b/lib/ultralib/src/io/sirawread.c @@ -41,18 +41,18 @@ - - - +// Adjust line numbers to match assert +#if BUILD_VERSION < VERSION_J +#line 45 +#endif // TODO: this comes from a header #ident "$Revision: 1.17 $" s32 __osSiRawReadIo(u32 devAddr, u32* data) { -#ifdef _DEBUG assert((devAddr & 0x3) == 0); assert(data != NULL); -#endif + if (__osSiDeviceBusy()) { return -1; } diff --git a/lib/ultralib/src/io/sirawwrite.c b/lib/ultralib/src/io/sirawwrite.c index 0a50ace..795d38a 100644 --- a/lib/ultralib/src/io/sirawwrite.c +++ b/lib/ultralib/src/io/sirawwrite.c @@ -41,17 +41,17 @@ - - - +// Adjust line numbers to match assert +#if BUILD_VERSION < VERSION_J +#line 46 +#endif // TODO: this comes from a header #ident "$Revision: 1.17 $" s32 __osSiRawWriteIo(u32 devAddr, u32 data) { -#ifdef _DEBUG assert((devAddr & 0x3) == 0); -#endif + if (__osSiDeviceBusy()) { return -1; } diff --git a/lib/ultralib/src/io/sprawdma.c b/lib/ultralib/src/io/sprawdma.c index 6224b1f..6d95a49 100644 --- a/lib/ultralib/src/io/sprawdma.c +++ b/lib/ultralib/src/io/sprawdma.c @@ -47,10 +47,10 @@ - - - - +// Adjust line numbers to match assert +#if BUILD_VERSION < VERSION_J +#line 52 +#endif // TODO: this comes from a header #ident "$Revision: 1.17 $" diff --git a/lib/ultralib/src/io/sprawread.c b/lib/ultralib/src/io/sprawread.c index 4609ebc..5910a9e 100644 --- a/lib/ultralib/src/io/sprawread.c +++ b/lib/ultralib/src/io/sprawread.c @@ -40,18 +40,18 @@ - - - +// Adjust line numbers to match assert +#if BUILD_VERSION < VERSION_J +#line 45 +#endif // TODO: this comes from a header #ident "$Revision: 1.17 $" s32 __osSpRawReadIo(u32 devAddr, u32* data) { -#ifdef _DEBUG assert((devAddr & 0x3) == 0); assert(data != NULL); -#endif + if (__osSpDeviceBusy()) { return -1; } diff --git a/lib/ultralib/src/io/sprawwrite.c b/lib/ultralib/src/io/sprawwrite.c index 66510d1..9ce3ebf 100644 --- a/lib/ultralib/src/io/sprawwrite.c +++ b/lib/ultralib/src/io/sprawwrite.c @@ -41,17 +41,17 @@ - - - +// Adjust line numbers to match assert +#if BUILD_VERSION < VERSION_J +#line 45 +#endif // TODO: this comes from a header #ident "$Revision: 1.17 $" s32 __osSpRawWriteIo(u32 devAddr, u32 data) { -#ifdef _DEBUG assert((devAddr & 0x3) == 0); -#endif + if (__osSpDeviceBusy()) { return -1; } diff --git a/lib/ultralib/src/io/sptask.c b/lib/ultralib/src/io/sptask.c index 6b5e903..8fbfeb2 100644 --- a/lib/ultralib/src/io/sptask.c +++ b/lib/ultralib/src/io/sptask.c @@ -4,6 +4,10 @@ #include "PR/rcp.h" #include "../os/osint.h" +#if BUILD_VERSION < VERSION_J +#ident "$Revision: 1.4 $" +#endif + #define _osVirtualToPhysical(ptr) \ if (ptr != NULL) { \ ptr = (void*)osVirtualToPhysical(ptr); \ diff --git a/lib/ultralib/src/io/vimgr.c b/lib/ultralib/src/io/vimgr.c index 1f2e5e8..0fe51d5 100644 --- a/lib/ultralib/src/io/vimgr.c +++ b/lib/ultralib/src/io/vimgr.c @@ -6,7 +6,9 @@ #include "../os/osint.h" OSDevMgr __osViDevMgr = { 0 }; +#if BUILD_VERSION >= VERSION_J u32 __additional_scanline = 0; +#endif static OSThread viThread; static unsigned char viThreadStack[OS_VIM_STACKSIZE] ALIGNED(16); static OSMesgQueue viEventQueue ALIGNED(8); @@ -31,7 +33,9 @@ void osCreateViManager(OSPri pri) { return; } __osTimerServicesInit(); +#if BUILD_VERSION >= VERSION_J __additional_scanline = 0; +#endif osCreateMesgQueue(&viEventQueue, viEventBuf, ARRLEN(viEventBuf)); viRetraceMsg.hdr.type = OS_MESG_TYPE_VRETRACE; viRetraceMsg.hdr.pri = OS_MESG_PRI_NORMAL; diff --git a/lib/ultralib/src/io/visetspecial.c b/lib/ultralib/src/io/visetspecial.c index f3bd773..0a288e5 100644 --- a/lib/ultralib/src/io/visetspecial.c +++ b/lib/ultralib/src/io/visetspecial.c @@ -6,9 +6,14 @@ // TODO: this comes from a header #ident "$Revision: 1.17 $" +// This value was incorrectly calculated until being fixed in 2.0J +#if BUILD_VERSION >= VERSION_J #define OS_VI_SPECIAL_MAX \ (OS_VI_GAMMA_ON | OS_VI_GAMMA_OFF | OS_VI_GAMMA_DITHER_ON | OS_VI_GAMMA_DITHER_OFF | OS_VI_DIVOT_ON | \ OS_VI_DIVOT_OFF | OS_VI_DITHER_FILTER_ON | OS_VI_DITHER_FILTER_OFF) +#else +#define OS_VI_SPECIAL_MAX OS_VI_DITHER_FILTER_OFF +#endif void osViSetSpecialFeatures(u32 func) { register u32 saveMask; diff --git a/lib/ultralib/src/io/viswapcontext.c b/lib/ultralib/src/io/viswapcontext.c index aac7cd9..2f6d2c6 100644 --- a/lib/ultralib/src/io/viswapcontext.c +++ b/lib/ultralib/src/io/viswapcontext.c @@ -10,7 +10,9 @@ void __osViSwapContext() { register __OSViContext* vc; u32 origin; u32 hStart; +#if BUILD_VERSION >= VERSION_J u32 vStart; +#endif u32 nomValue; u32 field; @@ -35,7 +37,9 @@ void __osViSwapContext() { vc->y.scale = vm->fldRegs[field].yScale; } +#if BUILD_VERSION >= VERSION_J vStart = (vm->fldRegs[field].vStart - (__additional_scanline << 0x10)) + __additional_scanline; +#endif hStart = vm->comRegs.hStart; if (vc->state & VI_STATE_BLACK) { @@ -59,7 +63,11 @@ void __osViSwapContext() { IO_WRITE(VI_H_SYNC_REG, vm->comRegs.hSync); IO_WRITE(VI_LEAP_REG, vm->comRegs.leap); IO_WRITE(VI_H_START_REG, hStart); +#if BUILD_VERSION >= VERSION_J IO_WRITE(VI_V_START_REG, vStart); +#else + IO_WRITE(VI_V_START_REG, vm->fldRegs[field].vStart); +#endif IO_WRITE(VI_V_BURST_REG, vm->fldRegs[field].vBurst); IO_WRITE(VI_INTR_REG, vm->fldRegs[field].vIntr); IO_WRITE(VI_X_SCALE_REG, vc->x.scale); diff --git a/lib/ultralib/src/io/vitbl.c b/lib/ultralib/src/io/vitbl.c index 24dc787..476036e 100644 --- a/lib/ultralib/src/io/vitbl.c +++ b/lib/ultralib/src/io/vitbl.c @@ -2,7 +2,7 @@ #include "PR/rcp.h" #include "../io/viint.h" -OSViMode osViModeTable[56] = { +OSViMode osViModeTable[] = { { OS_VI_NTSC_LPN1, // type { // comRegs @@ -1302,6 +1302,7 @@ OSViMode osViModeTable[56] = { BURST(4, 2, 14, 0), // vBurst VINTR(2), // vIntr } } }, +#if BUILD_VERSION >= VERSION_J { OS_VI_FPAL_LPN1, // type { // comRegs @@ -1735,4 +1736,5 @@ OSViMode osViModeTable[56] = { BURST(105, 2, 13, 0), // vBurst VINTR(2), // vIntr } } } +#endif }; diff --git a/lib/ultralib/src/libc/ldiv.c b/lib/ultralib/src/libc/ldiv.c index b0d98c4..92388d3 100644 --- a/lib/ultralib/src/libc/ldiv.c +++ b/lib/ultralib/src/libc/ldiv.c @@ -1,3 +1,4 @@ +#include "os_version.h" #include "stdlib.h" // TODO: these come from headers diff --git a/lib/ultralib/src/libc/syncprintf.c b/lib/ultralib/src/libc/syncprintf.c index 867bd99..572ac73 100644 --- a/lib/ultralib/src/libc/syncprintf.c +++ b/lib/ultralib/src/libc/syncprintf.c @@ -2,9 +2,121 @@ #include "PR/os.h" #include "PR/rdb.h" #include "xstdio.h" +#include "PR/rcp.h" extern void* __printfunc; +#if BUILD_VERSION <= VERSION_J + +#ifndef _FINALROM +extern u32 __kmc_pt_mode; + +static void* proutSyncPrintf(void* str, const char* buf, size_t n) { + size_t sent = 0; + + while (sent < n) { + sent += __osRdbSend(buf + sent, n - sent, RDB_TYPE_GtoH_PRINT); + } + return 1; +} + +static volatile unsigned int* stat = (unsigned*)0xbff08004; +static volatile unsigned int* wport = (unsigned*)0xbff08000; +static volatile unsigned int* piok = (unsigned*)PHYS_TO_K1(PI_STATUS_REG); + +static void rmonPutchar(char c) { + u32 data; + + while (*piok & (PI_STATUS_DMA_BUSY | PI_STATUS_IO_BUSY)) { + } + + while (!(*stat & 4)) { + } + + *wport = c; +} + +static void* kmc_proutSyncPrintf(void* str, const char* buf, int n) { + int i; + char c; + char* p; + char* q; + char xbuf[128]; + static int column = 0; + + p = &xbuf; + + for (i = 0; i < n; i++) { + c = *buf++; + + switch (c) { + case '\n': + *p++ = '\n'; + column = 0; + break; + case '\t': + do { + *p++ = ' '; + } while (++column % 8); + break; + default: + column++; + *p++ = c; + break; + } + + if (c == '\n' || (p - xbuf) > 100) { + rmonPutchar((p - xbuf) - 1); + + q = xbuf; + while (q != p) { + rmonPutchar(*q++); + } + p = xbuf; + } + } + if (p != xbuf) { + rmonPutchar((p - xbuf) - 1); + + q = xbuf; + while (q != p) { + rmonPutchar(*q++); + } + } + return (void*)1; +} +#endif + +void osSyncPrintf(const char* fmt, ...) { + int ans; + va_list ap; + +#ifndef _FINALROM + va_start(ap, fmt); + if (__kmc_pt_mode) { + ans = _Printf(kmc_proutSyncPrintf, NULL, fmt, ap); + } else { + ans = _Printf(proutSyncPrintf, NULL, fmt, ap); + } + va_end(ap); +#endif +} + +void rmonPrintf(const char* fmt, ...) { + int ans; + va_list ap; + +#ifndef _FINALROM + va_start(ap, fmt); + if (__kmc_pt_mode) { + ans = _Printf(kmc_proutSyncPrintf, NULL, fmt, ap); + } + va_end(ap); +#endif +} + +#else + void __osSyncVPrintf(const char* fmt, va_list args) { int ans; @@ -38,3 +150,5 @@ void rmonPrintf(const char* fmt, ...) { va_end(ap); #endif } + +#endif diff --git a/lib/ultralib/src/log/delay.s b/lib/ultralib/src/log/delay.s index bbfc7dd..631781a 100644 --- a/lib/ultralib/src/log/delay.s +++ b/lib/ultralib/src/log/delay.s @@ -1,4 +1,6 @@ -#ifndef _FINALROM +#include "PR/os_version.h" + +#if !defined(_FINALROM) || BUILD_VERSION < VERSION_J #include "sys/asm.h" #include "sys/regdef.h" diff --git a/lib/ultralib/src/log/logfloat.c b/lib/ultralib/src/log/logfloat.c index 01acab6..17db739 100644 --- a/lib/ultralib/src/log/logfloat.c +++ b/lib/ultralib/src/log/logfloat.c @@ -1,4 +1,6 @@ -#ifndef _FINALROM +#include "os_version.h" + +#if !defined(_FINALROM) || BUILD_VERSION < VERSION_J #include "ultralog.h" diff --git a/lib/ultralib/src/mgu/mtxcatl.c b/lib/ultralib/src/mgu/mtxcatl.c index 86a978a..6054972 100644 --- a/lib/ultralib/src/mgu/mtxcatl.c +++ b/lib/ultralib/src/mgu/mtxcatl.c @@ -31,4 +31,14 @@ void guMtxCatL(Mtx *m, Mtx *n, Mtx *res) guMtxF2L(resf, res); } +#if BUILD_VERSION < VERSION_K +void guMtxXFML(Mtx *m, float x, float y, float z, float *ox, float *oy, float *oz) +{ + float mf[4][4]; + + guMtxL2F(mf, m); + + guMtxXFMF(mf, x, y, z, ox, oy, oz); +} +#endif /* End of file */ diff --git a/lib/ultralib/src/mgu/rotate.c b/lib/ultralib/src/mgu/rotate.c index fec2443..1c09bd8 100644 --- a/lib/ultralib/src/mgu/rotate.c +++ b/lib/ultralib/src/mgu/rotate.c @@ -12,6 +12,7 @@ #include "../gu/guint.h" #include "gu.h" +#include "os_version.h" void guRotateF(float mf[4][4], float a, float x, float y, float z) { @@ -19,9 +20,11 @@ void guRotateF(float mf[4][4], float a, float x, float y, float z) float sine; float cosine; float ab, bc, ca, t; +#if BUILD_VERSION >= VERSION_K float xxsine; float yxsine; float zxsine; +#endif guNormalize(&x, &y, &z); a *= dtor; @@ -34,9 +37,15 @@ void guRotateF(float mf[4][4], float a, float x, float y, float z) guMtxIdentF(mf); +#if BUILD_VERSION >= VERSION_K xxsine = x * sine; yxsine = y * sine; zxsine = z * sine; +#else + #define xxsine (x * sine) + #define yxsine (y * sine) + #define zxsine (z * sine) +#endif t = x*x; mf[0][0] = t+cosine*(1-t); diff --git a/lib/ultralib/src/os/ackramromread.c b/lib/ultralib/src/os/ackramromread.c index aa671bf..3de1f6f 100644 --- a/lib/ultralib/src/os/ackramromread.c +++ b/lib/ultralib/src/os/ackramromread.c @@ -1,7 +1,16 @@ #include "PR/os_internal.h" +#include "PR/os_version.h" // TODO: this comes from a header +#if BUILD_VERSION >= VERSION_J #ident "$Revision: 1.4 $" +#else +#ident "$Revision: 3.70 $" +#ident "$Revision: 1.5 $" +#ident "$Revision: 1.2 $" +#ident "$Revision: 1.4 $" +#ident "$Revision: 1.3 $" +#endif void osAckRamromRead() { } diff --git a/lib/ultralib/src/os/ackramromwrite.c b/lib/ultralib/src/os/ackramromwrite.c index 8a29f60..a99e951 100644 --- a/lib/ultralib/src/os/ackramromwrite.c +++ b/lib/ultralib/src/os/ackramromwrite.c @@ -1,7 +1,15 @@ #include "PR/os_internal.h" // TODO: this comes from a header +#if BUILD_VERSION >= VERSION_J #ident "$Revision: 1.4 $" +#else +#ident "$Revision: 3.70 $" +#ident "$Revision: 1.5 $" +#ident "$Revision: 1.2 $" +#ident "$Revision: 1.4 $" +#ident "$Revision: 1.3 $" +#endif void osAckRamromWrite() { } diff --git a/lib/ultralib/src/os/createthread.c b/lib/ultralib/src/os/createthread.c index fdf0c20..7c17834 100644 --- a/lib/ultralib/src/os/createthread.c +++ b/lib/ultralib/src/os/createthread.c @@ -37,6 +37,7 @@ void osCreateThread(OSThread* t, OSId id, void (*entry)(void*), void* arg, void* t->state = OS_STATE_STOPPED; t->flags = 0; +#if BUILD_VERSION >= VERSION_K #ifndef _FINALROM if (id < THPROF_IDMAX) { t->thprof = &thprof[id]; @@ -44,6 +45,7 @@ void osCreateThread(OSThread* t, OSId id, void (*entry)(void*), void* arg, void* t->thprof = &thprof[THPROF_IDMAX - 1]; } #endif +#endif saveMask = __osDisableInt(); t->tlnext = __osActiveQueue; diff --git a/lib/ultralib/src/os/destroythread.c b/lib/ultralib/src/os/destroythread.c index 91ad92c..c668869 100644 --- a/lib/ultralib/src/os/destroythread.c +++ b/lib/ultralib/src/os/destroythread.c @@ -17,6 +17,7 @@ void osDestroyThread(OSThread* t) { if (__osActiveQueue == t) { __osActiveQueue = __osActiveQueue->tlnext; } else { +#if BUILD_VERSION >= VERSION_J || !defined(__GNUC__) pred = __osActiveQueue; while (pred->priority != -1) { succ = pred->tlnext; @@ -26,6 +27,18 @@ void osDestroyThread(OSThread* t) { } pred = succ; } +#else + pred = __osActiveQueue; + succ = pred->tlnext; + while (succ != NULL) { + if (succ == t) { + pred->tlnext = t->tlnext; + break; + } + pred = succ; + succ = pred->tlnext; + } +#endif } if (t == __osRunningThread) { diff --git a/lib/ultralib/src/os/exceptasm.h b/lib/ultralib/src/os/exceptasm.h index 3e599ee..0d7def5 100644 --- a/lib/ultralib/src/os/exceptasm.h +++ b/lib/ultralib/src/os/exceptasm.h @@ -1,6 +1,8 @@ #ifndef _EXCEPTASM_H #define _EXCEPTASM_H +#include "PR/os_version.h" + #define MESG(type) (type << 3) #define MQ_MTQUEUE 0 @@ -18,6 +20,10 @@ #define HWINTR_SP 0x04 /* __osHwInt struct size */ +#if BUILD_VERSION >= VERSION_J #define HWINTR_SIZE 0x8 +#else +#define HWINTR_SIZE 0x4 +#endif #endif diff --git a/lib/ultralib/src/os/exceptasm.s b/lib/ultralib/src/os/exceptasm.s index 577aed5..b7699a8 100644 --- a/lib/ultralib/src/os/exceptasm.s +++ b/lib/ultralib/src/os/exceptasm.s @@ -6,7 +6,7 @@ #include "PR/rdb.h" #include "exceptasm.h" #include "threadasm.h" - +#include "PR/os_version.h" #define KMC_CODE_ENTRY 0xBFF00014 #define KMC_WPORT 0xBFF08000 #define KMC_STAT 0xBFF08004 @@ -68,6 +68,7 @@ EXPORT(__osCauseTable_pt) .data +#if BUILD_VERSION >= VERSION_J EXPORT(__osHwIntTable) .word 0, 0 .word 0, 0 @@ -77,6 +78,14 @@ EXPORT(__osHwIntTable) EXPORT(__osPiIntTable) .word 0, 0 +#else +EXPORT(__osHwIntTable) + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 +#endif #ifndef _FINALROM __osRdb_DbgRead_Ct: @@ -88,8 +97,10 @@ __osRdb_Mesg: __os_Kdebug_Pkt: .word 0 +#if BUILD_VERSION >= VERSION_K __osPreviousThread: .word 0 +#endif #endif .text @@ -381,7 +392,7 @@ skip_kmc_mode: savecontext: move t0, k0 lw k0, __osRunningThread -#ifndef _FINALROM +#if !defined(_FINALROM) && BUILD_VERSION >= VERSION_K sw k0, __osPreviousThread #endif ld t1, THREAD_GP1(t0) @@ -548,6 +559,7 @@ STAY2(mtc0 t1, C0_COMPARE) b next_interrupt cart: +#if BUILD_VERSION >= VERSION_J and s0, s0, ~CAUSE_IP4 la t1, __osHwIntTable add t1, HWINTR_SIZE @@ -565,6 +577,26 @@ cart: li a0, MESG(OS_EVENT_CART) jal send_mesg b next_interrupt +#else + li a0, MESG(OS_EVENT_CART) + and s0, s0, ~CAUSE_IP4 + la sp, leoDiskStack + addiu sp, 0x1000 - 0x10 # Stack size minus initial frame + li t2, HWINTR_SIZE + lw t2, __osHwIntTable(t2) + + beqz t2, 1f + + jalr t2 + li a0, MESG(OS_EVENT_CART) + + beqz v0, 1f + b redispatch + +1: + jal send_mesg + b next_interrupt +#endif rcp: lw s1, PHYS_TO_K1(MI_INTR_REG) @@ -641,6 +673,7 @@ pi: li t1, PI_STATUS_CLR_INTR sw t1, PHYS_TO_K1(PI_STATUS_REG) +#if BUILD_VERSION >= VERSION_J la t1, __osPiIntTable lw t2, (t1) beqz t2, 1f @@ -651,9 +684,12 @@ pi: bnez v0, 2f 1: +#endif li a0, MESG(OS_EVENT_PI) jal send_mesg +#if BUILD_VERSION >= VERSION_J 2: +#endif beqz s1, NoMoreRcpInts dp: @@ -816,7 +852,7 @@ END(handle_CpU) LEAF(__osEnqueueAndYield) lw a1, __osRunningThread -#ifndef _FINALROM +#if !defined(_FINALROM) && BUILD_VERSION >= VERSION_K sw a1, __osPreviousThread #endif STAY2(mfc0 t0, C0_SR) @@ -905,11 +941,11 @@ LEAF(__osPopThread) sw t9, 0(a0) jr ra END(__osPopThread) - +#if BUILD_VERSION >= VERSION_K LEAF(__osNop) jr ra END(__osNop) - +#endif LEAF(__osDispatchThread) la a0, __osRunQueue jal __osPopThread @@ -918,7 +954,7 @@ LEAF(__osDispatchThread) sh t0, THREAD_STATE(v0) move k0, v0 -#ifndef _FINALROM +#if !defined(_FINALROM) && BUILD_VERSION >= VERSION_K la t0, __osThprofFunc lw t0, (t0) beqz t0, __osDispatchThreadSave @@ -928,6 +964,11 @@ LEAF(__osDispatchThread) jalr t0 #endif +/* There's another 1: label somewhere around here in version J and below */ +#if BUILD_VERSION < VERSION_K +1: +#endif + __osDispatchThreadSave: lw k1, THREAD_SR(k0) la t0, __OSGlobalIntMask diff --git a/lib/ultralib/src/os/gethwinterrupt.c b/lib/ultralib/src/os/gethwinterrupt.c index 21b46e7..46dc366 100644 --- a/lib/ultralib/src/os/gethwinterrupt.c +++ b/lib/ultralib/src/os/gethwinterrupt.c @@ -2,12 +2,20 @@ struct __osHwInt { s32 (*handler)(void); +#if BUILD_VERSION >= VERSION_J void* stackEnd; +#endif }; extern struct __osHwInt __osHwIntTable[]; +#if BUILD_VERSION >= VERSION_J void __osGetHWIntrRoutine(OSHWIntr interrupt, s32 (**handler)(void), void** stackEnd) { +#else +void __osGetHWIntrRoutine(OSHWIntr interrupt, s32 (**handler)(void)) { +#endif *handler = __osHwIntTable[interrupt].handler; +#if BUILD_VERSION >= VERSION_J *stackEnd = __osHwIntTable[interrupt].stackEnd; +#endif } diff --git a/lib/ultralib/src/os/getmemsize.c b/lib/ultralib/src/os/getmemsize.c index 44fbc19..814443d 100644 --- a/lib/ultralib/src/os/getmemsize.c +++ b/lib/ultralib/src/os/getmemsize.c @@ -6,6 +6,8 @@ #define SIZE_4MB 0x400000 #define SIZE_8MB 0x800000 +#if BUILD_VERSION >= VERSION_J + u32 osGetMemSize(void) { vu32* ptr; u32 size = SIZE_4MB; @@ -33,3 +35,19 @@ u32 osGetMemSize(void) { return size; } + +#else + +u32 osGetMemSize(void) { + u32* memory; + u32 memsize = SIZE_4MB - STEP; + do { + memsize += STEP; + memory = (u32*)(memsize + K1BASE); + memory[0] = 0x12345678; + memory[STEP / 4 - 1] = 0x87654321; + } while (memory[0] == 0x12345678 && memory[STEP / 4 - 1] == 0x87654321); + return memsize; +} + +#endif diff --git a/lib/ultralib/src/os/initialize.c b/lib/ultralib/src/os/initialize.c index 3edfe45..89f4b02 100644 --- a/lib/ultralib/src/os/initialize.c +++ b/lib/ultralib/src/os/initialize.c @@ -1,5 +1,7 @@ #include "PR/os_internal.h" #include "PR/rcp.h" +#include "PR/os_version.h" +#include "../io/piint.h" typedef struct { /* 0x0 */ unsigned int inst1; @@ -20,10 +22,29 @@ u32 __OSGlobalIntMask = OS_IM_ALL; u32 __osFinalrom; #else u32 __kmc_pt_mode; +#if BUILD_VERSION >= VERSION_K void* __printfunc = NULL; #endif +#endif + +#if BUILD_VERSION >= VERSION_K + +#define INITIALIZE_FUNC __osInitialize_common +#define SPEED_PARAM_FUNC __createSpeedParam +#else + +#define INITIALIZE_FUNC osInitialize +#define SPEED_PARAM_FUNC createSpeedParam +#if BUILD_VERSION >= VERSION_J +static void ptstart(void); +static void SPEED_PARAM_FUNC(void); +#endif +extern __osExceptionVector __ptExceptionPreamble[]; -void __createSpeedParam(void) { +#endif + +#if BUILD_VERSION >= VERSION_K +void SPEED_PARAM_FUNC(void) { __Dom1SpeedParam.type = DEVICE_TYPE_INIT; __Dom1SpeedParam.latency = IO_READ(PI_BSD_DOM1_LAT_REG); __Dom1SpeedParam.pulse = IO_READ(PI_BSD_DOM1_PWD_REG); @@ -36,9 +57,13 @@ void __createSpeedParam(void) { __Dom2SpeedParam.pageSize = IO_READ(PI_BSD_DOM2_PGS_REG); __Dom2SpeedParam.relDuration = IO_READ(PI_BSD_DOM2_RLS_REG); } +#endif -void __osInitialize_common() { +void INITIALIZE_FUNC() { u32 pifdata; +#if BUILD_VERSION < VERSION_K + u32 clock = 0; +#endif #ifdef _FINALROM __osFinalrom = TRUE; @@ -46,7 +71,9 @@ void __osInitialize_common() { __osSetSR(__osGetSR() | SR_CU1); // enable fpu __osSetFpcCsr(FPCSR_FS | FPCSR_EV); // flush denorm to zero, enable invalid operation +#if BUILD_VERSION >= VERSION_K __osSetWatchLo(0x4900000); +#endif while (__osSiRawReadIo(PIF_RAM_END - 3, &pifdata)) { // last byte of joychannel ram ; @@ -60,9 +87,19 @@ void __osInitialize_common() { *(__osExceptionVector*)E_VEC = *__osExceptionPreamble; osWritebackDCache((void*)UT_VEC, E_VEC - UT_VEC + sizeof(__osExceptionVector)); osInvalICache((void*)UT_VEC, E_VEC - UT_VEC + sizeof(__osExceptionVector)); - __createSpeedParam(); +#if BUILD_VERSION >= VERSION_J + SPEED_PARAM_FUNC(); osUnmapTLBAll(); osMapTLBRdb(); +#else + osMapTLBRdb(); + osPiRawReadIo(4, &clock); // Read clock rate from the ROM header + clock &= ~0xf; + if (clock != 0) + { + osClockRate = clock; + } +#endif osClockRate = osClockRate * 3 / 4; if (osResetType == 0) { // cold reset @@ -77,6 +114,7 @@ void __osInitialize_common() { osViClock = VI_NTSC_CLOCK; } +#if BUILD_VERSION >= VERSION_J // Wait until there are no RCP interrupts if (__osGetCause() & CAUSE_IP5) { while (TRUE) { @@ -87,8 +125,75 @@ void __osInitialize_common() { IO_WRITE(AI_CONTROL_REG, AI_CONTROL_DMA_ON); IO_WRITE(AI_DACRATE_REG, AI_MAX_DAC_RATE - 1); IO_WRITE(AI_BITRATE_REG, AI_MAX_BIT_RATE - 1); +#endif + +#if BUILD_VERSION < VERSION_K && !defined(_FINALROM) + if (!__kmc_pt_mode) { + int (*fnc)(); +#if BUILD_VERSION < VERSION_J + unsigned int c; + unsigned int c1; +#endif + unsigned int* src; + unsigned int* dst; + unsigned int monadr; + volatile unsigned int* mon; + volatile unsigned int* stat; + + stat = (unsigned*)0xbff08004; + mon = (unsigned*)0xBFF00000; + if (*mon != 0x4B4D4300) { + return; + } + + src = (unsigned*)__ptExceptionPreamble; + dst = (unsigned*)E_VEC; + *dst++ = *src++; + *dst++ = *src++; + *dst++ = *src++; + src += 2; + dst += 2; + *dst++ = *src++; + *dst++ = *src++; + *dst++ = *src++; + + osWritebackDCache(E_VEC, 0x24); + osInvalICache(E_VEC, 0x24); + + __kmc_pt_mode = TRUE; + + if ((*stat & 0x10) == 0) { + monadr = *(mon + 1); + if (monadr != 0xBFF00000) { + unsigned int* src; + unsigned int* dst = monadr | 0x20000000; + unsigned int ct = 0x2000 / 4; + + src = 0xBFF00000; + + while (ct != 0) { + *dst++ = *src++; + ct--; + } + } + fnc = monadr + 8; + fnc(0x4B4D4300, 0); + } + } +#endif +} + +#if !defined(_FINALROM) && BUILD_VERSION < VERSION_J +void ptstart() { + +} +#elif !defined(_FINALROM) && BUILD_VERSION < VERSION_K +static void ptstart() { + } +#endif +#if BUILD_VERSION >= VERSION_K void __osInitialize_autodetect() { #ifndef _FINALROM if (__checkHardware_msp()) { @@ -102,3 +207,18 @@ void __osInitialize_autodetect() { } #endif } +#elif BUILD_VERSION == VERSION_J +static void SPEED_PARAM_FUNC(void) { + __Dom1SpeedParam.type = DEVICE_TYPE_INIT; + __Dom1SpeedParam.latency = IO_READ(PI_BSD_DOM1_LAT_REG); + __Dom1SpeedParam.pulse = IO_READ(PI_BSD_DOM1_PWD_REG); + __Dom1SpeedParam.pageSize = IO_READ(PI_BSD_DOM1_PGS_REG); + __Dom1SpeedParam.relDuration = IO_READ(PI_BSD_DOM1_RLS_REG); + + __Dom2SpeedParam.type = DEVICE_TYPE_INIT; + __Dom2SpeedParam.latency = IO_READ(PI_BSD_DOM2_LAT_REG); + __Dom2SpeedParam.pulse = IO_READ(PI_BSD_DOM2_PWD_REG); + __Dom2SpeedParam.pageSize = IO_READ(PI_BSD_DOM2_PGS_REG); + __Dom2SpeedParam.relDuration = IO_READ(PI_BSD_DOM2_RLS_REG); +} +#endif diff --git a/lib/ultralib/src/os/initialize_isv.c b/lib/ultralib/src/os/initialize_isv.c index 60c1385..50f6379 100644 --- a/lib/ultralib/src/os/initialize_isv.c +++ b/lib/ultralib/src/os/initialize_isv.c @@ -17,21 +17,20 @@ extern __osExceptionVector __isExpJP; void MonitorInitBreak(void); -typedef struct { - /* 0x00 */ u32 magic; // IS64 - /* 0x04 */ u32 get; - /* 0x08 */ u8 unk_08[0x14 - 0x08]; - /* 0x14 */ u32 put; - /* 0x18 */ u8 unk_18[0x20 - 0x18]; - /* 0x20 */ u8 data[0x10000 - 0x20]; -} ISVDbg; +#define ISV_BASE gISVDbgPrnAdrs +#define ISV_MAGIC_ADDR (ISV_BASE + 0x00) +#define ISV_GET_ADDR (ISV_BASE + 0x04) +#define ISV_PUT_ADDR (ISV_BASE + 0x14) +#define ISV_BUFFER (ISV_BASE + 0x20) + +#define ISV_BUFFER_LEN (0x10000 - 0x20) #define IS64_MAGIC 'IS64' __osExceptionVector ramOldVector ALIGNED(8); u32 gISVFlag; u16 gISVChk; -ISVDbg* gISVDbgPrnAdrs; +u32 gISVDbgPrnAdrs; u32 leoComuBuffAdd; static OSPiHandle* is_Handle; @@ -39,9 +38,9 @@ static OSPiHandle* is_Handle; void isPrintfInit(void) { is_Handle = osCartRomInit(); - osEPiWriteIo(is_Handle, &gISVDbgPrnAdrs->put, 0); - osEPiWriteIo(is_Handle, &gISVDbgPrnAdrs->get, 0); - osEPiWriteIo(is_Handle, &gISVDbgPrnAdrs->magic, IS64_MAGIC); + osEPiWriteIo(is_Handle, ISV_PUT_ADDR, 0); + osEPiWriteIo(is_Handle, ISV_GET_ADDR, 0); + osEPiWriteIo(is_Handle, ISV_MAGIC_ADDR, IS64_MAGIC); } static void* is_proutSyncPrintf(void* arg, const u8* str, u32 count) { @@ -49,25 +48,24 @@ static void* is_proutSyncPrintf(void* arg, const u8* str, u32 count) { s32 p; s32 start; s32 end; - u32* magic = &gISVDbgPrnAdrs->magic; - if (gISVDbgPrnAdrs == NULL) { + if (gISVDbgPrnAdrs == 0) { return 0; } - osEPiReadIo(is_Handle, (u32)magic, &data); + osEPiReadIo(is_Handle, ISV_MAGIC_ADDR, &data); if (data != IS64_MAGIC) { return 1; } - osEPiReadIo(is_Handle, (u32)&gISVDbgPrnAdrs->get, &data); + osEPiReadIo(is_Handle, ISV_GET_ADDR, &data); p = data; - osEPiReadIo(is_Handle, (u32)&gISVDbgPrnAdrs->put, &data); + osEPiReadIo(is_Handle, ISV_PUT_ADDR, &data); start = data; end = start + count; - if (end >= 0xffe0) { - end -= 0xffe0; + if (end >= ISV_BUFFER_LEN) { + end -= ISV_BUFFER_LEN; if (p < end || start < p) { return 1; } @@ -79,7 +77,7 @@ static void* is_proutSyncPrintf(void* arg, const u8* str, u32 count) { while (count) { if (*str != '\0') { s32 shift = start & 3; - u32 addr = (u32)&gISVDbgPrnAdrs->data[start & 0xFFFFFFC]; + u32 addr = ISV_BUFFER + (start & 0xFFFFFFC); shift = (3 - shift) * 8; @@ -87,14 +85,14 @@ static void* is_proutSyncPrintf(void* arg, const u8* str, u32 count) { osEPiWriteIo(is_Handle, addr, (data & ~(0xff << shift)) | (*str << shift)); start++; - if (start >= 0xffe0) { - start -= 0xffe0; + if (start >= ISV_BUFFER_LEN) { + start -= ISV_BUFFER_LEN; } } count--; str++; } - osEPiWriteIo(is_Handle, (u32)&gISVDbgPrnAdrs->put, start); + osEPiWriteIo(is_Handle, ISV_PUT_ADDR, start); return 1; } @@ -105,7 +103,7 @@ int __checkHardware_isv(void) { u32 save[4]; OSPiHandle* hnd = osCartRomInit(); - gISVDbgPrnAdrs = NULL; + gISVDbgPrnAdrs = 0; leoComuBuffAdd = 0; gISVFlag = IS64_MAGIC; gISVChk = 0; @@ -127,7 +125,7 @@ int __checkHardware_isv(void) { data = 0; osEPiWriteIo(hnd, 0xB0000100, data); gISVChk |= 1; - osEPiReadIo(hnd, 0xB0000104, (void*)&gISVDbgPrnAdrs); + osEPiReadIo(hnd, 0xB0000104, &gISVDbgPrnAdrs); osEPiReadIo(hnd, 0xB0000108, &leoComuBuffAdd); break; } @@ -151,7 +149,7 @@ void __osInitialize_isv(void) { s32 pad2; if (gISVFlag == IS64_MAGIC || __checkHardware_isv()) { - if (gISVDbgPrnAdrs != NULL) { + if (gISVDbgPrnAdrs != 0) { __printfunc = is_proutSyncPrintf; isPrintfInit(); } diff --git a/lib/ultralib/src/os/interrupt.s b/lib/ultralib/src/os/interrupt.s index e8f02d0..01efe1a 100644 --- a/lib/ultralib/src/os/interrupt.s +++ b/lib/ultralib/src/os/interrupt.s @@ -1,10 +1,12 @@ #include "PR/R4300.h" #include "sys/asm.h" #include "sys/regdef.h" +#include "PR/os_version.h" .text .set noreorder LEAF(__osDisableInt) +#if BUILD_VERSION >= VERSION_J la t2, __OSGlobalIntMask lw t3, (t2) andi t3, 0xFF00 @@ -28,6 +30,15 @@ LEAF(__osDisableInt) No_Change_Global_Int: jr ra nop +#else + mfc0 t0, C0_SR + and t1, t0, ~SR_IE + mtc0 t1, C0_SR + andi v0, t0, SR_IE + nop + jr ra + nop +#endif END(__osDisableInt) LEAF(__osRestoreInt) diff --git a/lib/ultralib/src/os/osint.h b/lib/ultralib/src/os/osint.h index 75b94ea..b73b609 100644 --- a/lib/ultralib/src/os/osint.h +++ b/lib/ultralib/src/os/osint.h @@ -44,7 +44,7 @@ extern OSProf *__osProfileList; extern OSProf *__osProfileListEnd; extern u32 __osProfileOverflowBin; -extern __OSEventState __osEventStateTab[OS_NUM_EVENTS]; +extern __OSEventState __osEventStateTab[]; extern void __osTimerServicesInit(void); diff --git a/lib/ultralib/src/os/seteventmesg.c b/lib/ultralib/src/os/seteventmesg.c index 5a00bc9..f59308c 100644 --- a/lib/ultralib/src/os/seteventmesg.c +++ b/lib/ultralib/src/os/seteventmesg.c @@ -4,7 +4,9 @@ #include "osint.h" __OSEventState __osEventStateTab[OS_NUM_EVENTS] ALIGNED(8); +#if BUILD_VERSION >= VERSION_J u32 __osPreNMI = FALSE; +#endif void osSetEventMesg(OSEvent event, OSMesgQueue* mq, OSMesg msg) { register u32 saveMask; @@ -24,12 +26,14 @@ void osSetEventMesg(OSEvent event, OSMesgQueue* mq, OSMesg msg) { es->messageQueue = mq; es->message = msg; +#if BUILD_VERSION >= VERSION_J if (event == OS_EVENT_PRENMI) { if (__osShutdown && !__osPreNMI) { osSendMesg(mq, msg, OS_MESG_NOBLOCK); } __osPreNMI = TRUE; } +#endif __osRestoreInt(saveMask); } diff --git a/lib/ultralib/src/os/setfpccsr.s b/lib/ultralib/src/os/setfpccsr.s index f288437..caeccaf 100644 --- a/lib/ultralib/src/os/setfpccsr.s +++ b/lib/ultralib/src/os/setfpccsr.s @@ -7,4 +7,4 @@ LEAF(__osSetFpcCsr) STAY2(cfc1 v0, fcr31) STAY2(ctc1 a0, fcr31) jr ra -END(__osSetSR) # @bug: Should be __osGetFpcCsr +END(__osSetSR) # @bug: Should be __osSetFpcCsr diff --git a/lib/ultralib/src/os/sethwinterrupt.c b/lib/ultralib/src/os/sethwinterrupt.c index bb0ddba..9aafe1b 100644 --- a/lib/ultralib/src/os/sethwinterrupt.c +++ b/lib/ultralib/src/os/sethwinterrupt.c @@ -1,5 +1,8 @@ #include "PR/os_internal.h" +// A stack frame was added to hardware interrupt handlers in 2.0J +#if BUILD_VERSION >= VERSION_J + struct __osHwInt { s32 (*handler)(void); void* stackEnd; @@ -14,3 +17,16 @@ void __osSetHWIntrRoutine(OSHWIntr interrupt, s32 (*handler)(void), void* stackE __osHwIntTable[interrupt].stackEnd = stackEnd; __osRestoreInt(saveMask); } + +#else + +extern struct s32 (*__osHwIntTable[])(void); + +void __osSetHWIntrRoutine(OSHWIntr interrupt, s32 (*handler)(void)) { + register u32 saveMask = __osDisableInt(); + + __osHwIntTable[interrupt] = handler; + __osRestoreInt(saveMask); +} + +#endif diff --git a/lib/ultralib/src/os/settimer.c b/lib/ultralib/src/os/settimer.c index 1eb7fbe..252f63c 100644 --- a/lib/ultralib/src/os/settimer.c +++ b/lib/ultralib/src/os/settimer.c @@ -5,10 +5,12 @@ int osSetTimer(OSTimer* t, OSTime countdown, OSTime interval, OSMesgQueue* mq, OSMesg msg) { OSTime time; +#if BUILD_VERSION >= VERSION_K OSTimer* next; u32 count; u32 value; u32 saveMask; +#endif #ifdef _DEBUG if (!__osViDevMgr.active) { @@ -24,6 +26,7 @@ int osSetTimer(OSTimer* t, OSTime countdown, OSTime interval, OSMesgQueue* mq, O t->mq = mq; t->msg = msg; +#if BUILD_VERSION >= VERSION_K saveMask = __osDisableInt(); if (__osTimerList->next == __osTimerList) { @@ -42,6 +45,12 @@ int osSetTimer(OSTimer* t, OSTime countdown, OSTime interval, OSMesgQueue* mq, O time = __osInsertTimer(t); __osSetTimerIntr(__osTimerList->next->value); __osRestoreInt(saveMask); +#else + time = __osInsertTimer(t); + if (__osTimerList->next == t) { + __osSetTimerIntr(time); + } +#endif return 0; } diff --git a/lib/ultralib/src/os/testhost.c b/lib/ultralib/src/os/testhost.c index 70514eb..c134317 100644 --- a/lib/ultralib/src/os/testhost.c +++ b/lib/ultralib/src/os/testhost.c @@ -1,4 +1,12 @@ #include "PR/os_internal.h" // TODO: this comes from a header +#if BUILD_VERSION >= VERSION_J #ident "$Revision: 1.4 $" +#else +#ident "$Revision: 3.70 $" +#ident "$Revision: 1.5 $" +#ident "$Revision: 1.2 $" +#ident "$Revision: 1.4 $" +#ident "$Revision: 1.3 $" +#endif diff --git a/lib/ultralib/src/os/timerintr.c b/lib/ultralib/src/os/timerintr.c index 46beadf..10dae50 100644 --- a/lib/ultralib/src/os/timerintr.c +++ b/lib/ultralib/src/os/timerintr.c @@ -102,9 +102,11 @@ void __osSetTimerIntr(OSTime tim) { OSTime NewTime; u32 savedMask; +#if BUILD_VERSION >= VERSION_K if (tim < 468) { tim = 468; } +#endif savedMask = __osDisableInt(); __osTimerCounter = osGetCount(); diff --git a/lib/ultralib/src/rg/printregion.c b/lib/ultralib/src/rg/printregion.c index 2f84319..6db8f18 100644 --- a/lib/ultralib/src/rg/printregion.c +++ b/lib/ultralib/src/rg/printregion.c @@ -1,4 +1,5 @@ -#ifndef _FINALROM +#include "os_version.h" +#if !defined(_FINALROM) || BUILD_VERSION < VERSION_J #include "../os/osint.h" #include "PR/rmon.h" diff --git a/lib/ultralib/src/rmon/rmonbrk.c b/lib/ultralib/src/rmon/rmonbrk.c index b3cf239..0eb3242 100644 --- a/lib/ultralib/src/rmon/rmonbrk.c +++ b/lib/ultralib/src/rmon/rmonbrk.c @@ -9,7 +9,15 @@ #include "macros.h" // TODO: this comes from a header +#if BUILD_VERSION >= VERSION_J #ident "$Revision: 1.4 $" +#else +#ident "$Revision: 3.70 $" +#ident "$Revision: 1.5 $" +#ident "$Revision: 1.2 $" +#ident "$Revision: 1.4 $" +#ident "$Revision: 1.3 $" +#endif #define TMP_BP 0 #define NUM_BREAKPOINTS 16 diff --git a/lib/ultralib/src/rmon/rmoncmds.c b/lib/ultralib/src/rmon/rmoncmds.c index 5dd34d1..88600a6 100644 --- a/lib/ultralib/src/rmon/rmoncmds.c +++ b/lib/ultralib/src/rmon/rmoncmds.c @@ -6,7 +6,15 @@ #include "macros.h" // TODO: this comes from a header +#if BUILD_VERSION >= VERSION_J #ident "$Revision: 1.4 $" +#else +#ident "$Revision: 3.70 $" +#ident "$Revision: 1.5 $" +#ident "$Revision: 1.2 $" +#ident "$Revision: 1.4 $" +#ident "$Revision: 1.3 $" +#endif static int NotImplemented(KKHeader* dummy UNUSED) { return TV_ERROR_ILLEGAL_CALL; diff --git a/lib/ultralib/src/rmon/rmonmain.c b/lib/ultralib/src/rmon/rmonmain.c index 8cb0c1b..564ac44 100644 --- a/lib/ultralib/src/rmon/rmonmain.c +++ b/lib/ultralib/src/rmon/rmonmain.c @@ -1,3 +1,13 @@ +#include "PR/os_version.h" + +#if BUILD_VERSION < VERSION_J +#ident "$Revision: 3.70 $" +#ident "$Revision: 1.5 $" +#ident "$Revision: 1.2 $" +#ident "$Revision: 1.4 $" +#ident "$Revision: 1.3 $" +#endif + #ifndef _FINALROM #include "dbgproto.h" @@ -10,7 +20,9 @@ #include "macros.h" // TODO: this comes from a header +#if BUILD_VERSION >= VERSION_J #ident "$Revision: 1.4 $" +#endif int __rmonActive = FALSE; diff --git a/lib/ultralib/src/rmon/rmonmem.c b/lib/ultralib/src/rmon/rmonmem.c index 0880fe9..a11051b 100644 --- a/lib/ultralib/src/rmon/rmonmem.c +++ b/lib/ultralib/src/rmon/rmonmem.c @@ -1,3 +1,13 @@ +#include "PR/os_version.h" + +#if BUILD_VERSION < VERSION_J +#ident "$Revision: 3.70 $" +#ident "$Revision: 1.5 $" +#ident "$Revision: 1.2 $" +#ident "$Revision: 1.4 $" +#ident "$Revision: 1.3 $" +#endif + #ifndef _FINALROM #include "dbgproto.h" @@ -10,7 +20,9 @@ #include "macros.h" // TODO: this comes from a header +#if BUILD_VERSION >= VERSION_J #ident "$Revision: 1.4 $" +#endif u8 __rmonUtilityBuffer[256] ALIGNED(8); diff --git a/lib/ultralib/src/rmon/rmonmisc.c b/lib/ultralib/src/rmon/rmonmisc.c index aec32d6..a1aa96c 100644 --- a/lib/ultralib/src/rmon/rmonmisc.c +++ b/lib/ultralib/src/rmon/rmonmisc.c @@ -8,7 +8,15 @@ #include "macros.h" // TODO: this comes from a header +#if BUILD_VERSION >= VERSION_J #ident "$Revision: 1.4 $" +#else +#ident "$Revision: 3.70 $" +#ident "$Revision: 1.5 $" +#ident "$Revision: 1.2 $" +#ident "$Revision: 1.4 $" +#ident "$Revision: 1.3 $" +#endif int __rmonSetFault(KKHeader* req) { KKFaultRequest* request = (KKFaultRequest*)req; diff --git a/lib/ultralib/src/rmon/rmonrcp.s b/lib/ultralib/src/rmon/rmonrcp.s index 2128c9a..539f41d 100644 --- a/lib/ultralib/src/rmon/rmonrcp.s +++ b/lib/ultralib/src/rmon/rmonrcp.s @@ -1,4 +1,5 @@ -#ifndef _FINALROM +#include "PR/os_version.h" +#if !defined(_FINALROM) || BUILD_VERSION < VERSION_J #include "sys/asm.h" #include "sys/regdef.h" diff --git a/lib/ultralib/src/rmon/rmonregs.c b/lib/ultralib/src/rmon/rmonregs.c index 06b3e2c..39cf5b2 100644 --- a/lib/ultralib/src/rmon/rmonregs.c +++ b/lib/ultralib/src/rmon/rmonregs.c @@ -6,15 +6,31 @@ #include "PR/sptask.h" #include "rmonint.h" #include "PR/rdb.h" +#include "PR/os_version.h" #include "macros.h" // TODO: these come from headers +#if BUILD_VERSION >= VERSION_K #ident "$Revision: 1.4 $" +// This revision was bumped down at K for some reason #ident "$Revision: 3.70 $" #ident "$Revision: 1.5 $" #ident "$Revision: 1.2 $" #ident "$Revision: 1.4 $" +#elif BUILD_VERSION >= VERSION_J +#ident "$Revision: 1.4 $" +#ident "$Revision: 3.71 $" +#ident "$Revision: 1.5 $" +#ident "$Revision: 1.2 $" +#ident "$Revision: 1.4 $" +#else +#ident "$Revision: 3.70 $" +#ident "$Revision: 1.5 $" +#ident "$Revision: 1.2 $" +#ident "$Revision: 1.4 $" +#ident "$Revision: 1.3 $" +#endif static u32 RCPpc; static u32 oldIMEMvalue; diff --git a/lib/ultralib/src/rmon/rmonsio.c b/lib/ultralib/src/rmon/rmonsio.c index c239376..3e45995 100644 --- a/lib/ultralib/src/rmon/rmonsio.c +++ b/lib/ultralib/src/rmon/rmonsio.c @@ -1,3 +1,13 @@ +#include "PR/os_version.h" + +#if BUILD_VERSION < VERSION_J +#ident "$Revision: 3.70 $" +#ident "$Revision: 1.5 $" +#ident "$Revision: 1.2 $" +#ident "$Revision: 1.4 $" +#ident "$Revision: 1.3 $" +#endif + #ifndef _FINALROM #include "PR/os_internal.h" @@ -13,7 +23,9 @@ #include "macros.h" // TODO: this comes from a header +#if BUILD_VERSION >= VERSION_J #ident "$Revision: 1.4 $" +#endif static OSMesgQueue IOmq ALIGNED(8); static OSMesg IOmsgs; diff --git a/lib/ultralib/src/rmon/rmontask.c b/lib/ultralib/src/rmon/rmontask.c index f1c73f0..25757a7 100644 --- a/lib/ultralib/src/rmon/rmontask.c +++ b/lib/ultralib/src/rmon/rmontask.c @@ -9,7 +9,15 @@ #include "macros.h" // TODO: this comes from a header +#if BUILD_VERSION >= VERSION_J #ident "$Revision: 1.4 $" +#else +#ident "$Revision: 3.70 $" +#ident "$Revision: 1.5 $" +#ident "$Revision: 1.2 $" +#ident "$Revision: 1.4 $" +#ident "$Revision: 1.3 $" +#endif void __rmonMaskIdleThreadInts(void) { register OSThread* tptr = __osGetActiveQueue(); diff --git a/lib/ultralib/src/sp/sprite.c b/lib/ultralib/src/sp/sprite.c index f0732b4..719a662 100644 --- a/lib/ultralib/src/sp/sprite.c +++ b/lib/ultralib/src/sp/sprite.c @@ -20,7 +20,7 @@ */ #include <assert.h> #include <sp.h> - +#include <PR/os_version.h> // TODO: this comes from a header #ident "$Revision: 1.17 $" @@ -185,6 +185,7 @@ drawbitmap (Gfx **glp, Sprite *s, Bitmap *b, if( b->buf != prev_bmbuf ) { switch(s->bmsiz) { +#if BUILD_VERSION >= VERSION_J case G_IM_SIZ_DD: gDPLoadTextureTile_4b(gl++, b->buf, s->bmfmt, tex_width, tex_height, b->s, b->t, @@ -194,6 +195,7 @@ drawbitmap (Gfx **glp, Sprite *s, Bitmap *b, s_mask, t_mask, s_lod, t_lod); break; +#endif case G_IM_SIZ_4b: if (s->attr & SP_TEXSHUF) { gDPLoadTextureBlock_4bS(gl++, b->buf, s->bmfmt, @@ -722,6 +724,11 @@ spDraw ( Sprite *s ) gSPEndDisplayList ( gl++ ); +#if BUILD_VERSION >= VERSION_J +#line 722 +#else +#line 714 +#endif assert((gl - ogl) < s->ndisplist); s->rsp_dl_next = gl; return( dl_start ); diff --git a/lib/ultralib/src/voice/voicecontread2.c b/lib/ultralib/src/voice/voicecontread2.c index 3808c7b..a204ffc 100644 --- a/lib/ultralib/src/voice/voicecontread2.c +++ b/lib/ultralib/src/voice/voicecontread2.c @@ -5,16 +5,14 @@ #include "io/controller_voice.h" #include "io/siint.h" -#define READ2FORMAT(p) ((__OSVoiceRead2Format*)(ptr)) +#define READ2FORMAT(ptr) ((__OSVoiceRead2Format*)(ptr)) s32 __osVoiceContRead2(OSMesgQueue* mq, int channel, u16 address, u8* buffer) { s32 ret = 0; u8 status; int i; u8* ptr; - int retry; - - retry = 2; + int retry = 2; __osSiGetAccess(); @@ -26,7 +24,7 @@ s32 __osVoiceContRead2(OSMesgQueue* mq, int channel, u16 address, u8* buffer) { __osContLastCmd = CONT_CMD_READ2_VOICE; __osPfsLastChannel = channel; - for (i = 0; i < channel; i++) { *ptr++ = 0; } + for (i = 0; i < channel; i++) { *ptr++ = CONT_CMD_REQUEST_STATUS; } __osPfsPifRam.pifstatus = CONT_CMD_EXE; @@ -61,7 +59,7 @@ s32 __osVoiceContRead2(OSMesgQueue* mq, int channel, u16 address, u8* buffer) { ret = CONT_ERR_CONTRFAIL; } } else { - bcopy(&READ2FORMAT(ptr)->data, buffer, ARRLEN(READ2FORMAT(ptr)->data)); + bcopy(READ2FORMAT(ptr)->data, buffer, ARRLEN(READ2FORMAT(ptr)->data)); } } else { ret = CONT_ERR_NO_CONTROLLER; diff --git a/lib/ultralib/src/voice/voicecontread36.c b/lib/ultralib/src/voice/voicecontread36.c index 6c1677e..c537aff 100644 --- a/lib/ultralib/src/voice/voicecontread36.c +++ b/lib/ultralib/src/voice/voicecontread36.c @@ -5,7 +5,7 @@ #include "io/controller_voice.h" #include "io/siint.h" -#define READ36FORMAT(p) ((__OSVoiceRead36Format*)(ptr)) +#define READ36FORMAT(ptr) ((__OSVoiceRead36Format*)(ptr)) s32 __osVoiceContRead36(OSMesgQueue* mq, int channel, u16 address, u8* buffer) { s32 ret = 0; @@ -24,7 +24,7 @@ s32 __osVoiceContRead36(OSMesgQueue* mq, int channel, u16 address, u8* buffer) { __osContLastCmd = CONT_CMD_READ36_VOICE; __osPfsLastChannel = channel; - for (i = 0; i < channel; i++) { *ptr++ = 0; } + for (i = 0; i < channel; i++) { *ptr++ = CONT_CMD_REQUEST_STATUS; } __osPfsPifRam.pifstatus = CONT_CMD_EXE; diff --git a/lib/ultralib/src/voice/voicecontwrite20.c b/lib/ultralib/src/voice/voicecontwrite20.c index 53b78eb..d1a7446 100644 --- a/lib/ultralib/src/voice/voicecontwrite20.c +++ b/lib/ultralib/src/voice/voicecontwrite20.c @@ -5,18 +5,16 @@ #include "io/controller_voice.h" #include "io/siint.h" -#define WRITE20FORMAT(p) ((__OSVoiceWrite20Format*)(ptr)) +#define WRITE20FORMAT(ptr) ((__OSVoiceWrite20Format*)(ptr)) s32 __osVoiceContWrite20(OSMesgQueue* mq, int channel, u16 address, u8* buffer) { s32 ret = 0; u8 status; int i; u8* ptr; - int retry; + int retry = 2; u8 crc; - retry = 2; - __osSiGetAccess(); do { @@ -27,7 +25,7 @@ s32 __osVoiceContWrite20(OSMesgQueue* mq, int channel, u16 address, u8* buffer) __osContLastCmd = CONT_CMD_WRITE20_VOICE; __osPfsLastChannel = channel; - for (i = 0; i < channel; i++) { *ptr++ = 0; } + for (i = 0; i < channel; i++) { *ptr++ = CONT_CMD_REQUEST_STATUS; } __osPfsPifRam.pifstatus = CONT_CMD_EXE; @@ -45,15 +43,15 @@ s32 __osVoiceContWrite20(OSMesgQueue* mq, int channel, u16 address, u8* buffer) WRITE20FORMAT(ptr)->addrh = address >> 3; WRITE20FORMAT(ptr)->addrl = (address << 5) | __osContAddressCrc(address); - bcopy(buffer, &WRITE20FORMAT(ptr)->data, 20); + bcopy(buffer, WRITE20FORMAT(ptr)->data, ARRLEN(WRITE20FORMAT(ptr)->data)); ret = __osSiRawStartDma(OS_WRITE, &__osPfsPifRam); - crc = __osVoiceContDataCrc(buffer, 20); + crc = __osVoiceContDataCrc(buffer, ARRLEN(WRITE20FORMAT(ptr)->data)); osRecvMesg(mq, NULL, OS_MESG_BLOCK); ret = __osSiRawStartDma(OS_READ, &__osPfsPifRam); osRecvMesg(mq, NULL, OS_MESG_BLOCK); - ret = (WRITE20FORMAT(ptr)->rxsize & 0xC0) >> 4; + ret = CHNL_ERR(*WRITE20FORMAT(ptr)); if (ret == 0) { if (crc != WRITE20FORMAT(ptr)->datacrc) { diff --git a/lib/ultralib/src/voice/voicecontwrite4.c b/lib/ultralib/src/voice/voicecontwrite4.c index 949952c..6f00586 100644 --- a/lib/ultralib/src/voice/voicecontwrite4.c +++ b/lib/ultralib/src/voice/voicecontwrite4.c @@ -5,7 +5,7 @@ #include "io/controller_voice.h" #include "io/siint.h" -#define WRITE4FORMAT(p) ((__OSVoiceWrite4Format*)(ptr)) +#define WRITE4FORMAT(ptr) ((__OSVoiceWrite4Format*)(ptr)) s32 __osVoiceContWrite4(OSMesgQueue* mq, int channel, u16 address, u8* buffer) { s32 ret = 0; @@ -25,7 +25,7 @@ s32 __osVoiceContWrite4(OSMesgQueue* mq, int channel, u16 address, u8* buffer) { __osContLastCmd = CONT_CMD_WRITE4_VOICE; __osPfsLastChannel = channel; - for (i = 0; i < channel; i++) { *ptr++ = 0; } + for (i = 0; i < channel; i++) { *ptr++ = CONT_CMD_REQUEST_STATUS; } __osPfsPifRam.pifstatus = CONT_CMD_EXE; @@ -43,15 +43,15 @@ s32 __osVoiceContWrite4(OSMesgQueue* mq, int channel, u16 address, u8* buffer) { WRITE4FORMAT(ptr)->addrh = address >> 3; WRITE4FORMAT(ptr)->addrl = (address << 5) | __osContAddressCrc(address); - bcopy(buffer, &WRITE4FORMAT(ptr)->data, 4); + bcopy(buffer, WRITE4FORMAT(ptr)->data, ARRLEN(WRITE4FORMAT(ptr)->data)); ret = __osSiRawStartDma(OS_WRITE, &__osPfsPifRam); - crc = __osVoiceContDataCrc(buffer, 4); + crc = __osVoiceContDataCrc(buffer, ARRLEN(WRITE4FORMAT(ptr)->data)); osRecvMesg(mq, NULL, OS_MESG_BLOCK); ret = __osSiRawStartDma(OS_READ, &__osPfsPifRam); osRecvMesg(mq, NULL, OS_MESG_BLOCK); - ret = (WRITE4FORMAT(ptr)->rxsize & 0xC0) >> 4; + ret = CHNL_ERR(*WRITE4FORMAT(ptr)); if (ret == 0) { if (crc != WRITE4FORMAT(ptr)->datacrc) { diff --git a/lib/ultralib/src/voice/voicegetstatus.c b/lib/ultralib/src/voice/voicegetstatus.c index 966e539..e7328c1 100644 --- a/lib/ultralib/src/voice/voicegetstatus.c +++ b/lib/ultralib/src/voice/voicegetstatus.c @@ -17,7 +17,7 @@ s32 __osVoiceGetStatus(OSMesgQueue* mq, s32 port, u8* status) { if (ret != CONT_ERR_CONTRFAIL) { __osContPifRam.pifstatus = CONT_CMD_EXE; - for (i = 0; i < port; i++, *ptr++ = 0) { + for (i = 0; i < port; i++, *ptr++ = CONT_CMD_REQUEST_STATUS) { ; } diff --git a/lib/ultralib/src/voice/voicesetadconverter.c b/lib/ultralib/src/voice/voicesetadconverter.c index 7dcbaf0..d1c5eb2 100644 --- a/lib/ultralib/src/voice/voicesetadconverter.c +++ b/lib/ultralib/src/voice/voicesetadconverter.c @@ -5,7 +5,7 @@ #include "io/controller_voice.h" #include "io/siint.h" -#define SWRITEFORMAT(p) ((__OSVoiceSWriteFormat*)(p)) +#define SWRITEFORMAT(ptr) ((__OSVoiceSWriteFormat*)(ptr)) s32 __osVoiceSetADConverter(OSMesgQueue* mq, s32 channel, u8 data) { s32 ret = 0; @@ -24,7 +24,7 @@ s32 __osVoiceSetADConverter(OSMesgQueue* mq, s32 channel, u8 data) { __osContLastCmd = CONT_CMD_SWRITE_VOICE; __osPfsLastChannel = channel; - for (i = 0; i < channel; i++) { *ptr++ = 0; } + for (i = 0; i < channel; i++) { *ptr++ = CONT_CMD_REQUEST_STATUS; } __osPfsPifRam.pifstatus = CONT_CMD_EXE; diff --git a/lib/ultralib/src/voice/voicestopreaddata.c b/lib/ultralib/src/voice/voicestopreaddata.c index b0f9cba..b43eb81 100644 --- a/lib/ultralib/src/voice/voicestopreaddata.c +++ b/lib/ultralib/src/voice/voicestopreaddata.c @@ -2,10 +2,13 @@ #include "io/controller.h" #include "PR/os_voice.h" #include "voiceinternal.h" +#include "os_version.h" s32 osVoiceStopReadData(OSVoiceHandle* hd) { s32 ret; +#if BUILD_VERSION >= VERSION_K s32 i; +#endif u8 stat; u8 temp[4]; @@ -24,7 +27,9 @@ s32 osVoiceStopReadData(OSVoiceHandle* hd) { ret = __osVoiceContWrite4(hd->__mq, hd->__channel, 0, temp); if (ret == 0) { +#if BUILD_VERSION >= VERSION_K i = 0; +#endif do { ret = __osVoiceCheckResult(hd, &stat); if (ret & 0xFF00) { @@ -37,12 +42,18 @@ s32 osVoiceStopReadData(OSVoiceHandle* hd) { } else { hd->__mode = 0; } +#if BUILD_VERSION >= VERSION_K i++; } while ((ret == CONT_ERR_VOICE_NO_RESPONSE) && (i < 20)); +#else + } while ((ret == CONT_ERR_VOICE_NO_RESPONSE)); +#endif } +#if BUILD_VERSION >= VERSION_K if (i >= 20) { ret == CONT_ERR_VOICE_NO_RESPONSE; } +#endif return ret; } diff --git a/lib/ultralib/tools/Makefile b/lib/ultralib/tools/Makefile index 8b5487e..cf0d35e 100644 --- a/lib/ultralib/tools/Makefile +++ b/lib/ultralib/tools/Makefile @@ -32,9 +32,9 @@ $(GCC_DIR): mkdir -p $@ $(IDO-5.3): | $(IDO_DIR) - wget https://github.com/decompals/ido-static-recomp/releases/latest/download/ido-5.3-recomp-ubuntu-20.04.tar.gz - tar xf ido-5.3-recomp-ubuntu-20.04.tar.gz -C $(IDO_DIR) - $(RM) ido-5.3-recomp-ubuntu-20.04.tar.gz + wget https://github.com/decompals/ido-static-recomp/releases/latest/download/ido-5.3-recomp-linux.tar.gz + tar xf ido-5.3-recomp-linux.tar.gz -C $(IDO_DIR) + $(RM) ido-5.3-recomp-linux.tar.gz $(IDO_DIR): mkdir -p $@ diff --git a/lib/ultralib/tools/set_o32abi_bit.py b/lib/ultralib/tools/set_o32abi_bit.py new file mode 100755 index 0000000..fc22d2c --- /dev/null +++ b/lib/ultralib/tools/set_o32abi_bit.py @@ -0,0 +1,25 @@ +#!/usr/bin/env python3 +import argparse, struct, sys + +if __name__ == '__main__': + parser = argparse.ArgumentParser() + + parser.add_argument('file', help='input file') + args = parser.parse_args() + + with open(args.file, 'r+b') as f: + magic = struct.unpack('>I', f.read(4))[0] + if magic != 0x7F454C46: + print('Error: Not an ELF file') + sys.exit(1) + + f.seek(36) + flags = struct.unpack('>I', f.read(4))[0] + # if flags & 0xF0000000 != 0x20000000: # test for mips3 + # print('Error: Architecture not mips3') + # sys.exit(1) + + flags |= 0x00001000 # set EF_MIPS_ABI_O32 + f.seek(36) + f.write(struct.pack('>I', flags)) + |
