Figure its time to update this again

This commit is contained in:
KholdFuzion committed 2022-10-29 10:41:01 -04:00
1 parent 76f3582e08
commit 3c9651a097
181 files changed
+29557 -81351

No files matched your search

+1 -1
View File
@@ -54,7 +54,7 @@ jobs:
run: ./extract_diff.e.sh
- name: Make EU
run: make -j IDO_RECOMP=YES VERSION=EU
run: make -j IDO_RECOMP=YES VERSION=EU VERBOSE=1
- name: Make report
run: make -C tools/report
+3 -4
View File
@@ -54,7 +54,7 @@ jobs:
run: ./extract_diff.j.sh
- name: Make JP
run: make -j IDO_RECOMP=YES VERSION=JP
run: make -j IDO_RECOMP=YES VERSION=JP VERBOSE=1
- name: Make report
run: make -C tools/report
@@ -64,7 +64,7 @@ jobs:
- name: Upload output files
uses: dmnemec/copy_file_to_another_repo_action@v1.0.4
uses: dmnemec/copy_file_to_another_repo_action@main
env:
API_TOKEN_GITHUB: ${{ secrets.API_TOKEN_GITHUB }}
@@ -75,7 +75,6 @@ jobs:
destination_repo: 'kholdfuzion/goldeneyestatus'
user_email: $API_TOKEN_EMAIL
user_name: $API_TOKEN_USER
source_file: |
tools/report/JPN.htm
source_file: 'tools/report/JPN.htm'
#need way of telling report that JP passed/failed
+43 -6
View File
@@ -17,13 +17,29 @@ on:
workflow_dispatch:
jobs:
changedfiles:
runs-on: ubuntu-latest
# Map a step output to a job output
outputs:
all: ${{ steps.changes.outputs.all}}
steps:
# Make sure we have some code to diff.
- name: Checkout repository
uses: actions/checkout@v2
- name: Get changed files
id: changes
# Set outputs using the command.
run: |
echo "::set-output name=all::$(git diff --name-only --diff-filter=ACMRT ${{ github.event.pull_request.base.sha }} ${{ github.sha }} | xargs)"
buildus:
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@v2
# with:
# fetch-depth: 2
- name: Install Depedencies
run: |
sudo apt update
@@ -43,19 +59,40 @@ jobs:
FILE_US: ${{ secrets.SECRET_FILE_US }}
run: wget -O baserom.u.z64 $FILE_US
# cach is only usefull if downloading things takes longer than copying things - in this case, extraction is quicker
#- name: Cache Assets
# id: cache-assets
# uses: actions/cache@v3
# with:
# path: assets
# key: ${{ hashFiles('extract_baserom.u.sh') }}
- name: Extract US Assets
#if: steps.cache-assets.outputs.cache-hit != 'true'
run: ./extract_baserom.u.sh
- name: Make US
run: make -j IDO_RECOMP=YES VERSION=US
run: make -j IDO_RECOMP=YES VERSION=US VERBOSE=1
- name: Make report
run: make -C tools/report
# for refrence, these diff commands wont work in GHA, so, "Last modified file" will never work
# GHA makes new copies of all files (so modified date is all the same) and wont lok at logs (commands below)
#- name: difftest1
# run: git diff --name-only origin/master ${GITHUB_HEAD_REF}
#- name: difftest2
# run: git diff --name-only ${{ github.event.before }} ${{ github.sha }}
#- name: difftest3
# run: git diff --name-only -1
#- name: difftest4
# run: git diff --name-only @"{10 minutes ago}"
- name: Stats
run: python3 tools/ge-stats.py --version us --report
#git diff HEAD^ HEAD --name-only
run: python3 tools/ge-stats.py --version us --report
# expected args
# 1481 15854 12774 232276 564 1312 652 20330 15471 269772 49 336 tools/report/index.html "src/game/bondview.c"
+28 -88
View File
@@ -1,6 +1,9 @@
#Git and VS files
.*~
__pycache__/*
.vscode/
.[vV][sS]/
*.rz
*.tmp
*.o
@@ -8,10 +11,14 @@ branchdiff.sh
branchdiff_report.txt
*.dump
*.cdata*
/StructLayoutSettings.json
# rom files
*.[zZnN]64
.[vV][sS]/
021990.bin
0219D0.bin
# Assets
assets/animationtable_data.bin
assets/animationtable_entries.bin
assets/font/*.bin
@@ -27,7 +34,11 @@ assets/ge007.u.117880.jfont_dl.bin
assets/ge007.u.117940.jfont_chardata.bin
assets/ge007.u.123040.efont_chardata.bin
assets/ge007.u.29E560.Globalimagetable_commandblock.bin
#images
assets/images/split/*.bin*
assets/images/out/*
assets/images/split/png/*
#music
assets/music/*.bin
assets/music/*.ctl
assets/music/*.tbl
@@ -35,6 +46,7 @@ assets/music/*.sbk
assets/music/*.seq
assets/music/*.aifc
assets/music/*.aiff
#obseg
assets/obseg/bg/*.bin
assets/obseg/bg/e/*.bin
assets/obseg/chr/*.bin
@@ -46,13 +58,17 @@ assets/obseg/setup/[eju]/*.bin
assets/obseg/stan/*.bin
assets/obseg/text/*.bin
assets/obseg/text/[eju]/*.bin
assets/obseg/text/[eju]/*.c
assets/ramrom/*.bin
assets/ramrom/[eju]/*.bin
# bin is required, but lets prevent accidental deletion
bin/*
build/*
build-*/*
notes/*
!build/test.c
!notes/StyleGuide.md
#tools
tools/extractor/*.o
tools/extractor/extractor
tools/aaa_rip/main.o
@@ -62,94 +78,18 @@ tools/armips
tools/gzipsrc/gzip
tools/gzipsrc/*.o
tools/report/report
/StructLayoutSettings.json
assets/obseg/text/e/LameP.c
assets/obseg/text/e/LarchP.c
assets/obseg/text/e/LarecE.c
assets/obseg/text/e/LarecJ.c
assets/obseg/text/e/LarecP.c
assets/obseg/text/e/LarkE.c
assets/obseg/text/e/LarkJ.c
assets/obseg/text/e/LarkP.c
assets/obseg/text/e/LashP.c
assets/obseg/text/e/LaztP.c
assets/obseg/text/e/LcatP.c
assets/obseg/text/e/LcaveP.c
assets/obseg/text/e/LcradE.c
assets/obseg/text/e/LcradJ.c
assets/obseg/text/e/LcradP.c
assets/obseg/text/e/LcrypE.c
assets/obseg/text/e/LcrypJ.c
assets/obseg/text/e/LcrypP.c
assets/obseg/text/e/LdamE.c
assets/obseg/text/e/LdamJ.c
assets/obseg/text/e/LdamP.c
assets/obseg/text/e/LdepoE.c
assets/obseg/text/e/LdepoJ.c
assets/obseg/text/e/LdepoP.c
assets/obseg/text/e/LdestP.c
assets/obseg/text/e/LdishP.c
assets/obseg/text/e/LearP.c
assets/obseg/text/e/LeldP.c
assets/obseg/text/e/LgunE.c
assets/obseg/text/e/LgunJ.c
assets/obseg/text/e/LgunP.c
assets/obseg/text/e/LimpP.c
assets/obseg/text/e/LjunE.c
assets/obseg/text/e/LjunJ.c
assets/obseg/text/e/LjunP.c
assets/obseg/text/e/LleeP.c
assets/obseg/text/e/LlenE.c
assets/obseg/text/e/LlenJ.c
assets/obseg/text/e/LlenP.c
assets/obseg/text/e/LlipP.c
assets/obseg/text/e/LlueP.c
assets/obseg/text/e/LmiscP.c
assets/obseg/text/e/LmpmenuE.c
assets/obseg/text/e/LmpmenuJ.c
assets/obseg/text/e/LmpmenuP.c
assets/obseg/text/e/LmpweaponsE.c
assets/obseg/text/e/LmpweaponsJ.c
assets/obseg/text/e/LmpweaponsP.c
assets/obseg/text/e/LoatP.c
assets/obseg/text/e/LoptionsE.c
assets/obseg/text/e/LoptionsJ.c
assets/obseg/text/e/LoptionsP.c
assets/obseg/text/e/LpamP.c
assets/obseg/text/e/LpeteE.c
assets/obseg/text/e/LpeteJ.c
assets/obseg/text/e/LpeteP.c
assets/obseg/text/e/LpropobjE.c
assets/obseg/text/e/LpropobjJ.c
assets/obseg/text/e/LpropobjP.c
assets/obseg/text/e/LrefP.c
assets/obseg/text/e/LritP.c
assets/obseg/text/e/LrunP.c
assets/obseg/text/e/LsevbP.c
assets/obseg/text/e/LsevE.c
assets/obseg/text/e/LsevJ.c
assets/obseg/text/e/LsevP.c
assets/obseg/text/e/LsevxbP.c
assets/obseg/text/e/LsevxE.c
assets/obseg/text/e/LsevxJ.c
assets/obseg/text/e/LsevxP.c
assets/obseg/text/e/LshoP.c
assets/obseg/text/e/LsiloE.c
assets/obseg/text/e/LsiloJ.c
assets/obseg/text/e/LsiloP.c
assets/obseg/text/e/LstatP.c
assets/obseg/text/e/LtitleE.c
assets/obseg/text/e/LtitleJ.c
assets/obseg/text/e/LtitleP.c
assets/obseg/text/e/LtraE.c
assets/obseg/text/e/LtraJ.c
assets/obseg/text/e/LtraP.c
assets/obseg/text/e/LwaxP.c
tools/report/index.html
tools/report/JPN.htm
tools/gaudio/*
bondtypes_AI.h
baserom*
acpp_c.c
as1_c.c
cc_c.c
cfe_c.c
copt_c.c
ugen_c.c
ujoin_c.c
uld_c.c
umerge_c.c
uopt_c.c
usplit_c.c
+90 -32
View File
@@ -68,6 +68,15 @@ BG_VIOLET:= 105
BG_CYAN:= 106
BG_WHITE:= 107
# define a "newline" variable to be used in make scripts
# use with ${\n}
# https://stackoverflow.com/questions/12528637/how-do-i-execute-each-command-in-a-list
define \n
endef
#end newline.
### Build Functions ###
# Common build print status function
PRINT_STATUS = @echo "$(call SET_TEXTATTRIB,$(FG_GREEN))$(1) $(call SET_TEXTATTRIB,$(FG_OLIVE))$(2)$(call SET_TEXTATTRIB,$(FG_GRAY)) $(if $3, -> $(call SET_TEXTATTRIB,$(FG_NAVY))$(3))$(RESTORECOLOUR)"
@@ -201,33 +210,52 @@ endif
ifeq ($(VERSION), US)
COUNTRYCODE := u
OUTCODE := $(COUNTRYCODE)
LCDEFS := -DVERSION_US -DLANG_US -DREFRESH_NTSC -DLEFTOVERDEBUG -DLEFTOVERSPECTRUM -DBUGFIX_R0
ASMDEFS := --defsym VERSION_US=1 --defsym LANG_US=1 --defsym REFRESH_NTSC=1 --defsym LEFTOVERDEBUG=1 --defsym LEFTOVERSPECTRUM=1 --defsym BUGFIX_R0=1
LANG := US
LCDEFS := -DVERSION_US -DLANG_US -DREFRESH_NTSC -DLEFTOVERDEBUG -DLEFTOVERSPECTRUM -DBUGFIX_R0 -DBYTEMATCH
ASMDEFS := --defsym VERSION_US=1 --defsym LANG_US=1 --defsym REFRESH_NTSC=1 --defsym LEFTOVERDEBUG=1 --defsym LEFTOVERSPECTRUM=1 --defsym BUGFIX_R0=1 --defsym BYTEMATCH=1
LDFILEOPTS := -DVERSION_$(LANG) -DOUTCODE=$(OUTCODE)
endif
ifeq ($(VERSION), EU)
COUNTRYCODE := e
OUTCODE := $(COUNTRYCODE)
LCDEFS := -DVERSION_EU -DLANG_EU -DREFRESH_PAL -DBUGFIX_R1 -DBUGFIX_R2
ASMDEFS := --defsym VERSION_EU=1 --defsym LANG_EU=1 --defsym REFRESH_PAL=1 --defsym BUGFIX_R1=1 --defsym BUGFIX_R2=1
LANG := EU
LCDEFS := -DVERSION_EU -DLANG_EU -DREFRESH_PAL -DBUGFIX_R1 -DBUGFIX_R2 -DBYTEMATCH
ASMDEFS := --defsym VERSION_EU=1 --defsym LANG_EU=1 --defsym REFRESH_PAL=1 --defsym BUGFIX_R1=1 --defsym BUGFIX_R2=1 --defsym BYTEMATCH=1
LDFILEOPTS := -DVERSION_$(LANG) -DOUTCODE=$(OUTCODE)
endif
ifeq ($(VERSION), JP)
COUNTRYCODE := j
OUTCODE := $(COUNTRYCODE)
LCDEFS := -DVERSION_JP -DLANG_JP -DREFRESH_NTSC -DBUGFIX_R1 -DLEFTOVERDEBUG -DLEFTOVERSPECTRUM
ASMDEFS := --defsym VERSION_JP=1 --defsym LANG_JP=1 --defsym REFRESH_NTSC=1 --defsym BUGFIX_R1=1 --defsym LEFTOVERDEBUG=1 --defsym LEFTOVERSPECTRUM=1
LANG := JP
LCDEFS := -DVERSION_JP -DLANG_JP -DREFRESH_NTSC -DBUGFIX_R1 -DLEFTOVERDEBUG -DLEFTOVERSPECTRUM -DBYTEMATCH
ASMDEFS := --defsym VERSION_JP=1 --defsym LANG_JP=1 --defsym REFRESH_NTSC=1 --defsym BUGFIX_R1=1 --defsym LEFTOVERDEBUG=1 --defsym LEFTOVERSPECTRUM=1 --defsym BYTEMATCH=1
LDFILEOPTS := -DVERSION_$(LANG) -DOUTCODE=$(OUTCODE)
endif
ifeq ($(VERSION), DEBUG)
COUNTRYCODE := u
OUTCODE := d
LCDEFS := -DVERSION_US -DLANG_US -DREFRESH_NTSC -DLEFTOVERDEBUG -DLEFTOVERSPECTRUM -DBUGFIX_R0 -DDEBUGMENU
LANG := US
LCDEFS := -DVERSION_US -DLANG_US -DREFRESH_NTSC -DLEFTOVERDEBUG -DLEFTOVERSPECTRUM -DBUGFIX_R0 -DDEBUGMENU -DVERSION_DEBUG
ASMDEFS := --defsym VERSION_DEBUG=1 --defsym LANG_US=1 --defsym REFRESH_NTSC=1 --defsym LEFTOVERDEBUG=1 --defsym LEFTOVERSPECTRUM=1 --defsym BUGFIX_R0=1 --defsym DEBUGMENU=1
COMPARE := 0
LDFILEOPTS := -DVERSION_$(LANG) -DOUTCODE=$(OUTCODE)
endif
ALLOWED_VERSIONS := US EU JP DEBUG
ifeq ($(VERSION), USB)
COUNTRYCODE := u
OUTCODE := usb
LANG := US
LCDEFS := -DVERSION_US -DLANG_US -DREFRESH_NTSC -DLEFTOVERDEBUG -DLEFTOVERSPECTRUM -DBUGFIX_R0 -DDEBUGMENU -DENABLE_USB
ASMDEFS := --defsym VERSION_US=1 --defsym LANG_US=1 --defsym REFRESH_NTSC=1 --defsym LEFTOVERDEBUG=1 --defsym LEFTOVERSPECTRUM=1 --defsym BUGFIX_R0=1 --defsym DEBUGMENU=1 --defsym ENABLE_USB=1
COMPARE := 0
LDFILEOPTS := -DVERSION_$(LANG) -DOUTCODE=$(OUTCODE) -DENABLE_USB
endif
ALLOWED_VERSIONS := US EU JP DEBUG USB
ALLOWED_COUNTRYCODE := u e j
BUILD_DIR_BASE := build
# BUILD_DIR is the location where all build artifacts are placed
@@ -312,7 +340,8 @@ INCLUDE := -I . -I include -I include/ultra64 -I include/PR -I src -I src/game -
# 712 : illegal combination of pointer and integer - could be fixed by casting, but implicit is fine.
# 807 : member cannot be of function or incomplete type - Variable length structs
# 838 : Microsoft extension (unnamed structs) - used for "Inheritance" and member/array call swapping
WOFF := -woff 609,649,709,712,807,838
# 763 : Max Float
WOFF := -woff 609,649,709,712,807,838,763
ifeq ($(IDO_RECOMP), NO)
CC := $(QEMU_IRIX) -silent -L $(IRIX_ROOT) $(IRIX_ROOT)/usr/bin/cc
@@ -323,7 +352,7 @@ endif
CFLAGS := -Wab,-r4300_mul -non_shared -Olimit 2000 -G 0 -Xcpluscomm $(CFLAGWARNING) $(WOFF) -signed $(INCLUDE) $(MIPSISET) $(LCDEFS) -DTARGET_N64
LD := $(TOOLCHAIN)ld
LD_SCRIPT := ge007.$(OUTCODE).ld
LD_SCRIPT := build/ge007.$(OUTCODE).ld
# --no-warn-mismatch is needed to link -mips3 object files (some libultra math) with the regular files compiled with -mips2
LDFLAGS := -T $(LD_SCRIPT) -Map build/ge007.$(OUTCODE).map --no-warn-mismatch
@@ -374,7 +403,7 @@ endif
$(HEADEROBJECTS) $(BOOTOBJECTS) $(CODEOBJECTS) $(GAMEOBJECTS) $(RZOBJECTS) \
$(OBSEG_OBJECTS) $(OBSEG_RZ) $(ROMOBJECTS) $(RAMROM_OBJECTS) $(FONTOBJECTS) $(MUSIC_OBJECTS) $(IMAGE_OBJS) $(MUSIC_RZ_FILES)
ifeq ($(filter clean dataclean help codeclean context cmdbuilder test stanclean setupclean colour print-%,$(MAKECMDGOALS)),)
ifeq ($(filter clean nuke dataclean help codeclean context cmdbuilder test stanclean setupclean colour print-%,$(MAKECMDGOALS)),)
# Dont print version on "default" since it will be spat out twice
ifneq ($(filter $(VERSION),$(ALLOWED_VERSIONS)),)
#$(info VERSION=$(VERSION))
@@ -472,9 +501,10 @@ endif
# $(CC) -c -Wab,-r4300_mul -non_shared -G 0 -Xcpluscomm $(CFLAGWARNING) -woff 819,820,852,821,838,649 -signed $(INCLUDE) $(MIPSISET) $(LCDEFS) -DTARGET_N64 $(OPTIMIZATION) -o $@ $<
#Link Files
$(APPELF): $(RSPOBJECTS) $(ULTRAOBJECTS) $(HEADEROBJECTS) $(OBSEG_RZ) $(BUILD_DIR)/$(OBSEGMENT) $(MUSIC_RZ_FILES) $(BOOTOBJECTS) $(CODEOBJECTS) $(GAMEOBJECTS) $(RZOBJECTS) $(ROMOBJECTS) $(ASSET_DATAOBJECTS) $(ROMOBJECTS2) $(RAMROM_OBJECTS) $(FONTOBJECTS) $(MUSIC_OBJECTS) $(OBSEG_OBJECTS) pb14
$(APPELF): $(RSPOBJECTS) $(ULTRAOBJECTS) $(HEADEROBJECTS) $(OBSEG_RZ) $(BUILD_DIR)/$(OBSEGMENT) $(MUSIC_RZ_FILES) $(BOOTOBJECTS) $(CODEOBJECTS) $(GAMEOBJECTS) $(RZOBJECTS) $(ROMOBJECTS) $(ASSET_DATAOBJECTS) $(ROMOBJECTS2) $(RAMROM_OBJECTS) $(FONTOBJECTS) $(MUSIC_OBJECTS) $(OBSEG_OBJECTS) pb14 ge007.ld
cpp $(LDFILEOPTS) -P ge007.ld -o build/ge007.$(OUTCODE).ld
@echo "Linking Files into ELF"
$(LD) $(LDFLAGS) -o $@ & $(call IncrementProgressBarFromAtRate,87,1.5)
$(LD) $(LDFLAGS) -o $@
$(APPBIN): $(APPELF)
ifeq ($(VERBOSE),0)
@@ -523,8 +553,8 @@ ifeq ($(VERBOSE),1)
$(HEADEROBJECTS) $(BOOTOBJECTS) $(CODEOBJECTS) $(GAMEOBJECTS) $(RZOBJECTS) $(RSPOBJECTS)
else
@clear
$(call SetupProgressBar)
@echo "\n\nDeleting All Code Binaries Only [Assets will be left from previous compile]"
@$(call SetupProgressBar)
@echo "\n\n\nDeleting All Code Binaries Only [Assets will be left from previous compile]"
@rm -f $(APPELF) $(APPROM) $(APPBIN) $(ULTRAOBJECTS) $(BUILD_DIR)/ge007.$(OUTCODE).map
@$(call DrawProgressBar,50)
@rm -f $(HEADEROBJECTS) $(BOOTOBJECTS) $(CODEOBJECTS) $(GAMEOBJECTS) $(RZOBJECTS) $(RSPOBJECTS)
@@ -537,28 +567,46 @@ dataclean:
$(OBSEG_OBJECTS) $(OBSEG_RZ) $(ROMOBJECTS) $(RAMROM_OBJECTS) $(FONTOBJECTS) $(MUSIC_OBJECTS) $(IMAGE_OBJS) $(MUSIC_RZ_FILES) \
$(STAN_BUILD_FILES) $(SETUP_BUILD_FILES)
clean:
# "Conditionals control what 'make' actually "sees" in the makefile, so they cannot be used to control recipes at the time of execution."
# https://www.gnu.org/software/make/manual/html_node/Conditionals.html
ifeq ($(VERBOSE),1)
clean::
# if this command is modified, make sure to update this in the `nuke` recipe.
rm -f $(APPELF) $(APPROM) $(APPBIN) $(ULTRAOBJECTS) $(BUILD_DIR)/ge007.$(OUTCODE).map \
$(HEADEROBJECTS) $(BOOTOBJECTS) $(CODEOBJECTS) $(GAMEOBJECTS) $(RZOBJECTS) \
$(OBSEG_OBJECTS) $(OBSEG_RZ) $(ROMOBJECTS) $(RAMROM_OBJECTS) $(FONTOBJECTS) $(MUSIC_OBJECTS) $(IMAGE_OBJS) $(MUSIC_RZ_FILES) $(RSPOBJECTS) \
$(STAN_BUILD_FILES) $(SETUP_BUILD_FILES)
else
clean::
@clear
@echo "\n\nDeleting All Code and Asset Binaries"
$(call SetupProgressBar)
@$(call DrawProgressBar,0)
@rm -f $(APPELF) $(APPROM) $(APPBIN) $(ULTRAOBJECTS) $(BUILD_DIR)/ge007.$(OUTCODE).map
@$(call DrawProgressBar,1,4)
@rm -f $(HEADEROBJECTS) $(BOOTOBJECTS) $(CODEOBJECTS) $(GAMEOBJECTS) $(RZOBJECTS)
@$(call DrawProgressBar,2,4)
@rm -f $(OBSEG_OBJECTS) $(OBSEG_RZ) $(ROMOBJECTS) $(RAMROM_OBJECTS) $(FONTOBJECTS) $(MUSIC_OBJECTS)
@$(call DrawProgressBar,3,4)
@rm -f $(IMAGE_OBJS) $(MUSIC_RZ_FILES) $(RSPOBJECTS) $(STAN_BUILD_FILES) $(SETUP_BUILD_FILES)
@$(call DrawProgressBar,100)
endif
@echo "\033[1J$(RESTORESCROLLREGION)\nAll Code and Asset Binaries Cleared! Make will Re-Build these next time.\n"
@echo "\n\n\nDeleting All Code and Asset Binaries"
@$(call SetupProgressBar)
@rm -f $(APPELF) $(APPROM) $(APPBIN) $(ULTRAOBJECTS) $(BUILD_DIR)/ge007.$(OUTCODE).map & $(call IncrementProgressBarFromAtRate,0,0.125)
@rm -f $(HEADEROBJECTS) $(BOOTOBJECTS) $(CODEOBJECTS) $(GAMEOBJECTS) $(RZOBJECTS) & $(call IncrementProgressBarFromAtRate,25,0.125)
@rm -f $(OBSEG_OBJECTS) $(OBSEG_RZ) $(ROMOBJECTS) $(RAMROM_OBJECTS) $(FONTOBJECTS) $(MUSIC_OBJECTS) & $(call IncrementProgressBarFromAtRate,50,0.125)
@rm -f $(IMAGE_OBJS) $(MUSIC_RZ_FILES) $(RSPOBJECTS) $(STAN_BUILD_FILES) $(SETUP_BUILD_FILES)& $(call IncrementProgressBarFromAtRate,75,0.125)
@$(call DrawProgressBar,100)
@echo "\033[1J$(RESTORESCROLLREGION)\nAll Code and Asset Binaries Cleared! Make will Re-Build these next time.\n"
endif
nuke:
@echo deleting files specified from make clean ...
@# if this command is modified, update the `clean` recipe above.
rm -f $(APPELF) $(APPROM) $(APPBIN) $(ULTRAOBJECTS) $(BUILD_DIR)/ge007.$(OUTCODE).map \
$(HEADEROBJECTS) $(BOOTOBJECTS) $(CODEOBJECTS) $(GAMEOBJECTS) $(RZOBJECTS) \
$(OBSEG_OBJECTS) $(OBSEG_RZ) $(ROMOBJECTS) $(RAMROM_OBJECTS) $(FONTOBJECTS) $(MUSIC_OBJECTS) $(IMAGE_OBJS) $(MUSIC_RZ_FILES) $(RSPOBJECTS) \
$(STAN_BUILD_FILES) $(SETUP_BUILD_FILES)
@echo
@echo make: deleting build folders and files
$(foreach x,$(ALLOWED_COUNTRYCODE),rm -r -f -d "$(BUILD_DIR_BASE)/$(x)/"${\n})
@echo
@echo make: deleting bin / rsp / asp
rm -r -f -d "bin/"
@echo
@echo make: deleting assets
rm -r -f -d "assets/images/split/"
rm -r -f "assets/music/*.bin" "assets/obseg/bg/*.bin" "assets/obseg/brief/*.bin" "assets/obseg/chr/*.bin" "assets/obseg/gun/*.bin" "assets/obseg/prop/*.bin" "assets/obseg/setup/*.bin" "assets/obseg/setup/e/*.bin" "assets/obseg/setup/u/*.bin" "assets/obseg/setup/j/*.bin" "assets/obseg/stan/*.bin" "assets/obseg/text/*.bin" "assets/obseg/text/e/*.bin" "assets/obseg/text/u/*.bin" "assets/obseg/text/j/*.bin" "assets/ramrom/*.bin" "assets/ramrom/e/*.bin" "assets/ramrom/u/*.bin" "assets/ramrom/j/*.bin"
# 0 4 35 80 80(with colour codes)
help:
@@ -567,7 +615,10 @@ help:
@echo " supported targets:"
@echo ""
@echo " all $(call SET_TEXTATTRIB,$(FG_LIME)) Build$(RESTORECOLOUR) all (default)"
@echo " clean $(call SET_TEXTATTRIB,$(FG_RED)) Delete all$(RESTORECOLOUR) build artifacts"
@echo " clean $(call SET_TEXTATTRIB,$(FG_RED)) Delete all$(RESTORECOLOUR) known build artifacts"
@echo " nuke $(call SET_TEXTATTRIB,$(FG_RED)) Delete all$(RESTORECOLOUR) files explicitly listed in Makefile (same as make clean),"
@echo " all build output for all versions, any .bin file in assets folders,"
@echo " and asp/rsp bin."
@echo " dataclean $(call SET_TEXTATTRIB,$(FG_RED)) Delete$(RESTORECOLOUR) only asset build artifacts"
@echo " codeclean $(call SET_TEXTATTRIB,$(FG_RED)) Delete$(RESTORECOLOUR) only code (asm, .c) build artifacts"
@echo " libultraclean $(call SET_TEXTATTRIB,$(FG_RED)) Delete$(RESTORECOLOUR) only code (asm, .c) build artifacts "
@@ -692,6 +743,9 @@ testPB:
$(call SetupProgressBar)
$(call IncrementProgressBarFromAtRate,0,0.125)
textures:
for file in assets/images/split/*.bin; do ../../tools/mktex/build/tex2png $file .assets/images/out; done
colour:
@echo "\033[3A"
ifeq ($(VERBOSE),0)
@@ -707,8 +761,12 @@ colour:
-e "s/((([^\/]*([^s][^t][^d][^i][^n])\.c)|([^\/]*\.o))\s)/$$(echo "$(call SET_TEXTATTRIB,$(FG_WHITE))")&$$(echo "$(RESTORECOLOUR)")/g"
@echo "$(SAVECURSOR)$(RESTORESCROLLREGION)$(RESTORECURSOR)\033[1A"
ifeq ($(VERBOSE),0)
.SILENT:
# hide output by default, unless this one of the following targets
ifeq ($(filter nuke,$(MAKECMDGOALS)),)
else
ifeq ($(VERBOSE),0)
.SILENT:
endif
endif
@@ -7,13 +7,13 @@ ModelNode player_gait_pos_hdr_2 = {2, &player_gait_pos_2, &player_gait_pos_hdr_1
//D:8003C5C8
ModelNode player_gait_pos_hdr_3 = {2, &player_gait_pos_3, &player_gait_pos_hdr_2, 0, 0, 0};
//D:8003C5E0
ModelNode_HeaderRecord player_gait_obj = {1, &player_gait_pos_hdr_1, 0, 0, 0, 0};
ModelRoData_HeaderRecord player_gait_obj = {1, &player_gait_pos_hdr_1, 0, 0, 0, 0};
//D:8003C5F0
ModelNode_GroupRecord player_gait_pos_1 = {{0.0, 0.0, 0.0}, 0x0001, 0x0002, 0xFFFF, 0xFFFF, &player_gait_pos_hdr_2, 0};
ModelRoData_GroupRecord player_gait_pos_1 = {{0.0, 0.0, 0.0}, 0x0001, 0x0002, 0xFFFF, 0xFFFF, &player_gait_pos_hdr_2, 0};
//D:8003C60C
ModelNode_GroupRecord player_gait_pos_2 = {{1.177982, 41.14437, 0.0}, 0x0002, 0x0003, 0xFFFF, 0xFFFF, &player_gait_pos_hdr_3, 0};
ModelRoData_GroupRecord player_gait_pos_2 = {{1.177982, 41.14437, 0.0}, 0x0002, 0x0003, 0xFFFF, 0xFFFF, &player_gait_pos_hdr_3, 0};
//D:8003C628
ModelNode_GroupRecord player_gait_pos_3 = {{-2.576027, 480.42902, 0.0}, 0x0003, 0x0000, 0xFFFF, 0xFFFF, NULL, 0};
ModelRoData_GroupRecord player_gait_pos_3 = {{-2.576027, 480.42902, 0.0}, 0x0003, 0x0000, 0xFFFF, 0xFFFF, NULL, 0};
//FIXME File split likely
//D:8003C644
+2 -2
View File
@@ -19,8 +19,8 @@ IMAGE(17, 0x3DA, HIT_DEFAULT, HIT_DEFAULT, 0, 0, 0, 0)
IMAGE(VERTICALSTRIPES_RED, 0x1A, HIT_DEFAULT, HIT_DEFAULT, 0, 0, 0, 0)
IMAGE(VERTICALSTRIPES_RED2, 0x1A, HIT_DEFAULT, HIT_DEFAULT, 0, 0, 0, 0)
IMAGE(GRAVELGREY, 0x619, HIT_DIRT, HIT_DIRT, 0, 0, 0, 0)
IMAGE(GRAVELDETAIL, 0x135, HIT_DEFAULT, HIT_DEFAULT, 0x38, 0xD2, 0, 0)
IMAGE(TARDETAIL, 0x5F5, HIT_DIRT, HIT_DIRT, 0x38, 0xD2, 0, 0)
IMAGE(GRAVELDETAIL, 0x135, HIT_DEFAULT, HIT_DEFAULT, 0x3, 0x8, 0xD, 0x2)
IMAGE(TARDETAIL, 0x5F5, HIT_DIRT, HIT_DIRT, 0x3, 0x8, 0xD, 0x2)
IMAGE(TAZER_TEXT, 0x35F, HIT_DEFAULT, HIT_DEFAULT, 0, 0, 0, 0)
IMAGE(BOY_TEXT, 0x350, HIT_DEFAULT, HIT_DEFAULT, 0, 0, 0, 0)
IMAGE(25, 0x60C, HIT_DEFAULT, HIT_DEFAULT, 0, 0, 0, 0)
+3 -3
View File
@@ -12,7 +12,7 @@ ModelNode ModelNode_05000018 = {0x2, ModelNode_GroupRecord_05000060, 0x0, 0x0, 0
ModelNode ModelNode_05000030 = {0xA, ModelNode_BoundingBoxRecord_0500007c, ModelNode_05000018, 0x0, 0x0, ModelNode_05000048};
ModelNode ModelNode_05000048 = {0x18, ModelNode_DisplayList_CollisionRecord_05000230, ModelNode_05000030, 0x0, 0x0, 0x0};
ModelNode_GroupRecord ModelNode_GroupRecord_05000060 =
ModelRoData_GroupRecord ModelNode_GroupRecord_05000060 =
{
{962.5, 2015.0167, -36.117146},
0x0,
@@ -23,7 +23,7 @@ ModelNode_GroupRecord ModelNode_GroupRecord_05000060 =
304.6402
};
ModelNode_BoundingBoxRecord ModelNode_BoundingBoxRecord_0500007c =
ModelRoData_BoundingBoxRecord ModelNode_BoundingBoxRecord_0500007c =
{
0x1,
{-146.0, 146.0, -265.0, 265.0, -36.0, 36.0}
@@ -116,7 +116,7 @@ s16 POINT_USAGE_ARRAY_05000218[VERTEXGROUPCOUNT0] =
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
};
ModelNode_DisplayList_CollisionRecord ModelNode_DisplayList_CollisionRecord_05000230 =
ModelRoData_DisplayList_CollisionRecord ModelNode_DisplayList_CollisionRecord_05000230 =
{
GFX_ARRAY_PRIMARY_05000250,
GFX_ARRAY_SECONDARY_050002B0,
+2 -152
View File
@@ -3,155 +3,7 @@
.global _ramromDam1SegmentRomStart
_ramromDam1SegmentRomStart:
# VERSION_US is same as VERSION_JP
.ifdef VERSION_US
.global ramrom_Dam_1
ramrom_Dam_1:
.incbin "assets/ramrom/ramrom_Dam_1.bin"
ramrom_Dam_1_end:
.global ramrom_Dam_2
ramrom_Dam_2:
.incbin "assets/ramrom/ramrom_Dam_2.bin"
ramrom_Dam_2_end:
.global ramrom_Facility_1
ramrom_Facility_1:
.incbin "assets/ramrom/ramrom_Facility_1.bin"
ramrom_Facility_1_end:
.global ramrom_Facility_2
ramrom_Facility_2:
.incbin "assets/ramrom/ramrom_Facility_2.bin"
ramrom_Facility_2_end:
.global ramrom_Facility_3
ramrom_Facility_3:
.incbin "assets/ramrom/ramrom_Facility_3.bin"
ramrom_Facility_3_end:
.global ramrom_Runway_1
ramrom_Runway_1:
.incbin "assets/ramrom/ramrom_Runway_1.bin"
ramrom_Runway_1_end:
.global ramrom_Runway_2
ramrom_Runway_2:
.incbin "assets/ramrom/ramrom_Runway_2.bin"
ramrom_Runway_2_end:
.global ramrom_BunkerI_1
ramrom_BunkerI_1:
.incbin "assets/ramrom/ramrom_BunkerI_1.bin"
ramrom_BunkerI_1_end:
.global ramrom_BunkerI_2
ramrom_BunkerI_2:
.incbin "assets/ramrom/ramrom_BunkerI_2.bin"
ramrom_BunkerI_2_end:
.global ramrom_Silo_1
ramrom_Silo_1:
.incbin "assets/ramrom/ramrom_Silo_1.bin"
ramrom_Silo_1_end:
.global ramrom_Silo_2
ramrom_Silo_2:
.incbin "assets/ramrom/ramrom_Silo_2.bin"
ramrom_Silo_2_end:
.global ramrom_Frigate_1
ramrom_Frigate_1:
.incbin "assets/ramrom/ramrom_Frigate_1.bin"
ramrom_Frigate_1_end:
.global ramrom_Frigate_2
ramrom_Frigate_2:
.incbin "assets/ramrom/ramrom_Frigate_2.bin"
ramrom_Frigate_2_end:
.global ramrom_Train
ramrom_Train:
.incbin "assets/ramrom/ramrom_Train.bin"
ramrom_Train_end:
.endif
.ifdef VERSION_JP
.global ramrom_Dam_1
ramrom_Dam_1:
.incbin "assets/ramrom/ramrom_Dam_1.bin"
ramrom_Dam_1_end:
.global ramrom_Dam_2
ramrom_Dam_2:
.incbin "assets/ramrom/ramrom_Dam_2.bin"
ramrom_Dam_2_end:
.global ramrom_Facility_1
ramrom_Facility_1:
.incbin "assets/ramrom/ramrom_Facility_1.bin"
ramrom_Facility_1_end:
.global ramrom_Facility_2
ramrom_Facility_2:
.incbin "assets/ramrom/ramrom_Facility_2.bin"
ramrom_Facility_2_end:
.global ramrom_Facility_3
ramrom_Facility_3:
.incbin "assets/ramrom/ramrom_Facility_3.bin"
ramrom_Facility_3_end:
.global ramrom_Runway_1
ramrom_Runway_1:
.incbin "assets/ramrom/ramrom_Runway_1.bin"
ramrom_Runway_1_end:
.global ramrom_Runway_2
ramrom_Runway_2:
.incbin "assets/ramrom/ramrom_Runway_2.bin"
ramrom_Runway_2_end:
.global ramrom_BunkerI_1
ramrom_BunkerI_1:
.incbin "assets/ramrom/ramrom_BunkerI_1.bin"
ramrom_BunkerI_1_end:
.global ramrom_BunkerI_2
ramrom_BunkerI_2:
.incbin "assets/ramrom/ramrom_BunkerI_2.bin"
ramrom_BunkerI_2_end:
.global ramrom_Silo_1
ramrom_Silo_1:
.incbin "assets/ramrom/ramrom_Silo_1.bin"
ramrom_Silo_1_end:
.global ramrom_Silo_2
ramrom_Silo_2:
.incbin "assets/ramrom/ramrom_Silo_2.bin"
ramrom_Silo_2_end:
.global ramrom_Frigate_1
ramrom_Frigate_1:
.incbin "assets/ramrom/ramrom_Frigate_1.bin"
ramrom_Frigate_1_end:
.global ramrom_Frigate_2
ramrom_Frigate_2:
.incbin "assets/ramrom/ramrom_Frigate_2.bin"
ramrom_Frigate_2_end:
.global ramrom_Train
ramrom_Train:
.incbin "assets/ramrom/ramrom_Train.bin"
ramrom_Train_end:
.endif
# VERSION_EU is only one with differences
.ifdef VERSION_EU
@@ -225,9 +77,7 @@ ramrom_Train:
.incbin "assets/ramrom/e/ramrom_Train.bin"
ramrom_Train_end:
.endif
.ifdef VERSION_DEBUG
.else
.global ramrom_Dam_1
ramrom_Dam_1:
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+999 -2
View File
File diff suppressed because it is too large. Load diff
+157
View File
@@ -0,0 +1,157 @@
#!/bin/bash
if ! command -v md5sum &> /dev/null
then
echo "md5sum could not be found"
exit 1
fi
if ! command -v dd &> /dev/null
then
echo "dd could not be found"
exit 1
fi
if ! command -v dd &> /dev/null
then
echo "gzip could not be found"
exit 1
fi
DATA_FILENAME=
OUT_FILENAME=
ROM_MD5=
# US
ROM_FILENAME="baserom.u.z64"
OUT_FILENAME="baserom.u.cdata"
MD5_US="70c525880240c1e838b8b1be35666c3b"
if [ -f "${ROM_FILENAME}" ]; then
ROM_MD5=$(md5sum "${ROM_FILENAME}" | cut -d " " -f1)
if [ "${ROM_MD5}" = "${MD5_US}" ]; then
echo "extracting US compressed data segment"
dd bs=1 skip=137616 count=71760 if="${ROM_FILENAME}" of="${OUT_FILENAME}" status=none
GZ=gzip tools/1172inflate.sh "${OUT_FILENAME}" "${OUT_FILENAME}.bin"
rm "${OUT_FILENAME}"
else
echo "cannot extract compressed data segment from ${ROM_FILENAME}, md5=${ROM_MD5}, expected ${MD5_US}"
fi
else
echo "${ROM_FILENAME} not found"
fi
MD5_DATA_US="055525d9087f953d43d80639773b4291"
RAMSTART=0x80020d90
rspbootTextStart_ADDR=$((0x80020d90-RAMSTART)) #rspbootTextStart
rspbootTextEnd_ADDR=$((0x80020e60-RAMSTART)) #rspbootTextEnd
rspbootTextSize=$((rspbootTextEnd_ADDR-rspbootTextStart_ADDR))
gsp3DTextStart_ADDR=$((0x80020e60-RAMSTART)) #gsp3DTextStart
gsp3DTextEnd_ADDR=$((0x80022280-RAMSTART)) #gsp3DTextEnd
gsp3DTextSize=$((gsp3DTextEnd_ADDR-gsp3DTextStart_ADDR))
aspMainTextStart_ADDR=$((0x80022280-RAMSTART)) #aspMainTextStart
aspMainTextEnd_ADDR=$((0x80023040-RAMSTART)) #aspMainTextEnd
aspMainTextSize=$((aspMainTextEnd_ADDR-aspMainTextStart_ADDR))
gsp3DDataStart_ADDR=$((0x8005c820-RAMSTART)) #gsp3DDataStart
gsp3DDataEnd_ADDR=$((0x8005d020-RAMSTART)) #gsp3DDataEnd
gsp3DDataSize=$((gsp3DDataEnd_ADDR-gsp3DDataStart_ADDR))
aspMainDataStart_ADDR=$((0x8005d020-RAMSTART)) #aspMainDataStart
aspMainDataEnd_ADDR=$((0x8005d2e0-RAMSTART)) #aspMainDataEnd
aspMainDataSize=$((aspMainDataEnd_ADDR-aspMainDataStart_ADDR))
# rsp text
OUT_FILENAME="bin/rspboot.text.bin"
DATA_FILENAME="baserom.u.cdata.bin"
START=${rspbootTextStart_ADDR}
SIZE=${rspbootTextSize}
if [ -f "${DATA_FILENAME}" ]; then
ROM_MD5=$(md5sum "${DATA_FILENAME}" | cut -d " " -f1)
if [ "${ROM_MD5}" = "${MD5_DATA_US}" ]; then
echo "extracting ${OUT_FILENAME}"
dd bs=1 skip=${START} count=${SIZE} if="${DATA_FILENAME}" of="${OUT_FILENAME}" status=none
else
echo "cannot ${OUT_FILENAME} from ${DATA_FILENAME}, md5=${ROM_MD5}, expected ${MD5_DATA_US}"
fi
else
echo "${DATA_FILENAME} not found"
fi
# gsp3d text
OUT_FILENAME="bin/gspboot.text.bin"
DATA_FILENAME="baserom.u.cdata.bin"
START=${gsp3DTextStart_ADDR}
SIZE=${gsp3DTextSize}
if [ -f "${DATA_FILENAME}" ]; then
ROM_MD5=$(md5sum "${DATA_FILENAME}" | cut -d " " -f1)
if [ "${ROM_MD5}" = "${MD5_DATA_US}" ]; then
echo "extracting ${OUT_FILENAME}"
dd bs=1 skip=${START} count=${SIZE} if="${DATA_FILENAME}" of="${OUT_FILENAME}" status=none
else
echo "cannot ${OUT_FILENAME} from ${DATA_FILENAME}, md5=${ROM_MD5}, expected ${MD5_DATA_US}"
fi
else
echo "${DATA_FILENAME} not found"
fi
# gsp3d data
OUT_FILENAME="bin/gspboot.data.bin"
DATA_FILENAME="baserom.u.cdata.bin"
START=${gsp3DDataStart_ADDR}
SIZE=${gsp3DDataSize}
if [ -f "${DATA_FILENAME}" ]; then
ROM_MD5=$(md5sum "${DATA_FILENAME}" | cut -d " " -f1)
if [ "${ROM_MD5}" = "${MD5_DATA_US}" ]; then
echo "extracting ${OUT_FILENAME}"
dd bs=1 skip=${START} count=${SIZE} if="${DATA_FILENAME}" of="${OUT_FILENAME}" status=none
else
echo "cannot ${OUT_FILENAME} from ${DATA_FILENAME}, md5=${ROM_MD5}, expected ${MD5_DATA_US}"
fi
else
echo "${DATA_FILENAME} not found"
fi
# asp text
OUT_FILENAME="bin/aspboot.text.bin"
DATA_FILENAME="baserom.u.cdata.bin"
START=${aspMainTextStart_ADDR}
SIZE=${aspMainTextSize}
if [ -f "${DATA_FILENAME}" ]; then
ROM_MD5=$(md5sum "${DATA_FILENAME}" | cut -d " " -f1)
if [ "${ROM_MD5}" = "${MD5_DATA_US}" ]; then
echo "extracting ${OUT_FILENAME}"
dd bs=1 skip=${START} count=${SIZE} if="${DATA_FILENAME}" of="${OUT_FILENAME}" status=none
else
echo "cannot ${OUT_FILENAME} from ${DATA_FILENAME}, md5=${ROM_MD5}, expected ${MD5_DATA_US}"
fi
else
echo "${DATA_FILENAME} not found"
fi
# asp data
OUT_FILENAME="bin/aspboot.data.bin"
DATA_FILENAME="baserom.u.cdata.bin"
START=${aspMainDataStart_ADDR}
SIZE=${aspMainDataSize}
if [ -f "${DATA_FILENAME}" ]; then
ROM_MD5=$(md5sum "${DATA_FILENAME}" | cut -d " " -f1)
if [ "${ROM_MD5}" = "${MD5_DATA_US}" ]; then
echo "extracting ${OUT_FILENAME}"
dd bs=1 skip=${START} count=${SIZE} if="${DATA_FILENAME}" of="${OUT_FILENAME}" status=none
else
echo "cannot ${OUT_FILENAME} from ${DATA_FILENAME}, md5=${ROM_MD5}, expected ${MD5_DATA_US}"
fi
else
echo "${DATA_FILENAME} not found"
fi
+2
View File
@@ -92,3 +92,5 @@ if [ "$DOALL" == "1" ] || [ $1 == 'images' ]; then
#formatting matters, no comments, no extra lines, unix line endings only
#and always end with a newline
fi
mkdir -p ./bin
./extract_asp_gsp_rsp.sh
-4346
View File
File diff suppressed because it is too large. Load diff
+5 -5
View File
@@ -58,11 +58,11 @@ d41d8cd98f00b204e9800998ecf8427e,.code,build/e/src/decompressbuffer.o
d41d8cd98f00b204e9800998ecf8427e,.bss,build/e/src/decompressbuffer.o
d41d8cd98f00b204e9800998ecf8427e,.data,build/e/src/decompressbuffer.o
d41d8cd98f00b204e9800998ecf8427e,.rodata,build/e/src/decompressbuffer.o
377a8cb4f582defa3f1bb86cd30a60c1,.text,build/e/src/fault.o
d41d8cd98f00b204e9800998ecf8427e,.code,build/e/src/fault.o
d41d8cd98f00b204e9800998ecf8427e,.bss,build/e/src/fault.o
d41d8cd98f00b204e9800998ecf8427e,.data,build/e/src/fault.o
d41d8cd98f00b204e9800998ecf8427e,.rodata,build/e/src/fault.o
377a8cb4f582defa3f1bb86cd30a60c1,.text,build/e/src/crash.o
d41d8cd98f00b204e9800998ecf8427e,.code,build/e/src/crash.o
d41d8cd98f00b204e9800998ecf8427e,.bss,build/e/src/crash.o
d41d8cd98f00b204e9800998ecf8427e,.data,build/e/src/crash.o
d41d8cd98f00b204e9800998ecf8427e,.rodata,build/e/src/crash.o
6708969f43a282c2c6e87c98fa031b2d,.text,build/e/src/fr.o
d41d8cd98f00b204e9800998ecf8427e,.code,build/e/src/fr.o
d41d8cd98f00b204e9800998ecf8427e,.bss,build/e/src/fr.o
1 491aefb4d4b8ac93d91148b1ffba34ac .text build/e/src/aspboot.o
58 d41d8cd98f00b204e9800998ecf8427e .bss build/e/src/decompressbuffer.o
59 d41d8cd98f00b204e9800998ecf8427e .data build/e/src/decompressbuffer.o
60 d41d8cd98f00b204e9800998ecf8427e .rodata build/e/src/decompressbuffer.o
61 377a8cb4f582defa3f1bb86cd30a60c1 .text build/e/src/fault.o build/e/src/crash.o
62 d41d8cd98f00b204e9800998ecf8427e .code build/e/src/fault.o build/e/src/crash.o
63 d41d8cd98f00b204e9800998ecf8427e .bss build/e/src/fault.o build/e/src/crash.o
64 d41d8cd98f00b204e9800998ecf8427e .data build/e/src/fault.o build/e/src/crash.o
65 d41d8cd98f00b204e9800998ecf8427e .rodata build/e/src/fault.o build/e/src/crash.o
66 6708969f43a282c2c6e87c98fa031b2d .text build/e/src/fr.o
67 d41d8cd98f00b204e9800998ecf8427e .code build/e/src/fr.o
68 d41d8cd98f00b204e9800998ecf8427e .bss build/e/src/fr.o
-4445
View File
File diff suppressed because it is too large. Load diff
+5 -5
View File
@@ -53,11 +53,11 @@ d41d8cd98f00b204e9800998ecf8427e,.code,build/j/src/decompressbuffer.o
d41d8cd98f00b204e9800998ecf8427e,.bss,build/j/src/decompressbuffer.o
d41d8cd98f00b204e9800998ecf8427e,.data,build/j/src/decompressbuffer.o
d41d8cd98f00b204e9800998ecf8427e,.rodata,build/j/src/decompressbuffer.o
377a8cb4f582defa3f1bb86cd30a60c1,.text,build/j/src/fault.o
d41d8cd98f00b204e9800998ecf8427e,.code,build/j/src/fault.o
d41d8cd98f00b204e9800998ecf8427e,.bss,build/j/src/fault.o
d41d8cd98f00b204e9800998ecf8427e,.data,build/j/src/fault.o
d41d8cd98f00b204e9800998ecf8427e,.rodata,build/j/src/fault.o
377a8cb4f582defa3f1bb86cd30a60c1,.text,build/j/src/crash.o
d41d8cd98f00b204e9800998ecf8427e,.code,build/j/src/crash.o
d41d8cd98f00b204e9800998ecf8427e,.bss,build/j/src/crash.o
d41d8cd98f00b204e9800998ecf8427e,.data,build/j/src/crash.o
d41d8cd98f00b204e9800998ecf8427e,.rodata,build/j/src/crash.o
c6af3c2e9a83066c1ff902c20ee56af0,.text,build/j/src/fr.o
d41d8cd98f00b204e9800998ecf8427e,.code,build/j/src/fr.o
d41d8cd98f00b204e9800998ecf8427e,.bss,build/j/src/fr.o
1 491aefb4d4b8ac93d91148b1ffba34ac .text build/j/src/aspboot.o
53 d41d8cd98f00b204e9800998ecf8427e .bss build/j/src/decompressbuffer.o
54 d41d8cd98f00b204e9800998ecf8427e .data build/j/src/decompressbuffer.o
55 d41d8cd98f00b204e9800998ecf8427e .rodata build/j/src/decompressbuffer.o
56 377a8cb4f582defa3f1bb86cd30a60c1 .text build/j/src/fault.o build/j/src/crash.o
57 d41d8cd98f00b204e9800998ecf8427e .code build/j/src/fault.o build/j/src/crash.o
58 d41d8cd98f00b204e9800998ecf8427e .bss build/j/src/fault.o build/j/src/crash.o
59 d41d8cd98f00b204e9800998ecf8427e .data build/j/src/fault.o build/j/src/crash.o
60 d41d8cd98f00b204e9800998ecf8427e .rodata build/j/src/fault.o build/j/src/crash.o
61 c6af3c2e9a83066c1ff902c20ee56af0 .text build/j/src/fr.o
62 d41d8cd98f00b204e9800998ecf8427e .code build/j/src/fr.o
63 d41d8cd98f00b204e9800998ecf8427e .bss build/j/src/fr.o
-4345
View File
File diff suppressed because it is too large. Load diff
+103 -4108
View File
File diff suppressed because it is too large. Load diff
+5 -5
View File
@@ -53,11 +53,11 @@ d41d8cd98f00b204e9800998ecf8427e,.code,build/u/src/decompressbuffer.o
d41d8cd98f00b204e9800998ecf8427e,.bss,build/u/src/decompressbuffer.o
d41d8cd98f00b204e9800998ecf8427e,.data,build/u/src/decompressbuffer.o
d41d8cd98f00b204e9800998ecf8427e,.rodata,build/u/src/decompressbuffer.o
377a8cb4f582defa3f1bb86cd30a60c1,.text,build/u/src/fault.o
d41d8cd98f00b204e9800998ecf8427e,.code,build/u/src/fault.o
d41d8cd98f00b204e9800998ecf8427e,.bss,build/u/src/fault.o
d41d8cd98f00b204e9800998ecf8427e,.data,build/u/src/fault.o
d41d8cd98f00b204e9800998ecf8427e,.rodata,build/u/src/fault.o
377a8cb4f582defa3f1bb86cd30a60c1,.text,build/u/src/crash.o
d41d8cd98f00b204e9800998ecf8427e,.code,build/u/src/crash.o
d41d8cd98f00b204e9800998ecf8427e,.bss,build/u/src/crash.o
d41d8cd98f00b204e9800998ecf8427e,.data,build/u/src/crash.o
d41d8cd98f00b204e9800998ecf8427e,.rodata,build/u/src/crash.o
c6af3c2e9a83066c1ff902c20ee56af0,.text,build/u/src/fr.o
d41d8cd98f00b204e9800998ecf8427e,.code,build/u/src/fr.o
d41d8cd98f00b204e9800998ecf8427e,.bss,build/u/src/fr.o
1 491aefb4d4b8ac93d91148b1ffba34ac .text build/u/src/aspboot.o
53 d41d8cd98f00b204e9800998ecf8427e .bss build/u/src/decompressbuffer.o
54 d41d8cd98f00b204e9800998ecf8427e .data build/u/src/decompressbuffer.o
55 d41d8cd98f00b204e9800998ecf8427e .rodata build/u/src/decompressbuffer.o
56 377a8cb4f582defa3f1bb86cd30a60c1 .text build/u/src/fault.o build/u/src/crash.o
57 d41d8cd98f00b204e9800998ecf8427e .code build/u/src/fault.o build/u/src/crash.o
58 d41d8cd98f00b204e9800998ecf8427e .bss build/u/src/fault.o build/u/src/crash.o
59 d41d8cd98f00b204e9800998ecf8427e .data build/u/src/fault.o build/u/src/crash.o
60 d41d8cd98f00b204e9800998ecf8427e .rodata build/u/src/fault.o build/u/src/crash.o
61 c6af3c2e9a83066c1ff902c20ee56af0 .text build/u/src/fr.o
62 d41d8cd98f00b204e9800998ecf8427e .code build/u/src/fr.o
63 d41d8cd98f00b204e9800998ecf8427e .bss build/u/src/fr.o
-4346
View File
File diff suppressed because it is too large. Load diff
+2699 -2699
View File
File diff suppressed because it is too large. Load diff
+14 -14
View File
@@ -579,22 +579,22 @@ HAS_ARGS(( ()))
COUNTPARAMS((A, B, C, D, E, F,G,H,I))
#enAdif
#define LIST_TO_TUPLE(list) \
IF_ELSE(IS_PAREN(list))\
(\
EVAL16((LIST_TO_TUPLE_INNER(SECOND list, FIRST list)))\
)\
(\
list\
#define LIST_TO_TUPLE(list) \
IF_ELSE(IS_PAREN(list))\
(\
EVAL16((LIST_TO_TUPLE_INNER(SECOND list, FIRST list)))\
)\
(\
list\
)
#define LIST_TO_TUPLE_INNER(list, listb) \
IF_ELSE(HAS_ARGS(list)) \
(\
EXPAND(DEFER4(_LIST_TO_TUPLE_INNER)()(TRY_EXPAND((POP_ARG list)), PUSH_ARG(FIRST list, listb)))\
)\
(\
0 listb\
#define LIST_TO_TUPLE_INNER(list, listb) \
IF_ELSE(HAS_ARGS(list)) \
(\
EXPAND(DEFER4(_LIST_TO_TUPLE_INNER)()(TRY_EXPAND((POP_ARG list)), PUSH_ARG(FIRST list, listb)))\
)\
(\
0 listb\
)
#define _LIST_TO_TUPLE_INNER() LIST_TO_TUPLE_INNER
// list to tuple
+56
View File
@@ -130,6 +130,62 @@
gsSP4Triangles(x1, y1, z1, x2, y2, z2, 0, 0, 0, 0, 0, 0)
/**
* B1 rsp_tri4
* Draws up to four triangles at a time.
* Expects values from 0-F, corresponding with # points declared by vertex command.
* Triangles with all points set to 0 are not drawn.
*
* upper word
* 0000F000 z4
* 00000F00 z3
* 000000F0 z2
* 0000000F z1
*
* lower word
* f0000000 y4
* 0f000000 x4
* 00f00000 y3
* 000f0000 x3
* 0000f000 y2
* 00000f00 x2
* 000000f0 y1
* 0000000f x1
*/
#define gDPTri4(pkt, x1, y1, z1, x2, y2, z2, x3, y3, z3, x4, y4, z4) \
{ \
Gfx *_g = (Gfx *)(pkt); \
_g->words.w0 = (_SHIFTL(G_TRI4, 24, 8) \
| _SHIFTL(z4, 12, 4) \
| _SHIFTL(z3, 8, 4) \
| _SHIFTL(z2, 4, 4) \
| _SHIFTL(z1, 0, 4)); \
_g->words.w1 = (_SHIFTL(y4, 28, 4) \
| _SHIFTL(x4, 24, 4) \
| _SHIFTL(y3, 20, 4) \
| _SHIFTL(x3, 16, 4) \
| _SHIFTL(y2, 12, 4) \
| _SHIFTL(x2, 8, 4) \
| _SHIFTL(y1, 4, 4) \
| _SHIFTL(x1, 0, 4)); \
}
#define gDPTri3(pkt, x1, y1, z1, x2, y2, z2, x3, y3, z3) \
gDPTri4(pkt, x1, y1, z1, x2, y2, z2, x3, y3, z3, 0, 0, 0)
#define gDPTri2(pkt, x1, y1, z1, x2, y2, z2) \
gDPTri4(pkt, x1, y1, z1, x2, y2, z2, 0, 0, 0, 0, 0, 0)
#define gDPTri1(pkt, x1, y1, z1) \
gDPTri4(pkt, x1, y1, z1, 0, 0, 0, 0, 0, 0, 0, 0, 0)
#define gDPLoadTLUT06(pkt, a, b, c, d) \
{ \
Gfx *_g = (Gfx *)pkt; \
_g->words.w0 = _SHIFTL(G_LOADTLUT, 24, 8) | _SHIFTL((a), 14, 10) | _SHIFTL((b), 2, 10); \
_g->words.w1 = _SHIFTL(0x06, 24, 8) | _SHIFTL((c), 14, 10) | _SHIFTL((d), 2, 10); \
}
/*
* Texturing macro Overrides
*/
+133
View File
@@ -0,0 +1,133 @@
build/OUTCODE/src/game/initgamedata.o (.bss);
build/OUTCODE/src/game/initweaponanigroups.o (.bss);
build/OUTCODE/src/game/initactorpropstuff.o (.bss);
build/OUTCODE/src/game/initnull_0009D0.o (.bss);
build/OUTCODE/src/game/initunk_0009E0.o (.bss);
build/OUTCODE/src/game/initanitable.o (.bss);
build/OUTCODE/src/game/initplayergaitobject.o (.bss);
build/OUTCODE/src/game/setguscale.o (.bss);
build/OUTCODE/src/game/initnull_000BC0.o (.bss);
build/OUTCODE/src/game/initimages.o (.bss);
build/OUTCODE/src/game/initintromatrices.o (.bss);
build/OUTCODE/src/game/initmenus.o (.bss);
build/OUTCODE/src/game/initguards.o (.bss);
build/OUTCODE/src/game/deb_loadallmodels.o (.bss);
build/OUTCODE/src/game/initobjects.o (.bss);
build/OUTCODE/src/game/prop.o (.bss);
build/OUTCODE/src/game/objective.o (.bss);
build/OUTCODE/src/game/ejectedcartridges.o (.bss);
build/OUTCODE/src/game/initBondDATA.o (.bss);
build/OUTCODE/src/game/initunk_005450.o (.bss);
build/OUTCODE/src/game/initunk_005520.o (.bss);
build/OUTCODE/src/game/bondview_r.o (.bss);
build/OUTCODE/src/game/inititemslots.o (.bss);
build/OUTCODE/src/game/initBondDATAdefaults.o (.bss);
build/OUTCODE/src/game/initpathtablesomething.o (.bss);
build/OUTCODE/src/game/initpathtablelinks.o (.bss);
build/OUTCODE/src/game/initexplosioncasing.o (.bss);
build/OUTCODE/src/game/alloc_window_pieces.o (.bss);
build/OUTCODE/src/game/initunk_007290.o (.bss);
build/OUTCODE/src/game/initcheattext.o (.bss);
build/OUTCODE/src/game/initmttex.o (.bss);
build/OUTCODE/src/game/cleanup_guard_data.o (.bss);
build/OUTCODE/src/game/cleanup_object_sounds.o (.bss);
build/OUTCODE/src/game/cleanup_alarms.o (.bss);
build/OUTCODE/src/game/cleanup_objects.o (.bss);
build/OUTCODE/src/game/cleanup_objectives.o (.bss);
build/OUTCODE/src/game/cleanupSFXRelated.o (.bss);
build/OUTCODE/src/game/playerstats_007770.o (.bss);
build/OUTCODE/src/game/cleanexplosions.o (.bss);
build/OUTCODE/src/game/cleanwindowpieces.o (.bss);
build/OUTCODE/src/game/null_007970.o (.bss);
build/OUTCODE/src/game/cleanplayersound.o (.bss);
build/OUTCODE/src/game/title.o (.bss);
build/OUTCODE/src/game/front.o (.bss);
build/OUTCODE/src/game/unk_01B0E0.o (.bss);
build/OUTCODE/src/game/unk_01B240.o (.bss);
build/OUTCODE/src/game/unk_01BAE0.o (.bss);
build/OUTCODE/src/game/blood_animation.o (.bss);
build/OUTCODE/src/game/blood_decrypt.o (.bss);
build/OUTCODE/src/game/file.o (.bss);
build/OUTCODE/src/game/file2.o (.bss);
build/OUTCODE/src/game/chr.o (.bss);
build/OUTCODE/src/game/chr_b.o (.bss);
build/OUTCODE/src/game/chrlv.o (.bss);
build/OUTCODE/src/game/chrai.o (.bss);
build/OUTCODE/src/game/chrprop.o (.bss);
build/OUTCODE/src/game/chrobjhandler.o (.bss);
build/OUTCODE/src/game/loadobjectmodel.o (.bss);
build/OUTCODE/src/game/objective_status.o (.bss);
build/OUTCODE/src/game/objective_status2.o (.bss);
build/OUTCODE/src/game/math_sincos.o (.bss);
build/OUTCODE/src/game/matrixmath.o (.bss);
build/OUTCODE/src/game/math_unk_05A9E0.o (.bss);
build/OUTCODE/src/game/math_atan2f.o (.bss);
build/OUTCODE/src/game/math_asinacos.o (.bss);
build/OUTCODE/src/game/math_asinfacosf.o (.bss);
build/OUTCODE/src/game/matrixmath_misc.o (.bss);
build/OUTCODE/src/game/quaternion.o (.bss);
build/OUTCODE/src/game/math_floor.o (.bss);
build/OUTCODE/src/game/math_ceil.o (.bss);
build/OUTCODE/src/game/gun.o (.bss);
build/OUTCODE/src/game/bondwalk2.o (.bss);
build/OUTCODE/src/game/objecthandler.o (.bss);
build/OUTCODE/src/game/objecthandler_1.o (.bss);
build/OUTCODE/src/game/objecthandler_2.o (.bss);
build/OUTCODE/src/game/othermodemicrocode.o (.bss);
build/OUTCODE/src/game/bondview.o (.bss);
build/OUTCODE/src/game/bondinv.o (.bss);
build/OUTCODE/src/game/bondhead.o (.bss);
build/OUTCODE/src/game/padhalllv.o (.bss);
build/OUTCODE/src/game/debugmenu_08FE00.o (.bss);
build/OUTCODE/src/game/debugmenu_handler.o (.bss);
build/OUTCODE/src/game/unk_091080.o (.bss);
build/OUTCODE/src/game/chraidata.o (.bss);
build/OUTCODE/src/game/pobjdata.o (.bss);
build/OUTCODE/src/game/gobjdata.o (.bss);
build/OUTCODE/src/game/gobjdata2.o (.bss);
build/OUTCODE/src/game/cobjdata.o (.bss);
build/OUTCODE/src/game/cheat_buttons.o (.bss);
build/OUTCODE/src/game/unk_092890.o (.bss);
build/OUTCODE/src/game/unk_092E50.o (.bss);
build/OUTCODE/src/game/player.o (.bss);
build/OUTCODE/src/game/player_2.o (.bss);
build/OUTCODE/src/game/crc.o (.bss);
build/OUTCODE/src/game/chrObjRandom.o (.bss);
build/OUTCODE/src/game/unk_09B7A0.o (.bss);
build/OUTCODE/src/game/explosions.o (.bss);
build/OUTCODE/src/game/unk_0A1DA0.o (.bss);
build/OUTCODE/src/game/watch.o (.bss);
build/OUTCODE/src/game/textrelated.o (.bss);
build/OUTCODE/src/game/stan.o (.bss);
build/OUTCODE/src/game/unk_0B3200.o (.bss);
build/OUTCODE/src/game/bg.o (.bss);
build/OUTCODE/src/game/bg2.o (.bss);
build/OUTCODE/src/game/fog.o (.bss);
build/OUTCODE/src/game/lightfixture.o (.bss);
build/OUTCODE/src/game/unk_0BC530.o (.bss);
build/OUTCODE/src/game/ob.o (.bss);
build/OUTCODE/src/game/dyn.o (.bss);
build/OUTCODE/src/game/lvl.o (.bss);
build/OUTCODE/src/game/ramromreplay.o (.bss);
build/OUTCODE/src/game/unk_0C0A70.o (.bss);
build/OUTCODE/src/game/mp_music.o (.bss);
build/OUTCODE/src/game/lvl_text.o (.bss);
build/OUTCODE/src/game/mp_watch.o (.bss);
build/OUTCODE/src/game/radar.o (.bss);
build/OUTCODE/src/game/mp_weapon.o (.bss);
build/OUTCODE/src/game/image.o (.bss);
build/OUTCODE/src/game/image_bank.o (.bss);
build/OUTCODE/src/game/unk_0CC4C0.o (.bss);
build/OUTCODE/src/game/decompress.o (.bss);
build/OUTCODE/src/game/zlib.o (.bss);
build/OUTCODE/src/game/rsp.o (.bss);
build/OUTCODE/src/game/indy_comms.o (.bss);
build/OUTCODE/src/game/indy_commands.o (.bss);
build/OUTCODE/src/game/game_debug.o (.bss);
build/OUTCODE/src/game/compiletime.o (.bss);
build/OUTCODE/src/game/unk_0D1AC0.o (.bss);
build/OUTCODE/src/game/viewport.o (.bss);
build/OUTCODE/src/game/music_0D2720.o (.bss);
#ifndef VERSION_EU
build/OUTCODE/src/game/spectrum.o (.bss);
#endif
+133
View File
@@ -0,0 +1,133 @@
build/OUTCODE/src/game/initgamedata.o (.data);
build/OUTCODE/src/game/initweaponanigroups.o (.data);
build/OUTCODE/src/game/initactorpropstuff.o (.data);
build/OUTCODE/src/game/initnull_0009D0.o (.data);
build/OUTCODE/src/game/initunk_0009E0.o (.data);
build/OUTCODE/src/game/initanitable.o (.data);
build/OUTCODE/src/game/initplayergaitobject.o (.data);
build/OUTCODE/src/game/setguscale.o (.data);
build/OUTCODE/src/game/initnull_000BC0.o (.data);
build/OUTCODE/src/game/initimages.o (.data);
build/OUTCODE/src/game/initintromatrices.o (.data);
build/OUTCODE/src/game/initmenus.o (.data);
build/OUTCODE/src/game/initguards.o (.data);
build/OUTCODE/src/game/deb_loadallmodels.o (.data);
build/OUTCODE/src/game/initobjects.o (.data);
build/OUTCODE/src/game/prop.o (.data);
build/OUTCODE/src/game/objective.o (.data);
build/OUTCODE/src/game/ejectedcartridges.o (.data);
build/OUTCODE/src/game/initBondDATA.o (.data);
build/OUTCODE/src/game/initunk_005450.o (.data);
build/OUTCODE/src/game/initunk_005520.o (.data);
build/OUTCODE/src/game/bondview_r.o (.data);
build/OUTCODE/src/game/inititemslots.o (.data);
build/OUTCODE/src/game/initBondDATAdefaults.o (.data);
build/OUTCODE/src/game/initpathtablesomething.o (.data);
build/OUTCODE/src/game/initpathtablelinks.o (.data);
build/OUTCODE/src/game/initexplosioncasing.o (.data);
build/OUTCODE/src/game/alloc_window_pieces.o (.data);
build/OUTCODE/src/game/initunk_007290.o (.data);
build/OUTCODE/src/game/initcheattext.o (.data);
build/OUTCODE/src/game/initmttex.o (.data);
build/OUTCODE/src/game/cleanup_guard_data.o (.data);
build/OUTCODE/src/game/cleanup_object_sounds.o (.data);
build/OUTCODE/src/game/cleanup_alarms.o (.data);
build/OUTCODE/src/game/cleanup_objects.o (.data);
build/OUTCODE/src/game/cleanup_objectives.o (.data);
build/OUTCODE/src/game/cleanupSFXRelated.o (.data);
build/OUTCODE/src/game/playerstats_007770.o (.data);
build/OUTCODE/src/game/cleanexplosions.o (.data);
build/OUTCODE/src/game/cleanwindowpieces.o (.data);
build/OUTCODE/src/game/null_007970.o (.data);
build/OUTCODE/src/game/cleanplayersound.o (.data);
build/OUTCODE/src/game/title.o (.data);
build/OUTCODE/src/game/front.o (.data);
build/OUTCODE/src/game/unk_01B0E0.o (.data);
build/OUTCODE/src/game/unk_01B240.o (.data);
build/OUTCODE/src/game/unk_01BAE0.o (.data);
build/OUTCODE/src/game/blood_animation.o (.data);
build/OUTCODE/src/game/blood_decrypt.o (.data);
build/OUTCODE/src/game/file.o (.data);
build/OUTCODE/src/game/file2.o (.data);
build/OUTCODE/src/game/chr.o (.data);
build/OUTCODE/src/game/chr_b.o (.data);
build/OUTCODE/src/game/chrlv.o (.data);
build/OUTCODE/src/game/chrai.o (.data);
build/OUTCODE/src/game/chrprop.o (.data);
build/OUTCODE/src/game/chrobjhandler.o (.data);
build/OUTCODE/src/game/loadobjectmodel.o (.data);
build/OUTCODE/src/game/objective_status.o (.data);
build/OUTCODE/src/game/objective_status2.o (.data);
build/OUTCODE/src/game/math_sincos.o (.data);
build/OUTCODE/src/game/matrixmath.o (.data);
build/OUTCODE/src/game/math_unk_05A9E0.o (.data);
build/OUTCODE/src/game/math_atan2f.o (.data);
build/OUTCODE/src/game/math_asinacos.o (.data);
build/OUTCODE/src/game/math_asinfacosf.o (.data);
build/OUTCODE/src/game/matrixmath_misc.o (.data);
build/OUTCODE/src/game/quaternion.o (.data);
build/OUTCODE/src/game/math_floor.o (.data);
build/OUTCODE/src/game/math_ceil.o (.data);
build/OUTCODE/src/game/gun.o (.data);
build/OUTCODE/src/game/bondwalk2.o (.data);
build/OUTCODE/src/game/objecthandler.o (.data);
build/OUTCODE/src/game/objecthandler_1.o (.data);
build/OUTCODE/src/game/objecthandler_2.o (.data);
build/OUTCODE/src/game/othermodemicrocode.o (.data);
build/OUTCODE/src/game/bondview.o (.data);
build/OUTCODE/src/game/bondinv.o (.data);
build/OUTCODE/src/game/bondhead.o (.data);
build/OUTCODE/src/game/padhalllv.o (.data);
build/OUTCODE/src/game/debugmenu_08FE00.o (.data);
build/OUTCODE/src/game/debugmenu_handler.o (.data);
build/OUTCODE/src/game/unk_091080.o (.data);
build/OUTCODE/src/game/chraidata.o (.data);
build/OUTCODE/src/game/pobjdata.o (.data);
build/OUTCODE/src/game/gobjdata.o (.data);
build/OUTCODE/src/game/gobjdata2.o (.data);
build/OUTCODE/src/game/cobjdata.o (.data);
build/OUTCODE/src/game/cheat_buttons.o (.data);
build/OUTCODE/src/game/unk_092890.o (.data);
build/OUTCODE/src/game/unk_092E50.o (.data);
build/OUTCODE/src/game/player.o (.data);
build/OUTCODE/src/game/player_2.o (.data);
build/OUTCODE/src/game/crc.o (.data);
build/OUTCODE/src/game/chrObjRandom.o (.data);
build/OUTCODE/src/game/unk_09B7A0.o (.data);
build/OUTCODE/src/game/explosions.o (.data);
build/OUTCODE/src/game/unk_0A1DA0.o (.data);
build/OUTCODE/src/game/watch.o (.data);
build/OUTCODE/src/game/textrelated.o (.data);
build/OUTCODE/src/game/stan.o (.data);
build/OUTCODE/src/game/unk_0B3200.o (.data);
build/OUTCODE/src/game/bg.o (.data);
build/OUTCODE/src/game/bg2.o (.data);
build/OUTCODE/src/game/fog.o (.data);
build/OUTCODE/src/game/lightfixture.o (.data);
build/OUTCODE/src/game/unk_0BC530.o (.data);
build/OUTCODE/src/game/ob.o (.data);
build/OUTCODE/src/game/dyn.o (.data);
build/OUTCODE/src/game/lvl.o (.data);
build/OUTCODE/src/game/ramromreplay.o (.data);
build/OUTCODE/src/game/unk_0C0A70.o (.data);
build/OUTCODE/src/game/mp_music.o (.data);
build/OUTCODE/src/game/lvl_text.o (.data);
build/OUTCODE/src/game/mp_watch.o (.data);
build/OUTCODE/src/game/radar.o (.data);
build/OUTCODE/src/game/mp_weapon.o (.data);
build/OUTCODE/src/game/image.o (.data);
build/OUTCODE/src/game/image_bank.o (.data);
build/OUTCODE/src/game/unk_0CC4C0.o (.data);
build/OUTCODE/src/game/decompress.o (.data);
build/OUTCODE/src/game/zlib.o (.data);
build/OUTCODE/src/game/rsp.o (.data);
build/OUTCODE/src/game/indy_comms.o (.data);
build/OUTCODE/src/game/indy_commands.o (.data);
build/OUTCODE/src/game/game_debug.o (.data);
build/OUTCODE/src/game/compiletime.o (.data);
build/OUTCODE/src/game/unk_0D1AC0.o (.data);
build/OUTCODE/src/game/viewport.o (.data);
build/OUTCODE/src/game/music_0D2720.o (.data);
#ifndef VERSION_EU
build/OUTCODE/src/game/spectrum.o (.data);
#endif
+133
View File
@@ -0,0 +1,133 @@
build/OUTCODE/src/game/initgamedata.o (.rodata);
build/OUTCODE/src/game/initweaponanigroups.o (.rodata);
build/OUTCODE/src/game/initactorpropstuff.o (.rodata);
build/OUTCODE/src/game/initnull_0009D0.o (.rodata);
build/OUTCODE/src/game/initunk_0009E0.o (.rodata);
build/OUTCODE/src/game/initanitable.o (.rodata);
build/OUTCODE/src/game/initplayergaitobject.o (.rodata);
build/OUTCODE/src/game/setguscale.o (.rodata);
build/OUTCODE/src/game/initnull_000BC0.o (.rodata);
build/OUTCODE/src/game/initimages.o (.rodata);
build/OUTCODE/src/game/initintromatrices.o (.rodata);
build/OUTCODE/src/game/initmenus.o (.rodata);
build/OUTCODE/src/game/initguards.o (.rodata);
build/OUTCODE/src/game/deb_loadallmodels.o (.rodata);
build/OUTCODE/src/game/initobjects.o (.rodata);
build/OUTCODE/src/game/prop.o (.rodata);
build/OUTCODE/src/game/objective.o (.rodata);
build/OUTCODE/src/game/ejectedcartridges.o (.rodata);
build/OUTCODE/src/game/initBondDATA.o (.rodata);
build/OUTCODE/src/game/initunk_005450.o (.rodata);
build/OUTCODE/src/game/initunk_005520.o (.rodata);
build/OUTCODE/src/game/bondview_r.o (.rodata);
build/OUTCODE/src/game/inititemslots.o (.rodata);
build/OUTCODE/src/game/initBondDATAdefaults.o (.rodata);
build/OUTCODE/src/game/initpathtablesomething.o (.rodata);
build/OUTCODE/src/game/initpathtablelinks.o (.rodata);
build/OUTCODE/src/game/initexplosioncasing.o (.rodata);
build/OUTCODE/src/game/alloc_window_pieces.o (.rodata);
build/OUTCODE/src/game/initunk_007290.o (.rodata);
build/OUTCODE/src/game/initcheattext.o (.rodata);
build/OUTCODE/src/game/initmttex.o (.rodata);
build/OUTCODE/src/game/cleanup_guard_data.o (.rodata);
build/OUTCODE/src/game/cleanup_object_sounds.o (.rodata);
build/OUTCODE/src/game/cleanup_alarms.o (.rodata);
build/OUTCODE/src/game/cleanup_objects.o (.rodata);
build/OUTCODE/src/game/cleanup_objectives.o (.rodata);
build/OUTCODE/src/game/cleanupSFXRelated.o (.rodata);
build/OUTCODE/src/game/playerstats_007770.o (.rodata);
build/OUTCODE/src/game/cleanexplosions.o (.rodata);
build/OUTCODE/src/game/cleanwindowpieces.o (.rodata);
build/OUTCODE/src/game/null_007970.o (.rodata);
build/OUTCODE/src/game/cleanplayersound.o (.rodata);
build/OUTCODE/src/game/title.o (.rodata);
build/OUTCODE/src/game/front.o (.rodata);
build/OUTCODE/src/game/unk_01B0E0.o (.rodata);
build/OUTCODE/src/game/unk_01B240.o (.rodata);
build/OUTCODE/src/game/unk_01BAE0.o (.rodata);
build/OUTCODE/src/game/blood_animation.o (.rodata);
build/OUTCODE/src/game/blood_decrypt.o (.rodata);
build/OUTCODE/src/game/file.o (.rodata);
build/OUTCODE/src/game/file2.o (.rodata);
build/OUTCODE/src/game/chr.o (.rodata);
build/OUTCODE/src/game/chr_b.o (.rodata);
build/OUTCODE/src/game/chrlv.o (.rodata);
build/OUTCODE/src/game/chrai.o (.rodata);
build/OUTCODE/src/game/chrprop.o (.rodata);
build/OUTCODE/src/game/chrobjhandler.o (.rodata);
build/OUTCODE/src/game/loadobjectmodel.o (.rodata);
build/OUTCODE/src/game/objective_status.o (.rodata);
build/OUTCODE/src/game/objective_status2.o (.rodata);
build/OUTCODE/src/game/math_sincos.o (.rodata);
build/OUTCODE/src/game/matrixmath.o (.rodata);
build/OUTCODE/src/game/math_unk_05A9E0.o (.rodata);
build/OUTCODE/src/game/math_atan2f.o (.rodata);
build/OUTCODE/src/game/math_asinacos.o (.rodata);
build/OUTCODE/src/game/math_asinfacosf.o (.rodata);
build/OUTCODE/src/game/matrixmath_misc.o (.rodata);
build/OUTCODE/src/game/quaternion.o (.rodata);
build/OUTCODE/src/game/math_floor.o (.rodata);
build/OUTCODE/src/game/math_ceil.o (.rodata);
build/OUTCODE/src/game/gun.o (.rodata);
build/OUTCODE/src/game/bondwalk2.o (.rodata);
build/OUTCODE/src/game/objecthandler.o (.rodata);
build/OUTCODE/src/game/objecthandler_1.o (.rodata);
build/OUTCODE/src/game/objecthandler_2.o (.rodata);
build/OUTCODE/src/game/othermodemicrocode.o (.rodata);
build/OUTCODE/src/game/bondview.o (.rodata);
build/OUTCODE/src/game/bondinv.o (.rodata);
build/OUTCODE/src/game/bondhead.o (.rodata);
build/OUTCODE/src/game/padhalllv.o (.rodata);
build/OUTCODE/src/game/debugmenu_08FE00.o (.rodata);
build/OUTCODE/src/game/debugmenu_handler.o (.rodata);
build/OUTCODE/src/game/unk_091080.o (.rodata);
build/OUTCODE/src/game/chraidata.o (.rodata);
build/OUTCODE/src/game/pobjdata.o (.rodata);
build/OUTCODE/src/game/gobjdata.o (.rodata);
build/OUTCODE/src/game/gobjdata2.o (.rodata);
build/OUTCODE/src/game/cobjdata.o (.rodata);
build/OUTCODE/src/game/cheat_buttons.o (.rodata);
build/OUTCODE/src/game/unk_092890.o (.rodata);
build/OUTCODE/src/game/unk_092E50.o (.rodata);
build/OUTCODE/src/game/player.o (.rodata);
build/OUTCODE/src/game/player_2.o (.rodata);
build/OUTCODE/src/game/crc.o (.rodata);
build/OUTCODE/src/game/chrObjRandom.o (.rodata);
build/OUTCODE/src/game/unk_09B7A0.o (.rodata);
build/OUTCODE/src/game/explosions.o (.rodata);
build/OUTCODE/src/game/unk_0A1DA0.o (.rodata);
build/OUTCODE/src/game/watch.o (.rodata);
build/OUTCODE/src/game/textrelated.o (.rodata);
build/OUTCODE/src/game/stan.o (.rodata);
build/OUTCODE/src/game/unk_0B3200.o (.rodata);
build/OUTCODE/src/game/bg.o (.rodata);
build/OUTCODE/src/game/bg2.o (.rodata);
build/OUTCODE/src/game/fog.o (.rodata);
build/OUTCODE/src/game/lightfixture.o (.rodata);
build/OUTCODE/src/game/unk_0BC530.o (.rodata);
build/OUTCODE/src/game/ob.o (.rodata);
build/OUTCODE/src/game/dyn.o (.rodata);
build/OUTCODE/src/game/lvl.o (.rodata);
build/OUTCODE/src/game/ramromreplay.o (.rodata);
build/OUTCODE/src/game/unk_0C0A70.o (.rodata);
build/OUTCODE/src/game/mp_music.o (.rodata);
build/OUTCODE/src/game/lvl_text.o (.rodata);
build/OUTCODE/src/game/mp_watch.o (.rodata);
build/OUTCODE/src/game/radar.o (.rodata);
build/OUTCODE/src/game/mp_weapon.o (.rodata);
build/OUTCODE/src/game/image.o (.rodata);
build/OUTCODE/src/game/image_bank.o (.rodata);
build/OUTCODE/src/game/unk_0CC4C0.o (.rodata);
build/OUTCODE/src/game/decompress.o (.rodata);
build/OUTCODE/src/game/zlib.o (.rodata);
build/OUTCODE/src/game/rsp.o (.rodata);
build/OUTCODE/src/game/indy_comms.o (.rodata);
build/OUTCODE/src/game/indy_commands.o (.rodata);
build/OUTCODE/src/game/game_debug.o (.rodata);
build/OUTCODE/src/game/compiletime.o (.rodata);
build/OUTCODE/src/game/unk_0D1AC0.o (.rodata);
build/OUTCODE/src/game/viewport.o (.rodata);
build/OUTCODE/src/game/music_0D2720.o (.rodata);
#ifndef VERSION_EU
build/OUTCODE/src/game/spectrum.o (.rodata);
#endif
+133
View File
@@ -0,0 +1,133 @@
build/OUTCODE/src/game/initgamedata.o (.text);
build/OUTCODE/src/game/initweaponanigroups.o (.text);
build/OUTCODE/src/game/initactorpropstuff.o (.text);
build/OUTCODE/src/game/initnull_0009D0.o (.text);
build/OUTCODE/src/game/initunk_0009E0.o (.text);
build/OUTCODE/src/game/initanitable.o (.text);
build/OUTCODE/src/game/initplayergaitobject.o (.text);
build/OUTCODE/src/game/setguscale.o (.text);
build/OUTCODE/src/game/initnull_000BC0.o (.text);
build/OUTCODE/src/game/initimages.o (.text);
build/OUTCODE/src/game/initintromatrices.o (.text);
build/OUTCODE/src/game/initmenus.o (.text);
build/OUTCODE/src/game/initguards.o (.text);
build/OUTCODE/src/game/deb_loadallmodels.o (.text);
build/OUTCODE/src/game/initobjects.o (.text);
build/OUTCODE/src/game/prop.o (.text);
build/OUTCODE/src/game/objective.o (.text);
build/OUTCODE/src/game/ejectedcartridges.o (.text);
build/OUTCODE/src/game/initBondDATA.o (.text);
build/OUTCODE/src/game/initunk_005450.o (.text);
build/OUTCODE/src/game/initunk_005520.o (.text);
build/OUTCODE/src/game/bondview_r.o (.text);
build/OUTCODE/src/game/inititemslots.o (.text);
build/OUTCODE/src/game/initBondDATAdefaults.o (.text);
build/OUTCODE/src/game/initpathtablesomething.o (.text);
build/OUTCODE/src/game/initpathtablelinks.o (.text);
build/OUTCODE/src/game/initexplosioncasing.o (.text);
build/OUTCODE/src/game/alloc_window_pieces.o (.text);
build/OUTCODE/src/game/initunk_007290.o (.text);
build/OUTCODE/src/game/initcheattext.o (.text);
build/OUTCODE/src/game/initmttex.o (.text);
build/OUTCODE/src/game/cleanup_guard_data.o (.text);
build/OUTCODE/src/game/cleanup_object_sounds.o (.text);
build/OUTCODE/src/game/cleanup_alarms.o (.text);
build/OUTCODE/src/game/cleanup_objects.o (.text);
build/OUTCODE/src/game/cleanup_objectives.o (.text);
build/OUTCODE/src/game/cleanupSFXRelated.o (.text);
build/OUTCODE/src/game/playerstats_007770.o (.text);
build/OUTCODE/src/game/cleanexplosions.o (.text);
build/OUTCODE/src/game/cleanwindowpieces.o (.text);
build/OUTCODE/src/game/null_007970.o (.text);
build/OUTCODE/src/game/cleanplayersound.o (.text);
build/OUTCODE/src/game/title.o (.text);
build/OUTCODE/src/game/front.o (.text);
build/OUTCODE/src/game/unk_01B0E0.o (.text);
build/OUTCODE/src/game/unk_01B240.o (.text);
build/OUTCODE/src/game/unk_01BAE0.o (.text);
build/OUTCODE/src/game/blood_animation.o (.text);
build/OUTCODE/src/game/blood_decrypt.o (.text);
build/OUTCODE/src/game/file.o (.text);
build/OUTCODE/src/game/file2.o (.text);
build/OUTCODE/src/game/chr.o (.text);
build/OUTCODE/src/game/chr_b.o (.text);
build/OUTCODE/src/game/chrlv.o (.text);
build/OUTCODE/src/game/chrai.o (.text);
build/OUTCODE/src/game/chrprop.o (.text);
build/OUTCODE/src/game/chrobjhandler.o (.text);
build/OUTCODE/src/game/loadobjectmodel.o (.text);
build/OUTCODE/src/game/objective_status.o (.text);
build/OUTCODE/src/game/objective_status2.o (.text);
build/OUTCODE/src/game/math_sincos.o (.text);
build/OUTCODE/src/game/matrixmath.o (.text);
build/OUTCODE/src/game/math_unk_05A9E0.o (.text);
build/OUTCODE/src/game/math_atan2f.o (.text);
build/OUTCODE/src/game/math_asinacos.o (.text);
build/OUTCODE/src/game/math_asinfacosf.o (.text);
build/OUTCODE/src/game/matrixmath_misc.o (.text);
build/OUTCODE/src/game/quaternion.o (.text);
build/OUTCODE/src/game/math_floor.o (.text);
build/OUTCODE/src/game/math_ceil.o (.text);
build/OUTCODE/src/game/gun.o (.text);
build/OUTCODE/src/game/bondwalk2.o (.text);
build/OUTCODE/src/game/objecthandler.o (.text);
build/OUTCODE/src/game/objecthandler_1.o (.text);
build/OUTCODE/src/game/objecthandler_2.o (.text);
build/OUTCODE/src/game/othermodemicrocode.o (.text);
build/OUTCODE/src/game/bondview.o (.text);
build/OUTCODE/src/game/bondinv.o (.text);
build/OUTCODE/src/game/bondhead.o (.text);
build/OUTCODE/src/game/padhalllv.o (.text);
build/OUTCODE/src/game/debugmenu_08FE00.o (.text);
build/OUTCODE/src/game/debugmenu_handler.o (.text);
build/OUTCODE/src/game/unk_091080.o (.text);
build/OUTCODE/src/game/chraidata.o (.text);
build/OUTCODE/src/game/pobjdata.o (.text);
build/OUTCODE/src/game/gobjdata.o (.text);
build/OUTCODE/src/game/gobjdata2.o (.text);
build/OUTCODE/src/game/cobjdata.o (.text);
build/OUTCODE/src/game/cheat_buttons.o (.text);
build/OUTCODE/src/game/unk_092890.o (.text);
build/OUTCODE/src/game/unk_092E50.o (.text);
build/OUTCODE/src/game/player.o (.text);
build/OUTCODE/src/game/player_2.o (.text);
build/OUTCODE/src/game/crc.o (.text);
build/OUTCODE/src/game/chrObjRandom.o (.text);
build/OUTCODE/src/game/unk_09B7A0.o (.text);
build/OUTCODE/src/game/explosions.o (.text);
build/OUTCODE/src/game/unk_0A1DA0.o (.text);
build/OUTCODE/src/game/watch.o (.text);
build/OUTCODE/src/game/textrelated.o (.text);
build/OUTCODE/src/game/stan.o (.text);
build/OUTCODE/src/game/unk_0B3200.o (.text);
build/OUTCODE/src/game/bg.o (.text);
build/OUTCODE/src/game/bg2.o (.text);
build/OUTCODE/src/game/fog.o (.text);
build/OUTCODE/src/game/lightfixture.o (.text);
build/OUTCODE/src/game/unk_0BC530.o (.text);
build/OUTCODE/src/game/ob.o (.text);
build/OUTCODE/src/game/dyn.o (.text);
build/OUTCODE/src/game/lvl.o (.text);
build/OUTCODE/src/game/ramromreplay.o (.text);
build/OUTCODE/src/game/unk_0C0A70.o (.text);
build/OUTCODE/src/game/mp_music.o (.text);
build/OUTCODE/src/game/lvl_text.o (.text);
build/OUTCODE/src/game/mp_watch.o (.text);
build/OUTCODE/src/game/radar.o (.text);
build/OUTCODE/src/game/mp_weapon.o (.text);
build/OUTCODE/src/game/image.o (.text);
build/OUTCODE/src/game/image_bank.o (.text);
build/OUTCODE/src/game/unk_0CC4C0.o (.text);
build/OUTCODE/src/game/decompress.o (.text);
build/OUTCODE/src/game/zlib.o (.text);
build/OUTCODE/src/game/rsp.o (.text);
build/OUTCODE/src/game/indy_comms.o (.text);
build/OUTCODE/src/game/indy_commands.o (.text);
build/OUTCODE/src/game/game_debug.o (.text);
build/OUTCODE/src/game/compiletime.o (.text);
build/OUTCODE/src/game/unk_0D1AC0.o (.text);
build/OUTCODE/src/game/viewport.o (.text);
build/OUTCODE/src/game/music_0D2720.o (.text);
#ifndef VERSION_EU
build/OUTCODE/src/game/spectrum.o (.text);
#endif
+2699
View File
File diff suppressed because it is too large. Load diff
+252
View File
@@ -0,0 +1,252 @@
build/OUTCODE/src/boot.o (.bss);
build/OUTCODE/src/init.o (.bss);
build/OUTCODE/src/sched.o (.bss);
build/OUTCODE/src/osMapTLB.o (.bss);
#ifdef VERSION_EU
build/OUTCODE/src/libultrare/io/vimgr.o (.bss);
build/OUTCODE/src/libultrare/io/pimgr.o (.bss);
#endif
build/OUTCODE/src/tlb_manage.o (.bss);
build/OUTCODE/src/tlb_random.o (.bss);
build/OUTCODE/src/tlb_resolve.o (.bss);
build/OUTCODE/src/audi.o (.bss);
build/OUTCODE/src/speed_graph.o (.bss);
build/OUTCODE/src/fr.o (.bss);
build/OUTCODE/src/deb.o (.bss);
build/OUTCODE/src/crash.o (.bss);
/*deb_print may be part of fault per pd beta (.bss);*/
/*build/OUTCODE/src/deb_print.o (.bss);*/
build/OUTCODE/src/getra.o (.bss);
build/OUTCODE/src/ramrom.o (.bss);
build/OUTCODE/src/boss.o (.bss);
build/OUTCODE/src/music.o (.bss);
build/OUTCODE/src/snd.o (.bss);
build/OUTCODE/src/memp.o (.bss);
build/OUTCODE/src/mema.o (.bss);
build/OUTCODE/src/random.o (.bss);
build/OUTCODE/src/token.o (.bss);
build/OUTCODE/src/str.o (.bss);
build/OUTCODE/src/sprintf.o (.bss);
build/OUTCODE/src/pi.o (.bss);
build/OUTCODE/src/vi.o (.bss);
build/OUTCODE/src/debugmenu.o (.bss);
build/OUTCODE/src/joy.o (.bss);
build/OUTCODE/src/motor.o (.bss);
#ifdef VERSION_EU
build/OUTCODE/src/libultrare/io/leointerrupt.o (.bss);
#endif
build/OUTCODE/src/rmon.o (.bss);
#ifdef ENABLE_USB
build/OUTCODE/src/usb.o (.bss);
#endif
/*build/OUTCODE/src/libultra/osPiRawStartDma.o (.bss);*/
build/OUTCODE/src/libultra/io/pirawdma.o (.bss);
build/OUTCODE/src/libultra/io/pigetstat.o (.bss);
build/OUTCODE/src/libultrare/os/initialize.o (.bss);
build/OUTCODE/src/libultra/os/writebackdcacheall.o (.bss);
build/OUTCODE/src/libultra/os/invalicache.o (.bss);
build/OUTCODE/src/libultra/os/unmaptlb.o (.bss);
build/OUTCODE/src/libultra/os/getfpccsr.o (.bss);
build/OUTCODE/src/libultra/os/setfpccsr.o (.bss);
build/OUTCODE/src/libultra/os/createthread.o (.bss);
build/OUTCODE/src/libultra/os/startthread.o (.bss);
build/OUTCODE/src/libultra/os/createmesgqueue.o (.bss);
build/OUTCODE/src/libultra/os/parameters.o (.bss);
build/OUTCODE/src/libultra/os/stopthread.o (.bss);
build/OUTCODE/src/libultra/os/setthreadpri.o (.bss);
build/OUTCODE/src/libultra/os/getcount.o (.bss);
#ifndef VERSION_EU
build/OUTCODE/src/libultrare/io/vimgr.o (.bss);
#endif
build/OUTCODE/src/libultrare/io/vitbl.o (.bss); /*edited*/
build/OUTCODE/src/libultra/os/seteventmesg.o (.bss);
build/OUTCODE/src/libultra/io/visetevent.o (.bss);
build/OUTCODE/src/libultra/os/setintmask.o (.bss);
build/OUTCODE/src/libultra/os/recvmesg.o (.bss);
build/OUTCODE/src/libultra/os/sendmesg.o (.bss);
build/OUTCODE/src/libultra/io/visetmode.o (.bss);
build/OUTCODE/src/libultra/io/visetxscale.o (.bss);
build/OUTCODE/src/libultra/io/visetyscale.o (.bss);
build/OUTCODE/src/libultra/io/virepeatline.o (.bss);
build/OUTCODE/src/libultra/io/viblack.o (.bss);
build/OUTCODE/src/libultra/io/sptaskyielded.o (.bss);
build/OUTCODE/src/libultra/io/dpctr.o (.bss);
build/OUTCODE/src/libultra/io/vigetcurrframebuf.o (.bss);
build/OUTCODE/src/libultra/io/vigetnextframebuf.o (.bss);
build/OUTCODE/src/libultra/io/viswapbuf.o (.bss);
build/OUTCODE/src/libultra/io/dpsetstat.o (.bss);
build/OUTCODE/src/libultrare/io/sptask.o (.bss);
build/OUTCODE/src/libultra/io/dpsetnextbuf.o (.bss);
build/OUTCODE/src/libultra/io/sptaskyield.o (.bss);
#ifdef VERSION_EU
build/OUTCODE/src/libultra/os/timerintr.o (.bss);
build/OUTCODE/src/libultra/os/getthreadpri.o (.bss);
build/OUTCODE/src/libultra/os/interrupt.o (.bss);
build/OUTCODE/src/libultrare/io/vi.o (.bss);
build/OUTCODE/src/libultra/io/vigetcurrcontext.o (.bss);
build/OUTCODE/src/libultra/io/viswapcontext.o (.bss);
build/OUTCODE/src/libultra/io/piacs.o (.bss);
build/OUTCODE/src/libultrare/io/epirawdma.o (.bss);
build/OUTCODE/src/libultrare/io/devmgr.o (.bss);
#endif
build/OUTCODE/src/libultra/os/gettlbhi.o (.bss);
build/OUTCODE/src/libultra/os/virtualtophysical.o (.bss);
build/OUTCODE/src/libultra/io/aisetfreq.o (.bss);
build/OUTCODE/src/libultra/audio/sl.o (.bss);
build/OUTCODE/src/libultra/audio/heapalloc.o (.bss);
build/OUTCODE/src/libultra/os/gettime.o (.bss);
build/OUTCODE/src/libultra/libc/ll.o (.bss); /*edited*/
build/OUTCODE/src/libultrare/io/aisetnextbuf.o (.bss);
build/OUTCODE/src/libultra/io/aigetlen.o (.bss);
build/OUTCODE/src/libultra/audio/synthesizer.o (.bss);
build/OUTCODE/src/libultra/io/pidma.o (.bss);
build/OUTCODE/src/libultra/io/visetspecial.o (.bss);
build/OUTCODE/src/libultra/libc/bcopy.o (.bss);
build/OUTCODE/src/libultra/gu/perspective.o (.bss);
build/OUTCODE/src/libultra/gu/mtxutil.o (.bss);
build/OUTCODE/src/libultra/os/getcurrfaultthread.o (.bss);
build/OUTCODE/src/libultra/os/exception.o (.bss); /*edited*/
build/OUTCODE/src/libultra/os/thread.o (.bss);
build/OUTCODE/src/libultra/os/yieldthread.o (.bss);
build/OUTCODE/src/libultra/os/invaldcache.o (.bss);
build/OUTCODE/src/libultra/os/writebackdcache.o (.bss);
build/OUTCODE/src/libultra/os/settimer.o (.bss);
build/OUTCODE/src/libultra/audio/heapinit.o (.bss);
build/OUTCODE/src/libultra/audio/bnkf.o (.bss);
build/OUTCODE/src/libultra/audio/csplayer.o (.bss);
build/OUTCODE/src/libultra/audio/seqpsetbank.o (.bss);
build/OUTCODE/src/libultra/audio/cspgetstate.o (.bss);
build/OUTCODE/src/libultra/audio/cseq.o (.bss);
build/OUTCODE/src/libultra/audio/cspsetseq.o (.bss);
build/OUTCODE/src/libultra/audio/cspplay.o (.bss);
build/OUTCODE/src/libultra/audio/cspstop.o (.bss);
build/OUTCODE/src/libultra/audio/cspsetvol.o (.bss);
build/OUTCODE/src/libultra/audio/event.o (.bss);
build/OUTCODE/src/libultra/audio/synaddplayer.o (.bss);
build/OUTCODE/src/libultra/audio/synallocvoice.o (.bss);
build/OUTCODE/src/libultra/audio/synsetvol.o (.bss);
build/OUTCODE/src/libultra/audio/synstartvoice.o (.bss);
build/OUTCODE/src/libultra/audio/synsetpan.o (.bss);
build/OUTCODE/src/libultra/audio/synsetpitch.o (.bss);
build/OUTCODE/src/libultra/audio/synsetfxmix.o (.bss);
build/OUTCODE/src/libultra/audio/synstopvoice.o (.bss);
build/OUTCODE/src/libultra/audio/synfreevoice.o (.bss);
build/OUTCODE/src/libultra/audio/cents2ratio.o (.bss);
build/OUTCODE/src/libultra/io/piread.o (.bss);
#ifdef ENABLE_USB
build/OUTCODE/src/libultra/io/piwrite.o (.bss);
#endif
build/OUTCODE/src/libultra/libc/string.o (.bss);
build/OUTCODE/src/libultrare/libc/xprintf.o (.bss);
#ifndef VERSION_EU
build/OUTCODE/src/libultrare/io/pimgr.o (.bss);
#endif
build/OUTCODE/src/libultrare/io/pfsinit.o (.bss);
build/OUTCODE/src/libultrare/io/controller.o (.bss);
build/OUTCODE/src/libultra/io/contquery.o (.bss);
build/OUTCODE/src/libultrare/io/contreaddata.o (.bss);
build/OUTCODE/src/libultrare/io/conteepprobe.o (.bss);
build/OUTCODE/src/libultrare/io/conteepread.o (.bss);
build/OUTCODE/src/libultrare/io/conteepwrite.o (.bss);
build/OUTCODE/src/libultrare/io/conteeplongread.o (.bss);
build/OUTCODE/src/libultrare/io/conteeplongwrite.o (.bss);
build/OUTCODE/src/libultrare/io/pfsisplug.o (.bss);
build/OUTCODE/src/libultra/io/siacs.o (.bss);
build/OUTCODE/src/libultra/io/sirawdma.o (.bss);
build/OUTCODE/src/libultra/io/crc.o (.bss);
build/OUTCODE/src/libultrare/io/contramwrite.o (.bss);
build/OUTCODE/src/libultrare/io/contramread.o (.bss);
build/OUTCODE/src/libultra/gu/align.o (.bss);
build/OUTCODE/src/libultra/gu/ortho.o (.bss);
build/OUTCODE/src/libultra/gu/coss.o (.bss);
build/OUTCODE/src/libultra/gu/sins.o (.bss);
build/OUTCODE/src/libultra/gu/translate.o (.bss);
build/OUTCODE/src/libultra/libc/bcmp.o (.bss);
build/OUTCODE/src/libultra/gu/scale.o (.bss);
build/OUTCODE/src/libultra/gu/lookatref.o (.bss);
build/OUTCODE/src/libultra/gu/lookat.o (.bss);
build/OUTCODE/src/libultra/gu/rotate.o (.bss);
build/OUTCODE/src/libultra/libc/llcvt.o (.bss); /*edited*/
build/OUTCODE/src/libultra/os/setsr.o (.bss);
build/OUTCODE/src/libultra/os/getsr.o (.bss);
build/OUTCODE/src/libultra/io/sirawread.o (.bss);
build/OUTCODE/src/libultra/io/sirawwrite.o (.bss);
build/OUTCODE/src/libultra/io/pirawread.o (.bss);
#ifdef ENABLE_USB
build/OUTCODE/src/libultra/io/pirawwrite.o (.bss);
#endif
build/OUTCODE/src/libultra/libc/bzero.o (.bss);
build/OUTCODE/src/libultra/os/sethwinterrupt.o (.bss);
#ifndef VERSION_EU
build/OUTCODE/src/libultrare/io/leointerrupt.o (.bss);
build/OUTCODE/src/libultra/os/interrupt.o (.bss);
build/OUTCODE/src/libultra/os/timerintr.o (.bss);
#endif
build/OUTCODE/src/libultra/os/kdebugserver.o (.bss);
#ifndef VERSION_EU
build/OUTCODE/src/libultra/os/getthreadpri.o (.bss);
build/OUTCODE/src/libultrare/io/vi.o (.bss); /*edited*/
build/OUTCODE/src/libultra/io/vigetcurrcontext.o (.bss);
build/OUTCODE/src/libultra/io/viswapcontext.o (.bss);
#endif
build/OUTCODE/src/libultra/io/spgetstat.o (.bss);
build/OUTCODE/src/libultra/io/spsetstat.o (.bss);
build/OUTCODE/src/libultra/io/spsetpc.o (.bss);
build/OUTCODE/src/libultra/io/sprawdma.o (.bss);
build/OUTCODE/src/libultra/io/sp.o (.bss);
build/OUTCODE/src/libultra/io/dp.o (.bss);
#ifdef VERSION_EU
build/OUTCODE/src/libultra/os/setcompare.o (.bss);
build/OUTCODE/src/libultra/os/resetglobalintmask.o (.bss);
build/OUTCODE/src/libultrare/io/epirawwrite.o (.bss);
#endif
build/OUTCODE/src/libultra/os/probetlb.o (.bss);
build/OUTCODE/src/libultra/audio/syndelete.o (.bss);
build/OUTCODE/src/libultra/io/ai.o (.bss);
build/OUTCODE/src/libultrare/audio/drvrNew.o (.bss);
build/OUTCODE/src/libultra/audio/synallocfx.o (.bss);
build/OUTCODE/src/libultra/audio/mainbus.o (.bss);
build/OUTCODE/src/libultra/audio/load.o (.bss);
build/OUTCODE/src/libultra/audio/resample.o (.bss);
build/OUTCODE/src/libultrare/audio/env.o (.bss); /*edited*/
build/OUTCODE/src/libultra/audio/auxbus.o (.bss);
build/OUTCODE/src/libultra/audio/save.o (.bss);
build/OUTCODE/src/libultra/os/jammesg.o (.bss);
build/OUTCODE/src/libultra/io/pigetcmdq.o (.bss);
build/OUTCODE/src/libultra/gu/cosf.o (.bss); /*edited*/
build/OUTCODE/src/libultra/gu/sinf.o (.bss); /*edited*/
build/OUTCODE/src/libultrare/os/destroythread.o (.bss);
build/OUTCODE/src/libultra/audio/seqplayer.o (.bss);
build/OUTCODE/src/libultra/audio/synstartvoiceparam.o (.bss);
build/OUTCODE/src/libultra/audio/copy.o (.bss);
#ifndef VERSION_EU
build/OUTCODE/src/libultra/io/piacs.o (.bss);
#endif
build/OUTCODE/src/libultra/libc/xlitob.o (.bss);
build/OUTCODE/src/libultra/libc/xldtob.o (.bss);
#ifndef VERSION_EU
build/OUTCODE/src/libultrare/io/epirawdma.o (.bss);
build/OUTCODE/src/libultrare/io/devmgr.o (.bss);
#endif
build/OUTCODE/src/libultra/io/contpfs.o (.bss);
build/OUTCODE/src/libultra/io/si.o (.bss);
build/OUTCODE/src/libultra/gu/normalize.o (.bss);
build/OUTCODE/src/libultra/gu/sqrtf.o (.bss);
#ifndef VERSION_EU
build/OUTCODE/src/libultrare/io/leodiskinit.o (.bss);
build/OUTCODE/src/libultra/os/setcompare.o (.bss);
#endif
build/OUTCODE/src/libultra/audio/filter.o (.bss);
build/OUTCODE/src/libultrare/audio/reverb.o (.bss); /*edited*/
build/OUTCODE/src/libultra/gu/libm_vals.o (.bss); /*edited*/
build/OUTCODE/src/libultra/audio/seq.o (.bss);
build/OUTCODE/src/libultra/audio/synsetpriority.o (.bss);
build/OUTCODE/src/libultra/libc/ldiv.o (.bss);
#ifndef VERSION_EU
build/OUTCODE/src/libultra/os/resetglobalintmask.o (.bss);
build/OUTCODE/src/libultrare/io/epirawwrite.o (.bss);
#endif
build/OUTCODE/src/libultra/io/vimodentsclan1.o (.bss);
build/OUTCODE/src/libultrare/io/vimodepallan1.o (.bss);
build/OUTCODE/src/libultrare/ultra80069080.o (.bss); /*edited*/
/*build/OUTCODE/src/libultra/libultra.a:libultra.o (.bss);*/
+256
View File
@@ -0,0 +1,256 @@
build/OUTCODE/src/boot.o (.data);
build/OUTCODE/src/init.o (.data);
build/OUTCODE/src/sched.o (.data);
build/OUTCODE/src/osMapTLB.o (.data);
#ifdef VERSION_EU
build/OUTCODE/src/libultrare/io/vimgr.o (.data);
build/OUTCODE/src/libultrare/io/pimgr.o (.data);
#endif
build/OUTCODE/src/tlb_manage.o (.data);
build/OUTCODE/src/tlb_random.o (.data);
build/OUTCODE/src/tlb_resolve.o (.data);
build/OUTCODE/src/tlb_hardwire.o (.data);
build/OUTCODE/src/audi.o (.data);
build/OUTCODE/src/speed_graph.o (.data);
build/OUTCODE/src/fr.o (.data);
build/OUTCODE/src/deb.o (.data);
build/OUTCODE/src/crash.o (.data);
/*deb_print may be part of fault per pd beta (.data);*/
/*build/OUTCODE/src/deb_print.o (.data);*/
build/OUTCODE/src/getra.o (.data);
build/OUTCODE/src/ramrom.o (.data);
build/OUTCODE/src/boss.o (.data);
build/OUTCODE/src/music.o (.data);
build/OUTCODE/src/snd.o (.data);
build/OUTCODE/src/memp.o (.data);
build/OUTCODE/src/mema.o (.data);
build/OUTCODE/src/random.o (.data);
build/OUTCODE/src/token.o (.data);
build/OUTCODE/src/str.o (.data);
build/OUTCODE/src/sprintf.o (.data);
build/OUTCODE/src/pi.o (.data);
build/OUTCODE/src/vi.o (.data);
build/OUTCODE/src/debugmenu.o (.data);
build/OUTCODE/src/joy.o (.data);
build/OUTCODE/src/motor.o (.data);
#ifdef VERSION_EU
build/OUTCODE/src/libultrare/io/leointerrupt.o (.data);
#endif
build/OUTCODE/src/rmon.o (.data);
#ifdef ENABLE_USB
build/OUTCODE/src/usb.o (.data);
#endif
build/OUTCODE/src/libultra/io/pirawdma.o (.data);
build/OUTCODE/src/libultra/io/pigetstat.o (.data);
build/OUTCODE/src/libultrare/os/initialize.o (.data);
build/OUTCODE/src/libultra/os/writebackdcacheall.o (.data);
build/OUTCODE/src/libultra/os/invalicache.o (.data);
build/OUTCODE/src/libultra/os/unmaptlb.o (.data);
build/OUTCODE/src/libultra/os/getfpccsr.o (.data);
build/OUTCODE/src/libultra/os/setfpccsr.o (.data);
build/OUTCODE/src/libultra/os/createthread.o (.data);
build/OUTCODE/src/libultra/os/startthread.o (.data);
build/OUTCODE/src/libultra/os/createmesgqueue.o (.data);
build/OUTCODE/src/libultra/os/parameters.o (.data);
build/OUTCODE/src/libultra/os/stopthread.o (.data);
build/OUTCODE/src/libultra/os/setthreadpri.o (.data);
build/OUTCODE/src/libultra/os/getcount.o (.data);
#ifndef VERSION_EU
build/OUTCODE/src/libultrare/io/vimgr.o (.data);
#endif
build/OUTCODE/src/libultrare/io/vitbl.o (.data); /*edited*/
build/OUTCODE/src/libultra/os/seteventmesg.o (.data);
build/OUTCODE/src/libultra/io/visetevent.o (.data);
build/OUTCODE/src/libultra/os/setintmask.o (.data);
build/OUTCODE/src/libultra/os/recvmesg.o (.data);
build/OUTCODE/src/libultra/os/sendmesg.o (.data);
build/OUTCODE/src/libultra/io/visetmode.o (.data);
build/OUTCODE/src/libultra/io/visetxscale.o (.data);
build/OUTCODE/src/libultra/io/visetyscale.o (.data);
build/OUTCODE/src/libultra/io/virepeatline.o (.data);
build/OUTCODE/src/libultra/io/viblack.o (.data);
build/OUTCODE/src/libultra/io/sptaskyielded.o (.data);
build/OUTCODE/src/libultra/io/dpctr.o (.data);
build/OUTCODE/src/libultra/io/vigetcurrframebuf.o (.data);
build/OUTCODE/src/libultra/io/vigetnextframebuf.o (.data);
build/OUTCODE/src/libultra/io/viswapbuf.o (.data);
build/OUTCODE/src/libultra/io/dpsetstat.o (.data);
build/OUTCODE/src/libultrare/io/sptask.o (.data);
build/OUTCODE/src/libultra/io/dpsetnextbuf.o (.data);
build/OUTCODE/src/libultra/io/sptaskyield.o (.data);
#ifdef VERSION_EU
build/OUTCODE/src/libultra/os/timerintr.o (.data);
build/OUTCODE/src/libultra/os/getthreadpri.o (.data);
build/OUTCODE/src/libultra/os/interrupt.o (.data);
build/OUTCODE/src/libultrare/io/vi.o (.data);
build/OUTCODE/src/libultra/io/vigetcurrcontext.o (.data);
build/OUTCODE/src/libultra/io/viswapcontext.o (.data);
build/OUTCODE/src/libultra/io/piacs.o (.data);
build/OUTCODE/src/libultrare/io/epirawdma.o (.data);
build/OUTCODE/src/libultrare/io/devmgr.o (.data);
#endif
build/OUTCODE/src/libultra/os/gettlbhi.o (.data);
build/OUTCODE/src/libultra/os/virtualtophysical.o (.data);
build/OUTCODE/src/libultra/io/aisetfreq.o (.data);
build/OUTCODE/src/libultra/audio/sl.o (.data);
build/OUTCODE/src/libultra/audio/heapalloc.o (.data);
build/OUTCODE/src/libultra/os/gettime.o (.data);
build/OUTCODE/src/libultra/libc/ll.o (.data); /*edited*/
build/OUTCODE/src/libultrare/io/aisetnextbuf.o (.data);
build/OUTCODE/src/libultra/io/aigetlen.o (.data);
build/OUTCODE/src/libultra/audio/synthesizer.o (.data);
build/OUTCODE/src/libultra/io/pidma.o (.data);
build/OUTCODE/src/libultra/io/visetspecial.o (.data);
build/OUTCODE/src/libultra/libc/bcopy.o (.data);
build/OUTCODE/src/libultra/gu/perspective.o (.data);
build/OUTCODE/src/libultra/gu/mtxutil.o (.data);
build/OUTCODE/src/libultra/os/getcurrfaultthread.o (.data);
build/OUTCODE/src/libultra/os/exception.o (.data); /*edited*/
build/OUTCODE/src/libultra/os/thread.o (.data);
build/OUTCODE/src/libultra/os/yieldthread.o (.data);
build/OUTCODE/src/libultra/os/invaldcache.o (.data);
build/OUTCODE/src/libultra/os/writebackdcache.o (.data);
build/OUTCODE/src/libultra/os/settimer.o (.data);
build/OUTCODE/src/libultra/audio/heapinit.o (.data);
build/OUTCODE/src/libultra/audio/bnkf.o (.data);
build/OUTCODE/src/libultra/audio/csplayer.o (.data);
build/OUTCODE/src/libultra/audio/seqpsetbank.o (.data);
build/OUTCODE/src/libultra/audio/cspgetstate.o (.data);
build/OUTCODE/src/libultra/audio/cseq.o (.data);
build/OUTCODE/src/libultra/audio/cspsetseq.o (.data);
build/OUTCODE/src/libultra/audio/cspplay.o (.data);
build/OUTCODE/src/libultra/audio/cspstop.o (.data);
build/OUTCODE/src/libultra/audio/cspsetvol.o (.data);
build/OUTCODE/src/libultra/audio/event.o (.data);
build/OUTCODE/src/libultra/audio/synaddplayer.o (.data);
build/OUTCODE/src/libultra/audio/synallocvoice.o (.data);
build/OUTCODE/src/libultra/audio/synsetvol.o (.data);
build/OUTCODE/src/libultra/audio/synstartvoice.o (.data);
build/OUTCODE/src/libultra/audio/synsetpan.o (.data);
build/OUTCODE/src/libultra/audio/synsetpitch.o (.data);
build/OUTCODE/src/libultra/audio/synsetfxmix.o (.data);
build/OUTCODE/src/libultra/audio/synstopvoice.o (.data);
build/OUTCODE/src/libultra/audio/synfreevoice.o (.data);
build/OUTCODE/src/libultra/audio/cents2ratio.o (.data);
build/OUTCODE/src/libultra/io/piread.o (.data);
#ifdef ENABLE_USB
build/OUTCODE/src/libultra/io/piwrite.o (.data);
#endif
build/OUTCODE/src/libultra/libc/string.o (.data);
build/OUTCODE/src/libultrare/libc/xprintf.o (.data);
#ifndef VERSION_EU
build/OUTCODE/src/libultrare/io/pimgr.o (.data);
#endif
build/OUTCODE/src/libultrare/io/pfsinit.o (.data);
build/OUTCODE/src/libultrare/io/controller.o (.data);
build/OUTCODE/src/libultra/io/contquery.o (.data);
build/OUTCODE/src/libultrare/io/contreaddata.o (.data);
build/OUTCODE/src/libultrare/io/conteepprobe.o (.data);
build/OUTCODE/src/libultrare/io/conteepread.o (.data);
build/OUTCODE/src/libultrare/io/conteepwrite.o (.data);
build/OUTCODE/src/libultrare/io/conteeplongread.o (.data);
build/OUTCODE/src/libultrare/io/conteeplongwrite.o (.data);
build/OUTCODE/src/libultrare/io/pfsisplug.o (.data);
build/OUTCODE/src/libultra/io/siacs.o (.data);
build/OUTCODE/src/libultra/io/sirawdma.o (.data);
build/OUTCODE/src/libultra/io/crc.o (.data);
build/OUTCODE/src/libultrare/io/contramwrite.o (.data);
build/OUTCODE/src/libultrare/io/contramread.o (.data);
build/OUTCODE/src/libultra/gu/align.o (.data);
build/OUTCODE/src/libultra/gu/ortho.o (.data);
build/OUTCODE/src/libultra/gu/coss.o (.data);
build/OUTCODE/src/libultra/gu/sins.o (.data);
#ifdef VERSION_EU
build/OUTCODE/src/libultra/io/vimodentsclan1.o (.data);
build/OUTCODE/src/libultrare/io/vimodepallan1.o (.data);
#endif
build/OUTCODE/src/libultra/gu/translate.o (.data);
build/OUTCODE/src/libultra/libc/bcmp.o (.data);
build/OUTCODE/src/libultra/gu/scale.o (.data);
build/OUTCODE/src/libultra/gu/lookatref.o (.data);
build/OUTCODE/src/libultra/gu/lookat.o (.data);
build/OUTCODE/src/libultra/gu/rotate.o (.data);
build/OUTCODE/src/libultra/libc/llcvt.o (.data); /*edited*/
build/OUTCODE/src/libultra/os/setsr.o (.data);
build/OUTCODE/src/libultra/os/getsr.o (.data);
build/OUTCODE/src/libultra/io/sirawread.o (.data);
build/OUTCODE/src/libultra/io/sirawwrite.o (.data);
build/OUTCODE/src/libultra/io/pirawread.o (.data);
#ifdef ENABLE_USB
build/OUTCODE/src/libultra/io/pirawwrite.o (.data);
#endif
build/OUTCODE/src/libultra/libc/bzero.o (.data);
build/OUTCODE/src/libultra/os/sethwinterrupt.o (.data);
#ifndef VERSION_EU
build/OUTCODE/src/libultrare/io/leointerrupt.o (.data);
build/OUTCODE/src/libultra/os/interrupt.o (.data);
build/OUTCODE/src/libultra/os/timerintr.o (.data);
#endif
build/OUTCODE/src/libultra/os/kdebugserver.o (.data);
#ifndef VERSION_EU
build/OUTCODE/src/libultra/os/getthreadpri.o (.data);
build/OUTCODE/src/libultrare/io/vi.o (.data); /*edited*/
build/OUTCODE/src/libultra/io/vigetcurrcontext.o (.data);
build/OUTCODE/src/libultra/io/viswapcontext.o (.data);
#endif
build/OUTCODE/src/libultra/io/spgetstat.o (.data);
build/OUTCODE/src/libultra/io/spsetstat.o (.data);
build/OUTCODE/src/libultra/io/spsetpc.o (.data);
build/OUTCODE/src/libultra/io/sprawdma.o (.data);
build/OUTCODE/src/libultra/io/sp.o (.data);
build/OUTCODE/src/libultra/io/dp.o (.data);
#ifdef VERSION_EU
build/OUTCODE/src/libultra/os/setcompare.o (.data);
build/OUTCODE/src/libultra/os/resetglobalintmask.o (.data);
build/OUTCODE/src/libultrare/io/epirawwrite.o (.data);
#endif
build/OUTCODE/src/libultra/os/probetlb.o (.data);
build/OUTCODE/src/libultra/audio/syndelete.o (.data);
build/OUTCODE/src/libultra/io/ai.o (.data);
build/OUTCODE/src/libultrare/audio/drvrNew.o (.data);
build/OUTCODE/src/libultra/audio/synallocfx.o (.data);
build/OUTCODE/src/libultra/audio/mainbus.o (.data);
build/OUTCODE/src/libultra/audio/load.o (.data);
build/OUTCODE/src/libultra/audio/resample.o (.data);
build/OUTCODE/src/libultrare/audio/env.o (.data); /*edited*/
build/OUTCODE/src/libultra/audio/auxbus.o (.data);
build/OUTCODE/src/libultra/audio/save.o (.data);
build/OUTCODE/src/libultra/os/jammesg.o (.data);
build/OUTCODE/src/libultra/io/pigetcmdq.o (.data);
build/OUTCODE/src/libultra/gu/cosf.o (.data); /*edited*/
build/OUTCODE/src/libultra/gu/sinf.o (.data); /*edited*/
build/OUTCODE/src/libultrare/os/destroythread.o (.data);
build/OUTCODE/src/libultra/audio/seqplayer.o (.data);
build/OUTCODE/src/libultra/audio/synstartvoiceparam.o (.data);
build/OUTCODE/src/libultra/audio/copy.o (.data);
#ifndef VERSION_EU
build/OUTCODE/src/libultra/io/piacs.o (.data);
#endif
build/OUTCODE/src/libultra/libc/xlitob.o (.data);
build/OUTCODE/src/libultra/libc/xldtob.o (.data);
#ifndef VERSION_EU
build/OUTCODE/src/libultrare/io/epirawdma.o (.data);
build/OUTCODE/src/libultrare/io/devmgr.o (.data);
#endif
build/OUTCODE/src/libultra/io/contpfs.o (.data);
build/OUTCODE/src/libultra/io/si.o (.data);
build/OUTCODE/src/libultra/gu/normalize.o (.data);
build/OUTCODE/src/libultra/gu/sqrtf.o (.data);
#ifndef VERSION_EU
build/OUTCODE/src/libultrare/io/leodiskinit.o (.data);
build/OUTCODE/src/libultra/os/setcompare.o (.data);
#endif
build/OUTCODE/src/libultra/audio/filter.o (.data);
build/OUTCODE/src/libultrare/audio/reverb.o (.data); /*edited*/
build/OUTCODE/src/libultra/gu/libm_vals.o (.data); /*edited*/
build/OUTCODE/src/libultra/audio/seq.o (.data);
build/OUTCODE/src/libultra/audio/synsetpriority.o (.data);
build/OUTCODE/src/libultra/libc/ldiv.o (.data);
#ifndef VERSION_EU
build/OUTCODE/src/libultra/os/resetglobalintmask.o (.data);
build/OUTCODE/src/libultrare/io/epirawwrite.o (.data);
build/OUTCODE/src/libultra/io/vimodentsclan1.o (.data);
build/OUTCODE/src/libultrare/io/vimodepallan1.o (.data);
#endif
build/OUTCODE/src/libultrare/ultra80069080.o (.data); /*edited*/
/*build/OUTCODE/src/libultra/libultra.a:libultra.o (.data);*/
+254
View File
@@ -0,0 +1,254 @@
build/OUTCODE/src/aspboot.o (.rodata);
build/OUTCODE/src/boot.o (.rodata);
build/OUTCODE/src/init.o (.rodata);
build/OUTCODE/src/sched.o (.rodata);
build/OUTCODE/src/osMapTLB.o (.rodata);
#ifdef VERSION_EU
build/OUTCODE/src/libultrare/io/vimgr.o (.rodata);
build/OUTCODE/src/libultrare/io/pimgr.o (.rodata);
#endif
build/OUTCODE/src/tlb_manage.o (.rodata);
build/OUTCODE/src/tlb_random.o (.rodata);
build/OUTCODE/src/tlb_resolve.o (.rodata);
build/OUTCODE/src/tlb_hardwire.o (.rodata);
build/OUTCODE/src/audi.o (.rodata);
build/OUTCODE/src/speed_graph.o (.rodata);
build/OUTCODE/src/fr.o (.rodata);
build/OUTCODE/src/deb.o (.rodata);
build/OUTCODE/src/crash.o (.rodata);
/*deb_print may be part of fault per pd beta (.rodata);*/
/*build/OUTCODE/src/deb_print.o (.rodata);*/
build/OUTCODE/src/getra.o (.rodata);
build/OUTCODE/src/ramrom.o (.rodata);
build/OUTCODE/src/boss.o (.rodata);
build/OUTCODE/src/music.o (.rodata);
build/OUTCODE/src/snd.o (.rodata);
build/OUTCODE/src/memp.o (.rodata);
build/OUTCODE/src/mema.o (.rodata);
build/OUTCODE/src/random.o (.rodata);
build/OUTCODE/src/token.o (.rodata);
build/OUTCODE/src/str.o (.rodata);
build/OUTCODE/src/sprintf.o (.rodata);
build/OUTCODE/src/pi.o (.rodata);
build/OUTCODE/src/vi.o (.rodata);
build/OUTCODE/src/debugmenu.o (.rodata);
build/OUTCODE/src/joy.o (.rodata);
build/OUTCODE/src/motor.o (.rodata);
#ifdef VERSION_EU
build/OUTCODE/src/libultrare/io/leointerrupt.o (.rodata);
#endif
build/OUTCODE/src/rmon.o (.rodata);
#ifdef ENABLE_USB
build/OUTCODE/src/usb.o (.rodata);
#endif
/*build/OUTCODE/src/libultra/osPiRawStartDma.o (.rodata);*/
build/OUTCODE/src/libultra/io/pirawdma.o (.rodata);
build/OUTCODE/src/libultra/io/pigetstat.o (.rodata);
build/OUTCODE/src/libultrare/os/initialize.o (.rodata);
build/OUTCODE/src/libultra/os/writebackdcacheall.o (.rodata);
build/OUTCODE/src/libultra/os/invalicache.o (.rodata);
build/OUTCODE/src/libultra/os/unmaptlb.o (.rodata);
build/OUTCODE/src/libultra/os/getfpccsr.o (.rodata);
build/OUTCODE/src/libultra/os/setfpccsr.o (.rodata);
build/OUTCODE/src/libultra/os/createthread.o (.rodata);
build/OUTCODE/src/libultra/os/startthread.o (.rodata);
build/OUTCODE/src/libultra/os/createmesgqueue.o (.rodata);
build/OUTCODE/src/libultra/os/parameters.o (.rodata);
build/OUTCODE/src/libultra/os/stopthread.o (.rodata);
build/OUTCODE/src/libultra/os/setthreadpri.o (.rodata);
build/OUTCODE/src/libultra/os/getcount.o (.rodata);
#ifndef VERSION_EU
build/OUTCODE/src/libultrare/io/vimgr.o (.rodata);
#endif
build/OUTCODE/src/libultrare/io/vitbl.o (.rodata); /*edited*/
build/OUTCODE/src/libultra/os/seteventmesg.o (.rodata);
build/OUTCODE/src/libultra/io/visetevent.o (.rodata);
build/OUTCODE/src/libultra/os/setintmask.o (.rodata);
build/OUTCODE/src/libultra/os/recvmesg.o (.rodata);
build/OUTCODE/src/libultra/os/sendmesg.o (.rodata);
build/OUTCODE/src/libultra/io/visetmode.o (.rodata);
build/OUTCODE/src/libultra/io/visetxscale.o (.rodata);
build/OUTCODE/src/libultra/io/visetyscale.o (.rodata);
build/OUTCODE/src/libultra/io/virepeatline.o (.rodata);
build/OUTCODE/src/libultra/io/viblack.o (.rodata);
build/OUTCODE/src/libultra/io/sptaskyielded.o (.rodata);
build/OUTCODE/src/libultra/io/dpctr.o (.rodata);
build/OUTCODE/src/libultra/io/vigetcurrframebuf.o (.rodata);
build/OUTCODE/src/libultra/io/vigetnextframebuf.o (.rodata);
build/OUTCODE/src/libultra/io/viswapbuf.o (.rodata);
build/OUTCODE/src/libultra/io/dpsetstat.o (.rodata);
build/OUTCODE/src/libultrare/io/sptask.o (.rodata);
build/OUTCODE/src/libultra/io/dpsetnextbuf.o (.rodata);
build/OUTCODE/src/libultra/io/sptaskyield.o (.rodata);
#ifdef VERSION_EU
build/OUTCODE/src/libultra/os/timerintr.o (.rodata);
build/OUTCODE/src/libultra/os/getthreadpri.o (.rodata);
build/OUTCODE/src/libultra/os/interrupt.o (.rodata);
build/OUTCODE/src/libultrare/io/vi.o (.rodata);
build/OUTCODE/src/libultra/io/vigetcurrcontext.o (.rodata);
build/OUTCODE/src/libultra/io/viswapcontext.o (.rodata);
build/OUTCODE/src/libultra/io/piacs.o (.rodata);
build/OUTCODE/src/libultrare/io/epirawdma.o (.rodata);
build/OUTCODE/src/libultrare/io/devmgr.o (.rodata);
#endif
build/OUTCODE/src/libultra/os/gettlbhi.o (.rodata);
build/OUTCODE/src/libultra/os/virtualtophysical.o (.rodata);
build/OUTCODE/src/libultra/io/aisetfreq.o (.rodata);
build/OUTCODE/src/libultra/audio/sl.o (.rodata);
build/OUTCODE/src/libultra/audio/heapalloc.o (.rodata);
build/OUTCODE/src/libultra/os/gettime.o (.rodata);
build/OUTCODE/src/libultra/libc/ll.o (.rodata); /*edited*/
build/OUTCODE/src/libultrare/io/aisetnextbuf.o (.rodata);
build/OUTCODE/src/libultra/io/aigetlen.o (.rodata);
build/OUTCODE/src/libultra/audio/synthesizer.o (.rodata);
build/OUTCODE/src/libultra/io/pidma.o (.rodata);
build/OUTCODE/src/libultra/io/visetspecial.o (.rodata);
build/OUTCODE/src/libultra/libc/bcopy.o (.rodata);
build/OUTCODE/src/libultra/gu/perspective.o (.rodata);
build/OUTCODE/src/libultra/gu/mtxutil.o (.rodata);
build/OUTCODE/src/libultra/os/getcurrfaultthread.o (.rodata);
build/OUTCODE/src/libultra/os/exception.o (.rodata); /*edited*/
build/OUTCODE/src/libultra/os/thread.o (.rodata);
build/OUTCODE/src/libultra/os/yieldthread.o (.rodata);
build/OUTCODE/src/libultra/os/invaldcache.o (.rodata);
build/OUTCODE/src/libultra/os/writebackdcache.o (.rodata);
build/OUTCODE/src/libultra/os/settimer.o (.rodata);
build/OUTCODE/src/libultra/audio/heapinit.o (.rodata);
build/OUTCODE/src/libultra/audio/bnkf.o (.rodata);
build/OUTCODE/src/libultra/audio/csplayer.o (.rodata);
build/OUTCODE/src/libultra/audio/seqpsetbank.o (.rodata);
build/OUTCODE/src/libultra/audio/cspgetstate.o (.rodata);
build/OUTCODE/src/libultra/audio/cseq.o (.rodata);
build/OUTCODE/src/libultra/audio/cspsetseq.o (.rodata);
build/OUTCODE/src/libultra/audio/cspplay.o (.rodata);
build/OUTCODE/src/libultra/audio/cspstop.o (.rodata);
build/OUTCODE/src/libultra/audio/cspsetvol.o (.rodata);
build/OUTCODE/src/libultra/audio/event.o (.rodata);
build/OUTCODE/src/libultra/audio/synaddplayer.o (.rodata);
build/OUTCODE/src/libultra/audio/synallocvoice.o (.rodata);
build/OUTCODE/src/libultra/audio/synsetvol.o (.rodata);
build/OUTCODE/src/libultra/audio/synstartvoice.o (.rodata);
build/OUTCODE/src/libultra/audio/synsetpan.o (.rodata);
build/OUTCODE/src/libultra/audio/synsetpitch.o (.rodata);
build/OUTCODE/src/libultra/audio/synsetfxmix.o (.rodata);
build/OUTCODE/src/libultra/audio/synstopvoice.o (.rodata);
build/OUTCODE/src/libultra/audio/synfreevoice.o (.rodata);
build/OUTCODE/src/libultra/audio/cents2ratio.o (.rodata);
build/OUTCODE/src/libultra/io/piread.o (.rodata);
#ifdef ENABLE_USB
build/OUTCODE/src/libultra/io/piwrite.o (.rodata);
#endif
build/OUTCODE/src/libultra/libc/string.o (.rodata);
build/OUTCODE/src/libultrare/libc/xprintf.o (.rodata);
#ifndef VERSION_EU
build/OUTCODE/src/libultrare/io/pimgr.o (.rodata);
#endif
build/OUTCODE/src/libultrare/io/pfsinit.o (.rodata);
build/OUTCODE/src/libultrare/io/controller.o (.rodata);
build/OUTCODE/src/libultra/io/contquery.o (.rodata);
build/OUTCODE/src/libultrare/io/contreaddata.o (.rodata);
build/OUTCODE/src/libultrare/io/conteepprobe.o (.rodata);
build/OUTCODE/src/libultrare/io/conteepread.o (.rodata);
build/OUTCODE/src/libultrare/io/conteepwrite.o (.rodata);
build/OUTCODE/src/libultrare/io/conteeplongread.o (.rodata);
build/OUTCODE/src/libultrare/io/conteeplongwrite.o (.rodata);
build/OUTCODE/src/libultrare/io/pfsisplug.o (.rodata);
build/OUTCODE/src/libultra/io/siacs.o (.rodata);
build/OUTCODE/src/libultra/io/sirawdma.o (.rodata);
build/OUTCODE/src/libultra/io/crc.o (.rodata);
build/OUTCODE/src/libultrare/io/contramwrite.o (.rodata);
build/OUTCODE/src/libultrare/io/contramread.o (.rodata);
build/OUTCODE/src/libultra/gu/align.o (.rodata);
build/OUTCODE/src/libultra/gu/ortho.o (.rodata);
build/OUTCODE/src/libultra/gu/coss.o (.rodata);
build/OUTCODE/src/libultra/gu/sins.o (.rodata);
build/OUTCODE/src/libultra/gu/translate.o (.rodata);
build/OUTCODE/src/libultra/libc/bcmp.o (.rodata);
build/OUTCODE/src/libultra/gu/scale.o (.rodata);
build/OUTCODE/src/libultra/gu/lookatref.o (.rodata);
build/OUTCODE/src/libultra/gu/lookat.o (.rodata);
build/OUTCODE/src/libultra/gu/rotate.o (.rodata);
build/OUTCODE/src/libultra/libc/llcvt.o (.rodata); /*edited*/
build/OUTCODE/src/libultra/os/setsr.o (.rodata);
build/OUTCODE/src/libultra/os/getsr.o (.rodata);
build/OUTCODE/src/libultra/io/sirawread.o (.rodata);
build/OUTCODE/src/libultra/io/sirawwrite.o (.rodata);
build/OUTCODE/src/libultra/io/pirawread.o (.rodata);
#ifdef ENABLE_USB
build/OUTCODE/src/libultra/io/pirawwrite.o (.rodata);
#endif
build/OUTCODE/src/libultra/libc/bzero.o (.rodata);
build/OUTCODE/src/libultra/os/sethwinterrupt.o (.rodata);
#ifndef VERSION_EU
build/OUTCODE/src/libultrare/io/leointerrupt.o (.rodata);
build/OUTCODE/src/libultra/os/interrupt.o (.rodata);
build/OUTCODE/src/libultra/os/timerintr.o (.rodata);
#endif
build/OUTCODE/src/libultra/os/kdebugserver.o (.rodata);
#ifndef VERSION_EU
build/OUTCODE/src/libultra/os/getthreadpri.o (.rodata);
build/OUTCODE/src/libultrare/io/vi.o (.rodata); /*edited*/
build/OUTCODE/src/libultra/io/vigetcurrcontext.o (.rodata);
build/OUTCODE/src/libultra/io/viswapcontext.o (.rodata);
#endif
build/OUTCODE/src/libultra/io/spgetstat.o (.rodata);
build/OUTCODE/src/libultra/io/spsetstat.o (.rodata);
build/OUTCODE/src/libultra/io/spsetpc.o (.rodata);
build/OUTCODE/src/libultra/io/sprawdma.o (.rodata);
build/OUTCODE/src/libultra/io/sp.o (.rodata);
build/OUTCODE/src/libultra/io/dp.o (.rodata);
#ifdef VERSION_EU
build/OUTCODE/src/libultra/os/setcompare.o (.rodata);
build/OUTCODE/src/libultra/os/resetglobalintmask.o (.rodata);
build/OUTCODE/src/libultrare/io/epirawwrite.o (.rodata);
#endif
build/OUTCODE/src/libultra/os/probetlb.o (.rodata);
build/OUTCODE/src/libultra/audio/syndelete.o (.rodata);
build/OUTCODE/src/libultra/io/ai.o (.rodata);
build/OUTCODE/src/libultrare/audio/drvrNew.o (.rodata);
build/OUTCODE/src/libultra/audio/synallocfx.o (.rodata);
build/OUTCODE/src/libultra/audio/mainbus.o (.rodata);
build/OUTCODE/src/libultra/audio/load.o (.rodata);
build/OUTCODE/src/libultra/audio/resample.o (.rodata);
build/OUTCODE/src/libultrare/audio/env.o (.rodata); /*edited*/
build/OUTCODE/src/libultra/audio/auxbus.o (.rodata);
build/OUTCODE/src/libultra/audio/save.o (.rodata);
build/OUTCODE/src/libultra/os/jammesg.o (.rodata);
build/OUTCODE/src/libultra/io/pigetcmdq.o (.rodata);
build/OUTCODE/src/libultra/gu/cosf.o (.rodata); /*edited*/
build/OUTCODE/src/libultra/gu/sinf.o (.rodata); /*edited*/
build/OUTCODE/src/libultrare/os/destroythread.o (.rodata);
build/OUTCODE/src/libultra/audio/seqplayer.o (.rodata);
build/OUTCODE/src/libultra/audio/synstartvoiceparam.o (.rodata);
build/OUTCODE/src/libultra/audio/copy.o (.rodata);
#ifndef VERSION_EU
build/OUTCODE/src/libultra/io/piacs.o (.rodata);
#endif
build/OUTCODE/src/libultra/libc/xlitob.o (.rodata);
build/OUTCODE/src/libultra/libc/xldtob.o (.rodata);
#ifndef VERSION_EU
build/OUTCODE/src/libultrare/io/epirawdma.o (.rodata);
build/OUTCODE/src/libultrare/io/devmgr.o (.rodata);
#endif
build/OUTCODE/src/libultra/io/contpfs.o (.rodata);
build/OUTCODE/src/libultra/io/si.o (.rodata);
build/OUTCODE/src/libultra/gu/normalize.o (.rodata);
build/OUTCODE/src/libultra/gu/sqrtf.o (.rodata);
#ifndef VERSION_EU
build/OUTCODE/src/libultrare/io/leodiskinit.o (.rodata);
build/OUTCODE/src/libultra/os/setcompare.o (.rodata);
#endif
build/OUTCODE/src/libultra/audio/filter.o (.rodata);
build/OUTCODE/src/libultrare/audio/reverb.o (.rodata); /*edited*/
build/OUTCODE/src/libultra/gu/libm_vals.o (.rodata); /*edited*/
build/OUTCODE/src/libultra/audio/seq.o (.rodata);
build/OUTCODE/src/libultra/audio/synsetpriority.o (.rodata);
build/OUTCODE/src/libultra/libc/ldiv.o (.rodata);
#ifndef VERSION_EU
build/OUTCODE/src/libultra/os/resetglobalintmask.o (.rodata);
build/OUTCODE/src/libultrare/io/epirawwrite.o (.rodata);
#endif
build/OUTCODE/src/libultra/io/vimodentsclan1.o (.rodata);
build/OUTCODE/src/libultrare/io/vimodepallan1.o (.rodata);
build/OUTCODE/src/libultrare/ultra80069080.o (.rodata); /*edited*/
/*build/OUTCODE/src/libultra/libultra.a:libultra.o (.rodata);*/
+253
View File
@@ -0,0 +1,253 @@
build/OUTCODE/src/boot.o (.text);
build/OUTCODE/src/init.o (.text);
build/OUTCODE/src/sched.o (.text);
build/OUTCODE/src/osMapTLB.o (.text);
#ifdef VERSION_EU
build/OUTCODE/src/libultrare/io/vimgr.o (.text);
build/OUTCODE/src/libultrare/io/pimgr.o (.text);
#endif
build/OUTCODE/src/tlb_manage.o (.text);
build/OUTCODE/src/tlb_random.o (.text);
build/OUTCODE/src/tlb_resolve.o (.text);
build/OUTCODE/src/tlb_hardwire.o (.text);
build/OUTCODE/src/audi.o (.text);
build/OUTCODE/src/speed_graph.o (.text);
build/OUTCODE/src/fr.o (.text);
build/OUTCODE/src/deb.o (.text);
build/OUTCODE/src/crash.o (.text);
/*deb_print may be part of fault per pd beta (.text);*/
/*build/OUTCODE/src/deb_print.o (.text);*/
build/OUTCODE/src/getra.o (.text);
build/OUTCODE/src/ramrom.o (.text);
build/OUTCODE/src/boss.o (.text);
build/OUTCODE/src/music.o (.text);
build/OUTCODE/src/snd.o (.text);
build/OUTCODE/src/memp.o (.text);
build/OUTCODE/src/mema.o (.text);
build/OUTCODE/src/random.o (.text);
build/OUTCODE/src/token.o (.text);
build/OUTCODE/src/str.o (.text);
build/OUTCODE/src/sprintf.o (.text);
build/OUTCODE/src/pi.o (.text);
build/OUTCODE/src/vi.o (.text);
build/OUTCODE/src/debugmenu.o (.text);
build/OUTCODE/src/joy.o (.text);
build/OUTCODE/src/motor.o (.text);
#ifdef VERSION_EU
build/OUTCODE/src/libultrare/io/leointerrupt.o (.text);
#endif
build/OUTCODE/src/rmon.o (.text);
#ifdef ENABLE_USB
build/OUTCODE/src/usb.o (.text);
#endif
/*build/OUTCODE/src/libultra/osPiRawStartDma.o (.text);*/
build/OUTCODE/src/libultra/io/pirawdma.o (.text);
build/OUTCODE/src/libultra/io/pigetstat.o (.text);
build/OUTCODE/src/libultrare/os/initialize.o (.text);
build/OUTCODE/src/libultra/os/writebackdcacheall.o (.text);
build/OUTCODE/src/libultra/os/invalicache.o (.text);
build/OUTCODE/src/libultra/os/unmaptlb.o (.text);
build/OUTCODE/src/libultra/os/getfpccsr.o (.text);
build/OUTCODE/src/libultra/os/setfpccsr.o (.text);
build/OUTCODE/src/libultra/os/createthread.o (.text);
build/OUTCODE/src/libultra/os/startthread.o (.text);
build/OUTCODE/src/libultra/os/createmesgqueue.o (.text);
build/OUTCODE/src/libultra/os/parameters.o (.text);
build/OUTCODE/src/libultra/os/stopthread.o (.text);
build/OUTCODE/src/libultra/os/setthreadpri.o (.text);
build/OUTCODE/src/libultra/os/getcount.o (.text);
#ifndef VERSION_EU
build/OUTCODE/src/libultrare/io/vimgr.o (.text);
#endif
build/OUTCODE/src/libultrare/io/vitbl.o (.text); /*edited*/
build/OUTCODE/src/libultra/os/seteventmesg.o (.text);
build/OUTCODE/src/libultra/io/visetevent.o (.text);
build/OUTCODE/src/libultra/os/setintmask.o (.text);
build/OUTCODE/src/libultra/os/recvmesg.o (.text);
build/OUTCODE/src/libultra/os/sendmesg.o (.text);
build/OUTCODE/src/libultra/io/visetmode.o (.text);
build/OUTCODE/src/libultra/io/visetxscale.o (.text);
build/OUTCODE/src/libultra/io/visetyscale.o (.text);
build/OUTCODE/src/libultra/io/virepeatline.o (.text);
build/OUTCODE/src/libultra/io/viblack.o (.text);
build/OUTCODE/src/libultra/io/sptaskyielded.o (.text);
build/OUTCODE/src/libultra/io/dpctr.o (.text);
build/OUTCODE/src/libultra/io/vigetcurrframebuf.o (.text);
build/OUTCODE/src/libultra/io/vigetnextframebuf.o (.text);
build/OUTCODE/src/libultra/io/viswapbuf.o (.text);
build/OUTCODE/src/libultra/io/dpsetstat.o (.text);
build/OUTCODE/src/libultrare/io/sptask.o (.text);
build/OUTCODE/src/libultra/io/dpsetnextbuf.o (.text);
build/OUTCODE/src/libultra/io/sptaskyield.o (.text);
#ifdef VERSION_EU
build/OUTCODE/src/libultra/os/timerintr.o (.text);
build/OUTCODE/src/libultra/os/getthreadpri.o (.text);
build/OUTCODE/src/libultra/os/interrupt.o (.text);
build/OUTCODE/src/libultrare/io/vi.o (.text);
build/OUTCODE/src/libultra/io/vigetcurrcontext.o (.text);
build/OUTCODE/src/libultra/io/viswapcontext.o (.text);
build/OUTCODE/src/libultra/io/piacs.o (.text);
build/OUTCODE/src/libultrare/io/epirawdma.o (.text);
build/OUTCODE/src/libultrare/io/devmgr.o (.text);
#endif
build/OUTCODE/src/libultra/os/gettlbhi.o (.text);
build/OUTCODE/src/libultra/os/virtualtophysical.o (.text);
build/OUTCODE/src/libultra/io/aisetfreq.o (.text);
build/OUTCODE/src/libultra/audio/sl.o (.text);
build/OUTCODE/src/libultra/audio/heapalloc.o (.text);
build/OUTCODE/src/libultra/os/gettime.o (.text);
build/OUTCODE/src/libultra/libc/ll.o (.text); /*edited*/
build/OUTCODE/src/libultrare/io/aisetnextbuf.o (.text);
build/OUTCODE/src/libultra/io/aigetlen.o (.text);
build/OUTCODE/src/libultra/audio/synthesizer.o (.text);
build/OUTCODE/src/libultra/io/pidma.o (.text);
build/OUTCODE/src/libultra/io/visetspecial.o (.text);
build/OUTCODE/src/libultra/libc/bcopy.o (.text);
build/OUTCODE/src/libultra/gu/perspective.o (.text);
build/OUTCODE/src/libultra/gu/mtxutil.o (.text);
build/OUTCODE/src/libultra/os/getcurrfaultthread.o (.text);
build/OUTCODE/src/libultra/os/exception.o (.text); /*edited*/
build/OUTCODE/src/libultra/os/thread.o (.text);
build/OUTCODE/src/libultra/os/yieldthread.o (.text);
build/OUTCODE/src/libultra/os/invaldcache.o (.text);
build/OUTCODE/src/libultra/os/writebackdcache.o (.text);
build/OUTCODE/src/libultra/os/settimer.o (.text);
build/OUTCODE/src/libultra/audio/heapinit.o (.text);
build/OUTCODE/src/libultra/audio/bnkf.o (.text);
build/OUTCODE/src/libultra/audio/csplayer.o (.text);
build/OUTCODE/src/libultra/audio/seqpsetbank.o (.text);
build/OUTCODE/src/libultra/audio/cspgetstate.o (.text);
build/OUTCODE/src/libultra/audio/cseq.o (.text);
build/OUTCODE/src/libultra/audio/cspsetseq.o (.text);
build/OUTCODE/src/libultra/audio/cspplay.o (.text);
build/OUTCODE/src/libultra/audio/cspstop.o (.text);
build/OUTCODE/src/libultra/audio/cspsetvol.o (.text);
build/OUTCODE/src/libultra/audio/event.o (.text);
build/OUTCODE/src/libultra/audio/synaddplayer.o (.text);
build/OUTCODE/src/libultra/audio/synallocvoice.o (.text);
build/OUTCODE/src/libultra/audio/synsetvol.o (.text);
build/OUTCODE/src/libultra/audio/synstartvoice.o (.text);
build/OUTCODE/src/libultra/audio/synsetpan.o (.text);
build/OUTCODE/src/libultra/audio/synsetpitch.o (.text);
build/OUTCODE/src/libultra/audio/synsetfxmix.o (.text);
build/OUTCODE/src/libultra/audio/synstopvoice.o (.text);
build/OUTCODE/src/libultra/audio/synfreevoice.o (.text);
build/OUTCODE/src/libultra/audio/cents2ratio.o (.text);
build/OUTCODE/src/libultra/io/piread.o (.text);
#ifdef ENABLE_USB
build/OUTCODE/src/libultra/io/piwrite.o (.text);
#endif
build/OUTCODE/src/libultra/libc/string.o (.text);
build/OUTCODE/src/libultrare/libc/xprintf.o (.text);
#ifndef VERSION_EU
build/OUTCODE/src/libultrare/io/pimgr.o (.text);
#endif
build/OUTCODE/src/libultrare/io/pfsinit.o (.text);
build/OUTCODE/src/libultrare/io/controller.o (.text);
build/OUTCODE/src/libultra/io/contquery.o (.text);
build/OUTCODE/src/libultrare/io/contreaddata.o (.text);
build/OUTCODE/src/libultrare/io/conteepprobe.o (.text);
build/OUTCODE/src/libultrare/io/conteepread.o (.text);
build/OUTCODE/src/libultrare/io/conteepwrite.o (.text);
build/OUTCODE/src/libultrare/io/conteeplongread.o (.text);
build/OUTCODE/src/libultrare/io/conteeplongwrite.o (.text);
build/OUTCODE/src/libultrare/io/pfsisplug.o (.text);
build/OUTCODE/src/libultra/io/siacs.o (.text);
build/OUTCODE/src/libultra/io/sirawdma.o (.text);
build/OUTCODE/src/libultra/io/crc.o (.text);
build/OUTCODE/src/libultrare/io/contramwrite.o (.text);
build/OUTCODE/src/libultrare/io/contramread.o (.text);
build/OUTCODE/src/libultra/gu/align.o (.text);
build/OUTCODE/src/libultra/gu/ortho.o (.text);
build/OUTCODE/src/libultra/gu/coss.o (.text);
build/OUTCODE/src/libultra/gu/sins.o (.text);
build/OUTCODE/src/libultra/gu/translate.o (.text);
build/OUTCODE/src/libultra/libc/bcmp.o (.text);
build/OUTCODE/src/libultra/gu/scale.o (.text);
build/OUTCODE/src/libultra/gu/lookatref.o (.text);
build/OUTCODE/src/libultra/gu/lookat.o (.text);
build/OUTCODE/src/libultra/gu/rotate.o (.text);
build/OUTCODE/src/libultra/libc/llcvt.o (.text); /*edited*/
build/OUTCODE/src/libultra/os/setsr.o (.text);
build/OUTCODE/src/libultra/os/getsr.o (.text);
build/OUTCODE/src/libultra/io/sirawread.o (.text);
build/OUTCODE/src/libultra/io/sirawwrite.o (.text);
build/OUTCODE/src/libultra/io/pirawread.o (.text);
#ifdef ENABLE_USB
build/OUTCODE/src/libultra/io/pirawwrite.o (.text);
#endif
build/OUTCODE/src/libultra/libc/bzero.o (.text);
build/OUTCODE/src/libultra/os/sethwinterrupt.o (.text);
#ifndef VERSION_EU
build/OUTCODE/src/libultrare/io/leointerrupt.o (.text);
build/OUTCODE/src/libultra/os/interrupt.o (.text);
build/OUTCODE/src/libultra/os/timerintr.o (.text);
#endif
build/OUTCODE/src/libultra/os/kdebugserver.o (.text);
#ifndef VERSION_EU
build/OUTCODE/src/libultra/os/getthreadpri.o (.text);
build/OUTCODE/src/libultrare/io/vi.o (.text); /*edited*/
build/OUTCODE/src/libultra/io/vigetcurrcontext.o (.text);
build/OUTCODE/src/libultra/io/viswapcontext.o (.text);
#endif
build/OUTCODE/src/libultra/io/spgetstat.o (.text);
build/OUTCODE/src/libultra/io/spsetstat.o (.text);
build/OUTCODE/src/libultra/io/spsetpc.o (.text);
build/OUTCODE/src/libultra/io/sprawdma.o (.text);
build/OUTCODE/src/libultra/io/sp.o (.text);
build/OUTCODE/src/libultra/io/dp.o (.text);
#ifdef VERSION_EU
build/OUTCODE/src/libultra/os/setcompare.o (.text);
build/OUTCODE/src/libultra/os/resetglobalintmask.o (.text);
build/OUTCODE/src/libultrare/io/epirawwrite.o (.text);
#endif
build/OUTCODE/src/libultra/os/probetlb.o (.text);
build/OUTCODE/src/libultra/audio/syndelete.o (.text);
build/OUTCODE/src/libultra/io/ai.o (.text);
build/OUTCODE/src/libultrare/audio/drvrNew.o (.text);
build/OUTCODE/src/libultra/audio/synallocfx.o (.text);
build/OUTCODE/src/libultra/audio/mainbus.o (.text);
build/OUTCODE/src/libultra/audio/load.o (.text);
build/OUTCODE/src/libultra/audio/resample.o (.text);
build/OUTCODE/src/libultrare/audio/env.o (.text); /*edited*/
build/OUTCODE/src/libultra/audio/auxbus.o (.text);
build/OUTCODE/src/libultra/audio/save.o (.text);
build/OUTCODE/src/libultra/os/jammesg.o (.text);
build/OUTCODE/src/libultra/io/pigetcmdq.o (.text);
build/OUTCODE/src/libultra/gu/cosf.o (.text); /*edited*/
build/OUTCODE/src/libultra/gu/sinf.o (.text); /*edited*/
build/OUTCODE/src/libultrare/os/destroythread.o (.text);
build/OUTCODE/src/libultra/audio/seqplayer.o (.text);
build/OUTCODE/src/libultra/audio/synstartvoiceparam.o (.text);
build/OUTCODE/src/libultra/audio/copy.o (.text);
#ifndef VERSION_EU
build/OUTCODE/src/libultra/io/piacs.o (.text);
#endif
build/OUTCODE/src/libultra/libc/xlitob.o (.text);
build/OUTCODE/src/libultra/libc/xldtob.o (.text);
#ifndef VERSION_EU
build/OUTCODE/src/libultrare/io/epirawdma.o (.text);
build/OUTCODE/src/libultrare/io/devmgr.o (.text);
#endif
build/OUTCODE/src/libultra/io/contpfs.o (.text);
build/OUTCODE/src/libultra/io/si.o (.text);
build/OUTCODE/src/libultra/gu/normalize.o (.text);
build/OUTCODE/src/libultra/gu/sqrtf.o (.text);
#ifndef VERSION_EU
build/OUTCODE/src/libultrare/io/leodiskinit.o (.text);
build/OUTCODE/src/libultra/os/setcompare.o (.text);
#endif
build/OUTCODE/src/libultra/audio/filter.o (.text);
build/OUTCODE/src/libultrare/audio/reverb.o (.text); /*edited*/
build/OUTCODE/src/libultra/gu/libm_vals.o (.text); /*edited*/
build/OUTCODE/src/libultra/audio/seq.o (.text);
build/OUTCODE/src/libultra/audio/synsetpriority.o (.text);
build/OUTCODE/src/libultra/libc/ldiv.o (.text);
#ifndef VERSION_EU
build/OUTCODE/src/libultra/os/resetglobalintmask.o (.text);
build/OUTCODE/src/libultrare/io/epirawwrite.o (.text);
#endif
build/OUTCODE/src/libultra/io/vimodentsclan1.o (.text);
build/OUTCODE/src/libultrare/io/vimodepallan1.o (.text);
build/OUTCODE/src/libultrare/ultra80069080.o (.text); /*edited*/
/*build/OUTCODE/src/libultra/libultra.a:libultra.o (.text);*/
+12 -12
View File
@@ -5149,11 +5149,11 @@ _AI_CMD(
{
if (isNotBoundPad(padnum))
{
pad = &g_chraiCurrentSetup.pads[padnum];
pad = &g_CurrentSetup.pads[padnum];
}
else
{
pad = (PadRecord *)&g_chraiCurrentSetup.boundpads[getBoundPadNum(padnum)];
pad = (PadRecord *)&g_CurrentSetup.boundpads[getBoundPadNum(padnum)];
}
matrix_4x4_7F059908(&matrix, 0, 0, 0, -pad->target.x, -pad->target.y, -pad->target.z, pad->up.x, pad->up.y, pad->up.z);
if (obj->model)
@@ -9482,11 +9482,11 @@ _AI_CMD(
u16 sfxID = CharArrayTo16(ai->val,2);
if (isNotBoundPad(padnum))
{
pad = &g_chraiCurrentSetup.pads[padnum];
pad = &g_CurrentSetup.pads[padnum];
}
else
{
pad = (PadRecord *) &g_chraiCurrentSetup.boundpads[getBoundPadNum(padnum)];
pad = (PadRecord *) &g_CurrentSetup.boundpads[getBoundPadNum(padnum)];
}
if (ai->SlotID >= 0 && ai->SlotID < 8 && pad)
{
@@ -10151,11 +10151,11 @@ _AI_CMD(
u16 padnum = CharArrayTo16(ai->val,0);
if (isNotBoundPad(padnum))
{
dword_CODE_bss_800799F8 = &g_chraiCurrentSetup.pads[padnum];
dword_CODE_bss_800799F8 = &g_CurrentSetup.pads[padnum];
}
else
{
dword_CODE_bss_800799F8 = (PadRecord *) &g_chraiCurrentSetup.boundpads[getBoundPadNum(padnum)];
dword_CODE_bss_800799F8 = (PadRecord *) &g_CurrentSetup.boundpads[getBoundPadNum(padnum)];
}
set_camera_mode(CAMERAMODE_POSEND);
Offset += CAT(CAT(AI_, CMDNAME), _LENGTH);
@@ -10392,11 +10392,11 @@ _AI_CMD(
padnum = chrResolvePadId(ChrEntityp, padnum);
if (isNotBoundPad(padnum))
{
pad = &g_chraiCurrentSetup.pads[padnum];
pad = &g_CurrentSetup.pads[padnum];
}
else
{
pad = (PadRecord *) &g_chraiCurrentSetup.boundpads[getBoundPadNum(padnum)];
pad = (PadRecord *) &g_CurrentSetup.boundpads[getBoundPadNum(padnum)];
}
FacingDirection = atan2f(pad->target.x, pad->target.z);
pos.x = pad->pos.x;
@@ -10673,7 +10673,7 @@ _AI_CMD(
door->openedTime = g_GlobalTimer;
door->openstate = DOORSTATE_STATIONARY;
sub_GAME_7F052B00(door);
sub_GAME_7F053598(door);
doorActivatePortal(door);
sub_GAME_7F053B10(door);
}
Offset += CAT(CAT(AI_, CMDNAME), _LENGTH);
@@ -10956,11 +10956,11 @@ _AI_CMD(
ObjectRecord *obj = objFindByTagId(ai->val[0]);
if (isNotBoundPad(padnum))
{
pad = &g_chraiCurrentSetup.pads[padnum * 1];
pad = &g_CurrentSetup.pads[padnum * 1];
}
else
{
pad = (PadRecord *) &g_chraiCurrentSetup.boundpads[getBoundPadNum(padnum)];
pad = (PadRecord *) &g_CurrentSetup.boundpads[getBoundPadNum(padnum)];
}
if (pad->stan && obj && obj->prop && (pad->stan->RoomID == obj->prop->stan->RoomID))
{
@@ -11838,7 +11838,7 @@ _AI_CMD(
sub_GAME_7F03FDA8(obj->prop);
if (obj->runtime_bitflags & RUNTIMEBITFLAG_DEPOSIT)
{
obj->unk6C->id |= 0x601;
obj->unk6C->flags |= 0x601;
sub_GAME_7F03FE14(obj->prop);
matrix_4x4_set_identity(&obj->unk6C->m);
obj->unk6C->pos.x = 0;
+2 -2
View File
@@ -593,7 +593,7 @@ void amHandleDoneMessage(AudioInfo *info)
if (!samplesLeft && !(*b))
{
// debug printf from audioMgr demo
#ifdef DEBUG
#ifdef ENABLE_LOG
osSyncPrintf("audio: ai out of samples\n");
#endif
g_FirstTime = 0;
@@ -776,7 +776,7 @@ void amClearDmaBuffers(void)
{
if (osRecvMesg(&g_DmaMessageQueue, (OSMesg *)&osmesg, OS_MESG_NOBLOCK) == -1)
{
#ifdef DEBUG
#ifdef ENABLE_LOG
osSyncPrintf("Dma not done\n");
#endif
}
+86 -2
View File
@@ -330,6 +330,12 @@ typedef enum PROPFLAG2
PROPFLAG2_80000000 = 0x80000000 // unknown
}PROPFLAG2;
typedef enum DOORFLAG
{
DOORFLAG_100 = 0x00000100,
DOORFLAG_CANNOT_ACTIVATE = 0x02000000,
DOORFLAG_KEEPOPEN = 0x80000000
}DOORFLAG;
/* door lock flags*/
BITFLAG(DOOR_LOCK,
@@ -444,6 +450,10 @@ BITFLAG(RUNTIMEBITFLAG,
#define QUADRANT_2NDWPTOTARGET 0x10 // second waypoint on route to target
#define QUADRANT_20 0x20 // second waypoint on route to target
#define CULLMODE_NONE 1
#define CULLMODE_FRONT 2
#define CULLMODE_BACK 3
#pragma endregion
#pragma region Constants
@@ -779,7 +789,9 @@ typedef enum CHEAT_IDS
CHEAT_UNLOCK_AZTEK,
CHEAT_UNLOCK_EGYPT,
CHEAT_INVALID
CHEAT_INVALID,
CHEAT_MAX = CHEAT_INVALID+5
} CHEAT_ID;
//Controller stuff including Rumble Pak are in joy.c
@@ -1199,6 +1211,15 @@ typedef enum MODELNODE_OPCODE
MODELNODE_OPCODE_MAX
} MODELNODE_OPCODE;
typedef enum MODELNODE_CHILD
{
MODELNODE_CHILD_NULL,
MODELNODE_CHILD_VTX,
MODELNODE_CHILD_IMAGE,
MODELNODE_CHILD_TRI,
MODELNODE_CHILD_MAX
} MODELNODE_CHILD;
typedef enum MP_STAGE_SELECTED
{
MP_STAGE_RANDOM,
@@ -1389,6 +1410,8 @@ typedef enum PLAYER_ID
PLAYER_4
} PLAYER_ID;
#define MAX_PLAYER_COUNT 4
typedef enum RGBA_ENUM
{
RED,
@@ -1949,6 +1972,13 @@ typedef enum SPEED
SPEED_SPRINT
} SPEED;
typedef enum STAGESTATUS
{
STAGESTATUS_LOCKED,
STAGESTATUS_UNLOCKED,
STAGESTATUS_NOTCOMPLETED,
STAGESTATUS_COMPLETED
} STAGESTATUS;
typedef enum TEXTBANK_LEVEL_INDEX
{
@@ -2020,6 +2050,28 @@ typedef enum WATCH_BRIEFING_PAGE
} WATCH_BRIEFING_PAGE;
typedef enum AWARD {
AWARD_MOSTSUICIDAL = 0x00001,
AWARD_WHONEEDSAMMO = 0x00002,
AWARD_WHERESTHEARMOR = 0x00004,
AWARD_ACNEGATIVE10 = 0x00008,
AWARD_MARKSMANSHIP = 0x00010,
AWARD_MOSTPROFESSIONAL = 0x00020,
AWARD_MOSTDEADLY = 0x00040,
AWARD_MOSTHARMLESS = 0x00080,
AWARD_MOSTCOWARDLY = 0x00100,
AWARD_MOSTFRANTIC = 0x00200,
AWARD_MOSTHONORABLE = 0x00400,
AWARD_MOSTDISHONORABLE = 0x00800,
AWARD_SHORTESTINNINGS = 0x01000,
AWARD_LONGESTINNINGS = 0x02000,
AWARD_DOUBLEKILL = 0x04000,
AWARD_TRIPLEKILL = 0x08000,
AWARD_QUADKILL = 0x10000
} AWARD;
typedef enum WAYMODE
{
WAYMODE_0,
@@ -2031,6 +2083,20 @@ typedef enum WAYMODE
WAYMODE_MAGIC
} WAYMODE;
typedef enum SPSEGMENT
{
SPSEGMENT_PHYSICAL = 0,
SPSEGMENT_UNKNOWN = 1,
SPSEGMENT_GETITLE = 2,
SPSEGMENT_MODEL_MTX = 3,
SPSEGMENT_MODEL_VTX = 4,
SPSEGMENT_MODEL_COL1 = 5,
SPSEGMENT_MODEL_COL2 = 6,
SPSEGMENT_BG_COL = 13,
SPSEGMENT_BG_VTX = 14,
SPSEGMENT_BG_DL = 15
} SPSEGMENT;
#pragma region Object Instance Stuff
typedef enum BODIES
{
@@ -2959,7 +3025,13 @@ typedef enum WAYMODE
} VIDEOMODE;
#pragma endregion
#if !defined(VERSION_EU)
#define MAXROOMCOUNT 150
#else
#define MAXROOMCOUNT 139
#endif
/* special chr num IDs */
#define CHR_BOND_CINEMA -8 /* only works when bond has a third person model (intro/exit cutscene) */
#define CHR_CLONE -7
@@ -2980,9 +3052,17 @@ typedef enum WAYMODE
#define OBJECTIVES_MAX 10
#define MAX_CHRWAYPOINTS 6
#define MAX_WAYMODE ((s32)WAYMODE_MAGIC)
#define MAX_TEXTURES 3001
#define PROPRECORD_STAN_ROOM_LEN 4
#define NUMBER_SHOTGUN_BULLETS 5
#ifdef VERSION_EU
#define NTSC 0
#define PAL 1
#else
#define NTSC 1
#define PAL 0
#endif
#pragma endregion
@@ -3193,7 +3273,11 @@ typedef enum WAYMODE
#define forever for (;;)
#define ARRAYCOUNT(a) (s32)(sizeof(a) / sizeof(a[0]))
#define ALIGN8(val) (((val) + 0x7 | 0x7) ^ 0x7)
#define RANDOMFRAC() ((f32) randomGetNext() * 2.3283064e-10f)
#pragma endregion
#endif
+389 -149
View File
@@ -55,6 +55,7 @@ struct PropRecord;
struct ObjectRecord;
struct WeaponObjRecord;
struct WeaponObjRecordExtended;
union ModelRoData;
/**
* The following region deals with various AI structures that can be applied to
@@ -537,7 +538,10 @@ typedef union
s32 unk00;
u16 unk04;
u16 unk06;
u16 unk08;
u16 unk0A;
u16 unk0C;
u16 unk0E;
// ...
} ModelAnimation;
@@ -654,6 +658,28 @@ typedef union
#pragma region ModelTypes
/**
* Taken from PD, unsure that all of the fields line up
*/
typedef struct ModelRenderData {
/*0x00*/ Mtxf *unk00;
/*0x04*/ bool zbufferenabled;
/*0x08*/ u32 flags;
/*0x0c*/ Gfx *gdl;
/*0x10*/ Mtxf *unk10;
/*0x14*/ u32 unk14;
/*0x18*/ u32 unk18;
/*0x1c*/ u32 unk1c;
/*0x20*/ u32 unk20;
/*0x24*/ u32 unk24;
/*0x28*/ u32 unk28;
/*0x2c*/ u32 unk2c;
/*0x30*/ s32 unk30;
/*0x34*/ u32 envcolour;
/*0x38*/ u32 fogcolour;
/*0x3c*/ u32 cullmode;
} ModelRenderData;
/**
* Binary compatible with gbi Vtx but more verbose and with "collision"
* information in place of "flags" for use in Openflight Records below
@@ -750,43 +776,59 @@ typedef union
} ModelFileTextures;
/*
Handy Union for each type of Node
More Verbose than void *Data
Note: Probably cant actually use this since would need to know the type before hand
union ModelNode_Data
{
struct ModelNode_HeaderRecord Header;
struct ModelNode_GroupRecord Group;
struct ModelNode_DisplayListRecord DisplayList;
struct ModelNode_LODRecord LOD;
struct ModelNode_BSPRecord BSP;
struct ModelNode_BoundingBoxRecord BoundingBox;
struct ModelNode_GunfireRecord Gunfire;
struct ModelNode_ShadowRecord Shadow;
struct ModelNode_InterlinkageRecord Interlinkage;
struct ModelNode_SwitchRecord Switch;
struct ModelNode_GroupSimpleRecord GroupSimple;
struct ModelNode_DisplayListPrimaryRecord DisplayListPrimary;
struct ModelNode_HeadPlaceholderRecord HeadPlaceholder;
struct ModelNode_DisplayList_CollisionRecord DisplayListCollisions;
};
*/
/*
This defines each row of the Node Table
*/
typedef struct ModelNode
{
//u8 UseAdditionalMatrices; //1 = group use MatrixID1 also. not actually used
u16 Opcode; /*0x00*/
void *Data; /*0x04 Node Data*/
struct ModelNode *Parent; /*0x08*/
struct ModelNode *Next; /*0x0c*/
struct ModelNode *Prev; /*0x10*/
struct ModelNode *Child; /*0x14*/
u16 Opcode; /*0x00*/
union ModelRoData *Data; /*0x04 Node Data*/
struct ModelNode *Parent; /*0x08*/
struct ModelNode *Next; /*0x0c*/
struct ModelNode *Prev; /*0x10*/
struct ModelNode *Child; /*0x14*/
} ModelNode;
#pragma region Model Node OpCode Definitions
/*
* These are some extra RoData structs that are used by Op07 (and presumably Op05)
* Not sure how these fit in with the rest, they appear to be separate
*/
typedef struct ModelRoData_Child
{
u8 NumEntries; /*0x00*/
u8 unk01; /*0x01*/
u16 unk02; /*0x02*/
u8 *unk04; /*0x04*/
} ModelRoData_Child;
typedef struct ModelRoData_Child_Vtx
{
u8 Type; /*0x00*/
u8 unk01; /*0x01*/
u16 VtxIndex; /*0x02*/
} ModelRoData_Child_Vtx;
typedef struct ModelRoData_Child_Tri
{
u8 Type; /*0x00*/
u8 VtxIndex1; /*0x01*/
u8 VtxIndex2; /*0x02*/
u8 VtxIndex3; /*0x03*/
} ModelRoData_Child_Tri;
typedef struct ModelRoData_Child_Image
{
u8 Type; /*0x00*/
u8 ImageIndex; /*0x01*/
} ModelRoData_Child_Image;
#pragma endregion
#pragma region Model Node OpCode Definitions
/**
@@ -794,15 +836,44 @@ typedef union
* The header record is found at the beginning of the database file.
* Used on Character Bodies Only
*/
typedef struct ModelNode_HeaderRecord
typedef struct ModelRoData_HeaderRecord
{
u32 ModelType; /*0x0 Legnth of Record (4)*/
struct ModelNode_GroupRecord *FirstGroup; /*0x4 First group in tree*/
u16 Group1; /*0x8*/
u16 Group2; /*0xA*/
u16 number; /*0xC*/
u16 reserved; /*0xE padding*/
} ModelNode_HeaderRecord;
u32 ModelType; /*0x0 Legnth of Record (4)*/
struct ModelRoData_GroupRecord *FirstGroup; /*0x4 First group in tree*/
union
{
struct
{
u16 Group1; /*0x8*/
u16 Group2; /*0xA*/
};
f32 GroupsAsF32; /*0x8*/
};
u16 RwDataIndex; /*0xC*/
u16 reserved; /*0xE padding*/
} ModelRoData_HeaderRecord;
typedef struct ModelRwData_HeaderRecord
{
s8 unk00;
s8 unk01;
s8 unk02;
f32 ground;
coord3d pos;
f32 unk14; // angle
f32 unk18;
f32 unk1c;
f32 unk20; // angle
coord3d unk24;
f32 unk30; // angle
coord3d unk34;
coord3d unk40; // "2" version of unk24
coord3d unk4c; // "2" version of unk34
f32 unk58;
f32 unk5c;
} ModelRwData_HeaderRecord;
/**
* Opcode 2
@@ -819,16 +890,21 @@ typedef union
* Since MultiGen sorts based on this field before saving the database, it can
* be ignored by the real-time software.
*/
typedef struct ModelNode_GroupRecord
typedef struct ModelRoData_GroupRecord
{
coord3d Origin; /*0x0*/
u16 JointID; /*0xC*/
u16 MatrixID0; /*0xE*/
u16 MatrixID1; /*0x10*/
u16 MatrixID2; /*0x12 never used*/
struct ModelNode_GroupRecord *ChildGroup; /*0x14*/
union {
s16 MatrixIDs[3]; /*0xE*/
struct {
s16 MatrixID0; /*0xE*/
s16 MatrixID1; /*0x10*/
s16 MatrixID2; /*0x12 never used*/
};
};
struct ModelRoData_GroupRecord *ChildGroup; /*0x14*/
f32 BoundingVolumeRadius; /*0x18*/
} ModelNode_GroupRecord;
} ModelRoData_GroupRecord;
/**
* Opcode 3
@@ -839,11 +915,11 @@ typedef union
* Opcode 4
* Collisionless Display List used primarely for guns
*/
typedef struct ModelNode_DisplayListRecord
typedef struct ModelRoData_DisplayListRecord
{
Gfx *Primary; /*0x0*/
Gfx *Secondary; /*0x4*/ // optional
u32 reserved; /*0x8*/
void *BaseAddr; /*0x8*/
Vertex *Vertices; /*0xC*/
u16 numVertices; /*0x10*/
/*
@@ -854,29 +930,70 @@ typedef union
3 = GunLighting - Reduced Secondary Commands (guns)
4 = Normal Fog/Lighting object
*/
u8 ModelType;
} ModelNode_DisplayListRecord;
s8 ModelType;
} ModelRoData_DisplayListRecord;
typedef struct ModelRwData_DisplayListRecord // this record is a guess
{
s32 unk00;
} ModelRwData_DisplayListRecord;
/**
* Opcode 5
* unused
*/
typedef struct ModelRoData_Op05Record
{
// shares this structure with op07
s32 NumChildren; /*0x00*/
struct ModelRoData_Child *Children; /*0x04*/
struct Vertex *Vertices; /*0x08*/
struct sImageTableEntry *Images; /*0x0C*/
u8 Data[400]; /*0x10*/
u32 unk1A0; /*0x1A0*/
void* BaseAddr; /*0x1A4*/
} ModelRoData_Op05Record;
/**
* Opcode 6
* unused
*/
typedef struct ModelRoData_Op06Record
{
u32 unk00;
u32 unk04;
u32 unk08;
u32 unk0C;
u32 unk10;
void* BaseAddr; /*0x14*/
} ModelRoData_Op06Record;
/**
* Opcode 7
* unused but referenced
*/
typedef struct ModelNode_Op07Record
typedef struct ModelRoData_Op07Record
{
u32 unk00[106]; /*0x0*/
u16 unk1A8; /*0x1A8*/
u16 number; /*0x1AA*/
} ModelNode_Op07Record;
struct ModelNode* unk00; /*0x00*/
struct ModelNode* unk04; /*0x04*/
// shares this structure with op05
s32 NumChildren; /*0x08*/
struct ModelRoData_Child *Children; /*0x0C*/
struct Vertex *Vertices; /*0x10*/
struct sImageTableEntry *Images; /*0x14*/
u8 Data[400]; /*0x18*/
u16 unk1A8; /*0x1A8*/
u16 RwDataIndex; /*0x1AA*/
void* BaseAddr;
} ModelRoData_Op07Record;
typedef struct ModelRwData_Op07Record
{
s32 index;
} ModelRwData_Op07Record;
/**
* Opcode 8
@@ -884,90 +1001,113 @@ typedef union
* The distance is calculated by the real-time software by using the distance
* from the eye-point to the LOD center found
*/
typedef struct ModelNode_LODRecord
typedef struct ModelRoData_LODRecord
{
f32 MinDistance; /*0x0 Switch in distance*/
f32 MaxDistance; /*0x4 Switch out distance*/
ModelNode *Affects; /*0x8 Affects this node (Must be child)*/
u16 number; /*0xC*/
u16 RwDataIndex; /*0xC*/
u16 reserved; /*0xE padding*/
} ModelNode_LODRecord;
} ModelRoData_LODRecord;
typedef struct ModelRwData_LODRecord
{
bool visible;
} ModelRwData_LODRecord;
/**
* Opcode 9
* Binary Separating Plane
* BSPs allow you to model 3D databases with the Z buffer turned off.
*/
typedef struct ModelNode_BSPRecord
typedef struct ModelRoData_BSPRecord
{
coord3d Point; /*0x0*/
coord3d Vector; /*0xC*/
ModelNode *leftChild; /*0x18 back/first */
ModelNode *rightChild; /*0x1C front/last */
u16 reserved; /*0x20 padding or u32*/
u16 number; /*0x22*/
} ModelNode_BSPRecord;
coord3d Point; /*0x0*/
coord3d Vector; /*0xC*/
ModelNode *leftChild; /*0x18 back/first */
ModelNode *rightChild; /*0x1C front/last */
s16 reserved; /*0x20 padding or u32*/
u16 RwDataIndex; /*0x22*/
} ModelRoData_BSPRecord;
typedef struct ModelRwData_BSPRecord
{
bool visible;
} ModelRwData_BSPRecord;
/**
* Opcode 10 0xA
* Box within which collisions are tested
*/
typedef struct ModelNode_BoundingBoxRecord
typedef struct ModelRoData_BoundingBoxRecord
{
u32 ModelNumber; /*0x0*/
struct bbox Bounds; /*0x4*/
} ModelNode_BoundingBoxRecord;
} ModelRoData_BoundingBoxRecord;
/**
* Opcode 11
* unused but referenced
*/
typedef struct ModelNode_Op11Record
typedef struct ModelRoData_Op11Record
{
u32 unk0c[16]; /*0x0*/
f32 BoundingVolumeRadius;
u16 number; /*0x44*/
} ModelNode_Op11Record;
u16 RwDataIndex; /*0x44*/
u16 unk46;
void* BaseAddr;
} ModelRoData_Op11Record;
typedef struct ModelRwData_Op11Record
{
s16 unk00;
s16 unk02;
} ModelRwData_Op11Record;
/**
* Opcode 12 0xC
*/
typedef struct ModelNode_GunfireRecord
typedef struct ModelRoData_GunfireRecord
{
coord3d Offset; /*0x0*/
coord3d Size; /*0xC*/
void * Image; /*0x18*/
f32 Scale; /*0x1c*/
u16 number; /*0x20*/
u16 reserved; /*0x22 padding*/
u32 reserved2; /*0x24 padding*/
} ModelNode_GunfireRecord;
coord3d Offset; /*0x0*/
coord3d Size; /*0xC*/
void * Image; /*0x18*/
f32 Scale; /*0x1c*/
u16 RwDataIndex; /*0x20*/
u16 reserved; /*0x22 padding*/
u32 BaseAddr; /*0x24 padding*/
} ModelRoData_GunfireRecord;
typedef struct ModelRwData_GunfireRecord
{
s16 visible;
u16 unk02;
} ModelRwData_GunfireRecord;
/**
* Opcode 13 0xD
* Draws a shadow under character only
*/
typedef struct ModelNode_ShadowRecord
typedef struct ModelRoData_ShadowRecord
{
coord2d pos; /*0x0*/
coord2d size; /*0x8*/
void *image; /*0x10*/
ModelNode_HeaderRecord *Header; /*0x14*/
f32 Scale; /*0x18*/
u16 number; /*0x1C*/
u16 reserved; /*0x1E padding*/
} ModelNode_ShadowRecord;
coord2d pos; /*0x0*/
coord2d size; /*0x8*/
void *image; /*0x10*/
ModelRoData_HeaderRecord *Header; /*0x14*/
f32 Scale; /*0x18*/
void *BaseAddr; /*0x1C*/
} ModelRoData_ShadowRecord;
/**
* Opcode 14
* unused
*/
typedef struct ModelNode_Op14Record
typedef struct ModelRoData_Op14Record
{
coord3d pos; /*0x0*/
f32 Scale; /*0xC*/
} ModelNode_Op14Record;
} ModelRoData_Op14Record;
/**
* Opcode 15 0xF
@@ -980,14 +1120,14 @@ typedef union
* The key value is used to represent a node, an arc, or a node name, if the
* node represents a database entity
*/
typedef struct ModelNode_InterlinkageRecord
typedef struct ModelRoData_InterlinkageRecord
{
coord3d pos; /*0x0*/
u32 unknown1; /*0xC*/
u32 unknown2; /*0x10*/
u32 unknown3; /*0x14*/
f32 Scale; /*0x18*/
} ModelNode_InterlinkageRecord;
} ModelRoData_InterlinkageRecord;
/**
* Opcode 16
@@ -1012,12 +1152,17 @@ typedef union
* The mask may inhibit the display of some, none, or all of the switch node
* children.
*/
typedef struct ModelNode_SwitchRecord
typedef struct ModelRoData_SwitchRecord
{
ModelNode *Controls; /*0x0 Which node to display (Must be Child)*/
u16 number; /*0x4*/
u16 reserved; /*0x6 padding*/
} ModelNode_SwitchRecord;
ModelNode *Controls; /*0x0 Which node to display (Must be Child)*/
u16 RwDataIndex; /*0x4*/
u16 reserved; /*0x6 padding*/
} ModelRoData_SwitchRecord;
typedef struct ModelRwData_SwitchRecord
{
bool visible;
} ModelRwData_SwitchRecord;
/**
* Opcode 19
@@ -1033,56 +1178,112 @@ typedef union
* Opcode 21 0x15
* Simple Group used to position Cartridge ejection and held items
*/
typedef struct ModelNode_GroupSimpleRecord
typedef struct ModelRoData_GroupSimpleRecord
{
coord3d Origin; /*0x0*/
u16 Group1; /*0xC*/
s16 Group1; /*0xC*/
u16 Group2; /*0xE*/
f32 BoundingVolumeRadius; /*0x10*/
} ModelNode_GroupSimpleRecord;
} ModelRoData_GroupSimpleRecord;
/**
* Opcode 22 0x16
* Primary Display List Only
*/
typedef struct ModelNode_DisplayListPrimaryRecord
typedef struct ModelRoData_DisplayListPrimaryRecord
{
u16 numVertices; /*0x0*/
s32 numVertices; /*0x0*/
Vertex *Vertices; /*0x4*/
Gfx *Primary; /*0x8*/
u32 reserved; /*0xC*/
} ModelNode_DisplayListPrimaryRecord;
void *BaseAddr; /*0xC*/
} ModelRoData_DisplayListPrimaryRecord;
/**
* Opcode 23 0x17
* Head Placeholder for Random Heads
*/
typedef struct ModelNode_HeadPlaceholderRecord
typedef struct ModelRoData_HeadPlaceholderRecord
{
u16 number; //referenced by extract_id_from_object_structure_microcode()
} ModelNode_HeadPlaceholderRecord;
u16 RwDataIndex;
} ModelRoData_HeadPlaceholderRecord;
typedef struct ModelRwData_HeadPlaceholderRecord
{
struct ModelFileHeader *ModelFileHeader;
void *RwDatas;
} ModelRwData_HeadPlaceholderRecord;
/**
* Opcode 24 0x18
* Full Display List with Collision Table
*/
typedef struct ModelNode_DisplayList_CollisionRecord
typedef struct ModelRoData_DisplayList_CollisionRecord
{
Gfx *Primary; /*0x0*/
Gfx *Secondary; /*0x4*/ // optional
Vertex *Vertices; /*0x8*/
u16 numVertices; /*0xC*/
u16 numCollisionVertices; /*0xE*/
Vertex *CollisionVertices; /*0x10 Table of vertices with unique point in space (UV's and Colour are disregarded). */
s16 *PointUsage; /*0x14*/
u16 ModelType; /*0x18*/
u16 unknown; /*0x1A*/
u16 number; /*0x1C*/
u16 reserved; /*0x1E*/
} ModelNode_DisplayList_CollisionRecord;
Gfx *Primary; /*0x0*/
Gfx *Secondary; /*0x4*/ // optional
Vertex *Vertices; /*0x8*/
u16 numVertices; /*0xC*/
s16 numCollisionVertices; /*0xE*/
Vertex *CollisionVertices; /*0x10 Table of vertices with unique point in space (UV's and Colour are disregarded). */
s16 *PointUsage; /*0x14*/
s16 ModelType; /*0x18*/
u16 RwDataIndex; /*0x1A*/
void *BaseAddr; /*0x1C*/
} ModelRoData_DisplayList_CollisionRecord;
typedef struct ModelRwData_DisplayList_CollisionRecord
{
Vertex *Vertices;
Gfx *gdl;
} ModelRwData_DisplayList_CollisionRecord;
#pragma endregion Model Node OpCode Definitions
/*
* Handy Union for each type of RoData
*/
union ModelRoData
{
struct ModelRoData_HeaderRecord Header;
struct ModelRoData_GroupRecord Group;
struct ModelRoData_DisplayListRecord DisplayList;
struct ModelRoData_Op05Record Op05;
struct ModelRoData_Op06Record Op06;
struct ModelRoData_Op07Record Op07;
struct ModelRoData_LODRecord LOD;
struct ModelRoData_BSPRecord BSP;
struct ModelRoData_BoundingBoxRecord BoundingBox;
struct ModelRoData_Op11Record Op11;
struct ModelRoData_GunfireRecord Gunfire;
struct ModelRoData_ShadowRecord Shadow;
struct ModelRoData_Op14Record Op14;
struct ModelRoData_InterlinkageRecord Interlinkage;
struct ModelNode_Op16Record Op16;
struct ModelRoData_SwitchRecord Switch;
struct ModelRoData_GroupSimpleRecord GroupSimple;
struct ModelRoData_DisplayListPrimaryRecord DisplayListPrimary;
struct ModelRoData_HeadPlaceholderRecord HeadPlaceholder;
struct ModelRoData_DisplayList_CollisionRecord DisplayListCollisions;
};
/*
* Handy Union for each type of RwData
*/
union ModelRwData
{
struct ModelRwData_HeaderRecord Header;
struct ModelRwData_DisplayListRecord DisplayList;
struct ModelRwData_Op07Record Op07;
struct ModelRwData_LODRecord LOD;
struct ModelRwData_BSPRecord BSP;
struct ModelRwData_Op11Record Op11;
struct ModelRwData_GunfireRecord Gunfire;
struct ModelRwData_SwitchRecord Switch;
struct ModelRwData_HeadPlaceholderRecord HeadPlaceholder;
struct ModelRwData_DisplayList_CollisionRecord DisplayListCollisions;
};
#pragma endregion OpenFlight Records
@@ -1193,7 +1394,7 @@ typedef union
u16 unk00; /*0*/
u8 unk02; /*2*/
f32 ground; /*4*/
coord3d pos; //8, 12, 16 - this is the right poition for this, but no idea what this node actually is (used in extract_id_from_object_structure_microcode)
coord3d pos; //8, 12, 16 - this is the right poition for this, but no idea what this node actually is (used in modelGetNodeRwData)
f32 subroty; //14 angle - this also happens to fit best for getsubroty
f32 unk18; /*18*/
u32 unk1c; /*1c*/
@@ -1220,12 +1421,14 @@ typedef union
*/
typedef struct Model
{
u8 unk00; /*0x00*/
s16 Type; /*0x01*/ //per sub_GAME_7F075F68 should be s16?
struct ChrRecord *chr; /*0x04*/
ModelFileHeader *obj; /*0x08 GE Name confirmed*/
RenderPosView *render_pos; /*0x0c*/
void **datas; // array of pointers to modeldata structs /*0x10*/
u8 unk00; /*0x00*/ // init_standard_object() indicates that unk00 is a s16...
s16 Type; /*0x01*/ // but sub_GAME_7F075F68() indicates that Type is a s16...
// not sure which is correct.
struct ChrRecord *chr; /*0x04*/
ModelFileHeader *obj; /*0x08 GE Name confirmed*/
RenderPosView *render_pos; /*0x0c*/
union ModelRwData **datas; // array of pointers to modeldata structs /*0x10*/
f32 scale; /*0x14*/
struct Model *attachedto; /*0x18*/
@@ -1282,12 +1485,12 @@ typedef union
s32 unk64;
s32 unk68;
s32 unk6c;
f32 unk6c;
// 0x70
s32 unk70;
f32 unk70;
s32 unk74;
s32 unk78;
s32 unk7c;
f32 unk7c;
// 0x80
s32 unk80;
@@ -1296,7 +1499,7 @@ typedef union
*/
f32 unk84;
s32 unk88;
f32 unk88;
s32 unk8c;
// 0x90
f32 animloopframe; /*0x90*/
@@ -1306,7 +1509,7 @@ typedef union
// 0xa0
s32 unka0;
f32 unka4; // used by ACT_STAND in chrlv
f32 unka8;
f32 animrate;
f32 unkac;
// 0xb0
f32 unkb0;
@@ -1997,7 +2200,7 @@ typedef union
typedef struct ChrRecord_f180
{
/***/
char unk00;
s8 unk00;
s8 item_id; // type ITEM_IDS
char unk02;
char unk03;
@@ -2017,7 +2220,7 @@ typedef union
typedef struct ObjectRecord_f6c
{
u32 id;
u32 flags;
coord3d pos;
/**
@@ -2059,7 +2262,7 @@ typedef union
u32 unka0;
u32 unka4;
u32 unka8;
u32 animrate;
u32 unkac;
f32 unkb0; // runtime y position?
@@ -2264,16 +2467,9 @@ typedef union
struct collision_data {
s32 unk00;
s32 unk04;
s32 unk08;
s32 unk0C;
s32 unk10;
s32 unk14;
s32 unk18;
s32 unk1C;
rect4f unk04;
s32 unk20;
s32 unk24;
s32 unk28;
s32 unk2C;
@@ -2683,9 +2879,9 @@ typedef union
* If you reset this to 0 (NULL pointer), then the door opening
* sound never stops playing.
*/
void *unkf4; // ALSoundState *openSoundState;
ALSoundState *openSoundState;
void *unkf8; // ALSoundState *closeSoundState;
ALSoundState *closeSoundState;
/**
* Copy of global timer value.
@@ -2708,7 +2904,7 @@ typedef union
typedef struct GlobalDoorScaleRecord
{
inherits PropDefHeaderRecord;
u32 Scale;
s32 Scale;
} GlobalDoorScaleRecord;
#define New_GlobalDoorScaleRecord(Scale) \
@@ -3014,6 +3210,18 @@ typedef union
// PROPDEF_HAT (17)
// PROPDEF_GUARD_ATTRIBUTE (18)
typedef struct GuardAttributeRecord
{
inherits PropDefHeaderRecord;
s32 chrnum; //0x4
s16 unk8; //0x8
s8 unkA; // 0xa
s8 GrenadeProb; //0xb
} GuardAttributeRecord;
#define New_SwitchRecord(ID1, ID2) \
{ \
New_PropDefHeaderRecord(19), ID1 + 0, ID2 + 0 \
}
// PROPDEF_SWITCH (19) - see LinkRecord
#define New_SwitchRecord(ID1, ID2) \
@@ -3364,8 +3572,8 @@ typedef union
s32 CullDist;
s32 unk88;
s32 unk8c;
s32 unk90;
} GlassData;
f32 unk90;
} TintedGlassRecord;
#define New_TintedGlassRecord(pad) \
{ \
New_PropDefHeaderRecord(47), 0, pad + 0 \
@@ -3550,7 +3758,9 @@ struct SetupIntroCredits
enum WATCH_BRIEFING_PAGE menu;//4
u16 reserved;//8
u16 text; //a
struct watchMenuObjectiveText *nextentry; //c
u16 unkC; //c
s8 unkD; //d
s8 difficulty; //f
};
#pragma endregion Objectives
@@ -3573,6 +3783,36 @@ struct SetupIntroCredits
#pragma endregion Images
#pragma region Player
typedef struct SkyRelated38 {
f32 unk00; /*0x00*/
f32 unk04; /*0x04*/
f32 unk08; /*0x08*/
f32 unk0c; /*0x0c*/
f32 r; /*0x10*/
f32 g; /*0x14*/
f32 b; /*0x18*/
f32 a; /*0x1c*/
f32 unk20; /*0x20*/
f32 unk24; /*0x24*/
f32 unk28; /*0x28*/
f32 unk2c; /*0x2c*/
f32 unk30; /*0x30*/
f32 unk34; /*0x34*/
} SkyRelated38;
typedef struct SkyRelated18 {
f32 unk00; /*0x00*/
f32 unk04; /*0x04*/
f32 unk08; /*0x08*/
f32 unk0c; /*0x0c*/
f32 unk10; /*0x10*/
u8 r; /*0x14*/
u8 g; /*0x15*/
u8 b; /*0x16*/
u8 a; /*0x17*/
} SkyRelated18;
#pragma endregion Player
#pragma region stagesetup.h
@@ -3581,7 +3821,7 @@ struct SetupIntroCredits
waypoint *pathwaypoints;
waygroup *waypointgroups;
struct SetupIntroEmpty *intro;
s32 *propDefs;
PropDefHeaderRecord *propDefs;
PathRecord *patrolpaths;
AIListRecord *ailists;
PadRecord *pads;
+3 -3
View File
@@ -160,7 +160,7 @@ void bossInitMainthreadData(void)
viInitDebugNoticeList();
viInitVideoSettings();
indycommInit();
g_DebugAndUpdateStageFlag = rmonIsDisabled();
g_DebugAndUpdateStageFlag = rmonGetToken();
obInitDebugNoticeList();
rspInitDebugNoticeList();
dynInitDebugNoticeList();
@@ -477,7 +477,7 @@ void bossMainloop(void)
#if defined(VERSION_EU)
profileSetMarker();
speedGraphVideoRelated_2();
speedGraphDisplay(0x20004);
speedGraphDisplay(0x20000);
#else
video_DL_related_4();
speedGraphVideoRelated_2();
@@ -500,7 +500,7 @@ void bossMainloop(void)
g_DebugMode = g_DebugHighlightedOption;
} else
#endif
#ifndef DEBUGMEN
#ifndef DEBUGMENU
if (g_BossIsDebugMenuOpen)
#endif
{
+411 -25
View File
@@ -1,8 +1,9 @@
#include <ultra64.h>
#include <PR/os.h>
#include <bondgame.h>
#include "fr.h"
#include "tlb_manage.h"
#include "deb_print.h"
#include "crash.h"
#include "ramrom.h"
#include <PR/R4300.h>
#include "thread_config.h"
@@ -21,7 +22,7 @@
#define g_indyReadBuffer_LEN 0x60
/**
* Copied from n64devkit\ultra\usr\src\pr\demos\fault\fault.c
* Copied from n64devkit\ultra\usr\src\pr\demos\fault\crash.c
*/
#define MSG_FAULT 0x10
@@ -144,25 +145,184 @@ char g_tlbStack[0x2300];
OSMesgQueue g_faultMesgQ;
OSMesg *g_faultMesgBuf;
/**
* EU .data, offset from start of data_seg : 0x2540
*/
// Padding
u32 D_80023300 = 0;
//The following regDesc's are similar to PR/Tools/Gload/Server.c
/*
* Cause Register
*/
static regDesc_t causeDesc[] = {
{CAUSE_BD, CAUSE_BD, "BD"},
/* Interrupt pending bits */
{CAUSE_IP8, CAUSE_IP8, "IP8"},
{CAUSE_IP7, CAUSE_IP7, "IP7"},
{CAUSE_IP6, CAUSE_IP6, "IP6"},
{CAUSE_IP5, CAUSE_IP5, "IP5"},
{CAUSE_IP4, CAUSE_IP4, "IP4"},
{CAUSE_IP3, CAUSE_IP3, "IP3"},
{CAUSE_SW2, CAUSE_SW2, "IP2"},
{CAUSE_SW1, CAUSE_SW1, "IP1"},
/* Hardware exception codes */
{CAUSE_EXCMASK, EXC_INT, "Int"},
{CAUSE_EXCMASK, EXC_MOD, "TLBmod"},
{CAUSE_EXCMASK, EXC_RMISS, "TLBload"},
{CAUSE_EXCMASK, EXC_WMISS, "TLBstore"},
{CAUSE_EXCMASK, EXC_RADE, "Address error on load or instruction fetch"},
{CAUSE_EXCMASK, EXC_WADE, "Address error on store"},
{CAUSE_EXCMASK, EXC_IBE, "Bus error exception on instruction fetch"},
{CAUSE_EXCMASK, EXC_DBE, "Bus error exception on data reference"},
{CAUSE_EXCMASK, EXC_SYSCALL, "Syscall"},
{CAUSE_EXCMASK, EXC_BREAK, "Brk"},
{CAUSE_EXCMASK, EXC_II, "Reserved instruction"},
{CAUSE_EXCMASK, EXC_CPU, "Cop unusable"},
{CAUSE_EXCMASK, EXC_OV, "Overflow"},
{CAUSE_EXCMASK, EXC_TRAP, "Trap"},
{CAUSE_EXCMASK,
EXC_VCEI,
"Virtual coherency exception on intruction fetch"},
{CAUSE_EXCMASK, EXC_FPE, "Fp exception"},
{CAUSE_EXCMASK, EXC_WATCH, "Watchpoint"},
{CAUSE_EXCMASK, EXC_VCED, "Virtual coherency exception on data reference"},
{0, 0, ""},
};
/*
* Status register
*/
static regDesc_t srDesc[] = {
{SR_CU3, SR_CU3, "CU3"},
{SR_CU2, SR_CU2, "CU2"},
{SR_CU1, SR_CU1, "CU1"},
{SR_CU0, SR_CU0, "CU0"},
{SR_RP, SR_RP, "RP"},
{SR_FR, SR_FR, "FR"},
{SR_RE, SR_RE, "RE"},
{SR_BEV, SR_BEV, "BEV"},
{SR_TS, SR_TS, "TS"},
{SR_SR, SR_SR, "SR"},
{SR_CH, SR_CH, "CH"},
{SR_CE, SR_CE, "CE"},
{SR_DE, SR_DE, "DE"},
/*
* Interrupt enable bits
* (NOTE: bits set to 1 enable the corresponding level interrupt)
*/
{SR_IBIT8, SR_IBIT8, "IM8"},
{SR_IBIT7, SR_IBIT7, "IM7"},
{SR_IBIT6, SR_IBIT6, "IM6"},
{SR_IBIT5, SR_IBIT5, "IM5"},
{SR_IBIT4, SR_IBIT4, "IM4"},
{SR_IBIT3, SR_IBIT3, "IM3"},
{SR_IBIT2, SR_IBIT2, "IM2"},
{SR_IBIT1, SR_IBIT1, "IM1"},
{SR_KX, SR_KX, "KX"},
{SR_SX, SR_SX, "SX"},
{SR_UX, SR_UX, "UX"},
{SR_KSU_MASK, SR_KSU_USR, "USR"},
{SR_KSU_MASK, SR_KSU_SUP, "SUP"},
{SR_KSU_MASK, SR_KSU_KER, "KER"},
{SR_ERL, SR_ERL, "ERL"},
{SR_EXL, SR_EXL, "EXL"},
{SR_IE, SR_IE, "IE"},
{0, 0, ""}
};
/*
* floating-point status register
*/
static regDesc_t fpcsrDesc[] = {
{FPCSR_FS, FPCSR_FS, "FS"},
{FPCSR_C, FPCSR_C, "C"},
{FPCSR_CE, FPCSR_CE, "Unimplemented"},
{FPCSR_CV, FPCSR_CV, "Invalid op"},
{FPCSR_CZ, FPCSR_CZ, "/ by 0.0"},
{FPCSR_CO, FPCSR_CO, "Overflow"},
{FPCSR_CU, FPCSR_CU, "Underflow"},
{FPCSR_CI, FPCSR_CI, "Inexact op"},
{FPCSR_EV, FPCSR_EV, "EV"},
{FPCSR_EZ, FPCSR_EZ, "EZ"},
{FPCSR_EO, FPCSR_EO, "EO"},
{FPCSR_EU, FPCSR_EU, "EU"},
{FPCSR_EI, FPCSR_EI, "EI"},
{FPCSR_FV, FPCSR_FV, "FV"},
{FPCSR_FZ, FPCSR_FZ, "FZ"},
{FPCSR_FO, FPCSR_FO, "FO"},
{FPCSR_FU, FPCSR_FU, "FU"},
{FPCSR_FI, FPCSR_FI, "FI"},
{FPCSR_RM_MASK, FPCSR_RM_RN, "RN"},
{FPCSR_RM_MASK, FPCSR_RM_RZ, "RZ"},
{FPCSR_RM_MASK, FPCSR_RM_RP, "RP"},
{FPCSR_RM_MASK, FPCSR_RM_RM, "RM"},
{0, 0, ""}
};
void *g_StackPtrs1[STACK_POINTER_COUNT] = {&sp_rmon, &sp_idle, &sp_shed, &sp_main, &sp_audi};
#ifndef VERSION_EU
void *g_StackPtrs2[STACK_POINTER_COUNT] = {&sp_idle, &sp_shed, &sp_main, &sp_audi, &sp_debug};
#else
// no sp_debug
void *g_StackPtrs2[STACK_POINTER_COUNT] = {&sp_idle, &sp_shed, &sp_main, &sp_audi, &cfb_16};
#endif
void *g_StackPtrs3[STACK_POINTER_COUNT] = {&sp_rmon, &sp_idle, &sp_shed, &sp_main, &sp_audi};
// 71 x 32 text buffer (32th line is not drawn)
unsigned char g_DebugOutputTextBuffer[32][71] = {0};
static s32 g_DebugOutputCurrentPosX = 0;
static s32 g_DebugOutputCurrentPosY = 0;
// 4 x 7 bitmaps of ascii characters (0x20 - 0x7E), each padded to 32 bits
u32 g_DebugOutputBitmaps[] = {
0x00000000, 0x22220200, 0x55000000, 0x05F5F500, 0x27427200, // ' ', '!', '\"', '#', '$'
0x05124500, 0x34255300, 0x22000000, 0x24444420, 0x42222240, // '%', '&', '\'', '(', ')'
0x06F6F600, 0x00272000, 0x00000240, 0x00070000, 0x00000200, // '*', '+', '\,', '-', '.'
0x11224480, 0x25555200, 0x26222700, 0x25125700, 0x61211600, // '/', '0', '1', '2', '3'
0x33557300, 0x64611600, 0x24655200, 0x71112200, 0x25755200, // '4', '5', '6', '7', '8'
0x25531600, 0x00200200, 0x00200640, 0x01242100, 0x00707000, // '9', ':', ';', '<', '='
0x04212400, 0x07120200, 0x25FF5700, 0x02557D00, 0x06575E00, // '>', '?', '@', 'A', 'B'
0x07445300, 0x07555600, 0x07565700, 0x07564400, 0x07C95700, // 'C', 'D', 'E', 'F', 'G'
0x05575500, 0x07222700, 0x03111600, 0x05665500, 0x04445F00, // 'H', 'I', 'J', 'K', 'L'
0x0DFF9D00, 0x0F777D00, 0x07DD5700, 0x07564600, 0x07995770, // 'M', 'N', 'O', 'P', 'Q'
0x07565500, 0x07461E00, 0x07222200, 0x0D999600, 0x0D552200, // 'R', 'S', 'T', 'U', 'V'
0x0DF77500, 0x0D625500, 0x05622600, 0x07125700, 0x32222230, // 'W', 'X', 'Y', 'Z', '['
0x44222110, 0x62222260, 0x25000000, 0x00000700, 0x42200000, // '\\', ']', '^', '_', '`'
0x0067D700, 0x44755700, 0x00788600, 0x117DD700, 0x006FC700, // 'a', 'b', 'c', 'd', 'e'
0x32722700, 0x007DD730, 0x44755500, 0x02622700, 0x02711130, // 'f', 'g', 'h', 'i', 'j',
0x44766500, 0x62222700, 0x00FFFF00, 0x00755D00, 0x006DD600, // 'k', 'l', 'm', 'n', 'o'
0x00755740, 0x00799710, 0x00744600, 0x00775700, 0x02722300, // 'p', 'q', 'r', 's', 't'
0x00555700, 0x00552200, 0x00577500, 0x00562500, 0x00552220, // 'u', 'v', 'w', 'x', 'y'
0x00703700, 0x12242210, 0x02222220, 0x42212240, 0x005A0000 // 'z', '{', '|', '}', '~'
};
u16 *g_DebugOutputVideoBuffer1 = NULL;
u16 *g_DebugOutputVideoBuffer2 = NULL;
// Padding
u32 D_80024184[4] = {0};
// forward declarations
void faultMain(void* arg0);
void crashMain(void* arg0);
// end forward declarations
/**
* 5AE0 70004EE0
*/
void faultInit(void)
void crashInit(void)
{
deboutInitBuffers();
crashInitBuffers();
osCreateMesgQueue(&g_faultMesgQ, (OSMesg *)&g_faultMesgBuf, TLB_MESSAGE_QUEUE_SIZE);
osCreateThread(&g_tlbThread, TLB_THREAD_ID, &faultMain, NULL, &g_tlbStack, TLB_THREAD_PRIORITY);
osCreateThread(&g_tlbThread, TLB_THREAD_ID, &crashMain, NULL, &g_tlbStack, TLB_THREAD_PRIORITY);
osStartThread(&g_tlbThread);
}
@@ -172,7 +332,7 @@ void faultInit(void)
* @param arg0 Unused.
*/
extern OSThread *__osRunQueue;
void faultMain(void* arg0)
void crashMain(void* arg0)
{
OSMesg msg = 0;
OSIntMask mask;
@@ -202,8 +362,8 @@ void faultMain(void* arg0)
else if (((curr->context.cause & 0x7c) == 8) && ((curr->context.badvaddr & 0xFFC00000) == (u32)0x7F000000))
{
tlbmanageTranslateLoadRomFromTlbAddress(curr->context.badvaddr);
curr->state = (u16)0xA;
curr->flags = (u16)0;
curr->state = OS_STATE_RUNNABLE | OS_STATE_WAITING;;
curr->flags = OS_READ;
__osEnqueueThread(&__osRunQueue, curr);
osSetIntMask(mask);
@@ -383,7 +543,7 @@ s32 crashIsReturnAddress(u32 *instruction)
*
* Max length returned is 256.
*/
s32 indyStrlen(u8 *arg0)
s32 crashGetStrLen(u8 *arg0)
{
s32 count = 0;
u8 c;
@@ -412,7 +572,7 @@ char g_indyReadBuffer[g_indyReadBuffer_LEN];
* V0= total size of one word, two strings at hardware A0
* accepts: A0=hardware address
*/
u8 *indyFileGetAddressSubsequentData(u8 *arg0)
u8 *crashIndyFileGetAddressSubsequentData(u8 *arg0)
{
u32 returnAddress;
@@ -421,13 +581,13 @@ u8 *indyFileGetAddressSubsequentData(u8 *arg0)
g_indyCurrentReadBufferResourceId = (u32*)(*(s32*) &g_indyReadBuffer);
g_indyReadBufferString1 = (u8*)&g_indyReadBuffer[4];
g_indyReadBufferString2 = (u8 *) (
indyStrlen(g_indyReadBufferString1)
crashGetStrLen(g_indyReadBufferString1)
+ (u32)g_indyReadBufferString1
+ 1);
returnAddress =
indyStrlen(g_indyReadBufferString1)
+ ((u32)arg0 + indyStrlen(g_indyReadBufferString2))
crashGetStrLen(g_indyReadBufferString1)
+ ((u32)arg0 + crashGetStrLen(g_indyReadBufferString2))
+ 6;
if (returnAddress & 3)
@@ -443,7 +603,7 @@ u8 *indyFileGetAddressSubsequentData(u8 *arg0)
* scan for and load resourceID A0 from indy.read.buf
* accepts: A0=resourceID
*/
s32 indyScanLoadResourceIdFromBuffer(u32 arg0)
s32 crashIndyScanLoadResourceIdFromBuffer(u32 arg0)
{
u32 *temp_v1;
u8 *phi_s0 = (u8 *)0xE00004;
@@ -455,7 +615,7 @@ s32 indyScanLoadResourceIdFromBuffer(u32 arg0)
while (1)
{
v0 = indyFileGetAddressSubsequentData(phi_s0);
v0 = crashIndyFileGetAddressSubsequentData(phi_s0);
temp_v1 = g_indyCurrentReadBufferResourceId;
@@ -474,7 +634,7 @@ s32 indyScanLoadResourceIdFromBuffer(u32 arg0)
phi_s0 = v0;
}
indyFileGetAddressSubsequentData(phi_s3);
crashIndyFileGetAddressSubsequentData(phi_s3);
return 1;
}
@@ -483,9 +643,9 @@ s32 indyScanLoadResourceIdFromBuffer(u32 arg0)
* 5FC8 700053C8
* V0= TRUE if valid indy.read.buf.resourceID [matches 826475BE]
*/
u32 indyIsValidReadBufferResourceId(void)
u32 crashIidyIsValidReadBufferResourceId(void)
{
indyFileGetAddressSubsequentData((u8*)0xe00000);
crashIndyFileGetAddressSubsequentData((u8*)0xe00000);
return ((u32)g_indyCurrentReadBufferResourceId ^ 0x826475be) == 0;
}
@@ -493,8 +653,25 @@ u32 indyIsValidReadBufferResourceId(void)
* 5FFC 700053FC
* unconditional return
*/
void indyRemoved01(void)
void crashIndyRemoved01(void)
{
//from pd
#ifdef VERSION_DEBUG
s32 numvalid = 0;
s32 i;
for (i = 0; i < 4; i++) {
if (g_indyReadBufferString1[i] >= '!' && g_indyReadBufferString1[i] <= 0x7f) {
numvalid++;
}
}
if (numvalid == 4) {
rmonPrintf("%.49s", g_indyReadBufferString1);
} else {
rmonPrintf("???");
}
#endif
return;
}
@@ -502,8 +679,24 @@ void indyRemoved01(void)
* 6004 70005404
* unconditional return
*/
void indyRemoved02(void)
void crashIndyRemoved02(void)
{
#ifdef VERSION_DEBUG
s32 numvalid = 0;
s32 i;
for (i = 0; i < 4; i++) {
if (g_indyReadBufferString2[i] >= '!' && g_indyReadBufferString2[i] <= 0x7f) {
numvalid++;
}
}
if (numvalid == 4) {
rmonPrintf("%.41s", g_indyReadBufferString2);
} else {
rmonPrintf("???");
}
#endif
return;
}
@@ -511,10 +704,10 @@ void indyRemoved02(void)
* 600C 7000540C
* unconditional return
*/
void indyPrintReadBufferResourceId(void)
void crashIndyPrintReadBufferResourceIdI(void)
{
#ifdef DEBUG
osSyncPrintf("%08x",_g_indyCurrentReadBufferResourceId); //from pd beta
#ifdef ENABLE_LOG
rmonPrintf("%08x",g_indyCurrentReadBufferResourceId); //from pd beta
#endif
return;
}
@@ -523,7 +716,7 @@ void indyPrintReadBufferResourceId(void)
* 6014 70005414
* V0= indy.read.buf.resourceID [80063664]
*/
u32 * indyGetReadBufferResourceId(void)
u32 * crashIndyGetReadBufferResourceId(void)
{
return g_indyCurrentReadBufferResourceId;
}
@@ -634,6 +827,20 @@ s32 crashPrintFloat(s32 index, f32 value)
return crashIsDouble(value);
}
#ifdef VERSION_DEBUG
void crashPrint2Floats(s32 index, f32 value1, f32 value2)
{
crashPrintFloat(index, value1);
crashPrintFloat(index + 1, value2);
}
void crashPrint3Floats(s32 index, f32 value1, f32 value2, f32 value3)
{
crashPrintFloat(index, value1);
crashPrintFloat(index + 1, value2);
crashPrintFloat(index + 2, value3);
}
#endif
/**
* 61C8 700055C8
* removed: set normality of single-precision floats A1, A2, A3, SP+10 in table at A0
@@ -656,3 +863,182 @@ void crashRender(void) {
return;
}
/**
* DebConTextPos
* Sets the position where text will be displayed inside console window
* (Does not draw - see print_to_vidbuff1)
* @param x: column in which to display text (0-71)
* @param y: line in which to display text (0-31)
* @param c: Character to Print
*/
void crashPutChar(s32 x, s32 y, unsigned char c)
{
// replace tabs and line feeds with nothing
if ((c == '\t') || (c == '\n'))
{
c = '\0';
}
// is printable char? if not replace with "?"
if ((c > '\0') && (c < ' ') || (c > '~'))
{
c = '?';
}
if (((x >= 0) && (x <= 71)) && ((y >= 0) && (y <= 31)))
{
// Debug Window is 71 chars wide 32 rows high
//! BUG 71 is accepted as xpos but will overflow the buffer
g_DebugOutputTextBuffer[y][x] = c;
}
}
/**
* crashAppendChar
* Parse Character and save to On-Screen Buffer
* @param c: Character to parse
*/
void crashAppendChar(unsigned char c)
{
if (c != '\0')
{
if (c == '\t')
{
do
{
crashAppendChar(' '); // fill with blanks
} while (g_DebugOutputCurrentPosX & 7);
return;
}
if (c == '\n')
{
g_DebugOutputCurrentPosY++;
g_DebugOutputCurrentPosX = 0;
}
if (g_DebugOutputCurrentPosY > 30)
{
crashScroll(g_DebugOutputCurrentPosY - 30);
g_DebugOutputCurrentPosY = 30;
}
if (c != '\n')
{
crashPutChar(g_DebugOutputCurrentPosX, g_DebugOutputCurrentPosY, c);
g_DebugOutputCurrentPosX++;
if (g_DebugOutputCurrentPosX > 70)
{
g_DebugOutputCurrentPosX = 0;
g_DebugOutputCurrentPosY++;
}
}
}
}
/**
* Scroll Buffer up by a number of lines
* @param LinesToScroll: Number of Lines to scroll upward
*/
void crashScroll(s32 numlines)
{
s32 y;
s32 x;
while (numlines-- > 0)
{
for (y = 0; y < 31; y++)
{
for (x = 0; x < 71; x++)
{
g_DebugOutputTextBuffer[y][x] = g_DebugOutputTextBuffer[y + 1][x];
}
}
}
}
/**
* Print 4x8 1bit Glyph to stderr screen at position (x,y)
* @param x: Pixels from left within the stderr box
* @param y: Pixels from top within the stderr box
* @param c: the character to display
*/
void crashRenderChar(s32 x, s32 y, unsigned char c)
{
s32 bitmap_x;
s32 bitmap_y;
u32 bitmap;
s16 screen_w = viGetX();
u16 *Vidbufp;
if (c == '\0')
{
c = ' '; //replace nul with space
}
if ((c >= ' ') && (c <= '~')) //if valid char
{
Vidbufp = (g_DebugOutputVideoBuffer1 + x + (y * screen_w));
bitmap = g_DebugOutputBitmaps[c - ' '];
for (bitmap_y = 0; bitmap_y < 7; bitmap_y++)
{
for (bitmap_x = 0; bitmap_x < 4; bitmap_x++)
{
if (bitmap & (1 << 31))
{
*Vidbufp = GPACK_RGBA5551(255, 255, 255, 1);
}
else
{
*Vidbufp = GPACK_RGBA5551(0, 0, 0, 1);
}
Vidbufp++;
bitmap <<= 1; //
}
Vidbufp += screen_w;
Vidbufp -= 4;
}
}
}
/**
* Set pointers to video buffers 1 & 2.
* Converts values to uncached addresses
* @param cfba | A0000000 -> 8002417C
* @param cfbb | A0000000 -> 80024180
*/
void crashSetBuffers(u16 *buffer1, u16 *buffer2)
{
g_DebugOutputVideoBuffer1 = (void *)K0_TO_K1(buffer1);
g_DebugOutputVideoBuffer2 = (void *)K0_TO_K1(buffer2);
}
/**
* Set up the 2 16bit CFBs to Direct mapped, uncached memory
*/
void crashInitBuffers(void)
{
crashSetBuffers(&cfb_16[0], &cfb_16[1]);
}
/**
* crashRenderFrame
* write stderr to video buffer
* @param buffer: video buffer to render output
*/
void crashRenderFrame(u16 *buffer)
{
s32 screen_w;
s32 screen_h;
s32 output_w;
s32 output_h;
s32 x;
s32 y;
crashInitBuffers();
g_DebugOutputVideoBuffer1 = (void *)K0_TO_K1(buffer); // overwrite cfba
screen_w = ((viGetX() - 13) / 4);
screen_h = ((viGetY() - 10) / 7);
output_w = screen_w - 5; // - margin_w
output_h = screen_h - 1; // - margin_h
for (y = 0; ((y < output_h) && (y < 31)); y++)
{
for (x = 0; ((x < output_w) && (x < 71)); x++)
{
crashRenderChar(((x + 5) * 4), ((y + 1) * 7), g_DebugOutputTextBuffer[y][x]);
}
}
}
+11 -6
View File
@@ -1,5 +1,5 @@
#ifndef _DEBUG_PRINT_H_
#define _DEBUG_PRINT_H_
#ifndef _TLB_PAGING_H_
#define _TLB_PAGING_H_
#include <ultra64.h>
@@ -18,9 +18,14 @@ extern void *g_StackPtrs1[STACK_POINTER_COUNT];
extern void *g_StackPtrs2[STACK_POINTER_COUNT];
extern void *g_StackPtrs3[STACK_POINTER_COUNT];
void deboutWriteChar(unsigned char c);
void deboutScrollUp(s32 numlines);
void deboutInitBuffers();
void deboutDrawToBuffer(u16 *buffer);
void crashInit(void);
void crashMain(void* arg0);
void crashAppendChar(unsigned char c);
void crashScroll(s32 numlines);
void crashInitBuffers();
void crashRenderFrame(u16 *buffer);
#endif
+7 -3
View File
@@ -4,8 +4,12 @@
#include "deb.h"
#include "str.h"
#include "memp.h"
#include "fault.h"
#include "crash.h"
#include <PR/os.h>
#include "fr.h"
#include "tlb_manage.h"
#include <PR/R4300.h>
#include "thread_config.h"
struct deblistentry
{
struct deblistentry *next;
@@ -76,7 +80,7 @@ void debAdd(const char *name, void *data) {
void debInit(void) {
debTryAdd(&g_DebDebugData, "deb_c_debug");
faultInit();
crashInit();
}
void debTryAdd(void* data, const char *name) {
-348
View File
@@ -1,348 +0,0 @@
#include <ultra64.h>
#include "deb_print.h"
#include <bondgame.h>
#include "fr.h"
#include <PR/R4300.h>
/**
* EU .data, offset from start of data_seg : 0x2540
*/
// Padding
u32 D_80023300 = 0;
//The following regDesc's are similar to PR/Tools/Gload/Server.c
/*
* Cause Register
*/
static regDesc_t causeDesc[] = {
{CAUSE_BD, CAUSE_BD, "BD"},
/* Interrupt pending bits */
{CAUSE_IP8, CAUSE_IP8, "IP8"},
{CAUSE_IP7, CAUSE_IP7, "IP7"},
{CAUSE_IP6, CAUSE_IP6, "IP6"},
{CAUSE_IP5, CAUSE_IP5, "IP5"},
{CAUSE_IP4, CAUSE_IP4, "IP4"},
{CAUSE_IP3, CAUSE_IP3, "IP3"},
{CAUSE_SW2, CAUSE_SW2, "IP2"},
{CAUSE_SW1, CAUSE_SW1, "IP1"},
/* Hardware exception codes */
{CAUSE_EXCMASK, EXC_INT, "Int"},
{CAUSE_EXCMASK, EXC_MOD, "TLBmod"},
{CAUSE_EXCMASK, EXC_RMISS, "TLBload"},
{CAUSE_EXCMASK, EXC_WMISS, "TLBstore"},
{CAUSE_EXCMASK, EXC_RADE, "Address error on load or instruction fetch"},
{CAUSE_EXCMASK, EXC_WADE, "Address error on store"},
{CAUSE_EXCMASK, EXC_IBE, "Bus error exception on instruction fetch"},
{CAUSE_EXCMASK, EXC_DBE, "Bus error exception on data reference"},
{CAUSE_EXCMASK, EXC_SYSCALL, "Syscall"},
{CAUSE_EXCMASK, EXC_BREAK, "Brk"},
{CAUSE_EXCMASK, EXC_II, "Reserved instruction"},
{CAUSE_EXCMASK, EXC_CPU, "Cop unusable"},
{CAUSE_EXCMASK, EXC_OV, "Overflow"},
{CAUSE_EXCMASK, EXC_TRAP, "Trap"},
{CAUSE_EXCMASK,
EXC_VCEI,
"Virtual coherency exception on intruction fetch"},
{CAUSE_EXCMASK, EXC_FPE, "Fp exception"},
{CAUSE_EXCMASK, EXC_WATCH, "Watchpoint"},
{CAUSE_EXCMASK, EXC_VCED, "Virtual coherency exception on data reference"},
{0, 0, ""},
};
/*
* Status register
*/
static regDesc_t srDesc[] = {
{SR_CU3, SR_CU3, "CU3"},
{SR_CU2, SR_CU2, "CU2"},
{SR_CU1, SR_CU1, "CU1"},
{SR_CU0, SR_CU0, "CU0"},
{SR_RP, SR_RP, "RP"},
{SR_FR, SR_FR, "FR"},
{SR_RE, SR_RE, "RE"},
{SR_BEV, SR_BEV, "BEV"},
{SR_TS, SR_TS, "TS"},
{SR_SR, SR_SR, "SR"},
{SR_CH, SR_CH, "CH"},
{SR_CE, SR_CE, "CE"},
{SR_DE, SR_DE, "DE"},
/*
* Interrupt enable bits
* (NOTE: bits set to 1 enable the corresponding level interrupt)
*/
{SR_IBIT8, SR_IBIT8, "IM8"},
{SR_IBIT7, SR_IBIT7, "IM7"},
{SR_IBIT6, SR_IBIT6, "IM6"},
{SR_IBIT5, SR_IBIT5, "IM5"},
{SR_IBIT4, SR_IBIT4, "IM4"},
{SR_IBIT3, SR_IBIT3, "IM3"},
{SR_IBIT2, SR_IBIT2, "IM2"},
{SR_IBIT1, SR_IBIT1, "IM1"},
{SR_KX, SR_KX, "KX"},
{SR_SX, SR_SX, "SX"},
{SR_UX, SR_UX, "UX"},
{SR_KSU_MASK, SR_KSU_USR, "USR"},
{SR_KSU_MASK, SR_KSU_SUP, "SUP"},
{SR_KSU_MASK, SR_KSU_KER, "KER"},
{SR_ERL, SR_ERL, "ERL"},
{SR_EXL, SR_EXL, "EXL"},
{SR_IE, SR_IE, "IE"},
{0, 0, ""}
};
/*
* floating-point status register
*/
static regDesc_t fpcsrDesc[] = {
{FPCSR_FS, FPCSR_FS, "FS"},
{FPCSR_C, FPCSR_C, "C"},
{FPCSR_CE, FPCSR_CE, "Unimplemented"},
{FPCSR_CV, FPCSR_CV, "Invalid op"},
{FPCSR_CZ, FPCSR_CZ, "/ by 0.0"},
{FPCSR_CO, FPCSR_CO, "Overflow"},
{FPCSR_CU, FPCSR_CU, "Underflow"},
{FPCSR_CI, FPCSR_CI, "Inexact op"},
{FPCSR_EV, FPCSR_EV, "EV"},
{FPCSR_EZ, FPCSR_EZ, "EZ"},
{FPCSR_EO, FPCSR_EO, "EO"},
{FPCSR_EU, FPCSR_EU, "EU"},
{FPCSR_EI, FPCSR_EI, "EI"},
{FPCSR_FV, FPCSR_FV, "FV"},
{FPCSR_FZ, FPCSR_FZ, "FZ"},
{FPCSR_FO, FPCSR_FO, "FO"},
{FPCSR_FU, FPCSR_FU, "FU"},
{FPCSR_FI, FPCSR_FI, "FI"},
{FPCSR_RM_MASK, FPCSR_RM_RN, "RN"},
{FPCSR_RM_MASK, FPCSR_RM_RZ, "RZ"},
{FPCSR_RM_MASK, FPCSR_RM_RP, "RP"},
{FPCSR_RM_MASK, FPCSR_RM_RM, "RM"},
{0, 0, ""}
};
void *g_StackPtrs1[STACK_POINTER_COUNT] = {&sp_rmon, &sp_idle, &sp_shed, &sp_main, &sp_audi};
#ifndef VERSION_EU
void *g_StackPtrs2[STACK_POINTER_COUNT] = {&sp_idle, &sp_shed, &sp_main, &sp_audi, &sp_debug};
#else
// no sp_debug
void *g_StackPtrs2[STACK_POINTER_COUNT] = {&sp_idle, &sp_shed, &sp_main, &sp_audi, &cfb_16};
#endif
void *g_StackPtrs3[STACK_POINTER_COUNT] = {&sp_rmon, &sp_idle, &sp_shed, &sp_main, &sp_audi};
// 71 x 32 text buffer (32th line is not drawn)
unsigned char g_DebugOutputTextBuffer[32][71] = {0};
static s32 g_DebugOutputCurrentPosX = 0;
static s32 g_DebugOutputCurrentPosY = 0;
// 4 x 7 bitmaps of ascii characters (0x20 - 0x7E), each padded to 32 bits
u32 g_DebugOutputBitmaps[] = {
0x00000000, 0x22220200, 0x55000000, 0x05F5F500, 0x27427200, // ' ', '!', '\"', '#', '$'
0x05124500, 0x34255300, 0x22000000, 0x24444420, 0x42222240, // '%', '&', '\'', '(', ')'
0x06F6F600, 0x00272000, 0x00000240, 0x00070000, 0x00000200, // '*', '+', '\,', '-', '.'
0x11224480, 0x25555200, 0x26222700, 0x25125700, 0x61211600, // '/', '0', '1', '2', '3'
0x33557300, 0x64611600, 0x24655200, 0x71112200, 0x25755200, // '4', '5', '6', '7', '8'
0x25531600, 0x00200200, 0x00200640, 0x01242100, 0x00707000, // '9', ':', ';', '<', '='
0x04212400, 0x07120200, 0x25FF5700, 0x02557D00, 0x06575E00, // '>', '?', '@', 'A', 'B'
0x07445300, 0x07555600, 0x07565700, 0x07564400, 0x07C95700, // 'C', 'D', 'E', 'F', 'G'
0x05575500, 0x07222700, 0x03111600, 0x05665500, 0x04445F00, // 'H', 'I', 'J', 'K', 'L'
0x0DFF9D00, 0x0F777D00, 0x07DD5700, 0x07564600, 0x07995770, // 'M', 'N', 'O', 'P', 'Q'
0x07565500, 0x07461E00, 0x07222200, 0x0D999600, 0x0D552200, // 'R', 'S', 'T', 'U', 'V'
0x0DF77500, 0x0D625500, 0x05622600, 0x07125700, 0x32222230, // 'W', 'X', 'Y', 'Z', '['
0x44222110, 0x62222260, 0x25000000, 0x00000700, 0x42200000, // '\\', ']', '^', '_', '`'
0x0067D700, 0x44755700, 0x00788600, 0x117DD700, 0x006FC700, // 'a', 'b', 'c', 'd', 'e'
0x32722700, 0x007DD730, 0x44755500, 0x02622700, 0x02711130, // 'f', 'g', 'h', 'i', 'j',
0x44766500, 0x62222700, 0x00FFFF00, 0x00755D00, 0x006DD600, // 'k', 'l', 'm', 'n', 'o'
0x00755740, 0x00799710, 0x00744600, 0x00775700, 0x02722300, // 'p', 'q', 'r', 's', 't'
0x00555700, 0x00552200, 0x00577500, 0x00562500, 0x00552220, // 'u', 'v', 'w', 'x', 'y'
0x00703700, 0x12242210, 0x02222220, 0x42212240, 0x005A0000 // 'z', '{', '|', '}', '~'
};
u16 *g_DebugOutputVideoBuffer1 = NULL;
u16 *g_DebugOutputVideoBuffer2 = NULL;
// Padding
u32 D_80024184[4] = {0};
/**
* DebConTextPos
* Sets the position where text will be displayed inside console window
* (Does not draw - see print_to_vidbuff1)
* @param x: column in which to display text (0-71)
* @param y: line in which to display text (0-31)
* @param c: Character to Print
*/
void deboutWriteCharAtPos(s32 x, s32 y, unsigned char c)
{
// replace tabs and line feeds with nothing
if ((c == '\t') || (c == '\n'))
{
c = '\0';
}
// is printable char? if not replace with "?"
if ((c > '\0') && (c < ' ') || (c > '~'))
{
c = '?';
}
if (((x >= 0) && (x <= 71)) && ((y >= 0) && (y <= 31)))
{
// Debug Window is 71 chars wide 32 rows high
//! BUG 71 is accepted as xpos but will overflow the buffer
g_DebugOutputTextBuffer[y][x] = c;
}
}
/**
* deboutWriteChar
* Parse Character and save to On-Screen Buffer
* @param c: Character to parse
*/
void deboutWriteChar(unsigned char c)
{
if (c != '\0')
{
if (c == '\t')
{
do
{
deboutWriteChar(' '); // fill with blanks
} while (g_DebugOutputCurrentPosX & 7);
return;
}
if (c == '\n')
{
g_DebugOutputCurrentPosY++;
g_DebugOutputCurrentPosX = 0;
}
if (g_DebugOutputCurrentPosY > 30)
{
deboutScrollUp(g_DebugOutputCurrentPosY - 30);
g_DebugOutputCurrentPosY = 30;
}
if (c != '\n')
{
deboutWriteCharAtPos(g_DebugOutputCurrentPosX, g_DebugOutputCurrentPosY, c);
g_DebugOutputCurrentPosX++;
if (g_DebugOutputCurrentPosX > 70)
{
g_DebugOutputCurrentPosX = 0;
g_DebugOutputCurrentPosY++;
}
}
}
}
/**
* Scroll Buffer up by a number of lines
* @param LinesToScroll: Number of Lines to scroll upward
*/
void deboutScrollUp(s32 numlines)
{
s32 y;
s32 x;
while (numlines-- > 0)
{
for (y = 0; y < 31; y++)
{
for (x = 0; x < 71; x++)
{
g_DebugOutputTextBuffer[y][x] = g_DebugOutputTextBuffer[y + 1][x];
}
}
}
}
/**
* Print 4x8 1bit Glyph to stderr screen at position (x,y)
* @param x: Pixels from left within the stderr box
* @param y: Pixels from top within the stderr box
* @param c: the character to display
*/
void deboutDrawChar(s32 x, s32 y, unsigned char c)
{
s32 bitmap_x;
s32 bitmap_y;
u32 bitmap;
s16 screen_w = viGetX();
u16 *Vidbufp;
if (c == '\0')
{
c = ' '; //replace nul with space
}
if ((c >= ' ') && (c <= '~')) //if valid char
{
Vidbufp = (g_DebugOutputVideoBuffer1 + x + (y * screen_w));
bitmap = g_DebugOutputBitmaps[c - ' '];
for (bitmap_y = 0; bitmap_y < 7; bitmap_y++)
{
for (bitmap_x = 0; bitmap_x < 4; bitmap_x++)
{
if (bitmap & (1 << 31))
{
*Vidbufp = GPACK_RGBA5551(255, 255, 255, 1);
}
else
{
*Vidbufp = GPACK_RGBA5551(0, 0, 0, 1);
}
Vidbufp++;
bitmap <<= 1; //
}
Vidbufp += screen_w;
Vidbufp -= 4;
}
}
}
/**
* Set pointers to video buffers 1 & 2.
* Converts values to uncached addresses
* @param cfba | A0000000 -> 8002417C
* @param cfbb | A0000000 -> 80024180
*/
void deboutSetBuffers(u16 *buffer1, u16 *buffer2)
{
g_DebugOutputVideoBuffer1 = (void *)K0_TO_K1(buffer1);
g_DebugOutputVideoBuffer2 = (void *)K0_TO_K1(buffer2);
}
/**
* Set up the 2 16bit CFBs to Direct mapped, uncached memory
*/
void deboutInitBuffers(void)
{
deboutSetBuffers(&cfb_16[0], &cfb_16[1]);
}
/**
* deboutDrawToBuffer
* write stderr to video buffer
* @param buffer: video buffer to render output
*/
void deboutDrawToBuffer(u16 *buffer)
{
s32 screen_w;
s32 screen_h;
s32 output_w;
s32 output_h;
s32 x;
s32 y;
deboutInitBuffers();
g_DebugOutputVideoBuffer1 = (void *)K0_TO_K1(buffer); // overwrite cfba
screen_w = ((viGetX() - 13) / 4);
screen_h = ((viGetY() - 10) / 7);
output_w = screen_w - 5; // - margin_w
output_h = screen_h - 1; // - margin_h
for (y = 0; ((y < output_h) && (y < 31)); y++)
{
for (x = 0; ((x < output_w) && (x < 71)); x++)
{
deboutDrawChar(((x + 5) * 4), ((y + 1) * 7), g_DebugOutputTextBuffer[y][x]);
}
}
}
+18 -14
View File
@@ -215,25 +215,29 @@ void debmenu7000AF84(s32 x1, s32 y1, s32 x2, s32 y2) {
#endif
#ifdef NONMATCHING
s32 debmenu7000AF98(s32 height) {
s32 x;
s32 y;
s32 ret;
for (y = 33; y > 0; y--) {
s32 y2 = (y + height);
if (y2 >= 0 && y2 < 35) {
for (x = 0; x < 80; x++) {
debmenu7000AF84(x, y2, x, y);
#ifndef LEFTOVERDEBUG
void debmenu7000AF98(s32 height)
{
s32 x; s32 y;
for (y = 33, height = height + 33; y != 0; y--, height--)
{
if ((height >= 0) && (height < 35)) {
for ( x = 0; x != 80; x++)
{
debmenu7000AF84(x, height, x, y);
}
} else {
for (x = 0; x < 80; x++) {
debmenuWriteCharAtPos(x, y, '\0');
} else {
for (x = 0; x != 80; x++)
{
debmenuWriteCharAtPos(x, y, 0);
}
}
ret = y;
}
return ret;
}
#endif
#else
#ifndef LEFTOVERDEBUG
s32 debmenu7000AF98(s32 height) {
+7
View File
@@ -11,10 +11,17 @@ typedef struct {
void debmenu7000ADA8(void);
void debmenuInit(void);
void debmenuReset(void);
#ifdef LEFTOVERDEBUG
void debmenu7000AF84(s32 x1, s32 y1, s32 x2, s32 y2);
#endif
void debmenuSetPos(s32 x, s32 y);
void debmenuSetFgColour(s32 r, s32 g, s32 b, s32 a);
void debmenuSetEnvColor(s32 r, s32 g, s32 b, s32 a);
void debmenuPrintString(const unsigned char *str);
Gfx *debmenuDraw(Gfx *gdl);
#ifdef LEFTOVERDEBUG
void debmenuWriteCharAtPos(s32 x, s32 y, unsigned char c);
#endif
#endif
-9
View File
@@ -1,9 +0,0 @@
#ifndef _TLB_PAGING_H_
#define _TLB_PAGING_H_
#include <ultra64.h>
void faultInit(void);
void faultMain(void* arg0);
#endif
+26 -4
View File
@@ -11,6 +11,9 @@
#include "game/bondview.h"
#include "game/viewport.h"
#include "game/dyn.h"
#ifdef ENABLE_USB
#include "usb.h"
#endif
/**
* EU .data, offset from start of data_seg : 0x2484
@@ -1933,7 +1936,8 @@ Gfx *viSetFillColor(Gfx *gdl, s32 r, s32 g, s32 b)
*/
void indyGrabJpg16bit(void)
{
#ifdef LEFTOVERDEBUG
#ifdef LEFTOVERDEBUG
#ifndef ENABLE_USB
s32 *pgrabnum = &g_indyJpg16BitGrabnum;
char buffer[250];
s32 filesize;
@@ -1966,7 +1970,11 @@ void indyGrabJpg16bit(void)
sprintf(buffer, "imgview grab.%d.jpeg", *pgrabnum);
indycommHostSendCmd((u8*)&buffer);
#else
//msg.msgtype
usb_write(DATATYPE_RAWBINARY , (u8*)g_ViBackData->framebuf, (viGetX() * viGetY() * 2));
#endif
#endif
}
/**
@@ -1975,7 +1983,8 @@ void indyGrabJpg16bit(void)
*/
void indyGrabJpg32bit(void)
{
#ifdef LEFTOVERDEBUG
#if defined(LEFTOVERDEBUG)
#if !defined(ENABLE_USB)
s32 *pgrabnum = &g_indyJpg32BitGrabnum;
char buffer[250];
s32 filesize;
@@ -2008,6 +2017,9 @@ void indyGrabJpg32bit(void)
sprintf(buffer, "imgview grab.%d.jpeg", *pgrabnum);
indycommHostSendCmd((u8*)&buffer);
#else
usb_write(DATATYPE_RAWBINARY , (u8*)&cfb_16, (viGetX() * viGetY() * 4));
#endif
#endif
}
@@ -2017,7 +2029,8 @@ void indyGrabJpg32bit(void)
*/
void indyGrabRgb16bit(void)
{
#ifdef LEFTOVERDEBUG
#if defined(LEFTOVERDEBUG)
#if !defined(ENABLE_USB)
s32 *pgrabnum = &g_indyRgb16BitGrabnum;
char buffer[250];
s32 filesize;
@@ -2047,6 +2060,10 @@ void indyGrabRgb16bit(void)
sprintf(buffer, "imgview grab.%d.rgb", *pgrabnum);
indycommHostSendCmd((u8*)&buffer);
#else
//msg.msgtype
usb_write(DATATYPE_RAWBINARY , (u8*)g_ViBackData->framebuf, (viGetX() * viGetY() * 2));
#endif
#endif
}
@@ -2056,7 +2073,8 @@ void indyGrabRgb16bit(void)
*/
void indyGrabRgb32bit(void)
{
#ifdef LEFTOVERDEBUG
#if defined(LEFTOVERDEBUG)
#if !defined(ENABLE_USB)
s32 *pgrabnum = &g_indyRgb32BitGrabnum;
char buffer[250];
s32 filesize;
@@ -2086,5 +2104,9 @@ void indyGrabRgb32bit(void)
sprintf(buffer, "imgview grab.%d.rgb", *pgrabnum);
indycommHostSendCmd((u8*)&buffer);
#else
//msg.msgtype
usb_write(DATATYPE_RAWBINARY , (u8*)&cfb_16, (viGetX() * viGetY() * 4));
#endif
#endif
}
+1 -1
View File
@@ -19,7 +19,7 @@ void alloc_shattered_window_pieces(void)
ptr_shattered_window_pieces = mempAllocBytesInBank(((SHATTERED_WINDOW_PIECES_BUFFER_LEN * 0x68) + 0xF) & ~0xF, 4U);
for(i=0; i<SHATTERED_WINDOW_PIECES_BUFFER_LEN; i++)
{
ptr_shattered_window_pieces[i].piece = NULL;
ptr_shattered_window_pieces[i].piece = 0;
}
D_80040940 = 0;
+138 -676
View File
File diff suppressed because it is too large. Load diff
+23 -8
View File
@@ -20,7 +20,7 @@ typedef struct s_room_info {
u8 bitflags1;
u8 model_bin_loaded;
u8 bitflags2;
void * ptr_point_index;
Vtx * ptr_point_index;
void * ptr_expanded_mapping_info;
void * ptr_secondary_expanded_mapping_info;
s32 csize_point_index_binary;
@@ -35,12 +35,8 @@ typedef struct s_room_info {
u8 room_loaded_mask;
u8 field_35;
s16 field_36;
f32 minxbounds;
f32 minybounds;
f32 minzbounds;
f32 maxxbounds;
f32 maxybounds;
f32 maxzbounds;
coord3d minbounds;
coord3d maxbounds;
} s_room_info;
typedef struct s_bound_info
@@ -90,6 +86,22 @@ typedef struct bg_room_data
coord3d pos;
} bg_room_data;
typedef struct s_specialportal
{
u8 levelid;
u8 portallist[];
} s_specialportal;
typedef struct unk_portalstruct
{
s32 unk0;
s32 unk4;
s32 unk8;
s32 unkC;
s32 unk10;
} unk_portalstruct;
extern struct unk_portalstruct table_for_portals[200];
extern s32 MaxNumRooms;
extern f32 room_data_float2;
@@ -102,7 +114,7 @@ void bgInitDebugNoticeList(void);
// sub_GAME_7F033B38 requres arg be s32
s32 sub_GAME_7F0B8FD0(s32 roomA, u8 roomB);
s32 sub_GAME_7F0B4F9C(u8 room); // u8 not s32 for sub_GAME_7F0B2FE0
//f32 sub_GAME_7F0B4F9C(s32 room); // u8 not s32 for sub_GAME_7F0B2FE0
u32 bgDecompress(u8* source, u8 *target);
void sub_GAME_7F0B65C4(s32 roomID);
void load_bg_file(LEVEL_INDEX stagenum);
@@ -126,5 +138,8 @@ f32 get_room_data_float1(void);
u8 getROOMID_Bitflags(int roomID);
s32 bgGet2dBboxByRoomId(s32 room_id, struct bbox2d *result);
f32 bgGetLevelVisibilityScale(void);
void sub_GAME_7F0B5CC0(struct bbox2d *a, struct bbox2d *b);
f32 get_room_data_float2(void);
#endif
+16 -16
View File
@@ -191,7 +191,7 @@ u8 die_blood_image_1[] = {
0xE5, 0xE5, 0xE5, 0xE5
};
u8 D_8002C50C = 0;
u8 die_blood_image_end = 0;
Gfx *insert_imageDL(Gfx *gdl) {
gDPSetCycleType(gdl++, G_CYC_FILL);
@@ -218,26 +218,26 @@ s32 die_blood_image_routine(s32 arg0) {
u8* temp_v0_2;
if (arg0 == 0) {
g_CurrentPlayer->field_11A8 = die_blood_image_1;
g_CurrentPlayer->bloodImgCur = die_blood_image_1;
} else if (arg0 == 1) {
if (g_CurrentPlayer->field_11AC < &D_8002C50C) {
g_CurrentPlayer->field_11A8 = g_CurrentPlayer->field_11AC;
if (g_CurrentPlayer->bloodImgNxt < &die_blood_image_end) {
g_CurrentPlayer->bloodImgCur = g_CurrentPlayer->bloodImgNxt;
}
}
g_CurrentPlayer->field_11B8 = (1 - g_CurrentPlayer->field_11B8);
g_CurrentPlayer->field_11B0[g_CurrentPlayer->field_11B8] = dynAllocate(0x1E00);
g_CurrentPlayer->bloodImgIdx = (1 - g_CurrentPlayer->bloodImgIdx);
g_CurrentPlayer->bloodImgBufPtrArray[g_CurrentPlayer->bloodImgIdx] = dynAllocate(0x1E00);
temp_v0_2 = dynAllocate(0x1E00);
g_CurrentPlayer->field_11AC = decrypt_bleeding_animation_data(g_CurrentPlayer->field_11A8, 0x50, 0x60, temp_v0_2, &sp37);
sub_GAME_7F01D16C(temp_v0_2, 0x50, 0x60, g_CurrentPlayer->field_11B0[g_CurrentPlayer->field_11B8]);
sub_GAME_7F01D02C(g_CurrentPlayer->field_11B0[g_CurrentPlayer->field_11B8], 0x50, g_CurrentPlayer->field_11B0[g_CurrentPlayer->field_11B8]);
sub_GAME_7F01CEEC(g_CurrentPlayer->field_11B0[g_CurrentPlayer->field_11B8], 0x50, g_CurrentPlayer->field_11B0[g_CurrentPlayer->field_11B8]);
sub_GAME_7F01CC94(g_CurrentPlayer->field_11B0[g_CurrentPlayer->field_11B8], 0x1E00, g_CurrentPlayer->field_11B0[g_CurrentPlayer->field_11B8]);
g_CurrentPlayer->bloodImgNxt = decrypt_bleeding_animation_data(g_CurrentPlayer->bloodImgCur, 0x50, 0x60, temp_v0_2, &sp37);
sub_GAME_7F01D16C(temp_v0_2, 0x50, 0x60, g_CurrentPlayer->bloodImgBufPtrArray[g_CurrentPlayer->bloodImgIdx]);
sub_GAME_7F01D02C(g_CurrentPlayer->bloodImgBufPtrArray[g_CurrentPlayer->bloodImgIdx], 0x50, g_CurrentPlayer->bloodImgBufPtrArray[g_CurrentPlayer->bloodImgIdx]);
sub_GAME_7F01CEEC(g_CurrentPlayer->bloodImgBufPtrArray[g_CurrentPlayer->bloodImgIdx], 0x50, g_CurrentPlayer->bloodImgBufPtrArray[g_CurrentPlayer->bloodImgIdx]);
sub_GAME_7F01CC94(g_CurrentPlayer->bloodImgBufPtrArray[g_CurrentPlayer->bloodImgIdx], 0x1E00, g_CurrentPlayer->bloodImgBufPtrArray[g_CurrentPlayer->bloodImgIdx]);
return (g_CurrentPlayer->field_11AC >= &D_8002C50C);
return (g_CurrentPlayer->bloodImgNxt >= &die_blood_image_end);
}
Gfx *sub_GAME_7F01C400(Gfx *gdl) {
Gfx *gunbarrelBloodOverlayDL(Gfx *gdl) {
gDPSetTextureLUT(gdl++, G_TT_NONE);
gDPSetTextureFilter(gdl++, G_TF_BILERP);
@@ -249,13 +249,13 @@ Gfx *sub_GAME_7F01C400(Gfx *gdl) {
gDPSetColorDither(gdl++, G_CD_MAGICSQ);
gDPSetPrimColor(gdl++, 0, 0, 0x96, 0x00, 0x00, 0xB4);
gDPSetTexturePersp(gdl++, G_TP_NONE);
gDPLoadTextureBlock_4b(gdl++, OS_K0_TO_PHYSICAL(g_CurrentPlayer->field_11B0[g_CurrentPlayer->field_11B8]), G_IM_FMT_I, 96, 80, 0, (G_TX_NOMIRROR | G_TX_CLAMP), (G_TX_NOMIRROR | G_TX_CLAMP), G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD);
gDPLoadTextureBlock_4b(gdl++, OS_K0_TO_PHYSICAL(g_CurrentPlayer->bloodImgBufPtrArray[g_CurrentPlayer->bloodImgIdx]), G_IM_FMT_I, 96, 80, 0, (G_TX_NOMIRROR | G_TX_CLAMP), (G_TX_NOMIRROR | G_TX_CLAMP), G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD);
gSPTextureRectangle(gdl++, 0, 0, ((viGetX() * 4) - 1), ((viGetY() * 4) - 1), G_TX_RENDERTILE, 0, 0, 0x18000 / viGetX(), 0x14000 / viGetY());
return gdl;
}
Gfx *sub_GAME_7F01C670(Gfx *gdl) {
Gfx *gameplayBloodOverlayDL(Gfx *gdl) {
gDPSetTextureLUT(gdl++, G_TT_NONE);
gDPSetTextureFilter(gdl++, G_TF_BILERP);
gDPSetCycleType(gdl++, G_CYC_1CYCLE);
@@ -266,7 +266,7 @@ Gfx *sub_GAME_7F01C670(Gfx *gdl) {
gDPSetColorDither(gdl++, G_CD_MAGICSQ);
gDPSetPrimColor(gdl++, 0, 0, 0x96, 0x00, 0x00, 0xB4);
gDPSetTexturePersp(gdl++, G_TP_NONE);
gDPLoadTextureBlock_4b(gdl++, OS_K0_TO_PHYSICAL(g_CurrentPlayer->field_11B0[g_CurrentPlayer->field_11B8]), G_IM_FMT_I, 96, 80, 0, (G_TX_NOMIRROR | G_TX_CLAMP), (G_TX_NOMIRROR | G_TX_CLAMP), G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD);
gDPLoadTextureBlock_4b(gdl++, OS_K0_TO_PHYSICAL(g_CurrentPlayer->bloodImgBufPtrArray[g_CurrentPlayer->bloodImgIdx]), G_IM_FMT_I, 96, 80, 0, (G_TX_NOMIRROR | G_TX_CLAMP), (G_TX_NOMIRROR | G_TX_CLAMP), G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD);
gSPTextureRectangle(gdl++, (viGetViewLeft() * 4), (viGetViewTop() * 4), (((viGetViewLeft() + viGetViewWidth()) * 4) - 1), (((viGetViewTop() + viGetViewHeight()) * 4) - 1), G_TX_RENDERTILE, 0, 0, (0x18000 / viGetViewWidth()), (0x14000 / viGetViewHeight()));
gDPPipeSync(gdl++);
gDPSetColorDither(gdl++, G_CD_BAYER);
+1 -1
View File
@@ -6,7 +6,7 @@
Gfx *insert_imageDL(Gfx *gdl);
Gfx *sub_GAME_7F01C1A4(Gfx *gdl);
s32 die_blood_image_routine(s32 arg0);
Gfx *sub_GAME_7F01C400(Gfx *gdl);
Gfx *gunbarrelBloodOverlayDL(Gfx *gdl);
Gfx *sub_GAME_7F01CA18(Gfx *gdl);
#endif
+44 -103
View File
@@ -232,7 +232,7 @@ void bheadUpdate(f32 arg0, f32 arg1)
matrix_4x4_set_identity(&sp40);
sp80.unk_matrix = &sp40;
sp80.mtxlist = &g_CurrentPlayer->field_6D0;
sp80.mtxlist = &g_CurrentPlayer->bondheadmatrices[0];
subcalcmatrices(&sp80, &g_CurrentPlayer->model);
@@ -242,35 +242,35 @@ void bheadUpdate(f32 arg0, f32 arg1)
getsuboffset(&g_CurrentPlayer->model, (struct float3 *) &sp34);
sp34.f[0] -= g_CurrentPlayer->field_700;
sp34.f[2] -= g_CurrentPlayer->field_708;
sp34.f[0] -= g_CurrentPlayer->bondheadmatrices[0].m[3][0];
sp34.f[2] -= g_CurrentPlayer->bondheadmatrices[0].m[3][2];
setsuboffset(&g_CurrentPlayer->model, (coord3d *) &sp34);
if (spC0 > 0.0f)
{
g_CurrentPlayer->field_700 += arg1;
g_CurrentPlayer->field_708 *= arg0;
g_CurrentPlayer->bondheadmatrices[0].m[3][0] += arg1;
g_CurrentPlayer->bondheadmatrices[0].m[3][2] *= arg0;
if (g_ClockTimer > 0)
{
g_CurrentPlayer->field_700 /= g_GlobalTimerDelta;
g_CurrentPlayer->field_708 /= g_GlobalTimerDelta;
g_CurrentPlayer->bondheadmatrices[0].m[3][0] /= g_GlobalTimerDelta;
g_CurrentPlayer->bondheadmatrices[0].m[3][2] /= g_GlobalTimerDelta;
}
headpos.f[0] = g_CurrentPlayer->field_700 * g_CurrentPlayer->headamplitude;
headpos.f[1] = ((g_CurrentPlayer->field_704 - g_CurrentPlayer->standheight) * g_CurrentPlayer->headamplitude) + g_CurrentPlayer->standheight;
headpos.f[2] = g_CurrentPlayer->field_708 * g_CurrentPlayer->headamplitude;
headpos.f[0] = g_CurrentPlayer->bondheadmatrices[0].m[3][0] * g_CurrentPlayer->headamplitude;
headpos.f[1] = ((g_CurrentPlayer->bondheadmatrices[0].m[3][1] - g_CurrentPlayer->standheight) * g_CurrentPlayer->headamplitude) + g_CurrentPlayer->standheight;
headpos.f[2] = g_CurrentPlayer->bondheadmatrices[0].m[3][2] * g_CurrentPlayer->headamplitude;
if (g_CurrentPlayer->headanim >= 0)
{
lookvel.f[0] = g_CurrentPlayer->field_6F0 * g_CurrentPlayer->sideamplitude;
lookvel.f[1] = g_CurrentPlayer->field_6F4 * g_CurrentPlayer->headamplitude;
lookvel.f[2] = ((g_CurrentPlayer->field_6F8 - 1.0f) * g_CurrentPlayer->headamplitude) + 1.0f;
lookvel.f[0] = g_CurrentPlayer->bondheadmatrices[0].m[2][0] * g_CurrentPlayer->sideamplitude;
lookvel.f[1] = g_CurrentPlayer->bondheadmatrices[0].m[2][1] * g_CurrentPlayer->headamplitude;
lookvel.f[2] = ((g_CurrentPlayer->bondheadmatrices[0].m[2][2] - 1.0f) * g_CurrentPlayer->headamplitude) + 1.0f;
upvel.f[0] = g_CurrentPlayer->field_6E0 * g_CurrentPlayer->headamplitude;
upvel.f[1] = ((g_CurrentPlayer->field_6E4 - 1.0f) * g_CurrentPlayer->headamplitude) + 1.0f;
upvel.f[2] = g_CurrentPlayer->field_6E8 * g_CurrentPlayer->headamplitude;
upvel.f[0] = g_CurrentPlayer->bondheadmatrices[0].m[1][0] * g_CurrentPlayer->headamplitude;
upvel.f[1] = ((g_CurrentPlayer->bondheadmatrices[0].m[1][1] - 1.0f) * g_CurrentPlayer->headamplitude) + 1.0f;
upvel.f[2] = g_CurrentPlayer->bondheadmatrices[0].m[1][2] * g_CurrentPlayer->headamplitude;
g_CurrentPlayer->headwalkingtime60 += g_ClockTimer;
@@ -296,13 +296,13 @@ void bheadUpdate(f32 arg0, f32 arg1)
}
else
{
lookvel.f[0] = g_CurrentPlayer->field_6F0;
lookvel.f[1] = g_CurrentPlayer->field_6F4;
lookvel.f[2] = g_CurrentPlayer->field_6F8;
lookvel.f[0] = g_CurrentPlayer->bondheadmatrices[0].m[2][0];
lookvel.f[1] = g_CurrentPlayer->bondheadmatrices[0].m[2][1];
lookvel.f[2] = g_CurrentPlayer->bondheadmatrices[0].m[2][2];
upvel.f[0] = g_CurrentPlayer->field_6E0;
upvel.f[1] = g_CurrentPlayer->field_6E4;
upvel.f[2] = g_CurrentPlayer->field_6E8;
upvel.f[0] = g_CurrentPlayer->bondheadmatrices[0].m[1][0];
upvel.f[1] = g_CurrentPlayer->bondheadmatrices[0].m[1][1];
upvel.f[2] = g_CurrentPlayer->bondheadmatrices[0].m[1][2];
bheadSetdamp(0.85f);
}
@@ -376,10 +376,10 @@ void bheadAdjustAnimation(f32 speed)
if (g_CurrentPlayer->headanim >= 0)
{
startframe = (g_CurrentPlayer->field_5C0 - g_BondMoveAnimationSetup[g_CurrentPlayer->headanim].unk04)
/ (g_BondMoveAnimationSetup[g_CurrentPlayer->headanim].unk08 - g_BondMoveAnimationSetup[g_CurrentPlayer->headanim].unk04);
startframe = (g_CurrentPlayer->field_5C0 - g_BondMoveAnimationSetup[g_CurrentPlayer->headanim].loopframe)
/ (g_BondMoveAnimationSetup[g_CurrentPlayer->headanim].endframe - g_BondMoveAnimationSetup[g_CurrentPlayer->headanim].loopframe);
startframe = g_BondMoveAnimationSetup[i].unk04 + ((g_BondMoveAnimationSetup[i].unk08 - g_BondMoveAnimationSetup[i].unk04) * startframe);
startframe = g_BondMoveAnimationSetup[i].loopframe + ((g_BondMoveAnimationSetup[i].endframe - g_BondMoveAnimationSetup[i].loopframe) * startframe);
}
modelSetAnimation(
@@ -391,8 +391,8 @@ void bheadAdjustAnimation(f32 speed)
0.5f,
12.0f);
modelSetAnimLooping(&g_CurrentPlayer->model, g_BondMoveAnimationSetup[i].unk04, 0.0f);
modelSetAnimEndFrame(&g_CurrentPlayer->model, g_BondMoveAnimationSetup[i].unk08);
modelSetAnimLooping(&g_CurrentPlayer->model, g_BondMoveAnimationSetup[i].loopframe, 0.0f);
modelSetAnimEndFrame(&g_CurrentPlayer->model, g_BondMoveAnimationSetup[i].endframe);
modelSetAnimFlipFunction(&g_CurrentPlayer->model, bheadFlipAnimation);
g_CurrentPlayer->headanim = i;
}
@@ -432,84 +432,25 @@ void bheadSetSpeed(f32 speed)
}
f32 bheadGetBreathingValue(void)
{
if (g_CurrentPlayer->headanim >= 0) {
f32 a = bondviewGetBondBreathing() * 0.012500001f + 0.004166667f;
f32 b = modelGetAbsAnimSpeed(&g_CurrentPlayer->model);
if (b > 0) {
f32 c = b / (g_BondMoveAnimationSetup[g_CurrentPlayer->headanim].endframe - g_BondMoveAnimationSetup[g_CurrentPlayer->headanim].loopframe);
#ifdef NONMATCHING
f32 bheadGetBreathingValue(void) {
if (c < a) {
c = a;
}
return c;
}
return a;
}
return 0;
}
#else
GLOBAL_ASM(
.late_rodata
glabel D_80055338
.word 0x3c4cccce /*0.012500001*/
glabel D_8005533C
.word 0x3b888889 /*0.0041666669*/
.text
glabel bheadGetBreathingValue
/* 0C3628 7F08EAF8 3C0E8008 */ lui $t6, %hi(g_CurrentPlayer)
/* 0C362C 7F08EAFC 8DCEA0B0 */ lw $t6, %lo(g_CurrentPlayer)($t6)
/* 0C3630 7F08EB00 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 0C3634 7F08EB04 AFBF0014 */ sw $ra, 0x14($sp)
/* 0C3638 7F08EB08 8DCF04E8 */ lw $t7, 0x4e8($t6)
/* 0C363C 7F08EB0C 05E2002B */ bltzl $t7, .L7F08EBBC
/* 0C3640 7F08EB10 44800000 */ mtc1 $zero, $f0
/* 0C3644 7F08EB14 0FC227B5 */ jal bondviewGetBondBreathing
/* 0C3648 7F08EB18 00000000 */ nop
/* 0C364C 7F08EB1C 3C018005 */ lui $at, %hi(D_80055338)
/* 0C3650 7F08EB20 C4245338 */ lwc1 $f4, %lo(D_80055338)($at)
/* 0C3654 7F08EB24 3C018005 */ lui $at, %hi(D_8005533C)
/* 0C3658 7F08EB28 C428533C */ lwc1 $f8, %lo(D_8005533C)($at)
/* 0C365C 7F08EB2C 46040182 */ mul.s $f6, $f0, $f4
/* 0C3660 7F08EB30 3C048008 */ lui $a0, %hi(g_CurrentPlayer)
/* 0C3664 7F08EB34 8C84A0B0 */ lw $a0, %lo(g_CurrentPlayer)($a0)
/* 0C3668 7F08EB38 24840598 */ addiu $a0, $a0, 0x598
/* 0C366C 7F08EB3C 46083080 */ add.s $f2, $f6, $f8
/* 0C3670 7F08EB40 0FC1BD86 */ jal modelGetAbsAnimSpeed
/* 0C3674 7F08EB44 E7A2001C */ swc1 $f2, 0x1c($sp)
/* 0C3678 7F08EB48 44805000 */ mtc1 $zero, $f10
/* 0C367C 7F08EB4C C7A2001C */ lwc1 $f2, 0x1c($sp)
/* 0C3680 7F08EB50 3C188008 */ lui $t8, %hi(g_CurrentPlayer)
/* 0C3684 7F08EB54 4600503C */ c.lt.s $f10, $f0
/* 0C3688 7F08EB58 00000000 */ nop
/* 0C368C 7F08EB5C 45000014 */ bc1f .L7F08EBB0
/* 0C3690 7F08EB60 00000000 */ nop
/* 0C3694 7F08EB64 8F18A0B0 */ lw $t8, %lo(g_CurrentPlayer)($t8)
/* 0C3698 7F08EB68 3C098003 */ lui $t1, %hi(g_BondMoveAnimationSetup)
/* 0C369C 7F08EB6C 25296AD0 */ addiu $t1, %lo(g_BondMoveAnimationSetup) # addiu $t1, $t1, 0x6ad0
/* 0C36A0 7F08EB70 8F1904E8 */ lw $t9, 0x4e8($t8)
/* 0C36A4 7F08EB74 00194080 */ sll $t0, $t9, 2
/* 0C36A8 7F08EB78 01194023 */ subu $t0, $t0, $t9
/* 0C36AC 7F08EB7C 000840C0 */ sll $t0, $t0, 3
/* 0C36B0 7F08EB80 01091021 */ addu $v0, $t0, $t1
/* 0C36B4 7F08EB84 C4500008 */ lwc1 $f16, 8($v0)
/* 0C36B8 7F08EB88 C4520004 */ lwc1 $f18, 4($v0)
/* 0C36BC 7F08EB8C 46128101 */ sub.s $f4, $f16, $f18
/* 0C36C0 7F08EB90 46040303 */ div.s $f12, $f0, $f4
/* 0C36C4 7F08EB94 4602603C */ c.lt.s $f12, $f2
/* 0C36C8 7F08EB98 00000000 */ nop
/* 0C36CC 7F08EB9C 45000002 */ bc1f .L7F08EBA8
/* 0C36D0 7F08EBA0 00000000 */ nop
/* 0C36D4 7F08EBA4 46001306 */ mov.s $f12, $f2
.L7F08EBA8:
/* 0C36D8 7F08EBA8 10000005 */ b .L7F08EBC0
/* 0C36DC 7F08EBAC 46006006 */ mov.s $f0, $f12
.L7F08EBB0:
/* 0C36E0 7F08EBB0 10000003 */ b .L7F08EBC0
/* 0C36E4 7F08EBB4 46001006 */ mov.s $f0, $f2
/* 0C36E8 7F08EBB8 44800000 */ mtc1 $zero, $f0
.L7F08EBBC:
/* 0C36EC 7F08EBBC 00000000 */ nop
.L7F08EBC0:
/* 0C36F0 7F08EBC0 8FBF0014 */ lw $ra, 0x14($sp)
/* 0C36F4 7F08EBC4 27BD0020 */ addiu $sp, $sp, 0x20
/* 0C36F8 7F08EBC8 03E00008 */ jr $ra
/* 0C36FC 7F08EBCC 00000000 */ nop
)
#endif
+2 -2
View File
@@ -6,8 +6,8 @@
struct init_bond_anim_unk {
u32 anim_id;
f32 unk04;
f32 unk08;
f32 loopframe;
f32 endframe;
f32 unk0C;
f32 unk10;
+2
View File
@@ -23,4 +23,6 @@ void bondinvSetAllGunsFlag(s32 all_guns);
bool bondinvHasPropInInv(PropRecord *prop);
WeaponObjRecord *bondinvRemovePropWeaponByID(ITEM_IDS weaponnum);
void bondinvRemoveItemByID(ITEM_IDS weaponnum);
s32 bondinvGetWeaponOfChoice(s32 *weapon1, s32 *weapon2);
#endif
+860 -3120
View File
File diff suppressed because it is too large. Load diff
+109 -243
View File
@@ -6,6 +6,7 @@
#include "chr.h"
#include "matrixmath.h"
#include "watch.h"
#include "image.h"
typedef struct invitem_weap
{
@@ -88,9 +89,10 @@ struct collision434 {
*/
struct hand
{
s32 weaponnum;
s32 weaponnum_watchmenu;
s32 previous_weapon;
ITEM_IDS weaponnum;
ITEM_IDS weaponnum_watchmenu;
ITEM_IDS previous_weapon;
s8 weapon_firing_status;
s8 field_87D;
@@ -127,22 +129,7 @@ struct hand
s32 field_8E0;
s32 field_8E4;
s32 field_8E8;
s32 field_8EC;
s32 field_8F0;
s32 field_8F4;
s32 field_8F8;
s32 field_8FC;
s32 field_900;
s32 field_904;
s32 field_908;
s32 field_90C;
s32 field_910;
s32 field_914;
s32 field_918;
s32 field_91C;
s32 field_920;
s32 field_924;
s32 field_928;
Mtxf field_8EC;
s32 field_92C;
s32 field_930;
s32 field_934;
@@ -162,47 +149,14 @@ struct hand
s32 field_96C;
s32 field_970;
s32 field_974;
s32 field_978;
s32 field_97C;
s32 field_980;
s32 field_984;
s32 field_988;
s32 field_98C;
s32 field_990;
s32 field_994;
s32 field_998;
s32 field_99C;
s32 field_9A0;
s32 field_9A4;
s32 field_9A8;
s32 field_9AC;
s32 field_9B0;
s32 field_9B4;
s32 field_9B8;
s32 field_9BC;
s32 field_9C0;
s32 field_9C4;
s32 field_9C8;
s32 field_9CC;
s32 field_9D0;
s32 field_9D4;
s32 field_9D8;
s32 field_9DC;
s32 field_9E0;
s32 field_9E4;
s32 field_9E8;
s32 field_9EC;
s32 field_9F0;
s32 field_9F4;
s32 field_9F8;
s32 field_9FC;
s32 field_A00;
s32 field_A04;
s32 field_A08;
f32 field_A0C;
s32 field_A10;
s32 field_A14;
s32 field_A18; // sway state?
coord3d blendpos[4];
coord3d blendlook[4];
coord3d blendup[4];
s32 curblendpos;
f32 dampt;
f32 blendscale;
f32 blendscale1;
s32 sideflag;
f32 weapon_theta_displacement;
f32 weapon_verta_displacement;
s32 field_A24;
@@ -217,22 +171,12 @@ struct hand
s32 field_A48;
s32 field_A4C;
s32 field_A50;
s32 field_A54;
s32 field_A58;
s32 field_A5C;
s32 field_A60;
s32 field_A64;
s32 field_A68;
s32 field_A6C;
s32 field_A70;
s32 field_A74;
s32 field_A78;
s32 field_A7C;
s32 noise;
s32 field_A84;
s32 field_A88;
ChrRecord_f180 field_A54;
f32 noise;
f32 field_A84;
f32 field_A88;
s32 field_A8C;
s32 field_A90;
ObjectRecord* field_A90;
s32 field_A94;
s32 field_A98;
s32 field_A9C;
@@ -270,10 +214,8 @@ struct hand
s32 field_B4C;
s32 field_B50;
s32 field_B54;
s32 field_B58;
s32 field_B5C;
s32 field_B60;
s32 field_B64;
coord3d field_B58;
f32 field_B64;
s32 field_B68;
s32 field_B6C;
s32 field_B70;
@@ -315,9 +257,7 @@ struct hand
s32 field_C00;
s32 field_C04;
s32 field_C08;
s32 item_related1;
s32 item_related2;
s32 item_related3;
coord3d item_related;
};
typedef struct InvItem {
@@ -601,15 +541,15 @@ struct player
*/
s32 outside_watch_menu;
s32 open_close_solo_watch_menu;
s32 field_1D4;
s32 field_1D8;
s32 pause_watch_position;
s32 field_1E0;
s32 field_1E4;
s32 field_1E8;
s32 field_1EC;
s32 field_1F0;
s32 field_1F4;
f32 field_1D4;
f32 field_1D8;
f32 pause_watch_position;
f32 field_1E0;
f32 field_1E4;
f32 field_1E8;
f32 field_1EC;
f32 field_1F0;
f32 field_1F4;
s32 field_1F8;
s32 field_1FC;
/**
@@ -803,9 +743,9 @@ struct player
struct collision434 previous_collision_info;
struct collision434 field_488;
u32 resetheadpos; // bool
u32 resetheadrot; // bool
u32 resetheadtick; // bool 0x4e4
s32 resetheadpos; // bool
s32 resetheadrot; // bool
s32 resetheadtick; // bool 0x4e4
s32 headanim; // index into array of pointers. Pointers are for animations.
@@ -924,81 +864,8 @@ struct player
s32 field_6C8;
s32 field_6CC;
// struct? this gets pointed to. Pointer called "mtxlist" takes address of this property.
// bondheadmatrices 0 - 3
s32 field_6D0;
s32 field_6D4;
s32 field_6D8;
s32 field_6DC;
f32 field_6E0;
f32 field_6E4;
f32 field_6E8;
Mtxf bondheadmatrices[4];
s32 field_6EC;
f32 field_6F0;
f32 field_6F4;
f32 field_6F8;
s32 field_6FC;
f32 field_700;
f32 field_704; // related to standheight
f32 field_708;
s32 field_70C;
s32 field_710;
s32 field_714;
s32 field_718;
s32 field_71C;
s32 field_720;
s32 field_724;
s32 field_728;
s32 field_72C;
s32 field_730;
s32 field_734;
s32 field_738;
s32 field_73C;
s32 field_740;
f32 field_744;
f32 field_748;
s32 field_74C;
s32 field_750;
s32 field_754;
s32 field_758;
s32 field_75C;
s32 field_760;
s32 field_764;
s32 field_768;
s32 field_76C;
s32 field_770;
s32 field_774;
s32 field_778;
s32 field_77C;
s32 field_780;
s32 field_784;
s32 field_788;
s32 field_78C;
s32 field_790;
s32 field_794;
s32 field_798;
s32 field_79C;
s32 field_7A0;
s32 field_7A4;
s32 field_7A8;
s32 field_7AC;
s32 field_7B0;
s32 field_7B4;
s32 field_7B8;
s32 field_7BC;
s32 field_7C0;
s32 field_7C4;
s32 field_7C8;
s32 field_7CC;
Vp viewports[2];
/**
@@ -1021,35 +888,16 @@ struct player
*/
s16 viewtop;
s32 hand_invisible[2];
s32 hand_item[2];
u8 *ptr_hand_weapon_buffer[2];
s32 hand_invisible[2]; /* 0x7f8*/
ITEM_IDS hand_item[2]; /* 0x800 */
u8 *ptr_hand_weapon_buffer[2]; /* 0x808 */
/**
* Offset 0x810.
*/
ModelFileHeader copy_of_body_obj_header[2];
s32 field_850;
s32 field_854;
s32 field_858;
s32 field_85C;
s32 field_860;
/**
* Offset 0x864.
*/
s32 right_item_related1;
/**
* Offset 0x868.
*/
s32 right_item_related2;
/**
* Offset 0x86c.
*/
s32 right_item_related3;
struct texpool item_related[2]; /* 0x850 */
/**
* Offset 0x870.
@@ -1086,38 +934,20 @@ struct player
f32 crosshair_x_pos;
f32 crosshair_y_pos;
f32 guncrossdamp;
f32 field_FFC;
f32 field_1000;
coord2d field_FFC;
f32 gun_azimuth_angle;
f32 gun_azimuth_turning;
f32 gunaimdamp;
f32 field_1010;
f32 holds_neg_pi;
f32 field_1018;
s32 field_101C;
s32 field_1020;
s32 field_1024;
s32 field_1028;
s32 field_102C;
s32 field_1030;
s32 field_1034;
s32 field_1038;
s32 field_103C;
s32 field_1040;
s32 field_1044;
s32 field_1048;
s32 field_104C;
s32 field_1050;
s32 field_1054;
s32 field_1058;
coord3d field_1010;
Mtxf field_101C;
s32 last_z_trigger_timer;
s32 copiedgoldeneye;
s32 ammodispflags;
s32 field_1068;
f32 field_106C;
f32 field_1070;
f32 field_1074;
s32 field_1078;
f32 gunsync;
f32 syncchange;
f32 synccount;
s32 syncoffset;
f32 field_107C;
f32 field_1080;
f32 sniper_zoom;
@@ -1236,10 +1066,10 @@ struct player
s32 gunsightmode;
s32 field_112C;
s32 ammoheldarr[30];
u8 *field_11A8;
u8 *field_11AC;
u8 *field_11B0[2];
s32 field_11B8;
u8 *bloodImgCur;
u8 *bloodImgNxt;
u8 *bloodImgBufPtrArray[2];
s32 bloodImgIdx;
f32 zoomintime;
f32 zoomintimemax;
f32 zoominfovy;
@@ -1260,9 +1090,9 @@ struct player
f32 swaytarget;
f32 field_1278;
f32 field_127C;
s32 field_1280;
f32 field_1280;
s32 players_cur_animation;
s32 field_1288;
f32 field_1288;
/**
* This buffers button presses.
@@ -2679,7 +2509,7 @@ struct player
s32 field_29B4;
// Alt field_29C0 ?? Used in EU.
f32 field_29B8;
s32 field_29B8;
/**
* Related to player perspective.
@@ -2696,10 +2526,7 @@ struct player
s32 deathcount;
s32 num_suicides;
s32 field_29E0;
s32 last_kill_time;
s32 field_29E8;
s32 field_29EC;
s32 field_29F0;
s32 last_kill_time[4];
/**
* Holds mission offset timer value.
@@ -2721,18 +2548,13 @@ struct player
f32 field_2A0C;
s32 ptr_text_first_mp_award;
s32 ptr_text_second_mp_award;
s32 field_2A18;
s32 field_2A1C;
s32 field_2A20;
s32 field_2A24;
s32 field_2A28;
s32 field_2A2C;
coord3d field_2A18[2];
s32 field_2A30;
s32 field_2A34;
s32 cur_item_weapon_getname;
f32 actual_health;
f32 actual_armor;
s32 field_2A44[2];
ITEM_IDS field_2A44[2];
f32 field_2A4C;
s32 lock_hand_model[2];
s32 cur_player_control_type_0;
@@ -2773,6 +2595,52 @@ struct struct_4 {
float anonymous_3;
};
#ifdef BUGFIX_R0
typedef struct bondstruct_unk_80036634
{
u32 field_0x0;
u32 field_0x4;
s32 field_0x8;
f32 field_0xC;
u32 field_0x10;
u32 field_0x14;
s32 field_0x18;
f32 field_0x1c;
u32 field_0x20;
u32 field_0x24;
u32 field_0x28;
} bondstruct_unk_80036634;
#else
typedef struct bondstruct_unk_80036634
{
f32 field_0x0;
f32 field_0x4;
f32 field_0x8;
f32 field_0xC;
f32 field_0x10;
f32 field_0x14;
f32 field_0x18;
f32 field_0x1c;
u32 field_0x20;
u32 field_0x24;
u32 field_0x28;
} bondstruct_unk_80036634;
#endif
typedef struct bondstruct_unk_80036794 { // time related idk
s32 unk0;
s32 unk4;
s32 unk8;
} bondstruct_unk_80036794;
typedef struct bondstruct_unk_80035904 {
u32 unk00;
coord3d unk04;
coord3d unk10;
f32 unk1C;
f32 unk20;
} bondstruct_unk_80035904;
//D:80036424
extern s32 g_bondviewForceDisarm;
//D:80036428
@@ -2910,7 +2778,7 @@ D:80036624 .word 0xFFFFFF00, 0xFFFFFF00, 0x4FFFFFF
//D:80036630
extern u32 D_80036630;
//D:80036634
extern u32 D_80036634[];
extern bondstruct_unk_80036634 D_80036634[];
/*
D:80036638 .byte 0
D:80036639 .byte 0, 0, 0xA
@@ -3096,12 +2964,6 @@ extern StandTilePoint *dword_CODE_bss_80079DA4;
#define BSS_80079DA8_LENGTH 8
extern s32 dword_CODE_bss_80079DA8[];
#ifndef VERSION_EU
extern char dword_CODE_bss_80079DC8[];
#else
extern char dword_CODE_bss_80079DC8[];
#endif
u32 get_camera_mode(void);
@@ -3192,7 +3054,7 @@ Mtxf *currentPlayerGetMatrix10EC(void);
f32 get_curplay_horizontal_rotation_in_degrees(void);
Mtxf *currentPlayerGetMatrix10CC(void);
void sub_GAME_7F077EEC(struct coord2d *in, coord3d *out, f32 value);
s32 sub_GAME_7F078BF4(coord3d *, f32, struct bbox2d *);
s32 camIsPosInScreenBox(coord3d *, f32, struct bbox2d *);
void bondviewTransformManyPosToViewMatrix(RenderPosView *arg0, s32 arg1);
s32 sub_GAME_7F078474(void);
@@ -3206,7 +3068,7 @@ void sub_GAME_7F08A928(int param_1);
void sub_GAME_7F08A944(PLAYERFLAG flag);
void set_camera_mode(s32 arg0);
bool isBondInTank(void);
void hudmsgTopShow(s8 *string);
void hudmsgTopShow(char* string);
void SurroundWithExplosions(int delay);
s32 check_watch_page_transistion_running(void);
f32 bondviewWatchAnimationRelated(void);
@@ -3216,4 +3078,8 @@ s32 bondviewGetRandomSpawnPadIndex(void);
void change_player_pos_to_target(struct collision434* arg0, struct coord3d *arg1, struct StandTile *arg2);
void sub_GAME_7F089718(f32);
void sub_GAME_7F08A900(void);
Mtxf *currentPlayerGetProjectionMatrixF(void);
int redirect_get_BONDdata_autoaim_x(void);
void sub_GAME_7F077FF4(coord3d *in, coord3d *out);
#endif
+13 -13
View File
@@ -109,7 +109,7 @@ void bondviewLoadSetupIntroSection(void)
start_pos = D_8002A780;
intro_record = (struct SetupIntroEmpty *)g_chraiCurrentSetup.intro;
intro_record = (struct SetupIntroEmpty *)g_CurrentSetup.intro;
g_isBondKIA = 0;
g_bondviewForceDisarm = 0;
resolution = 0;
@@ -179,10 +179,10 @@ void bondviewLoadSetupIntroSection(void)
{
case INTROTYPE_SPAWN:
{
if (g_chraiCurrentSetup.pads != NULL
if (g_CurrentSetup.pads != NULL
&& (check_ramrom_flags() == ((struct SetupIntroSpawn*)intro_record)->is_demo_playback))
{
g_Startpad[startpadcount] = &g_chraiCurrentSetup.pads[((struct SetupIntroSpawn*)intro_record)->index];
g_Startpad[startpadcount] = &g_CurrentSetup.pads[((struct SetupIntroSpawn*)intro_record)->index];
startpadcount++;
}
@@ -247,11 +247,11 @@ void bondviewLoadSetupIntroSection(void)
g_IntroSwirl = intro_swirl;
}
intro_swirl->unk08.fval = intro_swirl->unk08.ival / 65536.0f;
intro_swirl->unk0C.fval = intro_swirl->unk0C.ival / 65536.0f;
intro_swirl->unk10.fval = intro_swirl->unk10.ival / 65536.0f;
intro_swirl->unk14.fval = intro_swirl->unk14.ival / 65536.0f;
intro_swirl->unk18.fval = intro_swirl->unk18.ival / 65536.0f;
intro_swirl->unk08.fval = intro_swirl->unk08.ival / M_U16_MAX_VALUE_F;
intro_swirl->unk0C.fval = intro_swirl->unk0C.ival / M_U16_MAX_VALUE_F;
intro_swirl->unk10.fval = intro_swirl->unk10.ival / M_U16_MAX_VALUE_F;
intro_swirl->unk14.fval = intro_swirl->unk14.ival / M_U16_MAX_VALUE_F;
intro_swirl->unk18.fval = intro_swirl->unk18.ival / M_U16_MAX_VALUE_F;
intro_record = (struct SetupIntroEmpty*)((s32)intro_record + sizeof(struct SetupIntroSwirl));
}
@@ -284,8 +284,8 @@ void bondviewLoadSetupIntroSection(void)
((struct SetupIntroCamera*)intro_record)->unk04.fval = ((struct SetupIntroCamera*)intro_record)->unk04.ival / 100.0f;
((struct SetupIntroCamera*)intro_record)->unk08.fval = ((struct SetupIntroCamera*)intro_record)->unk08.ival / 100.0f;
((struct SetupIntroCamera*)intro_record)->unk0C.fval = ((struct SetupIntroCamera*)intro_record)->unk0C.ival / 100.0f;
((struct SetupIntroCamera*)intro_record)->unk10.fval = ((struct SetupIntroCamera*)intro_record)->unk10.ival / 65536.0f;
((struct SetupIntroCamera*)intro_record)->unk14.fval = ((struct SetupIntroCamera*)intro_record)->unk14.ival / 65536.0f;
((struct SetupIntroCamera*)intro_record)->unk10.fval = ((struct SetupIntroCamera*)intro_record)->unk10.ival / M_U16_MAX_VALUE_F;
((struct SetupIntroCamera*)intro_record)->unk14.fval = ((struct SetupIntroCamera*)intro_record)->unk14.ival / M_U16_MAX_VALUE_F;
((struct SetupIntroCamera*)intro_record)->lang1c.lang_ptr = langGet(((struct SetupIntroCamera*)intro_record)->lang1c.lang_index[1]);
@@ -326,7 +326,7 @@ void bondviewLoadSetupIntroSection(void)
intro_credits = (struct SetupIntroCredits*)intro_record;
// hack: bad address math
credits = (CreditsEntry*)((s32)dword_CODE_bss_80075D28 + (s32)intro_credits->unk04);
credits = (CreditsEntry*)((s32)g_ptrStageSetupFile + (s32)intro_credits->unk04);
D_80036440 = credits;
// what is the point of this?
@@ -398,7 +398,7 @@ void bondviewLoadSetupIntroSection(void)
stan_height = bondviewYPositionRelated(start_stan, start_pos.f[0], start_pos.f[2]);
start_pos.f[1] = g_CurrentPlayer->field_29BC + stan_height;
g_CurrentPlayer->field_70 = stan_height;
start_look_angle = 6.2831855f - atan2f(g_Startpad[rand_pad_index]->look.f[0], g_Startpad[rand_pad_index]->look.f[2]);
start_look_angle = M_TAU_F - atan2f(g_Startpad[rand_pad_index]->look.f[0], g_Startpad[rand_pad_index]->look.f[2]);
}
else
{
@@ -408,7 +408,7 @@ void bondviewLoadSetupIntroSection(void)
g_CurrentPlayer->field_70 = stan_height;
}
g_CurrentPlayer->vv_theta = (start_look_angle * 360.0f) / 6.2831855f;
g_CurrentPlayer->vv_theta = (start_look_angle * 360.0f) / M_TAU_F;
g_CurrentPlayer->stanHeight = stan_height;
g_CurrentPlayer->field_6C = stan_height / FIELD_6C_FACTOR;
change_player_pos_to_target(&g_CurrentPlayer->field_488, &start_pos, start_stan);
+101 -592
View File
@@ -1,611 +1,120 @@
#include <ultra64.h>
#ifdef NONMATCHING
f32 sub_GAME_7F06ABB0(void *arg0, void *arg1, void *arg2, s32 arg3, s32 arg4, s3 2 arg5, s32 arg6, s32 arg7) {
void *sp0;
void *spC;
void *temp_v0;
s32 temp_f18;
s32 temp_f8;
s32 temp_f4;
s32 temp_f10;
void *temp_v0_2;
void *temp_v0_4;
void *temp_v0_3;
void *temp_v0_5;
void *temp_v1;
s32 phi_a1;
s32 phi_a2;
s32 phi_a3;
s32 phi_t0;
s32 phi_v1;
s32 phi_a0;
void *phi_v0;
s32 phi_a3_2;
s32 phi_t0_2;
s32 phi_v1_2;
s32 phi_a0_2;
s32 phi_a3_3;
s32 phi_t0_3;
// Node 0
if (0.0f < *arg2)
void sub_GAME_7F06ABB0(Gfx **gdlptr, f32 *arg1, f32 *arg2, s32 width, s32 height, s32 arg5, s32 arg6, s32 arg7)
{
if (arg2[0] > 0.0f && arg2[1] > 0.0f)
{
// Node 1
if (0.0f < arg2->unk4)
Gfx *gdl = *gdlptr;
s32 xl;
s32 yl;
s32 xh;
s32 yh;
s32 s = 0;
s32 t = 0;
s32 dsdx;
s32 dtdy;
gDPSetTexturePersp(gdl++, G_TP_NONE);
xl = (arg1[0] - arg2[0]) * 4.0f;
yl = (arg1[1] - arg2[1]) * 4.0f;
xh = (arg1[0] + arg2[0]) * 4.0f;
yh = (arg1[1] + arg2[1]) * 4.0f;
if (xh >= 0 && yh >= 0)
{
// Node 2
**arg0 = 0xba001301;
*arg0->unk4 = 0;
temp_v0 = (*arg0 + 8);
temp_f18 = (s32) ((*arg1 - *arg2) * 4.0f);
temp_f8 = (s32) ((arg1->unk4 - arg2->unk4) * 4.0f);
temp_f4 = (s32) ((*arg2 + *arg1) * 4.0f);
temp_f10 = (s32) ((arg2->unk4 + arg1->unk4) * 4.0f);
phi_v0 = temp_v0;
if (temp_f4 >= 0)
if (xl < 0)
{
// Node 3
phi_v0 = temp_v0;
if (temp_f10 >= 0)
if (arg5)
{
// Node 4
phi_a1 = temp_f18;
phi_a3_3 = 0;
phi_t0_3 = 0;
if (temp_f18 < 0)
{
// Node 5
if (arg5 != 0)
{
// Node 6
phi_a1 = 0;
phi_a3_3 = 0;
phi_t0_3 = ((s32) ((-temp_f18 * arg4) << 5) / (s32) (temp_f4 - temp_f18));
}
else
{
// Node 7
phi_a1 = 0;
phi_a3_3 = ((s32) ((-temp_f18 * arg3) << 5) / (s32) (temp_f4 - temp_f18));
phi_t0_3 = 0;
}
}
// Node 8
phi_a2 = temp_f8;
phi_a3_2 = phi_a3_3;
phi_t0_2 = phi_t0_3;
if (temp_f8 < 0)
{
// Node 9
if (arg5 != 0)
{
// Node 10
phi_a2 = 0;
phi_a3_2 = (phi_a3_3 + ((s32) ((-temp_f8 * arg3) << 5) / (s32) (temp_f10 - temp_f8)));
phi_t0_2 = phi_t0_3;
}
else
{
// Node 11
phi_a2 = 0;
phi_a3_2 = phi_a3_3;
phi_t0_2 = (phi_t0_3 + ((s32) ((-temp_f8 * arg4) << 5) / (s32) (temp_f10 - temp_f8)));
}
}
// Node 12
if (arg5 != 0)
{
// Node 13
phi_v1_2 = (s32) (((f32) arg3 / (arg2->unk4 + arg2->unk4 )) * 1024.0f);
phi_a0_2 = (s32) (((f32) arg4 / (*arg2 + *arg2)) * 1024. 0f);
}
else
{
// Node 14
phi_v1_2 = (s32) (((f32) arg3 / (*arg2 + *arg2)) * 1024. 0f);
phi_a0_2 = (s32) (((f32) arg4 / (arg2->unk4 + arg2->unk4 )) * 1024.0f);
}
// Node 15
phi_a3 = phi_a3_2;
phi_v1 = phi_v1_2;
if (arg6 != 0)
{
// Node 16
phi_a3 = (((arg3 + -1) << 5) - phi_a3_2);
phi_v1 = (0x10000 - phi_v1_2);
}
// Node 17
phi_t0 = phi_t0_2;
phi_a0 = phi_a0_2;
if (arg7 != 0)
{
// Node 18
phi_t0 = (((arg4 + -1) << 5) - phi_t0_2);
phi_a0 = (0x10000 - phi_a0_2);
}
// Node 19
if (arg5 != 0)
{
// Node 20
*temp_v0 = (s32) ((((temp_f4 & 0xfff) << 0xc) | 0xe50000 00) | (temp_f10 & 0xfff));
temp_v0->unk4 = (s32) (((phi_a1 & 0xfff) << 0xc) | (phi_ a2 & 0xfff));
temp_v0_2 = (temp_v0 + 8);
*temp_v0_2 = 0xb4000000;
temp_v0_2->unk4 = (s32) ((phi_a3 << 0x10) | (phi_t0 & 0x ffff));
temp_v0_4 = (temp_v0_2 + 8);
spC = temp_v0_4;
*spC = 0xb3000000;
spC->unk4 = (s32) ((phi_v1 << 0x10) | (phi_a0 & 0xffff)) ;
phi_v0 = (temp_v0_4 + 8);
}
else
{
// Node 21
*temp_v0 = (s32) ((((temp_f4 & 0xfff) << 0xc) | 0xe40000 00) | (temp_f10 & 0xfff));
temp_v0->unk4 = (s32) (((phi_a1 & 0xfff) << 0xc) | (phi_ a2 & 0xfff));
temp_v0_3 = (temp_v0 + 8);
*temp_v0_3 = 0xb4000000;
temp_v0_3->unk4 = (s32) ((phi_a3 << 0x10) | (phi_t0 & 0x ffff));
temp_v0_5 = (temp_v0_3 + 8);
sp0 = temp_v0_5;
*sp0 = 0xb3000000;
sp0->unk4 = (s32) ((phi_v1 << 0x10) | (phi_a0 & 0xffff)) ;
phi_v0 = (temp_v0_5 + 8);
}
}
}
// Node 22
temp_v1 = phi_v0;
temp_v1->unk4 = 0x80000;
*temp_v1 = 0xba001301;
*arg0 = (void *) (phi_v0 + 8);
}
}
// Node 23
return 0.0f;
}
#else
GLOBAL_ASM(
.text
glabel sub_GAME_7F06ABB0
/* 09F6E0 7F06ABB0 27BDFFC0 */ addiu $sp, $sp, -0x40
/* 09F6E4 7F06ABB4 AFA40040 */ sw $a0, 0x40($sp)
/* 09F6E8 7F06ABB8 AFA50044 */ sw $a1, 0x44($sp)
/* 09F6EC 7F06ABBC AFA60048 */ sw $a2, 0x48($sp)
/* 09F6F0 7F06ABC0 AFA7004C */ sw $a3, 0x4c($sp)
/* 09F6F4 7F06ABC4 44800000 */ mtc1 $zero, $f0
/* 09F6F8 7F06ABC8 C4C40000 */ lwc1 $f4, ($a2)
/* 09F6FC 7F06ABCC 4604003C */ c.lt.s $f0, $f4
/* 09F700 7F06ABD0 00000000 */ nop
/* 09F704 7F06ABD4 45000102 */ bc1f .L7F06AFE0
/* 09F708 7F06ABD8 00000000 */ nop
/* 09F70C 7F06ABDC C4C60004 */ lwc1 $f6, 4($a2)
/* 09F710 7F06ABE0 3C0BBA00 */ lui $t3, (0xBA001301 >> 16) # lui $t3, 0xba00
/* 09F714 7F06ABE4 4606003C */ c.lt.s $f0, $f6
/* 09F718 7F06ABE8 00000000 */ nop
/* 09F71C 7F06ABEC 450000FC */ bc1f .L7F06AFE0
/* 09F720 7F06ABF0 00000000 */ nop
/* 09F724 7F06ABF4 8C820000 */ lw $v0, ($a0)
/* 09F728 7F06ABF8 356B1301 */ ori $t3, (0xBA001301 & 0xFFFF) # ori $t3, $t3, 0x1301
/* 09F72C 7F06ABFC 3C014080 */ li $at, 0x40800000 # 4.000000
/* 09F730 7F06AC00 00401825 */ move $v1, $v0
/* 09F734 7F06AC04 AC6B0000 */ sw $t3, ($v1)
/* 09F738 7F06AC08 AC600004 */ sw $zero, 4($v1)
/* 09F73C 7F06AC0C 8FB90048 */ lw $t9, 0x48($sp)
/* 09F740 7F06AC10 8FB80044 */ lw $t8, 0x44($sp)
/* 09F744 7F06AC14 44818000 */ mtc1 $at, $f16
/* 09F748 7F06AC18 C7200000 */ lwc1 $f0, ($t9)
/* 09F74C 7F06AC1C C70C0000 */ lwc1 $f12, ($t8)
/* 09F750 7F06AC20 C7220004 */ lwc1 $f2, 4($t9)
/* 09F754 7F06AC24 C70E0004 */ lwc1 $f14, 4($t8)
/* 09F758 7F06AC28 46006201 */ sub.s $f8, $f12, $f0
/* 09F75C 7F06AC2C 00003825 */ move $a3, $zero
/* 09F760 7F06AC30 00004025 */ move $t0, $zero
/* 09F764 7F06AC34 46027101 */ sub.s $f4, $f14, $f2
/* 09F768 7F06AC38 46104282 */ mul.s $f10, $f8, $f16
/* 09F76C 7F06AC3C 24420008 */ addiu $v0, $v0, 8
/* 09F770 7F06AC40 46102182 */ mul.s $f6, $f4, $f16
/* 09F774 7F06AC44 4600548D */ trunc.w.s $f18, $f10
/* 09F778 7F06AC48 460C0280 */ add.s $f10, $f0, $f12
/* 09F77C 7F06AC4C 44059000 */ mfc1 $a1, $f18
/* 09F780 7F06AC50 4600320D */ trunc.w.s $f8, $f6
/* 09F784 7F06AC54 46105482 */ mul.s $f18, $f10, $f16
/* 09F788 7F06AC58 460E1180 */ add.s $f6, $f2, $f14
/* 09F78C 7F06AC5C 44064000 */ mfc1 $a2, $f8
/* 09F790 7F06AC60 46103202 */ mul.s $f8, $f6, $f16
/* 09F794 7F06AC64 4600910D */ trunc.w.s $f4, $f18
/* 09F798 7F06AC68 44092000 */ mfc1 $t1, $f4
/* 09F79C 7F06AC6C 4600428D */ trunc.w.s $f10, $f8
/* 09F7A0 7F06AC70 440A5000 */ mfc1 $t2, $f10
/* 09F7A4 7F06AC74 052200D4 */ bltzl $t1, .L7F06AFC8
/* 09F7A8 7F06AC78 00401825 */ move $v1, $v0
/* 09F7AC 7F06AC7C 054200D2 */ bltzl $t2, .L7F06AFC8
/* 09F7B0 7F06AC80 00401825 */ move $v1, $v0
/* 09F7B4 7F06AC84 04A1002A */ bgez $a1, .L7F06AD30
/* 09F7B8 7F06AC88 8FAC0054 */ lw $t4, 0x54($sp)
/* 09F7BC 7F06AC8C 11800015 */ beqz $t4, .L7F06ACE4
/* 09F7C0 7F06AC90 8FAF004C */ lw $t7, 0x4c($sp)
/* 09F7C4 7F06AC94 8FAD0050 */ lw $t5, 0x50($sp)
/* 09F7C8 7F06AC98 0005C823 */ negu $t9, $a1
/* 09F7CC 7F06AC9C 0125C023 */ subu $t8, $t1, $a1
/* 09F7D0 7F06ACA0 032D0019 */ multu $t9, $t5
/* 09F7D4 7F06ACA4 00007812 */ mflo $t7
/* 09F7D8 7F06ACA8 000F7140 */ sll $t6, $t7, 5
/* 09F7DC 7F06ACAC 00000000 */ nop
/* 09F7E0 7F06ACB0 01D8001A */ div $zero, $t6, $t8
/* 09F7E4 7F06ACB4 00004012 */ mflo $t0
/* 09F7E8 7F06ACB8 17000002 */ bnez $t8, .L7F06ACC4
/* 09F7EC 7F06ACBC 00000000 */ nop
/* 09F7F0 7F06ACC0 0007000D */ break 7
.L7F06ACC4:
/* 09F7F4 7F06ACC4 2401FFFF */ li $at, -1
/* 09F7F8 7F06ACC8 17010004 */ bne $t8, $at, .L7F06ACDC
/* 09F7FC 7F06ACCC 3C018000 */ lui $at, 0x8000
/* 09F800 7F06ACD0 15C10002 */ bne $t6, $at, .L7F06ACDC
/* 09F804 7F06ACD4 00000000 */ nop
/* 09F808 7F06ACD8 0006000D */ break 6
.L7F06ACDC:
/* 09F80C 7F06ACDC 10000014 */ b .L7F06AD30
/* 09F810 7F06ACE0 00002825 */ move $a1, $zero
.L7F06ACE4:
/* 09F814 7F06ACE4 0005C823 */ negu $t9, $a1
/* 09F818 7F06ACE8 032F0019 */ multu $t9, $t7
/* 09F81C 7F06ACEC 0125C823 */ subu $t9, $t1, $a1
/* 09F820 7F06ACF0 8FAD0050 */ lw $t5, 0x50($sp)
/* 09F824 7F06ACF4 00007012 */ mflo $t6
/* 09F828 7F06ACF8 000EC140 */ sll $t8, $t6, 5
/* 09F82C 7F06ACFC 00000000 */ nop
/* 09F830 7F06AD00 0319001A */ div $zero, $t8, $t9
/* 09F834 7F06AD04 00003812 */ mflo $a3
/* 09F838 7F06AD08 17200002 */ bnez $t9, .L7F06AD14
/* 09F83C 7F06AD0C 00000000 */ nop
/* 09F840 7F06AD10 0007000D */ break 7
.L7F06AD14:
/* 09F844 7F06AD14 2401FFFF */ li $at, -1
/* 09F848 7F06AD18 17210004 */ bne $t9, $at, .L7F06AD2C
/* 09F84C 7F06AD1C 3C018000 */ lui $at, 0x8000
/* 09F850 7F06AD20 17010002 */ bne $t8, $at, .L7F06AD2C
/* 09F854 7F06AD24 00000000 */ nop
/* 09F858 7F06AD28 0006000D */ break 6
.L7F06AD2C:
/* 09F85C 7F06AD2C 00002825 */ move $a1, $zero
.L7F06AD30:
/* 09F860 7F06AD30 8FAC0054 */ lw $t4, 0x54($sp)
/* 09F864 7F06AD34 04C1002A */ bgez $a2, .L7F06ADE0
/* 09F868 7F06AD38 8FAD0050 */ lw $t5, 0x50($sp)
/* 09F86C 7F06AD3C 11800016 */ beqz $t4, .L7F06AD98
/* 09F870 7F06AD40 0006C023 */ negu $t8, $a2
/* 09F874 7F06AD44 8FAE004C */ lw $t6, 0x4c($sp)
/* 09F878 7F06AD48 00067823 */ negu $t7, $a2
/* 09F87C 7F06AD4C 01EE0019 */ multu $t7, $t6
/* 09F880 7F06AD50 01467823 */ subu $t7, $t2, $a2
/* 09F884 7F06AD54 0000C012 */ mflo $t8
/* 09F888 7F06AD58 0018C940 */ sll $t9, $t8, 5
/* 09F88C 7F06AD5C 00000000 */ nop
/* 09F890 7F06AD60 032F001A */ div $zero, $t9, $t7
/* 09F894 7F06AD64 00007012 */ mflo $t6
/* 09F898 7F06AD68 00EE3821 */ addu $a3, $a3, $t6
/* 09F89C 7F06AD6C 15E00002 */ bnez $t7, .L7F06AD78
/* 09F8A0 7F06AD70 00000000 */ nop
/* 09F8A4 7F06AD74 0007000D */ break 7
.L7F06AD78:
/* 09F8A8 7F06AD78 2401FFFF */ li $at, -1
/* 09F8AC 7F06AD7C 15E10004 */ bne $t7, $at, .L7F06AD90
/* 09F8B0 7F06AD80 3C018000 */ lui $at, 0x8000
/* 09F8B4 7F06AD84 17210002 */ bne $t9, $at, .L7F06AD90
/* 09F8B8 7F06AD88 00000000 */ nop
/* 09F8BC 7F06AD8C 0006000D */ break 6
.L7F06AD90:
/* 09F8C0 7F06AD90 10000013 */ b .L7F06ADE0
/* 09F8C4 7F06AD94 00003025 */ move $a2, $zero
.L7F06AD98:
/* 09F8C8 7F06AD98 030D0019 */ multu $t8, $t5
/* 09F8CC 7F06AD9C 01467023 */ subu $t6, $t2, $a2
/* 09F8D0 7F06ADA0 0000C812 */ mflo $t9
/* 09F8D4 7F06ADA4 00197940 */ sll $t7, $t9, 5
/* 09F8D8 7F06ADA8 00000000 */ nop
/* 09F8DC 7F06ADAC 01EE001A */ div $zero, $t7, $t6
/* 09F8E0 7F06ADB0 0000C012 */ mflo $t8
/* 09F8E4 7F06ADB4 01184021 */ addu $t0, $t0, $t8
/* 09F8E8 7F06ADB8 15C00002 */ bnez $t6, .L7F06ADC4
/* 09F8EC 7F06ADBC 00000000 */ nop
/* 09F8F0 7F06ADC0 0007000D */ break 7
.L7F06ADC4:
/* 09F8F4 7F06ADC4 2401FFFF */ li $at, -1
/* 09F8F8 7F06ADC8 15C10004 */ bne $t6, $at, .L7F06ADDC
/* 09F8FC 7F06ADCC 3C018000 */ lui $at, 0x8000
/* 09F900 7F06ADD0 15E10002 */ bne $t7, $at, .L7F06ADDC
/* 09F904 7F06ADD4 00000000 */ nop
/* 09F908 7F06ADD8 0006000D */ break 6
.L7F06ADDC:
/* 09F90C 7F06ADDC 00003025 */ move $a2, $zero
.L7F06ADE0:
/* 09F910 7F06ADE0 11800015 */ beqz $t4, .L7F06AE38
/* 09F914 7F06ADE4 8FAE0058 */ lw $t6, 0x58($sp)
/* 09F918 7F06ADE8 8FB9004C */ lw $t9, 0x4c($sp)
/* 09F91C 7F06ADEC 46021180 */ add.s $f6, $f2, $f2
/* 09F920 7F06ADF0 3C014480 */ li $at, 0x44800000 # 1024.000000
/* 09F924 7F06ADF4 44999000 */ mtc1 $t9, $f18
/* 09F928 7F06ADF8 44816000 */ mtc1 $at, $f12
/* 09F92C 7F06ADFC 46809120 */ cvt.s.w $f4, $f18
/* 09F930 7F06AE00 46062203 */ div.s $f8, $f4, $f6
/* 09F934 7F06AE04 448D2000 */ mtc1 $t5, $f4
/* 09F938 7F06AE08 00000000 */ nop
/* 09F93C 7F06AE0C 468021A0 */ cvt.s.w $f6, $f4
/* 09F940 7F06AE10 460C4282 */ mul.s $f10, $f8, $f12
/* 09F944 7F06AE14 46000200 */ add.s $f8, $f0, $f0
/* 09F948 7F06AE18 4600548D */ trunc.w.s $f18, $f10
/* 09F94C 7F06AE1C 46083283 */ div.s $f10, $f6, $f8
/* 09F950 7F06AE20 44039000 */ mfc1 $v1, $f18
/* 09F954 7F06AE24 460C5482 */ mul.s $f18, $f10, $f12
/* 09F958 7F06AE28 4600910D */ trunc.w.s $f4, $f18
/* 09F95C 7F06AE2C 44042000 */ mfc1 $a0, $f4
/* 09F960 7F06AE30 10000014 */ b .L7F06AE84
/* 09F964 7F06AE34 00000000 */ nop
.L7F06AE38:
/* 09F968 7F06AE38 8FB8004C */ lw $t8, 0x4c($sp)
/* 09F96C 7F06AE3C 46000280 */ add.s $f10, $f0, $f0
/* 09F970 7F06AE40 3C014480 */ li $at, 0x44800000 # 1024.000000
/* 09F974 7F06AE44 44983000 */ mtc1 $t8, $f6
/* 09F978 7F06AE48 44816000 */ mtc1 $at, $f12
/* 09F97C 7F06AE4C 46803220 */ cvt.s.w $f8, $f6
/* 09F980 7F06AE50 460A4483 */ div.s $f18, $f8, $f10
/* 09F984 7F06AE54 448D4000 */ mtc1 $t5, $f8
/* 09F988 7F06AE58 00000000 */ nop
/* 09F98C 7F06AE5C 468042A0 */ cvt.s.w $f10, $f8
/* 09F990 7F06AE60 460C9102 */ mul.s $f4, $f18, $f12
/* 09F994 7F06AE64 46021480 */ add.s $f18, $f2, $f2
/* 09F998 7F06AE68 4600218D */ trunc.w.s $f6, $f4
/* 09F99C 7F06AE6C 46125103 */ div.s $f4, $f10, $f18
/* 09F9A0 7F06AE70 44033000 */ mfc1 $v1, $f6
/* 09F9A4 7F06AE74 460C2182 */ mul.s $f6, $f4, $f12
/* 09F9A8 7F06AE78 4600320D */ trunc.w.s $f8, $f6
/* 09F9AC 7F06AE7C 44044000 */ mfc1 $a0, $f8
/* 09F9B0 7F06AE80 00000000 */ nop
.L7F06AE84:
/* 09F9B4 7F06AE84 11C00006 */ beqz $t6, .L7F06AEA0
/* 09F9B8 7F06AE88 8FB9004C */ lw $t9, 0x4c($sp)
/* 09F9BC 7F06AE8C 272FFFFF */ addiu $t7, $t9, -1
/* 09F9C0 7F06AE90 3C180001 */ lui $t8, 1
/* 09F9C4 7F06AE94 000F7140 */ sll $t6, $t7, 5
/* 09F9C8 7F06AE98 03031823 */ subu $v1, $t8, $v1
/* 09F9CC 7F06AE9C 01C73823 */ subu $a3, $t6, $a3
.L7F06AEA0:
/* 09F9D0 7F06AEA0 8FB8005C */ lw $t8, 0x5c($sp)
/* 09F9D4 7F06AEA4 25AFFFFF */ addiu $t7, $t5, -1
/* 09F9D8 7F06AEA8 3C190001 */ lui $t9, 1
/* 09F9DC 7F06AEAC 13000003 */ beqz $t8, .L7F06AEBC
/* 09F9E0 7F06AEB0 000F7140 */ sll $t6, $t7, 5
/* 09F9E4 7F06AEB4 03242023 */ subu $a0, $t9, $a0
/* 09F9E8 7F06AEB8 01C84023 */ subu $t0, $t6, $t0
.L7F06AEBC:
/* 09F9EC 7F06AEBC 11800022 */ beqz $t4, .L7F06AF48
/* 09F9F0 7F06AEC0 31390FFF */ andi $t9, $t1, 0xfff
/* 09F9F4 7F06AEC4 31380FFF */ andi $t8, $t1, 0xfff
/* 09F9F8 7F06AEC8 0018CB00 */ sll $t9, $t8, 0xc
/* 09F9FC 7F06AECC 3C01E500 */ lui $at, 0xe500
/* 09FA00 7F06AED0 03217825 */ or $t7, $t9, $at
/* 09FA04 7F06AED4 314E0FFF */ andi $t6, $t2, 0xfff
/* 09FA08 7F06AED8 01EEC025 */ or $t8, $t7, $t6
/* 09FA0C 7F06AEDC 30B90FFF */ andi $t9, $a1, 0xfff
/* 09FA10 7F06AEE0 00406025 */ move $t4, $v0
/* 09FA14 7F06AEE4 AD980000 */ sw $t8, ($t4)
/* 09FA18 7F06AEE8 00197B00 */ sll $t7, $t9, 0xc
/* 09FA1C 7F06AEEC 30CE0FFF */ andi $t6, $a2, 0xfff
/* 09FA20 7F06AEF0 01EEC025 */ or $t8, $t7, $t6
/* 09FA24 7F06AEF4 AD980004 */ sw $t8, 4($t4)
/* 09FA28 7F06AEF8 24420008 */ addiu $v0, $v0, 8
/* 09FA2C 7F06AEFC 00406825 */ move $t5, $v0
/* 09FA30 7F06AF00 3C19B400 */ lui $t9, 0xb400
/* 09FA34 7F06AF04 ADB90000 */ sw $t9, ($t5)
/* 09FA38 7F06AF08 3118FFFF */ andi $t8, $t0, 0xffff
/* 09FA3C 7F06AF0C 00077400 */ sll $t6, $a3, 0x10
/* 09FA40 7F06AF10 01D8C825 */ or $t9, $t6, $t8
/* 09FA44 7F06AF14 ADB90004 */ sw $t9, 4($t5)
/* 09FA48 7F06AF18 24420008 */ addiu $v0, $v0, 8
/* 09FA4C 7F06AF1C AFA2000C */ sw $v0, 0xc($sp)
/* 09FA50 7F06AF20 8FAE000C */ lw $t6, 0xc($sp)
/* 09FA54 7F06AF24 3C0FB300 */ lui $t7, 0xb300
/* 09FA58 7F06AF28 0003CC00 */ sll $t9, $v1, 0x10
/* 09FA5C 7F06AF2C ADCF0000 */ sw $t7, ($t6)
/* 09FA60 7F06AF30 8FB8000C */ lw $t8, 0xc($sp)
/* 09FA64 7F06AF34 308FFFFF */ andi $t7, $a0, 0xffff
/* 09FA68 7F06AF38 032F7025 */ or $t6, $t9, $t7
/* 09FA6C 7F06AF3C 24420008 */ addiu $v0, $v0, 8
/* 09FA70 7F06AF40 10000020 */ b .L7F06AFC4
/* 09FA74 7F06AF44 AF0E0004 */ sw $t6, 4($t8)
.L7F06AF48:
/* 09FA78 7F06AF48 00197B00 */ sll $t7, $t9, 0xc
/* 09FA7C 7F06AF4C 3C01E400 */ lui $at, 0xe400
/* 09FA80 7F06AF50 01E17025 */ or $t6, $t7, $at
/* 09FA84 7F06AF54 31580FFF */ andi $t8, $t2, 0xfff
/* 09FA88 7F06AF58 01D8C825 */ or $t9, $t6, $t8
/* 09FA8C 7F06AF5C 30AF0FFF */ andi $t7, $a1, 0xfff
/* 09FA90 7F06AF60 00406025 */ move $t4, $v0
/* 09FA94 7F06AF64 AD990000 */ sw $t9, ($t4)
/* 09FA98 7F06AF68 000F7300 */ sll $t6, $t7, 0xc
/* 09FA9C 7F06AF6C 30D80FFF */ andi $t8, $a2, 0xfff
/* 09FAA0 7F06AF70 01D8C825 */ or $t9, $t6, $t8
/* 09FAA4 7F06AF74 AD990004 */ sw $t9, 4($t4)
/* 09FAA8 7F06AF78 24420008 */ addiu $v0, $v0, 8
/* 09FAAC 7F06AF7C 00406825 */ move $t5, $v0
/* 09FAB0 7F06AF80 3C0FB400 */ lui $t7, 0xb400
/* 09FAB4 7F06AF84 ADAF0000 */ sw $t7, ($t5)
/* 09FAB8 7F06AF88 3119FFFF */ andi $t9, $t0, 0xffff
/* 09FABC 7F06AF8C 0007C400 */ sll $t8, $a3, 0x10
/* 09FAC0 7F06AF90 03197825 */ or $t7, $t8, $t9
/* 09FAC4 7F06AF94 ADAF0004 */ sw $t7, 4($t5)
/* 09FAC8 7F06AF98 24420008 */ addiu $v0, $v0, 8
/* 09FACC 7F06AF9C AFA20000 */ sw $v0, ($sp)
/* 09FAD0 7F06AFA0 8FB80000 */ lw $t8, ($sp)
/* 09FAD4 7F06AFA4 3C0EB300 */ lui $t6, 0xb300
/* 09FAD8 7F06AFA8 00037C00 */ sll $t7, $v1, 0x10
/* 09FADC 7F06AFAC AF0E0000 */ sw $t6, ($t8)
/* 09FAE0 7F06AFB0 8FB90000 */ lw $t9, ($sp)
/* 09FAE4 7F06AFB4 308EFFFF */ andi $t6, $a0, 0xffff
/* 09FAE8 7F06AFB8 01EEC025 */ or $t8, $t7, $t6
/* 09FAEC 7F06AFBC 24420008 */ addiu $v0, $v0, 8
/* 09FAF0 7F06AFC0 AF380004 */ sw $t8, 4($t9)
.L7F06AFC4:
/* 09FAF4 7F06AFC4 00401825 */ move $v1, $v0
.L7F06AFC8:
/* 09FAF8 7F06AFC8 3C0F0008 */ lui $t7, 8
/* 09FAFC 7F06AFCC AC6F0004 */ sw $t7, 4($v1)
/* 09FB00 7F06AFD0 AC6B0000 */ sw $t3, ($v1)
/* 09FB04 7F06AFD4 8FAE0040 */ lw $t6, 0x40($sp)
/* 09FB08 7F06AFD8 24420008 */ addiu $v0, $v0, 8
/* 09FB0C 7F06AFDC ADC20000 */ sw $v0, ($t6)
.L7F06AFE0:
/* 09FB10 7F06AFE0 03E00008 */ jr $ra
/* 09FB14 7F06AFE4 27BD0040 */ addiu $sp, $sp, 0x40
)
#endif
#ifdef NONMATCHING
f32 display_image_at_on_screen_coord(void *arg0, void *arg2, ?32 arg4, ?32 arg5, ?32 arg6, ?32 arg7, s32 arg8, s32 arg9, s32 argA, s32 argB, s32 argC, s32 argD) {
void *temp_v0;
void *phi_v0;
f32 phi_return_reg;
// Node 0
phi_return_reg = 0.0f;
if (0.0f < *arg2)
{
// Node 1
phi_return_reg = 0.0f;
if (0.0f < arg2->unk4)
{
// Node 2
**arg0 = 0xfb000000;
*arg0->unk4 = (s32) ((((arg8 << 0x18) | ((arg9 & 0xff) << 0x10)) | ((argA & 0xff) << 8)) | (argB & 0xff));
temp_v0 = (*arg0 + 8);
if (argC != 0)
{
// Node 3
*temp_v0 = 0xfc26a005;
temp_v0->unk4 = 0x1f1493ff;
phi_v0 = (temp_v0 + 8);
}
else
{
// Node 4
if (argD != 0)
{
// Node 5
temp_v0->unk4 = -0x1c8;
*temp_v0 = 0xfc129bff;
phi_v0 = (temp_v0 + 8);
t += ((-xl * height) << 5) / (xh - xl);
}
else
{
// Node 6
*temp_v0 = 0xfc129a25;
temp_v0->unk4 = 0xff37ffff;
phi_v0 = (temp_v0 + 8);
s += ((-xl * width) << 5) / (xh - xl);
}
xl = 0;
}
if (yl < 0)
{
if (arg5)
{
s += ((-yl * width) << 5) / (yh - yl);
}
else
{
t += ((-yl * height) << 5) / (yh - yl);
}
yl = 0;
}
if (arg5)
{
dsdx = width / (2.0f * arg2[1]) * 1024.0f;
dtdy = height / (2.0f * arg2[0]) * 1024.0f;
}
else
{
dsdx = width / (2.0f * arg2[0]) * 1024.0f;
dtdy = height / (2.0f * arg2[1]) * 1024.0f;
}
if (arg6)
{
dsdx = 0x10000 - dsdx;
s = ((width - 1) << 5) - s;
}
if (arg7)
{
dtdy = 0x10000 - dtdy;
t = ((height - 1) << 5) - t;
}
if (arg5)
{
gSPTextureRectangleFlip(gdl++, xl, yl, xh, yh, G_TX_RENDERTILE, s, t, dsdx, dtdy);
}
else
{
gSPTextureRectangle(gdl++, xl, yl, xh, yh, G_TX_RENDERTILE, s, t, dsdx, dtdy);
}
// Node 7
*arg0 = (void *) phi_v0;
phi_return_reg = sub_GAME_7F06ABB0(arg4, arg5, arg6, arg7);
}
gDPSetTexturePersp(gdl++, G_TP_PERSP);
*gdlptr = gdl;
}
// Node 8
return phi_return_reg;
}
#else
GLOBAL_ASM(
.text
glabel display_image_at_on_screen_coord
/* 09FB18 7F06AFE8 27BDFFD8 */ addiu $sp, $sp, -0x28
/* 09FB1C 7F06AFEC AFBF0024 */ sw $ra, 0x24($sp)
/* 09FB20 7F06AFF0 44800000 */ mtc1 $zero, $f0
/* 09FB24 7F06AFF4 C4C40000 */ lwc1 $f4, ($a2)
/* 09FB28 7F06AFF8 4604003C */ c.lt.s $f0, $f4
/* 09FB2C 7F06AFFC 00000000 */ nop
/* 09FB30 7F06B000 45020041 */ bc1fl .L7F06B108
/* 09FB34 7F06B004 8FBF0024 */ lw $ra, 0x24($sp)
/* 09FB38 7F06B008 C4C60004 */ lwc1 $f6, 4($a2)
/* 09FB3C 7F06B00C 4606003C */ c.lt.s $f0, $f6
/* 09FB40 7F06B010 00000000 */ nop
/* 09FB44 7F06B014 4502003C */ bc1fl .L7F06B108
/* 09FB48 7F06B018 8FBF0024 */ lw $ra, 0x24($sp)
/* 09FB4C 7F06B01C 8C820000 */ lw $v0, ($a0)
/* 09FB50 7F06B020 3C0EFB00 */ lui $t6, 0xfb00
/* 09FB54 7F06B024 00401825 */ move $v1, $v0
/* 09FB58 7F06B028 AC6E0000 */ sw $t6, ($v1)
/* 09FB5C 7F06B02C 8FB80048 */ lw $t8, 0x48($sp)
/* 09FB60 7F06B030 8FA8004C */ lw $t0, 0x4c($sp)
/* 09FB64 7F06B034 8FAC0050 */ lw $t4, 0x50($sp)
/* 09FB68 7F06B038 0018CE00 */ sll $t9, $t8, 0x18
/* 09FB6C 7F06B03C 8FB80054 */ lw $t8, 0x54($sp)
/* 09FB70 7F06B040 310900FF */ andi $t1, $t0, 0xff
/* 09FB74 7F06B044 00095400 */ sll $t2, $t1, 0x10
/* 09FB78 7F06B048 318D00FF */ andi $t5, $t4, 0xff
/* 09FB7C 7F06B04C 000D7200 */ sll $t6, $t5, 8
/* 09FB80 7F06B050 032A5825 */ or $t3, $t9, $t2
/* 09FB84 7F06B054 016E7825 */ or $t7, $t3, $t6
/* 09FB88 7F06B058 330800FF */ andi $t0, $t8, 0xff
/* 09FB8C 7F06B05C 01E84825 */ or $t1, $t7, $t0
/* 09FB90 7F06B060 AC690004 */ sw $t1, 4($v1)
/* 09FB94 7F06B064 8FB90058 */ lw $t9, 0x58($sp)
/* 09FB98 7F06B068 24420008 */ addiu $v0, $v0, 8
/* 09FB9C 7F06B06C 00401825 */ move $v1, $v0
/* 09FBA0 7F06B070 13200009 */ beqz $t9, .L7F06B098
/* 09FBA4 7F06B074 8FAD005C */ lw $t5, 0x5c($sp)
/* 09FBA8 7F06B078 3C0AFC26 */ lui $t2, (0xFC26A005 >> 16) # lui $t2, 0xfc26
/* 09FBAC 7F06B07C 3C0C1F14 */ lui $t4, (0x1F1493FF >> 16) # lui $t4, 0x1f14
/* 09FBB0 7F06B080 358C93FF */ ori $t4, (0x1F1493FF & 0xFFFF) # ori $t4, $t4, 0x93ff
/* 09FBB4 7F06B084 354AA005 */ ori $t2, (0xFC26A005 & 0xFFFF) # ori $t2, $t2, 0xa005
/* 09FBB8 7F06B088 AC6A0000 */ sw $t2, ($v1)
/* 09FBBC 7F06B08C AC6C0004 */ sw $t4, 4($v1)
/* 09FBC0 7F06B090 10000012 */ b .L7F06B0DC
/* 09FBC4 7F06B094 24420008 */ addiu $v0, $v0, 8
.L7F06B098:
/* 09FBC8 7F06B098 11A00009 */ beqz $t5, .L7F06B0C0
/* 09FBCC 7F06B09C 00401825 */ move $v1, $v0
/* 09FBD0 7F06B0A0 00401825 */ move $v1, $v0
/* 09FBD4 7F06B0A4 3C0BFC12 */ lui $t3, (0xFC129BFF >> 16) # lui $t3, 0xfc12
/* 09FBD8 7F06B0A8 356B9BFF */ ori $t3, (0xFC129BFF & 0xFFFF) # ori $t3, $t3, 0x9bff
/* 09FBDC 7F06B0AC 240EFE38 */ li $t6, -456
/* 09FBE0 7F06B0B0 AC6E0004 */ sw $t6, 4($v1)
/* 09FBE4 7F06B0B4 AC6B0000 */ sw $t3, ($v1)
/* 09FBE8 7F06B0B8 10000008 */ b .L7F06B0DC
/* 09FBEC 7F06B0BC 24420008 */ addiu $v0, $v0, 8
.L7F06B0C0:
/* 09FBF0 7F06B0C0 3C18FC12 */ lui $t8, (0xFC129A25 >> 16) # lui $t8, 0xfc12
/* 09FBF4 7F06B0C4 3C0FFF37 */ lui $t7, (0xFF37FFFF >> 16) # lui $t7, 0xff37
/* 09FBF8 7F06B0C8 35EFFFFF */ ori $t7, (0xFF37FFFF & 0xFFFF) # ori $t7, $t7, 0xffff
/* 09FBFC 7F06B0CC 37189A25 */ ori $t8, (0xFC129A25 & 0xFFFF) # ori $t8, $t8, 0x9a25
/* 09FC00 7F06B0D0 AC780000 */ sw $t8, ($v1)
/* 09FC04 7F06B0D4 AC6F0004 */ sw $t7, 4($v1)
/* 09FC08 7F06B0D8 24420008 */ addiu $v0, $v0, 8
.L7F06B0DC:
/* 09FC0C 7F06B0DC AC820000 */ sw $v0, ($a0)
/* 09FC10 7F06B0E0 8FAA0044 */ lw $t2, 0x44($sp)
/* 09FC14 7F06B0E4 8FB90040 */ lw $t9, 0x40($sp)
/* 09FC18 7F06B0E8 8FA9003C */ lw $t1, 0x3c($sp)
/* 09FC1C 7F06B0EC 8FA80038 */ lw $t0, 0x38($sp)
/* 09FC20 7F06B0F0 AFAA001C */ sw $t2, 0x1c($sp)
/* 09FC24 7F06B0F4 AFB90018 */ sw $t9, 0x18($sp)
/* 09FC28 7F06B0F8 AFA90014 */ sw $t1, 0x14($sp)
/* 09FC2C 7F06B0FC 0FC1AAEC */ jal sub_GAME_7F06ABB0
/* 09FC30 7F06B100 AFA80010 */ sw $t0, 0x10($sp)
/* 09FC34 7F06B104 8FBF0024 */ lw $ra, 0x24($sp)
.L7F06B108:
/* 09FC38 7F06B108 27BD0028 */ addiu $sp, $sp, 0x28
/* 09FC3C 7F06B10C 03E00008 */ jr $ra
/* 09FC40 7F06B110 00000000 */ nop
)
#endif
void display_image_at_on_screen_coord(Gfx **gdlptr, f32 *arg1, f32 *arg2, s32 twidth, u32 theight, u32 arg5, u32 arg6, u32 arg7, u32 r, u32 g, u32 b, u32 alpha, u32 arg12, u32 arg13)
{
if (arg2[0] > 0.0f && arg2[1] > 0.0f)
{
Gfx *gdl = *gdlptr;
gDPSetEnvColor(gdl++, r, g, b, alpha);
if (arg12)
{
gDPSetCombineLERP(gdl++, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, ENVIRONMENT, 0, COMBINED, 0, ENVIRONMENT, 0);
}
else if (arg13)
{
gDPSetCombineLERP(gdl++, TEXEL0, 0, ENVIRONMENT, 0, TEXEL0, 0, ENVIRONMENT, 0, 0, 0, 0, COMBINED, 0, 0, 0, COMBINED);
}
else
{
gDPSetCombineLERP(gdl++, TEXEL0, 0, ENVIRONMENT, 0, TEXEL0, 0, ENVIRONMENT, 0, TEXEL0, 0, ENVIRONMENT, 0, TEXEL0, 0, ENVIRONMENT, 0);
}
*gdlptr = gdl;
sub_GAME_7F06ABB0(gdlptr, arg1, arg2, twidth, theight, arg5, arg6, arg7);
}
}
+4 -4
View File
@@ -1242,19 +1242,19 @@ void cheatButtonHandleCheatsTurnedOn(CHEAT_ID cheat_id)
return;
case CHEAT_FAST_ANIMATION:
if (get_animation_rate() < 4.0f)
if (getAnimationRate() < 4.0f)
{
HUDMESSAGEBOTTOM((char *)langGet(TEXT(LMISC, 0x34)));
animation_speed_related(4.0f);
setAnimationRate(4.0f);
return;
}
return;
case CHEAT_SLOW_ANIMATION:
if (get_animation_rate() > 0.25f)
if (getAnimationRate() > 0.25f)
{
HUDMESSAGEBOTTOM((char *)langGet(TEXT(LMISC, 0x32)));
animation_speed_related(0.25);
setAnimationRate(0.25);
return;
}
return;
+233 -233
View File
@@ -151,352 +151,352 @@ f32 g_AiReactionSpeed = 1.0f;
s32 g_SeenBondRecentlyGuardCount = 0;
struct struck_animation_table D_8002CE54[] = {
{0x35C8, 0, -1.0, 0.5, 0, 27.0, -1.0},
{0x36D8, 0, -1.0, 0.5, 0, 26.0, -1.0},
{0x33AC, 1, -1.0, 0.5, 0, 25.0, -1.0},
{0x34D4, 1, -1.0, 0.5, 0, 23.0, -1.0},
{PTR_ANIM_death_backward_spin_face_down_left, 0, -1.0, 0.5, 0, 27.0, -1.0},
{PTR_ANIM_death_backward_spin_face_up_left, 0, -1.0, 0.5, 0, 26.0, -1.0},
{PTR_ANIM_death_backward_spin_face_down_right, 1, -1.0, 0.5, 0, 25.0, -1.0},
{PTR_ANIM_death_backward_spin_face_up_right, 1, -1.0, 0.5, 0, 23.0, -1.0},
{0, 0, 0.0, 0.5, 0, -1.0, -1.0}
};
struct struck_animation_table D_8002CEE0[] = {
{0x35C8, 0, -1.0, 0.5, 0, 27.0, -1.0},
{0x36D8, 0, -1.0, 0.5, 0, 26.0, -1.0},
{0x33AC, 1, -1.0, 0.5, 0, 25.0, -1.0},
{0x34D4, 1, -1.0, 0.5, 0, 23.0, -1.0},
{PTR_ANIM_death_backward_spin_face_down_left, 0, -1.0, 0.5, 0, 27.0, -1.0},
{PTR_ANIM_death_backward_spin_face_up_left, 0, -1.0, 0.5, 0, 26.0, -1.0},
{PTR_ANIM_death_backward_spin_face_down_right, 1, -1.0, 0.5, 0, 25.0, -1.0},
{PTR_ANIM_death_backward_spin_face_up_right, 1, -1.0, 0.5, 0, 23.0, -1.0},
{0, 0, 0.0, 0.5, 0, -1.0, -1.0}
};
struct struck_animation_table D_8002CF6C[] = {
{0x35C8, 0, -1.0, 0.5, 1, 27.0, -1.0},
{0x36D8, 0, -1.0, 0.5, 1, 26.0, -1.0},
{0x33AC, 1, -1.0, 0.5, 1, 25.0, -1.0},
{0x34D4, 1, -1.0, 0.5, 1, 23.0, -1.0},
{0x540C, 1, -1.0, 0.5, 0, -1.0, -1.0},
{PTR_ANIM_death_backward_spin_face_down_left, 0, -1.0, 0.5, 1, 27.0, -1.0},
{PTR_ANIM_death_backward_spin_face_up_left, 0, -1.0, 0.5, 1, 26.0, -1.0},
{PTR_ANIM_death_backward_spin_face_down_right, 1, -1.0, 0.5, 1, 25.0, -1.0},
{PTR_ANIM_death_backward_spin_face_up_right, 1, -1.0, 0.5, 1, 23.0, -1.0},
{PTR_ANIM_death_left_leg, 1, -1.0, 0.5, 0, -1.0, -1.0},
{0, 0, 0.0, 0.5, 0, -1.0, -1.0}
};
struct struck_animation_table D_8002D014[] = {
{0x33AC, 0, -1.0, 0.5, 0, 25.0, -1.0},
{0x34D4, 0, -1.0, 0.5, 0, 23.0, -1.0},
{0x35C8, 1, -1.0, 0.5, 0, 27.0, -1.0},
{0x36D8, 1, -1.0, 0.5, 0, 26.0, -1.0},
{PTR_ANIM_death_backward_spin_face_down_right, 0, -1.0, 0.5, 0, 25.0, -1.0},
{PTR_ANIM_death_backward_spin_face_up_right, 0, -1.0, 0.5, 0, 23.0, -1.0},
{PTR_ANIM_death_backward_spin_face_down_left, 1, -1.0, 0.5, 0, 27.0, -1.0},
{PTR_ANIM_death_backward_spin_face_up_left, 1, -1.0, 0.5, 0, 26.0, -1.0},
{0, 0, 0.0, 0.5, 0, -1.0, -1.0}
};
struct struck_animation_table D_8002D0A0[] = {
{0x33AC, 0, -1.0, 0.5, 0, 25.0, -1.0},
{0x34D4, 0, -1.0, 0.5, 0, 23.0, -1.0},
{0x35C8, 1, -1.0, 0.5, 0, 27.0, -1.0},
{0x36D8, 1, -1.0, 0.5, 0, 26.0, -1.0},
{PTR_ANIM_death_backward_spin_face_down_right, 0, -1.0, 0.5, 0, 25.0, -1.0},
{PTR_ANIM_death_backward_spin_face_up_right, 0, -1.0, 0.5, 0, 23.0, -1.0},
{PTR_ANIM_death_backward_spin_face_down_left, 1, -1.0, 0.5, 0, 27.0, -1.0},
{PTR_ANIM_death_backward_spin_face_up_left, 1, -1.0, 0.5, 0, 26.0, -1.0},
{0, 0, 0.0, 0.5, 0, -1.0, -1.0}
};
struct struck_animation_table D_8002D12C[] = {
{0x33AC, 0, -1.0, 0.5, 1, 25.0, -1.0},
{0x34D4, 0, -1.0, 0.5, 1, 23.0, -1.0},
{0x35C8, 1, -1.0, 0.5, 1, 27.0, -1.0},
{0x36D8, 1, -1.0, 0.5, 1, 26.0, -1.0},
{0x540C, 0, -1.0, 0.5, 0, -1.0, -1.0},
{PTR_ANIM_death_backward_spin_face_down_right, 0, -1.0, 0.5, 1, 25.0, -1.0},
{PTR_ANIM_death_backward_spin_face_up_right, 0, -1.0, 0.5, 1, 23.0, -1.0},
{PTR_ANIM_death_backward_spin_face_down_left, 1, -1.0, 0.5, 1, 27.0, -1.0},
{PTR_ANIM_death_backward_spin_face_up_left, 1, -1.0, 0.5, 1, 26.0, -1.0},
{PTR_ANIM_death_left_leg, 0, -1.0, 0.5, 0, -1.0, -1.0},
{0, 0, 0.0, 0.5, 0, -1.0, -1.0}
};
struct struck_animation_table D_8002D1D4[] = {
{0x30B8, 0, -1.0, 0.5, 0, 55.0, 39.0},
{0x30B8, 1, -1.0, 0.5, 0, 55.0, 39.0},
{0x31DC, 0, -1.0, 0.5, 0, 36.0, -1.0},
{0x31DC, 1, -1.0, 0.5, 0, 36.0, -1.0},
{0x32C8, 0, -1.0, 0.5, 1, 29.0, -1.0},
{0x32C8, 1, -1.0, 0.5, 1, 29.0, -1.0},
{0x384C, 0, -1.0, 0.5, 0, 97.0, 64.0},
{0x384C, 1, -1.0, 0.5, 0, 97.0, 64.0},
{0x3AF0, 0, -1.0, 0.5, 0, 31.0, -1.0},
{0x3AF0, 1, -1.0, 0.5, 0, 31.0, -1.0},
{0x3C10, 0, -1.0, 0.5, 0, 36.0, -1.0},
{0x3C10, 1, -1.0, 0.5, 0, 36.0, -1.0},
{0x3D04, 0, -1.0, 0.5, 0, 28.0, -1.0},
{0x3D04, 1, -1.0, 0.5, 0, 28.0, -1.0},
{0x282C, 0, -1.0, 0.5, 0, 79.0, 415.0},
{0x282C, 1, -1.0, 0.5, 0, 79.0, 415.0},
{PTR_ANIM_death_forward_face_down, 0, -1.0, 0.5, 0, 55.0, 39.0},
{PTR_ANIM_death_forward_face_down, 1, -1.0, 0.5, 0, 55.0, 39.0},
{PTR_ANIM_death_forward_spin_face_up, 0, -1.0, 0.5, 0, 36.0, -1.0},
{PTR_ANIM_death_forward_spin_face_up, 1, -1.0, 0.5, 0, 36.0, -1.0},
{PTR_ANIM_death_backward_fall_face_up1, 0, -1.0, 0.5, 1, 29.0, -1.0},
{PTR_ANIM_death_backward_fall_face_up1, 1, -1.0, 0.5, 1, 29.0, -1.0},
{PTR_ANIM_death_forward_face_down_hard, 0, -1.0, 0.5, 0, 97.0, 64.0},
{PTR_ANIM_death_forward_face_down_hard, 1, -1.0, 0.5, 0, 97.0, 64.0},
{PTR_ANIM_death_fetal_position_right, 0, -1.0, 0.5, 0, 31.0, -1.0},
{PTR_ANIM_death_fetal_position_right, 1, -1.0, 0.5, 0, 31.0, -1.0},
{PTR_ANIM_death_fetal_position_left, 0, -1.0, 0.5, 0, 36.0, -1.0},
{PTR_ANIM_death_fetal_position_left, 1, -1.0, 0.5, 0, 36.0, -1.0},
{PTR_ANIM_death_backward_fall_face_up2, 0, -1.0, 0.5, 0, 28.0, -1.0},
{PTR_ANIM_death_backward_fall_face_up2, 1, -1.0, 0.5, 0, 28.0, -1.0},
{PTR_ANIM_death_genitalia, 0, -1.0, 0.5, 0, 79.0, 415.0},
{PTR_ANIM_death_genitalia, 1, -1.0, 0.5, 0, 79.0, 415.0},
{0, 0, -1.0, 0.5, 0, -1.0, -1.0}
};
struct struck_animation_table D_8002D3B0[] = {
{0x30B8, 0, -1.0, 0.5, 0, 55.0, 39.0},
{0x30B8, 1, -1.0, 0.5, 0, 55.0, 39.0},
{0x31DC, 0, -1.0, 0.5, 0, 36.0, -1.0},
{0x31DC, 1, -1.0, 0.5, 0, 36.0, -1.0},
{0x32C8, 0, -1.0, 0.5, 1, 29.0, -1.0},
{0x32C8, 1, -1.0, 0.5, 1, 29.0, -1.0},
{0x33AC, 0, -1.0, 0.5, 1, 25.0, -1.0},
{0x33AC, 1, -1.0, 0.5, 1, 25.0, -1.0},
{0x34D4, 0, -1.0, 0.5, 1, 23.0, -1.0},
{0x34D4, 1, -1.0, 0.5, 1, 23.0, -1.0},
{0x35C8, 0, -1.0, 0.5, 1, 27.0, -1.0},
{0x35C8, 1, -1.0, 0.5, 1, 27.0, -1.0},
{0x36D8, 0, -1.0, 0.5, 1, 26.0, -1.0},
{0x36D8, 1, -1.0, 0.5, 1, 26.0, -1.0},
{0x384C, 0, -1.0, 0.5, 0, 97.0, 64.0},
{0x384C, 1, -1.0, 0.5, 0, 97.0, 64.0},
{0x39C0, 0, -1.0, 0.5, 0, 94.0, 66.0},
{0x39C0, 1, -1.0, 0.5, 0, 94.0, 66.0},
{0x3AF0, 0, -1.0, 0.5, 0, 31.0, -1.0},
{0x3AF0, 1, -1.0, 0.5, 0, 31.0, -1.0},
{0x3C10, 0, -1.0, 0.5, 0, 36.0, -1.0},
{0x3C10, 1, -1.0, 0.5, 0, 36.0, -1.0},
{0x3D04, 0, -1.0, 0.5, 0, 28.0, -1.0},
{0x3D04, 1, -1.0, 0.5, 0, 28.0, -1.0},
{0x2E64, 0, -1.0, 0.5, 0, 87.0, 203.0},
{0x2E64, 1, -1.0, 0.5, 0, 87.0, 203.0},
{0x51C4, 0, -1.0, 0.5, 0, -1.0, -1.0},
{0x51C4, 1, -1.0, 0.5, 0, -1.0, -1.0},
{PTR_ANIM_death_forward_face_down, 0, -1.0, 0.5, 0, 55.0, 39.0},
{PTR_ANIM_death_forward_face_down, 1, -1.0, 0.5, 0, 55.0, 39.0},
{PTR_ANIM_death_forward_spin_face_up, 0, -1.0, 0.5, 0, 36.0, -1.0},
{PTR_ANIM_death_forward_spin_face_up, 1, -1.0, 0.5, 0, 36.0, -1.0},
{PTR_ANIM_death_backward_fall_face_up1, 0, -1.0, 0.5, 1, 29.0, -1.0},
{PTR_ANIM_death_backward_fall_face_up1, 1, -1.0, 0.5, 1, 29.0, -1.0},
{PTR_ANIM_death_backward_spin_face_down_right, 0, -1.0, 0.5, 1, 25.0, -1.0},
{PTR_ANIM_death_backward_spin_face_down_right, 1, -1.0, 0.5, 1, 25.0, -1.0},
{PTR_ANIM_death_backward_spin_face_up_right, 0, -1.0, 0.5, 1, 23.0, -1.0},
{PTR_ANIM_death_backward_spin_face_up_right, 1, -1.0, 0.5, 1, 23.0, -1.0},
{PTR_ANIM_death_backward_spin_face_down_left, 0, -1.0, 0.5, 1, 27.0, -1.0},
{PTR_ANIM_death_backward_spin_face_down_left, 1, -1.0, 0.5, 1, 27.0, -1.0},
{PTR_ANIM_death_backward_spin_face_up_left, 0, -1.0, 0.5, 1, 26.0, -1.0},
{PTR_ANIM_death_backward_spin_face_up_left, 1, -1.0, 0.5, 1, 26.0, -1.0},
{PTR_ANIM_death_forward_face_down_hard, 0, -1.0, 0.5, 0, 97.0, 64.0},
{PTR_ANIM_death_forward_face_down_hard, 1, -1.0, 0.5, 0, 97.0, 64.0},
{PTR_ANIM_death_forward_face_down_soft, 0, -1.0, 0.5, 0, 94.0, 66.0},
{PTR_ANIM_death_forward_face_down_soft, 1, -1.0, 0.5, 0, 94.0, 66.0},
{PTR_ANIM_death_fetal_position_right, 0, -1.0, 0.5, 0, 31.0, -1.0},
{PTR_ANIM_death_fetal_position_right, 1, -1.0, 0.5, 0, 31.0, -1.0},
{PTR_ANIM_death_fetal_position_left, 0, -1.0, 0.5, 0, 36.0, -1.0},
{PTR_ANIM_death_fetal_position_left, 1, -1.0, 0.5, 0, 36.0, -1.0},
{PTR_ANIM_death_backward_fall_face_up2, 0, -1.0, 0.5, 0, 28.0, -1.0},
{PTR_ANIM_death_backward_fall_face_up2, 1, -1.0, 0.5, 0, 28.0, -1.0},
{PTR_ANIM_death_neck, 0, -1.0, 0.5, 0, 87.0, 203.0},
{PTR_ANIM_death_neck, 1, -1.0, 0.5, 0, 87.0, 203.0},
{PTR_ANIM_death_head, 0, -1.0, 0.5, 0, -1.0, -1.0},
{PTR_ANIM_death_head, 1, -1.0, 0.5, 0, -1.0, -1.0},
{0, 0, -1.0, 0.5, 0, -1.0, -1.0}
};
struct struck_animation_table D_8002D6DC[] = {
{0x35C8, 0, -1.0, 0.5, 0, 27.0, -1.0},
{0x36D8, 0, -1.0, 0.5, 0, 26.0, -1.0},
{0x33AC, 1, -1.0, 0.5, 0, 25.0, -1.0},
{0x34D4, 1, -1.0, 0.5, 0, 23.0, -1.0},
{PTR_ANIM_death_backward_spin_face_down_left, 0, -1.0, 0.5, 0, 27.0, -1.0},
{PTR_ANIM_death_backward_spin_face_up_left, 0, -1.0, 0.5, 0, 26.0, -1.0},
{PTR_ANIM_death_backward_spin_face_down_right, 1, -1.0, 0.5, 0, 25.0, -1.0},
{PTR_ANIM_death_backward_spin_face_up_right, 1, -1.0, 0.5, 0, 23.0, -1.0},
{0, 0, -1.0, 0.5, 0, -1.0, -1.0}
};
struct struck_animation_table D_8002D768[] = {
{0x35C8, 0, -1.0, 0.5, 0, 27.0, -1.0},
{0x36D8, 0, -1.0, 0.5, 0, 26.0, -1.0},
{0x33AC, 1, -1.0, 0.5, 0, 25.0, -1.0},
{0x34D4, 1, -1.0, 0.5, 0, 23.0, -1.0},
{PTR_ANIM_death_backward_spin_face_down_left, 0, -1.0, 0.5, 0, 27.0, -1.0},
{PTR_ANIM_death_backward_spin_face_up_left, 0, -1.0, 0.5, 0, 26.0, -1.0},
{PTR_ANIM_death_backward_spin_face_down_right, 1, -1.0, 0.5, 0, 25.0, -1.0},
{PTR_ANIM_death_backward_spin_face_up_right, 1, -1.0, 0.5, 0, 23.0, -1.0},
{0, 0, -1.0, 0.5, 0, -1.0, -1.0}
};
struct struck_animation_table D_8002D7F4[] = {
{0x35C8, 0, -1.0, 0.5, 1, 27.0, -1.0},
{0x36D8, 0, -1.0, 0.5, 1, 26.0, -1.0},
{0x33AC, 1, -1.0, 0.5, 1, 25.0, -1.0},
{0x34D4, 1, -1.0, 0.5, 1, 23.0, -1.0},
{PTR_ANIM_death_backward_spin_face_down_left, 0, -1.0, 0.5, 1, 27.0, -1.0},
{PTR_ANIM_death_backward_spin_face_up_left, 0, -1.0, 0.5, 1, 26.0, -1.0},
{PTR_ANIM_death_backward_spin_face_down_right, 1, -1.0, 0.5, 1, 25.0, -1.0},
{PTR_ANIM_death_backward_spin_face_up_right, 1, -1.0, 0.5, 1, 23.0, -1.0},
{0, 0, -1.0, 0.5, 0, -1.0, -1.0}
};
struct struck_animation_table D_8002D880[] = {
{0x33AC, 0, -1.0, 0.5, 0, 25.0, -1.0},
{0x34D4, 0, -1.0, 0.5, 0, 23.0, -1.0},
{0x35C8, 1, -1.0, 0.5, 0, 27.0, -1.0},
{0x36D8, 1, -1.0, 0.5, 0, 26.0, -1.0},
{PTR_ANIM_death_backward_spin_face_down_right, 0, -1.0, 0.5, 0, 25.0, -1.0},
{PTR_ANIM_death_backward_spin_face_up_right, 0, -1.0, 0.5, 0, 23.0, -1.0},
{PTR_ANIM_death_backward_spin_face_down_left, 1, -1.0, 0.5, 0, 27.0, -1.0},
{PTR_ANIM_death_backward_spin_face_up_left, 1, -1.0, 0.5, 0, 26.0, -1.0},
{0, 0, -1.0, 0.5, 0, -1.0, -1.0}
};
struct struck_animation_table D_8002D90C[] = {
{0x33AC, 0, -1.0, 0.5, 0, 25.0, -1.0},
{0x34D4, 0, -1.0, 0.5, 0, 23.0, -1.0},
{0x35C8, 1, -1.0, 0.5, 0, 27.0, -1.0},
{0x36D8, 1, -1.0, 0.5, 0, 26.0, -1.0},
{PTR_ANIM_death_backward_spin_face_down_right, 0, -1.0, 0.5, 0, 25.0, -1.0},
{PTR_ANIM_death_backward_spin_face_up_right, 0, -1.0, 0.5, 0, 23.0, -1.0},
{PTR_ANIM_death_backward_spin_face_down_left, 1, -1.0, 0.5, 0, 27.0, -1.0},
{PTR_ANIM_death_backward_spin_face_up_left, 1, -1.0, 0.5, 0, 26.0, -1.0},
{0, 0, -1.0, 0.5, 0, -1.0, -1.0}
};
struct struck_animation_table D_8002D998[] = {
{0x33AC, 0, -1.0, 0.5, 1, 25.0, -1.0},
{0x34D4, 0, -1.0, 0.5, 1, 23.0, -1.0},
{0x35C8, 1, -1.0, 0.5, 1, 27.0, -1.0},
{0x36D8, 1, -1.0, 0.5, 1, 26.0, -1.0},
{PTR_ANIM_death_backward_spin_face_down_right, 0, -1.0, 0.5, 1, 25.0, -1.0},
{PTR_ANIM_death_backward_spin_face_up_right, 0, -1.0, 0.5, 1, 23.0, -1.0},
{PTR_ANIM_death_backward_spin_face_down_left, 1, -1.0, 0.5, 1, 27.0, -1.0},
{PTR_ANIM_death_backward_spin_face_up_left, 1, -1.0, 0.5, 1, 26.0, -1.0},
{0, 0, -1.0, 0.5, 0, -1.0, -1.0}
};
struct struck_animation_table D_8002DA24[] = {
{0x30B8, 0, -1.0, 0.5, 0, 55.0, 39.0},
{0x30B8, 1, -1.0, 0.5, 0, 55.0, 39.0},
{0x31DC, 0, -1.0, 0.5, 0, 36.0, -1.0},
{0x31DC, 1, -1.0, 0.5, 0, 36.0, -1.0},
{0x32C8, 0, -1.0, 0.5, 1, 29.0, -1.0},
{0x32C8, 1, -1.0, 0.5, 1, 29.0, -1.0},
{0x33AC, 0, -1.0, 0.5, 1, 25.0, -1.0},
{0x33AC, 1, -1.0, 0.5, 1, 25.0, -1.0},
{0x34D4, 0, -1.0, 0.5, 1, 23.0, -1.0},
{0x34D4, 1, -1.0, 0.5, 1, 23.0, -1.0},
{0x35C8, 0, -1.0, 0.5, 1, 27.0, -1.0},
{0x35C8, 1, -1.0, 0.5, 1, 27.0, -1.0},
{0x36D8, 0, -1.0, 0.5, 1, 26.0, -1.0},
{0x36D8, 1, -1.0, 0.5, 1, 26.0, -1.0},
{0x384C, 0, -1.0, 0.5, 0, 97.0, 64.0},
{0x384C, 1, -1.0, 0.5, 0, 97.0, 64.0},
{0x39C0, 0, -1.0, 0.5, 0, 94.0, 66.0},
{0x39C0, 1, -1.0, 0.5, 0, 94.0, 66.0},
{0x3AF0, 0, -1.0, 0.5, 0, 31.0, -1.0},
{0x3AF0, 1, -1.0, 0.5, 0, 31.0, -1.0},
{0x3C10, 0, -1.0, 0.5, 0, 36.0, -1.0},
{0x3C10, 1, -1.0, 0.5, 0, 36.0, -1.0},
{0x3D04, 0, -1.0, 0.5, 0, 28.0, -1.0},
{0x3D04, 1, -1.0, 0.5, 0, 28.0, -1.0},
{PTR_ANIM_death_forward_face_down, 0, -1.0, 0.5, 0, 55.0, 39.0},
{PTR_ANIM_death_forward_face_down, 1, -1.0, 0.5, 0, 55.0, 39.0},
{PTR_ANIM_death_forward_spin_face_up, 0, -1.0, 0.5, 0, 36.0, -1.0},
{PTR_ANIM_death_forward_spin_face_up, 1, -1.0, 0.5, 0, 36.0, -1.0},
{PTR_ANIM_death_backward_fall_face_up1, 0, -1.0, 0.5, 1, 29.0, -1.0},
{PTR_ANIM_death_backward_fall_face_up1, 1, -1.0, 0.5, 1, 29.0, -1.0},
{PTR_ANIM_death_backward_spin_face_down_right, 0, -1.0, 0.5, 1, 25.0, -1.0},
{PTR_ANIM_death_backward_spin_face_down_right, 1, -1.0, 0.5, 1, 25.0, -1.0},
{PTR_ANIM_death_backward_spin_face_up_right, 0, -1.0, 0.5, 1, 23.0, -1.0},
{PTR_ANIM_death_backward_spin_face_up_right, 1, -1.0, 0.5, 1, 23.0, -1.0},
{PTR_ANIM_death_backward_spin_face_down_left, 0, -1.0, 0.5, 1, 27.0, -1.0},
{PTR_ANIM_death_backward_spin_face_down_left, 1, -1.0, 0.5, 1, 27.0, -1.0},
{PTR_ANIM_death_backward_spin_face_up_left, 0, -1.0, 0.5, 1, 26.0, -1.0},
{PTR_ANIM_death_backward_spin_face_up_left, 1, -1.0, 0.5, 1, 26.0, -1.0},
{PTR_ANIM_death_forward_face_down_hard, 0, -1.0, 0.5, 0, 97.0, 64.0},
{PTR_ANIM_death_forward_face_down_hard, 1, -1.0, 0.5, 0, 97.0, 64.0},
{PTR_ANIM_death_forward_face_down_soft, 0, -1.0, 0.5, 0, 94.0, 66.0},
{PTR_ANIM_death_forward_face_down_soft, 1, -1.0, 0.5, 0, 94.0, 66.0},
{PTR_ANIM_death_fetal_position_right, 0, -1.0, 0.5, 0, 31.0, -1.0},
{PTR_ANIM_death_fetal_position_right, 1, -1.0, 0.5, 0, 31.0, -1.0},
{PTR_ANIM_death_fetal_position_left, 0, -1.0, 0.5, 0, 36.0, -1.0},
{PTR_ANIM_death_fetal_position_left, 1, -1.0, 0.5, 0, 36.0, -1.0},
{PTR_ANIM_death_backward_fall_face_up2, 0, -1.0, 0.5, 0, 28.0, -1.0},
{PTR_ANIM_death_backward_fall_face_up2, 1, -1.0, 0.5, 0, 28.0, -1.0},
{0, 0, -1.0, 0.5, 0, -1.0, -1.0}
};
struct struck_animation_table D_8002DCE0[] = {
{0x30B8, 0, -1.0, 0.5, 0, 55.0, 39.0},
{0x30B8, 1, -1.0, 0.5, 0, 55.0, 39.0},
{0x31DC, 0, -1.0, 0.5, 0, 36.0, -1.0},
{0x31DC, 1, -1.0, 0.5, 0, 36.0, -1.0},
{0x32C8, 0, -1.0, 0.5, 1, 29.0, -1.0},
{0x32C8, 1, -1.0, 0.5, 1, 29.0, -1.0},
{0x384C, 0, -1.0, 0.5, 0, 97.0, 64.0},
{0x384C, 1, -1.0, 0.5, 0, 97.0, 64.0},
{0x39C0, 0, -1.0, 0.5, 0, 94.0, 66.0},
{0x39C0, 1, -1.0, 0.5, 0, 94.0, 66.0},
{0x3AF0, 0, -1.0, 0.5, 0, 31.0, -1.0},
{0x3AF0, 1, -1.0, 0.5, 0, 31.0, -1.0},
{0x3C10, 0, -1.0, 0.5, 0, 36.0, -1.0},
{0x3C10, 1, -1.0, 0.5, 0, 36.0, -1.0},
{0x3D04, 0, -1.0, 0.5, 0, 28.0, -1.0},
{0x3D04, 1, -1.0, 0.5, 0, 28.0, -1.0},
{PTR_ANIM_death_forward_face_down, 0, -1.0, 0.5, 0, 55.0, 39.0},
{PTR_ANIM_death_forward_face_down, 1, -1.0, 0.5, 0, 55.0, 39.0},
{PTR_ANIM_death_forward_spin_face_up, 0, -1.0, 0.5, 0, 36.0, -1.0},
{PTR_ANIM_death_forward_spin_face_up, 1, -1.0, 0.5, 0, 36.0, -1.0},
{PTR_ANIM_death_backward_fall_face_up1, 0, -1.0, 0.5, 1, 29.0, -1.0},
{PTR_ANIM_death_backward_fall_face_up1, 1, -1.0, 0.5, 1, 29.0, -1.0},
{PTR_ANIM_death_forward_face_down_hard, 0, -1.0, 0.5, 0, 97.0, 64.0},
{PTR_ANIM_death_forward_face_down_hard, 1, -1.0, 0.5, 0, 97.0, 64.0},
{PTR_ANIM_death_forward_face_down_soft, 0, -1.0, 0.5, 0, 94.0, 66.0},
{PTR_ANIM_death_forward_face_down_soft, 1, -1.0, 0.5, 0, 94.0, 66.0},
{PTR_ANIM_death_fetal_position_right, 0, -1.0, 0.5, 0, 31.0, -1.0},
{PTR_ANIM_death_fetal_position_right, 1, -1.0, 0.5, 0, 31.0, -1.0},
{PTR_ANIM_death_fetal_position_left, 0, -1.0, 0.5, 0, 36.0, -1.0},
{PTR_ANIM_death_fetal_position_left, 1, -1.0, 0.5, 0, 36.0, -1.0},
{PTR_ANIM_death_backward_fall_face_up2, 0, -1.0, 0.5, 0, 28.0, -1.0},
{PTR_ANIM_death_backward_fall_face_up2, 1, -1.0, 0.5, 0, 28.0, -1.0},
{0, 0, -1.0, 0.5, 0, -1.0, -1.0}
};
struct struck_animation_table D_8002DEBC[] = {
{0x2F94, 0, -1.0, 0.5, 0, 67.0, 54.0},
{0x2F94, 1, -1.0, 0.5, 0, 67.0, 54.0},
{PTR_ANIM_death_stagger_back_to_wall, 0, -1.0, 0.5, 0, 67.0, 54.0},
{PTR_ANIM_death_stagger_back_to_wall, 1, -1.0, 0.5, 0, 67.0, 54.0},
{0, 0, -1.0, 0.5, 0, -1.0, -1.0}
};
struct struck_animation_table D_8002DF10[] = {
{0x1F84, 0, -1.0, 0.5, 0, -1.0, -1.0},
{0x2134, 1, -1.0, 0.5, 0, -1.0, -1.0},
{PTR_ANIM_hit_left_leg, 0, -1.0, 0.5, 0, -1.0, -1.0},
{PTR_ANIM_hit_right_leg, 1, -1.0, 0.5, 0, -1.0, -1.0},
{0, 0, -1.0, 0.5, 0, -1.0, -1.0}
};
struct struck_animation_table D_8002DF64[] = {
{0x1F84, 0, -1.0, 0.5, 0, -1.0, -1.0},
{0x2134, 1, -1.0, 0.5, 0, -1.0, -1.0},
{PTR_ANIM_hit_left_leg, 0, -1.0, 0.5, 0, -1.0, -1.0},
{PTR_ANIM_hit_right_leg, 1, -1.0, 0.5, 0, -1.0, -1.0},
{0, 0, -1.0, 0.5, 0, -1.0, -1.0}
};
struct struck_animation_table D_8002DFB8[] = {
{0x1F84, 0, -1.0, 0.5, 0, -1.0, -1.0},
{0x2134, 1, -1.0, 0.5, 0, -1.0, -1.0},
{0x540C, 1, 20.0, 0.40000001, 0, -1.0, -1.0},
{PTR_ANIM_hit_left_leg, 0, -1.0, 0.5, 0, -1.0, -1.0},
{PTR_ANIM_hit_right_leg, 1, -1.0, 0.5, 0, -1.0, -1.0},
{PTR_ANIM_death_left_leg, 1, 20.0, 0.40000001, 0, -1.0, -1.0},
{0, 0, -1.0, 0.5, 0, -1.0, -1.0}
};
struct struck_animation_table D_8002E028[] = {
{0x2134, 0, -1.0, 0.5, 0, -1.0, -1.0},
{0x1F84, 1, -1.0, 0.5, 0, -1.0, -1.0},
{PTR_ANIM_hit_right_leg, 0, -1.0, 0.5, 0, -1.0, -1.0},
{PTR_ANIM_hit_left_leg, 1, -1.0, 0.5, 0, -1.0, -1.0},
{0, 0, -1.0, 0.5, 0, -1.0, -1.0}
};
struct struck_animation_table D_8002E07C[] = {
{0x2134, 0, -1.0, 0.5, 0, -1.0, -1.0},
{0x1F84, 1, -1.0, 0.5, 0, -1.0, -1.0},
{PTR_ANIM_hit_right_leg, 0, -1.0, 0.5, 0, -1.0, -1.0},
{PTR_ANIM_hit_left_leg, 1, -1.0, 0.5, 0, -1.0, -1.0},
{0, 0, -1.0, 0.5, 0, -1.0, -1.0}
};
struct struck_animation_table D_8002E0D0[] = {
{0x2134, 0, -1.0, 0.5, 0, -1.0, -1.0},
{0x1F84, 1, -1.0, 0.5, 0, -1.0, -1.0},
{0x540C, 0, 20.0, 0.40000001, 0, -1.0, -1.0},
{PTR_ANIM_hit_right_leg, 0, -1.0, 0.5, 0, -1.0, -1.0},
{PTR_ANIM_hit_left_leg, 1, -1.0, 0.5, 0, -1.0, -1.0},
{PTR_ANIM_death_left_leg, 0, 20.0, 0.40000001, 0, -1.0, -1.0},
{0, 0, -1.0, 0.5, 0, -1.0, -1.0}
};
struct struck_animation_table D_8002E140[] = {
{0x282C, 0, 20.0, 0.5, 0, -1.0, -1.0},
{0x282C, 1, 30.0, 0.5, 0, -1.0, -1.0},
{0x39C0, 0, 20.0, 0.5, 0, -1.0, -1.0},
{0x39C0, 1, 20.0, 0.5, 0, -1.0, -1.0},
{0x30B8, 0, 15.0, 0.5, 0, -1.0, -1.0},
{0x30B8, 1, 15.0, 0.5, 0, -1.0, -1.0},
{0x3AF0, 0, 10.0, 0.25, 0, -1.0, -1.0},
{0x3AF0, 1, 10.0, 0.25, 0, -1.0, -1.0},
{PTR_ANIM_death_genitalia, 0, 20.0, 0.5, 0, -1.0, -1.0},
{PTR_ANIM_death_genitalia, 1, 30.0, 0.5, 0, -1.0, -1.0},
{PTR_ANIM_death_forward_face_down_soft, 0, 20.0, 0.5, 0, -1.0, -1.0},
{PTR_ANIM_death_forward_face_down_soft, 1, 20.0, 0.5, 0, -1.0, -1.0},
{PTR_ANIM_death_forward_face_down, 0, 15.0, 0.5, 0, -1.0, -1.0},
{PTR_ANIM_death_forward_face_down, 1, 15.0, 0.5, 0, -1.0, -1.0},
{PTR_ANIM_death_fetal_position_right, 0, 10.0, 0.25, 0, -1.0, -1.0},
{PTR_ANIM_death_fetal_position_right, 1, 10.0, 0.25, 0, -1.0, -1.0},
{0, 0, -1.0, 0.5, 0, -1.0, -1.0}
};
struct struck_animation_table D_8002E23C[] = {
{0x2E64, 0, 15.0, 0.5, 0, 87.0, 203.0},
{0x2E64, 1, 15.0, 0.5, 0, 87.0, 203.0},
{0x39C0, 0, 20.0, 0.5, 0, -1.0, -1.0},
{0x39C0, 1, 20.0, 0.5, 0, -1.0, -1.0},
{0x30B8, 0, 15.0, 0.5, 0, -1.0, -1.0},
{0x30B8, 1, 15.0, 0.5, 0, -1.0, -1.0},
{PTR_ANIM_death_neck, 0, 15.0, 0.5, 0, 87.0, 203.0},
{PTR_ANIM_death_neck, 1, 15.0, 0.5, 0, 87.0, 203.0},
{PTR_ANIM_death_forward_face_down_soft, 0, 20.0, 0.5, 0, -1.0, -1.0},
{PTR_ANIM_death_forward_face_down_soft, 1, 20.0, 0.5, 0, -1.0, -1.0},
{PTR_ANIM_death_forward_face_down, 0, 15.0, 0.5, 0, -1.0, -1.0},
{PTR_ANIM_death_forward_face_down, 1, 15.0, 0.5, 0, -1.0, -1.0},
{0, 0, -1.0, 0.5, 0, -1.0, -1.0}
};
struct struck_animation_table D_8002E300[] = {
{0x1C9C, 0, -1.0, 0.5, 0, -1.0, -1.0},
{0x1E40, 1, -1.0, 0.5, 0, -1.0, -1.0},
{PTR_ANIM_hit_left_hand, 0, -1.0, 0.5, 0, -1.0, -1.0},
{PTR_ANIM_hit_right_hand, 1, -1.0, 0.5, 0, -1.0, -1.0},
{0, 0, -1.0, 0.5, 0, -1.0, -1.0}
};
struct struck_animation_table D_8002E354[] = {
{0x1A6C, 0, -1.0, 0.5, 0, -1.0, -1.0},
{0x1B54, 1, -1.0, 0.5, 0, -1.0, -1.0},
{PTR_ANIM_hit_left_arm, 0, -1.0, 0.5, 0, -1.0, -1.0},
{PTR_ANIM_hit_right_arm, 1, -1.0, 0.5, 0, -1.0, -1.0},
{0, 0, -1.0, 0.5, 0, -1.0, -1.0}
};
struct struck_animation_table D_8002E3A8[] = {
{0x186C, 0, -1.0, 0.5, 0, -1.0, -1.0},
{0x1984, 1, -1.0, 0.5, 0, -1.0, -1.0},
{0x39C0, 0, 20.0, 0.5, 0, -1.0, -1.0},
{PTR_ANIM_hit_left_shoulder, 0, -1.0, 0.5, 0, -1.0, -1.0},
{PTR_ANIM_hit_right_shoulder, 1, -1.0, 0.5, 0, -1.0, -1.0},
{PTR_ANIM_death_forward_face_down_soft, 0, 20.0, 0.5, 0, -1.0, -1.0},
{0, 0, -1.0, 0.5, 0, -1.0, -1.0}
};
struct struck_animation_table D_8002E418[] = {
{0x1E40, 0, -1.0, 0.5, 0, -1.0, -1.0},
{0x1C9C, 1, -1.0, 0.5, 0, -1.0, -1.0},
{PTR_ANIM_hit_right_hand, 0, -1.0, 0.5, 0, -1.0, -1.0},
{PTR_ANIM_hit_left_hand, 1, -1.0, 0.5, 0, -1.0, -1.0},
{0, 0, -1.0, 0.5, 0, -1.0, -1.0}
};
struct struck_animation_table D_8002E46C[] = {
{0x1B54, 0, -1.0, 0.5, 0, -1.0, -1.0},
{0x1A6C, 1, -1.0, 0.5, 0, -1.0, -1.0},
{PTR_ANIM_hit_right_arm, 0, -1.0, 0.5, 0, -1.0, -1.0},
{PTR_ANIM_hit_left_arm, 1, -1.0, 0.5, 0, -1.0, -1.0},
{0, 0, -1.0, 0.5, 0, -1.0, -1.0}
};
struct struck_animation_table D_8002E4C0[] = {
{0x1984, 0, -1.0, 0.5, 0, -1.0, -1.0},
{0x186C, 1, -1.0, 0.5, 0, -1.0, -1.0},
{0x39C0, 1, 20.0, 0.5, 0, -1.0, -1.0},
{PTR_ANIM_hit_right_shoulder, 0, -1.0, 0.5, 0, -1.0, -1.0},
{PTR_ANIM_hit_left_shoulder, 1, -1.0, 0.5, 0, -1.0, -1.0},
{PTR_ANIM_death_forward_face_down_soft, 1, 20.0, 0.5, 0, -1.0, -1.0},
{0, 0, -1.0, 0.5, 0, -1.0, -1.0}
};
struct struck_animation_table D_8002E530[] = {
{0x39C0, 0, 20.0, 0.5, 0, -1.0, -1.0},
{0x39C0, 1, 20.0, 0.5, 0, -1.0, -1.0},
{0x30B8, 0, 15.0, 0.5, 0, -1.0, -1.0},
{0x30B8, 1, 15.0, 0.5, 0, -1.0, -1.0},
{PTR_ANIM_death_forward_face_down_soft, 0, 20.0, 0.5, 0, -1.0, -1.0},
{PTR_ANIM_death_forward_face_down_soft, 1, 20.0, 0.5, 0, -1.0, -1.0},
{PTR_ANIM_death_forward_face_down, 0, 15.0, 0.5, 0, -1.0, -1.0},
{PTR_ANIM_death_forward_face_down, 1, 15.0, 0.5, 0, -1.0, -1.0},
{0, 0, -1.0, 0.5, 0, -1.0, -1.0}
};
struct struck_animation_table D_8002E5BC[] = {
{0x39C0, 0, 20.0, 0.5, 0, -1.0, -1.0},
{0x39C0, 1, 20.0, 0.5, 0, -1.0, -1.0},
{0x30B8, 0, 15.0, 0.5, 0, -1.0, -1.0},
{0x30B8, 1, 15.0, 0.5, 0, -1.0, -1.0},
{PTR_ANIM_death_forward_face_down_soft, 0, 20.0, 0.5, 0, -1.0, -1.0},
{PTR_ANIM_death_forward_face_down_soft, 1, 20.0, 0.5, 0, -1.0, -1.0},
{PTR_ANIM_death_forward_face_down, 0, 15.0, 0.5, 0, -1.0, -1.0},
{PTR_ANIM_death_forward_face_down, 1, 15.0, 0.5, 0, -1.0, -1.0},
{0, 0, -1.0, 0.5, 0, -1.0, -1.0}
};
struct explosion_death_animation D_8002E648[] = {
{0x98C8, 0, 0.5, 9.0, 18.0, 29.0, -1.0},
{0x98C8, 1, 0.5, 9.0, 18.0, 29.0, -1.0},
{0xA1B8, 0, 0.5, 11.0, 19.0, 31.0, -1.0},
{0xA1B8, 1, 0.5, 11.0, 19.0, 31.0, -1.0},
{0xA094, 0, 0.5, 6.0, 20.0, 27.0, -1.0},
{0xA094, 1, 0.5, 6.0, 20.0, 27.0, -1.0},
{0xA424, 0, 0.5, 29.0, 36.0, 48.0, -1.0},
{0xA424, 1, 0.5, 29.0, 36.0, 48.0, -1.0},
{0xA538, 0, 0.5, 29.0, 38.0, 49.0, -1.0},
{0xA538, 1, 0.5, 29.0, 38.0, 49.0, -1.0},
{0xA650, 0, 0.5, 19.0, 30.0, 42.0, -1.0},
{0xA650, 1, 0.5, 19.0, 30.0, 42.0, -1.0},
{0x9A2C, 0, 0.5, 9.0, 21.0, 29.0, 55.0},
{0x9A2C, 1, 0.5, 9.0, 21.0, 29.0, 55.0},
{0x9D5C, 0, 0.5, 6.0, 18.0, 27.0, -1.0},
{0x9D5C, 1, 0.5, 6.0, 18.0, 27.0, -1.0},
{0x9E44, 0, 0.5, 6.0, 19.0, 29.0, -1.0},
{0x9E44, 1, 0.5, 6.0, 19.0, 29.0, -1.0},
{0x9B48, 0, 0.5, 8.0, 14.0, 25.0, -1.0},
{0x9B48, 1, 0.5, 8.0, 14.0, 25.0, -1.0},
{0x9C4C, 0, 0.5, 8.0, 19.0, 25.0, -1.0},
{0x9C4C, 1, 0.5, 8.0, 19.0, 25.0, -1.0},
{0x9F48, 0, 0.5, 12.0, 21.0, 29.0, -1.0},
{0x9F48, 1, 0.5, 12.0, 21.0, 29.0, -1.0},
{0xA2F8, 0, 0.5, 22.0, 30.0, 41.0, -1.0},
{0xA2F8, 1, 0.5, 22.0, 30.0, 41.0, -1.0},
{PTR_ANIM_death_explosion_forward, 0, 0.5, 9.0, 18.0, 29.0, -1.0},
{PTR_ANIM_death_explosion_forward, 1, 0.5, 9.0, 18.0, 29.0, -1.0},
{PTR_ANIM_death_explosion_forward_face_down, 0, 0.5, 11.0, 19.0, 31.0, -1.0},
{PTR_ANIM_death_explosion_forward_face_down, 1, 0.5, 11.0, 19.0, 31.0, -1.0},
{PTR_ANIM_death_explosion_forward_roll, 0, 0.5, 6.0, 20.0, 27.0, -1.0},
{PTR_ANIM_death_explosion_forward_roll, 1, 0.5, 6.0, 20.0, 27.0, -1.0},
{PTR_ANIM_death_explosion_forward_right2, 0, 0.5, 29.0, 36.0, 48.0, -1.0},
{PTR_ANIM_death_explosion_forward_right2, 1, 0.5, 29.0, 36.0, 48.0, -1.0},
{PTR_ANIM_death_explosion_forward_right2_alt, 0, 0.5, 29.0, 38.0, 49.0, -1.0},
{PTR_ANIM_death_explosion_forward_right2_alt, 1, 0.5, 29.0, 38.0, 49.0, -1.0},
{PTR_ANIM_death_explosion_forward_right3, 0, 0.5, 19.0, 30.0, 42.0, -1.0},
{PTR_ANIM_death_explosion_forward_right3, 1, 0.5, 19.0, 30.0, 42.0, -1.0},
{PTR_ANIM_death_explosion_left1, 0, 0.5, 9.0, 21.0, 29.0, 55.0},
{PTR_ANIM_death_explosion_left1, 1, 0.5, 9.0, 21.0, 29.0, 55.0},
{PTR_ANIM_death_explosion_right, 0, 0.5, 6.0, 18.0, 27.0, -1.0},
{PTR_ANIM_death_explosion_right, 1, 0.5, 6.0, 18.0, 27.0, -1.0},
{PTR_ANIM_death_explosion_forward_right1, 0, 0.5, 6.0, 19.0, 29.0, -1.0},
{PTR_ANIM_death_explosion_forward_right1, 1, 0.5, 6.0, 19.0, 29.0, -1.0},
{PTR_ANIM_death_explosion_back_left, 0, 0.5, 8.0, 14.0, 25.0, -1.0},
{PTR_ANIM_death_explosion_back_left, 1, 0.5, 8.0, 14.0, 25.0, -1.0},
{PTR_ANIM_death_explosion_back1, 0, 0.5, 8.0, 19.0, 25.0, -1.0},
{PTR_ANIM_death_explosion_back1, 1, 0.5, 8.0, 19.0, 25.0, -1.0},
{PTR_ANIM_death_explosion_back2, 0, 0.5, 12.0, 21.0, 29.0, -1.0},
{PTR_ANIM_death_explosion_back2, 1, 0.5, 12.0, 21.0, 29.0, -1.0},
{PTR_ANIM_death_explosion_left2, 0, 0.5, 22.0, 30.0, 41.0, -1.0},
{PTR_ANIM_death_explosion_left2, 1, 0.5, 22.0, 30.0, 41.0, -1.0},
{0, 0, 0.5, 0.0, 0.0, 0.0, -1.0},
};
@@ -1791,7 +1791,7 @@ glabel sub_GAME_7F01FC10
/* 0548F4 7F01FDC4 8FA40038 */ lw $a0, 0x38($sp)
/* 0548F8 7F01FDC8 8C880008 */ lw $t0, 8($a0)
/* 0548FC 7F01FDCC 8D050000 */ lw $a1, ($t0)
/* 054900 7F01FDD0 0FC1B1E7 */ jal extract_id_from_object_structure_microcode
/* 054900 7F01FDD0 0FC1B1E7 */ jal modelGetNodeRwData
/* 054904 7F01FDD4 E7AE002C */ swc1 $f14, 0x2c($sp)
/* 054908 7F01FDD8 8E090014 */ lw $t1, 0x14($s0)
/* 05490C 7F01FDDC C60200AC */ lwc1 $f2, 0xac($s0)
@@ -2114,7 +2114,7 @@ glabel sub_GAME_7F01FC10
/* 0548F4 7F01FDC4 8FA40038 */ lw $a0, 0x38($sp)
/* 0548F8 7F01FDC8 8C880008 */ lw $t0, 8($a0)
/* 0548FC 7F01FDCC 8D050000 */ lw $a1, ($t0)
/* 054900 7F01FDD0 0FC1B1E7 */ jal extract_id_from_object_structure_microcode
/* 054900 7F01FDD0 0FC1B1E7 */ jal modelGetNodeRwData
/* 054904 7F01FDD4 E7AE002C */ swc1 $f14, 0x2c($sp)
/* 054908 7F01FDD8 8E090014 */ lw $t1, 0x14($s0)
/* 05490C 7F01FDDC C60200AC */ lwc1 $f2, 0xac($s0)
@@ -2382,7 +2382,7 @@ glabel sub_GAME_7F01FC10
/* 0548F4 7F01FDC4 8FA40038 */ lw $a0, 0x38($sp)
/* 0548F8 7F01FDC8 8C880008 */ lw $t0, 8($a0)
/* 0548FC 7F01FDCC 8D050000 */ lw $a1, ($t0)
/* 054900 7F01FDD0 0FC1B1E7 */ jal extract_id_from_object_structure_microcode
/* 054900 7F01FDD0 0FC1B1E7 */ jal modelGetNodeRwData
/* 054904 7F01FDD4 E7AE002C */ swc1 $f14, 0x2c($sp)
/* 054908 7F01FDD8 8E090014 */ lw $t1, 0x14($s0)
/* 05490C 7F01FDDC C60200AC */ lwc1 $f2, 0xac($s0)
@@ -2634,7 +2634,7 @@ glabel init_GUARDdata_with_set_values
/* 054CC4 7F020194 3C058003 */ lui $a1, %hi(animation_rate)
/* 054CC8 7F020198 8CA5C900 */ lw $a1, %lo(animation_rate)($a1)
/* 054CCC 7F02019C 4406A000 */ mfc1 $a2, $f20
/* 054CD0 7F0201A0 0FC1BFC6 */ jal sub_GAME_7F06FF18
/* 054CD0 7F0201A0 0FC1BFC6 */ jal modelSetAnimRateForDuration
/* 054CD4 7F0201A4 02402025 */ move $a0, $s2
/* 054CD8 7F0201A8 3C028003 */ lui $v0, %hi(player1_guardID)
/* 054CDC 7F0201AC 2442CC60 */ addiu $v0, %lo(player1_guardID) # addiu $v0, $v0, -0x33a0
@@ -2843,7 +2843,7 @@ glabel init_GUARDdata_with_set_values
/* 0529F8 7F020008 46105482 */ mul.s $f18, $f10, $f16
/* 0529FC 7F02000C 4406A000 */ mfc1 $a2, $f20
/* 052A00 7F020010 44059000 */ mfc1 $a1, $f18
/* 052A04 7F020014 0FC1C02E */ jal sub_GAME_7F06FF18
/* 052A04 7F020014 0FC1C02E */ jal modelSetAnimRateForDuration
/* 052A08 7F020018 00000000 */ nop
/* 052A0C 7F02001C 3C028003 */ lui $v0, %hi(player1_guardID) # $v0, 0x8003
/* 052A10 7F020020 244281B0 */ addiu $v0, %lo(player1_guardID) # addiu $v0, $v0, -0x7e50
@@ -3160,7 +3160,7 @@ glabel disable_sounds_attached_to_player_then_something
* Address 0x7F020540 (VERSION_US, VERSION_JP).
* Address 0x7F0203B4 (VERSION_EU).
*/
void animation_speed_related(f32 arg0)
void setAnimationRate(f32 arg0)
{
s32 i;
@@ -3172,9 +3172,9 @@ void animation_speed_related(f32 arg0)
{
#if defined(REFRESH_PAL)
/* should reference D_80047E4C (1.2f) */
sub_GAME_7F06FF18(ptr_guard_data[i].model, animation_rate * 1.2f, 600.0f);
modelSetAnimRateForDuration(ptr_guard_data[i].model, animation_rate * 1.2f, 600.0f);
#else
sub_GAME_7F06FF18(ptr_guard_data[i].model, animation_rate, 600.0f);
modelSetAnimRateForDuration(ptr_guard_data[i].model, animation_rate, 600.0f);
#endif
}
}
@@ -3183,7 +3183,7 @@ void animation_speed_related(f32 arg0)
f32 get_animation_rate(void)
f32 getAnimationRate(void)
{
return animation_rate;
}
@@ -5040,7 +5040,7 @@ glabel sub_GAME_7F020EF0
/* 056508 7F0219D8 8D050010 */ lw $a1, 0x10($t0)
/* 05650C 7F0219DC 10A0000E */ beqz $a1, .L7F021A18
/* 056510 7F0219E0 00000000 */ nop
/* 056514 7F0219E4 0FC1B1E7 */ jal extract_id_from_object_structure_microcode
/* 056514 7F0219E4 0FC1B1E7 */ jal modelGetNodeRwData
/* 056518 7F0219E8 01A02025 */ move $a0, $t5
/* 05651C 7F0219EC 8C430000 */ lw $v1, ($v0)
/* 056520 7F0219F0 10600009 */ beqz $v1, .L7F021A18
@@ -5049,7 +5049,7 @@ glabel sub_GAME_7F020EF0
/* 05652C 7F0219FC 8F050004 */ lw $a1, 4($t8)
/* 056530 7F021A00 10A00005 */ beqz $a1, .L7F021A18
/* 056534 7F021A04 00000000 */ nop
/* 056538 7F021A08 0FC1B1E7 */ jal extract_id_from_object_structure_microcode
/* 056538 7F021A08 0FC1B1E7 */ jal modelGetNodeRwData
/* 05653C 7F021A0C 8FA40110 */ lw $a0, 0x110($sp)
/* 056540 7F021A10 8FB90108 */ lw $t9, 0x108($sp)
/* 056544 7F021A14 AC590000 */ sw $t9, ($v0)
@@ -5912,7 +5912,7 @@ glabel sub_GAME_7F020EF0
/* 056830 7F021CC0 8DC50010 */ lw $a1, 0x10($t6)
/* 056834 7F021CC4 10A0000E */ beqz $a1, .Ljp7F021D00
/* 056838 7F021CC8 00000000 */ nop
/* 05683C 7F021CCC 0FC1B363 */ jal extract_id_from_object_structure_microcode
/* 05683C 7F021CCC 0FC1B363 */ jal modelGetNodeRwData
/* 056840 7F021CD0 03002025 */ move $a0, $t8
/* 056844 7F021CD4 8C430000 */ lw $v1, ($v0)
/* 056848 7F021CD8 10600009 */ beqz $v1, .Ljp7F021D00
@@ -5921,7 +5921,7 @@ glabel sub_GAME_7F020EF0
/* 056854 7F021CE4 8D050004 */ lw $a1, 4($t0)
/* 056858 7F021CE8 10A00005 */ beqz $a1, .Ljp7F021D00
/* 05685C 7F021CEC 00000000 */ nop
/* 056860 7F021CF0 0FC1B363 */ jal extract_id_from_object_structure_microcode
/* 056860 7F021CF0 0FC1B363 */ jal modelGetNodeRwData
/* 056864 7F021CF4 8FA40110 */ lw $a0, 0x110($sp)
/* 056868 7F021CF8 8FAF0108 */ lw $t7, 0x108($sp)
/* 05686C 7F021CFC AC4F0000 */ sw $t7, ($v0)
@@ -6838,7 +6838,7 @@ glabel sub_GAME_7F020EF0
/* 054390 7F0219A0 8DC50010 */ lw $a1, 0x10($t6)
/* 054394 7F0219A4 10A0000E */ beqz $a1, .L7F0219E0
/* 054398 7F0219A8 00000000 */ nop
/* 05439C 7F0219AC 0FC1B3A3 */ jal extract_id_from_object_structure_microcode
/* 05439C 7F0219AC 0FC1B3A3 */ jal modelGetNodeRwData
/* 0543A0 7F0219B0 03002025 */ move $a0, $t8
/* 0543A4 7F0219B4 8C430000 */ lw $v1, ($v0)
/* 0543A8 7F0219B8 10600009 */ beqz $v1, .L7F0219E0
@@ -6847,7 +6847,7 @@ glabel sub_GAME_7F020EF0
/* 0543B4 7F0219C4 8D050004 */ lw $a1, 4($t0)
/* 0543B8 7F0219C8 10A00005 */ beqz $a1, .L7F0219E0
/* 0543BC 7F0219CC 00000000 */ nop
/* 0543C0 7F0219D0 0FC1B3A3 */ jal extract_id_from_object_structure_microcode
/* 0543C0 7F0219D0 0FC1B3A3 */ jal modelGetNodeRwData
/* 0543C4 7F0219D4 8FA40110 */ lw $a0, 0x110($sp)
/* 0543C8 7F0219D8 8FAF0108 */ lw $t7, 0x108($sp)
/* 0543CC 7F0219DC AC4F0000 */ sw $t7, ($v0)
@@ -7435,7 +7435,7 @@ glabel sub_GAME_7F0221DC
/* 056EF0 7F0223C0 12800097 */ beqz $s4, .L7F022620
/* 056EF4 7F0223C4 02C02025 */ move $a0, $s6
/* 056EF8 7F0223C8 8E900004 */ lw $s0, 4($s4)
/* 056EFC 7F0223CC 0FC1B1E7 */ jal extract_id_from_object_structure_microcode
/* 056EFC 7F0223CC 0FC1B1E7 */ jal modelGetNodeRwData
/* 056F00 7F0223D0 02802825 */ move $a1, $s4
/* 056F04 7F0223D4 0040A025 */ move $s4, $v0
/* 056F08 7F0223D8 00008825 */ move $s1, $zero
@@ -7466,7 +7466,7 @@ glabel sub_GAME_7F0221DC
/* 056F64 7F022434 1040000A */ beqz $v0, .L7F022460
/* 056F68 7F022438 00402825 */ move $a1, $v0
/* 056F6C 7F02243C 8C510004 */ lw $s1, 4($v0)
/* 056F70 7F022440 0FC1B1E7 */ jal extract_id_from_object_structure_microcode
/* 056F70 7F022440 0FC1B1E7 */ jal modelGetNodeRwData
/* 056F74 7F022444 AFA8003C */ sw $t0, 0x3c($sp)
/* 056F78 7F022448 8FA8003C */ lw $t0, 0x3c($sp)
/* 056F7C 7F02244C 8E0B0010 */ lw $t3, 0x10($s0)
@@ -7992,9 +7992,9 @@ glabel sub_GAME_7F022980
/* 0576DC 7F022BAC 10000008 */ b .L7F022BD0
/* 0576E0 7F022BB0 8EA30000 */ lw $v1, ($s5)
.L7F022BB4:
/* 0576E4 7F022BB4 3C0C8005 */ lui $t4, %hi(image_entries)
/* 0576E4 7F022BB4 3C0C8005 */ lui $t4, %hi(g_Textures)
/* 0576E8 7F022BB8 018B6021 */ addu $t4, $t4, $t3
/* 0576EC 7F022BBC 918C9300 */ lbu $t4, %lo(image_entries)($t4)
/* 0576EC 7F022BBC 918C9300 */ lbu $t4, %lo(g_Textures)($t4)
/* 0576F0 7F022BC0 318D000F */ andi $t5, $t4, 0xf
/* 0576F4 7F022BC4 000D7080 */ sll $t6, $t5, 2
/* 0576F8 7F022BC8 02AE7821 */ addu $t7, $s5, $t6
@@ -8036,7 +8036,7 @@ glabel sub_GAME_7F022980
/* 057778 7F022C48 00003025 */ move $a2, $zero
/* 05777C 7F022C4C 8622003A */ lh $v0, 0x3a($s1)
/* 057780 7F022C50 3C158005 */ lui $s5, %hi(D_8004E86C)
/* 057784 7F022C54 3C0C8005 */ lui $t4, %hi(image_entries)
/* 057784 7F022C54 3C0C8005 */ lui $t4, %hi(g_Textures)
/* 057788 7F022C58 04410004 */ bgez $v0, .L7F022C6C
/* 05778C 7F022C5C 000258C0 */ sll $t3, $v0, 3
/* 057790 7F022C60 26B5E86C */ addiu $s5, %lo(D_8004E86C) # addiu $s5, $s5, -0x1794
@@ -8044,7 +8044,7 @@ glabel sub_GAME_7F022980
/* 057798 7F022C68 8EB00000 */ lw $s0, ($s5)
.L7F022C6C:
/* 05779C 7F022C6C 018B6021 */ addu $t4, $t4, $t3
/* 0577A0 7F022C70 918C9300 */ lbu $t4, %lo(image_entries)($t4)
/* 0577A0 7F022C70 918C9300 */ lbu $t4, %lo(g_Textures)($t4)
/* 0577A4 7F022C74 3C158005 */ lui $s5, %hi(D_8004E86C)
/* 0577A8 7F022C78 26B5E86C */ addiu $s5, %lo(D_8004E86C) # addiu $s5, $s5, -0x1794
/* 0577AC 7F022C7C 318D000F */ andi $t5, $t4, 0xf
+3 -4
View File
@@ -118,8 +118,7 @@ struct unk_joint_list {
s32 unk08;
Gfx *gdl;
// unknown type
void *mtxlist;
Mtxf * mtxlist;
u32 unk14;
u32 unk18;
u32 unk1C;
@@ -287,8 +286,8 @@ void setanimationdebugflag(s32 param_1);
void disable_sounds_attached_to_player_then_something(PropRecord* prop);
void chrPositionRelated7F020D94(ChrRecord *);
void set_or_unset_GUARDdata_flag(ChrRecord *guard,s32 param_2);
f32 get_animation_rate(void);
void animation_speed_related(f32);
f32 getAnimationRate(void);
void setAnimationRate(f32);
PropRecord *init_GUARDdata_with_set_values(PropRecord *, Model *, coord3d *, f32 arg2, StandTile * arg3, s32 arg4);
PropRecord *replace_GUARDdata_with_actual_values(struct Model * arg0, coord3d * arg1, f32 arg2, StandTile * arg3, s32 arg4);
void chrSetHiddenToRandom(ChrRecord *arg0);
+2 -2
View File
@@ -26,7 +26,7 @@ struct Model *makeonebody(s32 body, s32 head, struct ModelFileHeader *bodyHeader
f32 scale;
f32 pov;
s32 opcode;
struct ModelNode_HeaderRecord *node;
struct ModelRoData_HeaderRecord *node;
scale = c_item_entries[body].scale * 0.10000001f;
opcode = 0;
@@ -101,7 +101,7 @@ struct Model *makeonebody(s32 body, s32 head, struct ModelFileHeader *bodyHeader
{
if (headHeader->Switches[0] != 0)
{
node = extract_id_from_object_structure_microcode(model, headHeader->Switches[0]);
node = modelGetNodeRwData(model, headHeader->Switches[0]);
node->ModelType = 0;
}
}
+65 -66
View File
@@ -166,10 +166,10 @@ void sub_GAME_7F0349BC(s32 slot)
*/
s32 chraiitemsize(u8 *AIList, s32 offset)
{
//matches only as u8* despite text evidence of ai->val structs
//matches only as u8* despite text evidence of ai->val structs
switch (AIList[offset])
{
//Cant Use CMD Builder due to different order...
//Cant Use CMD Builder due to different order...
#if defined(USECMDBUILDER)
# ifndef _SYNHILITE
# define _AI_CMD(CMD) /* \
@@ -688,16 +688,16 @@ s32 chraiitemsize(u8 *AIList, s32 offset)
case AI_ObjectRocketLaunch:
return AI_ObjectRocketLaunch_LENGTH;
case AI_PRINT:
{
{
s32 pos = offset + 1;
while (AIList[pos] != 0)
{
++pos;
}
return (pos - offset) + 1;
}
}
default:
# if defined(DEBUG)
# if defined(ENABLE_LOG)
osSyncPrintf("chraiitemsize: unknown type %d!\n", *AIList);
# endif
return 1;
@@ -714,14 +714,14 @@ s32 chraiGetAIListID(AIRecord *AIList, bool *isGlobalAIList)
{
s32 i;
if (g_chraiCurrentSetup.ailists)
if (g_CurrentSetup.ailists)
{
for (i = 0; g_chraiCurrentSetup.ailists[i].ailist; i++)
for (i = 0; g_CurrentSetup.ailists[i].ailist; i++)
{
if (g_chraiCurrentSetup.ailists[i].ailist == AIList)
if (g_CurrentSetup.ailists[i].ailist == AIList)
{
*isGlobalAIList = FALSE;
return g_chraiCurrentSetup.ailists[i].ID;
return g_CurrentSetup.ailists[i].ID;
}
}
}
@@ -795,13 +795,13 @@ AIRecord *ailistFindById(s32 ID)
if (!isGlobalAIListID(ID))
{
if (g_chraiCurrentSetup.ailists)
if (g_CurrentSetup.ailists)
{
for (i = 0; g_chraiCurrentSetup.ailists[i].ailist; i++)
for (i = 0; g_CurrentSetup.ailists[i].ailist; i++)
{
if (g_chraiCurrentSetup.ailists[i].ID == ID)
if (g_CurrentSetup.ailists[i].ID == ID)
{
return g_chraiCurrentSetup.ailists[i].ailist;
return g_CurrentSetup.ailists[i].ailist;
}
}
}
@@ -827,11 +827,11 @@ PathRecord *pathFindById(s32 ID)
{
int i;
for (i=0;g_chraiCurrentSetup.patrolpaths[i].waypoints;i++)
for (i=0;g_CurrentSetup.patrolpaths[i].waypoints;i++)
{
if ( ID == g_chraiCurrentSetup.patrolpaths[i].ID )
if ( ID == g_CurrentSetup.patrolpaths[i].ID )
{
return &g_chraiCurrentSetup.patrolpaths[i];
return &g_CurrentSetup.patrolpaths[i];
}
}
@@ -955,8 +955,8 @@ void ai(PropDefHeaderRecord *Entityp, PROP_TYPE EntityType)
{
AIRecord1 *ai = AiListp + Offset;
Offset = chraiGoToLabel(AiListp, Offset, ai->val);
#ifdef DEBUG
osSyncPrintf(" (%d)\n", ai->val);
#ifdef ENABLE_LOG
osSyncPrintf("GOTO Next (%d)\n", ai->val);
#endif
break;
}
@@ -964,8 +964,8 @@ void ai(PropDefHeaderRecord *Entityp, PROP_TYPE EntityType)
{
AIRecord1 *ai = AiListp + Offset;
Offset = chraiGoToLabel(AiListp, 0, ai->val);
#ifdef DEBUG
osSyncPrintf(" (%d)\n", ai->val);
#ifdef ENABLE_LOG
osSyncPrintf("GOTO First (%d)\n", ai->val);
#endif
break;
}
@@ -2113,7 +2113,7 @@ void ai(PropDefHeaderRecord *Entityp, PROP_TYPE EntityType)
u16 pad_id = CharArrayTo16(ai->val,0);
if (check_if_actor_is_at_preset(ChrEntityp, pad_id))
{
#ifdef DEBUG
#ifdef ENABLE_LOG
osSyncPrintf("BOND IN ROOM\n");
#endif
Offset = chraiGoToLabel(AiListp, Offset, ai->val[2]);
@@ -2285,17 +2285,18 @@ void ai(PropDefHeaderRecord *Entityp, PROP_TYPE EntityType)
{
AIRecord *ai = AiListp + Offset;
ObjectRecord *obj = objFindByTagId(ai->val[0]);
#ifdef DEBUG
#ifdef ENABLE_LOG
osSyncPrintf("ai_destroyobj 1 : \n");
#endif
if (obj && obj->prop)
{
if (!do_something_if_object_destroyed(obj))
{
#ifdef DEBUG
f32 damage = ((obj->damage - obj->maxdamage) + 1) / 250.0f;
#ifdef ENABLE_LOG
osSyncPrintf("ai_destroyobj 3 : adddamageobj\n");
#endif
f32 damage = ((obj->damage - obj->maxdamage) + 1) / 250.0f;
maybe_detonate_object(obj, damage, &obj->runtime_pos, 29, -1);
}
}
@@ -2395,14 +2396,14 @@ void ai(PropDefHeaderRecord *Entityp, PROP_TYPE EntityType)
{
if (isNotBoundPad(padnum))
{
pad = &g_chraiCurrentSetup.pads[padnum];
pad = &g_CurrentSetup.pads[padnum];
}
else
{
pad = (PadRecord *)&g_chraiCurrentSetup.boundpads[getBoundPadNum(padnum)];
pad = (PadRecord *)&g_CurrentSetup.boundpads[getBoundPadNum(padnum)];
}
#ifdef DEBUG
osSyncPrintf("aiMoveObj: moving object to pad %d\n");
#ifdef ENABLE_LOG
osSyncPrintf("aiMoveObj: moving object to pad %d\n", pad);
#endif
matrix_4x4_7F059908(&matrix, 0, 0, 0, -pad->look.x, -pad->look.y, -pad->look.z, pad->up.x, pad->up.y, pad->up.z);
if (obj->model)
@@ -2773,7 +2774,7 @@ void ai(PropDefHeaderRecord *Entityp, PROP_TYPE EntityType)
case AI_IFSystemPowerTimeLessThan:
{
AIRecord *ai = AiListp + Offset;
f32 target = CharArrayTo16(ai->val,0) * CHRLV_FRAMERATE_F;
f32 target = CharArrayTo16(ai->val,0) * CHRAI_TICKRATE_F;
if (target > lvlGetCurrentMultiPlayerMin())
{
Offset = chraiGoToLabel(AiListp, Offset, ai->val[2]);
@@ -2787,7 +2788,7 @@ void ai(PropDefHeaderRecord *Entityp, PROP_TYPE EntityType)
case AI_IFSystemPowerTimeGreaterThan:
{
AIRecord *ai = AiListp + Offset;
f32 target = CharArrayTo16(ai->val,0) * CHRLV_FRAMERATE_F;
f32 target = CharArrayTo16(ai->val,0) * CHRAI_TICKRATE_F;
if (target < lvlGetCurrentMultiPlayerMin())
{
Offset = chraiGoToLabel(AiListp, Offset, ai->val[2]);
@@ -2828,7 +2829,7 @@ void ai(PropDefHeaderRecord *Entityp, PROP_TYPE EntityType)
{
AIRecord1 *ai = AiListp + Offset;
ChrEntityp->morale = ai->val;
#ifdef DEBUG
#ifdef ENABLE_LOG
osSyncPrintf("MORALE IS NOW %d \n",ChrEntityp->morale);
#endif
Offset += AI_SetMyMorale_LENGTH;
@@ -2845,7 +2846,7 @@ void ai(PropDefHeaderRecord *Entityp, PROP_TYPE EntityType)
{
ChrEntityp->morale += ai->val;
}
#ifdef DEBUG
#ifdef ENABLE_LOG
osSyncPrintf("MORALE IS NOW %d \n",ChrEntityp->morale);
#endif
@@ -2863,7 +2864,7 @@ void ai(PropDefHeaderRecord *Entityp, PROP_TYPE EntityType)
{
ChrEntityp->morale -= ai->val;
}
#ifdef DEBUG
#ifdef ENABLE_LOG
osSyncPrintf("MORALE IS NOW %d \n", ChrEntityp->morale);
#endif
Offset += AI_SubtractFromMyMorale_LENGTH;
@@ -2899,7 +2900,7 @@ void ai(PropDefHeaderRecord *Entityp, PROP_TYPE EntityType)
{
AIRecord1 *ai = AiListp + Offset;
ChrEntityp->alertness = ai->val;
#ifdef DEBUG
#ifdef ENABLE_LOG
osSyncPrintf("AI_PRINT(void) Alertness = %d!\n", ChrEntityp->alertness);
#endif
Offset += AI_SetMyAlertness_LENGTH;
@@ -3294,7 +3295,7 @@ void ai(PropDefHeaderRecord *Entityp, PROP_TYPE EntityType)
u16 pad_id = CharArrayTo16(ai->val,0);
if (ChrEntityp)
{
#ifdef DEBUG
#ifdef ENABLE_LOG
if (pad_id == PAD_PRESET1 && ChrEntityp->padpreset1 == PAD_PRESET1)
{
osSyncPrintf("RUSS : Pad is bollox -> Num=%d (%d) - PAD_PRESET1=%d\n", pad_id, ChrEntityp->padpreset1, PAD_PRESET1);
@@ -3319,7 +3320,7 @@ void ai(PropDefHeaderRecord *Entityp, PROP_TYPE EntityType)
}
case AI_PRINT:
{
#ifdef DEBUG
#ifdef ENABLE_LOG
AIRecord *ai = AiListp + Offset;
//PD = osSyncPrintf("AI_PRINT(void) [%d] %s\n", ai-val);
osSyncPrintf("AI_PRINT: %s\n", ai->val);
@@ -3367,7 +3368,7 @@ void ai(PropDefHeaderRecord *Entityp, PROP_TYPE EntityType)
case AI_IFMyTimerLessThanTicks:
{
AIRecord *ai = AiListp + Offset;
f32 valf = ((unsigned)CharArrayTo24(ai->val,0)) / CHRLV_FRAMERATE_F;
f32 valf = ((unsigned)CharArrayTo24(ai->val,0)) / CHRAI_TICKRATE_F;
if (chrGetTimer(ChrEntityp) < valf)
{
@@ -3382,7 +3383,7 @@ void ai(PropDefHeaderRecord *Entityp, PROP_TYPE EntityType)
case AI_IFMyTimerGreaterThanTicks:
{
AIRecord *ai = AiListp + Offset;
f32 valf = ((unsigned)CharArrayTo24(ai->val,0)) / CHRLV_FRAMERATE_F;
f32 valf = ((unsigned)CharArrayTo24(ai->val,0)) / CHRAI_TICKRATE_F;
if (chrGetTimer(ChrEntityp) > valf)
{
Offset = chraiGoToLabel(AiListp, Offset, ai->val[3]);
@@ -3409,7 +3410,7 @@ void ai(PropDefHeaderRecord *Entityp, PROP_TYPE EntityType)
{
AIRecord *ai = AiListp + Offset;
f32 seconds = CharArrayTo16(ai->val,0);
countdownTimerSetValue(seconds * CHRLV_FRAMERATE_F);
countdownTimerSetValue(seconds * CHRAI_TICKRATE_F);
Offset += AI_HudCountdownSet_LENGTH;
break;
}
@@ -3442,7 +3443,7 @@ void ai(PropDefHeaderRecord *Entityp, PROP_TYPE EntityType)
{
AIRecord *ai = AiListp + Offset;
f32 value = CharArrayTo16(ai->val,0);
if (countdownTimerGetValue() < value * CHRLV_FRAMERATE_F)
if (countdownTimerGetValue() < value * CHRAI_TICKRATE_F)
{
Offset = chraiGoToLabel(AiListp, Offset, ai->val[2]);
}
@@ -3456,7 +3457,7 @@ void ai(PropDefHeaderRecord *Entityp, PROP_TYPE EntityType)
{
AIRecord *ai = AiListp + Offset;
f32 value = CharArrayTo16(ai->val,0);
if (countdownTimerGetValue() > value * CHRLV_FRAMERATE_F)
if (countdownTimerGetValue() > value * CHRAI_TICKRATE_F)
{
Offset = chraiGoToLabel(AiListp, Offset, ai->val[2]);
}
@@ -3473,7 +3474,7 @@ void ai(PropDefHeaderRecord *Entityp, PROP_TYPE EntityType)
CHRFLAG flags = CharArrayTo32(ai->val,6);
u16 ailistid = CharArrayTo16(ai->val,4);
AIRecord *ailist = ailistFindById(ailistid);
#ifdef DEBUG
#ifdef ENABLE_LOG
if (flags & 32)
{
osSyncPrintf("ai_createchrheadthenjumpf : Flag set CHRSTART_FORCENOBLOOD\n");
@@ -3688,7 +3689,7 @@ void ai(PropDefHeaderRecord *Entityp, PROP_TYPE EntityType)
{
AIRecord *ai = AiListp + Offset;
char *text = langGet(CharArrayTo16(ai->val,0));
#ifdef DEBUG
#ifdef ENABLE_LOG
osSyncPrintf("USING HUD MESSAGE Stringy = %d, ai->txt = %d\n", CharArrayTo16(ai->val,0), text);
#endif
#ifdef BUGFIX_R1
@@ -3704,7 +3705,7 @@ void ai(PropDefHeaderRecord *Entityp, PROP_TYPE EntityType)
AIRecord *ai = AiListp + Offset;
char *text = langGet(CharArrayTo16(ai->val,0));
#ifdef DEBUG
#ifdef ENABLE_LOG
osSyncPrintf("ptop = %f \n", text);
osSyncPrintf("USING HUD MESSAGE Stringy = %d, ai->txt = %d\n", CharArrayTo16(ai->val,0), text);
@@ -3832,11 +3833,11 @@ void ai(PropDefHeaderRecord *Entityp, PROP_TYPE EntityType)
u16 sfxID = CharArrayTo16(ai->val,2);
if (isNotBoundPad(padnum))
{
pad = &g_chraiCurrentSetup.pads[padnum];
pad = &g_CurrentSetup.pads[padnum];
}
else
{
pad = (PadRecord *)&g_chraiCurrentSetup.boundpads[getBoundPadNum(padnum)];
pad = (PadRecord *)&g_CurrentSetup.boundpads[getBoundPadNum(padnum)];
}
if (ai->slotID >= 0 && ai->slotID < 8 && pad)
{
@@ -3969,12 +3970,10 @@ void ai(PropDefHeaderRecord *Entityp, PROP_TYPE EntityType)
}
case AI_IFBondInTank: //canonical name
{
/*
#ifdef DEBUG && PD
osSyncPrintf("ai_ifbondintank: tank code has been removed.\n");
#endif
*/
AIRecord *ai = AiListp + Offset;
#ifdef ENABLE_LOG
osSyncPrintf("ai_ifbondintank\n");
#endif
if (isBondInTank() == TRUE)
{
Offset = chraiGoToLabel(AiListp, Offset, ai->val[0]);
@@ -4014,11 +4013,11 @@ void ai(PropDefHeaderRecord *Entityp, PROP_TYPE EntityType)
u16 padnum = CharArrayTo16(ai->val,0);
if (isNotBoundPad(padnum))
{
dword_CODE_bss_800799F8 = &g_chraiCurrentSetup.pads[padnum];
dword_CODE_bss_800799F8 = &g_CurrentSetup.pads[padnum];
}
else
{
dword_CODE_bss_800799F8 = (PadRecord *)&g_chraiCurrentSetup.boundpads[getBoundPadNum(padnum)];
dword_CODE_bss_800799F8 = (PadRecord *)&g_CurrentSetup.boundpads[getBoundPadNum(padnum)];
}
set_camera_mode(CAMERAMODE_POSEND);
Offset += AI_CameraLookAtBondFromPad_LENGTH;
@@ -4035,7 +4034,7 @@ void ai(PropDefHeaderRecord *Entityp, PROP_TYPE EntityType)
{
CutsceneRecord *cdef = setupGetPtrToCommandByIndex(tag->OffsetToObj + TagIndex); //get obj
#ifdef DEBUG
#ifdef ENABLE_LOG
/*".\\ported\\chrai.c", 0xc2b, "Assertion failed: cdef->type==PROPDEF_CAMERAPOS") */
assert(cdef->type == PROPDEF_CAMERAPOS);
#endif
@@ -4086,7 +4085,7 @@ void ai(PropDefHeaderRecord *Entityp, PROP_TYPE EntityType)
}
case AI_BondEnableControl:
{
#ifdef DEBUG
#ifdef ENABLE_LOG
osSyncPrintf("AI_BONDENABLECONTROL\n");
#endif
set_unset_bitflags(4, TRUE);
@@ -4114,11 +4113,11 @@ void ai(PropDefHeaderRecord *Entityp, PROP_TYPE EntityType)
padnum = chrResolvePadId(ChrEntityp, padnum);
if (isNotBoundPad(padnum))
{
pad = &g_chraiCurrentSetup.pads[padnum];
pad = &g_CurrentSetup.pads[padnum];
}
else
{
pad = (PadRecord *)&g_chraiCurrentSetup.boundpads[getBoundPadNum(padnum)];
pad = (PadRecord *)&g_CurrentSetup.boundpads[getBoundPadNum(padnum)];
}
FacingDirection = atan2f(pad->look.x, pad->look.z);
@@ -4170,7 +4169,7 @@ void ai(PropDefHeaderRecord *Entityp, PROP_TYPE EntityType)
if (stop_time_flag != 2)
{
currentPlayerSetFadeColour(0, 0, 0, 0);
currentPlayerSetFadeFrac(CHRLV_FRAMERATE_F, 1);
currentPlayerSetFadeFrac(CHRAI_TICKRATE_F, 1);
}
Offset += AI_ScreenFadeToBlack_LENGTH;
break;
@@ -4180,7 +4179,7 @@ void ai(PropDefHeaderRecord *Entityp, PROP_TYPE EntityType)
if (stop_time_flag != 2)
{
currentPlayerSetFadeColour(0, 0, 0, 1);
currentPlayerSetFadeFrac(CHRLV_FRAMERATE_F, 0);
currentPlayerSetFadeFrac(CHRAI_TICKRATE_F, 0);
}
Offset += AI_ScreenFadeFromBlack_LENGTH;
break;
@@ -4234,7 +4233,7 @@ void ai(PropDefHeaderRecord *Entityp, PROP_TYPE EntityType)
door->openedTime = g_GlobalTimer;
door->openstate = DOORSTATE_STATIONARY;
sub_GAME_7F052B00(door);
sub_GAME_7F053598(door); // doorActivatePortal
doorActivatePortal(door); // doorActivatePortal
sub_GAME_7F053B10(door);
}
Offset += AI_DoorOpenInstant_LENGTH;
@@ -4321,11 +4320,11 @@ void ai(PropDefHeaderRecord *Entityp, PROP_TYPE EntityType)
if (isNotBoundPad(padnum))
{
pad = &g_chraiCurrentSetup.pads[padnum * 1]; //needs a mult by 1 to correct s0/v1
pad = &g_CurrentSetup.pads[padnum * 1]; //needs a mult by 1 to correct s0/v1
}
else
{
pad = (PadRecord *)&g_chraiCurrentSetup.boundpads[getBoundPadNum(padnum)];
pad = (PadRecord *)&g_CurrentSetup.boundpads[getBoundPadNum(padnum)];
}
if (pad->stan && obj && obj->prop && (pad->stan->room == obj->prop->stan->room))
@@ -4471,7 +4470,7 @@ void ai(PropDefHeaderRecord *Entityp, PROP_TYPE EntityType)
AIRecord *ai = AiListp + Offset;
Offset += AI_MusicPlaySlot_LENGTH;
musicPlaySlot((s8)ai->val[0], ai->val[1], ai->val[2]);
#ifdef DEBUG
#ifdef ENABLE_LOG
osSyncPrintf("ai: enery tune on (%d, %d, %d)\n", ai->val[0], ai->val[1], ai->val[2]);
#endif
break;
@@ -4481,7 +4480,7 @@ void ai(PropDefHeaderRecord *Entityp, PROP_TYPE EntityType)
AIRecord *ai = AiListp + Offset;
Offset += AI_MusicStopSlot_LENGTH;
musicStopSlot((s8)ai->val[0]);
#ifdef DEBUG
#ifdef ENABLE_LOG
osSyncPrintf("ai: enery tune off (%d)\n", ai->val[0]);
#endif
break;
@@ -4550,7 +4549,7 @@ void ai(PropDefHeaderRecord *Entityp, PROP_TYPE EntityType)
if (obj->runtime_bitflags & RUNTIMEBITFLAG_DEPOSIT)
{
obj->unk6C->id |= 0x601;
obj->unk6C->flags |= 0x601;
sub_GAME_7F03FE14(obj->prop);
matrix_4x4_set_identity(&obj->unk6C->m);
obj->unk6C->pos.x = 0;
@@ -4582,7 +4581,7 @@ void ai(PropDefHeaderRecord *Entityp, PROP_TYPE EntityType)
} // switch
} // for
} // Has ailist
#ifdef DEBUG
#ifdef ENABLE_LOG
osSyncPrintf("SERIOUS AI ERROR!!!!!! Null ailist!\n");
#endif
} //ai()
+23 -22
View File
@@ -4,7 +4,7 @@
#include <bondtypes.h>
#define CHRAI_TICKRATE_F 60.0f
/*
Stop Scolling:
@@ -316,14 +316,14 @@ struct bss_80073370 {
struct bss_80073DC0 {
u32 unk00;
u32 unk04;
u32 unk08;
u32 unk0C;
f32 unk04;
f32 unk08;
f32 unk0C;
u32 unk10;
u32 unk14;
u32 unk18;
u32 unk1C;
f32 unk10;
f32 unk14;
f32 unk18;
f32 unk1C;
u32 unk20;
u32 unk24;
@@ -345,7 +345,7 @@ struct bss_80073DC0 {
u32 unk58;
u32 unk5C;
u32 unk60;
f32 unk60;
u32 unk64;
u32 unk68;
u32 unk6C;
@@ -358,10 +358,10 @@ struct bss_80073DC0 {
u32 unk80;
u32 unk84;
u32 unk88;
u32 unk8C;
f32 unk8C;
u32 unk90;
u32 unk94;
f32 unk94;
u32 unk98;
u32 unk9C;
@@ -375,9 +375,9 @@ struct bss_80073DC0 {
u32 unkB8;
u32 unkBC;
u32 unkC0;
u32 unkC4;
u32 unkC8;
f32 unkC0;
f32 unkC4;
f32 unkC8;
u32 unkCC;
u32 unkD0;
@@ -390,6 +390,7 @@ struct bss_80073DC0 {
u32 unkE8;
};
struct bss_80075030 {
s32 unk00;
u32 unk04;
@@ -449,11 +450,11 @@ extern u32 monAnim2DRandEffectFlash[];
extern u32 monAnim00Bond[];
extern u32 monAnim34[];
extern u32 monAnim35Taser[];
extern u32 temp_mine_table[30];
extern WeaponObjRecord* temp_mine_table[30];
extern f32 gas_damage_flag;
extern u32 gas_cutoff_flag;
extern f32 difficulty ;
extern stagesetup g_chraiCurrentSetup;
extern stagesetup g_CurrentSetup;
extern s16 * ptr_list_object_lookup_indices;
extern PropRecord pos_data_entry[];
@@ -478,7 +479,7 @@ extern struct object_animation_controller g_MonitorAnimController;
extern struct object_animation_controller g_UnknownAnimController;
extern struct object_animation_controller g_TaserAnimController;
extern CreditsEntry *dword_CODE_bss_80075D28;
extern stagesetup *g_ptrStageSetupFile;
void alarmDeactivate(void);
s32 chraiitemsize(u8 *AIList, s32 offset);
@@ -498,7 +499,7 @@ void chrpropRegisterRooms(PropRecord *posData);
void chrpropActivate(PropRecord *);
void chrpropEnable(PropRecord *);
void chrpropActivateThisFrame(Model *);
void chrpropActivateThisFrame(PropRecord *);
void chrpropReparent(PropRecord *newChild, PropRecord *host);
AIRecord *ailistFindById(s32 ID);
void chraiGetCollisionBounds(PropRecord *arg0, struct rect4f **arg1, s32 *arg2, f32 *arg3, f32 *arg4);
@@ -512,10 +513,10 @@ PropRecord *get_ptr_obj_pos_list_current_entry(void);
void chraiGetPropRoomIds(PropRecord *self, s32 *roomids);
void chrpropFree(PropRecord *prop);
void chrpropDisable(PropRecord *prop);
f32 chrpropBBOXGetXmin(ModelNode_BoundingBoxRecord *modelBoundingBox);
f32 chrpropBBOXGetYmin(ModelNode_BoundingBoxRecord *modelBoundingBox);
f32 chrpropBBOXGetYmax(ModelNode_BoundingBoxRecord *modelBoundingBox);
f32 chrpropBBOXGetZmin(ModelNode_BoundingBoxRecord *modelBoundingBox);
f32 chrpropBBOXGetXmin(ModelRoData_BoundingBoxRecord *modelBoundingBox);
f32 chrpropBBOXGetYmin(ModelRoData_BoundingBoxRecord *modelBoundingBox);
f32 chrpropBBOXGetYmax(ModelRoData_BoundingBoxRecord *modelBoundingBox);
f32 chrpropBBOXGetZmin(ModelRoData_BoundingBoxRecord *modelBoundingBox);
ObjectRecord *sub_GAME_7F03FAB0(PadRecord *pad, s32 RoomID);
void chraiGetCollisionBounds(PropRecord *arg0, struct rect4f **arg1, s32 *arg2, f32 *arg3, f32 *arg4);
void chrpropGetCollisionBounds(PropRecord *arg0, f32 *arg1, f32 *arg2, f32 *arg3);
+60 -101
View File
@@ -30,39 +30,7 @@
#include "bondhead.h"
#include "unk_0A1DA0.h"
#ifdef REFRESH_PAL
#define CHRLV_RECENT_TIME_CHECK 151
#define CHRLV_TICK_DEAD_CHECK 75
#define CHRLV_SEEN_RECENT_CHECK 100
#define CHRLV_LASTMOVEOK60_CHECK 50
#define CHRLV_ATTACKWALK_CLOCK_TIMER30_MIN 0x11
#define CHRLV_ATTACKWALK_CLOCK_TIMER30_MAX 0x1a
#define CHRLV_ATTACKWALK_TIMER40_A 0x4b
#define CHRLV_ATTACKWALK_TIMER40_B 0x10
#define CHRLV_ATTACKWALK_TIMER40_C 0x96
#define CHRLV_ATTACKWALK_TIMER40_D 0x21
#define CHRLV_DEFAULT_TIMER 0x96
#define CHRLV_10_SEC_TIMER 0x1f4 /* 500 */
#define CHRLV_FRAMERATE_F 50.0f
#else
#define CHRLV_RECENT_TIME_CHECK 181
#define CHRLV_TICK_DEAD_CHECK 90
#define CHRLV_SEEN_RECENT_CHECK 120
#define CHRLV_LASTMOVEOK60_CHECK 60
#define CHRLV_ATTACKWALK_CLOCK_TIMER30_MIN 0x15
#define CHRLV_ATTACKWALK_CLOCK_TIMER30_MAX 0x1F
#define CHRLV_ATTACKWALK_TIMER40_A 0x5a
#define CHRLV_ATTACKWALK_TIMER40_B 0x14
#define CHRLV_ATTACKWALK_TIMER40_C 0xb4
#define CHRLV_ATTACKWALK_TIMER40_D 0x28
#define CHRLV_DEFAULT_TIMER 0xb4
#define CHRLV_10_SEC_TIMER 0x258 /* 600 */
#define CHRLV_FRAMERATE_F 60.0f
#endif
// forward declarations
@@ -299,7 +267,7 @@ void expand_09_characters(s32 stageid, GuardRecord *arg1, s32 arg2)
s32 bodyid;
s32 headid;
pad = &g_chraiCurrentSetup.pads[arg1->PadID];
pad = &g_CurrentSetup.pads[arg1->PadID];
if (sub_GAME_7F056850(pad, pad->stan, 20.0f, (PadRecord *)&sp48, &sp54) != 0)
{
@@ -3000,11 +2968,11 @@ waypoint *get_ptrpreset_in_table_matching_tile(StandTile* stan)
waypoint *waypoint;
PadRecord *pad;
if (g_chraiCurrentSetup.pathwaypoints != NULL)
if (g_CurrentSetup.pathwaypoints != NULL)
{
for (waypoint = g_chraiCurrentSetup.pathwaypoints; waypoint->padID >= 0; waypoint++)
for (waypoint = g_CurrentSetup.pathwaypoints; waypoint->padID >= 0; waypoint++)
{
pad = &((PadRecord *)g_chraiCurrentSetup.pads)[waypoint->padID];
pad = &((PadRecord *)g_CurrentSetup.pads)[waypoint->padID];
if (pad->stan == stan)
{
@@ -3019,18 +2987,18 @@ waypoint *get_ptrpreset_in_table_matching_tile(StandTile* stan)
GLOBAL_ASM(
.text
glabel get_ptrpreset_in_table_matching_tile
/* 05C724 7F027BF4 3C028007 */ lui $v0, %hi(g_chraiCurrentSetup+0)
/* 05C728 7F027BF8 8C425D00 */ lw $v0, %lo(g_chraiCurrentSetup+0)($v0)
/* 05C724 7F027BF4 3C028007 */ lui $v0, %hi(g_CurrentSetup+0)
/* 05C728 7F027BF8 8C425D00 */ lw $v0, %lo(g_CurrentSetup+0)($v0)
/* 05C72C 7F027BFC 00803025 */ move $a2, $a0
/* 05C730 7F027C00 50400015 */ beql $v0, $zero, .L7F027C58
/* 05C734 7F027C04 00001025 */ move $v0, $zero
/* 05C738 7F027C08 8C4E0000 */ lw $t6, ($v0)
/* 05C73C 7F027C0C 00401825 */ move $v1, $v0
/* 05C740 7F027C10 3C058007 */ lui $a1, %hi(g_chraiCurrentSetup+0x18)
/* 05C740 7F027C10 3C058007 */ lui $a1, %hi(g_CurrentSetup+0x18)
/* 05C744 7F027C14 05C0000F */ bltz $t6, .L7F027C54
/* 05C748 7F027C18 2407002C */ li $a3, 44
/* 05C74C 7F027C1C 8C440000 */ lw $a0, ($v0)
/* 05C750 7F027C20 8CA55D18 */ lw $a1, %lo(g_chraiCurrentSetup+0x18)($a1)
/* 05C750 7F027C20 8CA55D18 */ lw $a1, %lo(g_CurrentSetup+0x18)($a1)
.L7F027C24:
/* 05C754 7F027C24 00870019 */ multu $a0, $a3
/* 05C758 7F027C28 00007812 */ mflo $t7
@@ -3075,7 +3043,7 @@ f32 chrlvPadPresetRelated(coord3d *arg0, waypoint *arg1)
f32 temp_f2;
PadRecord *temp_v0;
temp_v0 = &g_chraiCurrentSetup.pads[arg1->padID];
temp_v0 = &g_CurrentSetup.pads[arg1->padID];
temp_f2 = temp_v0->pos.f[0] - arg0->f[0];
temp_f12 = temp_v0->pos.f[2] - arg0->f[2];
return (temp_f2 * temp_f2) + (temp_f12 * temp_f12);
@@ -3105,7 +3073,7 @@ waypoint *chrlvStanPathRelated(coord3d *arg0, StandTile *arg1)
for (n = ret->neighbours; *n >= 0; n++)
{
wayp = &g_chraiCurrentSetup.pathwaypoints[*n];
wayp = &g_CurrentSetup.pathwaypoints[*n];
if (chrlvPadPresetRelated(arg0, wayp) < temp_f20)
{
@@ -3208,7 +3176,7 @@ void chrlvActGoposRelated(ChrRecord *self, coord3d *target_point, StandTile **ta
if (temp_v0 != 0)
{
temp_v1 = &g_chraiCurrentSetup.pads[temp_v0->padID];
temp_v1 = &g_CurrentSetup.pads[temp_v0->padID];
target_point->f[0] = temp_v1->pos.f[0];
target_point->f[1] = temp_v1->pos.f[1];
@@ -3489,32 +3457,23 @@ s32 chrlvPatrolCalculateStep(ChrRecord *self, bool *forward, s32 numsteps)
#ifdef NONMATCHING
// notes: struct SetupPtrs isn't (currently defined), it's theoretical update
// to struct stagesetup. Requires AI Branch merge first.
/**
* Address 0x7F0283FC.
*/
PadRecord * chrlvGetPatrolStepPad(ChrRecord *self, s32 arg1)
// notes: 99.33% match, only failing regalloc on a single line
PadRecord *chrlvGetPatrolStepPad(ChrRecord *self, s32 numsteps)
{
//struct patrol_path *path;
s32 data;
s32 forward;
s32 step;
//s32 nextstep;
s32 * padnumptr;
forward = self->act_patrol.forward;
step = chrlvPatrolCalculateStep(self, &forward, arg1);
//path = self->act_patrol.path;
step = self->act_patrol.path->data[step];
return &((struct SetupPtrs *)&g_chraiCurrentSetup.pathwaypoints)->pads[
((struct SetupPtrs *)&g_chraiCurrentSetup.pathwaypoints)->pathwaypoints[step].padID
];
step = chrlvPatrolCalculateStep(self, &forward, numsteps);
data = self->act_patrol.path->data[step]; // <---- this line fails regalloc, swapping t0 and v1
padnumptr = &g_CurrentSetup.pathwaypoints[data].padID;
return &g_CurrentSetup.pads[*padnumptr];
}
#else
GLOBAL_ASM(
.text
@@ -3529,9 +3488,9 @@ glabel chrlvGetPatrolStepPad
/* 05CF48 7F028418 AFAE0020 */ sw $t6, 0x20($sp)
/* 05CF4C 7F02841C 8FA70028 */ lw $a3, 0x28($sp)
/* 05CF50 7F028420 0002C880 */ sll $t9, $v0, 2
/* 05CF54 7F028424 3C058007 */ lui $a1, %hi(g_chraiCurrentSetup+0)
/* 05CF54 7F028424 3C058007 */ lui $a1, %hi(g_CurrentSetup+0)
/* 05CF58 7F028428 8CEF002C */ lw $t7, 0x2c($a3)
/* 05CF5C 7F02842C 24A55D00 */ addiu $a1, %lo(g_chraiCurrentSetup+0) # addiu $a1, $a1, 0x5d00
/* 05CF5C 7F02842C 24A55D00 */ addiu $a1, %lo(g_CurrentSetup+0) # addiu $a1, $a1, 0x5d00
/* 05CF60 7F028430 8CAA0000 */ lw $t2, ($a1)
/* 05CF64 7F028434 8DF80000 */ lw $t8, ($t7)
/* 05CF68 7F028438 8FBF0014 */ lw $ra, 0x14($sp)
@@ -3691,7 +3650,7 @@ void chrlvTravelTickMagic(ChrRecord *self, struct waydata *arg1, f32 arg2, coord
if (curindex > 0)
{
pta = self->act_gopos.waypoints[curindex - 1];
pad = &g_chraiCurrentSetup.pads[pta->padID];
pad = &g_CurrentSetup.pads[pta->padID];
setsubroty(
self->model,
@@ -4043,10 +4002,10 @@ void set_actor_on_path(ChrRecord *self, struct patrol_path *path)
{
//s32 aa;
//aa = g_chraiCurrentSetup.pathwaypoints[index].id;
//pad = &g_chraiCurrentSetup.pads[aa];
waypoint *pta = &g_chraiCurrentSetup.pathwaypoints[index];
pad = &g_chraiCurrentSetup.pads[pta->padID];
//aa = g_CurrentSetup.pathwaypoints[index].id;
//pad = &g_CurrentSetup.pads[aa];
waypoint *pta = &g_CurrentSetup.pathwaypoints[index];
pad = &g_CurrentSetup.pads[pta->padID];
if ((pad->stan != NULL) && (prop->stan == pad->stan))
{
@@ -4111,12 +4070,12 @@ glabel set_actor_on_path
/* 05DC48 7F029118 8C870018 */ lw $a3, 0x18($a0)
/* 05DC4C 7F02911C 00003025 */ move $a2, $zero
/* 05DC50 7F029120 05E0002C */ bltz $t7, .L7F0291D4
/* 05DC54 7F029124 3C098007 */ lui $t1, %hi(g_chraiCurrentSetup+0)
/* 05DC58 7F029128 3C0A8007 */ lui $t2, %hi(g_chraiCurrentSetup+0x18)
/* 05DC54 7F029124 3C098007 */ lui $t1, %hi(g_CurrentSetup+0)
/* 05DC58 7F029128 3C0A8007 */ lui $t2, %hi(g_CurrentSetup+0x18)
/* 05DC5C 7F02912C 3C018005 */ lui $at, %hi(D_80051DF8)
/* 05DC60 7F029130 C42C1DF8 */ lwc1 $f12, %lo(D_80051DF8)($at)
/* 05DC64 7F029134 8D4A5D18 */ lw $t2, %lo(g_chraiCurrentSetup+0x18)($t2)
/* 05DC68 7F029138 8D295D00 */ lw $t1, %lo(g_chraiCurrentSetup+0)($t1)
/* 05DC64 7F029134 8D4A5D18 */ lw $t2, %lo(g_CurrentSetup+0x18)($t2)
/* 05DC68 7F029138 8D295D00 */ lw $t1, %lo(g_CurrentSetup+0)($t1)
/* 05DC6C 7F02913C 240B002C */ li $t3, 44
/* 05DC70 7F029140 0006C080 */ sll $t8, $a2, 2
.L7F029144:
@@ -5223,11 +5182,11 @@ bool chrGoToPad(ChrRecord *self, s32 padid, SPEED speed)
padid = chrResolvePadId(self, padid);
if (isNotBoundPad(padid))
{
pad = &g_chraiCurrentSetup.pads[padid];
pad = &g_CurrentSetup.pads[padid];
}
else
{
pad = (PadRecord *)&g_chraiCurrentSetup.boundpads[getBoundPadNum(padid)];
pad = (PadRecord *)&g_CurrentSetup.boundpads[getBoundPadNum(padid)];
}
stan = pad->stan;
@@ -6527,7 +6486,7 @@ s32 chrlvUpdateAimendsideback(ChrRecord *self, struct weapon_firing_animation_ta
calc_aimendsideback = t1 - subroty + M_TAU_F;
}
temp_v0_4 = (struct modeldata_root*)extract_id_from_object_structure_microcode(self->model, self->model->obj->RootNode);
temp_v0_4 = (struct modeldata_root*)modelGetNodeRwData(self->model, self->model->obj->RootNode);
if (temp_v0_4->unk5c > 0.0f)
{
@@ -7190,9 +7149,9 @@ void chrlvFireWeaponRelated(ChrRecord *self, s32 hand)
if (sp208->runtime_bitflags & RUNTIMEBITFLAG_DEPOSIT)
{
sp208->unk6C->id |= 0x80;
sp208->unk6C->flags |= 0x80;
sp208->timer = -1;
sp208->unk6C->id |= 0x20;
sp208->unk6C->flags |= 0x20;
sp208->unk6C->unkb0 = sp208->runtime_pos.y;
sp208->unk6C->unkb4 = sp208->unk6C->pos.f[1];
@@ -7646,7 +7605,7 @@ void chrlvTickAttackCommon(ChrRecord *self)
if (self_model->gunhand != GUNRIGHT)
{
fn40 = 6.2831855f - fn40;
fn40 = M_TAU_F - fn40;
}
self->act_attack.unk30 = chrlvSetSubroty(
@@ -8535,7 +8494,7 @@ void chrlvTickAttackRoll(ChrRecord *self)
if (self->act_attackroll.animfloats->anonymous_3 != 0.0f)
{
temp_v0_2 = (struct modeldata_root *)extract_id_from_object_structure_microcode(temp_a0, temp_a0->obj->RootNode);
temp_v0_2 = (struct modeldata_root *)modelGetNodeRwData(temp_a0, temp_a0->obj->RootNode);
temp_v0_2->unk5c = phi_f2_2;
temp_v0_2->unk58 = (-self->act_attackroll.animfloats->anonymous_3 / phi_f2_2);
@@ -10237,7 +10196,7 @@ void chrlvTickGoPos(ChrRecord *self)
if (wp != NULL)
{
if (chrlvIsArrivingLaterallyAtPos(&self->prevpos, &self_prop->pos, &g_chraiCurrentSetup.pads[wp->padID].pos, 30.0f) != 0)
if (chrlvIsArrivingLaterallyAtPos(&self->prevpos, &self_prop->pos, &g_CurrentSetup.pads[wp->padID].pos, 30.0f) != 0)
{
phi_v1 = 1;
}
@@ -10271,7 +10230,7 @@ void chrlvTickGoPos(ChrRecord *self)
if (wp != NULL)
{
pad = &g_chraiCurrentSetup.pads[wp->padID];
pad = &g_CurrentSetup.pads[wp->padID];
wp_pos = &pad->pos;
wp_stan = pad->stan;
}
@@ -10301,7 +10260,7 @@ void chrlvTickGoPos(ChrRecord *self)
if (wp != NULL)
{
pad = &g_chraiCurrentSetup.pads[wp->padID];
pad = &g_CurrentSetup.pads[wp->padID];
wp_pos = &pad->pos;
wp_stan = pad->stan;
}
@@ -10323,7 +10282,7 @@ void chrlvTickGoPos(ChrRecord *self)
if (wp != NULL)
{
pad = &g_chraiCurrentSetup.pads[wp->padID];
pad = &g_CurrentSetup.pads[wp->padID];
wp_pos = &pad->pos;
wp_stan = pad->stan;
}
@@ -10634,11 +10593,11 @@ coord3d *chrlvGetChrOrPresetLocation(ChrRecord *self, s32 flags, s32 lookup_id,
if (isNotBoundPad(padid))
{
preset_pad = &g_chraiCurrentSetup.pads[padid];
preset_pad = &g_CurrentSetup.pads[padid];
}
else
{
preset_pad = (PadRecord *)&g_chraiCurrentSetup.boundpads[getBoundPadNum(padid)];
preset_pad = (PadRecord *)&g_CurrentSetup.boundpads[getBoundPadNum(padid)];
}
*stan = (StandTile *) preset_pad->stan;
@@ -10707,11 +10666,11 @@ f32 chrGetDistanceToPad(ChrRecord *self, s32 padID)
if (isNotBoundPad(padID))
{
pad = (PadRecord *)&g_chraiCurrentSetup.pads[padID];
pad = (PadRecord *)&g_CurrentSetup.pads[padID];
}
else
{
pad = (PadRecord *)&g_chraiCurrentSetup.boundpads[getBoundPadNum(padID)];
pad = (PadRecord *)&g_CurrentSetup.boundpads[getBoundPadNum(padID)];
}
return sqrtf(
@@ -10734,11 +10693,11 @@ bool check_if_room_for_preset_loaded(ChrRecord *self, s32 padnum)
if (isNotBoundPad(padnum))
{
pad = (PadRecord *)&g_chraiCurrentSetup.pads[padnum];
pad = (PadRecord *)&g_CurrentSetup.pads[padnum];
}
else
{
pad = (PadRecord *)&g_chraiCurrentSetup.boundpads[getBoundPadNum(padnum)];
pad = (PadRecord *)&g_CurrentSetup.boundpads[getBoundPadNum(padnum)];
}
padstan = pad->stan;
@@ -10870,11 +10829,11 @@ f32 chrGetDistanceFromBondToPad(ChrRecord *self, s32 padid)
if (isNotBoundPad(padid))
{
pad = (PadRecord *)&g_chraiCurrentSetup.pads[padid];
pad = (PadRecord *)&g_CurrentSetup.pads[padid];
}
else
{
pad = (PadRecord *)&g_chraiCurrentSetup.boundpads[getBoundPadNum(padid)];
pad = (PadRecord *)&g_CurrentSetup.boundpads[getBoundPadNum(padid)];
}
return sqrtf(
@@ -11327,7 +11286,7 @@ s32 sub_GAME_7F033780(waypoint *arg0, coord3d *arg1, f32 angle)
f32 dz;
f32 ff;
pad = &g_chraiCurrentSetup.pads[arg0->padID];
pad = &g_CurrentSetup.pads[arg0->padID];
dx = pad->pos.f[0] - arg1->f[0];
dz = pad->pos.f[2] - arg1->f[2];
@@ -11413,9 +11372,9 @@ s32 chrlvFindPathNeighborRelated(coord3d *bondpos, StandTile *stan, f32 rot, u8
neighbor_index++, path_id = waypoint->neighbours[neighbor_index]
)
{
if (sub_GAME_7F033780(&g_chraiCurrentSetup.pathwaypoints[path_id], bondpos, rot) != 0)
if (sub_GAME_7F033780(&g_CurrentSetup.pathwaypoints[path_id], bondpos, rot) != 0)
{
return g_chraiCurrentSetup.pathwaypoints[path_id].padID;
return g_CurrentSetup.pathwaypoints[path_id].padID;
}
}
}
@@ -11673,7 +11632,7 @@ s32 sub_GAME_7F033EAC(coord3d *arg0, StandTile *arg1)
{
if (bgGet2dBboxByRoomId(getTileRoom(arg1), &sp1C))
{
pass = sub_GAME_7F078BF4(arg0, 200.0f, &sp1C) == 0;
pass = camIsPosInScreenBox(arg0, 200.0f, &sp1C) == 0;
}
else
{
@@ -11797,13 +11756,13 @@ PropRecord *chrSpawnAtPad(ChrRecord *self, s32 bodynum, s32 headnum, s32 padid,
if (isNotBoundPad(padid))
{
pad = (PadRecord *)&g_chraiCurrentSetup.pads[padid];
pad = (PadRecord *)&g_CurrentSetup.pads[padid];
}
else
{
pad = (PadRecord *)&g_chraiCurrentSetup.boundpads[getBoundPadNum(padid)];
pad = (PadRecord *)&g_CurrentSetup.boundpads[getBoundPadNum(padid)];
}
#ifdef DEBUG
#ifdef ENABLE_LOG
osSyncPrintf("%s%s new char x = %f, y = %f, z = %f \n", "", "", pad->pos.x, pad->pos.y, pad->pos.z);
#endif
return actionblock_guard_constructor_BDBE(bodynum, headnum, &pad->pos, pad->stan, atan2f(pad->look.f[0], pad->look.f[2]), ailist, flags);
@@ -11845,11 +11804,11 @@ bool chrIfInPadRoom(ChrRecord *self, s32 chrnum, s32 padnum)
if (isNotBoundPad(padnum))
{
pad = (PadRecord *)&g_chraiCurrentSetup.pads[padnum];
pad = (PadRecord *)&g_CurrentSetup.pads[padnum];
}
else
{
pad = (PadRecord *)&g_chraiCurrentSetup.boundpads[getBoundPadNum(padnum)];
pad = (PadRecord *)&g_CurrentSetup.boundpads[getBoundPadNum(padnum)];
}
if (pad->stan && chr)
@@ -11877,11 +11836,11 @@ bool check_if_actor_is_at_preset(ChrRecord *self, s32 padnum)
if (isNotBoundPad(padnum))
{
pad = (PadRecord *)&g_chraiCurrentSetup.pads[padnum];
pad = (PadRecord *)&g_CurrentSetup.pads[padnum];
}
else
{
pad = (PadRecord *)&g_chraiCurrentSetup.boundpads[getBoundPadNum(padnum)];
pad = (PadRecord *)&g_CurrentSetup.boundpads[getBoundPadNum(padnum)];
}
if (pad->stan && (pad->stan->room == bondprop->stan->room))
+31 -8
View File
@@ -6,17 +6,40 @@
// Value is 3, it just needs to be less than MAX_CHRWAYPOINTS
#define PATH_FINDING_WP_LIMIT (MAX_CHRWAYPOINTS - 3)
# ifdef REFRESH_PAL
# define CHRLV_FRAMERATE_F 50.0f
#endif
#ifdef REFRESH_PAL
#define CHRLV_RECENT_TIME_CHECK 151
#define CHRLV_TICK_DEAD_CHECK 75
#define CHRLV_SEEN_RECENT_CHECK 100
#define CHRLV_LASTMOVEOK60_CHECK 50
#define CHRLV_ATTACKWALK_CLOCK_TIMER30_MIN 0x11
#define CHRLV_ATTACKWALK_CLOCK_TIMER30_MAX 0x1a
#define CHRLV_ATTACKWALK_TIMER40_A 0x4b
#define CHRLV_ATTACKWALK_TIMER40_B 0x10
#define CHRLV_ATTACKWALK_TIMER40_C 0x96
#define CHRLV_ATTACKWALK_TIMER40_D 0x21
#define CHRLV_DEFAULT_TIMER 0x96
#define CHRLV_10_SEC_TIMER 0x1f4 /* 500 */
#define CHRLV_FRAMERATE_F 50.0f
#else
#define CHRLV_RECENT_TIME_CHECK 181
#define CHRLV_TICK_DEAD_CHECK 90
#define CHRLV_SEEN_RECENT_CHECK 120
#define CHRLV_LASTMOVEOK60_CHECK 60
#define CHRLV_ATTACKWALK_CLOCK_TIMER30_MIN 0x15
#define CHRLV_ATTACKWALK_CLOCK_TIMER30_MAX 0x1F
#define CHRLV_ATTACKWALK_TIMER40_A 0x5a
#define CHRLV_ATTACKWALK_TIMER40_B 0x14
#define CHRLV_ATTACKWALK_TIMER40_C 0xb4
#define CHRLV_ATTACKWALK_TIMER40_D 0x28
#define CHRLV_DEFAULT_TIMER 0xb4
#define CHRLV_10_SEC_TIMER 0x258 /* 600 */
#define CHRLV_FRAMERATE_F 60.0f
#endif
+4 -4
View File
@@ -41,10 +41,10 @@ extern struct ModelNode player_gait_hdr;
extern struct ModelNode player_gait_pos_hdr_1;
extern struct ModelNode player_gait_pos_hdr_2;
extern struct ModelNode player_gait_pos_hdr_3;
extern struct ModelNode_HeaderRecord player_gait_obj;
extern struct ModelNode_GroupRecord player_gait_pos_1;
extern struct ModelNode_GroupRecord player_gait_pos_2;
extern struct ModelNode_GroupRecord player_gait_pos_3;
extern struct ModelRoData_HeaderRecord player_gait_obj;
extern struct ModelRoData_GroupRecord player_gait_pos_1;
extern struct ModelRoData_GroupRecord player_gait_pos_2;
extern struct ModelRoData_GroupRecord player_gait_pos_3;
extern struct ModelFileHeader player_gait_object_header;
+771 -1850
View File
File diff suppressed because it is too large. Load diff
+2 -2
View File
@@ -72,7 +72,7 @@ void sub_GAME_7F055B78(PropRecord *arg0, DoorRecord *arg1);
Gfx *chrobjRenderProp(PropRecord *arg0, Gfx *arg1, s32 arg2);
f32 chrobjFogVisRangeRelated(PropRecord *prop, f32 size);
s32 sub_GAME_7F054A64(PropRecord *, struct view4s32 *);
s32 sub_GAME_7F054A64(PropRecord *prop, bbox2d *bbox);
// note: rgba to rgb
void sub_GAME_7F040384(rgba_s32 *arg0, s32 arg1, rgba_f32 *arg2);
@@ -84,7 +84,7 @@ bool alarmIsActive();
void init_trigger_toxic_gas_effect(coord3d *source);
void chrSetWeaponFlag4(ChrRecord *chr, GUNHAND hand);
void sub_GAME_7F053B10(DoorRecord *door);
void sub_GAME_7F053598(DoorRecord *door);
void doorActivatePortal(DoorRecord *door);
void sub_GAME_7F052B00(DoorRecord *door);
s32 sub_GAME_7F0539B8(f32 vol);
void monitorSetImageByNum(MonitorRecord *mon, s32 monAnimID);
+328 -932
View File
File diff suppressed because it is too large. Load diff
+3 -3
View File
@@ -18,7 +18,7 @@
*/
void cleanupObjects(s32 stage)
{
object_standard *obj = g_chraiCurrentSetup.propDefs;
object_standard *obj = g_CurrentSetup.propDefs;
if (obj != NULL)
{
@@ -111,8 +111,8 @@ glabel jpt_8004F210
glabel cleanupObjects
/* 03C030 7F007500 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 03C034 7F007504 AFB00018 */ sw $s0, 0x18($sp)
/* 03C038 7F007508 3C108007 */ lui $s0, %hi(g_chraiCurrentSetup+0x0c)
/* 03C03C 7F00750C 8E105D0C */ lw $s0, %lo(g_chraiCurrentSetup+0x0c)($s0)
/* 03C038 7F007508 3C108007 */ lui $s0, %hi(g_CurrentSetup+0x0c)
/* 03C03C 7F00750C 8E105D0C */ lw $s0, %lo(g_CurrentSetup+0x0c)($s0)
/* 03C040 7F007510 AFBF001C */ sw $ra, 0x1c($sp)
/* 03C044 7F007514 AFA40020 */ sw $a0, 0x20($sp)
/* 03C048 7F007518 52000019 */ beql $s0, $zero, .L7F007580
+1 -1
View File
@@ -7,7 +7,7 @@ void cleanup_window_pieces(void) {
s32 i;
for (i = 0; i < SHATTERED_WINDOW_PIECES_BUFFER_LEN; i++)
{
ptr_shattered_window_pieces[i].piece = NULL;
ptr_shattered_window_pieces[i].piece = 0;
}
}
+14 -12
View File
@@ -1,18 +1,20 @@
#include <ultra64.h>
#include "compiletime.h"
#ifdef VERSION_US
char *get_compile_time(void) {
return "Jun 29 1997 20:46:05";
}
#elif VERSION_EU
char *get_compile_time(void) {
return "Jul 31 1997 14:53:03";
}
#elif VERSION_JP
char *get_compile_time(void) {
return "Jul 10 1997 14:53:37";
}
#ifdef BYTEMATCH
#ifdef VERSION_US
char *get_compile_time(void) {
return "Jun 29 1997 20:46:05";
}
#elif VERSION_EU
char *get_compile_time(void) {
return "Jul 31 1997 14:53:03";
}
#elif VERSION_JP
char *get_compile_time(void) {
return "Jul 10 1997 14:53:37";
}
#endif
#else
char *get_compile_time(void) {
return __DATE__" " __TIME__;
+115 -355
View File
@@ -4,25 +4,22 @@
#include "chr.h"
#include "chr_b.h"
#include "deb_loadallmodels.h"
#include "loadobjectmodel.h"
#include "aicommands2.h"
#include "dyn.h"
#include "memp.h"
//i belong in a header, probably to another file
ChrRecord global_action_block_temp_buffer = { 0 };
u32 global_action_block_temp_buffer[119] = {0};
s32 weapon_models_for_weapon_load[] = {
WeaponProjectileModels weapon_models_for_weapon_load = {
PROJECTILES_TYPE_KNIFE, PROJECTILES_TYPE_GRENADE,
PROJECTILES_TYPE_REMOTE_MINE, PROJECTILES_TYPE_PROX_MINE,
PROJECTILES_TYPE_TIMED_MINE, PROJECTILES_TYPE_ROCKET_ROUND,
PROJECTILES_TYPE_GLAUNCH_ROUND, 0xFFFFFFFF
};
void init_obj_register_difficulty_vals(void) {
objectiveregisters1 = 0;
g_AiAccuracyModifier = 1.0f;
@@ -33,359 +30,122 @@ void init_obj_register_difficulty_vals(void) {
}
void alloc_false_GUARDdata_to_exec_global_action(void)
{
s32 i;
s32 count;
#ifdef NONMATCHING
void alloc_false_GUARDdata_to_exec_global_action(void) {
g_ActiveChrs = NULL;
g_ActiveChrsCount = 0;
if (!g_CurrentSetup.ailists) { return; }
count = 0;
// Count the number of background AI lists
i = 0;
while (g_CurrentSetup.ailists[i].ailist)
{
if (g_CurrentSetup.ailists[i].ID >= 0x1000)
{
g_ActiveChrsCount++;
}
i++;
}
if (g_ActiveChrsCount > 0)
{
ChrRecord tmp;
// Allocate BG chrs
g_ActiveChrs = mempAllocBytesInBank(ALIGN16_a(g_ActiveChrsCount * sizeof(ChrRecord)), MEMPOOL_STAGE);
// Initialise BG chrs
i = 0;
while (g_CurrentSetup.ailists[i].ailist)
{
if (g_CurrentSetup.ailists[i].ID >= 0x1000)
{
tmp = global_action_block_temp_buffer;
g_ActiveChrs[count] = tmp;
g_ActiveChrs[count].chrnum = 0xFE;
g_ActiveChrs[count].ailist = g_CurrentSetup.ailists[i].ailist;
g_ActiveChrs[count].aioffset = 0;
g_ActiveChrs[count].aireturnlist = -1;
g_ActiveChrs[count].actiontype = ACT_NULL;
count++;
}
i++;
}
}
}
#else
GLOBAL_ASM(
.text
glabel alloc_false_GUARDdata_to_exec_global_action
/* 035B8C 7F00105C 3C0D8007 */ lui $t5, %hi(g_chraiCurrentSetup+0)
/* 035B90 7F001060 25AD5D00 */ addiu $t5, %lo(g_chraiCurrentSetup+0) # addiu $t5, $t5, 0x5d00
/* 035B94 7F001064 8DA50014 */ lw $a1, 0x14($t5)
/* 035B98 7F001068 3C028003 */ lui $v0, %hi(g_ActiveChrsCount)
/* 035B9C 7F00106C 3C068003 */ lui $a2, %hi(g_ActiveChrs)
/* 035BA0 7F001070 24C6097C */ addiu $a2, %lo(g_ActiveChrs) # addiu $a2, $a2, 0x97c
/* 035BA4 7F001074 24420980 */ addiu $v0, %lo(g_ActiveChrsCount) # addiu $v0, $v0, 0x980
/* 035BA8 7F001078 27BDFDF8 */ addiu $sp, $sp, -0x208
/* 035BAC 7F00107C AFBF0014 */ sw $ra, 0x14($sp)
/* 035BB0 7F001080 ACC00000 */ sw $zero, ($a2)
/* 035BB4 7F001084 10A00070 */ beqz $a1, .L7F001248
/* 035BB8 7F001088 AC400000 */ sw $zero, ($v0)
/* 035BBC 7F00108C 8CAE0000 */ lw $t6, ($a1)
/* 035BC0 7F001090 00A01825 */ move $v1, $a1
/* 035BC4 7F001094 00003825 */ move $a3, $zero
/* 035BC8 7F001098 11C0000C */ beqz $t6, .L7F0010CC
/* 035BCC 7F00109C 24050004 */ li $a1, 4
/* 035BD0 7F0010A0 8C6F0004 */ lw $t7, 4($v1)
.L7F0010A4:
/* 035BD4 7F0010A4 29E11000 */ slti $at, $t7, 0x1000
/* 035BD8 7F0010A8 54200005 */ bnezl $at, .L7F0010C0
/* 035BDC 7F0010AC 8C6E0008 */ lw $t6, 8($v1)
/* 035BE0 7F0010B0 8C580000 */ lw $t8, ($v0)
/* 035BE4 7F0010B4 27190001 */ addiu $t9, $t8, 1
/* 035BE8 7F0010B8 AC590000 */ sw $t9, ($v0)
/* 035BEC 7F0010BC 8C6E0008 */ lw $t6, 8($v1)
.L7F0010C0:
/* 035BF0 7F0010C0 24630008 */ addiu $v1, $v1, 8
/* 035BF4 7F0010C4 55C0FFF7 */ bnezl $t6, .L7F0010A4
/* 035BF8 7F0010C8 8C6F0004 */ lw $t7, 4($v1)
.L7F0010CC:
/* 035BFC 7F0010CC 8C430000 */ lw $v1, ($v0)
/* 035C00 7F0010D0 00004025 */ move $t0, $zero
/* 035C04 7F0010D4 1860005C */ blez $v1, .L7F001248
/* 035C08 7F0010D8 00032100 */ sll $a0, $v1, 4
/* 035C0C 7F0010DC 00832023 */ subu $a0, $a0, $v1
/* 035C10 7F0010E0 000420C0 */ sll $a0, $a0, 3
/* 035C14 7F0010E4 00832023 */ subu $a0, $a0, $v1
/* 035C18 7F0010E8 00042080 */ sll $a0, $a0, 2
/* 035C1C 7F0010EC 2484000F */ addiu $a0, $a0, 0xf
/* 035C20 7F0010F0 348F000F */ ori $t7, $a0, 0xf
/* 035C24 7F0010F4 39E4000F */ xori $a0, $t7, 0xf
/* 035C28 7F0010F8 0C0025C8 */ jal mempAllocBytesInBank
/* 035C2C 7F0010FC AFA70200 */ sw $a3, 0x200($sp)
/* 035C30 7F001100 3C0D8007 */ lui $t5, %hi(g_chraiCurrentSetup+0)
/* 035C34 7F001104 25AD5D00 */ addiu $t5, %lo(g_chraiCurrentSetup+0) # addiu $t5, $t5, 0x5d00
/* 035C38 7F001108 8DA50014 */ lw $a1, 0x14($t5)
/* 035C3C 7F00110C 3C068003 */ lui $a2, %hi(g_ActiveChrs)
/* 035C40 7F001110 24C6097C */ addiu $a2, %lo(g_ActiveChrs) # addiu $a2, $a2, 0x97c
/* 035C44 7F001114 ACC20000 */ sw $v0, ($a2)
/* 035C48 7F001118 8CB90000 */ lw $t9, ($a1)
/* 035C4C 7F00111C 8FA70200 */ lw $a3, 0x200($sp)
/* 035C50 7F001120 00002025 */ move $a0, $zero
/* 035C54 7F001124 13200048 */ beqz $t9, .L7F001248
/* 035C58 7F001128 00A01825 */ move $v1, $a1
/* 035C5C 7F00112C 3C088003 */ lui $t0, %hi(global_action_block_temp_buffer)
/* 035C60 7F001130 2508A060 */ addiu $t0, %lo(global_action_block_temp_buffer) # addiu $t0, $t0, -0x5fa0
/* 035C64 7F001134 240C001A */ li $t4, 26
/* 035C68 7F001138 240BFFFF */ li $t3, -1
/* 035C6C 7F00113C 240A00FE */ li $t2, 254
/* 035C70 7F001140 240901DC */ li $t1, 476
/* 035C74 7F001144 27A50024 */ addiu $a1, $sp, 0x24
/* 035C78 7F001148 8C6E0004 */ lw $t6, 4($v1)
.L7F00114C:
/* 035C7C 7F00114C 0100C825 */ move $t9, $t0
/* 035C80 7F001150 251801D4 */ addiu $t8, $t0, 0x1d4
/* 035C84 7F001154 29C11000 */ slti $at, $t6, 0x1000
/* 035C88 7F001158 14200036 */ bnez $at, .L7F001234
/* 035C8C 7F00115C 00A07025 */ move $t6, $a1
.L7F001160:
/* 035C90 7F001160 8F210000 */ lw $at, ($t9)
/* 035C94 7F001164 2739000C */ addiu $t9, $t9, 0xc
/* 035C98 7F001168 25CE000C */ addiu $t6, $t6, 0xc
/* 035C9C 7F00116C ADC1FFF4 */ sw $at, -0xc($t6)
/* 035CA0 7F001170 8F21FFF8 */ lw $at, -8($t9)
/* 035CA4 7F001174 ADC1FFF8 */ sw $at, -8($t6)
/* 035CA8 7F001178 8F21FFFC */ lw $at, -4($t9)
/* 035CAC 7F00117C 1738FFF8 */ bne $t9, $t8, .L7F001160
/* 035CB0 7F001180 ADC1FFFC */ sw $at, -4($t6)
/* 035CB4 7F001184 00E90019 */ multu $a3, $t1
/* 035CB8 7F001188 8F210000 */ lw $at, ($t9)
/* 035CBC 7F00118C ADC10000 */ sw $at, ($t6)
/* 035CC0 7F001190 8F380004 */ lw $t8, 4($t9)
/* 035CC4 7F001194 ADD80004 */ sw $t8, 4($t6)
/* 035CC8 7F001198 8CCF0000 */ lw $t7, ($a2)
/* 035CCC 7F00119C 00001012 */ mflo $v0
/* 035CD0 7F0011A0 24AE01D4 */ addiu $t6, $a1, 0x1d4
/* 035CD4 7F0011A4 01E2C021 */ addu $t8, $t7, $v0
/* 035CD8 7F0011A8 00A07825 */ move $t7, $a1
.L7F0011AC:
/* 035CDC 7F0011AC 8DE10000 */ lw $at, ($t7)
/* 035CE0 7F0011B0 25EF000C */ addiu $t7, $t7, 0xc
/* 035CE4 7F0011B4 2718000C */ addiu $t8, $t8, 0xc
/* 035CE8 7F0011B8 AF01FFF4 */ sw $at, -0xc($t8)
/* 035CEC 7F0011BC 8DE1FFF8 */ lw $at, -8($t7)
/* 035CF0 7F0011C0 AF01FFF8 */ sw $at, -8($t8)
/* 035CF4 7F0011C4 8DE1FFFC */ lw $at, -4($t7)
/* 035CF8 7F0011C8 15EEFFF8 */ bne $t7, $t6, .L7F0011AC
/* 035CFC 7F0011CC AF01FFFC */ sw $at, -4($t8)
/* 035D00 7F0011D0 8DE10000 */ lw $at, ($t7)
/* 035D04 7F0011D4 24E70001 */ addiu $a3, $a3, 1
/* 035D08 7F0011D8 AF010000 */ sw $at, ($t8)
/* 035D0C 7F0011DC 8DEE0004 */ lw $t6, 4($t7)
/* 035D10 7F0011E0 AF0E0004 */ sw $t6, 4($t8)
/* 035D14 7F0011E4 8CD90000 */ lw $t9, ($a2)
/* 035D18 7F0011E8 03227021 */ addu $t6, $t9, $v0
/* 035D1C 7F0011EC A5CA0000 */ sh $t2, ($t6)
/* 035D20 7F0011F0 8DAF0014 */ lw $t7, 0x14($t5)
/* 035D24 7F0011F4 8CCE0000 */ lw $t6, ($a2)
/* 035D28 7F0011F8 01E4C021 */ addu $t8, $t7, $a0
/* 035D2C 7F0011FC 8F190000 */ lw $t9, ($t8)
/* 035D30 7F001200 01C27821 */ addu $t7, $t6, $v0
/* 035D34 7F001204 ADF90104 */ sw $t9, 0x104($t7)
/* 035D38 7F001208 8CD80000 */ lw $t8, ($a2)
/* 035D3C 7F00120C 03027021 */ addu $t6, $t8, $v0
/* 035D40 7F001210 A5C00108 */ sh $zero, 0x108($t6)
/* 035D44 7F001214 8CD90000 */ lw $t9, ($a2)
/* 035D48 7F001218 03227821 */ addu $t7, $t9, $v0
/* 035D4C 7F00121C A5EB010A */ sh $t3, 0x10a($t7)
/* 035D50 7F001220 8CD80000 */ lw $t8, ($a2)
/* 035D54 7F001224 03027021 */ addu $t6, $t8, $v0
/* 035D58 7F001228 A1CC0007 */ sb $t4, 7($t6)
/* 035D5C 7F00122C 8DB90014 */ lw $t9, 0x14($t5)
/* 035D60 7F001230 03241821 */ addu $v1, $t9, $a0
.L7F001234:
/* 035D64 7F001234 8C6F0008 */ lw $t7, 8($v1)
/* 035D68 7F001238 24840008 */ addiu $a0, $a0, 8
/* 035D6C 7F00123C 24630008 */ addiu $v1, $v1, 8
/* 035D70 7F001240 55E0FFC2 */ bnezl $t7, .L7F00114C
/* 035D74 7F001244 8C6E0004 */ lw $t6, 4($v1)
.L7F001248:
/* 035D78 7F001248 8FBF0014 */ lw $ra, 0x14($sp)
/* 035D7C 7F00124C 27BD0208 */ addiu $sp, $sp, 0x208
/* 035D80 7F001250 03E00008 */ jr $ra
/* 035D84 7F001254 00000000 */ nop
)
#endif
#ifdef NONMATCHING
void debug_object_load_all_models(void)
{
for i = 0 to sizeof(g_currentsetup.ailist)/4)
switch (g_currentSetup.ailist[i])
case AI_DROPGUNTYPE:
# ifdef DEBUG
osSyncPrintf("loaded dropguntype obj = % d\n", obj);
# endif
case AI_CREATECHRHEADATCHR:
# ifdef DEBUG
osSyncPrintf("loaded createchrheadatchr obj=%d\n", obj);
osSyncPrintf("loaded createchrheadatchr obj=%d (head)\n", obj);
# endif
case AI_CREATECHRHEAD:
# ifdef DEBUG
osSyncPrintf("loaded createchrhead obj=%d (body)\n", obj);
osSyncPrintf("loaded createchrhead obj=%d (head)\n", obj);
# endif
case AI_CREATEWEAPONHELDCHR:
# ifdef DEBUG
osSyncPrintf("loaded createweaponheldchr obj=%d\n", obj);
osSyncPrintf("loaded createweaponheldchr obj=%d (ammo)\n", obj);
# endif
case AI_CREATEHATONCHR:
# ifdef DEBUG
osSyncPrintf("loaded createhatonchr obj=%d\n", obj);
# endif
u8 *cmd = &g_CurrentSetup.ailists[0].ailist->cmd;
s32 i = 0;
u16 id;
if (!cmd) { return; }
do
{
while (TRUE)
{
if (cmd[0] == AI_EndList)
{
break;
}
switch (cmd[0])
{
case AI_TRYDroppingItem:
id = cmd[2] | (cmd[1] << 8);
if (modelLoad(id));
break;
case AI_TRYSpawningChrAtPad:
load_body_head_if_not_loaded(cmd[1]);
if ((s8)cmd[2] >= 0 && load_body_head_if_not_loaded((s8)cmd[2]));
break;
case AI_TRYSpawningChrNextToChr:
load_body_head_if_not_loaded(cmd[1]);
if ((s8)cmd[2] >= 0 && load_body_head_if_not_loaded((s8)cmd[2]));
break;
case AI_TRYGiveMeItem:
modelLoad(cmd[2] | (cmd[1] << 8));
if (weaponLoadProjectileModels(cmd[3]));
break;
case AI_TRYGiveMeHat:
modelLoad(cmd[2] | (cmd[1] << 8));
break;
}
cmd += chraiitemsize(cmd, 0);
}
i++;
cmd = &g_CurrentSetup.ailists[i].ailist->cmd;
} while (cmd);
}
#else
GLOBAL_ASM(
.text
glabel debug_object_load_all_models
/* 035D88 7F001258 27BDFFC8 */ addiu $sp, $sp, -0x38
/* 035D8C 7F00125C 3C0E8007 */ lui $t6, %hi(g_chraiCurrentSetup+0x14)
/* 035D90 7F001260 8DCE5D14 */ lw $t6, %lo(g_chraiCurrentSetup+0x14)($t6)
/* 035D94 7F001264 AFBF0034 */ sw $ra, 0x34($sp)
/* 035D98 7F001268 AFB70030 */ sw $s7, 0x30($sp)
/* 035D9C 7F00126C AFB6002C */ sw $s6, 0x2c($sp)
/* 035DA0 7F001270 AFB50028 */ sw $s5, 0x28($sp)
/* 035DA4 7F001274 AFB40024 */ sw $s4, 0x24($sp)
/* 035DA8 7F001278 AFB30020 */ sw $s3, 0x20($sp)
/* 035DAC 7F00127C AFB2001C */ sw $s2, 0x1c($sp)
/* 035DB0 7F001280 AFB10018 */ sw $s1, 0x18($sp)
/* 035DB4 7F001284 AFB00014 */ sw $s0, 0x14($sp)
/* 035DB8 7F001288 8DD00000 */ lw $s0, ($t6)
/* 035DBC 7F00128C 241500BF */ li $s5, 191
/* 035DC0 7F001290 241600C0 */ li $s6, 192
/* 035DC4 7F001294 12000052 */ beqz $s0, .L7F0013E0
/* 035DC8 7F001298 0000B825 */ move $s7, $zero
/* 035DCC 7F00129C 241400BE */ li $s4, 190
/* 035DD0 7F0012A0 241300BD */ li $s3, 189
/* 035DD4 7F0012A4 2412001B */ li $s2, 27
/* 035DD8 7F0012A8 24110004 */ li $s1, 4
.L7F0012AC:
/* 035DDC 7F0012AC 92030000 */ lbu $v1, ($s0)
.L7F0012B0:
/* 035DE0 7F0012B0 3C0F8007 */ lui $t7, %hi(g_chraiCurrentSetup+0x14)
/* 035DE4 7F0012B4 16230004 */ bne $s1, $v1, .L7F0012C8
/* 035DE8 7F0012B8 00000000 */ nop
/* 035DEC 7F0012BC 8DEF5D14 */ lw $t7, %lo(g_chraiCurrentSetup+0x14)($t7)
/* 035DF0 7F0012C0 10000042 */ b .L7F0013CC
/* 035DF4 7F0012C4 01F71021 */ addu $v0, $t7, $s7
.L7F0012C8:
/* 035DF8 7F0012C8 5072000C */ beql $v1, $s2, .L7F0012FC
/* 035DFC 7F0012CC 92180001 */ lbu $t8, 1($s0)
/* 035E00 7F0012D0 10730013 */ beq $v1, $s3, .L7F001320
/* 035E04 7F0012D4 00000000 */ nop
/* 035E08 7F0012D8 1074001C */ beq $v1, $s4, .L7F00134C
/* 035E0C 7F0012DC 00000000 */ nop
/* 035E10 7F0012E0 50750026 */ beql $v1, $s5, .L7F00137C
/* 035E14 7F0012E4 920A0001 */ lbu $t2, 1($s0)
/* 035E18 7F0012E8 5076002F */ beql $v1, $s6, .L7F0013A8
/* 035E1C 7F0012EC 920D0001 */ lbu $t5, 1($s0)
/* 035E20 7F0012F0 10000032 */ b .L7F0013BC
/* 035E24 7F0012F4 02002025 */ move $a0, $s0
/* 035E28 7F0012F8 92180001 */ lbu $t8, 1($s0)
.L7F0012FC:
/* 035E2C 7F0012FC 92080002 */ lbu $t0, 2($s0)
/* 035E30 7F001300 0018CA00 */ sll $t9, $t8, 8
/* 035E34 7F001304 03281025 */ or $v0, $t9, $t0
/* 035E38 7F001308 0FC15B0E */ jal modelLoad
/* 035E3C 7F00130C 3044FFFF */ andi $a0, $v0, 0xffff
/* 035E40 7F001310 5040002A */ beql $v0, $zero, .L7F0013BC
/* 035E44 7F001314 02002025 */ move $a0, $s0
/* 035E48 7F001318 10000028 */ b .L7F0013BC
/* 035E4C 7F00131C 02002025 */ move $a0, $s0
.L7F001320:
/* 035E50 7F001320 0FC08CA4 */ jal load_body_head_if_not_loaded
/* 035E54 7F001324 92040001 */ lbu $a0, 1($s0)
/* 035E58 7F001328 82040002 */ lb $a0, 2($s0)
/* 035E5C 7F00132C 04820023 */ bltzl $a0, .L7F0013BC
/* 035E60 7F001330 02002025 */ move $a0, $s0
/* 035E64 7F001334 0FC08CA4 */ jal load_body_head_if_not_loaded
/* 035E68 7F001338 00000000 */ nop
/* 035E6C 7F00133C 5040001F */ beql $v0, $zero, .L7F0013BC
/* 035E70 7F001340 02002025 */ move $a0, $s0
/* 035E74 7F001344 1000001D */ b .L7F0013BC
/* 035E78 7F001348 02002025 */ move $a0, $s0
.L7F00134C:
/* 035E7C 7F00134C 0FC08CA4 */ jal load_body_head_if_not_loaded
/* 035E80 7F001350 92040001 */ lbu $a0, 1($s0)
/* 035E84 7F001354 82040002 */ lb $a0, 2($s0)
/* 035E88 7F001358 04820018 */ bltzl $a0, .L7F0013BC
/* 035E8C 7F00135C 02002025 */ move $a0, $s0
/* 035E90 7F001360 0FC08CA4 */ jal load_body_head_if_not_loaded
/* 035E94 7F001364 00000000 */ nop
/* 035E98 7F001368 50400014 */ beql $v0, $zero, .L7F0013BC
/* 035E9C 7F00136C 02002025 */ move $a0, $s0
/* 035EA0 7F001370 10000012 */ b .L7F0013BC
/* 035EA4 7F001374 02002025 */ move $a0, $s0
/* 035EA8 7F001378 920A0001 */ lbu $t2, 1($s0)
.L7F00137C:
/* 035EAC 7F00137C 920C0002 */ lbu $t4, 2($s0)
/* 035EB0 7F001380 000A5A00 */ sll $t3, $t2, 8
/* 035EB4 7F001384 0FC15B0E */ jal modelLoad
/* 035EB8 7F001388 016C2025 */ or $a0, $t3, $t4
/* 035EBC 7F00138C 0FC015C4 */ jal weaponLoadProjectileModels
/* 035EC0 7F001390 92040003 */ lbu $a0, 3($s0)
/* 035EC4 7F001394 50400009 */ beql $v0, $zero, .L7F0013BC
/* 035EC8 7F001398 02002025 */ move $a0, $s0
/* 035ECC 7F00139C 10000007 */ b .L7F0013BC
/* 035ED0 7F0013A0 02002025 */ move $a0, $s0
/* 035ED4 7F0013A4 920D0001 */ lbu $t5, 1($s0)
.L7F0013A8:
/* 035ED8 7F0013A8 920F0002 */ lbu $t7, 2($s0)
/* 035EDC 7F0013AC 000D7200 */ sll $t6, $t5, 8
/* 035EE0 7F0013B0 0FC15B0E */ jal modelLoad
/* 035EE4 7F0013B4 01CF2025 */ or $a0, $t6, $t7
/* 035EE8 7F0013B8 02002025 */ move $a0, $s0
.L7F0013BC:
/* 035EEC 7F0013BC 0FC0D27F */ jal chraiitemsize
/* 035EF0 7F0013C0 00002825 */ move $a1, $zero
/* 035EF4 7F0013C4 1000FFB9 */ b .L7F0012AC
/* 035EF8 7F0013C8 02028021 */ addu $s0, $s0, $v0
.L7F0013CC:
/* 035EFC 7F0013CC 8C500008 */ lw $s0, 8($v0)
/* 035F00 7F0013D0 26F70008 */ addiu $s7, $s7, 8
/* 035F04 7F0013D4 24420008 */ addiu $v0, $v0, 8
/* 035F08 7F0013D8 5600FFB5 */ bnezl $s0, .L7F0012B0
/* 035F0C 7F0013DC 92030000 */ lbu $v1, ($s0)
.L7F0013E0:
/* 035F10 7F0013E0 8FBF0034 */ lw $ra, 0x34($sp)
/* 035F14 7F0013E4 8FB00014 */ lw $s0, 0x14($sp)
/* 035F18 7F0013E8 8FB10018 */ lw $s1, 0x18($sp)
/* 035F1C 7F0013EC 8FB2001C */ lw $s2, 0x1c($sp)
/* 035F20 7F0013F0 8FB30020 */ lw $s3, 0x20($sp)
/* 035F24 7F0013F4 8FB40024 */ lw $s4, 0x24($sp)
/* 035F28 7F0013F8 8FB50028 */ lw $s5, 0x28($sp)
/* 035F2C 7F0013FC 8FB6002C */ lw $s6, 0x2c($sp)
/* 035F30 7F001400 8FB70030 */ lw $s7, 0x30($sp)
/* 035F34 7F001404 03E00008 */ jr $ra
/* 035F38 7F001408 27BD0038 */ addiu $sp, $sp, 0x38
)
#endif
#ifdef NONMATCHING
void debug_weapon_load_table(void) {
void debug_weapon_load_table(void)
{
WeaponProjectileModels tmp = weapon_models_for_weapon_load;
s32 i;
for (i = 0; tmp.array[i] >= 0; i++)
{
modelLoad(tmp.array[i]);
if (1);
}
}
#else
GLOBAL_ASM(
.text
glabel debug_weapon_load_table
/* 035F3C 7F00140C 27BDFFB0 */ addiu $sp, $sp, -0x50
/* 035F40 7F001410 3C0F8003 */ lui $t7, %hi(weapon_models_for_weapon_load)
/* 035F44 7F001414 AFBF001C */ sw $ra, 0x1c($sp)
/* 035F48 7F001418 AFB00018 */ sw $s0, 0x18($sp)
/* 035F4C 7F00141C 25EFA23C */ addiu $t7, %lo(weapon_models_for_weapon_load) # addiu $t7, $t7, -0x5dc4
/* 035F50 7F001420 8DE10000 */ lw $at, ($t7)
/* 035F54 7F001424 8DE80004 */ lw $t0, 4($t7)
/* 035F58 7F001428 27AE0030 */ addiu $t6, $sp, 0x30
/* 035F5C 7F00142C ADC10000 */ sw $at, ($t6)
/* 035F60 7F001430 ADC80004 */ sw $t0, 4($t6)
/* 035F64 7F001434 8DE8000C */ lw $t0, 0xc($t7)
/* 035F68 7F001438 8DE10008 */ lw $at, 8($t7)
/* 035F6C 7F00143C 27B00030 */ addiu $s0, $sp, 0x30
/* 035F70 7F001440 ADC8000C */ sw $t0, 0xc($t6)
/* 035F74 7F001444 ADC10008 */ sw $at, 8($t6)
/* 035F78 7F001448 8DE10010 */ lw $at, 0x10($t7)
/* 035F7C 7F00144C 8DE80014 */ lw $t0, 0x14($t7)
/* 035F80 7F001450 ADC10010 */ sw $at, 0x10($t6)
/* 035F84 7F001454 ADC80014 */ sw $t0, 0x14($t6)
/* 035F88 7F001458 8DE8001C */ lw $t0, 0x1c($t7)
/* 035F8C 7F00145C 8DE10018 */ lw $at, 0x18($t7)
/* 035F90 7F001460 ADC8001C */ sw $t0, 0x1c($t6)
/* 035F94 7F001464 ADC10018 */ sw $at, 0x18($t6)
/* 035F98 7F001468 8FA90030 */ lw $t1, 0x30($sp)
/* 035F9C 7F00146C 05220009 */ bltzl $t1, .L7F001494
/* 035FA0 7F001470 8FBF001C */ lw $ra, 0x1c($sp)
/* 035FA4 7F001474 8E040000 */ lw $a0, ($s0)
.L7F001478:
/* 035FA8 7F001478 0FC15B0E */ jal modelLoad
/* 035FAC 7F00147C 00000000 */ nop
/* 035FB0 7F001480 8E040004 */ lw $a0, 4($s0)
/* 035FB4 7F001484 26100004 */ addiu $s0, $s0, 4
/* 035FB8 7F001488 0481FFFB */ bgez $a0, .L7F001478
/* 035FBC 7F00148C 00000000 */ nop
/* 035FC0 7F001490 8FBF001C */ lw $ra, 0x1c($sp)
.L7F001494:
/* 035FC4 7F001494 8FB00018 */ lw $s0, 0x18($sp)
/* 035FC8 7F001498 27BD0050 */ addiu $sp, $sp, 0x50
/* 035FCC 7F00149C 03E00008 */ jr $ra
/* 035FD0 7F0014A0 00000000 */ nop
)
#endif
+16
View File
@@ -2,6 +2,22 @@
#define _DEB_LOADALLMODELS_H_
#include <ultra64.h>
typedef struct WeaponProjectileModels {
union {
struct {
s32 knife;
s32 grenade;
s32 remote;
s32 prox;
s32 timed;
s32 rocket;
s32 glaunch;
s32 none;
};
s32 array[8];
};
} WeaponProjectileModels;
void init_obj_register_difficulty_vals(void);
#endif
+1 -1
View File
@@ -644,7 +644,7 @@ s32 debug_menu_processor(s8 stick_h, s8 stick_v, u16 button_held, u16 button_pre
player_pos_x.x = (f32) playerprop->position.x;
player_pos_x.y = (f32) playerprop->position.y;
player_pos_x.z = (f32) playerprop->position.z;
#ifdef DEBUG
#ifdef ENABLE_LOG
osSyncPrintf("%s%sbond world pos=%f,%f,%f dist from prev=%f\n",
"",
"",
+1 -1
View File
@@ -92,7 +92,7 @@ glabel decompressdata
s32 sub_GAME_7F0CE894(void) {
s32 rzipGetSomething(void) {
return (rz_inbuf + rz_inptr);
}
+1 -1
View File
@@ -5,6 +5,6 @@
u32 decompressdata(u8 *src, u8 *dst, struct huft *hlist);
s32 sub_GAME_7F0CE894(void);
s32 rzipGetSomething(void);
#endif
+25 -49
View File
@@ -1,58 +1,34 @@
#include <ultra64.h>
#include "ejectedcartridges.h"
#include "bondtypes.h"
#include "gun.h"
// Copied from another file. Might need code reorganization to prevent the use of extra externs.
extern s32 dword_CODE_bss_80075DB0;
extern s32 dword_CODE_bss_80075DB4;
extern ALSoundState* dword_CODE_bss_80075DB8[4];
extern u32 cartridges_eject;
extern u32 D_80034CA0;
extern CartridgeModelFileRecord ejected_cartridge[] ;
void init_ejected_cartridges(void) {
int i = 0;
dword_CODE_bss_80075DB0 = 0;
while (i < 4)
{
dword_CODE_bss_80075DB8[i] = NULL;
i++;
}
#ifdef NONMATCHING
void something_with_ejected_cartridges(void) {
}
#else
GLOBAL_ASM(
.text
glabel something_with_ejected_cartridges
/* 039B70 7F005040 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 039B74 7F005044 3C018007 */ lui $at, %hi(dword_CODE_bss_80075DB0)
/* 039B78 7F005048 3C028007 */ lui $v0, %hi(dword_CODE_bss_80075DB8)
/* 039B7C 7F00504C 3C038007 */ lui $v1, %hi(dword_CODE_bss_80075DC8)
/* 039B80 7F005050 AFBF001C */ sw $ra, 0x1c($sp)
/* 039B84 7F005054 AFB10018 */ sw $s1, 0x18($sp)
/* 039B88 7F005058 AFB00014 */ sw $s0, 0x14($sp)
/* 039B8C 7F00505C AC205DB0 */ sw $zero, %lo(dword_CODE_bss_80075DB0)($at)
/* 039B90 7F005060 24635DC8 */ addiu $v1, %lo(dword_CODE_bss_80075DC8) # addiu $v1, $v1, 0x5dc8
/* 039B94 7F005064 24425DB8 */ addiu $v0, %lo(dword_CODE_bss_80075DB8) # addiu $v0, $v0, 0x5db8
.L7F005068:
/* 039B98 7F005068 24420004 */ addiu $v0, $v0, 4
/* 039B9C 7F00506C 0043082B */ sltu $at, $v0, $v1
/* 039BA0 7F005070 1420FFFD */ bnez $at, .L7F005068
/* 039BA4 7F005074 AC40FFFC */ sw $zero, -4($v0)
/* 039BA8 7F005078 3C0E8003 */ lui $t6, %hi(ejected_cartridge)
/* 039BAC 7F00507C 8DCE246C */ lw $t6, %lo(ejected_cartridge)($t6)
/* 039BB0 7F005080 3C018003 */ lui $at, %hi(cartridges_eject)
/* 039BB4 7F005084 AC204C9C */ sw $zero, %lo(cartridges_eject)($at)
/* 039BB8 7F005088 3C018003 */ lui $at, %hi(D_80034CA0)
/* 039BBC 7F00508C 11C0000B */ beqz $t6, .L7F0050BC
/* 039BC0 7F005090 AC204CA0 */ sw $zero, %lo(D_80034CA0)($at)
/* 039BC4 7F005094 3C0F8003 */ lui $t7, %hi(ejected_cartridge)
/* 039BC8 7F005098 25F0246C */ addiu $s0, $t7, %lo(ejected_cartridge)
/* 039BCC 7F00509C 8E110000 */ lw $s1, ($s0)
/* 039BD0 7F0050A0 02202025 */ move $a0, $s1
.L7F0050A4:
/* 039BD4 7F0050A4 0FC1D953 */ jal fileLoad
/* 039BD8 7F0050A8 8E050004 */ lw $a1, 4($s0)
/* 039BDC 7F0050AC 8E110008 */ lw $s1, 8($s0)
/* 039BE0 7F0050B0 26100008 */ addiu $s0, $s0, 8
/* 039BE4 7F0050B4 5620FFFB */ bnezl $s1, .L7F0050A4
/* 039BE8 7F0050B8 02202025 */ move $a0, $s1
.L7F0050BC:
/* 039BEC 7F0050BC 8FBF001C */ lw $ra, 0x1c($sp)
/* 039BF0 7F0050C0 8FB00014 */ lw $s0, 0x14($sp)
/* 039BF4 7F0050C4 8FB10018 */ lw $s1, 0x18($sp)
/* 039BF8 7F0050C8 03E00008 */ jr $ra
/* 039BFC 7F0050CC 27BD0020 */ addiu $sp, $sp, 0x20
)
#endif
i = 0;
cartridges_eject = 0;
D_80034CA0 = 0;
while (ejected_cartridge[i].header != 0) {
fileLoad(ejected_cartridge[i].header, ejected_cartridge[i].text);
i++;
}
}
+1 -1
View File
@@ -2,6 +2,6 @@
#define _EJECTEDCARTRIDGES_H_
#include <ultra64.h>
void something_with_ejected_cartridges(void);
void init_ejected_cartridges(void);
#endif
+358 -1822
View File
File diff suppressed because it is too large. Load diff
+56 -42
View File
@@ -9,7 +9,7 @@
#define SMOKE_PARTS_LEN 10
#define SCORCH_BUFFER_LEN 20
#define BULLET_IMPACT_BUFFER_LEN 100
#define MAX_BULLET_CASINGS 200
#define MAX_FLYING_PARTICLES 200
typedef struct s_smoketype {
s16 duration;
@@ -71,7 +71,9 @@ struct Explosion {
u32 unk04;
struct ExplosionPart parts[EXPLOSION_PARTS_LEN];
u32 unk3C8;
u32 unk3CC;
s8 unk3CC;
u8 unk3CD;
u16 unk3CE;
u32 unk3D0;
u32 unk3D4;
u32 unk3D8;
@@ -92,7 +94,8 @@ struct SmokePart
struct Smoke {
PropRecord *prop;
u32 unk04;
s16 unk04;
s16 unk06;
struct SmokePart parts[SMOKE_PARTS_LEN]; /*0x008*/
};
@@ -132,77 +135,88 @@ struct BulletImpact {
u32 unk0C;
u32 unk10;
u32 unk14;
u16 unk14;
s8 unk16;
s8 unk17;
u32 unk18;
u32 unk1C;
u32 unk20;
u32 unk24;
u16 unk24;
s8 unk26;
s8 unk27;
u32 unk28;
u32 unk2C;
u32 unk30;
u32 unk34;
u16 unk34;
s8 unk36;
s8 unk37;
u32 unk38;
u32 unk3C;
u32 unk40;
u32 unk44;
u16 unk44;
s8 unk46;
s8 unk47;
u32 unk48;
u32 unk4C;
s8 unk4C;
s8 unk4D;
s16 unk4E;
};
struct EjectedCasing {
struct FlyingParticles_unk38 {
s16 unk00;
s16 unk02;
s16 unk04;
s16 unk06;
s16 unk08;
s16 unk0A;
s8 unk0C;
s8 unk0D;
s8 unk0E;
u8 unk0F;
};
struct FlyingParticles {
s32 unk00;
u32 unk04;
u32 unk08;
u32 unk0C;
u32 unk10;
u32 unk14;
u32 unk18;
u32 unk1C;
// coord3d?
f32 x;
f32 y;
f32 z;
u32 unk20;
u32 unk24;
u32 unk28;
u32 unk2C;
// coord3d?
f32 unk10;
f32 unk14;
f32 unk18;
u32 unk30;
u32 unk34;
u32 unk38;
u32 unk3C;
// coord3d?
f32 unk1C;
f32 unk20;
f32 unk24;
u32 unk40;
u32 unk44;
u32 unk48;
u32 unk4C;
// coord3d?
f32 unk28;
f32 unk2C;
f32 unk30;
u32 unk50;
u32 unk54;
u32 unk58;
u32 unk5C;
s32 unk34;
u32 unk60;
u32 unk64;
u32 unk68;
u32 unk6C;
u32 unk70;
u32 unk74;
struct FlyingParticles_unk38 unk38[4];
};
extern f32 D_80040178;
extern char dword_CODE_bss_8007A100[];
extern struct Smoke *ptr_smoke_buf;
extern struct Explosion *ptr_explosion_buf;
extern s32 max_casings;
extern struct EjectedCasing *ptr_ejected_casing_buf;
extern s32 max_particles;
extern struct FlyingParticles *ptr_flying_particles_buf;
extern struct Scorch *ptr_scorch_buf;
extern struct BulletImpact *ptr_bullet_impact_buf;
extern s32 numExplosionEntries;
extern s32 numSmokeEntries;
extern s32 numCasingEntries;
extern s32 numParticleEntries;
extern s32 numScorchEntries;
extern s32 numImpactEntries;
-59
View File
@@ -3,65 +3,6 @@
#include "file2.h"
#include "front.h"
/* EEPROM masks for in-game settings */
#define OPTION_INVERTLOOK 0x0001
#define OPTION_AUTOAIM 0x0002
#define OPTION_AIMCONTROL 0x0004
#define OPTION_SIGHTONSCREEN 0x0008
#define OPTION_LOOKAHEAD 0x0010
#define OPTION_DISPLAYAMMO 0x0020
#define OPTION_SCREENWIDE 0x0040
#define OPTION_SCREENRATIO 0x0080
#define OPTION_CONTROLTYPE 0x0700
#define OPTION_SCREENCINEMA 0x0800
#define DEFAULT_OPTIONS (OPTION_AUTOAIM | OPTION_SIGHTONSCREEN | OPTION_LOOKAHEAD | OPTION_DISPLAYAMMO)
// bss
//CODE.bss:80069920
//CODE.bss:80069980
//CODE.bss:800699E0
//CODE.bss:80069A40
//CODE.bss:80069AA0
//CODE.bss:80069B00
save_data saves[6];
//CODE.bss:80069B60
u32 dword_CODE_bss_80069B60;
//data
//D:8002C510
s32 save_selected_bond[] = {0,0,0,0};
//D:8002C520
save_data D_8002C520 = {0, 0, 0x80, 0x00, 0xFF, 0xFF, DEFAULT_OPTIONS, 0x00, 0x00, 0, 0, 0, 0, 0};
//D:8002C580
// Default Save
save_data D_8002C580 = {0, 0, 0x80, 0x00, 0xFF, 0xFF, DEFAULT_OPTIONS, 0x00, 0x00, 0, 0, 0, 0, 0};
//D:8002C5E0
save_data D_8002C5E0 = {0, 0, 0x80, 0x00, 0xFF, 0xFF, DEFAULT_OPTIONS, 0x00, 0x00, 0, 0, 0, 0, 0};
//D:8002C640
smallSave blankSmallSave = {0, 0, 0x42};
//D:8002C660
save_data D_8002C660 = {0, 0, 0x80, 0x00, 0xFF, 0xFF, DEFAULT_OPTIONS, 0x00, 0x00, 0, 0, 0, 0, 0};
//D:8002C6C0
save_data D_8002C6C0 = {0, 0, 0x80, 0x00, 0xFF, 0xFF, DEFAULT_OPTIONS, 0x00, 0x00, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
//D:8002C720
save_data D_8002C720 = {0, 0, 0x80, 0x00, 0xFF, 0xFF, DEFAULT_OPTIONS, 0x00, 0x00, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
//D:8002C780
save_data D_8002C780 = {0, 0, 0x80, 0x00, 0xFF, 0xFF, DEFAULT_OPTIONS, 0x00, 0x00, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
//D:8002C7E0
save_data D_8002C7E0 = {0, 0, 0x80, 0x00, 0xFF, 0xFF, DEFAULT_OPTIONS, 0x00, 0x00, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
//D:8002C840
save_data D_8002C840 = {0, 0, 0x80, 0x00, 0xFF, 0xFF, DEFAULT_OPTIONS, 0x00, 0x00, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
//D:8002C8A0
save_data blank_eeprom = {0, 0, 0x80, 0x00, 0xFF, 0xFF, DEFAULT_OPTIONS, 0x00, 0x00, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
f32 get_007_reaction_speed(void)
{
if (lvlGetSelectedDifficulty() == DIFFICULTY_007) {
+63 -18
View File
@@ -8,6 +8,51 @@
#include "file2.h"
#include "front.h"
// bss
//CODE.bss:80069920
//CODE.bss:80069980
//CODE.bss:800699E0
//CODE.bss:80069A40
//CODE.bss:80069AA0
//CODE.bss:80069B00
save_data saves[6];
//CODE.bss:80069B60
u32 dword_CODE_bss_80069B60;
//data
//D:8002C510
s32 save_selected_bond[] = {0,0,0,0};
//D:8002C520
save_data D_8002C520 = {0, 0, 0x80, 0x00, 0xFF, 0xFF, DEFAULT_OPTIONS, 0x00, 0x00, 0, 0, 0, 0, 0};
//D:8002C580
// Default Save
save_data D_8002C580 = {0, 0, 0x80, 0x00, 0xFF, 0xFF, DEFAULT_OPTIONS, 0x00, 0x00, 0, 0, 0, 0, 0};
//D:8002C5E0
save_data D_8002C5E0 = {0, 0, 0x80, 0x00, 0xFF, 0xFF, DEFAULT_OPTIONS, 0x00, 0x00, 0, 0, 0, 0, 0};
//D:8002C640
smallSave blankSmallSave = {0, 0, 0x42};
//D:8002C660
save_data D_8002C660 = {0, 0, 0x80, 0x00, 0xFF, 0xFF, DEFAULT_OPTIONS, 0x00, 0x00, 0, 0, 0, 0, 0};
//D:8002C6C0
save_data D_8002C6C0 = {0, 0, 0x80, 0x00, 0xFF, 0xFF, DEFAULT_OPTIONS, 0x00, 0x00, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
//D:8002C720
save_data D_8002C720 = {0, 0, 0x80, 0x00, 0xFF, 0xFF, DEFAULT_OPTIONS, 0x00, 0x00, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
//D:8002C780
save_data D_8002C780 = {0, 0, 0x80, 0x00, 0xFF, 0xFF, DEFAULT_OPTIONS, 0x00, 0x00, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
//D:8002C7E0
save_data D_8002C7E0 = {0, 0, 0x80, 0x00, 0xFF, 0xFF, DEFAULT_OPTIONS, 0x00, 0x00, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
//D:8002C840
save_data D_8002C840 = {0, 0, 0x80, 0x00, 0xFF, 0xFF, DEFAULT_OPTIONS, 0x00, 0x00, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
//D:8002C8A0
save_data blank_eeprom = {0, 0, 0x80, 0x00, 0xFF, 0xFF, DEFAULT_OPTIONS, 0x00, 0x00, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
/**
*
*
@@ -595,9 +640,9 @@ bool fileIsFolderValid(s32 folder)
* @param foldernum
* @param stage
* @param difficulty
* @return 0, 1, or 3
* @return 0, 1, or 3 (STAGESTATUS_LOCKED, STAGESTATUS_UNLOCKED, STAGESTATUS_COMPLETED)
*/
s32 fileIsStageUnlockedAtDifficulty(s32 foldernum, LEVEL_SOLO_SEQUENCE stage, DIFFICULTY difficulty)
STAGESTATUS fileIsStageUnlockedAtDifficulty(s32 foldernum, LEVEL_SOLO_SEQUENCE stage, DIFFICULTY difficulty)
{
save_data* save;
s32 i;
@@ -612,13 +657,13 @@ s32 fileIsStageUnlockedAtDifficulty(s32 foldernum, LEVEL_SOLO_SEQUENCE stage, DI
{
if ( fileGetSaveStageCompletedForDifficulty(save, stage, difficulty))
{
return 3; //found on first try, we are last completed stage
return STAGESTATUS_COMPLETED; //found on first try, stage has been completed and a time saved.
}
if ((stage == SP_LEVEL_AZTEC && difficulty < DIFFICULTY_SECRET) ||
(stage == SP_LEVEL_EGYPT && difficulty < DIFFICULTY_00))
{
return 0; //we cant possibly have a completed bonus stage below each set dificulty
return STAGESTATUS_LOCKED; //we cant possibly have a completed bonus stage below each set dificulty
}
//still cant find it, do a search (this is probably how a cheat can unlock stages without having to actualy do them all)
@@ -635,7 +680,7 @@ s32 fileIsStageUnlockedAtDifficulty(s32 foldernum, LEVEL_SOLO_SEQUENCE stage, DI
//if the first uncomplete stage is not less than current
if (stage <= istage)
{
return 1;
return STAGESTATUS_UNLOCKED;
}
}
@@ -646,7 +691,7 @@ s32 fileIsStageUnlockedAtDifficulty(s32 foldernum, LEVEL_SOLO_SEQUENCE stage, DI
{
if ( fileGetSaveStageCompletedForDifficulty(save, stage - 1, i))
{
return 1;
return STAGESTATUS_UNLOCKED;
}
}
}
@@ -673,7 +718,7 @@ s32 fileIsStageUnlockedAtDifficulty(s32 foldernum, LEVEL_SOLO_SEQUENCE stage, DI
if (difficulty <= i)
{
return 1;
return STAGESTATUS_UNLOCKED;
}
}
}// difficulty < DIFFICULTY_007
@@ -682,23 +727,23 @@ s32 fileIsStageUnlockedAtDifficulty(s32 foldernum, LEVEL_SOLO_SEQUENCE stage, DI
// no save, current level is dam, its unlocked.
if (stage == SP_LEVEL_DAM)
{
return 1;
return STAGESTATUS_UNLOCKED;
}
// no save, cheat enabled, its unlocked.
if (get_debug_enable_agent_levels_flag() && difficulty == DIFFICULTY_AGENT)
{
return 1;
return STAGESTATUS_UNLOCKED;
}
// no save, cheat enabled, its unlocked. (basically a repeat of above)
if (get_debug_enable_all_levels_flag())
{
return 1;
return STAGESTATUS_UNLOCKED;
}
}
// After all that the stage is not unlocked
return 0;
return STAGESTATUS_LOCKED;
}
/**
@@ -874,7 +919,7 @@ LEVEL_SOLO_SEQUENCE fileGetHighestStageUnlockedForFolder(s32 foldernum)
}
}
}
return 0;
return SP_LEVEL_DAM;
}
/**
@@ -908,9 +953,9 @@ LEVEL_SOLO_SEQUENCE fileGetHighestStageUnlockedAnyFolder(void)
*/
bool fileIsCradleCompletedForFolder(s32 folder)
{
return ( fileIsStageUnlockedAtDifficulty(folder, SP_LEVEL_CRADLE, DIFFICULTY_AGENT) == 3) ||
( fileIsStageUnlockedAtDifficulty(folder, SP_LEVEL_CRADLE, DIFFICULTY_SECRET) == 3) ||
( fileIsStageUnlockedAtDifficulty(folder, SP_LEVEL_CRADLE, DIFFICULTY_00) == 3);
return (fileIsStageUnlockedAtDifficulty(folder, SP_LEVEL_CRADLE, DIFFICULTY_AGENT) == STAGESTATUS_COMPLETED) ||
(fileIsStageUnlockedAtDifficulty(folder, SP_LEVEL_CRADLE, DIFFICULTY_SECRET) == STAGESTATUS_COMPLETED) ||
(fileIsStageUnlockedAtDifficulty(folder, SP_LEVEL_CRADLE, DIFFICULTY_00) == STAGESTATUS_COMPLETED);
}
/**
@@ -921,8 +966,8 @@ bool fileIsCradleCompletedForFolder(s32 folder)
*/
bool fileIsAztecCompletedOnSecretOr00ForFolder(s32 folder)
{
return ( fileIsStageUnlockedAtDifficulty(folder, SP_LEVEL_AZTEC, DIFFICULTY_SECRET) == 3) ||
( fileIsStageUnlockedAtDifficulty(folder, SP_LEVEL_AZTEC, DIFFICULTY_00) == 3);
return (fileIsStageUnlockedAtDifficulty(folder, SP_LEVEL_AZTEC, DIFFICULTY_SECRET) == STAGESTATUS_COMPLETED) ||
(fileIsStageUnlockedAtDifficulty(folder, SP_LEVEL_AZTEC, DIFFICULTY_00) == STAGESTATUS_COMPLETED);
}
/**
@@ -933,7 +978,7 @@ bool fileIsAztecCompletedOnSecretOr00ForFolder(s32 folder)
*/
bool fileIsEgyptCompletedOn00ForFolder(int foldernum)
{
return fileIsStageUnlockedAtDifficulty(foldernum, SP_LEVEL_EGYPT, DIFFICULTY_00) == 3;
return fileIsStageUnlockedAtDifficulty(foldernum, SP_LEVEL_EGYPT, DIFFICULTY_00) == STAGESTATUS_COMPLETED;
}
/**
+16 -1
View File
@@ -8,10 +8,25 @@
#define RAMROM_FOLDERNUM 0x64
/* EEPROM masks for in-game settings */
#define OPTION_INVERTLOOK 0x0001
#define OPTION_AUTOAIM 0x0002
#define OPTION_AIMCONTROL 0x0004
#define OPTION_SIGHTONSCREEN 0x0008
#define OPTION_LOOKAHEAD 0x0010
#define OPTION_DISPLAYAMMO 0x0020
#define OPTION_SCREENWIDE 0x0040
#define OPTION_SCREENRATIO 0x0080
#define OPTION_CONTROLTYPE 0x0700
#define OPTION_SCREENCINEMA 0x0800
#define DEFAULT_OPTIONS (OPTION_AUTOAIM | OPTION_SIGHTONSCREEN | OPTION_LOOKAHEAD | OPTION_DISPLAYAMMO)
u8 fileGetBondForFolder(u32 folder);
void fileValidateSaves(void);
bool fileGetIsCheatUnlocked(save_data *save, s32 cheat);
s32 fileIsStageUnlockedAtDifficulty(s32 foldernum, LEVEL_SOLO_SEQUENCE stage, DIFFICULTY difficulty);
STAGESTATUS fileIsStageUnlockedAtDifficulty(s32 foldernum, LEVEL_SOLO_SEQUENCE stage, DIFFICULTY difficulty);
void fileUnlockStageInFolderAtDifficulty(s32 foldernum, LEVEL_SOLO_SEQUENCE stage, DIFFICULTY difficulty, s32 newtime);
void sub_GAME_7F01E760(s32 foldernum, s32 cheat);
void fileLoadSettingsForFolder(u32 folder);
+976 -1272
View File
File diff suppressed because it is too large. Load diff
+15 -40
View File
@@ -154,9 +154,9 @@ extern f32 flt_CODE_bss_8006960C;
//CODE.bss:80069610
extern f32 flt_CODE_bss_80069610;
//CODE.bss:80069614
extern f32 flt_CODE_bss_80069614;
extern f32 ninLogoRotRate;
//CODE.bss:80069618
extern f32 flt_CODE_bss_80069618;
extern f32 ninLogoScale;
//CODE.bss:80069620
extern coord3d dword_CODE_bss_80069620[0x4];
@@ -179,13 +179,7 @@ extern s32 mp_char_prev_select_player[4];
extern s32 dword_CODE_bss_80069730[4];
//CODE.bss:80069740
extern s32 has_selected_char_player1;
//CODE.bss:80069744
extern s32 has_selected_char_player2;
//CODE.bss:80069748
extern s32 has_selected_char_player3;
//CODE.bss:8006974C
extern s32 has_selected_char_player4;
extern s32 player_has_selected_char[];
//CODE.bss:80069750
extern s32 size_mp_select_image_player1;
//CODE.bss:80069754
@@ -195,13 +189,7 @@ extern s32 size_mp_select_image_player3;
//CODE.bss:8006975C
extern s32 size_mp_select_image_player4;
//CODE.bss:80069760
extern s32 handicap_player1;
//CODE.bss:80069764
extern s32 handicap_player2;
//CODE.bss:80069768
extern s32 handicap_player3;
//CODE.bss:8006976C
extern s32 handicap_player4;
extern s32 player_handicap[];
//CODE.bss:80069770
extern char* g_textPtrTAB1;
//CODE.bss:80069774
@@ -230,13 +218,7 @@ extern s32 highlight_enemy_damage;
//CODE.bss:800697A4 .align 3
//CODE.bss:800697A8
extern s32 handicap_player1;
//CODE.bss:800697AC
extern s32 handicap_player2;
//CODE.bss:800697B0
extern s32 handicap_player3;
//CODE.bss:800697B4
extern s32 handicap_player4;
extern s32 player_handicap[];
//CODE.bss:800697B8
extern u32 controlstyle_player[];
@@ -267,13 +249,13 @@ CODE.bss:800697F0 dword_CODE_bss_800697F0:.space 0x130
extern MENU current_menu;
extern MENU menu_update;
extern MENU maybe_prev_menu;
extern s32 menu_timer;
extern s32 tab_1_selected;
extern s32 tab_2_selected;
extern s32 tab_3_selected;
extern s32 tab_1_highlight;
extern s32 tab_2_highlight;
extern s32 tab_3_highlight;
extern s32 g_MenuTimer;
extern s32 tab_start_selected;
extern s32 tab_next_selected;
extern s32 tab_prev_selected;
extern s32 tab_start_highlight;
extern s32 tab_next_highlight;
extern s32 tab_prev_highlight;
extern f32 tab2_first_x_coord;
extern f32 tab1_max_x_coord;
@@ -286,7 +268,7 @@ extern s32 selected_stage;
extern s32 briefingpage;
extern DIFFICULTY selected_difficulty;
extern s32 g_AppendCheatSinglePlayer;
extern s32 append_cheat_mp;
extern s32 g_AppendCheatMultiPlayer;
extern f32 cursor_h_pos;
extern f32 cursor_v_pos;
extern s32 final_menu_briefing_page;
@@ -307,11 +289,7 @@ extern s32 is_emulating_spectrum;
extern s32 is_cheat_menu_available;
extern Gfx * ptr_logo_and_walletbond_DL;
extern s32 ptr_menu_videobuffer;
extern struct object_standard * ptr_folder_object_instance;
extern s32 set0_never_used;
extern s32 set0_never_used_0;
extern s32 D_8002A968;
extern s32 dword_D_8002A96C;
extern Model * walletinst[];
extern struct rgba_u8 RGBA_8002A970;
extern struct rgba_u8 RGBA_8002A974;
extern struct rgba_u8 RGBA_8002A978;
@@ -333,10 +311,7 @@ extern f32 slider_007_mode_accuracy;
extern struct mission_folder_setup mission_folder_setup_entries[];
extern s32 selected_num_players;
extern s32 player_1_char;
extern s32 player_2_char;
extern s32 player_3_char;
extern s32 player_4_char;
extern s32 player_char[];
extern s32 MP_stage_selected;
extern s32 game_length;
extern s32 aim_sight_adjustment;
+1302 -8925
View File
File diff suppressed because it is too large. Load diff
+76 -10
View File
@@ -183,6 +183,33 @@ typedef struct WeaponStats
u32 BitFlags;
} WeaponStats;
typedef struct AmmoStats {
/**
* The maximum amount of ammo.
*/
u32 MaxAmmo;
/**
* Unknown (field 0x04).
*/
u16 field_04;
/**
* Unknown (field 0x06).
*/
u16 field_06;
/**
* Unknown (field 0x08).
*/
u16 field_08;
/**
* Unknown (field 0x0A).
*/
u16 field_0A;
} AmmoStats;
typedef struct GunModelFileRecord
{
ModelFileHeader * item_header;
@@ -203,16 +230,50 @@ typedef struct GunModelFileRecord
f32 equip_watch_z;
} GunModelFileRecord;
typedef struct CasingRecord {
f32 unk00;
coord3d pos;
coord3d vel;
#if VERSION_EU
f32 unk1C[3][3];
f32 unk40[3][3];
#else
Mtxf unk1C;
Mtxf unk5C;
#endif
ModelFileHeader *header;
} CasingRecord;
typedef struct CartridgeModelFileRecord {
ModelFileHeader* header;
char * text;
} CartridgeModelFileRecord;
#if defined(VERSION_EU)
extern char dword_CODE_bss_80075DC8[20][104];
#else
extern char dword_CODE_bss_80075DC8[20][160];
#endif
struct RicochetSoundsSmall {
u16 arr[20];
};
struct PunchSounds {
u16 arr[3];
};
struct BulletFleshSounds {
u16 arr[2];
};
struct LaserRichochetSounds {
u16 arr[2];
};
struct RicochetSoundsLarge {
u16 arr[36];
};
struct EarWhistleSounds {
s16 arr[5];
};
extern CasingRecord g_Casings[20];
f32 bondwalkItemGetForceOfImpact(ITEM_IDS item);
@@ -232,7 +293,7 @@ void display_in_game_crosshair(s32 *gdl);
WeaponStats *get_ptr_item_statistics(ITEM_IDS item);
s32 getCurrentPlayerWeaponId(GUNHAND hand);
ITEM_IDS getCurrentPlayerWeaponId(GUNHAND hand);
s32 currentPlayerEquipWeaponWrapper(GUNHAND hand, s32 next_weapon);
void sub_GAME_7F068E6C(void);
void attempt_reload_item_in_hand(GUNHAND hand);
@@ -249,8 +310,8 @@ f32 bondwalkItemGetDestructionAmount(ITEM_IDS item);
u16 bondwalkItemGetSound(ITEM_IDS item);
u8 bondwalkItemGetSoundTriggerRate(ITEM_IDS item);
void recall_joy2_hits_edit_detail_edit_flag(s32 arg0, u8 *arg1, s32 arg2);
void recall_joy2_hits_edit_flag(s32 arg0, coord3d *arg1, s32 arg2);
void recall_joy2_hits_edit_detail_edit_flag(enum ITEM_IDS item, PropRecord* prop, s32 texture_index);
void recall_joy2_hits_edit_flag(enum ITEM_IDS item, coord3d* arg1, s32 texture_index);
void sub_GAME_7F05EB0C(ObjectRecord *arg0, coord3d *arg1, StandTile *arg2, Mtxf *arg3, coord3d *arg4, Mtxf *arg5, PropRecord *arg6);
void sub_GAME_7F061948(struct ChrRecord_f180 *arg0, ITEM_IDS item, coord3d *arg2, coord3d *arg3);
void sub_GAME_7F068190(coord3d *arg0, coord3d *arg1);
@@ -259,12 +320,17 @@ void inc_curplayer_hitcount_with_weapon(ITEM_IDS item, SHOT_REGISTER shot_regist
s8 get_hands_firing_status(GUNHAND hand);
void gunFireTankShell(s32 hand);
void remove_item_in_hand(GUNHAND hand);
void currentPlayerUnEquipWeaponWrapper(GUNHAND hand, s32 weapid);
void currentPlayerUnEquipWeaponWrapper(enum GUNHAND hand, enum ITEM_IDS weapid);
s32 currentPlayerGetAmmoCount(AMMOTYPE ammotype);
s32 get_civilian_casualties(void);
s32 Gun_hand_without_item(enum GUNHAND arg0);
void sub_GAME_7F05FB00(enum GUNHAND hand);
void bgunCalculateBlend(s32 arg0);
void bgunCalculateBlend(enum GUNHAND handnum);
void gunSetBondWeaponSway(f32 arg0, f32 arg1, f32 speed_verta, f32 speed_theta);
void gunSetOffsetRelated(f32 param_1);
s32 get_curplayer_shot_register(SHOT_REGISTER shot_register);
void get_bullet_angle(f32* horizontal_angle, f32* vertical_angle);
#endif
+2119 -6235
View File
File diff suppressed because it is too large. Load diff
+83 -12
View File
@@ -3,22 +3,93 @@
#include <ultra64.h>
#include <bondconstants.h>
struct image_entry
{
HIT_TYPE hitSound : 4; //HitType-Sound
HIT_TYPE hitTexture : 4; //HitType-Texture
s32 size : 24; //this is u32 Size:24 - 24bit size/address
char flag3; //Detailflag1 used once with value 0x38D2 (S/T offset of detail)
char flag4; //DetailFlag2 difference from detail image, to large image, in terms of 2 to the power of value. It is subtracted from the small one, and absolute value or something. (Zoinkity)
char flag5; //padding
char flag6; //padding
#define TEXFORMAT_RGBA32 0x00 // 32-bit RGBA (8/8/8/8)
#define TEXFORMAT_RGBA16 0x01 // 16-bit RGBA (5/5/5/1)
#define TEXFORMAT_RGB24 0x02 // 24-bit RGB (8/8/8)
#define TEXFORMAT_RGB15 0x03 // 15-bit RGB (5/5/5)
#define TEXFORMAT_IA16 0x04 // 16-bit grayscale+alpha
#define TEXFORMAT_IA8 0x05 // 8-bit grayscale+alpha (4/4)
#define TEXFORMAT_IA4 0x06 // 4-bit grayscale+alpha (3/1)
#define TEXFORMAT_I8 0x07 // 8-bit grayscale
#define TEXFORMAT_I4 0x08 // 4-bit grayscale
#define TEXFORMAT_RGBA16_CI8 0x09 // 16-bit 5551 paletted colour with 8-bit palette indexes
#define TEXFORMAT_RGBA16_CI4 0x0a // 16-bit 5551 paletted colour with 4-bit palette indexes
#define TEXFORMAT_IA16_CI8 0x0b // 16-bit 88 paletted greyscale+alpha with 8-bit palette indexes
#define TEXFORMAT_0C 0x0c
#define TEXCOMPMETHOD_UNCOMPRESSED0 0
#define TEXCOMPMETHOD_UNCOMPRESSED1 1
#define TEXCOMPMETHOD_HUFFMAN 2
#define TEXCOMPMETHOD_HUFFMANPERHCHANNEL 3
#define TEXCOMPMETHOD_RLE 4
#define TEXCOMPMETHOD_LOOKUP 5
#define TEXCOMPMETHOD_HUFFMANLOOKUP 6
#define TEXCOMPMETHOD_RLELOOKUP 7
#define TEXCOMPMETHOD_HUFFMANBLUR 8
#define TEXCOMPMETHOD_RLEBLUR 9
struct texpool {
u8 *start;
struct tex *end;
u8 *leftpos;
struct tex *rightpos;
};
extern s32 ptr_texture_alloc_start;
extern struct image_entry image_entries[];
extern s32 dword_CODE_bss_8008D090;
struct tex {
/*0x00*/ u16 texturenum : 12;
/*0x00*/ u16 unk00_0c : 4;
/*0x04*/ u8* data;
/*0x08*/ u8 width;
/*0x09*/ u8 height;
/*0x0a*/ u8 unk0a;
/*0x0b*/ u8 maxlod : 3;
/*0x0b*/ u8 gbiformat : 3;
/*0x0b*/ u8 depth : 2;
/*0x0c*/ u32 lutmodeindex : 2;
/*0x0c*/ u32 unk0c_02 : 1;
/*0x0c*/ u32 unk0c_03 : 1;
/*0x0c*/ u32 next : 24;
};
struct image_entry
{
u8 hitSound : 4; // HitType-Sound (should be enum HIT_TYPE, but it needs to be unsigned)
HIT_TYPE hitTexture : 4; // HitType-Texture
u32 dataoffset : 24; // this is u32 Size:24 - 24bit size/address
u32 flag3 : 4; // Detailflag1 used once with value 0x38D2 (S/T offset of detail)
u32 flag4 : 4;
u32 flag5 : 4; // DetailFlag2 difference from detail image, to large image, in terms of 2 to the power of value. It is subtracted from the small one, and absolute value or something. (Zoinkity)
u32 flag6 : 4;
};
struct texcacheitem {
s16 texturenum;
u8 widths[7];
u8 heights[7];
};
extern struct texcacheitem g_TexCacheItems[];
extern struct texpool *ptr_texture_alloc_start;
extern struct image_entry g_Textures[];
extern s32 g_TexCacheCount;
extern u32 bytes;
void nullsub_41(s32 arg0);
void texInflateHuffman(u8 *dst, s32 numiterations, s32 chansize);
void texInflateRle(u8 *dst, s32 blockstotal);
void texReadAlphaBits(u8 *image,s32 count);
void texSwapAltRowBytes(u8 *dst, s32 width, s32 height, s32 format);
void texBlur(u8 *pixels, s32 width, s32 height, s32 method, s32 chansize);
s32 texAlignIndices(u8 *src, s32 width, s32 height, s32 format, u8 *dst);
s32 texFindClosestColourIndexRGBA(u16 *palette, s32 numcolours, s32 r, s32 g, s32 b, s32 a);
s32 texFindClosestColourIndexIA(u16 *palette, s32 numcolours, s32 intensity, s32 alpha);
s32 texShrinkPaletted(u8 *src, u8 *dst, s32 srcwidth, s32 srcheight, s32 format, u16 *palette, s32 numcolours);
struct tex *texFindInPool(s32 texturenum, struct texpool *arg1);
s32 texFreeBytesInBuffer(struct texpool *arg0);
s32 texInflateNonZlib(u8 *src, u8 *dst, s32 arg2, s32 forcenumimages, struct texpool *arg4);
s32 texInflateZlib(u8 *src, u8 *dst, s32 arg2, s32 forcenumimages, struct texpool *arg4);
void texLoad(s32 *updateword, struct texpool *pool);
void texInitPool(struct texpool *arg0, u8 *arg1, s32 arg2);
#endif
+68 -397
View File
@@ -85,7 +85,7 @@ struct sImageTableEntry *mpstageselimages;
extern u8* _GlobalimagetableSegmentRomStart;
void makeemptyimageatpos(s32 pos) {
void texSetBitstring(s32 pos) {
img_curpos = pos;
img_curdatatable = 0;
img_bitcount = 0;
@@ -93,7 +93,7 @@ void makeemptyimageatpos(s32 pos) {
u32 extractImageBitCount(s32 bitCount)
u32 texReadBits(s32 bitCount)
{
if (img_bitcount < bitCount)
{
@@ -164,407 +164,78 @@ extern Gfx* globalDL_0x900;
extern Gfx* globalDL_0x9a8;
extern Gfx* globalDL_0xa50;
#ifdef NONMATCHING
void load_prepare_global_image_bank(void)
void texReset(void)
{
s32 size;
u32 size;
s32 i;
size = &_GlobalimagetableSegmentEnd - &_GlobalimagetableSegmentStart;
pGlobalimagetable = ((mempAllocBytesInBank((size + 0x1000), 4) + 0xfff) & -0x1000);
romCopy(pGlobalimagetable, &_GlobalimagetableSegmentRomStart, size);
globalbank_rdram_offset = pGlobalimagetable + 0xFE000000;;
genericimage = (void *) (globalbank_rdram_offset + &s_genericimage);
impactimages = (void *) (globalbank_rdram_offset + &s_impactimages);
explosion_smokeimages = (void *) (globalbank_rdram_offset + &s_explosion_smokeimages);
scattered_explosions = (void *) (globalbank_rdram_offset + &s_scattered_explosions);
flareimage1 = (void *) (globalbank_rdram_offset + &s_flareimage1);
flareimage2 = (void *) (globalbank_rdram_offset + &s_flareimage2);
flareimage3 = (void *) (globalbank_rdram_offset + &s_flareimage3);
flareimage4 = (void *) (globalbank_rdram_offset + &s_flareimage4);
flareimage5 = (void *) (globalbank_rdram_offset + &s_flareimage5);
ammo9mmimage = (void *) (globalbank_rdram_offset + &s_ammo9mmimage);
rifleammoimage = (void *) (globalbank_rdram_offset + &s_rifleammoimage);
shotgunammoimage = (void *) (globalbank_rdram_offset + &s_shotgunammoimage);
knifeammoimage = (void *) (globalbank_rdram_offset + &s_knifeammoimage);
glaunchammoimage = (void *) (globalbank_rdram_offset + &s_glammoimage);
rocketammoimage = (void *) (globalbank_rdram_offset + &s_rocketammoimage);
genericmineammoimage = (void *) (globalbank_rdram_offset + &s_genericmineammoimage);
grenadeammoimage = (void *) (globalbank_rdram_offset + &s_grenadeammoimage);
magnumammoimage = (void *) (globalbank_rdram_offset + &s_magnumammoimage);
goldengunammoimage = (void *) (globalbank_rdram_offset + &s_goldengunammoimage);
remotemineammoimage = (void *) (globalbank_rdram_offset + &s_remotemineammoimage);
timedmineammoimage = (void *) (globalbank_rdram_offset + &s_timedmineammoimage);
proxmineammoimage = (void *) (globalbank_rdram_offset + &s_proxmineammoimage);
tankammoimage = (void *) (globalbank_rdram_offset + &s_tankammoimage);
crosshairimage = (void *) (globalbank_rdram_offset + &s_crosshairimage);
betacrosshairimage = (void *) (globalbank_rdram_offset + &s_betacrosshairimage);
glassoverlayimage = (void *) (globalbank_rdram_offset + &s_glassoverlayimage);
monitorimages = (void *) (globalbank_rdram_offset + &s_monitorimages);
skywaterimages = (void *) (globalbank_rdram_offset + &s_skywaterimages);
mainfolderimages = (void *) (globalbank_rdram_offset + &s_mainfolderimages);
mpradarimages = (void *) (globalbank_rdram_offset + &s_mpradarimages);
mpcharselimages = (void *) (globalbank_rdram_offset + &s_mpcharselimages);
mpstageselimages = (void *) (globalbank_rdram_offset + &s_mpstageselimages);
check_load_image_to_buffer(globalbank_rdram_offset + &globalDL_0x000, 0);
check_load_image_to_buffer(globalbank_rdram_offset + &globalDL_0x078, 0);
check_load_image_to_buffer(globalbank_rdram_offset + &globalDL_0x120, 0);
check_load_image_to_buffer(globalbank_rdram_offset + &globalDL_0x1c8, 0);
check_load_image_to_buffer(globalbank_rdram_offset + &globalDL_0x270, 0);
check_load_image_to_buffer(globalbank_rdram_offset + &globalDL_0x318, 0);
check_load_image_to_buffer(globalbank_rdram_offset + &globalDL_0x3c0, 0);
check_load_image_to_buffer(globalbank_rdram_offset + &globalDL_0x468, 0);
check_load_image_to_buffer(globalbank_rdram_offset + &globalDL_0x510, 0);
check_load_image_to_buffer(globalbank_rdram_offset + &globalDL_0x5b8, 0);
check_load_image_to_buffer(globalbank_rdram_offset + &globalDL_0x660, 0);
check_load_image_to_buffer(globalbank_rdram_offset + &globalDL_0x708, 0);
check_load_image_to_buffer(globalbank_rdram_offset + &globalDL_0x7b0, 0);
check_load_image_to_buffer(globalbank_rdram_offset + &globalDL_0x858, 0);
check_load_image_to_buffer(globalbank_rdram_offset + &globalDL_0x900, 0);
check_load_image_to_buffer(globalbank_rdram_offset + &globalDL_0x9a8, 0);
check_load_image_to_buffer(globalbank_rdram_offset + &globalDL_0xa50, 0);
load_image_to_buffer(genericimage, 0);
size = (u32)&_GlobalimagetableSegmentEnd - (u32)&_GlobalimagetableSegmentStart;
pGlobalimagetable = mempAllocBytesInBank(size + 0x1000, 4U);
pGlobalimagetable = ((u32)pGlobalimagetable + 0xFFFU) & 0xFFFFF000;
for (i=0; i<0x48; i+=0xC)
romCopy(pGlobalimagetable, &_GlobalimagetableSegmentRomStart, size);
globalbank_rdram_offset = (u32)pGlobalimagetable + 0xFE000000;
genericimage = (void *) (globalbank_rdram_offset + (u32)&s_genericimage);
impactimages = (void *) (globalbank_rdram_offset + (u32)&s_impactimages);
explosion_smokeimages = (void *) (globalbank_rdram_offset + (u32)&s_explosion_smokeimages);
scattered_explosions = (void *) (globalbank_rdram_offset + (u32)&s_scattered_explosions);
flareimage1 = (void *) (globalbank_rdram_offset + (u32)&s_flareimage1);
flareimage2 = (void *) (globalbank_rdram_offset + (u32)&s_flareimage2);
flareimage3 = (void *) (globalbank_rdram_offset + (u32)&s_flareimage3);
flareimage4 = (void *) (globalbank_rdram_offset + (u32)&s_flareimage4);
flareimage5 = (void *) (globalbank_rdram_offset + (u32)&s_flareimage5);
ammo9mmimage = (void *) (globalbank_rdram_offset + (u32)&s_ammo9mmimage);
rifleammoimage = (void *) (globalbank_rdram_offset + (u32)&s_rifleammoimage);
shotgunammoimage = (void *) (globalbank_rdram_offset + (u32)&s_shotgunammoimage);
knifeammoimage = (void *) (globalbank_rdram_offset + (u32)&s_knifeammoimage);
glaunchammoimage = (void *) (globalbank_rdram_offset + (u32)&s_glammoimage);
rocketammoimage = (void *) (globalbank_rdram_offset + (u32)&s_rocketammoimage);
genericmineammoimage = (void *) (globalbank_rdram_offset + (u32)&s_genericmineammoimage);
grenadeammoimage = (void *) (globalbank_rdram_offset + (u32)&s_grenadeammoimage);
magnumammoimage = (void *) (globalbank_rdram_offset + (u32)&s_magnumammoimage);
goldengunammoimage = (void *) (globalbank_rdram_offset + (u32)&s_goldengunammoimage);
remotemineammoimage = (void *) (globalbank_rdram_offset + (u32)&s_remotemineammoimage);
timedmineammoimage = (void *) (globalbank_rdram_offset + (u32)&s_timedmineammoimage);
proxmineammoimage = (void *) (globalbank_rdram_offset + (u32)&s_proxmineammoimage);
tankammoimage = (void *) (globalbank_rdram_offset + (u32)&s_tankammoimage);
crosshairimage = (void *) (globalbank_rdram_offset + (u32)&s_crosshairimage);
betacrosshairimage = (void *) (globalbank_rdram_offset + (u32)&s_betacrosshairimage);
glassoverlayimage = (void *) (globalbank_rdram_offset + (u32)&s_glassoverlayimage);
monitorimages = (void *) (globalbank_rdram_offset + (u32)&s_monitorimages);
skywaterimages = (void *) (globalbank_rdram_offset + (u32)&s_skywaterimages);
mainfolderimages = (void *) (globalbank_rdram_offset + (u32)&s_mainfolderimages);
mpradarimages = (void *) (globalbank_rdram_offset + (u32)&s_mpradarimages);
mpcharselimages = (void *) (globalbank_rdram_offset + (u32)&s_mpcharselimages);
mpstageselimages = (void *) (globalbank_rdram_offset + (u32)&s_mpstageselimages);
texLoadFromDisplayList(globalbank_rdram_offset + (u32)&globalDL_0x000, 0);
texLoadFromDisplayList(globalbank_rdram_offset + (u32)&globalDL_0x078, 0);
texLoadFromDisplayList(globalbank_rdram_offset + (u32)&globalDL_0x120, 0);
texLoadFromDisplayList(globalbank_rdram_offset + (u32)&globalDL_0x1c8, 0);
texLoadFromDisplayList(globalbank_rdram_offset + (u32)&globalDL_0x270, 0);
texLoadFromDisplayList(globalbank_rdram_offset + (u32)&globalDL_0x318, 0);
texLoadFromDisplayList(globalbank_rdram_offset + (u32)&globalDL_0x3c0, 0);
texLoadFromDisplayList(globalbank_rdram_offset + (u32)&globalDL_0x468, 0);
texLoadFromDisplayList(globalbank_rdram_offset + (u32)&globalDL_0x510, 0);
texLoadFromDisplayList(globalbank_rdram_offset + (u32)&globalDL_0x5b8, 0);
texLoadFromDisplayList(globalbank_rdram_offset + (u32)&globalDL_0x660, 0);
texLoadFromDisplayList(globalbank_rdram_offset + (u32)&globalDL_0x708, 0);
texLoadFromDisplayList(globalbank_rdram_offset + (u32)&globalDL_0x7b0, 0);
texLoadFromDisplayList(globalbank_rdram_offset + (u32)&globalDL_0x858, 0);
texLoadFromDisplayList(globalbank_rdram_offset + (u32)&globalDL_0x900, 0);
texLoadFromDisplayList(globalbank_rdram_offset + (u32)&globalDL_0x9a8, 0);
texLoadFromDisplayList(globalbank_rdram_offset + (u32)&globalDL_0xa50, 0);
texLoad(genericimage, 0);
for (i=0; i < 6; i++)
{
load_image_to_buffer(&explosion_smokeimages+i, 0);
texLoad(&explosion_smokeimages[i], 0);
}
for (i=0; i<0x48; i+=0xC)
for (i=0; i < 5; i++)
{
load_image_to_buffer(&scattered_explosions+i, 0);
texLoad(&scattered_explosions[i], 0);
}
}
#else
GLOBAL_ASM(
.text
glabel load_prepare_global_image_bank
/* 100AE0 7F0CBFB0 27BDFFD8 */ addiu $sp, $sp, -0x28
/* 100AE4 7F0CBFB4 3C0E0200 */ lui $t6, %hi(_GlobalimagetableSegmentEnd) # $t6, 0x200
/* 100AE8 7F0CBFB8 3C0F0200 */ lui $t7, %hi(_GlobalimagetableSegmentStart) # $t7, 0x200
/* 100AEC 7F0CBFBC AFB00014 */ sw $s0, 0x14($sp)
/* 100AF0 7F0CBFC0 25EF0000 */ addiu $t7, %lo(_GlobalimagetableSegmentStart) # addiu $t7, $t7, 0
/* 100AF4 7F0CBFC4 25CE1400 */ addiu $t6, %lo(_GlobalimagetableSegmentEnd) # addiu $t6, $t6, 0x1400
/* 100AF8 7F0CBFC8 AFBF0024 */ sw $ra, 0x24($sp)
/* 100AFC 7F0CBFCC 01CF8023 */ subu $s0, $t6, $t7
/* 100B00 7F0CBFD0 AFB30020 */ sw $s3, 0x20($sp)
/* 100B04 7F0CBFD4 AFB2001C */ sw $s2, 0x1c($sp)
/* 100B08 7F0CBFD8 AFB10018 */ sw $s1, 0x18($sp)
/* 100B0C 7F0CBFDC 26041000 */ addiu $a0, $s0, 0x1000
/* 100B10 7F0CBFE0 0C0025C8 */ jal mempAllocBytesInBank
/* 100B14 7F0CBFE4 24050004 */ li $a1, 4
/* 100B18 7F0CBFE8 3C118009 */ lui $s1, %hi(pGlobalimagetable)
/* 100B1C 7F0CBFEC 2631D0B4 */ addiu $s1, %lo(pGlobalimagetable) # addiu $s1, $s1, -0x2f4c
/* 100B20 7F0CBFF0 24590FFF */ addiu $t9, $v0, 0xfff
/* 100B24 7F0CBFF4 2401F000 */ li $at, -4096
/* 100B28 7F0CBFF8 AE220000 */ sw $v0, ($s1)
/* 100B2C 7F0CBFFC 03212024 */ and $a0, $t9, $at
/* 100B30 7F0CC000 3C05002A */ lui $a1, %hi(_GlobalimagetableSegmentRomStart) # $a1, 0x2a
/* 100B34 7F0CC004 AE240000 */ sw $a0, ($s1)
/* 100B38 7F0CC008 24A5D160 */ addiu $a1, %lo(_GlobalimagetableSegmentRomStart) # addiu $a1, $a1, -0x2ea0
/* 100B3C 7F0CC00C 0C001707 */ jal romCopy
/* 100B40 7F0CC010 02003025 */ move $a2, $s0
/* 100B44 7F0CC014 8E290000 */ lw $t1, ($s1)
/* 100B48 7F0CC018 3C01FE00 */ lui $at, 0xfe00
/* 100B4C 7F0CC01C 3C108009 */ lui $s0, %hi(globalbank_rdram_offset)
/* 100B50 7F0CC020 01211021 */ addu $v0, $t1, $at
/* 100B54 7F0CC024 3C0B0200 */ lui $t3, %hi(s_genericimage) # $t3, 0x200
/* 100B58 7F0CC028 2610D0B0 */ addiu $s0, %lo(globalbank_rdram_offset) # addiu $s0, $s0, -0x2f50
/* 100B5C 7F0CC02C 256B0AC8 */ addiu $t3, %lo(s_genericimage) # addiu $t3, $t3, 0xac8
/* 100B60 7F0CC030 AE020000 */ sw $v0, ($s0)
/* 100B64 7F0CC034 004B6021 */ addu $t4, $v0, $t3
/* 100B68 7F0CC038 3C018009 */ lui $at, %hi(genericimage)
/* 100B6C 7F0CC03C 3C0D0200 */ lui $t5, %hi(s_impactimages) # $t5, 0x200
/* 100B70 7F0CC040 AC2CD0B8 */ sw $t4, %lo(genericimage)($at)
/* 100B74 7F0CC044 25AD0AD4 */ addiu $t5, %lo(s_impactimages) # addiu $t5, $t5, 0xad4
/* 100B78 7F0CC048 004D7021 */ addu $t6, $v0, $t5
/* 100B7C 7F0CC04C 3C018009 */ lui $at, %hi(impactimages)
/* 100B80 7F0CC050 AC2ED0BC */ sw $t6, %lo(impactimages)($at)
/* 100B84 7F0CC054 3C0F0200 */ lui $t7, %hi(s_explosion_smokeimages) # $t7, 0x200
/* 100B88 7F0CC058 3C190200 */ lui $t9, %hi(s_scattered_explosions) # $t9, 0x200
/* 100B8C 7F0CC05C 3C128009 */ lui $s2, %hi(explosion_smokeimages)
/* 100B90 7F0CC060 3C138009 */ lui $s3, %hi(scattered_explosions)
/* 100B94 7F0CC064 25EF0BC4 */ addiu $t7, %lo(s_explosion_smokeimages) # addiu $t7, $t7, 0xbc4
/* 100B98 7F0CC068 27390C0C */ addiu $t9, %lo(s_scattered_explosions) # addiu $t9, $t9, 0xc0c
/* 100B9C 7F0CC06C 3C090200 */ lui $t1, %hi(s_flareimage1) # $t1, 0x200
/* 100BA0 7F0CC070 2673D0C4 */ addiu $s3, %lo(scattered_explosions) # addiu $s3, $s3, -0x2f3c
/* 100BA4 7F0CC074 2652D0C0 */ addiu $s2, %lo(explosion_smokeimages) # addiu $s2, $s2, -0x2f40
/* 100BA8 7F0CC078 004FC021 */ addu $t8, $v0, $t7
/* 100BAC 7F0CC07C 00594021 */ addu $t0, $v0, $t9
/* 100BB0 7F0CC080 25290C48 */ addiu $t1, %lo(s_flareimage1) # addiu $t1, $t1, 0xc48
/* 100BB4 7F0CC084 AE580000 */ sw $t8, ($s2)
/* 100BB8 7F0CC088 AE680000 */ sw $t0, ($s3)
/* 100BBC 7F0CC08C 00495021 */ addu $t2, $v0, $t1
/* 100BC0 7F0CC090 3C018009 */ lui $at, %hi(flareimage1)
/* 100BC4 7F0CC094 3C0B0200 */ lui $t3, %hi(s_flareimage2) # $t3, 0x200
/* 100BC8 7F0CC098 AC2AD0C8 */ sw $t2, %lo(flareimage1)($at)
/* 100BCC 7F0CC09C 256B0C54 */ addiu $t3, %lo(s_flareimage2) # addiu $t3, $t3, 0xc54
/* 100BD0 7F0CC0A0 004B6021 */ addu $t4, $v0, $t3
/* 100BD4 7F0CC0A4 3C018009 */ lui $at, %hi(flareimage2)
/* 100BD8 7F0CC0A8 3C0D0200 */ lui $t5, %hi(s_flareimage3) # $t5, 0x200
/* 100BDC 7F0CC0AC AC2CD0CC */ sw $t4, %lo(flareimage2)($at)
/* 100BE0 7F0CC0B0 25AD0C60 */ addiu $t5, %lo(s_flareimage3) # addiu $t5, $t5, 0xc60
/* 100BE4 7F0CC0B4 004D7021 */ addu $t6, $v0, $t5
/* 100BE8 7F0CC0B8 3C018009 */ lui $at, %hi(flareimage3)
/* 100BEC 7F0CC0BC 3C0F0200 */ lui $t7, %hi(s_flareimage4) # $t7, 0x200
/* 100BF0 7F0CC0C0 AC2ED0D0 */ sw $t6, %lo(flareimage3)($at)
/* 100BF4 7F0CC0C4 25EF0C6C */ addiu $t7, %lo(s_flareimage4) # addiu $t7, $t7, 0xc6c
/* 100BF8 7F0CC0C8 004FC021 */ addu $t8, $v0, $t7
/* 100BFC 7F0CC0CC 3C018009 */ lui $at, %hi(flareimage4)
/* 100C00 7F0CC0D0 3C190200 */ lui $t9, %hi(s_flareimage5) # $t9, 0x200
/* 100C04 7F0CC0D4 AC38D0D4 */ sw $t8, %lo(flareimage4)($at)
/* 100C08 7F0CC0D8 27390C78 */ addiu $t9, %lo(s_flareimage5) # addiu $t9, $t9, 0xc78
/* 100C0C 7F0CC0DC 00594021 */ addu $t0, $v0, $t9
/* 100C10 7F0CC0E0 3C018009 */ lui $at, %hi(flareimage5)
/* 100C14 7F0CC0E4 3C090200 */ lui $t1, %hi(s_ammo9mmimage) # $t1, 0x200
/* 100C18 7F0CC0E8 AC28D0D8 */ sw $t0, %lo(flareimage5)($at)
/* 100C1C 7F0CC0EC 25290C84 */ addiu $t1, %lo(s_ammo9mmimage) # addiu $t1, $t1, 0xc84
/* 100C20 7F0CC0F0 00495021 */ addu $t2, $v0, $t1
/* 100C24 7F0CC0F4 3C018009 */ lui $at, %hi(ammo9mmimage)
/* 100C28 7F0CC0F8 3C0B0200 */ lui $t3, %hi(s_rifleammoimage) # $t3, 0x200
/* 100C2C 7F0CC0FC AC2AD0DC */ sw $t2, %lo(ammo9mmimage)($at)
/* 100C30 7F0CC100 256B0C90 */ addiu $t3, %lo(s_rifleammoimage) # addiu $t3, $t3, 0xc90
/* 100C34 7F0CC104 004B6021 */ addu $t4, $v0, $t3
/* 100C38 7F0CC108 3C018009 */ lui $at, %hi(rifleammoimage)
/* 100C3C 7F0CC10C 3C0D0200 */ lui $t5, %hi(s_shotgunammoimage) # $t5, 0x200
/* 100C40 7F0CC110 AC2CD0E0 */ sw $t4, %lo(rifleammoimage)($at)
/* 100C44 7F0CC114 25AD0C9C */ addiu $t5, %lo(s_shotgunammoimage) # addiu $t5, $t5, 0xc9c
/* 100C48 7F0CC118 004D7021 */ addu $t6, $v0, $t5
/* 100C4C 7F0CC11C 3C018009 */ lui $at, %hi(shotgunammoimage)
/* 100C50 7F0CC120 3C0F0200 */ lui $t7, %hi(s_knifeammoimage) # $t7, 0x200
/* 100C54 7F0CC124 AC2ED0E4 */ sw $t6, %lo(shotgunammoimage)($at)
/* 100C58 7F0CC128 25EF0CA8 */ addiu $t7, %lo(s_knifeammoimage) # addiu $t7, $t7, 0xca8
/* 100C5C 7F0CC12C 004FC021 */ addu $t8, $v0, $t7
/* 100C60 7F0CC130 3C018009 */ lui $at, %hi(knifeammoimage)
/* 100C64 7F0CC134 3C190200 */ lui $t9, %hi(s_glammoimage) # $t9, 0x200
/* 100C68 7F0CC138 AC38D0E8 */ sw $t8, %lo(knifeammoimage)($at)
/* 100C6C 7F0CC13C 27390CB4 */ addiu $t9, %lo(s_glammoimage) # addiu $t9, $t9, 0xcb4
/* 100C70 7F0CC140 00594021 */ addu $t0, $v0, $t9
/* 100C74 7F0CC144 3C018009 */ lui $at, %hi(glaunchammoimage)
/* 100C78 7F0CC148 3C090200 */ lui $t1, %hi(s_rocketammoimage) # $t1, 0x200
/* 100C7C 7F0CC14C AC28D0EC */ sw $t0, %lo(glaunchammoimage)($at)
/* 100C80 7F0CC150 25290CC0 */ addiu $t1, %lo(s_rocketammoimage) # addiu $t1, $t1, 0xcc0
/* 100C84 7F0CC154 00495021 */ addu $t2, $v0, $t1
/* 100C88 7F0CC158 3C018009 */ lui $at, %hi(rocketammoimage)
/* 100C8C 7F0CC15C 3C0B0200 */ lui $t3, %hi(s_genericmineammoimage) # $t3, 0x200
/* 100C90 7F0CC160 AC2AD0F0 */ sw $t2, %lo(rocketammoimage)($at)
/* 100C94 7F0CC164 256B0CCC */ addiu $t3, %lo(s_genericmineammoimage) # addiu $t3, $t3, 0xccc
/* 100C98 7F0CC168 004B6021 */ addu $t4, $v0, $t3
/* 100C9C 7F0CC16C 3C018009 */ lui $at, %hi(genericmineammoimage)
/* 100CA0 7F0CC170 3C0D0200 */ lui $t5, %hi(s_grenadeammoimage) # $t5, 0x200
/* 100CA4 7F0CC174 AC2CD0F4 */ sw $t4, %lo(genericmineammoimage)($at)
/* 100CA8 7F0CC178 25AD0CD8 */ addiu $t5, %lo(s_grenadeammoimage) # addiu $t5, $t5, 0xcd8
/* 100CAC 7F0CC17C 004D7021 */ addu $t6, $v0, $t5
/* 100CB0 7F0CC180 3C018009 */ lui $at, %hi(grenadeammoimage)
/* 100CB4 7F0CC184 3C0F0200 */ lui $t7, %hi(s_magnumammoimage) # $t7, 0x200
/* 100CB8 7F0CC188 AC2ED0F8 */ sw $t6, %lo(grenadeammoimage)($at)
/* 100CBC 7F0CC18C 25EF0CE4 */ addiu $t7, %lo(s_magnumammoimage) # addiu $t7, $t7, 0xce4
/* 100CC0 7F0CC190 004FC021 */ addu $t8, $v0, $t7
/* 100CC4 7F0CC194 3C018009 */ lui $at, %hi(magnumammoimage)
/* 100CC8 7F0CC198 3C190200 */ lui $t9, %hi(s_goldengunammoimage) # $t9, 0x200
/* 100CCC 7F0CC19C AC38D0FC */ sw $t8, %lo(magnumammoimage)($at)
/* 100CD0 7F0CC1A0 27390CF0 */ addiu $t9, %lo(s_goldengunammoimage) # addiu $t9, $t9, 0xcf0
/* 100CD4 7F0CC1A4 00594021 */ addu $t0, $v0, $t9
/* 100CD8 7F0CC1A8 3C018009 */ lui $at, %hi(goldengunammoimage)
/* 100CDC 7F0CC1AC 3C090200 */ lui $t1, %hi(s_remotemineammoimage) # $t1, 0x200
/* 100CE0 7F0CC1B0 AC28D100 */ sw $t0, %lo(goldengunammoimage)($at)
/* 100CE4 7F0CC1B4 25290CFC */ addiu $t1, %lo(s_remotemineammoimage) # addiu $t1, $t1, 0xcfc
/* 100CE8 7F0CC1B8 00495021 */ addu $t2, $v0, $t1
/* 100CEC 7F0CC1BC 3C018009 */ lui $at, %hi(remotemineammoimage)
/* 100CF0 7F0CC1C0 3C0B0200 */ lui $t3, %hi(s_timedmineammoimage) # $t3, 0x200
/* 100CF4 7F0CC1C4 AC2AD104 */ sw $t2, %lo(remotemineammoimage)($at)
/* 100CF8 7F0CC1C8 256B0D08 */ addiu $t3, %lo(s_timedmineammoimage) # addiu $t3, $t3, 0xd08
/* 100CFC 7F0CC1CC 004B6021 */ addu $t4, $v0, $t3
/* 100D00 7F0CC1D0 3C018009 */ lui $at, %hi(timedmineammoimage)
/* 100D04 7F0CC1D4 3C0D0200 */ lui $t5, %hi(s_proxmineammoimage) # $t5, 0x200
/* 100D08 7F0CC1D8 AC2CD108 */ sw $t4, %lo(timedmineammoimage)($at)
/* 100D0C 7F0CC1DC 25AD0D14 */ addiu $t5, %lo(s_proxmineammoimage) # addiu $t5, $t5, 0xd14
/* 100D10 7F0CC1E0 004D7021 */ addu $t6, $v0, $t5
/* 100D14 7F0CC1E4 3C018009 */ lui $at, %hi(proxmineammoimage)
/* 100D18 7F0CC1E8 3C0F0200 */ lui $t7, %hi(s_tankammoimage) # $t7, 0x200
/* 100D1C 7F0CC1EC AC2ED10C */ sw $t6, %lo(proxmineammoimage)($at)
/* 100D20 7F0CC1F0 25EF0D20 */ addiu $t7, %lo(s_tankammoimage) # addiu $t7, $t7, 0xd20
/* 100D24 7F0CC1F4 004FC021 */ addu $t8, $v0, $t7
/* 100D28 7F0CC1F8 3C018009 */ lui $at, %hi(tankammoimage)
/* 100D2C 7F0CC1FC 3C190200 */ lui $t9, %hi(s_crosshairimage) # $t9, 0x200
/* 100D30 7F0CC200 AC38D110 */ sw $t8, %lo(tankammoimage)($at)
/* 100D34 7F0CC204 27390D2C */ addiu $t9, %lo(s_crosshairimage) # addiu $t9, $t9, 0xd2c
/* 100D38 7F0CC208 00594021 */ addu $t0, $v0, $t9
/* 100D3C 7F0CC20C 3C018009 */ lui $at, %hi(crosshairimage)
/* 100D40 7F0CC210 3C090200 */ lui $t1, %hi(s_betacrosshairimage) # $t1, 0x200
/* 100D44 7F0CC214 AC28D114 */ sw $t0, %lo(crosshairimage)($at)
/* 100D48 7F0CC218 25290D38 */ addiu $t1, %lo(s_betacrosshairimage) # addiu $t1, $t1, 0xd38
/* 100D4C 7F0CC21C 00495021 */ addu $t2, $v0, $t1
/* 100D50 7F0CC220 3C018009 */ lui $at, %hi(betacrosshairimage)
/* 100D54 7F0CC224 3C0B0200 */ lui $t3, %hi(s_glassoverlayimage) # $t3, 0x200
/* 100D58 7F0CC228 AC2AD118 */ sw $t2, %lo(betacrosshairimage)($at)
/* 100D5C 7F0CC22C 256B0D44 */ addiu $t3, %lo(s_glassoverlayimage) # addiu $t3, $t3, 0xd44
/* 100D60 7F0CC230 004B6021 */ addu $t4, $v0, $t3
/* 100D64 7F0CC234 3C018009 */ lui $at, %hi(glassoverlayimage)
/* 100D68 7F0CC238 3C0D0200 */ lui $t5, %hi(s_monitorimages) # $t5, 0x200
/* 100D6C 7F0CC23C AC2CD11C */ sw $t4, %lo(glassoverlayimage)($at)
/* 100D70 7F0CC240 25AD0D5C */ addiu $t5, %lo(s_monitorimages) # addiu $t5, $t5, 0xd5c
/* 100D74 7F0CC244 004D7021 */ addu $t6, $v0, $t5
/* 100D78 7F0CC248 3C018009 */ lui $at, %hi(monitorimages)
/* 100D7C 7F0CC24C 3C0F0200 */ lui $t7, %hi(s_skywaterimages) # $t7, 0x200
/* 100D80 7F0CC250 AC2ED120 */ sw $t6, %lo(monitorimages)($at)
/* 100D84 7F0CC254 25EF0FB4 */ addiu $t7, %lo(s_skywaterimages) # addiu $t7, $t7, 0xfb4
/* 100D88 7F0CC258 004FC021 */ addu $t8, $v0, $t7
/* 100D8C 7F0CC25C 3C018009 */ lui $at, %hi(skywaterimages)
/* 100D90 7F0CC260 3C190200 */ lui $t9, %hi(s_mainfolderimages) # $t9, 0x200
/* 100D94 7F0CC264 AC38D124 */ sw $t8, %lo(skywaterimages)($at)
/* 100D98 7F0CC268 27390FD8 */ addiu $t9, %lo(s_mainfolderimages) # addiu $t9, $t9, 0xfd8
/* 100D9C 7F0CC26C 00594021 */ addu $t0, $v0, $t9
/* 100DA0 7F0CC270 3C018009 */ lui $at, %hi(mainfolderimages)
/* 100DA4 7F0CC274 3C090200 */ lui $t1, %hi(s_mpradarimages) # $t1, 0x200
/* 100DA8 7F0CC278 AC28D128 */ sw $t0, %lo(mainfolderimages)($at)
/* 100DAC 7F0CC27C 25291020 */ addiu $t1, %lo(s_mpradarimages) # addiu $t1, $t1, 0x1020
/* 100DB0 7F0CC280 00495021 */ addu $t2, $v0, $t1
/* 100DB4 7F0CC284 3C018009 */ lui $at, %hi(mpradarimages)
/* 100DB8 7F0CC288 3C0B0200 */ lui $t3, %hi(s_mpcharselimages) # $t3, 0x200
/* 100DBC 7F0CC28C AC2AD12C */ sw $t2, %lo(mpradarimages)($at)
/* 100DC0 7F0CC290 256B102C */ addiu $t3, %lo(s_mpcharselimages) # addiu $t3, $t3, 0x102c
/* 100DC4 7F0CC294 004B6021 */ addu $t4, $v0, $t3
/* 100DC8 7F0CC298 3C018009 */ lui $at, %hi(mpcharselimages)
/* 100DCC 7F0CC29C 3C0D0200 */ lui $t5, %hi(s_mpstageselimages) # $t5, 0x200
/* 100DD0 7F0CC2A0 AC2CD130 */ sw $t4, %lo(mpcharselimages)($at)
/* 100DD4 7F0CC2A4 25AD132C */ addiu $t5, %lo(s_mpstageselimages) # addiu $t5, $t5, 0x132c
/* 100DD8 7F0CC2A8 3C0F0200 */ lui $t7, 0x200
/* 100DDC 7F0CC2AC 004D7021 */ addu $t6, $v0, $t5
/* 100DE0 7F0CC2B0 3C018009 */ lui $at, %hi(mpstageselimages)
/* 100DE4 7F0CC2B4 25EF0000 */ addiu $t7, $t7, 0
/* 100DE8 7F0CC2B8 AC2ED134 */ sw $t6, %lo(mpstageselimages)($at)
/* 100DEC 7F0CC2BC 004F2021 */ addu $a0, $v0, $t7
/* 100DF0 7F0CC2C0 0FC32EDD */ jal check_load_image_to_buffer
/* 100DF4 7F0CC2C4 00002825 */ move $a1, $zero
/* 100DF8 7F0CC2C8 8E180000 */ lw $t8, ($s0)
/* 100DFC 7F0CC2CC 3C190200 */ lui $t9, %hi(globalDL_0x078) # $t9, 0x200
/* 100E00 7F0CC2D0 27390078 */ addiu $t9, %lo(globalDL_0x078) # addiu $t9, $t9, 0x78
/* 100E04 7F0CC2D4 00002825 */ move $a1, $zero
/* 100E08 7F0CC2D8 0FC32EDD */ jal check_load_image_to_buffer
/* 100E0C 7F0CC2DC 03192021 */ addu $a0, $t8, $t9
/* 100E10 7F0CC2E0 8E080000 */ lw $t0, ($s0)
/* 100E14 7F0CC2E4 3C090200 */ lui $t1, %hi(globalDL_0x120) # $t1, 0x200
/* 100E18 7F0CC2E8 25290120 */ addiu $t1, %lo(globalDL_0x120) # addiu $t1, $t1, 0x120
/* 100E1C 7F0CC2EC 00002825 */ move $a1, $zero
/* 100E20 7F0CC2F0 0FC32EDD */ jal check_load_image_to_buffer
/* 100E24 7F0CC2F4 01092021 */ addu $a0, $t0, $t1
/* 100E28 7F0CC2F8 8E0A0000 */ lw $t2, ($s0)
/* 100E2C 7F0CC2FC 3C0B0200 */ lui $t3, %hi(globalDL_0x1c8) # $t3, 0x200
/* 100E30 7F0CC300 256B01C8 */ addiu $t3, %lo(globalDL_0x1c8) # addiu $t3, $t3, 0x1c8
/* 100E34 7F0CC304 00002825 */ move $a1, $zero
/* 100E38 7F0CC308 0FC32EDD */ jal check_load_image_to_buffer
/* 100E3C 7F0CC30C 014B2021 */ addu $a0, $t2, $t3
/* 100E40 7F0CC310 8E0C0000 */ lw $t4, ($s0)
/* 100E44 7F0CC314 3C0D0200 */ lui $t5, %hi(globalDL_0x270) # $t5, 0x200
/* 100E48 7F0CC318 25AD0270 */ addiu $t5, %lo(globalDL_0x270) # addiu $t5, $t5, 0x270
/* 100E4C 7F0CC31C 00002825 */ move $a1, $zero
/* 100E50 7F0CC320 0FC32EDD */ jal check_load_image_to_buffer
/* 100E54 7F0CC324 018D2021 */ addu $a0, $t4, $t5
/* 100E58 7F0CC328 8E0E0000 */ lw $t6, ($s0)
/* 100E5C 7F0CC32C 3C0F0200 */ lui $t7, %hi(globalDL_0x318) # $t7, 0x200
/* 100E60 7F0CC330 25EF0318 */ addiu $t7, %lo(globalDL_0x318) # addiu $t7, $t7, 0x318
/* 100E64 7F0CC334 00002825 */ move $a1, $zero
/* 100E68 7F0CC338 0FC32EDD */ jal check_load_image_to_buffer
/* 100E6C 7F0CC33C 01CF2021 */ addu $a0, $t6, $t7
/* 100E70 7F0CC340 8E180000 */ lw $t8, ($s0)
/* 100E74 7F0CC344 3C190200 */ lui $t9, %hi(globalDL_0x3c0) # $t9, 0x200
/* 100E78 7F0CC348 273903C0 */ addiu $t9, %lo(globalDL_0x3c0) # addiu $t9, $t9, 0x3c0
/* 100E7C 7F0CC34C 00002825 */ move $a1, $zero
/* 100E80 7F0CC350 0FC32EDD */ jal check_load_image_to_buffer
/* 100E84 7F0CC354 03192021 */ addu $a0, $t8, $t9
/* 100E88 7F0CC358 8E080000 */ lw $t0, ($s0)
/* 100E8C 7F0CC35C 3C090200 */ lui $t1, %hi(globalDL_0x468) # $t1, 0x200
/* 100E90 7F0CC360 25290468 */ addiu $t1, %lo(globalDL_0x468) # addiu $t1, $t1, 0x468
/* 100E94 7F0CC364 00002825 */ move $a1, $zero
/* 100E98 7F0CC368 0FC32EDD */ jal check_load_image_to_buffer
/* 100E9C 7F0CC36C 01092021 */ addu $a0, $t0, $t1
/* 100EA0 7F0CC370 8E0A0000 */ lw $t2, ($s0)
/* 100EA4 7F0CC374 3C0B0200 */ lui $t3, %hi(globalDL_0x510) # $t3, 0x200
/* 100EA8 7F0CC378 256B0510 */ addiu $t3, %lo(globalDL_0x510) # addiu $t3, $t3, 0x510
/* 100EAC 7F0CC37C 00002825 */ move $a1, $zero
/* 100EB0 7F0CC380 0FC32EDD */ jal check_load_image_to_buffer
/* 100EB4 7F0CC384 014B2021 */ addu $a0, $t2, $t3
/* 100EB8 7F0CC388 8E0C0000 */ lw $t4, ($s0)
/* 100EBC 7F0CC38C 3C0D0200 */ lui $t5, %hi(globalDL_0x5b8) # $t5, 0x200
/* 100EC0 7F0CC390 25AD05B8 */ addiu $t5, %lo(globalDL_0x5b8) # addiu $t5, $t5, 0x5b8
/* 100EC4 7F0CC394 00002825 */ move $a1, $zero
/* 100EC8 7F0CC398 0FC32EDD */ jal check_load_image_to_buffer
/* 100ECC 7F0CC39C 018D2021 */ addu $a0, $t4, $t5
/* 100ED0 7F0CC3A0 8E0E0000 */ lw $t6, ($s0)
/* 100ED4 7F0CC3A4 3C0F0200 */ lui $t7, %hi(globalDL_0x660) # $t7, 0x200
/* 100ED8 7F0CC3A8 25EF0660 */ addiu $t7, %lo(globalDL_0x660) # addiu $t7, $t7, 0x660
/* 100EDC 7F0CC3AC 00002825 */ move $a1, $zero
/* 100EE0 7F0CC3B0 0FC32EDD */ jal check_load_image_to_buffer
/* 100EE4 7F0CC3B4 01CF2021 */ addu $a0, $t6, $t7
/* 100EE8 7F0CC3B8 8E180000 */ lw $t8, ($s0)
/* 100EEC 7F0CC3BC 3C190200 */ lui $t9, %hi(globalDL_0x708) # $t9, 0x200
/* 100EF0 7F0CC3C0 27390708 */ addiu $t9, %lo(globalDL_0x708) # addiu $t9, $t9, 0x708
/* 100EF4 7F0CC3C4 00002825 */ move $a1, $zero
/* 100EF8 7F0CC3C8 0FC32EDD */ jal check_load_image_to_buffer
/* 100EFC 7F0CC3CC 03192021 */ addu $a0, $t8, $t9
/* 100F00 7F0CC3D0 8E080000 */ lw $t0, ($s0)
/* 100F04 7F0CC3D4 3C090200 */ lui $t1, %hi(globalDL_0x7b0) # $t1, 0x200
/* 100F08 7F0CC3D8 252907B0 */ addiu $t1, %lo(globalDL_0x7b0) # addiu $t1, $t1, 0x7b0
/* 100F0C 7F0CC3DC 00002825 */ move $a1, $zero
/* 100F10 7F0CC3E0 0FC32EDD */ jal check_load_image_to_buffer
/* 100F14 7F0CC3E4 01092021 */ addu $a0, $t0, $t1
/* 100F18 7F0CC3E8 8E0A0000 */ lw $t2, ($s0)
/* 100F1C 7F0CC3EC 3C0B0200 */ lui $t3, %hi(globalDL_0x858) # $t3, 0x200
/* 100F20 7F0CC3F0 256B0858 */ addiu $t3, %lo(globalDL_0x858) # addiu $t3, $t3, 0x858
/* 100F24 7F0CC3F4 00002825 */ move $a1, $zero
/* 100F28 7F0CC3F8 0FC32EDD */ jal check_load_image_to_buffer
/* 100F2C 7F0CC3FC 014B2021 */ addu $a0, $t2, $t3
/* 100F30 7F0CC400 8E0C0000 */ lw $t4, ($s0)
/* 100F34 7F0CC404 3C0D0200 */ lui $t5, %hi(globalDL_0x900) # $t5, 0x200
/* 100F38 7F0CC408 25AD0900 */ addiu $t5, %lo(globalDL_0x900) # addiu $t5, $t5, 0x900
/* 100F3C 7F0CC40C 00002825 */ move $a1, $zero
/* 100F40 7F0CC410 0FC32EDD */ jal check_load_image_to_buffer
/* 100F44 7F0CC414 018D2021 */ addu $a0, $t4, $t5
/* 100F48 7F0CC418 8E0E0000 */ lw $t6, ($s0)
/* 100F4C 7F0CC41C 3C0F0200 */ lui $t7, %hi(globalDL_0x9a8) # $t7, 0x200
/* 100F50 7F0CC420 25EF09A8 */ addiu $t7, %lo(globalDL_0x9a8) # addiu $t7, $t7, 0x9a8
/* 100F54 7F0CC424 00002825 */ move $a1, $zero
/* 100F58 7F0CC428 0FC32EDD */ jal check_load_image_to_buffer
/* 100F5C 7F0CC42C 01CF2021 */ addu $a0, $t6, $t7
/* 100F60 7F0CC430 8E180000 */ lw $t8, ($s0)
/* 100F64 7F0CC434 3C190200 */ lui $t9, %hi(globalDL_0xa50) # $t9, 0x200
/* 100F68 7F0CC438 27390A50 */ addiu $t9, %lo(globalDL_0xa50) # addiu $t9, $t9, 0xa50
/* 100F6C 7F0CC43C 00002825 */ move $a1, $zero
/* 100F70 7F0CC440 0FC32EDD */ jal check_load_image_to_buffer
/* 100F74 7F0CC444 03192021 */ addu $a0, $t8, $t9
/* 100F78 7F0CC448 3C048009 */ lui $a0, %hi(genericimage)
/* 100F7C 7F0CC44C 8C84D0B8 */ lw $a0, %lo(genericimage)($a0)
/* 100F80 7F0CC450 0FC32F06 */ jal load_image_to_buffer
/* 100F84 7F0CC454 00002825 */ move $a1, $zero
/* 100F88 7F0CC458 00008025 */ move $s0, $zero
/* 100F8C 7F0CC45C 8E480000 */ lw $t0, ($s2)
.L7F0CC460:
/* 100F90 7F0CC460 00002825 */ move $a1, $zero
/* 100F94 7F0CC464 0FC32F06 */ jal load_image_to_buffer
/* 100F98 7F0CC468 02082021 */ addu $a0, $s0, $t0
/* 100F9C 7F0CC46C 2610000C */ addiu $s0, $s0, 0xc
/* 100FA0 7F0CC470 2A010048 */ slti $at, $s0, 0x48
/* 100FA4 7F0CC474 5420FFFA */ bnezl $at, .L7F0CC460
/* 100FA8 7F0CC478 8E480000 */ lw $t0, ($s2)
/* 100FAC 7F0CC47C 00008025 */ move $s0, $zero
/* 100FB0 7F0CC480 2411003C */ li $s1, 60
/* 100FB4 7F0CC484 8E690000 */ lw $t1, ($s3)
.L7F0CC488:
/* 100FB8 7F0CC488 00002825 */ move $a1, $zero
/* 100FBC 7F0CC48C 0FC32F06 */ jal load_image_to_buffer
/* 100FC0 7F0CC490 02092021 */ addu $a0, $s0, $t1
/* 100FC4 7F0CC494 2610000C */ addiu $s0, $s0, 0xc
/* 100FC8 7F0CC498 5611FFFB */ bnel $s0, $s1, .L7F0CC488
/* 100FCC 7F0CC49C 8E690000 */ lw $t1, ($s3)
/* 100FD0 7F0CC4A0 8FBF0024 */ lw $ra, 0x24($sp)
/* 100FD4 7F0CC4A4 8FB00014 */ lw $s0, 0x14($sp)
/* 100FD8 7F0CC4A8 8FB10018 */ lw $s1, 0x18($sp)
/* 100FDC 7F0CC4AC 8FB2001C */ lw $s2, 0x1c($sp)
/* 100FE0 7F0CC4B0 8FB30020 */ lw $s3, 0x20($sp)
/* 100FE4 7F0CC4B4 03E00008 */ jr $ra
/* 100FE8 7F0CC4B8 27BD0028 */ addiu $sp, $sp, 0x28
)
#endif
+7 -1
View File
@@ -8,7 +8,13 @@ extern struct sImageTableEntry *crosshairimage;
extern struct sImageTableEntry *mainfolderimages;
extern struct sImageTableEntry *genericimage;
extern struct sImageTableEntry *skywaterimages;
void load_prepare_global_image_bank(void);
extern u8* img_curpos;
extern s32 img_bitcount;
void texReset(void);
u32 texReadBits(s32 bitCount);
void texSetBitstring(s32 pos);
#endif
+19 -19
View File
@@ -1,7 +1,7 @@
#include <ultra64.h>
#include "indy_commands.h"
#include <PR/os.h>
#include "rmon.h"
// data
//D:8004EAC0
s32 D_8004EAC0 = 0;
@@ -199,7 +199,7 @@ void indyrescmdSizeNextCmd(s32 readsize,s32 writesize)
indy_resource_entry_type1 cmd;
cmd.entry.resourceID = 0x9abf1623;
cmd.entry.type = 1;
cmd.entry.type = INDY_SIZE;
cmd.entry.size = 0x14;
cmd.entry.readsize = readsize;
cmd.entry.writesize = writesize;
@@ -212,7 +212,7 @@ void indyrescmdSendCmdEnd(s32 readsize,s32 writesize)
indy_resource_entry_type2 cmd;
cmd.entry.resourceID = 0x9abf1623;
cmd.entry.type = 2;
cmd.entry.type = INDY_END;
cmd.entry.size = 0x14;
cmd.entry.readsize = readsize;
cmd.entry.writesize = writesize;
@@ -224,7 +224,7 @@ void indyrescmdInit(s32 readsize,s32 writesize)
{
indy_resource_entry_type0 cmd;
cmd.entry.resourceID = 0x9abf1623;
cmd.entry.type = 0;
cmd.entry.type = INDY_INIT;
cmd.entry.size = 0x14;
cmd.entry.readsize = readsize;
cmd.entry.writesize = writesize;
@@ -236,7 +236,7 @@ void post_type3_indyrescmd(s32 rsize,s32 wsize,char *strptr)
struct indy_resource_entry_type3 cmd;
cmd.entry.resourceID = 0x9abf1623;
cmd.entry.type = 3;
cmd.entry.type = INDY_RESCMD;
cmd.entry.size = 0x114;
cmd.entry.readsize = rsize;
cmd.entry.writesize = wsize;
@@ -251,7 +251,7 @@ void post_type4_indyrescmd_data_recieved(s32 readsize,s32 writesize,s32 data)
indy_resource_entry_type4 cmd;
cmd.entry.resourceID = 0x9abf1623;
cmd.entry.type = 4;
cmd.entry.type = INDY_RESCMDDATARCVD;
cmd.entry.size = 0x18;
cmd.entry.readsize = readsize;
cmd.entry.writesize = writesize;
@@ -265,7 +265,7 @@ void indyrescmdCheckFileExists(s32 rsize,s32 wsize,char *name)
indy_resource_entry_type5 cmd;
cmd.entry.resourceID = 0x9abf1623;
cmd.entry.type = 5;
cmd.entry.type = INDY_SENDCHECKFILEEXISTS;
cmd.entry.size = 0x114;
cmd.entry.readsize = rsize;
cmd.entry.writesize = wsize;
@@ -280,7 +280,7 @@ void post_type6_indyrescmd_printfrecieved(s32 readsize,s32 writesize,u32 data1,u
struct indy_resource_entry_type6 cmd;
cmd.entry.resourceID = 0x9abf1623;
cmd.entry.type = 6;
cmd.entry.type = INDY_RECVCHECKFILEEXISTS;
cmd.entry.size = 0x1c;
cmd.entry.readsize = readsize;
cmd.entry.writesize = writesize;
@@ -295,7 +295,7 @@ void indyrescmdSendFileLoad(u32 rsize,u32 wsize,u8 *filename,u32 size)
struct indy_resource_entry_type7 cmd;
cmd.entry.resourceID = 0x9abf1623;
cmd.entry.type = 7;
cmd.entry.type = INDY_SENDFILELOAD;
cmd.entry.size = 0x118;
cmd.entry.readsize = rsize;
cmd.entry.writesize = wsize;
@@ -311,7 +311,7 @@ void post_type8_indyrescmd_log_recieved(s32 rsize,s32 wsize,u32 data1,u32 data2,
struct indy_resource_entry_type8 cmd;
cmd.entry.resourceID = 0x9abf1623;
cmd.entry.type = 8;
cmd.entry.type = INDY_LOGRECVD;
cmd.entry.size = (cmd2size +3 & ~3)+ 0x20;
cmd.entry.readsize = rsize;
@@ -329,7 +329,7 @@ void indyrescmdSendDump(s32 rsize,s32 wsize,char *strptr,u32 size2,struct indy_r
indy_resource_entry_type9 cmd;
cmd.entry.resourceID = 0x9abf1623;
cmd.entry.type = 9;
cmd.entry.type = INDY_SENDDUMP;
cmd.entry.size = (size2 + 3 & 0xfffffffc) + 0x114;
cmd.entry.readsize = rsize;
@@ -347,7 +347,7 @@ void post_typeA_indyrescmd_app_command_recieved(s32 readsize,s32 writesize,u32 d
indy_resource_entry_typeA cmd;
cmd.entry.resourceID = 0x9abf1623;
cmd.entry.type = 0xa;
cmd.entry.type = INDY_APPCMDRECVD;
cmd.entry.size = 0x18;
cmd.entry.readsize = readsize;
cmd.entry.writesize = writesize;
@@ -361,7 +361,7 @@ void indyrescmdRamRomLoad(u32 rsize,u32 wsize,char *name,u32 filesize,u32 ptarge
indy_resource_entry_typeF cmd;
cmd.entry.resourceID = 0x9abf1623;
cmd.entry.type = 0xf;
cmd.entry.type = INDY_RAMROMLOAD;
cmd.entry.size = 0x11c;
cmd.entry.readsize = rsize;
cmd.entry.writesize = wsize;
@@ -380,7 +380,7 @@ void post_type10_indyrescmd_fault_ack_by_host(s32 rsize,s32 wsize,u32 data1,u32
struct indy_resource_entry_type10 cmd;
cmd.entry.resourceID = 0x9abf1623;
cmd.entry.type = 0x10;
cmd.entry.type = INDY_FAULTACKHOST;
cmd.entry.size = 0x20;
cmd.entry.readsize = rsize;
cmd.entry.writesize = wsize;
@@ -396,7 +396,7 @@ void indyrescmdSendExportFile(u32 rsize,u32 wsize,u8 *ptrstr,u32 size,u8 *hwaddr
indy_resource_entry_typeD cmd;
cmd.entry.resourceID = 0x9abf1623;
cmd.entry.type = 0xd;
cmd.entry.type = INDY_EXPORTFILE;
cmd.entry.size = 0x11c;
cmd.entry.readsize = rsize;
cmd.entry.writesize = wsize;
@@ -413,7 +413,7 @@ void post_typeE_indyrescmd_prof_recv(s32 readsize,s32 writesize,u32 data)
indy_resource_entry_typeE cmd;
cmd.entry.resourceID = 0x9abf1623;
cmd.entry.type = 0xe;
cmd.entry.type = INDY_PROFILE_RECV;
cmd.entry.size = 0x18;
cmd.entry.readsize = readsize;
cmd.entry.writesize = writesize;
@@ -427,7 +427,7 @@ void indyrescmdSendHostCmd(s32 rsize,s32 wsize,char *strptr)
indy_resource_entry_typeB res;
res.entry.resourceID = 0x9abf1623;
res.entry.type = 0xb;
res.entry.type = INDY_SENDHOSTCMD;
res.entry.size = 0x414;
res.entry.readsize = rsize;
res.entry.writesize = wsize;
@@ -442,7 +442,7 @@ void post_typeC_indyrescmd_prof_send(s32 readsize,s32 writesize,u32 data)
indy_resource_entry_typeC cmd;
cmd.entry.resourceID = 0x9abf1623;
cmd.entry.type = 0xc;
cmd.entry.type = INDY_PROFILE_SEND;
cmd.entry.size = 0x18;
cmd.entry.readsize = readsize;
cmd.entry.writesize = writesize;
@@ -456,7 +456,7 @@ void post_typeA_indyrescmd_app_data_recieved(s32 readsize,s32 writesize,u32 data
indy_resource_entry_typeA cmd;
cmd.entry.resourceID = 0x9abf1623;
cmd.entry.type = 0xA;
cmd.entry.type = INDY_APPCMDRECVD;
cmd.entry.size = 0x18;
cmd.entry.readsize = readsize;
cmd.entry.writesize = writesize;
+20
View File
@@ -2,6 +2,26 @@
#define _INDY_COMMANDS_H_
#include <ultra64.h>
typedef enum INDYCMDTYPE {
INDY_INIT=0,
INDY_SIZE=1,
INDY_END=2,
INDY_RESCMD=3,
INDY_RESCMDDATARCVD=4,
INDY_SENDCHECKFILEEXISTS=5,
INDY_RECVCHECKFILEEXISTS=6,
INDY_SENDFILELOAD=7,
INDY_LOGRECVD=8,
INDY_SENDDUMP=9,
INDY_APPCMDRECVD=10,
INDY_SENDHOSTCMD=11,
INDY_PROFILE_SEND=12,
INDY_EXPORTFILE=13,
INDY_PROFILE_RECV=14,
INDY_RAMROMLOAD=15,
INDY_FAULTACKHOST=16
} INDYCMDTYPE;
typedef struct indy_resource_entry_header {
u32 resourceID;
s32 type;
+6 -6
View File
@@ -129,8 +129,8 @@ void init_player_BONDdata_stats(void) {
g_CurrentPlayer->crosshair_x_pos = 0.0f;
g_CurrentPlayer->crosshair_y_pos = 0.0f;
g_CurrentPlayer->guncrossdamp = 0.9f;
g_CurrentPlayer->field_FFC = 0.0f;
g_CurrentPlayer->field_1000 = 0.0f;
g_CurrentPlayer->field_FFC.x = 0.0f;
g_CurrentPlayer->field_FFC.y = 0.0f;
g_CurrentPlayer->gun_azimuth_angle = 0.0f;
g_CurrentPlayer->gun_azimuth_turning = 0.0f;
g_CurrentPlayer->gunaimdamp = 0.9f;
@@ -139,10 +139,10 @@ void init_player_BONDdata_stats(void) {
g_CurrentPlayer->unk1018 = 0.0f;
g_CurrentPlayer->copiedgoldeneye = FALSE;
g_CurrentPlayer->magnetattracttime = -1;
g_CurrentPlayer->field_106C = 0.0f;
g_CurrentPlayer->field_1070 = 0.0f;
g_CurrentPlayer->field_1074 = 0.0f;
g_CurrentPlayer->field_1078 = 0;
g_CurrentPlayer->gunsync = 0.0f;
g_CurrentPlayer->syncchange = 0.0f;
g_CurrentPlayer->synccount = 0.0f;
g_CurrentPlayer->syncoffset = 0;
g_CurrentPlayer->field_107C = 0.0f;
g_CurrentPlayer->field_1080 = 0.0f;
bgunCalculateBlend(GUNRIGHT);
Loaded 100 of 181 files, more files were not shown because too many files have changed in this diff. Show more