mirror of
https://github.com/zeldaret/tp
synced 2026-05-23 06:54:28 -04:00
merge
This commit is contained in:
@@ -15,6 +15,6 @@ jobs:
|
||||
with:
|
||||
token: ${{secrets.MY_REPO_PAT}}
|
||||
- name: Copy in dol and compilers
|
||||
run: cp /tmp/baserom.dol ./baserom.dol && cp -r /tmp/mwcc_compiler/ tools/mwcc_compiler && chown root /github/home/
|
||||
run: cp /tmp/baserom.dol ./baserom.dol && cp -r /tmp/mwcc_compiler/ tools/mwcc_compiler && cp tools/mwcc_compiler/2.7/mwcceppc.exe tools/mwcc_compiler/2.7/mwcceppc_patched.exe && chown root /github/home/
|
||||
- name: Run Make (OK)
|
||||
run: make
|
||||
@@ -19,7 +19,8 @@ TARGET_COL := wii
|
||||
|
||||
TARGET := dolzel2
|
||||
|
||||
BUILD_DIR := build/$(TARGET)
|
||||
BUILD_PATH := build
|
||||
BUILD_DIR := $(BUILD_PATH)/$(TARGET)
|
||||
|
||||
SRC_DIRS := $(shell find src/ libs/ -type f -name '*.cpp')
|
||||
ASM_DIRS := $(shell find asm/ -type f -name '*.s')
|
||||
@@ -33,7 +34,7 @@ ELF := $(DOL:.dol=.elf)
|
||||
MAP := $(BUILD_DIR)/dolzel2.map
|
||||
|
||||
# include list of object files
|
||||
-include obj_files.mk
|
||||
include obj_files.mk
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
# Tools
|
||||
@@ -60,15 +61,15 @@ endif
|
||||
AS := $(DEVKITPPC)/bin/powerpc-eabi-as
|
||||
OBJCOPY := $(DEVKITPPC)/bin/powerpc-eabi-objcopy
|
||||
STRIP := $(DEVKITPPC)/bin/powerpc-eabi-strip
|
||||
CC := $(WINE) tools/mwcc_compiler/$(MWCC_VERSION)/mwcceppc.exe
|
||||
CC := $(WINE) tools/mwcc_compiler/$(MWCC_VERSION)/mwcceppc_patched.exe
|
||||
LD := $(WINE) tools/mwcc_compiler/$(MWCC_VERSION)/mwldeppc.exe
|
||||
ELF2DOL := tools/elf2dol
|
||||
ELF2DOL := $(BUILD_PATH)/elf2dol
|
||||
PYTHON := python3
|
||||
ICONV := iconv
|
||||
DOXYGEN := doxygen
|
||||
MAKEREL := tools/makerel.py
|
||||
IMAGENAME := gz2e01.iso
|
||||
|
||||
POSTPROC := tools/postprocess.py
|
||||
|
||||
# Options
|
||||
INCLUDES := -i include -i include/dolphin/ -i src
|
||||
|
||||
@@ -95,44 +96,52 @@ default: all
|
||||
|
||||
all: dirs $(DOL)
|
||||
|
||||
ALL_DIRS := build $(BUILD_DIR) $(addprefix $(BUILD_DIR)/,$(SRC_DIRS) $(ASM_DIRS))
|
||||
|
||||
# Make sure build directory exists before compiling anything
|
||||
dirs:
|
||||
$(shell mkdir -p $(ALL_DIRS))
|
||||
@mkdir -p build
|
||||
@mkdir -p $(BUILD_DIR)
|
||||
|
||||
$(DOL): $(ELF) | tools
|
||||
$(ELF2DOL) $< $@ $(SDATA_PDHR) $(SBSS_PDHR) $(TARGET_COL)
|
||||
$(SHA1SUM) -c $(TARGET).sha1
|
||||
|
||||
clean:
|
||||
rm -f -d -r build
|
||||
$(MAKE) -C tools clean
|
||||
rm -f -d -r $(BUILD_DIR)/libs
|
||||
rm -f -d -r $(BUILD_DIR)/src
|
||||
rm -f $(ELF)
|
||||
rm -f $(DOL)
|
||||
rm -f $(BUILD_DIR)/*.a
|
||||
|
||||
tools:
|
||||
@$(MAKE) -C tools
|
||||
clean_all:
|
||||
rm -f -d -r build
|
||||
|
||||
clean_rels:
|
||||
rm -f -d -r $(BUILD_DIR)/rel
|
||||
rm -f $(BUILD_PATH)/*.rel
|
||||
|
||||
tools: $(ELF2DOL)
|
||||
|
||||
assets:
|
||||
@cd game; python3 ../tools/extract_game_assets.py ../$(IMAGENAME)
|
||||
@cd game; $(PYTHON) ../tools/extract_game_assets.py ../$(IMAGENAME)
|
||||
|
||||
docs:
|
||||
$(DOXYGEN) Doxyfile
|
||||
|
||||
rels: $(ELF) $(RELS)
|
||||
@echo generating RELs from .plf
|
||||
@python3 tools/makerel.py build --string-table $(BUILD_DIR)/frameworkF.str $(RELS) $(ELF)
|
||||
@$(PYTHON) $(MAKEREL) build --string-table $(BUILD_DIR)/frameworkF.str $(RELS) $(ELF)
|
||||
|
||||
$(ELF): $(LIBS) $(O_FILES)
|
||||
@echo $(O_FILES) > build/o_files
|
||||
@python3 tools/lcf.py dol --output $(LDSCRIPT)
|
||||
@$(PYTHON) tools/lcf.py dol --output $(LDSCRIPT)
|
||||
$(LD) -application $(LDFLAGS) -o $@ -lcf $(LDSCRIPT) @build/o_files $(LIBS)
|
||||
|
||||
#
|
||||
$(BUILD_DIR)/%.o: %.cpp
|
||||
@mkdir -p $(@D)
|
||||
@echo building... $<
|
||||
@iconv -f UTF-8 -t CP932 < $< > $@.iconv.cpp
|
||||
@$(CC) $(CFLAGS) -c -o $@ $@.iconv.cpp
|
||||
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp
|
||||
@$(CC) $(CFLAGS) -c -o $@ $(basename $@).cpp
|
||||
|
||||
# shared cpp files for RELs
|
||||
$(BUILD_DIR)/rel/%.o: rel/%.cpp
|
||||
@@ -142,6 +151,9 @@ $(BUILD_DIR)/rel/%.o: rel/%.cpp
|
||||
# include library and rel makefiles
|
||||
-include include_link.mk
|
||||
|
||||
# tools
|
||||
include tools/elf2dol/Makefile
|
||||
|
||||
### Debug Print ###
|
||||
print-% : ; $(info $* is a $(flavor $*) variable set to [$($*)]) @true
|
||||
|
||||
|
||||
@@ -1,17 +0,0 @@
|
||||
lbl_8026FA80:
|
||||
/* 8026FA80 C0 03 00 00 */ lfs f0, 0(r3)
|
||||
/* 8026FA84 EC 20 00 72 */ fmuls f1, f0, f1
|
||||
/* 8026FA88 FC 01 10 40 */ fcmpo cr0, f1, f2
|
||||
/* 8026FA8C 40 81 00 0C */ ble lbl_8026FA98
|
||||
/* 8026FA90 FC 20 10 90 */ fmr f1, f2
|
||||
/* 8026FA94 48 00 00 14 */ b lbl_8026FAA8
|
||||
lbl_8026FA98:
|
||||
/* 8026FA98 FC 00 10 50 */ fneg f0, f2
|
||||
/* 8026FA9C FC 01 00 40 */ fcmpo cr0, f1, f0
|
||||
/* 8026FAA0 40 80 00 08 */ bge lbl_8026FAA8
|
||||
/* 8026FAA4 FC 20 00 90 */ fmr f1, f0
|
||||
lbl_8026FAA8:
|
||||
/* 8026FAA8 C0 03 00 00 */ lfs f0, 0(r3)
|
||||
/* 8026FAAC EC 00 08 28 */ fsubs f0, f0, f1
|
||||
/* 8026FAB0 D0 03 00 00 */ stfs f0, 0(r3)
|
||||
/* 8026FAB4 4E 80 00 20 */ blr
|
||||
@@ -1,20 +0,0 @@
|
||||
lbl_8026FA3C:
|
||||
/* 8026FA3C C0 03 00 00 */ lfs f0, 0(r3)
|
||||
/* 8026FA40 FC 00 08 00 */ fcmpu cr0, f0, f1
|
||||
/* 8026FA44 4D 82 00 20 */ beqlr
|
||||
/* 8026FA48 EC 01 00 28 */ fsubs f0, f1, f0
|
||||
/* 8026FA4C EC 22 00 32 */ fmuls f1, f2, f0
|
||||
/* 8026FA50 FC 01 18 40 */ fcmpo cr0, f1, f3
|
||||
/* 8026FA54 40 81 00 0C */ ble lbl_8026FA60
|
||||
/* 8026FA58 FC 20 18 90 */ fmr f1, f3
|
||||
/* 8026FA5C 48 00 00 14 */ b lbl_8026FA70
|
||||
lbl_8026FA60:
|
||||
/* 8026FA60 FC 00 18 50 */ fneg f0, f3
|
||||
/* 8026FA64 FC 01 00 40 */ fcmpo cr0, f1, f0
|
||||
/* 8026FA68 40 80 00 08 */ bge lbl_8026FA70
|
||||
/* 8026FA6C FC 20 00 90 */ fmr f1, f0
|
||||
lbl_8026FA70:
|
||||
/* 8026FA70 C0 03 00 00 */ lfs f0, 0(r3)
|
||||
/* 8026FA74 EC 00 08 2A */ fadds f0, f0, f1
|
||||
/* 8026FA78 D0 03 00 00 */ stfs f0, 0(r3)
|
||||
/* 8026FA7C 4E 80 00 20 */ blr
|
||||
@@ -1,24 +0,0 @@
|
||||
lbl_80270608:
|
||||
/* 80270608 A8 E3 00 00 */ lha r7, 0(r3)
|
||||
/* 8027060C 7C 07 20 50 */ subf r0, r7, r4
|
||||
/* 80270610 7C 04 07 34 */ extsh r4, r0
|
||||
/* 80270614 7C A0 07 34 */ extsh r0, r5
|
||||
/* 80270618 7C 04 03 D6 */ divw r0, r4, r0
|
||||
/* 8027061C 7C 04 07 34 */ extsh r4, r0
|
||||
/* 80270620 7C C0 07 34 */ extsh r0, r6
|
||||
/* 80270624 7C 04 00 00 */ cmpw r4, r0
|
||||
/* 80270628 40 81 00 10 */ ble lbl_80270638
|
||||
/* 8027062C 7C 07 32 14 */ add r0, r7, r6
|
||||
/* 80270630 B0 03 00 00 */ sth r0, 0(r3)
|
||||
/* 80270634 4E 80 00 20 */ blr
|
||||
lbl_80270638:
|
||||
/* 80270638 7C 00 00 D0 */ neg r0, r0
|
||||
/* 8027063C 7C 04 00 00 */ cmpw r4, r0
|
||||
/* 80270640 40 80 00 10 */ bge lbl_80270650
|
||||
/* 80270644 7C 06 38 50 */ subf r0, r6, r7
|
||||
/* 80270648 B0 03 00 00 */ sth r0, 0(r3)
|
||||
/* 8027064C 4E 80 00 20 */ blr
|
||||
lbl_80270650:
|
||||
/* 80270650 7C 07 22 14 */ add r0, r7, r4
|
||||
/* 80270654 B0 03 00 00 */ sth r0, 0(r3)
|
||||
/* 80270658 4E 80 00 20 */ blr
|
||||
@@ -1,57 +0,0 @@
|
||||
lbl_80270540:
|
||||
/* 80270540 A9 03 00 00 */ lha r8, 0(r3)
|
||||
/* 80270544 7C 89 07 34 */ extsh r9, r4
|
||||
/* 80270548 7C 08 48 50 */ subf r0, r8, r9
|
||||
/* 8027054C 7C 0A 07 34 */ extsh r10, r0
|
||||
/* 80270550 7C 08 48 00 */ cmpw r8, r9
|
||||
/* 80270554 41 82 00 A4 */ beq lbl_802705F8
|
||||
/* 80270558 7C A0 07 34 */ extsh r0, r5
|
||||
/* 8027055C 7C 0A 03 D6 */ divw r0, r10, r0
|
||||
/* 80270560 7C 05 07 34 */ extsh r5, r0
|
||||
/* 80270564 7C E0 07 34 */ extsh r0, r7
|
||||
/* 80270568 7C 05 00 00 */ cmpw r5, r0
|
||||
/* 8027056C 41 81 00 10 */ bgt lbl_8027057C
|
||||
/* 80270570 7C 00 00 D0 */ neg r0, r0
|
||||
/* 80270574 7C 05 00 00 */ cmpw r5, r0
|
||||
/* 80270578 40 80 00 3C */ bge lbl_802705B4
|
||||
lbl_8027057C:
|
||||
/* 8027057C 7C C0 07 34 */ extsh r0, r6
|
||||
/* 80270580 7C 05 00 00 */ cmpw r5, r0
|
||||
/* 80270584 40 81 00 08 */ ble lbl_8027058C
|
||||
/* 80270588 7C C5 33 78 */ mr r5, r6
|
||||
lbl_8027058C:
|
||||
/* 8027058C 7C A4 07 34 */ extsh r4, r5
|
||||
/* 80270590 7C C0 07 34 */ extsh r0, r6
|
||||
/* 80270594 7C 00 00 D0 */ neg r0, r0
|
||||
/* 80270598 7C 04 00 00 */ cmpw r4, r0
|
||||
/* 8027059C 40 80 00 08 */ bge lbl_802705A4
|
||||
/* 802705A0 7C 05 07 34 */ extsh r5, r0
|
||||
lbl_802705A4:
|
||||
/* 802705A4 A8 03 00 00 */ lha r0, 0(r3)
|
||||
/* 802705A8 7C 00 2A 14 */ add r0, r0, r5
|
||||
/* 802705AC B0 03 00 00 */ sth r0, 0(r3)
|
||||
/* 802705B0 48 00 00 48 */ b lbl_802705F8
|
||||
lbl_802705B4:
|
||||
/* 802705B4 7D 40 07 35 */ extsh. r0, r10
|
||||
/* 802705B8 41 80 00 24 */ blt lbl_802705DC
|
||||
/* 802705BC 7C 08 3A 14 */ add r0, r8, r7
|
||||
/* 802705C0 B0 03 00 00 */ sth r0, 0(r3)
|
||||
/* 802705C4 A8 03 00 00 */ lha r0, 0(r3)
|
||||
/* 802705C8 7C 00 48 50 */ subf r0, r0, r9
|
||||
/* 802705CC 7C 00 07 35 */ extsh. r0, r0
|
||||
/* 802705D0 41 81 00 28 */ bgt lbl_802705F8
|
||||
/* 802705D4 B0 83 00 00 */ sth r4, 0(r3)
|
||||
/* 802705D8 48 00 00 20 */ b lbl_802705F8
|
||||
lbl_802705DC:
|
||||
/* 802705DC 7C 07 40 50 */ subf r0, r7, r8
|
||||
/* 802705E0 B0 03 00 00 */ sth r0, 0(r3)
|
||||
/* 802705E4 A8 03 00 00 */ lha r0, 0(r3)
|
||||
/* 802705E8 7C 00 48 50 */ subf r0, r0, r9
|
||||
/* 802705EC 7C 00 07 35 */ extsh. r0, r0
|
||||
/* 802705F0 41 80 00 08 */ blt lbl_802705F8
|
||||
/* 802705F4 B0 83 00 00 */ sth r4, 0(r3)
|
||||
lbl_802705F8:
|
||||
/* 802705F8 A8 03 00 00 */ lha r0, 0(r3)
|
||||
/* 802705FC 7C 00 48 50 */ subf r0, r0, r9
|
||||
/* 80270600 7C 03 07 34 */ extsh r3, r0
|
||||
/* 80270604 4E 80 00 20 */ blr
|
||||
@@ -1,130 +0,0 @@
|
||||
lbl_80270178:
|
||||
/* 80270178 94 21 FF 90 */ stwu r1, -0x70(r1)
|
||||
/* 8027017C 7C 08 02 A6 */ mflr r0
|
||||
/* 80270180 90 01 00 74 */ stw r0, 0x74(r1)
|
||||
/* 80270184 DB E1 00 60 */ stfd f31, 0x60(r1)
|
||||
/* 80270188 F3 E1 00 68 */ psq_st f31, 104(r1), 0, 0 /* qr0 */
|
||||
/* 8027018C DB C1 00 50 */ stfd f30, 0x50(r1)
|
||||
/* 80270190 F3 C1 00 58 */ psq_st f30, 88(r1), 0, 0 /* qr0 */
|
||||
/* 80270194 93 E1 00 4C */ stw r31, 0x4c(r1)
|
||||
/* 80270198 93 C1 00 48 */ stw r30, 0x48(r1)
|
||||
/* 8027019C 7C 7E 1B 78 */ mr r30, r3
|
||||
/* 802701A0 7C 9F 23 78 */ mr r31, r4
|
||||
/* 802701A4 FF C0 08 90 */ fmr f30, f1
|
||||
/* 802701A8 FF E0 10 90 */ fmr f31, f2
|
||||
/* 802701AC 4B FF 6E C1 */ bl __ne__4cXyzCFRC3Vec
|
||||
/* 802701B0 54 60 06 3F */ clrlwi. r0, r3, 0x18
|
||||
/* 802701B4 41 82 01 74 */ beq lbl_80270328
|
||||
/* 802701B8 38 61 00 24 */ addi r3, r1, 0x24
|
||||
/* 802701BC 7F C4 F3 78 */ mr r4, r30
|
||||
/* 802701C0 7F E5 FB 78 */ mr r5, r31
|
||||
/* 802701C4 4B FF 69 71 */ bl __mi__4cXyzCFRC3Vec
|
||||
/* 802701C8 38 61 00 18 */ addi r3, r1, 0x18
|
||||
/* 802701CC 38 81 00 24 */ addi r4, r1, 0x24
|
||||
/* 802701D0 FC 20 F0 90 */ fmr f1, f30
|
||||
/* 802701D4 4B FF 69 B1 */ bl __ml__4cXyzCFf
|
||||
/* 802701D8 C0 01 00 18 */ lfs f0, 0x18(r1)
|
||||
/* 802701DC D0 01 00 30 */ stfs f0, 0x30(r1)
|
||||
/* 802701E0 C0 01 00 1C */ lfs f0, 0x1c(r1)
|
||||
/* 802701E4 D0 01 00 34 */ stfs f0, 0x34(r1)
|
||||
/* 802701E8 C0 01 00 20 */ lfs f0, 0x20(r1)
|
||||
/* 802701EC D0 01 00 38 */ stfs f0, 0x38(r1)
|
||||
/* 802701F0 38 61 00 30 */ addi r3, r1, 0x30
|
||||
/* 802701F4 48 0D 6F 45 */ bl PSVECSquareMag
|
||||
/* 802701F8 C0 02 B7 E0 */ lfs f0, lit_2262(r2)
|
||||
/* 802701FC FC 01 00 40 */ fcmpo cr0, f1, f0
|
||||
/* 80270200 40 81 00 58 */ ble lbl_80270258
|
||||
/* 80270204 FC 00 08 34 */ frsqrte f0, f1
|
||||
/* 80270208 C8 82 B7 E8 */ lfd f4, lit_2379(r2)
|
||||
/* 8027020C FC 44 00 32 */ fmul f2, f4, f0
|
||||
/* 80270210 C8 62 B7 F0 */ lfd f3, lit_2380(r2)
|
||||
/* 80270214 FC 00 00 32 */ fmul f0, f0, f0
|
||||
/* 80270218 FC 01 00 32 */ fmul f0, f1, f0
|
||||
/* 8027021C FC 03 00 28 */ fsub f0, f3, f0
|
||||
/* 80270220 FC 02 00 32 */ fmul f0, f2, f0
|
||||
/* 80270224 FC 44 00 32 */ fmul f2, f4, f0
|
||||
/* 80270228 FC 00 00 32 */ fmul f0, f0, f0
|
||||
/* 8027022C FC 01 00 32 */ fmul f0, f1, f0
|
||||
/* 80270230 FC 03 00 28 */ fsub f0, f3, f0
|
||||
/* 80270234 FC 02 00 32 */ fmul f0, f2, f0
|
||||
/* 80270238 FC 44 00 32 */ fmul f2, f4, f0
|
||||
/* 8027023C FC 00 00 32 */ fmul f0, f0, f0
|
||||
/* 80270240 FC 01 00 32 */ fmul f0, f1, f0
|
||||
/* 80270244 FC 03 00 28 */ fsub f0, f3, f0
|
||||
/* 80270248 FC 02 00 32 */ fmul f0, f2, f0
|
||||
/* 8027024C FC 21 00 32 */ fmul f1, f1, f0
|
||||
/* 80270250 FC 20 08 18 */ frsp f1, f1
|
||||
/* 80270254 48 00 00 88 */ b lbl_802702DC
|
||||
lbl_80270258:
|
||||
/* 80270258 C8 02 B7 F8 */ lfd f0, lit_2381(r2)
|
||||
/* 8027025C FC 01 00 40 */ fcmpo cr0, f1, f0
|
||||
/* 80270260 40 80 00 10 */ bge lbl_80270270
|
||||
/* 80270264 3C 60 80 45 */ lis r3, __float_nan@ha /* 0x80450AE0@ha */
|
||||
/* 80270268 C0 23 0A E0 */ lfs f1, __float_nan@l(r3) /* 0x80450AE0@l */
|
||||
/* 8027026C 48 00 00 70 */ b lbl_802702DC
|
||||
lbl_80270270:
|
||||
/* 80270270 D0 21 00 08 */ stfs f1, 8(r1)
|
||||
/* 80270274 80 81 00 08 */ lwz r4, 8(r1)
|
||||
/* 80270278 54 83 00 50 */ rlwinm r3, r4, 0, 1, 8
|
||||
/* 8027027C 3C 00 7F 80 */ lis r0, 0x7f80
|
||||
/* 80270280 7C 03 00 00 */ cmpw r3, r0
|
||||
/* 80270284 41 82 00 14 */ beq lbl_80270298
|
||||
/* 80270288 40 80 00 40 */ bge lbl_802702C8
|
||||
/* 8027028C 2C 03 00 00 */ cmpwi r3, 0
|
||||
/* 80270290 41 82 00 20 */ beq lbl_802702B0
|
||||
/* 80270294 48 00 00 34 */ b lbl_802702C8
|
||||
lbl_80270298:
|
||||
/* 80270298 54 80 02 7F */ clrlwi. r0, r4, 9
|
||||
/* 8027029C 41 82 00 0C */ beq lbl_802702A8
|
||||
/* 802702A0 38 00 00 01 */ li r0, 1
|
||||
/* 802702A4 48 00 00 28 */ b lbl_802702CC
|
||||
lbl_802702A8:
|
||||
/* 802702A8 38 00 00 02 */ li r0, 2
|
||||
/* 802702AC 48 00 00 20 */ b lbl_802702CC
|
||||
lbl_802702B0:
|
||||
/* 802702B0 54 80 02 7F */ clrlwi. r0, r4, 9
|
||||
/* 802702B4 41 82 00 0C */ beq lbl_802702C0
|
||||
/* 802702B8 38 00 00 05 */ li r0, 5
|
||||
/* 802702BC 48 00 00 10 */ b lbl_802702CC
|
||||
lbl_802702C0:
|
||||
/* 802702C0 38 00 00 03 */ li r0, 3
|
||||
/* 802702C4 48 00 00 08 */ b lbl_802702CC
|
||||
lbl_802702C8:
|
||||
/* 802702C8 38 00 00 04 */ li r0, 4
|
||||
lbl_802702CC:
|
||||
/* 802702CC 2C 00 00 01 */ cmpwi r0, 1
|
||||
/* 802702D0 40 82 00 0C */ bne lbl_802702DC
|
||||
/* 802702D4 3C 60 80 45 */ lis r3, __float_nan@ha /* 0x80450AE0@ha */
|
||||
/* 802702D8 C0 23 0A E0 */ lfs f1, __float_nan@l(r3) /* 0x80450AE0@l */
|
||||
lbl_802702DC:
|
||||
/* 802702DC FC 01 F8 40 */ fcmpo cr0, f1, f31
|
||||
/* 802702E0 40 81 00 38 */ ble lbl_80270318
|
||||
/* 802702E4 38 61 00 0C */ addi r3, r1, 0xc
|
||||
/* 802702E8 38 81 00 30 */ addi r4, r1, 0x30
|
||||
/* 802702EC 4B FF 6A 45 */ bl normZP__4cXyzCFv
|
||||
/* 802702F0 C0 01 00 0C */ lfs f0, 0xc(r1)
|
||||
/* 802702F4 D0 01 00 30 */ stfs f0, 0x30(r1)
|
||||
/* 802702F8 C0 01 00 10 */ lfs f0, 0x10(r1)
|
||||
/* 802702FC D0 01 00 34 */ stfs f0, 0x34(r1)
|
||||
/* 80270300 C0 01 00 14 */ lfs f0, 0x14(r1)
|
||||
/* 80270304 D0 01 00 38 */ stfs f0, 0x38(r1)
|
||||
/* 80270308 38 61 00 30 */ addi r3, r1, 0x30
|
||||
/* 8027030C 7C 64 1B 78 */ mr r4, r3
|
||||
/* 80270310 FC 20 F8 90 */ fmr f1, f31
|
||||
/* 80270314 48 0D 6D C5 */ bl PSVECScale
|
||||
lbl_80270318:
|
||||
/* 80270318 7F C3 F3 78 */ mr r3, r30
|
||||
/* 8027031C 38 81 00 30 */ addi r4, r1, 0x30
|
||||
/* 80270320 7F C5 F3 78 */ mr r5, r30
|
||||
/* 80270324 48 0D 6D 91 */ bl PSVECSubtract
|
||||
lbl_80270328:
|
||||
/* 80270328 E3 E1 00 68 */ psq_l f31, 104(r1), 0, 0 /* qr0 */
|
||||
/* 8027032C CB E1 00 60 */ lfd f31, 0x60(r1)
|
||||
/* 80270330 E3 C1 00 58 */ psq_l f30, 88(r1), 0, 0 /* qr0 */
|
||||
/* 80270334 CB C1 00 50 */ lfd f30, 0x50(r1)
|
||||
/* 80270338 83 E1 00 4C */ lwz r31, 0x4c(r1)
|
||||
/* 8027033C 83 C1 00 48 */ lwz r30, 0x48(r1)
|
||||
/* 80270340 80 01 00 74 */ lwz r0, 0x74(r1)
|
||||
/* 80270344 7C 08 03 A6 */ mtlr r0
|
||||
/* 80270348 38 21 00 70 */ addi r1, r1, 0x70
|
||||
/* 8027034C 4E 80 00 20 */ blr
|
||||
@@ -1,137 +0,0 @@
|
||||
lbl_80270350:
|
||||
/* 80270350 94 21 FF 90 */ stwu r1, -0x70(r1)
|
||||
/* 80270354 7C 08 02 A6 */ mflr r0
|
||||
/* 80270358 90 01 00 74 */ stw r0, 0x74(r1)
|
||||
/* 8027035C DB E1 00 60 */ stfd f31, 0x60(r1)
|
||||
/* 80270360 F3 E1 00 68 */ psq_st f31, 104(r1), 0, 0 /* qr0 */
|
||||
/* 80270364 DB C1 00 50 */ stfd f30, 0x50(r1)
|
||||
/* 80270368 F3 C1 00 58 */ psq_st f30, 88(r1), 0, 0 /* qr0 */
|
||||
/* 8027036C 93 E1 00 4C */ stw r31, 0x4c(r1)
|
||||
/* 80270370 7C 7F 1B 78 */ mr r31, r3
|
||||
/* 80270374 7C 85 23 78 */ mr r5, r4
|
||||
/* 80270378 FF C0 08 90 */ fmr f30, f1
|
||||
/* 8027037C FF E0 10 90 */ fmr f31, f2
|
||||
/* 80270380 C0 23 00 00 */ lfs f1, 0(r3)
|
||||
/* 80270384 C0 04 00 00 */ lfs f0, 0(r4)
|
||||
/* 80270388 FC 01 00 00 */ fcmpu cr0, f1, f0
|
||||
/* 8027038C 40 82 00 14 */ bne lbl_802703A0
|
||||
/* 80270390 C0 3F 00 08 */ lfs f1, 8(r31)
|
||||
/* 80270394 C0 05 00 08 */ lfs f0, 8(r5)
|
||||
/* 80270398 FC 01 00 00 */ fcmpu cr0, f1, f0
|
||||
/* 8027039C 41 82 01 80 */ beq lbl_8027051C
|
||||
lbl_802703A0:
|
||||
/* 802703A0 38 61 00 24 */ addi r3, r1, 0x24
|
||||
/* 802703A4 7F E4 FB 78 */ mr r4, r31
|
||||
/* 802703A8 4B FF 67 8D */ bl __mi__4cXyzCFRC3Vec
|
||||
/* 802703AC 38 61 00 18 */ addi r3, r1, 0x18
|
||||
/* 802703B0 38 81 00 24 */ addi r4, r1, 0x24
|
||||
/* 802703B4 FC 20 F0 90 */ fmr f1, f30
|
||||
/* 802703B8 4B FF 67 CD */ bl __ml__4cXyzCFf
|
||||
/* 802703BC C0 41 00 18 */ lfs f2, 0x18(r1)
|
||||
/* 802703C0 D0 41 00 30 */ stfs f2, 0x30(r1)
|
||||
/* 802703C4 C0 01 00 1C */ lfs f0, 0x1c(r1)
|
||||
/* 802703C8 D0 01 00 34 */ stfs f0, 0x34(r1)
|
||||
/* 802703CC C0 21 00 20 */ lfs f1, 0x20(r1)
|
||||
/* 802703D0 D0 21 00 38 */ stfs f1, 0x38(r1)
|
||||
/* 802703D4 D0 41 00 0C */ stfs f2, 0xc(r1)
|
||||
/* 802703D8 C0 02 B7 E0 */ lfs f0, lit_2262(r2)
|
||||
/* 802703DC D0 01 00 10 */ stfs f0, 0x10(r1)
|
||||
/* 802703E0 D0 21 00 14 */ stfs f1, 0x14(r1)
|
||||
/* 802703E4 38 61 00 0C */ addi r3, r1, 0xc
|
||||
/* 802703E8 48 0D 6D 51 */ bl PSVECSquareMag
|
||||
/* 802703EC C0 02 B7 E0 */ lfs f0, lit_2262(r2)
|
||||
/* 802703F0 FC 01 00 40 */ fcmpo cr0, f1, f0
|
||||
/* 802703F4 40 81 00 58 */ ble lbl_8027044C
|
||||
/* 802703F8 FC 00 08 34 */ frsqrte f0, f1
|
||||
/* 802703FC C8 82 B7 E8 */ lfd f4, lit_2379(r2)
|
||||
/* 80270400 FC 44 00 32 */ fmul f2, f4, f0
|
||||
/* 80270404 C8 62 B7 F0 */ lfd f3, lit_2380(r2)
|
||||
/* 80270408 FC 00 00 32 */ fmul f0, f0, f0
|
||||
/* 8027040C FC 01 00 32 */ fmul f0, f1, f0
|
||||
/* 80270410 FC 03 00 28 */ fsub f0, f3, f0
|
||||
/* 80270414 FC 02 00 32 */ fmul f0, f2, f0
|
||||
/* 80270418 FC 44 00 32 */ fmul f2, f4, f0
|
||||
/* 8027041C FC 00 00 32 */ fmul f0, f0, f0
|
||||
/* 80270420 FC 01 00 32 */ fmul f0, f1, f0
|
||||
/* 80270424 FC 03 00 28 */ fsub f0, f3, f0
|
||||
/* 80270428 FC 02 00 32 */ fmul f0, f2, f0
|
||||
/* 8027042C FC 44 00 32 */ fmul f2, f4, f0
|
||||
/* 80270430 FC 00 00 32 */ fmul f0, f0, f0
|
||||
/* 80270434 FC 01 00 32 */ fmul f0, f1, f0
|
||||
/* 80270438 FC 03 00 28 */ fsub f0, f3, f0
|
||||
/* 8027043C FC 02 00 32 */ fmul f0, f2, f0
|
||||
/* 80270440 FC 21 00 32 */ fmul f1, f1, f0
|
||||
/* 80270444 FC 20 08 18 */ frsp f1, f1
|
||||
/* 80270448 48 00 00 88 */ b lbl_802704D0
|
||||
lbl_8027044C:
|
||||
/* 8027044C C8 02 B7 F8 */ lfd f0, lit_2381(r2)
|
||||
/* 80270450 FC 01 00 40 */ fcmpo cr0, f1, f0
|
||||
/* 80270454 40 80 00 10 */ bge lbl_80270464
|
||||
/* 80270458 3C 60 80 45 */ lis r3, __float_nan@ha /* 0x80450AE0@ha */
|
||||
/* 8027045C C0 23 0A E0 */ lfs f1, __float_nan@l(r3) /* 0x80450AE0@l */
|
||||
/* 80270460 48 00 00 70 */ b lbl_802704D0
|
||||
lbl_80270464:
|
||||
/* 80270464 D0 21 00 08 */ stfs f1, 8(r1)
|
||||
/* 80270468 80 81 00 08 */ lwz r4, 8(r1)
|
||||
/* 8027046C 54 83 00 50 */ rlwinm r3, r4, 0, 1, 8
|
||||
/* 80270470 3C 00 7F 80 */ lis r0, 0x7f80
|
||||
/* 80270474 7C 03 00 00 */ cmpw r3, r0
|
||||
/* 80270478 41 82 00 14 */ beq lbl_8027048C
|
||||
/* 8027047C 40 80 00 40 */ bge lbl_802704BC
|
||||
/* 80270480 2C 03 00 00 */ cmpwi r3, 0
|
||||
/* 80270484 41 82 00 20 */ beq lbl_802704A4
|
||||
/* 80270488 48 00 00 34 */ b lbl_802704BC
|
||||
lbl_8027048C:
|
||||
/* 8027048C 54 80 02 7F */ clrlwi. r0, r4, 9
|
||||
/* 80270490 41 82 00 0C */ beq lbl_8027049C
|
||||
/* 80270494 38 00 00 01 */ li r0, 1
|
||||
/* 80270498 48 00 00 28 */ b lbl_802704C0
|
||||
lbl_8027049C:
|
||||
/* 8027049C 38 00 00 02 */ li r0, 2
|
||||
/* 802704A0 48 00 00 20 */ b lbl_802704C0
|
||||
lbl_802704A4:
|
||||
/* 802704A4 54 80 02 7F */ clrlwi. r0, r4, 9
|
||||
/* 802704A8 41 82 00 0C */ beq lbl_802704B4
|
||||
/* 802704AC 38 00 00 05 */ li r0, 5
|
||||
/* 802704B0 48 00 00 10 */ b lbl_802704C0
|
||||
lbl_802704B4:
|
||||
/* 802704B4 38 00 00 03 */ li r0, 3
|
||||
/* 802704B8 48 00 00 08 */ b lbl_802704C0
|
||||
lbl_802704BC:
|
||||
/* 802704BC 38 00 00 04 */ li r0, 4
|
||||
lbl_802704C0:
|
||||
/* 802704C0 2C 00 00 01 */ cmpwi r0, 1
|
||||
/* 802704C4 40 82 00 0C */ bne lbl_802704D0
|
||||
/* 802704C8 3C 60 80 45 */ lis r3, __float_nan@ha /* 0x80450AE0@ha */
|
||||
/* 802704CC C0 23 0A E0 */ lfs f1, __float_nan@l(r3) /* 0x80450AE0@l */
|
||||
lbl_802704D0:
|
||||
/* 802704D0 FC 00 0A 10 */ fabs f0, f1
|
||||
/* 802704D4 FC 40 00 18 */ frsp f2, f0
|
||||
/* 802704D8 C0 02 B8 00 */ lfs f0, lit_2382(r2)
|
||||
/* 802704DC FC 02 00 40 */ fcmpo cr0, f2, f0
|
||||
/* 802704E0 41 80 00 3C */ blt lbl_8027051C
|
||||
/* 802704E4 FC 01 F8 40 */ fcmpo cr0, f1, f31
|
||||
/* 802704E8 40 81 00 14 */ ble lbl_802704FC
|
||||
/* 802704EC 38 61 00 30 */ addi r3, r1, 0x30
|
||||
/* 802704F0 7C 64 1B 78 */ mr r4, r3
|
||||
/* 802704F4 EC 3F 08 24 */ fdivs f1, f31, f1
|
||||
/* 802704F8 48 0D 6B E1 */ bl PSVECScale
|
||||
lbl_802704FC:
|
||||
/* 802704FC C0 3F 00 00 */ lfs f1, 0(r31)
|
||||
/* 80270500 C0 01 00 30 */ lfs f0, 0x30(r1)
|
||||
/* 80270504 EC 01 00 28 */ fsubs f0, f1, f0
|
||||
/* 80270508 D0 1F 00 00 */ stfs f0, 0(r31)
|
||||
/* 8027050C C0 3F 00 08 */ lfs f1, 8(r31)
|
||||
/* 80270510 C0 01 00 38 */ lfs f0, 0x38(r1)
|
||||
/* 80270514 EC 01 00 28 */ fsubs f0, f1, f0
|
||||
/* 80270518 D0 1F 00 08 */ stfs f0, 8(r31)
|
||||
lbl_8027051C:
|
||||
/* 8027051C E3 E1 00 68 */ psq_l f31, 104(r1), 0, 0 /* qr0 */
|
||||
/* 80270520 CB E1 00 60 */ lfd f31, 0x60(r1)
|
||||
/* 80270524 E3 C1 00 58 */ psq_l f30, 88(r1), 0, 0 /* qr0 */
|
||||
/* 80270528 CB C1 00 50 */ lfd f30, 0x50(r1)
|
||||
/* 8027052C 83 E1 00 4C */ lwz r31, 0x4c(r1)
|
||||
/* 80270530 80 01 00 74 */ lwz r0, 0x74(r1)
|
||||
/* 80270534 7C 08 03 A6 */ mtlr r0
|
||||
/* 80270538 38 21 00 70 */ addi r1, r1, 0x70
|
||||
/* 8027053C 4E 80 00 20 */ blr
|
||||
@@ -1,250 +0,0 @@
|
||||
lbl_8026FDF4:
|
||||
/* 8026FDF4 94 21 FF 60 */ stwu r1, -0xa0(r1)
|
||||
/* 8026FDF8 7C 08 02 A6 */ mflr r0
|
||||
/* 8026FDFC 90 01 00 A4 */ stw r0, 0xa4(r1)
|
||||
/* 8026FE00 DB E1 00 90 */ stfd f31, 0x90(r1)
|
||||
/* 8026FE04 F3 E1 00 98 */ psq_st f31, 152(r1), 0, 0 /* qr0 */
|
||||
/* 8026FE08 DB C1 00 80 */ stfd f30, 0x80(r1)
|
||||
/* 8026FE0C F3 C1 00 88 */ psq_st f30, 136(r1), 0, 0 /* qr0 */
|
||||
/* 8026FE10 DB A1 00 70 */ stfd f29, 0x70(r1)
|
||||
/* 8026FE14 F3 A1 00 78 */ psq_st f29, 120(r1), 0, 0 /* qr0 */
|
||||
/* 8026FE18 DB 81 00 60 */ stfd f28, 0x60(r1)
|
||||
/* 8026FE1C F3 81 00 68 */ psq_st f28, 104(r1), 0, 0 /* qr0 */
|
||||
/* 8026FE20 93 E1 00 5C */ stw r31, 0x5c(r1)
|
||||
/* 8026FE24 93 C1 00 58 */ stw r30, 0x58(r1)
|
||||
/* 8026FE28 7C 7E 1B 78 */ mr r30, r3
|
||||
/* 8026FE2C 7C 9F 23 78 */ mr r31, r4
|
||||
/* 8026FE30 FF A0 08 90 */ fmr f29, f1
|
||||
/* 8026FE34 FF C0 10 90 */ fmr f30, f2
|
||||
/* 8026FE38 FF E0 18 90 */ fmr f31, f3
|
||||
/* 8026FE3C C0 23 00 00 */ lfs f1, 0(r3)
|
||||
/* 8026FE40 C0 04 00 00 */ lfs f0, 0(r4)
|
||||
/* 8026FE44 FC 01 00 00 */ fcmpu cr0, f1, f0
|
||||
/* 8026FE48 40 82 00 14 */ bne lbl_8026FE5C
|
||||
/* 8026FE4C C0 3E 00 08 */ lfs f1, 8(r30)
|
||||
/* 8026FE50 C0 1F 00 08 */ lfs f0, 8(r31)
|
||||
/* 8026FE54 FC 01 00 00 */ fcmpu cr0, f1, f0
|
||||
/* 8026FE58 41 82 01 D4 */ beq lbl_8027002C
|
||||
lbl_8026FE5C:
|
||||
/* 8026FE5C 38 61 00 34 */ addi r3, r1, 0x34
|
||||
/* 8026FE60 7F C4 F3 78 */ mr r4, r30
|
||||
/* 8026FE64 7F E5 FB 78 */ mr r5, r31
|
||||
/* 8026FE68 4B FF 6C CD */ bl __mi__4cXyzCFRC3Vec
|
||||
/* 8026FE6C C0 41 00 34 */ lfs f2, 0x34(r1)
|
||||
/* 8026FE70 D0 41 00 40 */ stfs f2, 0x40(r1)
|
||||
/* 8026FE74 C0 01 00 38 */ lfs f0, 0x38(r1)
|
||||
/* 8026FE78 D0 01 00 44 */ stfs f0, 0x44(r1)
|
||||
/* 8026FE7C C0 21 00 3C */ lfs f1, 0x3c(r1)
|
||||
/* 8026FE80 D0 21 00 48 */ stfs f1, 0x48(r1)
|
||||
/* 8026FE84 D0 41 00 1C */ stfs f2, 0x1c(r1)
|
||||
/* 8026FE88 C0 02 B7 E0 */ lfs f0, lit_2262(r2)
|
||||
/* 8026FE8C D0 01 00 20 */ stfs f0, 0x20(r1)
|
||||
/* 8026FE90 D0 21 00 24 */ stfs f1, 0x24(r1)
|
||||
/* 8026FE94 38 61 00 1C */ addi r3, r1, 0x1c
|
||||
/* 8026FE98 48 0D 72 A1 */ bl PSVECSquareMag
|
||||
/* 8026FE9C C0 02 B7 E0 */ lfs f0, lit_2262(r2)
|
||||
/* 8026FEA0 FC 01 00 40 */ fcmpo cr0, f1, f0
|
||||
/* 8026FEA4 40 81 00 58 */ ble lbl_8026FEFC
|
||||
/* 8026FEA8 FC 00 08 34 */ frsqrte f0, f1
|
||||
/* 8026FEAC C8 82 B7 E8 */ lfd f4, lit_2379(r2)
|
||||
/* 8026FEB0 FC 44 00 32 */ fmul f2, f4, f0
|
||||
/* 8026FEB4 C8 62 B7 F0 */ lfd f3, lit_2380(r2)
|
||||
/* 8026FEB8 FC 00 00 32 */ fmul f0, f0, f0
|
||||
/* 8026FEBC FC 01 00 32 */ fmul f0, f1, f0
|
||||
/* 8026FEC0 FC 03 00 28 */ fsub f0, f3, f0
|
||||
/* 8026FEC4 FC 02 00 32 */ fmul f0, f2, f0
|
||||
/* 8026FEC8 FC 44 00 32 */ fmul f2, f4, f0
|
||||
/* 8026FECC FC 00 00 32 */ fmul f0, f0, f0
|
||||
/* 8026FED0 FC 01 00 32 */ fmul f0, f1, f0
|
||||
/* 8026FED4 FC 03 00 28 */ fsub f0, f3, f0
|
||||
/* 8026FED8 FC 02 00 32 */ fmul f0, f2, f0
|
||||
/* 8026FEDC FC 44 00 32 */ fmul f2, f4, f0
|
||||
/* 8026FEE0 FC 00 00 32 */ fmul f0, f0, f0
|
||||
/* 8026FEE4 FC 01 00 32 */ fmul f0, f1, f0
|
||||
/* 8026FEE8 FC 03 00 28 */ fsub f0, f3, f0
|
||||
/* 8026FEEC FC 02 00 32 */ fmul f0, f2, f0
|
||||
/* 8026FEF0 FC 21 00 32 */ fmul f1, f1, f0
|
||||
/* 8026FEF4 FC 20 08 18 */ frsp f1, f1
|
||||
/* 8026FEF8 48 00 00 88 */ b lbl_8026FF80
|
||||
lbl_8026FEFC:
|
||||
/* 8026FEFC C8 02 B7 F8 */ lfd f0, lit_2381(r2)
|
||||
/* 8026FF00 FC 01 00 40 */ fcmpo cr0, f1, f0
|
||||
/* 8026FF04 40 80 00 10 */ bge lbl_8026FF14
|
||||
/* 8026FF08 3C 60 80 45 */ lis r3, __float_nan@ha /* 0x80450AE0@ha */
|
||||
/* 8026FF0C C0 23 0A E0 */ lfs f1, __float_nan@l(r3) /* 0x80450AE0@l */
|
||||
/* 8026FF10 48 00 00 70 */ b lbl_8026FF80
|
||||
lbl_8026FF14:
|
||||
/* 8026FF14 D0 21 00 0C */ stfs f1, 0xc(r1)
|
||||
/* 8026FF18 80 81 00 0C */ lwz r4, 0xc(r1)
|
||||
/* 8026FF1C 54 83 00 50 */ rlwinm r3, r4, 0, 1, 8
|
||||
/* 8026FF20 3C 00 7F 80 */ lis r0, 0x7f80
|
||||
/* 8026FF24 7C 03 00 00 */ cmpw r3, r0
|
||||
/* 8026FF28 41 82 00 14 */ beq lbl_8026FF3C
|
||||
/* 8026FF2C 40 80 00 40 */ bge lbl_8026FF6C
|
||||
/* 8026FF30 2C 03 00 00 */ cmpwi r3, 0
|
||||
/* 8026FF34 41 82 00 20 */ beq lbl_8026FF54
|
||||
/* 8026FF38 48 00 00 34 */ b lbl_8026FF6C
|
||||
lbl_8026FF3C:
|
||||
/* 8026FF3C 54 80 02 7F */ clrlwi. r0, r4, 9
|
||||
/* 8026FF40 41 82 00 0C */ beq lbl_8026FF4C
|
||||
/* 8026FF44 38 00 00 01 */ li r0, 1
|
||||
/* 8026FF48 48 00 00 28 */ b lbl_8026FF70
|
||||
lbl_8026FF4C:
|
||||
/* 8026FF4C 38 00 00 02 */ li r0, 2
|
||||
/* 8026FF50 48 00 00 20 */ b lbl_8026FF70
|
||||
lbl_8026FF54:
|
||||
/* 8026FF54 54 80 02 7F */ clrlwi. r0, r4, 9
|
||||
/* 8026FF58 41 82 00 0C */ beq lbl_8026FF64
|
||||
/* 8026FF5C 38 00 00 05 */ li r0, 5
|
||||
/* 8026FF60 48 00 00 10 */ b lbl_8026FF70
|
||||
lbl_8026FF64:
|
||||
/* 8026FF64 38 00 00 03 */ li r0, 3
|
||||
/* 8026FF68 48 00 00 08 */ b lbl_8026FF70
|
||||
lbl_8026FF6C:
|
||||
/* 8026FF6C 38 00 00 04 */ li r0, 4
|
||||
lbl_8026FF70:
|
||||
/* 8026FF70 2C 00 00 01 */ cmpwi r0, 1
|
||||
/* 8026FF74 40 82 00 0C */ bne lbl_8026FF80
|
||||
/* 8026FF78 3C 60 80 45 */ lis r3, __float_nan@ha /* 0x80450AE0@ha */
|
||||
/* 8026FF7C C0 23 0A E0 */ lfs f1, __float_nan@l(r3) /* 0x80450AE0@l */
|
||||
lbl_8026FF80:
|
||||
/* 8026FF80 FC 01 F8 40 */ fcmpo cr0, f1, f31
|
||||
/* 8026FF84 40 80 00 18 */ bge lbl_8026FF9C
|
||||
/* 8026FF88 C0 1F 00 00 */ lfs f0, 0(r31)
|
||||
/* 8026FF8C D0 1E 00 00 */ stfs f0, 0(r30)
|
||||
/* 8026FF90 C0 1F 00 08 */ lfs f0, 8(r31)
|
||||
/* 8026FF94 D0 1E 00 08 */ stfs f0, 8(r30)
|
||||
/* 8026FF98 48 00 00 94 */ b lbl_8027002C
|
||||
lbl_8026FF9C:
|
||||
/* 8026FF9C EF 81 07 72 */ fmuls f28, f1, f29
|
||||
/* 8026FFA0 38 61 00 40 */ addi r3, r1, 0x40
|
||||
/* 8026FFA4 7C 64 1B 78 */ mr r4, r3
|
||||
/* 8026FFA8 FC 20 E8 90 */ fmr f1, f29
|
||||
/* 8026FFAC 48 0D 71 2D */ bl PSVECScale
|
||||
/* 8026FFB0 FC 00 E2 10 */ fabs f0, f28
|
||||
/* 8026FFB4 FC 20 00 18 */ frsp f1, f0
|
||||
/* 8026FFB8 C0 02 B8 00 */ lfs f0, lit_2382(r2)
|
||||
/* 8026FFBC FC 01 00 40 */ fcmpo cr0, f1, f0
|
||||
/* 8026FFC0 41 80 00 5C */ blt lbl_8027001C
|
||||
/* 8026FFC4 FC 1C F0 40 */ fcmpo cr0, f28, f30
|
||||
/* 8026FFC8 40 81 00 18 */ ble lbl_8026FFE0
|
||||
/* 8026FFCC 38 61 00 40 */ addi r3, r1, 0x40
|
||||
/* 8026FFD0 7C 64 1B 78 */ mr r4, r3
|
||||
/* 8026FFD4 EC 3E E0 24 */ fdivs f1, f30, f28
|
||||
/* 8026FFD8 48 0D 71 01 */ bl PSVECScale
|
||||
/* 8026FFDC 48 00 00 1C */ b lbl_8026FFF8
|
||||
lbl_8026FFE0:
|
||||
/* 8026FFE0 FC 1C F8 40 */ fcmpo cr0, f28, f31
|
||||
/* 8026FFE4 40 80 00 14 */ bge lbl_8026FFF8
|
||||
/* 8026FFE8 38 61 00 40 */ addi r3, r1, 0x40
|
||||
/* 8026FFEC 7C 64 1B 78 */ mr r4, r3
|
||||
/* 8026FFF0 EC 3F E0 24 */ fdivs f1, f31, f28
|
||||
/* 8026FFF4 48 0D 70 E5 */ bl PSVECScale
|
||||
lbl_8026FFF8:
|
||||
/* 8026FFF8 C0 3E 00 00 */ lfs f1, 0(r30)
|
||||
/* 8026FFFC C0 01 00 40 */ lfs f0, 0x40(r1)
|
||||
/* 80270000 EC 01 00 28 */ fsubs f0, f1, f0
|
||||
/* 80270004 D0 1E 00 00 */ stfs f0, 0(r30)
|
||||
/* 80270008 C0 3E 00 08 */ lfs f1, 8(r30)
|
||||
/* 8027000C C0 01 00 48 */ lfs f0, 0x48(r1)
|
||||
/* 80270010 EC 01 00 28 */ fsubs f0, f1, f0
|
||||
/* 80270014 D0 1E 00 08 */ stfs f0, 8(r30)
|
||||
/* 80270018 48 00 00 14 */ b lbl_8027002C
|
||||
lbl_8027001C:
|
||||
/* 8027001C C0 1F 00 00 */ lfs f0, 0(r31)
|
||||
/* 80270020 D0 1E 00 00 */ stfs f0, 0(r30)
|
||||
/* 80270024 C0 1F 00 08 */ lfs f0, 8(r31)
|
||||
/* 80270028 D0 1E 00 08 */ stfs f0, 8(r30)
|
||||
lbl_8027002C:
|
||||
/* 8027002C 38 61 00 28 */ addi r3, r1, 0x28
|
||||
/* 80270030 7F C4 F3 78 */ mr r4, r30
|
||||
/* 80270034 7F E5 FB 78 */ mr r5, r31
|
||||
/* 80270038 4B FF 6A FD */ bl __mi__4cXyzCFRC3Vec
|
||||
/* 8027003C C0 01 00 28 */ lfs f0, 0x28(r1)
|
||||
/* 80270040 D0 01 00 10 */ stfs f0, 0x10(r1)
|
||||
/* 80270044 C0 02 B7 E0 */ lfs f0, lit_2262(r2)
|
||||
/* 80270048 D0 01 00 14 */ stfs f0, 0x14(r1)
|
||||
/* 8027004C C0 01 00 30 */ lfs f0, 0x30(r1)
|
||||
/* 80270050 D0 01 00 18 */ stfs f0, 0x18(r1)
|
||||
/* 80270054 38 61 00 10 */ addi r3, r1, 0x10
|
||||
/* 80270058 48 0D 70 E1 */ bl PSVECSquareMag
|
||||
/* 8027005C C0 02 B7 E0 */ lfs f0, lit_2262(r2)
|
||||
/* 80270060 FC 01 00 40 */ fcmpo cr0, f1, f0
|
||||
/* 80270064 40 81 00 58 */ ble lbl_802700BC
|
||||
/* 80270068 FC 00 08 34 */ frsqrte f0, f1
|
||||
/* 8027006C C8 82 B7 E8 */ lfd f4, lit_2379(r2)
|
||||
/* 80270070 FC 44 00 32 */ fmul f2, f4, f0
|
||||
/* 80270074 C8 62 B7 F0 */ lfd f3, lit_2380(r2)
|
||||
/* 80270078 FC 00 00 32 */ fmul f0, f0, f0
|
||||
/* 8027007C FC 01 00 32 */ fmul f0, f1, f0
|
||||
/* 80270080 FC 03 00 28 */ fsub f0, f3, f0
|
||||
/* 80270084 FC 02 00 32 */ fmul f0, f2, f0
|
||||
/* 80270088 FC 44 00 32 */ fmul f2, f4, f0
|
||||
/* 8027008C FC 00 00 32 */ fmul f0, f0, f0
|
||||
/* 80270090 FC 01 00 32 */ fmul f0, f1, f0
|
||||
/* 80270094 FC 03 00 28 */ fsub f0, f3, f0
|
||||
/* 80270098 FC 02 00 32 */ fmul f0, f2, f0
|
||||
/* 8027009C FC 44 00 32 */ fmul f2, f4, f0
|
||||
/* 802700A0 FC 00 00 32 */ fmul f0, f0, f0
|
||||
/* 802700A4 FC 01 00 32 */ fmul f0, f1, f0
|
||||
/* 802700A8 FC 03 00 28 */ fsub f0, f3, f0
|
||||
/* 802700AC FC 02 00 32 */ fmul f0, f2, f0
|
||||
/* 802700B0 FC 21 00 32 */ fmul f1, f1, f0
|
||||
/* 802700B4 FC 20 08 18 */ frsp f1, f1
|
||||
/* 802700B8 48 00 00 88 */ b lbl_80270140
|
||||
lbl_802700BC:
|
||||
/* 802700BC C8 02 B7 F8 */ lfd f0, lit_2381(r2)
|
||||
/* 802700C0 FC 01 00 40 */ fcmpo cr0, f1, f0
|
||||
/* 802700C4 40 80 00 10 */ bge lbl_802700D4
|
||||
/* 802700C8 3C 60 80 45 */ lis r3, __float_nan@ha /* 0x80450AE0@ha */
|
||||
/* 802700CC C0 23 0A E0 */ lfs f1, __float_nan@l(r3) /* 0x80450AE0@l */
|
||||
/* 802700D0 48 00 00 70 */ b lbl_80270140
|
||||
lbl_802700D4:
|
||||
/* 802700D4 D0 21 00 08 */ stfs f1, 8(r1)
|
||||
/* 802700D8 80 81 00 08 */ lwz r4, 8(r1)
|
||||
/* 802700DC 54 83 00 50 */ rlwinm r3, r4, 0, 1, 8
|
||||
/* 802700E0 3C 00 7F 80 */ lis r0, 0x7f80
|
||||
/* 802700E4 7C 03 00 00 */ cmpw r3, r0
|
||||
/* 802700E8 41 82 00 14 */ beq lbl_802700FC
|
||||
/* 802700EC 40 80 00 40 */ bge lbl_8027012C
|
||||
/* 802700F0 2C 03 00 00 */ cmpwi r3, 0
|
||||
/* 802700F4 41 82 00 20 */ beq lbl_80270114
|
||||
/* 802700F8 48 00 00 34 */ b lbl_8027012C
|
||||
lbl_802700FC:
|
||||
/* 802700FC 54 80 02 7F */ clrlwi. r0, r4, 9
|
||||
/* 80270100 41 82 00 0C */ beq lbl_8027010C
|
||||
/* 80270104 38 00 00 01 */ li r0, 1
|
||||
/* 80270108 48 00 00 28 */ b lbl_80270130
|
||||
lbl_8027010C:
|
||||
/* 8027010C 38 00 00 02 */ li r0, 2
|
||||
/* 80270110 48 00 00 20 */ b lbl_80270130
|
||||
lbl_80270114:
|
||||
/* 80270114 54 80 02 7F */ clrlwi. r0, r4, 9
|
||||
/* 80270118 41 82 00 0C */ beq lbl_80270124
|
||||
/* 8027011C 38 00 00 05 */ li r0, 5
|
||||
/* 80270120 48 00 00 10 */ b lbl_80270130
|
||||
lbl_80270124:
|
||||
/* 80270124 38 00 00 03 */ li r0, 3
|
||||
/* 80270128 48 00 00 08 */ b lbl_80270130
|
||||
lbl_8027012C:
|
||||
/* 8027012C 38 00 00 04 */ li r0, 4
|
||||
lbl_80270130:
|
||||
/* 80270130 2C 00 00 01 */ cmpwi r0, 1
|
||||
/* 80270134 40 82 00 0C */ bne lbl_80270140
|
||||
/* 80270138 3C 60 80 45 */ lis r3, __float_nan@ha /* 0x80450AE0@ha */
|
||||
/* 8027013C C0 23 0A E0 */ lfs f1, __float_nan@l(r3) /* 0x80450AE0@l */
|
||||
lbl_80270140:
|
||||
/* 80270140 E3 E1 00 98 */ psq_l f31, 152(r1), 0, 0 /* qr0 */
|
||||
/* 80270144 CB E1 00 90 */ lfd f31, 0x90(r1)
|
||||
/* 80270148 E3 C1 00 88 */ psq_l f30, 136(r1), 0, 0 /* qr0 */
|
||||
/* 8027014C CB C1 00 80 */ lfd f30, 0x80(r1)
|
||||
/* 80270150 E3 A1 00 78 */ psq_l f29, 120(r1), 0, 0 /* qr0 */
|
||||
/* 80270154 CB A1 00 70 */ lfd f29, 0x70(r1)
|
||||
/* 80270158 E3 81 00 68 */ psq_l f28, 104(r1), 0, 0 /* qr0 */
|
||||
/* 8027015C CB 81 00 60 */ lfd f28, 0x60(r1)
|
||||
/* 80270160 83 E1 00 5C */ lwz r31, 0x5c(r1)
|
||||
/* 80270164 83 C1 00 58 */ lwz r30, 0x58(r1)
|
||||
/* 80270168 80 01 00 A4 */ lwz r0, 0xa4(r1)
|
||||
/* 8027016C 7C 08 03 A6 */ mtlr r0
|
||||
/* 80270170 38 21 00 A0 */ addi r1, r1, 0xa0
|
||||
/* 80270174 4E 80 00 20 */ blr
|
||||
@@ -1,231 +0,0 @@
|
||||
lbl_8026FAB8:
|
||||
/* 8026FAB8 94 21 FF 90 */ stwu r1, -0x70(r1)
|
||||
/* 8026FABC 7C 08 02 A6 */ mflr r0
|
||||
/* 8026FAC0 90 01 00 74 */ stw r0, 0x74(r1)
|
||||
/* 8026FAC4 DB E1 00 60 */ stfd f31, 0x60(r1)
|
||||
/* 8026FAC8 F3 E1 00 68 */ psq_st f31, 104(r1), 0, 0 /* qr0 */
|
||||
/* 8026FACC DB C1 00 50 */ stfd f30, 0x50(r1)
|
||||
/* 8026FAD0 F3 C1 00 58 */ psq_st f30, 88(r1), 0, 0 /* qr0 */
|
||||
/* 8026FAD4 DB A1 00 40 */ stfd f29, 0x40(r1)
|
||||
/* 8026FAD8 F3 A1 00 48 */ psq_st f29, 72(r1), 0, 0 /* qr0 */
|
||||
/* 8026FADC DB 81 00 30 */ stfd f28, 0x30(r1)
|
||||
/* 8026FAE0 F3 81 00 38 */ psq_st f28, 56(r1), 0, 0 /* qr0 */
|
||||
/* 8026FAE4 93 E1 00 2C */ stw r31, 0x2c(r1)
|
||||
/* 8026FAE8 93 C1 00 28 */ stw r30, 0x28(r1)
|
||||
/* 8026FAEC 7C 7E 1B 78 */ mr r30, r3
|
||||
/* 8026FAF0 7C 9F 23 78 */ mr r31, r4
|
||||
/* 8026FAF4 FF A0 08 90 */ fmr f29, f1
|
||||
/* 8026FAF8 FF C0 10 90 */ fmr f30, f2
|
||||
/* 8026FAFC FF E0 18 90 */ fmr f31, f3
|
||||
/* 8026FB00 4B FF 75 6D */ bl __ne__4cXyzCFRC3Vec
|
||||
/* 8026FB04 54 60 06 3F */ clrlwi. r0, r3, 0x18
|
||||
/* 8026FB08 41 82 01 C4 */ beq lbl_8026FCCC
|
||||
/* 8026FB0C 38 61 00 10 */ addi r3, r1, 0x10
|
||||
/* 8026FB10 7F C4 F3 78 */ mr r4, r30
|
||||
/* 8026FB14 7F E5 FB 78 */ mr r5, r31
|
||||
/* 8026FB18 4B FF 70 1D */ bl __mi__4cXyzCFRC3Vec
|
||||
/* 8026FB1C C0 01 00 10 */ lfs f0, 0x10(r1)
|
||||
/* 8026FB20 D0 01 00 1C */ stfs f0, 0x1c(r1)
|
||||
/* 8026FB24 C0 01 00 14 */ lfs f0, 0x14(r1)
|
||||
/* 8026FB28 D0 01 00 20 */ stfs f0, 0x20(r1)
|
||||
/* 8026FB2C C0 01 00 18 */ lfs f0, 0x18(r1)
|
||||
/* 8026FB30 D0 01 00 24 */ stfs f0, 0x24(r1)
|
||||
/* 8026FB34 38 61 00 1C */ addi r3, r1, 0x1c
|
||||
/* 8026FB38 48 0D 76 01 */ bl PSVECSquareMag
|
||||
/* 8026FB3C C0 02 B7 E0 */ lfs f0, lit_2262(r2)
|
||||
/* 8026FB40 FC 01 00 40 */ fcmpo cr0, f1, f0
|
||||
/* 8026FB44 40 81 00 58 */ ble lbl_8026FB9C
|
||||
/* 8026FB48 FC 00 08 34 */ frsqrte f0, f1
|
||||
/* 8026FB4C C8 82 B7 E8 */ lfd f4, lit_2379(r2)
|
||||
/* 8026FB50 FC 44 00 32 */ fmul f2, f4, f0
|
||||
/* 8026FB54 C8 62 B7 F0 */ lfd f3, lit_2380(r2)
|
||||
/* 8026FB58 FC 00 00 32 */ fmul f0, f0, f0
|
||||
/* 8026FB5C FC 01 00 32 */ fmul f0, f1, f0
|
||||
/* 8026FB60 FC 03 00 28 */ fsub f0, f3, f0
|
||||
/* 8026FB64 FC 02 00 32 */ fmul f0, f2, f0
|
||||
/* 8026FB68 FC 44 00 32 */ fmul f2, f4, f0
|
||||
/* 8026FB6C FC 00 00 32 */ fmul f0, f0, f0
|
||||
/* 8026FB70 FC 01 00 32 */ fmul f0, f1, f0
|
||||
/* 8026FB74 FC 03 00 28 */ fsub f0, f3, f0
|
||||
/* 8026FB78 FC 02 00 32 */ fmul f0, f2, f0
|
||||
/* 8026FB7C FC 44 00 32 */ fmul f2, f4, f0
|
||||
/* 8026FB80 FC 00 00 32 */ fmul f0, f0, f0
|
||||
/* 8026FB84 FC 01 00 32 */ fmul f0, f1, f0
|
||||
/* 8026FB88 FC 03 00 28 */ fsub f0, f3, f0
|
||||
/* 8026FB8C FC 02 00 32 */ fmul f0, f2, f0
|
||||
/* 8026FB90 FC 21 00 32 */ fmul f1, f1, f0
|
||||
/* 8026FB94 FC 20 08 18 */ frsp f1, f1
|
||||
/* 8026FB98 48 00 00 88 */ b lbl_8026FC20
|
||||
lbl_8026FB9C:
|
||||
/* 8026FB9C C8 02 B7 F8 */ lfd f0, lit_2381(r2)
|
||||
/* 8026FBA0 FC 01 00 40 */ fcmpo cr0, f1, f0
|
||||
/* 8026FBA4 40 80 00 10 */ bge lbl_8026FBB4
|
||||
/* 8026FBA8 3C 60 80 45 */ lis r3, __float_nan@ha /* 0x80450AE0@ha */
|
||||
/* 8026FBAC C0 23 0A E0 */ lfs f1, __float_nan@l(r3) /* 0x80450AE0@l */
|
||||
/* 8026FBB0 48 00 00 70 */ b lbl_8026FC20
|
||||
lbl_8026FBB4:
|
||||
/* 8026FBB4 D0 21 00 0C */ stfs f1, 0xc(r1)
|
||||
/* 8026FBB8 80 81 00 0C */ lwz r4, 0xc(r1)
|
||||
/* 8026FBBC 54 83 00 50 */ rlwinm r3, r4, 0, 1, 8
|
||||
/* 8026FBC0 3C 00 7F 80 */ lis r0, 0x7f80
|
||||
/* 8026FBC4 7C 03 00 00 */ cmpw r3, r0
|
||||
/* 8026FBC8 41 82 00 14 */ beq lbl_8026FBDC
|
||||
/* 8026FBCC 40 80 00 40 */ bge lbl_8026FC0C
|
||||
/* 8026FBD0 2C 03 00 00 */ cmpwi r3, 0
|
||||
/* 8026FBD4 41 82 00 20 */ beq lbl_8026FBF4
|
||||
/* 8026FBD8 48 00 00 34 */ b lbl_8026FC0C
|
||||
lbl_8026FBDC:
|
||||
/* 8026FBDC 54 80 02 7F */ clrlwi. r0, r4, 9
|
||||
/* 8026FBE0 41 82 00 0C */ beq lbl_8026FBEC
|
||||
/* 8026FBE4 38 00 00 01 */ li r0, 1
|
||||
/* 8026FBE8 48 00 00 28 */ b lbl_8026FC10
|
||||
lbl_8026FBEC:
|
||||
/* 8026FBEC 38 00 00 02 */ li r0, 2
|
||||
/* 8026FBF0 48 00 00 20 */ b lbl_8026FC10
|
||||
lbl_8026FBF4:
|
||||
/* 8026FBF4 54 80 02 7F */ clrlwi. r0, r4, 9
|
||||
/* 8026FBF8 41 82 00 0C */ beq lbl_8026FC04
|
||||
/* 8026FBFC 38 00 00 05 */ li r0, 5
|
||||
/* 8026FC00 48 00 00 10 */ b lbl_8026FC10
|
||||
lbl_8026FC04:
|
||||
/* 8026FC04 38 00 00 03 */ li r0, 3
|
||||
/* 8026FC08 48 00 00 08 */ b lbl_8026FC10
|
||||
lbl_8026FC0C:
|
||||
/* 8026FC0C 38 00 00 04 */ li r0, 4
|
||||
lbl_8026FC10:
|
||||
/* 8026FC10 2C 00 00 01 */ cmpwi r0, 1
|
||||
/* 8026FC14 40 82 00 0C */ bne lbl_8026FC20
|
||||
/* 8026FC18 3C 60 80 45 */ lis r3, __float_nan@ha /* 0x80450AE0@ha */
|
||||
/* 8026FC1C C0 23 0A E0 */ lfs f1, __float_nan@l(r3) /* 0x80450AE0@l */
|
||||
lbl_8026FC20:
|
||||
/* 8026FC20 FC 01 F8 40 */ fcmpo cr0, f1, f31
|
||||
/* 8026FC24 40 80 00 20 */ bge lbl_8026FC44
|
||||
/* 8026FC28 C0 1F 00 00 */ lfs f0, 0(r31)
|
||||
/* 8026FC2C D0 1E 00 00 */ stfs f0, 0(r30)
|
||||
/* 8026FC30 C0 1F 00 04 */ lfs f0, 4(r31)
|
||||
/* 8026FC34 D0 1E 00 04 */ stfs f0, 4(r30)
|
||||
/* 8026FC38 C0 1F 00 08 */ lfs f0, 8(r31)
|
||||
/* 8026FC3C D0 1E 00 08 */ stfs f0, 8(r30)
|
||||
/* 8026FC40 48 00 00 8C */ b lbl_8026FCCC
|
||||
lbl_8026FC44:
|
||||
/* 8026FC44 EF 81 07 72 */ fmuls f28, f1, f29
|
||||
/* 8026FC48 38 61 00 1C */ addi r3, r1, 0x1c
|
||||
/* 8026FC4C 7C 64 1B 78 */ mr r4, r3
|
||||
/* 8026FC50 FC 20 E8 90 */ fmr f1, f29
|
||||
/* 8026FC54 48 0D 74 85 */ bl PSVECScale
|
||||
/* 8026FC58 FC 00 E2 10 */ fabs f0, f28
|
||||
/* 8026FC5C FC 20 00 18 */ frsp f1, f0
|
||||
/* 8026FC60 C0 02 B8 00 */ lfs f0, lit_2382(r2)
|
||||
/* 8026FC64 FC 01 00 40 */ fcmpo cr0, f1, f0
|
||||
/* 8026FC68 41 80 00 4C */ blt lbl_8026FCB4
|
||||
/* 8026FC6C FC 1C F0 40 */ fcmpo cr0, f28, f30
|
||||
/* 8026FC70 40 81 00 18 */ ble lbl_8026FC88
|
||||
/* 8026FC74 38 61 00 1C */ addi r3, r1, 0x1c
|
||||
/* 8026FC78 7C 64 1B 78 */ mr r4, r3
|
||||
/* 8026FC7C EC 3E E0 24 */ fdivs f1, f30, f28
|
||||
/* 8026FC80 48 0D 74 59 */ bl PSVECScale
|
||||
/* 8026FC84 48 00 00 1C */ b lbl_8026FCA0
|
||||
lbl_8026FC88:
|
||||
/* 8026FC88 FC 1C F8 40 */ fcmpo cr0, f28, f31
|
||||
/* 8026FC8C 40 80 00 14 */ bge lbl_8026FCA0
|
||||
/* 8026FC90 38 61 00 1C */ addi r3, r1, 0x1c
|
||||
/* 8026FC94 7C 64 1B 78 */ mr r4, r3
|
||||
/* 8026FC98 EC 3F E0 24 */ fdivs f1, f31, f28
|
||||
/* 8026FC9C 48 0D 74 3D */ bl PSVECScale
|
||||
lbl_8026FCA0:
|
||||
/* 8026FCA0 7F C3 F3 78 */ mr r3, r30
|
||||
/* 8026FCA4 38 81 00 1C */ addi r4, r1, 0x1c
|
||||
/* 8026FCA8 7F C5 F3 78 */ mr r5, r30
|
||||
/* 8026FCAC 48 0D 74 09 */ bl PSVECSubtract
|
||||
/* 8026FCB0 48 00 00 1C */ b lbl_8026FCCC
|
||||
lbl_8026FCB4:
|
||||
/* 8026FCB4 C0 1F 00 00 */ lfs f0, 0(r31)
|
||||
/* 8026FCB8 D0 1E 00 00 */ stfs f0, 0(r30)
|
||||
/* 8026FCBC C0 1F 00 04 */ lfs f0, 4(r31)
|
||||
/* 8026FCC0 D0 1E 00 04 */ stfs f0, 4(r30)
|
||||
/* 8026FCC4 C0 1F 00 08 */ lfs f0, 8(r31)
|
||||
/* 8026FCC8 D0 1E 00 08 */ stfs f0, 8(r30)
|
||||
lbl_8026FCCC:
|
||||
/* 8026FCCC 7F C3 F3 78 */ mr r3, r30
|
||||
/* 8026FCD0 7F E4 FB 78 */ mr r4, r31
|
||||
/* 8026FCD4 48 0D 76 C9 */ bl PSVECSquareDistance
|
||||
/* 8026FCD8 C0 02 B7 E0 */ lfs f0, lit_2262(r2)
|
||||
/* 8026FCDC FC 01 00 40 */ fcmpo cr0, f1, f0
|
||||
/* 8026FCE0 40 81 00 58 */ ble lbl_8026FD38
|
||||
/* 8026FCE4 FC 00 08 34 */ frsqrte f0, f1
|
||||
/* 8026FCE8 C8 82 B7 E8 */ lfd f4, lit_2379(r2)
|
||||
/* 8026FCEC FC 44 00 32 */ fmul f2, f4, f0
|
||||
/* 8026FCF0 C8 62 B7 F0 */ lfd f3, lit_2380(r2)
|
||||
/* 8026FCF4 FC 00 00 32 */ fmul f0, f0, f0
|
||||
/* 8026FCF8 FC 01 00 32 */ fmul f0, f1, f0
|
||||
/* 8026FCFC FC 03 00 28 */ fsub f0, f3, f0
|
||||
/* 8026FD00 FC 02 00 32 */ fmul f0, f2, f0
|
||||
/* 8026FD04 FC 44 00 32 */ fmul f2, f4, f0
|
||||
/* 8026FD08 FC 00 00 32 */ fmul f0, f0, f0
|
||||
/* 8026FD0C FC 01 00 32 */ fmul f0, f1, f0
|
||||
/* 8026FD10 FC 03 00 28 */ fsub f0, f3, f0
|
||||
/* 8026FD14 FC 02 00 32 */ fmul f0, f2, f0
|
||||
/* 8026FD18 FC 44 00 32 */ fmul f2, f4, f0
|
||||
/* 8026FD1C FC 00 00 32 */ fmul f0, f0, f0
|
||||
/* 8026FD20 FC 01 00 32 */ fmul f0, f1, f0
|
||||
/* 8026FD24 FC 03 00 28 */ fsub f0, f3, f0
|
||||
/* 8026FD28 FC 02 00 32 */ fmul f0, f2, f0
|
||||
/* 8026FD2C FC 21 00 32 */ fmul f1, f1, f0
|
||||
/* 8026FD30 FC 20 08 18 */ frsp f1, f1
|
||||
/* 8026FD34 48 00 00 88 */ b lbl_8026FDBC
|
||||
lbl_8026FD38:
|
||||
/* 8026FD38 C8 02 B7 F8 */ lfd f0, lit_2381(r2)
|
||||
/* 8026FD3C FC 01 00 40 */ fcmpo cr0, f1, f0
|
||||
/* 8026FD40 40 80 00 10 */ bge lbl_8026FD50
|
||||
/* 8026FD44 3C 60 80 45 */ lis r3, __float_nan@ha /* 0x80450AE0@ha */
|
||||
/* 8026FD48 C0 23 0A E0 */ lfs f1, __float_nan@l(r3) /* 0x80450AE0@l */
|
||||
/* 8026FD4C 48 00 00 70 */ b lbl_8026FDBC
|
||||
lbl_8026FD50:
|
||||
/* 8026FD50 D0 21 00 08 */ stfs f1, 8(r1)
|
||||
/* 8026FD54 80 81 00 08 */ lwz r4, 8(r1)
|
||||
/* 8026FD58 54 83 00 50 */ rlwinm r3, r4, 0, 1, 8
|
||||
/* 8026FD5C 3C 00 7F 80 */ lis r0, 0x7f80
|
||||
/* 8026FD60 7C 03 00 00 */ cmpw r3, r0
|
||||
/* 8026FD64 41 82 00 14 */ beq lbl_8026FD78
|
||||
/* 8026FD68 40 80 00 40 */ bge lbl_8026FDA8
|
||||
/* 8026FD6C 2C 03 00 00 */ cmpwi r3, 0
|
||||
/* 8026FD70 41 82 00 20 */ beq lbl_8026FD90
|
||||
/* 8026FD74 48 00 00 34 */ b lbl_8026FDA8
|
||||
lbl_8026FD78:
|
||||
/* 8026FD78 54 80 02 7F */ clrlwi. r0, r4, 9
|
||||
/* 8026FD7C 41 82 00 0C */ beq lbl_8026FD88
|
||||
/* 8026FD80 38 00 00 01 */ li r0, 1
|
||||
/* 8026FD84 48 00 00 28 */ b lbl_8026FDAC
|
||||
lbl_8026FD88:
|
||||
/* 8026FD88 38 00 00 02 */ li r0, 2
|
||||
/* 8026FD8C 48 00 00 20 */ b lbl_8026FDAC
|
||||
lbl_8026FD90:
|
||||
/* 8026FD90 54 80 02 7F */ clrlwi. r0, r4, 9
|
||||
/* 8026FD94 41 82 00 0C */ beq lbl_8026FDA0
|
||||
/* 8026FD98 38 00 00 05 */ li r0, 5
|
||||
/* 8026FD9C 48 00 00 10 */ b lbl_8026FDAC
|
||||
lbl_8026FDA0:
|
||||
/* 8026FDA0 38 00 00 03 */ li r0, 3
|
||||
/* 8026FDA4 48 00 00 08 */ b lbl_8026FDAC
|
||||
lbl_8026FDA8:
|
||||
/* 8026FDA8 38 00 00 04 */ li r0, 4
|
||||
lbl_8026FDAC:
|
||||
/* 8026FDAC 2C 00 00 01 */ cmpwi r0, 1
|
||||
/* 8026FDB0 40 82 00 0C */ bne lbl_8026FDBC
|
||||
/* 8026FDB4 3C 60 80 45 */ lis r3, __float_nan@ha /* 0x80450AE0@ha */
|
||||
/* 8026FDB8 C0 23 0A E0 */ lfs f1, __float_nan@l(r3) /* 0x80450AE0@l */
|
||||
lbl_8026FDBC:
|
||||
/* 8026FDBC E3 E1 00 68 */ psq_l f31, 104(r1), 0, 0 /* qr0 */
|
||||
/* 8026FDC0 CB E1 00 60 */ lfd f31, 0x60(r1)
|
||||
/* 8026FDC4 E3 C1 00 58 */ psq_l f30, 88(r1), 0, 0 /* qr0 */
|
||||
/* 8026FDC8 CB C1 00 50 */ lfd f30, 0x50(r1)
|
||||
/* 8026FDCC E3 A1 00 48 */ psq_l f29, 72(r1), 0, 0 /* qr0 */
|
||||
/* 8026FDD0 CB A1 00 40 */ lfd f29, 0x40(r1)
|
||||
/* 8026FDD4 E3 81 00 38 */ psq_l f28, 56(r1), 0, 0 /* qr0 */
|
||||
/* 8026FDD8 CB 81 00 30 */ lfd f28, 0x30(r1)
|
||||
/* 8026FDDC 83 E1 00 2C */ lwz r31, 0x2c(r1)
|
||||
/* 8026FDE0 83 C1 00 28 */ lwz r30, 0x28(r1)
|
||||
/* 8026FDE4 80 01 00 74 */ lwz r0, 0x74(r1)
|
||||
/* 8026FDE8 7C 08 03 A6 */ mtlr r0
|
||||
/* 8026FDEC 38 21 00 70 */ addi r1, r1, 0x70
|
||||
/* 8026FDF0 4E 80 00 20 */ blr
|
||||
@@ -1,55 +0,0 @@
|
||||
lbl_8026F97C:
|
||||
/* 8026F97C C0 A3 00 00 */ lfs f5, 0(r3)
|
||||
/* 8026F980 FC 05 08 00 */ fcmpu cr0, f5, f1
|
||||
/* 8026F984 41 82 00 A4 */ beq lbl_8026FA28
|
||||
/* 8026F988 EC 01 28 28 */ fsubs f0, f1, f5
|
||||
/* 8026F98C EC C2 00 32 */ fmuls f6, f2, f0
|
||||
/* 8026F990 FC 06 20 40 */ fcmpo cr0, f6, f4
|
||||
/* 8026F994 4C 41 13 82 */ cror 2, 1, 2
|
||||
/* 8026F998 41 82 00 14 */ beq lbl_8026F9AC
|
||||
/* 8026F99C FC 40 20 50 */ fneg f2, f4
|
||||
/* 8026F9A0 FC 06 10 40 */ fcmpo cr0, f6, f2
|
||||
/* 8026F9A4 4C 40 13 82 */ cror 2, 0, 2
|
||||
/* 8026F9A8 40 82 00 30 */ bne lbl_8026F9D8
|
||||
lbl_8026F9AC:
|
||||
/* 8026F9AC FC 06 18 40 */ fcmpo cr0, f6, f3
|
||||
/* 8026F9B0 40 81 00 08 */ ble lbl_8026F9B8
|
||||
/* 8026F9B4 FC C0 18 90 */ fmr f6, f3
|
||||
lbl_8026F9B8:
|
||||
/* 8026F9B8 FC 00 18 50 */ fneg f0, f3
|
||||
/* 8026F9BC FC 06 00 40 */ fcmpo cr0, f6, f0
|
||||
/* 8026F9C0 40 80 00 08 */ bge lbl_8026F9C8
|
||||
/* 8026F9C4 FC C0 00 90 */ fmr f6, f0
|
||||
lbl_8026F9C8:
|
||||
/* 8026F9C8 C0 03 00 00 */ lfs f0, 0(r3)
|
||||
/* 8026F9CC EC 00 30 2A */ fadds f0, f0, f6
|
||||
/* 8026F9D0 D0 03 00 00 */ stfs f0, 0(r3)
|
||||
/* 8026F9D4 48 00 00 54 */ b lbl_8026FA28
|
||||
lbl_8026F9D8:
|
||||
/* 8026F9D8 C0 02 B7 E0 */ lfs f0, lit_2262(r2)
|
||||
/* 8026F9DC FC 06 00 40 */ fcmpo cr0, f6, f0
|
||||
/* 8026F9E0 40 81 00 28 */ ble lbl_8026FA08
|
||||
/* 8026F9E4 FC 06 20 40 */ fcmpo cr0, f6, f4
|
||||
/* 8026F9E8 40 80 00 40 */ bge lbl_8026FA28
|
||||
/* 8026F9EC EC 05 20 2A */ fadds f0, f5, f4
|
||||
/* 8026F9F0 D0 03 00 00 */ stfs f0, 0(r3)
|
||||
/* 8026F9F4 C0 03 00 00 */ lfs f0, 0(r3)
|
||||
/* 8026F9F8 FC 00 08 40 */ fcmpo cr0, f0, f1
|
||||
/* 8026F9FC 40 81 00 2C */ ble lbl_8026FA28
|
||||
/* 8026FA00 D0 23 00 00 */ stfs f1, 0(r3)
|
||||
/* 8026FA04 48 00 00 24 */ b lbl_8026FA28
|
||||
lbl_8026FA08:
|
||||
/* 8026FA08 FC 06 10 40 */ fcmpo cr0, f6, f2
|
||||
/* 8026FA0C 40 81 00 1C */ ble lbl_8026FA28
|
||||
/* 8026FA10 EC 05 10 2A */ fadds f0, f5, f2
|
||||
/* 8026FA14 D0 03 00 00 */ stfs f0, 0(r3)
|
||||
/* 8026FA18 C0 03 00 00 */ lfs f0, 0(r3)
|
||||
/* 8026FA1C FC 00 08 40 */ fcmpo cr0, f0, f1
|
||||
/* 8026FA20 40 80 00 08 */ bge lbl_8026FA28
|
||||
/* 8026FA24 D0 23 00 00 */ stfs f1, 0(r3)
|
||||
lbl_8026FA28:
|
||||
/* 8026FA28 C0 03 00 00 */ lfs f0, 0(r3)
|
||||
/* 8026FA2C EC 01 00 28 */ fsubs f0, f1, f0
|
||||
/* 8026FA30 FC 00 02 10 */ fabs f0, f0
|
||||
/* 8026FA34 FC 20 00 18 */ frsp f1, f0
|
||||
/* 8026FA38 4E 80 00 20 */ blr
|
||||
@@ -1,33 +0,0 @@
|
||||
lbl_80270B90:
|
||||
/* 80270B90 7C A0 07 35 */ extsh. r0, r5
|
||||
/* 80270B94 41 82 00 50 */ beq lbl_80270BE4
|
||||
/* 80270B98 7C 86 07 34 */ extsh r6, r4
|
||||
/* 80270B9C A8 03 00 00 */ lha r0, 0(r3)
|
||||
/* 80270BA0 7C 06 00 50 */ subf r0, r6, r0
|
||||
/* 80270BA4 7C 00 07 35 */ extsh. r0, r0
|
||||
/* 80270BA8 40 81 00 0C */ ble lbl_80270BB4
|
||||
/* 80270BAC 7C 05 00 D0 */ neg r0, r5
|
||||
/* 80270BB0 7C 05 07 34 */ extsh r5, r0
|
||||
lbl_80270BB4:
|
||||
/* 80270BB4 A8 03 00 00 */ lha r0, 0(r3)
|
||||
/* 80270BB8 7C 00 2A 14 */ add r0, r0, r5
|
||||
/* 80270BBC B0 03 00 00 */ sth r0, 0(r3)
|
||||
/* 80270BC0 7C A5 07 34 */ extsh r5, r5
|
||||
/* 80270BC4 A8 03 00 00 */ lha r0, 0(r3)
|
||||
/* 80270BC8 7C 06 00 50 */ subf r0, r6, r0
|
||||
/* 80270BCC 7C 00 07 34 */ extsh r0, r0
|
||||
/* 80270BD0 7C 05 01 D7 */ mullw. r0, r5, r0
|
||||
/* 80270BD4 41 80 00 28 */ blt lbl_80270BFC
|
||||
/* 80270BD8 B0 83 00 00 */ sth r4, 0(r3)
|
||||
/* 80270BDC 38 60 00 01 */ li r3, 1
|
||||
/* 80270BE0 4E 80 00 20 */ blr
|
||||
lbl_80270BE4:
|
||||
/* 80270BE4 A8 63 00 00 */ lha r3, 0(r3)
|
||||
/* 80270BE8 7C 80 07 34 */ extsh r0, r4
|
||||
/* 80270BEC 7C 03 00 00 */ cmpw r3, r0
|
||||
/* 80270BF0 40 82 00 0C */ bne lbl_80270BFC
|
||||
/* 80270BF4 38 60 00 01 */ li r3, 1
|
||||
/* 80270BF8 4E 80 00 20 */ blr
|
||||
lbl_80270BFC:
|
||||
/* 80270BFC 38 60 00 00 */ li r3, 0
|
||||
/* 80270C00 4E 80 00 20 */ blr
|
||||
@@ -1,31 +0,0 @@
|
||||
lbl_80270740:
|
||||
/* 80270740 C0 02 B7 E0 */ lfs f0, lit_2262(r2)
|
||||
/* 80270744 FC 02 00 00 */ fcmpu cr0, f2, f0
|
||||
/* 80270748 41 82 00 48 */ beq lbl_80270790
|
||||
/* 8027074C C0 03 00 00 */ lfs f0, 0(r3)
|
||||
/* 80270750 FC 00 08 40 */ fcmpo cr0, f0, f1
|
||||
/* 80270754 40 81 00 08 */ ble lbl_8027075C
|
||||
/* 80270758 FC 40 10 50 */ fneg f2, f2
|
||||
lbl_8027075C:
|
||||
/* 8027075C C0 03 00 00 */ lfs f0, 0(r3)
|
||||
/* 80270760 EC 00 10 2A */ fadds f0, f0, f2
|
||||
/* 80270764 D0 03 00 00 */ stfs f0, 0(r3)
|
||||
/* 80270768 C0 03 00 00 */ lfs f0, 0(r3)
|
||||
/* 8027076C EC 00 08 28 */ fsubs f0, f0, f1
|
||||
/* 80270770 EC 42 00 32 */ fmuls f2, f2, f0
|
||||
/* 80270774 C0 02 B7 E0 */ lfs f0, lit_2262(r2)
|
||||
/* 80270778 FC 02 00 40 */ fcmpo cr0, f2, f0
|
||||
/* 8027077C 4C 41 13 82 */ cror 2, 1, 2
|
||||
/* 80270780 40 82 00 24 */ bne lbl_802707A4
|
||||
/* 80270784 D0 23 00 00 */ stfs f1, 0(r3)
|
||||
/* 80270788 38 60 00 01 */ li r3, 1
|
||||
/* 8027078C 4E 80 00 20 */ blr
|
||||
lbl_80270790:
|
||||
/* 80270790 C0 03 00 00 */ lfs f0, 0(r3)
|
||||
/* 80270794 FC 00 08 00 */ fcmpu cr0, f0, f1
|
||||
/* 80270798 40 82 00 0C */ bne lbl_802707A4
|
||||
/* 8027079C 38 60 00 01 */ li r3, 1
|
||||
/* 802707A0 4E 80 00 20 */ blr
|
||||
lbl_802707A4:
|
||||
/* 802707A4 38 60 00 00 */ li r3, 0
|
||||
/* 802707A8 4E 80 00 20 */ blr
|
||||
@@ -1,143 +0,0 @@
|
||||
lbl_80270990:
|
||||
/* 80270990 94 21 FF A0 */ stwu r1, -0x60(r1)
|
||||
/* 80270994 7C 08 02 A6 */ mflr r0
|
||||
/* 80270998 90 01 00 64 */ stw r0, 0x64(r1)
|
||||
/* 8027099C DB E1 00 50 */ stfd f31, 0x50(r1)
|
||||
/* 802709A0 F3 E1 00 58 */ psq_st f31, 88(r1), 0, 0 /* qr0 */
|
||||
/* 802709A4 93 E1 00 4C */ stw r31, 0x4c(r1)
|
||||
/* 802709A8 93 C1 00 48 */ stw r30, 0x48(r1)
|
||||
/* 802709AC 7C 7E 1B 78 */ mr r30, r3
|
||||
/* 802709B0 7C 9F 23 78 */ mr r31, r4
|
||||
/* 802709B4 FF E0 08 90 */ fmr f31, f1
|
||||
/* 802709B8 38 61 00 24 */ addi r3, r1, 0x24
|
||||
/* 802709BC 7F C4 F3 78 */ mr r4, r30
|
||||
/* 802709C0 7F E5 FB 78 */ mr r5, r31
|
||||
/* 802709C4 4B FF 61 71 */ bl __mi__4cXyzCFRC3Vec
|
||||
/* 802709C8 C0 41 00 24 */ lfs f2, 0x24(r1)
|
||||
/* 802709CC D0 41 00 30 */ stfs f2, 0x30(r1)
|
||||
/* 802709D0 C0 01 00 28 */ lfs f0, 0x28(r1)
|
||||
/* 802709D4 D0 01 00 34 */ stfs f0, 0x34(r1)
|
||||
/* 802709D8 C0 21 00 2C */ lfs f1, 0x2c(r1)
|
||||
/* 802709DC D0 21 00 38 */ stfs f1, 0x38(r1)
|
||||
/* 802709E0 C0 02 B7 E0 */ lfs f0, lit_2262(r2)
|
||||
/* 802709E4 D0 01 00 34 */ stfs f0, 0x34(r1)
|
||||
/* 802709E8 D0 41 00 0C */ stfs f2, 0xc(r1)
|
||||
/* 802709EC D0 01 00 10 */ stfs f0, 0x10(r1)
|
||||
/* 802709F0 D0 21 00 14 */ stfs f1, 0x14(r1)
|
||||
/* 802709F4 38 61 00 0C */ addi r3, r1, 0xc
|
||||
/* 802709F8 48 0D 67 41 */ bl PSVECSquareMag
|
||||
/* 802709FC C0 02 B7 E0 */ lfs f0, lit_2262(r2)
|
||||
/* 80270A00 FC 01 00 40 */ fcmpo cr0, f1, f0
|
||||
/* 80270A04 40 81 00 58 */ ble lbl_80270A5C
|
||||
/* 80270A08 FC 00 08 34 */ frsqrte f0, f1
|
||||
/* 80270A0C C8 82 B7 E8 */ lfd f4, lit_2379(r2)
|
||||
/* 80270A10 FC 44 00 32 */ fmul f2, f4, f0
|
||||
/* 80270A14 C8 62 B7 F0 */ lfd f3, lit_2380(r2)
|
||||
/* 80270A18 FC 00 00 32 */ fmul f0, f0, f0
|
||||
/* 80270A1C FC 01 00 32 */ fmul f0, f1, f0
|
||||
/* 80270A20 FC 03 00 28 */ fsub f0, f3, f0
|
||||
/* 80270A24 FC 02 00 32 */ fmul f0, f2, f0
|
||||
/* 80270A28 FC 44 00 32 */ fmul f2, f4, f0
|
||||
/* 80270A2C FC 00 00 32 */ fmul f0, f0, f0
|
||||
/* 80270A30 FC 01 00 32 */ fmul f0, f1, f0
|
||||
/* 80270A34 FC 03 00 28 */ fsub f0, f3, f0
|
||||
/* 80270A38 FC 02 00 32 */ fmul f0, f2, f0
|
||||
/* 80270A3C FC 44 00 32 */ fmul f2, f4, f0
|
||||
/* 80270A40 FC 00 00 32 */ fmul f0, f0, f0
|
||||
/* 80270A44 FC 01 00 32 */ fmul f0, f1, f0
|
||||
/* 80270A48 FC 03 00 28 */ fsub f0, f3, f0
|
||||
/* 80270A4C FC 02 00 32 */ fmul f0, f2, f0
|
||||
/* 80270A50 FC 21 00 32 */ fmul f1, f1, f0
|
||||
/* 80270A54 FC 20 08 18 */ frsp f1, f1
|
||||
/* 80270A58 48 00 00 88 */ b lbl_80270AE0
|
||||
lbl_80270A5C:
|
||||
/* 80270A5C C8 02 B7 F8 */ lfd f0, lit_2381(r2)
|
||||
/* 80270A60 FC 01 00 40 */ fcmpo cr0, f1, f0
|
||||
/* 80270A64 40 80 00 10 */ bge lbl_80270A74
|
||||
/* 80270A68 3C 60 80 45 */ lis r3, __float_nan@ha /* 0x80450AE0@ha */
|
||||
/* 80270A6C C0 23 0A E0 */ lfs f1, __float_nan@l(r3) /* 0x80450AE0@l */
|
||||
/* 80270A70 48 00 00 70 */ b lbl_80270AE0
|
||||
lbl_80270A74:
|
||||
/* 80270A74 D0 21 00 08 */ stfs f1, 8(r1)
|
||||
/* 80270A78 80 81 00 08 */ lwz r4, 8(r1)
|
||||
/* 80270A7C 54 83 00 50 */ rlwinm r3, r4, 0, 1, 8
|
||||
/* 80270A80 3C 00 7F 80 */ lis r0, 0x7f80
|
||||
/* 80270A84 7C 03 00 00 */ cmpw r3, r0
|
||||
/* 80270A88 41 82 00 14 */ beq lbl_80270A9C
|
||||
/* 80270A8C 40 80 00 40 */ bge lbl_80270ACC
|
||||
/* 80270A90 2C 03 00 00 */ cmpwi r3, 0
|
||||
/* 80270A94 41 82 00 20 */ beq lbl_80270AB4
|
||||
/* 80270A98 48 00 00 34 */ b lbl_80270ACC
|
||||
lbl_80270A9C:
|
||||
/* 80270A9C 54 80 02 7F */ clrlwi. r0, r4, 9
|
||||
/* 80270AA0 41 82 00 0C */ beq lbl_80270AAC
|
||||
/* 80270AA4 38 00 00 01 */ li r0, 1
|
||||
/* 80270AA8 48 00 00 28 */ b lbl_80270AD0
|
||||
lbl_80270AAC:
|
||||
/* 80270AAC 38 00 00 02 */ li r0, 2
|
||||
/* 80270AB0 48 00 00 20 */ b lbl_80270AD0
|
||||
lbl_80270AB4:
|
||||
/* 80270AB4 54 80 02 7F */ clrlwi. r0, r4, 9
|
||||
/* 80270AB8 41 82 00 0C */ beq lbl_80270AC4
|
||||
/* 80270ABC 38 00 00 05 */ li r0, 5
|
||||
/* 80270AC0 48 00 00 10 */ b lbl_80270AD0
|
||||
lbl_80270AC4:
|
||||
/* 80270AC4 38 00 00 03 */ li r0, 3
|
||||
/* 80270AC8 48 00 00 08 */ b lbl_80270AD0
|
||||
lbl_80270ACC:
|
||||
/* 80270ACC 38 00 00 04 */ li r0, 4
|
||||
lbl_80270AD0:
|
||||
/* 80270AD0 2C 00 00 01 */ cmpwi r0, 1
|
||||
/* 80270AD4 40 82 00 0C */ bne lbl_80270AE0
|
||||
/* 80270AD8 3C 60 80 45 */ lis r3, __float_nan@ha /* 0x80450AE0@ha */
|
||||
/* 80270ADC C0 23 0A E0 */ lfs f1, __float_nan@l(r3) /* 0x80450AE0@l */
|
||||
lbl_80270AE0:
|
||||
/* 80270AE0 C0 02 B7 E0 */ lfs f0, lit_2262(r2)
|
||||
/* 80270AE4 FC 1F 00 00 */ fcmpu cr0, f31, f0
|
||||
/* 80270AE8 41 82 00 68 */ beq lbl_80270B50
|
||||
/* 80270AEC FC 00 0A 10 */ fabs f0, f1
|
||||
/* 80270AF0 FC 40 00 18 */ frsp f2, f0
|
||||
/* 80270AF4 C0 02 B8 00 */ lfs f0, lit_2382(r2)
|
||||
/* 80270AF8 FC 02 00 40 */ fcmpo cr0, f2, f0
|
||||
/* 80270AFC 41 80 00 10 */ blt lbl_80270B0C
|
||||
/* 80270B00 FC 01 F8 40 */ fcmpo cr0, f1, f31
|
||||
/* 80270B04 4C 40 13 82 */ cror 2, 0, 2
|
||||
/* 80270B08 40 82 00 24 */ bne lbl_80270B2C
|
||||
lbl_80270B0C:
|
||||
/* 80270B0C C0 1F 00 00 */ lfs f0, 0(r31)
|
||||
/* 80270B10 D0 1E 00 00 */ stfs f0, 0(r30)
|
||||
/* 80270B14 C0 1F 00 04 */ lfs f0, 4(r31)
|
||||
/* 80270B18 D0 1E 00 04 */ stfs f0, 4(r30)
|
||||
/* 80270B1C C0 1F 00 08 */ lfs f0, 8(r31)
|
||||
/* 80270B20 D0 1E 00 08 */ stfs f0, 8(r30)
|
||||
/* 80270B24 38 60 00 01 */ li r3, 1
|
||||
/* 80270B28 48 00 00 48 */ b lbl_80270B70
|
||||
lbl_80270B2C:
|
||||
/* 80270B2C 38 61 00 18 */ addi r3, r1, 0x18
|
||||
/* 80270B30 38 81 00 30 */ addi r4, r1, 0x30
|
||||
/* 80270B34 EC 3F 08 24 */ fdivs f1, f31, f1
|
||||
/* 80270B38 4B FF 60 4D */ bl __ml__4cXyzCFf
|
||||
/* 80270B3C 7F C3 F3 78 */ mr r3, r30
|
||||
/* 80270B40 38 81 00 18 */ addi r4, r1, 0x18
|
||||
/* 80270B44 7F C5 F3 78 */ mr r5, r30
|
||||
/* 80270B48 48 0D 65 6D */ bl PSVECSubtract
|
||||
/* 80270B4C 48 00 00 20 */ b lbl_80270B6C
|
||||
lbl_80270B50:
|
||||
/* 80270B50 FC 00 0A 10 */ fabs f0, f1
|
||||
/* 80270B54 FC 20 00 18 */ frsp f1, f0
|
||||
/* 80270B58 C0 02 B8 00 */ lfs f0, lit_2382(r2)
|
||||
/* 80270B5C FC 01 00 40 */ fcmpo cr0, f1, f0
|
||||
/* 80270B60 40 80 00 0C */ bge lbl_80270B6C
|
||||
/* 80270B64 38 60 00 01 */ li r3, 1
|
||||
/* 80270B68 48 00 00 08 */ b lbl_80270B70
|
||||
lbl_80270B6C:
|
||||
/* 80270B6C 38 60 00 00 */ li r3, 0
|
||||
lbl_80270B70:
|
||||
/* 80270B70 E3 E1 00 58 */ psq_l f31, 88(r1), 0, 0 /* qr0 */
|
||||
/* 80270B74 CB E1 00 50 */ lfd f31, 0x50(r1)
|
||||
/* 80270B78 83 E1 00 4C */ lwz r31, 0x4c(r1)
|
||||
/* 80270B7C 83 C1 00 48 */ lwz r30, 0x48(r1)
|
||||
/* 80270B80 80 01 00 64 */ lwz r0, 0x64(r1)
|
||||
/* 80270B84 7C 08 03 A6 */ mtlr r0
|
||||
/* 80270B88 38 21 00 60 */ addi r1, r1, 0x60
|
||||
/* 80270B8C 4E 80 00 20 */ blr
|
||||
@@ -1,136 +0,0 @@
|
||||
lbl_802707AC:
|
||||
/* 802707AC 94 21 FF B0 */ stwu r1, -0x50(r1)
|
||||
/* 802707B0 7C 08 02 A6 */ mflr r0
|
||||
/* 802707B4 90 01 00 54 */ stw r0, 0x54(r1)
|
||||
/* 802707B8 DB E1 00 40 */ stfd f31, 0x40(r1)
|
||||
/* 802707BC F3 E1 00 48 */ psq_st f31, 72(r1), 0, 0 /* qr0 */
|
||||
/* 802707C0 93 E1 00 3C */ stw r31, 0x3c(r1)
|
||||
/* 802707C4 93 C1 00 38 */ stw r30, 0x38(r1)
|
||||
/* 802707C8 7C 7E 1B 78 */ mr r30, r3
|
||||
/* 802707CC 7C 9F 23 78 */ mr r31, r4
|
||||
/* 802707D0 FF E0 08 90 */ fmr f31, f1
|
||||
/* 802707D4 C0 02 B7 E0 */ lfs f0, lit_2262(r2)
|
||||
/* 802707D8 FC 1F 00 00 */ fcmpu cr0, f31, f0
|
||||
/* 802707DC 41 82 01 7C */ beq lbl_80270958
|
||||
/* 802707E0 38 61 00 18 */ addi r3, r1, 0x18
|
||||
/* 802707E4 7F C4 F3 78 */ mr r4, r30
|
||||
/* 802707E8 7F E5 FB 78 */ mr r5, r31
|
||||
/* 802707EC 4B FF 63 49 */ bl __mi__4cXyzCFRC3Vec
|
||||
/* 802707F0 C0 01 00 18 */ lfs f0, 0x18(r1)
|
||||
/* 802707F4 D0 01 00 24 */ stfs f0, 0x24(r1)
|
||||
/* 802707F8 C0 01 00 1C */ lfs f0, 0x1c(r1)
|
||||
/* 802707FC D0 01 00 28 */ stfs f0, 0x28(r1)
|
||||
/* 80270800 C0 01 00 20 */ lfs f0, 0x20(r1)
|
||||
/* 80270804 D0 01 00 2C */ stfs f0, 0x2c(r1)
|
||||
/* 80270808 38 61 00 24 */ addi r3, r1, 0x24
|
||||
/* 8027080C 48 0D 69 2D */ bl PSVECSquareMag
|
||||
/* 80270810 C0 02 B7 E0 */ lfs f0, lit_2262(r2)
|
||||
/* 80270814 FC 01 00 40 */ fcmpo cr0, f1, f0
|
||||
/* 80270818 40 81 00 58 */ ble lbl_80270870
|
||||
/* 8027081C FC 00 08 34 */ frsqrte f0, f1
|
||||
/* 80270820 C8 82 B7 E8 */ lfd f4, lit_2379(r2)
|
||||
/* 80270824 FC 44 00 32 */ fmul f2, f4, f0
|
||||
/* 80270828 C8 62 B7 F0 */ lfd f3, lit_2380(r2)
|
||||
/* 8027082C FC 00 00 32 */ fmul f0, f0, f0
|
||||
/* 80270830 FC 01 00 32 */ fmul f0, f1, f0
|
||||
/* 80270834 FC 03 00 28 */ fsub f0, f3, f0
|
||||
/* 80270838 FC 02 00 32 */ fmul f0, f2, f0
|
||||
/* 8027083C FC 44 00 32 */ fmul f2, f4, f0
|
||||
/* 80270840 FC 00 00 32 */ fmul f0, f0, f0
|
||||
/* 80270844 FC 01 00 32 */ fmul f0, f1, f0
|
||||
/* 80270848 FC 03 00 28 */ fsub f0, f3, f0
|
||||
/* 8027084C FC 02 00 32 */ fmul f0, f2, f0
|
||||
/* 80270850 FC 44 00 32 */ fmul f2, f4, f0
|
||||
/* 80270854 FC 00 00 32 */ fmul f0, f0, f0
|
||||
/* 80270858 FC 01 00 32 */ fmul f0, f1, f0
|
||||
/* 8027085C FC 03 00 28 */ fsub f0, f3, f0
|
||||
/* 80270860 FC 02 00 32 */ fmul f0, f2, f0
|
||||
/* 80270864 FC 21 00 32 */ fmul f1, f1, f0
|
||||
/* 80270868 FC 20 08 18 */ frsp f1, f1
|
||||
/* 8027086C 48 00 00 88 */ b lbl_802708F4
|
||||
lbl_80270870:
|
||||
/* 80270870 C8 02 B7 F8 */ lfd f0, lit_2381(r2)
|
||||
/* 80270874 FC 01 00 40 */ fcmpo cr0, f1, f0
|
||||
/* 80270878 40 80 00 10 */ bge lbl_80270888
|
||||
/* 8027087C 3C 60 80 45 */ lis r3, __float_nan@ha /* 0x80450AE0@ha */
|
||||
/* 80270880 C0 23 0A E0 */ lfs f1, __float_nan@l(r3) /* 0x80450AE0@l */
|
||||
/* 80270884 48 00 00 70 */ b lbl_802708F4
|
||||
lbl_80270888:
|
||||
/* 80270888 D0 21 00 08 */ stfs f1, 8(r1)
|
||||
/* 8027088C 80 81 00 08 */ lwz r4, 8(r1)
|
||||
/* 80270890 54 83 00 50 */ rlwinm r3, r4, 0, 1, 8
|
||||
/* 80270894 3C 00 7F 80 */ lis r0, 0x7f80
|
||||
/* 80270898 7C 03 00 00 */ cmpw r3, r0
|
||||
/* 8027089C 41 82 00 14 */ beq lbl_802708B0
|
||||
/* 802708A0 40 80 00 40 */ bge lbl_802708E0
|
||||
/* 802708A4 2C 03 00 00 */ cmpwi r3, 0
|
||||
/* 802708A8 41 82 00 20 */ beq lbl_802708C8
|
||||
/* 802708AC 48 00 00 34 */ b lbl_802708E0
|
||||
lbl_802708B0:
|
||||
/* 802708B0 54 80 02 7F */ clrlwi. r0, r4, 9
|
||||
/* 802708B4 41 82 00 0C */ beq lbl_802708C0
|
||||
/* 802708B8 38 00 00 01 */ li r0, 1
|
||||
/* 802708BC 48 00 00 28 */ b lbl_802708E4
|
||||
lbl_802708C0:
|
||||
/* 802708C0 38 00 00 02 */ li r0, 2
|
||||
/* 802708C4 48 00 00 20 */ b lbl_802708E4
|
||||
lbl_802708C8:
|
||||
/* 802708C8 54 80 02 7F */ clrlwi. r0, r4, 9
|
||||
/* 802708CC 41 82 00 0C */ beq lbl_802708D8
|
||||
/* 802708D0 38 00 00 05 */ li r0, 5
|
||||
/* 802708D4 48 00 00 10 */ b lbl_802708E4
|
||||
lbl_802708D8:
|
||||
/* 802708D8 38 00 00 03 */ li r0, 3
|
||||
/* 802708DC 48 00 00 08 */ b lbl_802708E4
|
||||
lbl_802708E0:
|
||||
/* 802708E0 38 00 00 04 */ li r0, 4
|
||||
lbl_802708E4:
|
||||
/* 802708E4 2C 00 00 01 */ cmpwi r0, 1
|
||||
/* 802708E8 40 82 00 0C */ bne lbl_802708F4
|
||||
/* 802708EC 3C 60 80 45 */ lis r3, __float_nan@ha /* 0x80450AE0@ha */
|
||||
/* 802708F0 C0 23 0A E0 */ lfs f1, __float_nan@l(r3) /* 0x80450AE0@l */
|
||||
lbl_802708F4:
|
||||
/* 802708F4 FC 00 0A 10 */ fabs f0, f1
|
||||
/* 802708F8 FC 40 00 18 */ frsp f2, f0
|
||||
/* 802708FC C0 02 B8 00 */ lfs f0, lit_2382(r2)
|
||||
/* 80270900 FC 02 00 40 */ fcmpo cr0, f2, f0
|
||||
/* 80270904 41 80 00 10 */ blt lbl_80270914
|
||||
/* 80270908 FC 01 F8 40 */ fcmpo cr0, f1, f31
|
||||
/* 8027090C 4C 40 13 82 */ cror 2, 0, 2
|
||||
/* 80270910 40 82 00 24 */ bne lbl_80270934
|
||||
lbl_80270914:
|
||||
/* 80270914 C0 1F 00 00 */ lfs f0, 0(r31)
|
||||
/* 80270918 D0 1E 00 00 */ stfs f0, 0(r30)
|
||||
/* 8027091C C0 1F 00 04 */ lfs f0, 4(r31)
|
||||
/* 80270920 D0 1E 00 04 */ stfs f0, 4(r30)
|
||||
/* 80270924 C0 1F 00 08 */ lfs f0, 8(r31)
|
||||
/* 80270928 D0 1E 00 08 */ stfs f0, 8(r30)
|
||||
/* 8027092C 38 60 00 01 */ li r3, 1
|
||||
/* 80270930 48 00 00 40 */ b lbl_80270970
|
||||
lbl_80270934:
|
||||
/* 80270934 38 61 00 0C */ addi r3, r1, 0xc
|
||||
/* 80270938 38 81 00 24 */ addi r4, r1, 0x24
|
||||
/* 8027093C EC 3F 08 24 */ fdivs f1, f31, f1
|
||||
/* 80270940 4B FF 62 45 */ bl __ml__4cXyzCFf
|
||||
/* 80270944 7F C3 F3 78 */ mr r3, r30
|
||||
/* 80270948 38 81 00 0C */ addi r4, r1, 0xc
|
||||
/* 8027094C 7F C5 F3 78 */ mr r5, r30
|
||||
/* 80270950 48 0D 67 65 */ bl PSVECSubtract
|
||||
/* 80270954 48 00 00 18 */ b lbl_8027096C
|
||||
lbl_80270958:
|
||||
/* 80270958 4B FF 66 D5 */ bl __eq__4cXyzCFRC3Vec
|
||||
/* 8027095C 54 60 06 3F */ clrlwi. r0, r3, 0x18
|
||||
/* 80270960 41 82 00 0C */ beq lbl_8027096C
|
||||
/* 80270964 38 60 00 01 */ li r3, 1
|
||||
/* 80270968 48 00 00 08 */ b lbl_80270970
|
||||
lbl_8027096C:
|
||||
/* 8027096C 38 60 00 00 */ li r3, 0
|
||||
lbl_80270970:
|
||||
/* 80270970 E3 E1 00 48 */ psq_l f31, 72(r1), 0, 0 /* qr0 */
|
||||
/* 80270974 CB E1 00 40 */ lfd f31, 0x40(r1)
|
||||
/* 80270978 83 E1 00 3C */ lwz r31, 0x3c(r1)
|
||||
/* 8027097C 83 C1 00 38 */ lwz r30, 0x38(r1)
|
||||
/* 80270980 80 01 00 54 */ lwz r0, 0x54(r1)
|
||||
/* 80270984 7C 08 03 A6 */ mtlr r0
|
||||
/* 80270988 38 21 00 50 */ addi r1, r1, 0x50
|
||||
/* 8027098C 4E 80 00 20 */ blr
|
||||
@@ -1,32 +0,0 @@
|
||||
lbl_802706D0:
|
||||
/* 802706D0 7C A0 07 35 */ extsh. r0, r5
|
||||
/* 802706D4 41 82 00 4C */ beq lbl_80270720
|
||||
/* 802706D8 A8 C3 00 00 */ lha r6, 0(r3)
|
||||
/* 802706DC 7C 80 07 34 */ extsh r0, r4
|
||||
/* 802706E0 7C 06 00 00 */ cmpw r6, r0
|
||||
/* 802706E4 40 81 00 0C */ ble lbl_802706F0
|
||||
/* 802706E8 7C 05 00 D0 */ neg r0, r5
|
||||
/* 802706EC 7C 05 07 34 */ extsh r5, r0
|
||||
lbl_802706F0:
|
||||
/* 802706F0 A8 03 00 00 */ lha r0, 0(r3)
|
||||
/* 802706F4 7C 00 2A 14 */ add r0, r0, r5
|
||||
/* 802706F8 B0 03 00 00 */ sth r0, 0(r3)
|
||||
/* 802706FC 7C A6 07 34 */ extsh r6, r5
|
||||
/* 80270700 7C 85 07 34 */ extsh r5, r4
|
||||
/* 80270704 A8 03 00 00 */ lha r0, 0(r3)
|
||||
/* 80270708 7C 05 00 50 */ subf r0, r5, r0
|
||||
/* 8027070C 7C 06 01 D7 */ mullw. r0, r6, r0
|
||||
/* 80270710 41 80 00 28 */ blt lbl_80270738
|
||||
/* 80270714 B0 83 00 00 */ sth r4, 0(r3)
|
||||
/* 80270718 38 60 00 01 */ li r3, 1
|
||||
/* 8027071C 4E 80 00 20 */ blr
|
||||
lbl_80270720:
|
||||
/* 80270720 A8 63 00 00 */ lha r3, 0(r3)
|
||||
/* 80270724 7C 80 07 34 */ extsh r0, r4
|
||||
/* 80270728 7C 03 00 00 */ cmpw r3, r0
|
||||
/* 8027072C 40 82 00 0C */ bne lbl_80270738
|
||||
/* 80270730 38 60 00 01 */ li r3, 1
|
||||
/* 80270734 4E 80 00 20 */ blr
|
||||
lbl_80270738:
|
||||
/* 80270738 38 60 00 00 */ li r3, 0
|
||||
/* 8027073C 4E 80 00 20 */ blr
|
||||
@@ -1,34 +0,0 @@
|
||||
lbl_8027065C:
|
||||
/* 8027065C 54 A5 06 3F */ clrlwi. r5, r5, 0x18
|
||||
/* 80270660 41 82 00 50 */ beq lbl_802706B0
|
||||
/* 80270664 88 E3 00 00 */ lbz r7, 0(r3)
|
||||
/* 80270668 54 88 06 3E */ clrlwi r8, r4, 0x18
|
||||
/* 8027066C 7C E0 07 34 */ extsh r0, r7
|
||||
/* 80270670 7C 00 40 00 */ cmpw r0, r8
|
||||
/* 80270674 40 81 00 0C */ ble lbl_80270680
|
||||
/* 80270678 7C 05 00 D0 */ neg r0, r5
|
||||
/* 8027067C 7C 05 07 34 */ extsh r5, r0
|
||||
lbl_80270680:
|
||||
/* 80270680 7C E7 2A 14 */ add r7, r7, r5
|
||||
/* 80270684 7C A6 07 34 */ extsh r6, r5
|
||||
/* 80270688 7D 05 07 34 */ extsh r5, r8
|
||||
/* 8027068C 7C E0 07 34 */ extsh r0, r7
|
||||
/* 80270690 7C 05 00 50 */ subf r0, r5, r0
|
||||
/* 80270694 7C 06 01 D7 */ mullw. r0, r6, r0
|
||||
/* 80270698 41 80 00 10 */ blt lbl_802706A8
|
||||
/* 8027069C 98 83 00 00 */ stb r4, 0(r3)
|
||||
/* 802706A0 38 60 00 01 */ li r3, 1
|
||||
/* 802706A4 4E 80 00 20 */ blr
|
||||
lbl_802706A8:
|
||||
/* 802706A8 98 E3 00 00 */ stb r7, 0(r3)
|
||||
/* 802706AC 48 00 00 1C */ b lbl_802706C8
|
||||
lbl_802706B0:
|
||||
/* 802706B0 88 63 00 00 */ lbz r3, 0(r3)
|
||||
/* 802706B4 54 80 06 3E */ clrlwi r0, r4, 0x18
|
||||
/* 802706B8 7C 03 00 40 */ cmplw r3, r0
|
||||
/* 802706BC 40 82 00 0C */ bne lbl_802706C8
|
||||
/* 802706C0 38 60 00 01 */ li r3, 1
|
||||
/* 802706C4 4E 80 00 20 */ blr
|
||||
lbl_802706C8:
|
||||
/* 802706C8 38 60 00 00 */ li r3, 0
|
||||
/* 802706CC 4E 80 00 20 */ blr
|
||||
@@ -1,26 +0,0 @@
|
||||
lbl_80270DC0:
|
||||
/* 80270DC0 3C E0 80 44 */ lis r7, sincosTable___5JMath@ha /* 0x80439A20@ha */
|
||||
/* 80270DC4 38 E7 9A 20 */ addi r7, r7, sincosTable___5JMath@l /* 0x80439A20@l */
|
||||
/* 80270DC8 54 A0 04 38 */ rlwinm r0, r5, 0, 0x10, 0x1c
|
||||
/* 80270DCC 7C A7 02 14 */ add r5, r7, r0
|
||||
/* 80270DD0 C0 A5 00 04 */ lfs f5, 4(r5)
|
||||
/* 80270DD4 7C C7 04 2E */ lfsx f6, r7, r0
|
||||
/* 80270DD8 C0 44 00 00 */ lfs f2, 0(r4)
|
||||
/* 80270DDC C0 86 00 00 */ lfs f4, 0(r6)
|
||||
/* 80270DE0 EC 24 01 72 */ fmuls f1, f4, f5
|
||||
/* 80270DE4 C0 66 00 08 */ lfs f3, 8(r6)
|
||||
/* 80270DE8 EC 03 01 B2 */ fmuls f0, f3, f6
|
||||
/* 80270DEC EC 01 00 2A */ fadds f0, f1, f0
|
||||
/* 80270DF0 EC 02 00 2A */ fadds f0, f2, f0
|
||||
/* 80270DF4 D0 03 00 00 */ stfs f0, 0(r3)
|
||||
/* 80270DF8 C0 24 00 04 */ lfs f1, 4(r4)
|
||||
/* 80270DFC C0 06 00 04 */ lfs f0, 4(r6)
|
||||
/* 80270E00 EC 01 00 2A */ fadds f0, f1, f0
|
||||
/* 80270E04 D0 03 00 04 */ stfs f0, 4(r3)
|
||||
/* 80270E08 C0 44 00 08 */ lfs f2, 8(r4)
|
||||
/* 80270E0C EC 23 01 72 */ fmuls f1, f3, f5
|
||||
/* 80270E10 EC 04 01 B2 */ fmuls f0, f4, f6
|
||||
/* 80270E14 EC 01 00 28 */ fsubs f0, f1, f0
|
||||
/* 80270E18 EC 02 00 2A */ fadds f0, f2, f0
|
||||
/* 80270E1C D0 03 00 08 */ stfs f0, 8(r3)
|
||||
/* 80270E20 4E 80 00 20 */ blr
|
||||
@@ -1,94 +0,0 @@
|
||||
lbl_80270C74:
|
||||
/* 80270C74 94 21 FF D0 */ stwu r1, -0x30(r1)
|
||||
/* 80270C78 7C 08 02 A6 */ mflr r0
|
||||
/* 80270C7C 90 01 00 34 */ stw r0, 0x34(r1)
|
||||
/* 80270C80 7C 65 1B 78 */ mr r5, r3
|
||||
/* 80270C84 38 61 00 18 */ addi r3, r1, 0x18
|
||||
/* 80270C88 4B FF 5E AD */ bl __mi__4cXyzCFRC3Vec
|
||||
/* 80270C8C C0 41 00 18 */ lfs f2, 0x18(r1)
|
||||
/* 80270C90 D0 41 00 24 */ stfs f2, 0x24(r1)
|
||||
/* 80270C94 C0 01 00 1C */ lfs f0, 0x1c(r1)
|
||||
/* 80270C98 D0 01 00 28 */ stfs f0, 0x28(r1)
|
||||
/* 80270C9C C0 21 00 20 */ lfs f1, 0x20(r1)
|
||||
/* 80270CA0 D0 21 00 2C */ stfs f1, 0x2c(r1)
|
||||
/* 80270CA4 D0 41 00 0C */ stfs f2, 0xc(r1)
|
||||
/* 80270CA8 C0 02 B7 E0 */ lfs f0, lit_2262(r2)
|
||||
/* 80270CAC D0 01 00 10 */ stfs f0, 0x10(r1)
|
||||
/* 80270CB0 D0 21 00 14 */ stfs f1, 0x14(r1)
|
||||
/* 80270CB4 38 61 00 0C */ addi r3, r1, 0xc
|
||||
/* 80270CB8 48 0D 64 81 */ bl PSVECSquareMag
|
||||
/* 80270CBC C0 02 B7 E0 */ lfs f0, lit_2262(r2)
|
||||
/* 80270CC0 FC 01 00 40 */ fcmpo cr0, f1, f0
|
||||
/* 80270CC4 40 81 00 58 */ ble lbl_80270D1C
|
||||
/* 80270CC8 FC 00 08 34 */ frsqrte f0, f1
|
||||
/* 80270CCC C8 82 B7 E8 */ lfd f4, lit_2379(r2)
|
||||
/* 80270CD0 FC 44 00 32 */ fmul f2, f4, f0
|
||||
/* 80270CD4 C8 62 B7 F0 */ lfd f3, lit_2380(r2)
|
||||
/* 80270CD8 FC 00 00 32 */ fmul f0, f0, f0
|
||||
/* 80270CDC FC 01 00 32 */ fmul f0, f1, f0
|
||||
/* 80270CE0 FC 03 00 28 */ fsub f0, f3, f0
|
||||
/* 80270CE4 FC 02 00 32 */ fmul f0, f2, f0
|
||||
/* 80270CE8 FC 44 00 32 */ fmul f2, f4, f0
|
||||
/* 80270CEC FC 00 00 32 */ fmul f0, f0, f0
|
||||
/* 80270CF0 FC 01 00 32 */ fmul f0, f1, f0
|
||||
/* 80270CF4 FC 03 00 28 */ fsub f0, f3, f0
|
||||
/* 80270CF8 FC 02 00 32 */ fmul f0, f2, f0
|
||||
/* 80270CFC FC 44 00 32 */ fmul f2, f4, f0
|
||||
/* 80270D00 FC 00 00 32 */ fmul f0, f0, f0
|
||||
/* 80270D04 FC 01 00 32 */ fmul f0, f1, f0
|
||||
/* 80270D08 FC 03 00 28 */ fsub f0, f3, f0
|
||||
/* 80270D0C FC 02 00 32 */ fmul f0, f2, f0
|
||||
/* 80270D10 FC 41 00 32 */ fmul f2, f1, f0
|
||||
/* 80270D14 FC 40 10 18 */ frsp f2, f2
|
||||
/* 80270D18 48 00 00 90 */ b lbl_80270DA8
|
||||
lbl_80270D1C:
|
||||
/* 80270D1C C8 02 B7 F8 */ lfd f0, lit_2381(r2)
|
||||
/* 80270D20 FC 01 00 40 */ fcmpo cr0, f1, f0
|
||||
/* 80270D24 40 80 00 10 */ bge lbl_80270D34
|
||||
/* 80270D28 3C 60 80 45 */ lis r3, __float_nan@ha /* 0x80450AE0@ha */
|
||||
/* 80270D2C C0 43 0A E0 */ lfs f2, __float_nan@l(r3) /* 0x80450AE0@l */
|
||||
/* 80270D30 48 00 00 78 */ b lbl_80270DA8
|
||||
lbl_80270D34:
|
||||
/* 80270D34 D0 21 00 08 */ stfs f1, 8(r1)
|
||||
/* 80270D38 80 81 00 08 */ lwz r4, 8(r1)
|
||||
/* 80270D3C 54 83 00 50 */ rlwinm r3, r4, 0, 1, 8
|
||||
/* 80270D40 3C 00 7F 80 */ lis r0, 0x7f80
|
||||
/* 80270D44 7C 03 00 00 */ cmpw r3, r0
|
||||
/* 80270D48 41 82 00 14 */ beq lbl_80270D5C
|
||||
/* 80270D4C 40 80 00 40 */ bge lbl_80270D8C
|
||||
/* 80270D50 2C 03 00 00 */ cmpwi r3, 0
|
||||
/* 80270D54 41 82 00 20 */ beq lbl_80270D74
|
||||
/* 80270D58 48 00 00 34 */ b lbl_80270D8C
|
||||
lbl_80270D5C:
|
||||
/* 80270D5C 54 80 02 7F */ clrlwi. r0, r4, 9
|
||||
/* 80270D60 41 82 00 0C */ beq lbl_80270D6C
|
||||
/* 80270D64 38 00 00 01 */ li r0, 1
|
||||
/* 80270D68 48 00 00 28 */ b lbl_80270D90
|
||||
lbl_80270D6C:
|
||||
/* 80270D6C 38 00 00 02 */ li r0, 2
|
||||
/* 80270D70 48 00 00 20 */ b lbl_80270D90
|
||||
lbl_80270D74:
|
||||
/* 80270D74 54 80 02 7F */ clrlwi. r0, r4, 9
|
||||
/* 80270D78 41 82 00 0C */ beq lbl_80270D84
|
||||
/* 80270D7C 38 00 00 05 */ li r0, 5
|
||||
/* 80270D80 48 00 00 10 */ b lbl_80270D90
|
||||
lbl_80270D84:
|
||||
/* 80270D84 38 00 00 03 */ li r0, 3
|
||||
/* 80270D88 48 00 00 08 */ b lbl_80270D90
|
||||
lbl_80270D8C:
|
||||
/* 80270D8C 38 00 00 04 */ li r0, 4
|
||||
lbl_80270D90:
|
||||
/* 80270D90 2C 00 00 01 */ cmpwi r0, 1
|
||||
/* 80270D94 40 82 00 10 */ bne lbl_80270DA4
|
||||
/* 80270D98 3C 60 80 45 */ lis r3, __float_nan@ha /* 0x80450AE0@ha */
|
||||
/* 80270D9C C0 43 0A E0 */ lfs f2, __float_nan@l(r3) /* 0x80450AE0@l */
|
||||
/* 80270DA0 48 00 00 08 */ b lbl_80270DA8
|
||||
lbl_80270DA4:
|
||||
/* 80270DA4 FC 40 08 90 */ fmr f2, f1
|
||||
lbl_80270DA8:
|
||||
/* 80270DA8 C0 21 00 28 */ lfs f1, 0x28(r1)
|
||||
/* 80270DAC 4B FF 68 C9 */ bl cM_atan2s__Fff
|
||||
/* 80270DB0 80 01 00 34 */ lwz r0, 0x34(r1)
|
||||
/* 80270DB4 7C 08 03 A6 */ mtlr r0
|
||||
/* 80270DB8 38 21 00 30 */ addi r1, r1, 0x30
|
||||
/* 80270DBC 4E 80 00 20 */ blr
|
||||
@@ -3,4 +3,52 @@
|
||||
|
||||
#include "dolphin/types.h"
|
||||
|
||||
namespace JGadget {
|
||||
namespace binary {
|
||||
|
||||
struct TEBit {
|
||||
u32 value;
|
||||
};
|
||||
|
||||
const void* parseVariableUInt_16_32_following(const void* pu16, u32* pu32First, u32* pu32Second,
|
||||
TEBit* tebit);
|
||||
|
||||
inline u32 align_roundUp(u32 arg0, u32 uAlign) {
|
||||
return (arg0 + uAlign - 1) & ~(uAlign - 1);
|
||||
}
|
||||
|
||||
struct TParseData {
|
||||
TParseData(const void* pContent) : raw(pContent) {}
|
||||
|
||||
const void* getRaw() const { return raw; }
|
||||
void setRaw(const void* p) { raw = p; }
|
||||
|
||||
const void* raw;
|
||||
};
|
||||
|
||||
template <int T>
|
||||
struct TParseData_aligned : public TParseData {
|
||||
TParseData_aligned(const void* pContent) : TParseData(pContent) {}
|
||||
void setRaw(const void* p) {
|
||||
if ((u32)p % T != 0) {
|
||||
JUTWarn w;
|
||||
w << "misaligned : " << (u32)p;
|
||||
}
|
||||
static_cast<TParseData*>(this)->setRaw(p);
|
||||
}
|
||||
};
|
||||
|
||||
// Base for header and/or block parsing
|
||||
struct TParse_header_block {
|
||||
virtual ~TParse_header_block();
|
||||
|
||||
virtual bool parseHeader_next(const void** ppData_inout, u32* puBlock_out, u32 arg2) = 0;
|
||||
virtual bool parseBlock_next(const void** ppData_inout, u32* puData_out, u32 arg2) = 0;
|
||||
|
||||
bool parse_next(const void** ppData_inout, u32 a2);
|
||||
};
|
||||
|
||||
} // namespace binary
|
||||
} // namespace JGadget
|
||||
|
||||
#endif /* BINARY_H */
|
||||
|
||||
@@ -22,15 +22,15 @@ struct TNodeLinkList {
|
||||
TLinkListNode* node;
|
||||
};
|
||||
|
||||
TNodeLinkList() : mListNode() { Initialize_(); }
|
||||
TNodeLinkList() : ocObject_() { Initialize_(); }
|
||||
void Initialize_() {
|
||||
ptr = NULL;
|
||||
mListNode.mNext = &mListNode;
|
||||
mListNode.mPrev = &mListNode;
|
||||
ocObject_.mNext = &ocObject_;
|
||||
ocObject_.mPrev = &ocObject_;
|
||||
}
|
||||
|
||||
iterator end() {
|
||||
iterator iter(&mListNode);
|
||||
iterator iter(&ocObject_);
|
||||
return iter;
|
||||
}
|
||||
|
||||
@@ -40,11 +40,11 @@ struct TNodeLinkList {
|
||||
/* 802DCB08 */ void splice(JGadget::TNodeLinkList::iterator, JGadget::TNodeLinkList&,
|
||||
JGadget::TNodeLinkList::iterator);
|
||||
/* 802DCBA8 */ void Insert(JGadget::TNodeLinkList::iterator, JGadget::TLinkListNode*);
|
||||
/* 802DCBD4 */ void Erase(JGadget::TLinkListNode*);
|
||||
/* 802DCBD4 */ iterator Erase(JGadget::TLinkListNode*);
|
||||
/* 802DCBF8 */ void Remove(JGadget::TLinkListNode*);
|
||||
|
||||
/* 0x00 */ TNodeLinkList* ptr;
|
||||
/* 0x04 */ TLinkListNode mListNode;
|
||||
/* 0x04 */ TLinkListNode ocObject_;
|
||||
}; // Size: 0xC
|
||||
|
||||
template <typename T, int I>
|
||||
@@ -55,13 +55,18 @@ struct TLinkList : public TNodeLinkList {
|
||||
iterator(TNodeLinkList::iterator iter) : TNodeLinkList::iterator(iter) {}
|
||||
};
|
||||
|
||||
TLinkListNode* Element_toNode(T* element) const { return &element->mListNode; }
|
||||
TLinkListNode* Element_toNode(T* element) const { return &element->ocObject_; }
|
||||
|
||||
void Insert(TLinkList::iterator iter, T* element) {
|
||||
TLinkListNode* node = Element_toNode(element);
|
||||
TNodeLinkList::Insert(iter, node);
|
||||
}
|
||||
|
||||
iterator Erase(T* element) {
|
||||
TLinkListNode* node = Element_toNode(element);
|
||||
return ((TNodeLinkList*)this)->Erase(node);
|
||||
}
|
||||
|
||||
TLinkList::iterator end() {
|
||||
TNodeLinkList::iterator node_iter = TNodeLinkList::end();
|
||||
TLinkList::iterator iter(node_iter);
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
#ifndef SEARCH_H
|
||||
#define SEARCH_H
|
||||
|
||||
#include "global.h"
|
||||
|
||||
namespace JGadget {
|
||||
|
||||
//! @todo: mangled name isn't correct, fix this
|
||||
//! Current: toValueFromIndex<PFdd_d>__7JGadgetFiPCPFdd_dUlRCPFdd_d
|
||||
//! Target: toValueFromIndex<PFdd_d>__7JGadgetFiPCPFdd_dUlRCPFdd_d_RCPFdd_d
|
||||
template <typename T>
|
||||
inline const T& toValueFromIndex(int idx, const T* pValue, u32 count, const T& fallback) {
|
||||
ASSERT(pValue != NULL);
|
||||
return (idx >= count) ? fallback : pValue[idx];
|
||||
}
|
||||
|
||||
} // namespace JGadget
|
||||
|
||||
#endif /* SEARCH_H */
|
||||
@@ -0,0 +1,71 @@
|
||||
#ifndef VECTOR_H
|
||||
#define VECTOR_H
|
||||
|
||||
#include "global.h"
|
||||
|
||||
extern u8 data_804511E0;
|
||||
extern u8 lit_569[];
|
||||
|
||||
namespace JGadget {
|
||||
|
||||
namespace vector {
|
||||
|
||||
u32 extend_default(u32 arg1, u32 arg2, u32 arg3);
|
||||
|
||||
typedef u32 (*ExtendFunc)(u32, u32, u32);
|
||||
|
||||
} // namespace vector
|
||||
|
||||
template <typename T>
|
||||
struct TAllocator {
|
||||
static TAllocator get() {}
|
||||
inline TAllocator() { _0 = lit_569[0]; }
|
||||
/* 0x0 */ u8 _0;
|
||||
/* 0x4 */ u32 _4;
|
||||
/* 0x8 */ u32 _8;
|
||||
/* 0xc */ u32 _c;
|
||||
};
|
||||
|
||||
template <typename T, template <class> class Allocator>
|
||||
struct TVector {
|
||||
TVector(Allocator<T> alloc) {
|
||||
_0 = NULL;
|
||||
pBegin_ = _0;
|
||||
_c = NULL;
|
||||
extend = vector::extend_default;
|
||||
}
|
||||
|
||||
void** begin() { return pBegin_; }
|
||||
void** end() { return pEnd_; }
|
||||
// void erase(void** arg1, void** arg2) {}
|
||||
|
||||
void** _0;
|
||||
void** pBegin_;
|
||||
void** pEnd_;
|
||||
u32 _c;
|
||||
vector::ExtendFunc extend;
|
||||
};
|
||||
|
||||
struct TVector_pointer_void : TVector<void*, TAllocator> {
|
||||
/* 802DCCD0 */ TVector_pointer_void(JGadget::TAllocator<void*> const&);
|
||||
/* 802DCCFC */ ~TVector_pointer_void();
|
||||
/* 802DCDC4 */ void erase(void**, void**);
|
||||
void insert(void**, void* const&);
|
||||
|
||||
void clear() { erase(begin(), end()); }
|
||||
void push_back(const void*& ref) { insert(end(), (void* const&)ref); }
|
||||
};
|
||||
|
||||
template <typename T>
|
||||
struct TVector_pointer : TVector_pointer_void {
|
||||
// TVector_pointer(const TAllocator<void*>& allocator) : TVector_pointer_void(allocator) {}
|
||||
~TVector_pointer() {}
|
||||
|
||||
void push_back(const T& ref) {
|
||||
static_cast<TVector_pointer_void*>(this)->push_back((const void*&)ref);
|
||||
}
|
||||
};
|
||||
|
||||
} // namespace JGadget
|
||||
|
||||
#endif /* VECTOR_H */
|
||||
@@ -1,6 +1,392 @@
|
||||
#ifndef FUNCTIONVALUE_H
|
||||
#define FUNCTIONVALUE_H
|
||||
|
||||
#include "JSystem/JGadget/search.h"
|
||||
#include "JSystem/JGadget/vector.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
extern u8 lit_652[];
|
||||
|
||||
namespace JStudio {
|
||||
|
||||
typedef f64 (*ExtrapolateParameter)(f64, f64);
|
||||
|
||||
class TFunctionValue;
|
||||
class TFunctionValueAttributeSet;
|
||||
|
||||
class TFunctionValueAttribute_refer;
|
||||
class TFunctionValueAttribute_range;
|
||||
class TFunctionValueAttribute_interpolate;
|
||||
|
||||
class TFunctionValue {
|
||||
public:
|
||||
enum TEProgress { PROG_INIT };
|
||||
enum TEAdjust { ADJ_INIT };
|
||||
enum TEOutside { OUT_INIT };
|
||||
enum TEInterpolate {};
|
||||
|
||||
/* 80281690 */ TFunctionValue();
|
||||
/* 802816A0 */ virtual ~TFunctionValue() = 0;
|
||||
|
||||
virtual u32 getType() const = 0;
|
||||
virtual TFunctionValueAttributeSet getAttributeSet() = 0;
|
||||
virtual void initialize() = 0;
|
||||
virtual void prepare() = 0;
|
||||
virtual f64 getValue(f64 arg1) = 0;
|
||||
|
||||
/* 80281648 */ static ExtrapolateParameter toFunction_outside(int);
|
||||
|
||||
static ExtrapolateParameter toFunction(TFunctionValue::TEOutside outside) {
|
||||
return toFunction_outside(outside);
|
||||
}
|
||||
};
|
||||
|
||||
class TFunctionValueAttributeSet_const {
|
||||
public:
|
||||
TFunctionValueAttributeSet_const(TFunctionValueAttribute_refer* refer,
|
||||
TFunctionValueAttribute_range* range,
|
||||
TFunctionValueAttribute_interpolate* interp)
|
||||
: refer_(refer), range_(range), interp_(interp) {}
|
||||
|
||||
TFunctionValueAttribute_refer* refer_get() const { return refer_; }
|
||||
TFunctionValueAttribute_range* range_get() const { return range_; }
|
||||
TFunctionValueAttribute_interpolate* interpolate_get() const { return interp_; }
|
||||
|
||||
private:
|
||||
/* 0x00 */ TFunctionValueAttribute_refer* refer_;
|
||||
/* 0x04 */ TFunctionValueAttribute_range* range_;
|
||||
/* 0x08 */ TFunctionValueAttribute_interpolate* interp_;
|
||||
};
|
||||
|
||||
class TFunctionValueAttributeSet : public TFunctionValueAttributeSet_const {
|
||||
public:
|
||||
TFunctionValueAttributeSet(TFunctionValueAttribute_refer* refer,
|
||||
TFunctionValueAttribute_range* range,
|
||||
TFunctionValueAttribute_interpolate* interp)
|
||||
: TFunctionValueAttributeSet_const(refer, range, interp) {}
|
||||
|
||||
TFunctionValueAttribute_refer* refer_get() const {
|
||||
return static_cast<const TFunctionValueAttributeSet_const*>(this)->refer_get();
|
||||
}
|
||||
TFunctionValueAttribute_range* range_get() const {
|
||||
return static_cast<const TFunctionValueAttributeSet_const*>(this)->range_get();
|
||||
}
|
||||
TFunctionValueAttribute_interpolate* interpolate_get() const {
|
||||
return static_cast<const TFunctionValueAttributeSet_const*>(this)->interpolate_get();
|
||||
}
|
||||
};
|
||||
|
||||
class TFunctionValueAttribute_refer : public JGadget::TVector_pointer<TFunctionValue*> {
|
||||
public:
|
||||
// TFunctionValueAttribute_refer() :
|
||||
// JGadget::TVector_pointer<TFunctionValue*>(JGadget::TAllocator<void*>()) {}
|
||||
~TFunctionValueAttribute_refer() {}
|
||||
|
||||
/* 802816E8 */ void refer_initialize();
|
||||
|
||||
const TFunctionValueAttribute_refer* refer_getContainer() const { return this; }
|
||||
JGadget::TVector_pointer<TFunctionValue*>& refer_referContainer() { return *this; }
|
||||
bool refer_isReferring(const TFunctionValue* p) const { return false; } // todo
|
||||
};
|
||||
|
||||
class TFunctionValueAttribute_range {
|
||||
public:
|
||||
/* 80281D18 */ TFunctionValueAttribute_range();
|
||||
|
||||
/* 80281918 */ void range_initialize();
|
||||
/* 8028194C */ void range_prepare();
|
||||
/* 802819F4 */ void range_set(f64, f64);
|
||||
/* 80281A08 */ f64 range_getParameter(f64, f64, f64) const;
|
||||
|
||||
TFunctionValue::TEProgress range_getProgress() const {
|
||||
return (TFunctionValue::TEProgress)mProgress;
|
||||
}
|
||||
void range_setProgress(TFunctionValue::TEProgress progress) { mProgress = progress; }
|
||||
TFunctionValue::TEAdjust range_getAdjust() const { return (TFunctionValue::TEAdjust)mAdjust; }
|
||||
void range_setAdjust(TFunctionValue::TEAdjust adjust) { mAdjust = adjust; }
|
||||
void range_setOutside(TFunctionValue::TEOutside outside) { range_setOutside(outside, outside); }
|
||||
void range_setOutside(TFunctionValue::TEOutside begin, TFunctionValue::TEOutside end) {
|
||||
range_setOutside_begin(begin);
|
||||
range_setOutside_end(end);
|
||||
}
|
||||
void range_setOutside_begin(TFunctionValue::TEOutside begin) { mBegin = begin; }
|
||||
void range_setOutside_end(TFunctionValue::TEOutside end) { mEnd = end; }
|
||||
f64 range_getParameter_outside(f64 arg1) const {
|
||||
f64 temp = arg1 - fBegin_;
|
||||
f64 result = temp;
|
||||
if (temp < *(f64*)&lit_652) {
|
||||
result = TFunctionValue::toFunction(mBegin)(temp, fDifference_);
|
||||
} else if (temp >= fDifference_) {
|
||||
result = TFunctionValue::toFunction(mEnd)(temp, fDifference_);
|
||||
}
|
||||
return result + fBegin_;
|
||||
}
|
||||
f64 range_getParameter_progress(f64 arg1) const { return _20 + _28 * (arg1 - _20); }
|
||||
|
||||
private:
|
||||
/* 0x00 */ f64 fBegin_;
|
||||
/* 0x08 */ f64 fEnd_;
|
||||
/* 0x10 */ f64 fDifference_;
|
||||
/* 0x18 */ s8 mProgress;
|
||||
/* 0x19 */ s8 mAdjust;
|
||||
/* 0x1A */ s8 _1a[2];
|
||||
/* 0x1C */ u32 _1c;
|
||||
/* 0x20 */ f64 _20;
|
||||
/* 0x28 */ f64 _28;
|
||||
/* 0x30 */ TFunctionValue::TEOutside mBegin;
|
||||
/* 0x34 */ TFunctionValue::TEOutside mEnd;
|
||||
};
|
||||
|
||||
class TFunctionValueAttribute_interpolate {
|
||||
public:
|
||||
TFunctionValueAttribute_interpolate() : interpolate_(0) {}
|
||||
|
||||
void interpolate_initialize() { interpolate_ = 0; }
|
||||
void interpolate_prepare() {}
|
||||
u32 interpolate_get() const { return interpolate_; }
|
||||
void interpolate_set(TFunctionValue::TEInterpolate interpolate) { interpolate_ = interpolate; }
|
||||
|
||||
private:
|
||||
/* 0x0 */ u32 interpolate_;
|
||||
};
|
||||
|
||||
class TFunctionValue_constant : public TFunctionValue {
|
||||
public:
|
||||
/* 8028236C */ TFunctionValue_constant();
|
||||
/* 80283D44 */ virtual ~TFunctionValue_constant() {}
|
||||
|
||||
/* 802823B4 */ virtual u32 getType() const;
|
||||
/* 802823BC */ virtual TFunctionValueAttributeSet getAttributeSet();
|
||||
/* 802823D0 */ virtual void initialize();
|
||||
/* 802823E0 */ virtual void prepare();
|
||||
/* 802823E4 */ virtual f64 getValue(f64);
|
||||
|
||||
void data_set(f64 value) { fValue_ = value; }
|
||||
|
||||
private:
|
||||
f64 fValue_;
|
||||
};
|
||||
|
||||
class TFunctionValue_composite : TFunctionValue, TFunctionValueAttribute_refer {
|
||||
public:
|
||||
struct TData {
|
||||
TData(void* data) : u32data((u32)data) {}
|
||||
TData(const void* data) : rawData(data) {}
|
||||
TData(u32 data) : u32data(data) {}
|
||||
TData(f32 data) : f32data(data) {}
|
||||
|
||||
inline void operator=(const TData& rhs) { f32data = rhs.f32data; }
|
||||
|
||||
union {
|
||||
const void* rawData;
|
||||
u32 u32data;
|
||||
f64 f32data;
|
||||
};
|
||||
};
|
||||
typedef f64 (*UnkFunc)(f64, const TFunctionValueAttribute_refer*,
|
||||
const TFunctionValue_composite::TData*);
|
||||
typedef f64 (*CompositeFunc)(const JGadget::TVector_pointer<TFunctionValue>&,
|
||||
const TFunctionValue_composite::TData&, f64);
|
||||
|
||||
/* 80281D5C */ TFunctionValue_composite();
|
||||
/* 80283DA4 */ virtual ~TFunctionValue_composite() {}
|
||||
|
||||
/* 80281DB8 */ virtual u32 getType() const;
|
||||
/* 80281DC0 */ virtual TFunctionValueAttributeSet getAttributeSet();
|
||||
/* 80281DE0 */ virtual void initialize();
|
||||
/* 80281E24 */ virtual void prepare();
|
||||
/* 80281E28 */ virtual f64 getValue(f64);
|
||||
/* 80281E5C */ void composite_raw(TVector_pointer<TFunctionValue*> const&, TData const&, f64);
|
||||
/* 80281EC8 */ void composite_index(TVector_pointer<TFunctionValue*> const&, TData const&, f64);
|
||||
/* 8028202C */ void composite_parameter(TVector_pointer<TFunctionValue*> const&, TData const&,
|
||||
f64);
|
||||
/* 80282094 */ void composite_add(TVector_pointer<JStudio::TFunctionValue*> const&,
|
||||
TData const&, f64);
|
||||
/* 80282118 */ void composite_subtract(TVector_pointer<TFunctionValue*> const&, TData const&,
|
||||
f64);
|
||||
/* 80282200 */ void composite_multiply(TVector_pointer<TFunctionValue*> const&, TData const&,
|
||||
f64);
|
||||
/* 80282284 */ void composite_divide(TVector_pointer<TFunctionValue*> const&, TData const&,
|
||||
f64);
|
||||
|
||||
void data_set(CompositeFunc fn, const TData& dat) {
|
||||
pfn_ = (UnkFunc)fn;
|
||||
data_setData(dat);
|
||||
}
|
||||
const TData* data_getData() const { return &data; }
|
||||
void data_setData(const TData& dat) { data = dat; }
|
||||
|
||||
private:
|
||||
UnkFunc pfn_;
|
||||
TData data;
|
||||
};
|
||||
|
||||
class TFunctionValue_transition : TFunctionValue,
|
||||
TFunctionValueAttribute_range,
|
||||
TFunctionValueAttribute_interpolate {
|
||||
public:
|
||||
/* 802823EC */ TFunctionValue_transition();
|
||||
/* 80283CE4 */ virtual ~TFunctionValue_transition() {}
|
||||
|
||||
/* 8028244C */ virtual u32 getType() const;
|
||||
/* 80282454 */ virtual TFunctionValueAttributeSet getAttributeSet();
|
||||
/* 80282484 */ virtual void initialize();
|
||||
/* 802824D0 */ virtual void prepare();
|
||||
/* 802824F4 */ virtual f64 getValue(f64);
|
||||
|
||||
void data_set(f64 a1, f64 a2) {
|
||||
_48 = a1;
|
||||
_50 = a2;
|
||||
}
|
||||
|
||||
private:
|
||||
/* 0x48 */ f64 _48;
|
||||
/* 0x50 */ f64 _50;
|
||||
};
|
||||
|
||||
class TFunctionValue_list : TFunctionValue,
|
||||
TFunctionValueAttribute_range,
|
||||
TFunctionValueAttribute_interpolate {
|
||||
public:
|
||||
struct TIndexData_ {
|
||||
f64 _0;
|
||||
f64 _8;
|
||||
u32 _10;
|
||||
};
|
||||
typedef f64 (*update_INTERPOLATE)(const TFunctionValue_list&, const TIndexData_&);
|
||||
|
||||
/* 802826BC */ TFunctionValue_list();
|
||||
virtual ~TFunctionValue_list() {}
|
||||
|
||||
/* 80282720 */ virtual u32 getType() const;
|
||||
/* 80282728 */ virtual TFunctionValueAttributeSet getAttributeSet();
|
||||
/* 80282758 */ virtual void initialize();
|
||||
/* 802827A8 */ virtual void prepare();
|
||||
/* 80282858 */ virtual f64 getValue(f64);
|
||||
|
||||
void data_set(const f32* pf, u32 u) {
|
||||
ASSERT((pf != NULL) || (u == 0));
|
||||
_44 = pf;
|
||||
_48 = u;
|
||||
}
|
||||
|
||||
void data_setInterval(f64 f) {
|
||||
ASSERT(f > TValue(0));
|
||||
_50 = f;
|
||||
}
|
||||
|
||||
/* 80282C10 */ static f64
|
||||
update_INTERPOLATE_NONE_(JStudio::TFunctionValue_list const&,
|
||||
JStudio::TFunctionValue_list::TIndexData_ const&);
|
||||
/* 80282C24 */ static f64
|
||||
update_INTERPOLATE_LINEAR_(JStudio::TFunctionValue_list const&,
|
||||
JStudio::TFunctionValue_list::TIndexData_ const&);
|
||||
/* 80282C58 */ static f64
|
||||
update_INTERPOLATE_PLATEAU_(JStudio::TFunctionValue_list const&,
|
||||
JStudio::TFunctionValue_list::TIndexData_ const&);
|
||||
/* 80282CA8 */ static f64
|
||||
update_INTERPOLATE_BSPLINE_dataMore3_(JStudio::TFunctionValue_list const&,
|
||||
JStudio::TFunctionValue_list::TIndexData_ const&);
|
||||
|
||||
private:
|
||||
/* 0x44 */ const f32* _44;
|
||||
/* 0x48 */ u32 _48;
|
||||
/* 0x50 */ f64 _50;
|
||||
/* 0x58 */ update_INTERPOLATE _58;
|
||||
};
|
||||
|
||||
class TFunctionValue_list_parameter : TFunctionValue,
|
||||
TFunctionValueAttribute_range,
|
||||
TFunctionValueAttribute_interpolate {
|
||||
public:
|
||||
struct TIterator_data_ {
|
||||
TIterator_data_(const f32* value) : value_(value) {}
|
||||
TIterator_data_(const TIterator_data_& other) : value_(other.value_) {}
|
||||
|
||||
void operator=(const TIterator_data_& rhs) { value_ = rhs.value_; }
|
||||
|
||||
const f32* get() const { return value_; }
|
||||
void set(const f32* value) { value_ = value; }
|
||||
|
||||
const f32* value_;
|
||||
};
|
||||
typedef f64 (*update_INTERPOLATE)(const TFunctionValue_list_parameter&, f64);
|
||||
|
||||
/* 80282D34 */ TFunctionValue_list_parameter();
|
||||
/* 80283C24 */ virtual ~TFunctionValue_list_parameter() {}
|
||||
|
||||
/* 80282DA0 */ virtual u32 getType() const;
|
||||
/* 80282DA8 */ virtual TFunctionValueAttributeSet getAttributeSet();
|
||||
/* 80282DD8 */ void data_set(f32 const*, u32);
|
||||
/* 80282E08 */ virtual void initialize();
|
||||
/* 80282E60 */ virtual void prepare();
|
||||
/* 80282F10 */ virtual f64 getValue(f64);
|
||||
|
||||
/* 80282FE8 */ static f64
|
||||
update_INTERPOLATE_NONE_(JStudio::TFunctionValue_list_parameter const&, f64);
|
||||
/* 80282FF4 */ static f64
|
||||
update_INTERPOLATE_LINEAR_(JStudio::TFunctionValue_list_parameter const&, f64);
|
||||
/* 80283024 */ static f64
|
||||
update_INTERPOLATE_PLATEAU_(JStudio::TFunctionValue_list_parameter const&, f64);
|
||||
/* 80283060 */ static f64
|
||||
update_INTERPOLATE_BSPLINE_dataMore3_(JStudio::TFunctionValue_list_parameter const&, f64);
|
||||
|
||||
private:
|
||||
/* 0x44 */ const f32* _44;
|
||||
/* 0x48 */ u32 _48;
|
||||
/* 0x4c */ TIterator_data_ dat1;
|
||||
/* 0x50 */ TIterator_data_ dat2;
|
||||
/* 0x54 */ TIterator_data_ dat3;
|
||||
/* 0x58 */ update_INTERPOLATE _58;
|
||||
};
|
||||
|
||||
class TFunctionValue_hermite : TFunctionValue, TFunctionValueAttribute_range {
|
||||
public:
|
||||
struct TIterator_data_ {
|
||||
TIterator_data_(const TFunctionValue_hermite& rParent, const f32* value) {
|
||||
value_ = value;
|
||||
size_ = rParent.data_getSize();
|
||||
}
|
||||
TIterator_data_(const TIterator_data_& other) {
|
||||
value_ = other.value_;
|
||||
size_ = other.size_;
|
||||
}
|
||||
|
||||
void set(const f32* value, u32 size) {
|
||||
value_ = value;
|
||||
size_ = size;
|
||||
}
|
||||
|
||||
void operator=(const TIterator_data_& rhs) {
|
||||
value_ = rhs.value_;
|
||||
size_ = rhs.size_;
|
||||
}
|
||||
|
||||
/* 0x00 */ const f32* value_;
|
||||
/* 0x04 */ u32 size_;
|
||||
};
|
||||
|
||||
/* 802832C4 */ TFunctionValue_hermite();
|
||||
/* 80283BC4 */ virtual ~TFunctionValue_hermite() {}
|
||||
|
||||
/* 80283344 */ virtual u32 getType() const;
|
||||
/* 8028334C */ virtual TFunctionValueAttributeSet getAttributeSet();
|
||||
/* 8028336C */ void data_set(f32 const*, u32, u32);
|
||||
/* 802833BC */ virtual void initialize();
|
||||
/* 80283428 */ virtual void prepare();
|
||||
/* 8028344C */ virtual f64 getValue(f64);
|
||||
|
||||
u32 data_getSize() const { return uSize_; }
|
||||
|
||||
private:
|
||||
/* 0x40 */ const f32* pf_;
|
||||
/* 0x44 */ u32 u_;
|
||||
/* 0x48 */ u32 uSize_;
|
||||
/* 0x4c */ TIterator_data_ dat1;
|
||||
/* 0x50 */ TIterator_data_ dat2;
|
||||
/* 0x54 */ TIterator_data_ dat3;
|
||||
};
|
||||
|
||||
} // namespace JStudio
|
||||
|
||||
#endif /* FUNCTIONVALUE_H */
|
||||
|
||||
@@ -1,6 +1,52 @@
|
||||
#ifndef FVB_DATA_PARSE_H
|
||||
#define FVB_DATA_PARSE_H
|
||||
|
||||
#include "dolphin/types.h"
|
||||
#include "JSystem/JStudio/JStudio/fvb-data.h"
|
||||
|
||||
namespace JStudio {
|
||||
namespace fvb {
|
||||
namespace data {
|
||||
|
||||
class TParse_TBlock : public TParseData_aligned<4> {
|
||||
public:
|
||||
TParse_TBlock(const void* content) : TParseData_aligned<4>(content) {}
|
||||
|
||||
const TBlock* get() const { return (TBlock*)getRaw(); }
|
||||
|
||||
u32 get_size() const { return get()->size; }
|
||||
const void* getNext() const {
|
||||
u32 size = get_size();
|
||||
return (const void*)((u8*)getRaw() + size);
|
||||
}
|
||||
u16 get_type() const { return get()->type; }
|
||||
u16 get_IDSize() const { return get()->id_size; }
|
||||
const void* getBlockEnd_() const { return (u8*)getRaw() + sizeof(TBlock); }
|
||||
const void* get_ID() const {
|
||||
const void* ret = 0;
|
||||
if (get_IDSize())
|
||||
ret = getBlockEnd_();
|
||||
return ret;
|
||||
}
|
||||
const void* getContent() const {
|
||||
u32 size = align_roundUp(get_IDSize(), 4);
|
||||
return (const void*)((int)getBlockEnd_() + size);
|
||||
}
|
||||
};
|
||||
|
||||
class TParse_TParagraph : public TParseData_aligned<4> {
|
||||
public:
|
||||
struct TData {
|
||||
/* 0x04 */ u32 u32Size;
|
||||
/* 0x08 */ u32 u32Type;
|
||||
/* 0x0C */ const void* pContent;
|
||||
};
|
||||
TParse_TParagraph(const void* content) : TParseData_aligned<4>(content) {}
|
||||
|
||||
/* 802850AC */ void getData(JStudio::fvb::data::TParse_TParagraph::TData*) const;
|
||||
};
|
||||
|
||||
} // namespace data
|
||||
} // namespace fvb
|
||||
} // namespace JStudio
|
||||
|
||||
#endif /* FVB_DATA_PARSE_H */
|
||||
|
||||
@@ -1,6 +1,63 @@
|
||||
#ifndef FVB_DATA_H
|
||||
#define FVB_DATA_H
|
||||
|
||||
#include "dolphin/types.h"
|
||||
#include "JSystem/JGadget/binary.h"
|
||||
#include "JSystem/JStudio/JStudio/functionvalue.h"
|
||||
|
||||
using namespace JGadget::binary;
|
||||
|
||||
namespace JStudio {
|
||||
namespace fvb {
|
||||
namespace data {
|
||||
|
||||
extern f32 ga4cSignature[1 + 1 /* padding */];
|
||||
|
||||
const int PARAGRAPH_DATA = 1;
|
||||
|
||||
typedef enum TEComposite {
|
||||
/* 0x0 */ COMPOSITE_NONE,
|
||||
/* 0x1 */ COMPOSITE_RAW,
|
||||
/* 0x2 */ COMPOSITE_IDX,
|
||||
/* 0x3 */ COMPOSITE_PARAM,
|
||||
/* 0x4 */ COMPOSITE_ADD,
|
||||
/* 0x5 */ COMPOSITE_SUB,
|
||||
/* 0x6 */ COMPOSITE_MUL,
|
||||
/* 0x7 */ COMPOSITE_DIV,
|
||||
/* 0x8 */ COMPOSITE_ENUM_SIZE,
|
||||
};
|
||||
|
||||
typedef const void* (*CompositeOperation)(TFunctionValue_composite::TData);
|
||||
|
||||
struct TBlock {
|
||||
/* 0x0 */ u32 size;
|
||||
/* 0x4 */ u16 type;
|
||||
/* 0x6 */ u16 id_size;
|
||||
/* 0x8 */ u8 id[0];
|
||||
};
|
||||
|
||||
struct THeader {
|
||||
/* 0x00 */ char signature[4];
|
||||
/* 0x04 */ u16 byte_order; // must be 0xFEFF
|
||||
/* 0x06 */ u16 version; // 0-1 = obselete, 2-7 = OK
|
||||
/* 0x08 */ u32 _8;
|
||||
/* 0x0C */ u32 block_number;
|
||||
/* 0x10 */ u8 content[0];
|
||||
};
|
||||
// Parses a THeader
|
||||
class TParse_THeader : public TParseData_aligned<4> {
|
||||
public:
|
||||
TParse_THeader(const void* p) : TParseData_aligned<4>(p) {}
|
||||
|
||||
const THeader* get() const { return (THeader*)getRaw(); }
|
||||
const void* getContent() const { return ((THeader*)getRaw())->content; }
|
||||
const char* get_signature() const { return get()->signature; }
|
||||
u16 get_byteOrder() const { return get()->byte_order; }
|
||||
u16 get_version() const { return get()->version; }
|
||||
u32 get_blockNumber() const { return get()->block_number; }
|
||||
};
|
||||
|
||||
} // namespace data
|
||||
} // namespace fvb
|
||||
} // namespace JStudio
|
||||
|
||||
#endif /* FVB_DATA_H */
|
||||
|
||||
@@ -1,6 +1,159 @@
|
||||
#ifndef FVB_H
|
||||
#define FVB_H
|
||||
|
||||
#include "dolphin/types.h"
|
||||
#include "JSystem/JGadget/linklist.h"
|
||||
#include "JSystem/JStudio/JStudio/fvb-data-parse.h"
|
||||
#include "JSystem/JStudio/JStudio/object-id.h"
|
||||
#include "global.h"
|
||||
|
||||
namespace JStudio {
|
||||
namespace fvb {
|
||||
|
||||
class TControl;
|
||||
|
||||
class TParse : public TParse_header_block {
|
||||
public:
|
||||
/* 80284ADC */ TParse(JStudio::fvb::TControl*);
|
||||
/* 80284AFC */ virtual ~TParse();
|
||||
/* 80284B5C */ virtual bool parseHeader_next(void const**, u32*, u32);
|
||||
/* 80284BF0 */ virtual bool parseBlock_next(void const**, u32*, u32);
|
||||
|
||||
TControl* getControl() const { return pControl_; }
|
||||
|
||||
private:
|
||||
TControl* pControl_;
|
||||
};
|
||||
|
||||
class TObject : public object::TObject_ID {
|
||||
public:
|
||||
TObject(const data::TParse_TBlock& block);
|
||||
TObject(void const* id, u32 id_size, TFunctionValue* value);
|
||||
|
||||
explicit TObject(const data::TParse_TBlock& block, TFunctionValue* value)
|
||||
: TObject_ID(block.get_ID(), block.get_IDSize()), pfv_(value) {
|
||||
ASSERT(pfv_ != NULL);
|
||||
}
|
||||
|
||||
virtual ~TObject() = 0;
|
||||
|
||||
virtual void prepare_data_(const data::TParse_TParagraph::TData& data, TControl* control) = 0;
|
||||
|
||||
void prepare(const data::TParse_TBlock& block, TControl* control);
|
||||
|
||||
TFunctionValue* const& referFunctionValue() { return pfv_; }
|
||||
|
||||
private:
|
||||
/* 0x0C */ JGadget::TLinkListNode mNode;
|
||||
/* 0x14 */ TFunctionValue* pfv_;
|
||||
};
|
||||
|
||||
class TFactory {
|
||||
public:
|
||||
/* 80284918 */ virtual ~TFactory();
|
||||
|
||||
/* 80284960 */ virtual TObject* create(JStudio::fvb::data::TParse_TBlock const&);
|
||||
/* 80284AA0 */ virtual void destroy(JStudio::fvb::TObject*);
|
||||
};
|
||||
|
||||
class TControl {
|
||||
public:
|
||||
/* 80284668 */ TControl();
|
||||
/* 80284698 */ virtual ~TControl();
|
||||
|
||||
/* 80284704 */ void appendObject(JStudio::fvb::TObject*);
|
||||
/* 80284750 */ void removeObject(JStudio::fvb::TObject*);
|
||||
/* 80284780 */ void destroyObject(JStudio::fvb::TObject*);
|
||||
/* 802847D0 */ void destroyObject_all();
|
||||
/* 80284834 */ TObject* getObject(void const*, u32);
|
||||
/* 802848D4 */ TObject* getObject_index(u32);
|
||||
|
||||
TFactory* getFactory() const { return pFactory; }
|
||||
|
||||
private:
|
||||
TFactory* pFactory;
|
||||
JGadget::TLinkList<TObject, 12> ocObject_;
|
||||
};
|
||||
|
||||
class TObject_composite : public TObject {
|
||||
public:
|
||||
/* 80284254 */ TObject_composite(JStudio::fvb::data::TParse_TBlock const&);
|
||||
/* 802842D4 */ virtual void prepare_data_(JStudio::fvb::data::TParse_TParagraph::TData const&,
|
||||
JStudio::fvb::TControl*);
|
||||
/* 80284F78 */ virtual ~TObject_composite() {}
|
||||
|
||||
private:
|
||||
TFunctionValue_composite fnValue;
|
||||
};
|
||||
|
||||
class TObject_constant : public TObject {
|
||||
public:
|
||||
/* 80284338 */ TObject_constant(data::TParse_TBlock const&);
|
||||
/* 80284EF4 */ virtual ~TObject_constant() {}
|
||||
|
||||
/* 802843B8 */ virtual void prepare_data_(data::TParse_TParagraph::TData const&, TControl*);
|
||||
|
||||
private:
|
||||
TFunctionValue_constant fnValue;
|
||||
};
|
||||
|
||||
class TObject_transition : public TObject {
|
||||
public:
|
||||
/* 802843C8 */ TObject_transition(data::TParse_TBlock const&);
|
||||
/* 80284E70 */ virtual ~TObject_transition() {}
|
||||
|
||||
/* 80284448 */ virtual void prepare_data_(data::TParse_TParagraph::TData const&, TControl*);
|
||||
|
||||
private:
|
||||
TFunctionValue_transition fnValue;
|
||||
};
|
||||
|
||||
class TObject_list : public TObject {
|
||||
public:
|
||||
struct ListData {
|
||||
/* 0x0 */ f32 _0;
|
||||
/* 0x4 */ u32 _4;
|
||||
/* 0x8 */ f32 _8[0];
|
||||
};
|
||||
/* 80284460 */ TObject_list(data::TParse_TBlock const&);
|
||||
/* 80284DEC */ virtual ~TObject_list() {}
|
||||
|
||||
/* 802844E0 */ virtual void prepare_data_(data::TParse_TParagraph::TData const&, TControl*);
|
||||
|
||||
private:
|
||||
TFunctionValue_list fnValue;
|
||||
};
|
||||
|
||||
class TObject_list_parameter : public TObject {
|
||||
public:
|
||||
struct ListData {
|
||||
u32 _0;
|
||||
f32 _4[0];
|
||||
};
|
||||
/* 80284500 */ TObject_list_parameter(data::TParse_TBlock const&);
|
||||
/* 80284D68 */ virtual ~TObject_list_parameter() {}
|
||||
|
||||
/* 80284580 */ virtual void prepare_data_(data::TParse_TParagraph::TData const&, TControl*);
|
||||
|
||||
private:
|
||||
TFunctionValue_list_parameter fnValue;
|
||||
};
|
||||
|
||||
struct TObject_hermite : public TObject {
|
||||
public:
|
||||
struct ListData {
|
||||
u32 _0; // u : 28, uSize : 4
|
||||
f32 _4[0];
|
||||
};
|
||||
/* 802845B0 */ TObject_hermite(data::TParse_TBlock const&);
|
||||
/* 80284CE4 */ virtual ~TObject_hermite() {}
|
||||
|
||||
/* 80284630 */ virtual void prepare_data_(data::TParse_TParagraph::TData const&, TControl*);
|
||||
|
||||
private:
|
||||
TFunctionValue_hermite fnValue;
|
||||
};
|
||||
|
||||
} // namespace fvb
|
||||
} // namespace JStudio
|
||||
|
||||
#endif /* FVB_H */
|
||||
|
||||
@@ -3,4 +3,27 @@
|
||||
|
||||
#include "dolphin/types.h"
|
||||
|
||||
namespace JStudio {
|
||||
namespace object {
|
||||
|
||||
struct TPRObject_ID_equal {};
|
||||
|
||||
struct TIDData {
|
||||
public:
|
||||
TIDData(const void* id, u32 id_size) : mID(id), mID_size(id_size) {}
|
||||
|
||||
/* 80288988 */ void isEqual(JStudio::object::TIDData const&, JStudio::object::TIDData const&);
|
||||
|
||||
private:
|
||||
const void* mID;
|
||||
u32 mID_size;
|
||||
};
|
||||
|
||||
struct TObject_ID : public TIDData {
|
||||
TObject_ID(const void* id, u32 id_size) : TIDData(id, id_size) {}
|
||||
};
|
||||
|
||||
} // namespace object
|
||||
} // namespace JStudio
|
||||
|
||||
#endif /* OBJECT_ID_H */
|
||||
|
||||
@@ -1,6 +1,110 @@
|
||||
#ifndef STB_DATA_PARSE_H
|
||||
#define STB_DATA_PARSE_H
|
||||
|
||||
#include "dolphin/types.h"
|
||||
#include "JSystem/JGadget/binary.h"
|
||||
#include "JSystem/JStudio/JStudio/stb-data.h"
|
||||
|
||||
using namespace JGadget::binary;
|
||||
|
||||
namespace JStudio {
|
||||
namespace stb {
|
||||
namespace data {
|
||||
|
||||
// Parses a THeader
|
||||
class TParse_THeader : public TParseData_aligned<4> {
|
||||
public:
|
||||
TParse_THeader(const void* p) : TParseData_aligned<4>(p) {}
|
||||
|
||||
const THeader* get() const { return (THeader*)getRaw(); }
|
||||
const void* getContent() const { return ((THeader*)getRaw())->content; }
|
||||
const char* get_signature() const { return get()->signature; }
|
||||
u16 get_byteOrder() const { return get()->byte_order; }
|
||||
u16 get_version() const { return get()->version; }
|
||||
u32 get_blockNumber() const { return get()->block_number; }
|
||||
};
|
||||
|
||||
class TParse_TBlock : public TParseData_aligned<4> {
|
||||
public:
|
||||
TParse_TBlock(const void* content) : TParseData_aligned<4>(content) {}
|
||||
|
||||
const TBlock* get() const { return (TBlock*)getRaw(); }
|
||||
const TBlock* getNext() const { return (TBlock*)((u8*)getRaw() + get_size()); }
|
||||
|
||||
u32 get_size() const { return get()->size; }
|
||||
u32 get_type() const { return get()->type; }
|
||||
};
|
||||
|
||||
class TParse_TSequence : public TParseData_aligned<4> {
|
||||
public:
|
||||
struct TData {
|
||||
/* 0x00 */ u8 type;
|
||||
/* 0x04 */ u32 param;
|
||||
/* 0x08 */ const void* content;
|
||||
/* 0x0C */ const void* next;
|
||||
};
|
||||
|
||||
TParse_TSequence(const void* content) : TParseData_aligned<4>(content) {}
|
||||
/* 802899BC */ void getData(TData*) const;
|
||||
|
||||
const void* get() const { return getRaw(); }
|
||||
u32 get_head() const { return *(u32*)get(); }
|
||||
};
|
||||
|
||||
class TParse_TParagraph : public TParseData_aligned<4> {
|
||||
public:
|
||||
struct TData {
|
||||
/* 0x00 */ u32 type;
|
||||
/* 0x04 */ u32 param;
|
||||
/* 0x08 */ const void* content;
|
||||
/* 0x0C */ const void* next;
|
||||
};
|
||||
|
||||
TParse_TParagraph(const void* content) : TParseData_aligned<4>(content) {}
|
||||
/* 80289A08 */ void getData(TData*) const;
|
||||
};
|
||||
|
||||
struct TParse_TParagraph_data : public TParseData_aligned<4> {
|
||||
struct TData {
|
||||
/* 0x00 */ u8 _0;
|
||||
/* 0x04 */ u32 _4;
|
||||
/* 0x08 */ u32 _8;
|
||||
/* 0x0C */ const void* _c;
|
||||
/* 0x10 */ const void* _10;
|
||||
};
|
||||
|
||||
TParse_TParagraph_data(const void* content) : TParseData_aligned<4>(content) {}
|
||||
/* 80289A80 */ void getData(TData*) const;
|
||||
};
|
||||
|
||||
// Parses a TObject ("demo object")
|
||||
class TParse_TBlock_object : public TParse_TBlock {
|
||||
public:
|
||||
TParse_TBlock_object(const void* content) : TParse_TBlock(content) {}
|
||||
|
||||
const TBlock_object* get() const { return (TBlock_object*)getRaw(); }
|
||||
const void* getContent() const {
|
||||
return ((TBlock_object*)getRaw())->id + align_roundUp(get_IDSize(), 4);
|
||||
}
|
||||
|
||||
u16 get_flag() const { return get()->flag; }
|
||||
u16 get_IDSize() const { return get()->id_size; }
|
||||
const void* get_ID() const { return get()->id; }
|
||||
};
|
||||
|
||||
class TParse_TParagraph_dataID : public TParseData_aligned<4> {
|
||||
public:
|
||||
TParse_TParagraph_dataID(const void* pContent) : TParseData_aligned<4>(pContent) {}
|
||||
|
||||
const TParagraph* get() const { return (TParagraph*)getRaw(); }
|
||||
u16 get_IDSize() const { return get()->id_size; }
|
||||
const void* get_ID() const { return get()->id; }
|
||||
const void* getContent() const {
|
||||
return ((TParagraph*)getRaw())->id + align_roundUp(get_IDSize(), 4);
|
||||
}
|
||||
};
|
||||
|
||||
} // namespace data
|
||||
} // namespace stb
|
||||
} // namespace JStudio
|
||||
|
||||
#endif /* STB_DATA_PARSE_H */
|
||||
|
||||
@@ -3,4 +3,67 @@
|
||||
|
||||
#include "dolphin/types.h"
|
||||
|
||||
namespace JStudio {
|
||||
namespace stb {
|
||||
namespace data {
|
||||
|
||||
const int guBit_TSequence_type = 24;
|
||||
|
||||
const int BLOCK_SOUND = 'JSND';
|
||||
const int BLOCK_ACTOR = 'JACT';
|
||||
const int BLOCK_AMBIENTLIGHT = 'JABL';
|
||||
const int BLOCK_CAMERA = 'JCMR';
|
||||
const int BLOCK_FOG = 'JFOG';
|
||||
const int BLOCK_LIGHT = 'JLIT';
|
||||
const int BLOCK_MESSAGE = 'JMSG';
|
||||
const int BLOCK_PARTICLE = 'JPTC';
|
||||
const int BLOCK_NONE = -1;
|
||||
|
||||
// Used to expand a signed 24 int to a signed 32 int
|
||||
const u32 gu32Mask_TSequence_value_signExpansion = 0xFF000000;
|
||||
extern const u32 ga4cSignature; // 'STB/0'
|
||||
extern const u8 gauDataSize_TEParagraph_data[32];
|
||||
|
||||
inline void toString_block(char* a5c, u32 arg1) {
|
||||
// from debug, todo
|
||||
}
|
||||
|
||||
struct THeader {
|
||||
struct Target {
|
||||
/* 0x00 */ char name[8]; // "jstudio"
|
||||
/* 0x08 */ u16 _8[3];
|
||||
/* 0x0E */ u16 target_version;
|
||||
};
|
||||
|
||||
/* 0x00 */ char signature[4];
|
||||
/* 0x04 */ u16 byte_order; // must be 0xFEFF
|
||||
/* 0x06 */ u16 version; // 0-1 = obselete, 2-7 = OK
|
||||
/* 0x08 */ u32 _8;
|
||||
/* 0x0C */ u32 block_number;
|
||||
/* 0x10 */ Target target;
|
||||
/* 0x20 */ u8 content[0];
|
||||
};
|
||||
|
||||
struct TBlock {
|
||||
/* 0x0 */ u32 size;
|
||||
/* 0x4 */ u32 type; // char[4] JMSG, JSND, JACT, ...
|
||||
};
|
||||
|
||||
struct TBlock_object : TBlock {
|
||||
/* 0x8 */ u16 flag;
|
||||
/* 0xA */ u16 id_size;
|
||||
/* 0xC */ u8 id[0]; // unique identifier
|
||||
///* ??? */ u8 content[0];
|
||||
};
|
||||
|
||||
struct TParagraph {
|
||||
/* 0x0 */ u16 _0;
|
||||
/* 0x2 */ u16 id_size;
|
||||
/* 0x4 */ u8 id[0]; // unique identifier
|
||||
};
|
||||
|
||||
} // namespace data
|
||||
} // namespace stb
|
||||
} // namespace JStudio
|
||||
|
||||
#endif /* STB_DATA_H */
|
||||
|
||||
@@ -1,6 +1,154 @@
|
||||
#ifndef STB_H
|
||||
#define STB_H
|
||||
|
||||
#include "dolphin/types.h"
|
||||
#include "JSystem/JGadget/linklist.h"
|
||||
#include "JSystem/JStudio/JStudio/object-id.h"
|
||||
#include "JSystem/JStudio/JStudio/stb-data-parse.h"
|
||||
#include "global.h"
|
||||
|
||||
namespace JStudio {
|
||||
namespace stb {
|
||||
|
||||
class TControl;
|
||||
|
||||
class TParse : public TParse_header_block {
|
||||
public:
|
||||
/* 80289640 */ TParse(TControl*);
|
||||
/* 80289660 */ virtual ~TParse();
|
||||
/* 802896C0 */ virtual bool parseHeader_next(void const**, u32*, u32);
|
||||
/* 8028978C */ virtual bool parseBlock_next(void const**, u32*, u32);
|
||||
/* 802897E0 */ virtual bool parseHeader(data::TParse_THeader const&, u32);
|
||||
/* 802897E8 */ virtual bool parseBlock_block(data::TParse_TBlock const&, u32);
|
||||
/* 80289820 */ virtual bool parseBlock_object(data::TParse_TBlock_object const&, u32);
|
||||
|
||||
TControl* getControl() const { return pControl; }
|
||||
|
||||
private:
|
||||
TControl* pControl;
|
||||
};
|
||||
|
||||
class TObject : public object::TObject_ID {
|
||||
public:
|
||||
enum TEStatus {
|
||||
/* 0x0 */ STATUS_STILL = 0,
|
||||
/* 0x1 */ STATUS_END = 1 << 0,
|
||||
/* 0x2 */ STATUS_WAIT = 1 << 1,
|
||||
/* 0x4 */ STATUS_SUSPEND = 1 << 2,
|
||||
/* 0x8 */ STATUS_INACTIVE = 1 << 3,
|
||||
};
|
||||
|
||||
/* 80288AC0 */ TObject(data::TParse_TBlock_object const&);
|
||||
/* 80288A78 */ explicit TObject(u32, void const*, u32);
|
||||
/* 80288B30 */ virtual ~TObject();
|
||||
|
||||
/* 80288B78 */ void setFlag_operation(u8, int);
|
||||
/* 80288BD0 */ void reset(void const*);
|
||||
/* 80288BE8 */ int forward(u32);
|
||||
/* 80288E18 */ virtual void do_begin();
|
||||
/* 80288E1C */ virtual void do_end();
|
||||
/* 80288E20 */ virtual void do_paragraph(u32, void const*, u32);
|
||||
/* 80288E24 */ virtual void do_wait(u32);
|
||||
/* 80288E28 */ virtual void do_data(void const*, u32, void const*, u32);
|
||||
/* 80288E2C */ void process_sequence_();
|
||||
/* 80288F80 */ void process_paragraph_reserved_(u32, void const*, u32);
|
||||
|
||||
const char* toString_status(int status);
|
||||
|
||||
void on_begin() { do_begin(); }
|
||||
void on_end() { do_end(); }
|
||||
void on_paragraph(u32 arg1, const void* arg2, u32 arg3) { do_paragraph(arg1, arg2, arg3); }
|
||||
void on_wait(u32 arg1) { do_wait(arg1); }
|
||||
void on_data(const void* arg1, u32 arg2, const void* arg3, u32 arg4) {
|
||||
do_data(arg1, arg2, arg3, arg4);
|
||||
}
|
||||
|
||||
TControl* getControl() const { return pControl; }
|
||||
void setControl_(TControl* control) { pControl = control; }
|
||||
int getSuspend() const { return _20; }
|
||||
void setSuspend(s32 val) { _20 = val; }
|
||||
bool isSuspended() const { return getSuspend() > 0; }
|
||||
void suspend(s32 val) { _20 += val; }
|
||||
const void* getSequence() const { return pSequence; }
|
||||
void setSequence_(const void* arg1) { pSequence = arg1; }
|
||||
const void* getSequence_offset(s32 i_no) const {
|
||||
int s32Val = (s32)getSequence();
|
||||
return (const void*)(s32Val + i_no);
|
||||
}
|
||||
const void* getSequence_next() const { return pSequence_next; }
|
||||
void setSequence_next(const void* seq) { pSequence_next = seq; }
|
||||
u32 getWait() const { return u32Wait_; }
|
||||
void setWait(u32 wait) { u32Wait_ = wait; }
|
||||
TEStatus getStatus() const { return mStatus; }
|
||||
void setStatus_(TEStatus status) { mStatus = status; }
|
||||
u32 toInt32FromUInt24_(u32 val) {
|
||||
if (val & 0x800000) {
|
||||
val |= data::gu32Mask_TSequence_value_signExpansion;
|
||||
}
|
||||
return val;
|
||||
}
|
||||
void setFlag_operation_(u32 u32Data) {
|
||||
ASSERT((u32Data >> data::guBit_TSequence_type) == 0);
|
||||
setFlag_operation(u32Data >> 16, u32Data & 0xFFFF);
|
||||
}
|
||||
|
||||
/* 0x10 */ JGadget::TLinkListNode ocObject_;
|
||||
|
||||
private:
|
||||
/* 0x14 */ TControl* pControl;
|
||||
/* 0x18 */ u32 signature;
|
||||
/* 0x1C */ u16 mFlag;
|
||||
/* 0x1E */ u8 bSequence_;
|
||||
/* 0x20 */ u32 _20; // "second per frame"?
|
||||
/* 0x24 */ const void* pSequence;
|
||||
/* 0x28 */ const void* pSequence_next;
|
||||
/* 0x2C */ u32 u32Wait_;
|
||||
/* 0x30 */ TEStatus mStatus;
|
||||
};
|
||||
|
||||
class TFactory {
|
||||
public:
|
||||
/* 802895B4 */ virtual ~TFactory();
|
||||
/* 802895FC */ virtual TObject* create(data::TParse_TBlock_object const&);
|
||||
/* 80289604 */ virtual void destroy(TObject*);
|
||||
};
|
||||
|
||||
class TObject_control : public TObject {
|
||||
public:
|
||||
/* 80289068 */ TObject_control(void const*, u32);
|
||||
/* 80289134 */ ~TObject_control() {}
|
||||
};
|
||||
|
||||
// Manages TObjects
|
||||
class TControl {
|
||||
public:
|
||||
/* 802890B4 */ TControl();
|
||||
/* 80289194 */ virtual ~TControl();
|
||||
|
||||
/* 80289228 */ void appendObject(TObject*);
|
||||
/* 80289278 */ void removeObject(TObject*);
|
||||
/* 802892B0 */ void destroyObject(TObject*);
|
||||
/* 80289300 */ void destroyObject_all();
|
||||
/* 80289364 */ TObject* getObject(void const*, u32);
|
||||
/* 80289404 */ void reset();
|
||||
/* 802894B4 */ void forward(u32);
|
||||
|
||||
void setStatus_(u32 status) { mStatus = status; }
|
||||
void resetStatus_() { setStatus_(0); }
|
||||
bool isSuspended() const { return _54 > 0; }
|
||||
TFactory* getFactory() const { return pFactory; }
|
||||
TObject_control& referObject_control() { return mObject_control; }
|
||||
|
||||
private:
|
||||
/* 0x04 */ u32 _4;
|
||||
/* 0x08 */ u32 _8;
|
||||
/* 0x0C */ TFactory* pFactory;
|
||||
/* 0x10 */ JGadget::TLinkList<TObject, 12> mObjectContainer;
|
||||
/* 0x1C */ u32 mStatus;
|
||||
/* 0x20 */ TObject_control mObject_control;
|
||||
/* 0x54 */ s32 _54; // "second per frame"?
|
||||
};
|
||||
|
||||
} // namespace stb
|
||||
} // namespace JStudio
|
||||
|
||||
#endif /* STB_H */
|
||||
|
||||
@@ -4,6 +4,11 @@
|
||||
#include "SSystem/SComponent/c_xyz.h"
|
||||
#include "dolphin/mtx/mtx.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "msl_c/math.h"
|
||||
|
||||
inline bool cLib_IsZero(f32 f) {
|
||||
return fabsf(f) < 8e-11f;
|
||||
}
|
||||
|
||||
void cLib_memCpy(void* dst, const void* src, unsigned long size);
|
||||
void cLib_memSet(void* ptr, int value, unsigned long size);
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
#include "dolphin/mtx/vec.h"
|
||||
#include "msl_c/math.h"
|
||||
#include "global.h"
|
||||
#include "msl_c/math.h"
|
||||
|
||||
struct cXyz : Vec {
|
||||
static const cXyz Zero;
|
||||
@@ -51,11 +52,13 @@ struct cXyz : Vec {
|
||||
y -= f;
|
||||
z -= f;
|
||||
}
|
||||
void operator-=(const Vec& other) { PSVECSubtract(this, &other, this); }
|
||||
void operator+=(const Vec& vec) {
|
||||
x += vec.x;
|
||||
y += vec.y;
|
||||
z += vec.z;
|
||||
}
|
||||
void operator*=(f32 scale) { PSVECScale(this, this, scale); }
|
||||
/* 80266C6C */ cXyz getCrossProduct(Vec const&) const;
|
||||
/* 80266CBC */ cXyz outprod(Vec const&) const;
|
||||
/* 80266CE4 */ cXyz norm() const;
|
||||
@@ -117,10 +120,10 @@ struct cXyz : Vec {
|
||||
cXyz tmp2(other.x, 0, other.z);
|
||||
return tmp.abs2(tmp2);
|
||||
}
|
||||
f32 absXZ(const Vec& other) const {
|
||||
f32 abs = abs2XZ(other);
|
||||
return sqrtf(abs);
|
||||
}
|
||||
f32 abs() const { return sqrtf(this->abs2()); }
|
||||
f32 abs(const Vec& other) const { return sqrtf(this->abs2(other)); }
|
||||
f32 absXZ() const { return sqrtf(this->abs2XZ()); }
|
||||
f32 absXZ(const Vec& other) const { return sqrtf(this->abs2XZ(other)); }
|
||||
f32 getMagXZ() const { return cXyz(this->x, 0, this->z).getSquareMag(); }
|
||||
};
|
||||
|
||||
|
||||
@@ -165,7 +165,7 @@ public:
|
||||
void setMaxOxygen(int max) { mMaxOxygen = max; }
|
||||
u8 getDoStatus() { return mDoStatus; }
|
||||
u8 getRStatus() { return mRStatus; }
|
||||
char* getStartStageName() { return mStartStage.getName(); }
|
||||
const char* getStartStageName() { return mStartStage.getName(); }
|
||||
s8 getStartStageRoomNo() { return mStartStage.getRoomNo(); }
|
||||
s8 getStartStageLayer() { return mStartStage.getLayer(); }
|
||||
u8 isHeapLockFlag() { return mHeapLockFlag; }
|
||||
@@ -181,6 +181,8 @@ public:
|
||||
dAttention_c& getAttention() { return mAttention; }
|
||||
JKRArchive* getMsgDtArchive(int idx) { return mMsgDtArchive[idx]; }
|
||||
s16 getStartStagePoint() { return mStartStage.getPoint(); }
|
||||
s8 getStartStageDarkArea() { return mStartStage.getDarkArea(); }
|
||||
void setStartStageDarkArea(s8 darkArea) { mStartStage.setDarkArea(darkArea); }
|
||||
void* getPlayerPtr(int ptrIdx) { return mPlayerPtr[ptrIdx]; }
|
||||
JKRArchive* getMain2DArchive() { return mMain2DArchive; }
|
||||
J2DGrafContext* getCurrentGrafPort() { return mCurrentGrafPort; }
|
||||
@@ -773,7 +775,7 @@ inline u32 dComIfGp_getNowVibration() {
|
||||
return g_dComIfG_gameInfo.play.getNowVibration();
|
||||
}
|
||||
|
||||
inline char* dComIfGp_getStartStageName() {
|
||||
inline const char* dComIfGp_getStartStageName() {
|
||||
return g_dComIfG_gameInfo.play.getStartStageName();
|
||||
}
|
||||
|
||||
@@ -789,6 +791,10 @@ inline s8 dComIfGp_roomControl_getStayNo() {
|
||||
return dStage_roomControl_c::getStayNo();
|
||||
}
|
||||
|
||||
inline void dComIfGp_setStartStage(dStage_startStage_c* pStartStage) {
|
||||
g_dComIfG_gameInfo.play.setStartStage(pStartStage);
|
||||
}
|
||||
|
||||
inline s8 dComIfGp_getStartStageRoomNo() {
|
||||
return g_dComIfG_gameInfo.play.getStartStageRoomNo();
|
||||
}
|
||||
@@ -797,9 +803,13 @@ inline s8 dComIfGp_getStartStageLayer() {
|
||||
return g_dComIfG_gameInfo.play.getStartStageLayer();
|
||||
}
|
||||
|
||||
/* inline dStage_stageDt_c& dComIfGp_getStage() {
|
||||
return g_dComIfG_gameInfo.play.getStage();
|
||||
} */
|
||||
inline s8 dComIfGp_getStartStageDarkArea() {
|
||||
return g_dComIfG_gameInfo.play.getStartStageDarkArea();
|
||||
}
|
||||
|
||||
inline void dComIfGp_setStartStageDarkArea(s8 darkArea) {
|
||||
g_dComIfG_gameInfo.play.setStartStageDarkArea(darkArea);
|
||||
}
|
||||
|
||||
inline roomRead_class* dComIfGp_getStageRoom() {
|
||||
return g_dComIfG_gameInfo.play.getStage().getRoom();
|
||||
|
||||
+7
-4
@@ -560,13 +560,16 @@ private:
|
||||
class dStage_startStage_c {
|
||||
public:
|
||||
void set(const char*, s8, s16, s8);
|
||||
inline char* getName() { return mStage; }
|
||||
s8 getLayer() { return mLayer; }
|
||||
const char* getName() const { return mName; }
|
||||
s16 getPoint() const { return mPoint; }
|
||||
s8 getRoomNo() const { return mRoomNo; }
|
||||
s16 getPoint() { return mPoint; }
|
||||
s8 getLayer() const { return mLayer; }
|
||||
void setLayer(s8 layer) { mLayer = layer; }
|
||||
s8 getDarkArea() const { return mDarkArea; }
|
||||
void setDarkArea(s8 darkArea) { mDarkArea = darkArea; }
|
||||
|
||||
private:
|
||||
/* 0x0 */ char mStage[8];
|
||||
/* 0x0 */ char mName[8];
|
||||
/* 0x8 */ s16 mPoint;
|
||||
/* 0xA */ s8 mRoomNo;
|
||||
/* 0xB */ s8 mLayer;
|
||||
|
||||
@@ -663,7 +663,7 @@ public:
|
||||
|
||||
STATIC_ASSERT(sizeof(dScnKy_env_light_c) == 4880);
|
||||
|
||||
bool dKy_darkworld_stage_check(char const*, int);
|
||||
BOOL dKy_darkworld_stage_check(char const*, int);
|
||||
BOOL dKy_withwarp_capture_check();
|
||||
|
||||
#endif /* D_KANKYO_D_KANKYO_H */
|
||||
|
||||
@@ -3,4 +3,49 @@
|
||||
|
||||
#include "dolphin/types.h"
|
||||
|
||||
// Invented name; Used as u8 `darkLv` in dKyd_darkworldTblEntry.
|
||||
enum dKyd_DARKLV {
|
||||
FARON = 0,
|
||||
ELDIN = 1,
|
||||
LANAYRU = 2,
|
||||
TEST = 5, // Only used with nonexistent test stages
|
||||
UNCLEARABLE = 6, // Default. Palace of Twilight stages use this
|
||||
ALWAYS_DARK = 8, // Unused. Forces Twilight
|
||||
};
|
||||
|
||||
// Invented name
|
||||
struct dKyd_darkworldTblEntry {
|
||||
char* stageName;
|
||||
u8 darkLv;
|
||||
}; // Size: 0x8
|
||||
|
||||
// Invented name; adjust as needed in the future.
|
||||
// Notes (needs more investigation):
|
||||
// startTime and endTime are in the range 0 to 360, which is the same as the current time of day.
|
||||
// l_time_attribute and l_time_attribute_boss are arrays of `dKyd_lightSchedjule` with their times
|
||||
// set up such that the current time of day will fall in the range of one dKyd_lightSchedjule. For
|
||||
// example, if the current time is 110.0f (7:20 AM), then the dKyd_lightSchedjule {105.0f, 135.0f,
|
||||
// 1, 2} would be selected. If the time was 105.0f, we would use light 1. If the time was 135.0f, we
|
||||
// would use light 2. Since 110.0f is closer to 105.0f than 135.0f, we get a blend of lights 1 and 2
|
||||
// which is mostly 1. Blending the lights over time is how we get a smooth day-night transition.
|
||||
struct dKyd_lightSchejule {
|
||||
float startTime;
|
||||
float endTime;
|
||||
u8 startTimeLight;
|
||||
u8 endTimeLight;
|
||||
}; // Size: 0xC
|
||||
|
||||
void* dKyd_dmpalet_getp();
|
||||
void* dKyd_dmpselect_getp();
|
||||
void* dKyd_dmenvr_getp();
|
||||
void* dKyd_dmvrbox_getp();
|
||||
dKyd_lightSchejule* dKyd_schejule_getp();
|
||||
dKyd_lightSchejule* dKyd_schejule_boss_getp();
|
||||
void dKyd_xfog_table_set(u8);
|
||||
void* dKyd_maple_col_getp();
|
||||
dKyd_darkworldTblEntry* dKyd_darkworld_tbl_getp();
|
||||
void* dKyd_light_size_tbl_getp();
|
||||
void* dKyd_light_tw_size_tbl_getp();
|
||||
void* dKyd_BloomInf_tbl_getp(int);
|
||||
|
||||
#endif /* D_KANKYO_D_KANKYO_DATA_H */
|
||||
|
||||
@@ -46,6 +46,7 @@ f32 tanf(f32);
|
||||
|
||||
extern f32 __float_nan[4];
|
||||
extern f32 __float_epsilon[4];
|
||||
extern f32 __float_max[4];
|
||||
|
||||
inline f64 sqrt_step(f64 tmpd, f32 mag) {
|
||||
return tmpd * 0.5 * (3.0 - mag * (tmpd * tmpd));
|
||||
@@ -68,4 +69,4 @@ inline f32 sqrtf(f32 mag) {
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@@ -58,6 +58,6 @@ $(BUILD_DIR)/libJ2DGraph.a: $(LIBJ2DGRAPH_A_O_FILES)
|
||||
$(BUILD_DIR)/libs/JSystem/J2DGraph/%.o: libs/JSystem/J2DGraph/%.cpp
|
||||
@mkdir -p $(@D)
|
||||
@echo building... $<
|
||||
@iconv -f UTF-8 -t CP932 < $< > $@.iconv.cpp
|
||||
@$(CC) $(CFLAGS) $(LIBJ2DGRAPH_A_CFLAGS) -c -o $@ $@.iconv.cpp
|
||||
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp
|
||||
@$(CC) $(CFLAGS) $(LIBJ2DGRAPH_A_CFLAGS) -c -o $@ $(basename $@).cpp
|
||||
|
||||
|
||||
@@ -44,6 +44,6 @@ $(BUILD_DIR)/libJ3DGraphAnimator.a: $(LIBJ3DGRAPHANIMATOR_A_O_FILES)
|
||||
$(BUILD_DIR)/libs/JSystem/J3DGraphAnimator/%.o: libs/JSystem/J3DGraphAnimator/%.cpp
|
||||
@mkdir -p $(@D)
|
||||
@echo building... $<
|
||||
@iconv -f UTF-8 -t CP932 < $< > $@.iconv.cpp
|
||||
@$(CC) $(CFLAGS) $(LIBJ3DGRAPHANIMATOR_A_CFLAGS) -c -o $@ $@.iconv.cpp
|
||||
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp
|
||||
@$(CC) $(CFLAGS) $(LIBJ3DGRAPHANIMATOR_A_CFLAGS) -c -o $@ $(basename $@).cpp
|
||||
|
||||
|
||||
@@ -50,6 +50,6 @@ $(BUILD_DIR)/libJ3DGraphBase.a: $(LIBJ3DGRAPHBASE_A_O_FILES)
|
||||
$(BUILD_DIR)/libs/JSystem/J3DGraphBase/%.o: libs/JSystem/J3DGraphBase/%.cpp
|
||||
@mkdir -p $(@D)
|
||||
@echo building... $<
|
||||
@iconv -f UTF-8 -t CP932 < $< > $@.iconv.cpp
|
||||
@$(CC) $(CFLAGS) $(LIBJ3DGRAPHBASE_A_CFLAGS) -c -o $@ $@.iconv.cpp
|
||||
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp
|
||||
@$(CC) $(CFLAGS) $(LIBJ3DGRAPHBASE_A_CFLAGS) -c -o $@ $(basename $@).cpp
|
||||
|
||||
|
||||
@@ -38,6 +38,6 @@ $(BUILD_DIR)/libJ3DGraphLoader.a: $(LIBJ3DGRAPHLOADER_A_O_FILES)
|
||||
$(BUILD_DIR)/libs/JSystem/J3DGraphLoader/%.o: libs/JSystem/J3DGraphLoader/%.cpp
|
||||
@mkdir -p $(@D)
|
||||
@echo building... $<
|
||||
@iconv -f UTF-8 -t CP932 < $< > $@.iconv.cpp
|
||||
@$(CC) $(CFLAGS) $(LIBJ3DGRAPHLOADER_A_CFLAGS) -c -o $@ $@.iconv.cpp
|
||||
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp
|
||||
@$(CC) $(CFLAGS) $(LIBJ3DGRAPHLOADER_A_CFLAGS) -c -o $@ $(basename $@).cpp
|
||||
|
||||
|
||||
@@ -26,6 +26,6 @@ $(BUILD_DIR)/libJ3DU.a: $(LIBJ3DU_A_O_FILES)
|
||||
$(BUILD_DIR)/libs/JSystem/J3DU/%.o: libs/JSystem/J3DU/%.cpp
|
||||
@mkdir -p $(@D)
|
||||
@echo building... $<
|
||||
@iconv -f UTF-8 -t CP932 < $< > $@.iconv.cpp
|
||||
@$(CC) $(CFLAGS) $(LIBJ3DU_A_CFLAGS) -c -o $@ $@.iconv.cpp
|
||||
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp
|
||||
@$(CC) $(CFLAGS) $(LIBJ3DU_A_CFLAGS) -c -o $@ $(basename $@).cpp
|
||||
|
||||
|
||||
@@ -158,6 +158,6 @@ $(BUILD_DIR)/libJAudio2.a: $(LIBJAUDIO2_A_O_FILES)
|
||||
$(BUILD_DIR)/libs/JSystem/JAudio2/%.o: libs/JSystem/JAudio2/%.cpp
|
||||
@mkdir -p $(@D)
|
||||
@echo building... $<
|
||||
@iconv -f UTF-8 -t CP932 < $< > $@.iconv.cpp
|
||||
@$(CC) $(CFLAGS) $(LIBJAUDIO2_A_CFLAGS) -c -o $@ $@.iconv.cpp
|
||||
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp
|
||||
@$(CC) $(CFLAGS) $(LIBJAUDIO2_A_CFLAGS) -c -o $@ $(basename $@).cpp
|
||||
|
||||
|
||||
@@ -26,6 +26,6 @@ $(BUILD_DIR)/libJFramework.a: $(LIBJFRAMEWORK_A_O_FILES)
|
||||
$(BUILD_DIR)/libs/JSystem/JFramework/%.o: libs/JSystem/JFramework/%.cpp
|
||||
@mkdir -p $(@D)
|
||||
@echo building... $<
|
||||
@iconv -f UTF-8 -t CP932 < $< > $@.iconv.cpp
|
||||
@$(CC) $(CFLAGS) $(LIBJFRAMEWORK_A_CFLAGS) -c -o $@ $@.iconv.cpp
|
||||
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp
|
||||
@$(CC) $(CFLAGS) $(LIBJFRAMEWORK_A_CFLAGS) -c -o $@ $(basename $@).cpp
|
||||
|
||||
|
||||
@@ -28,6 +28,6 @@ $(BUILD_DIR)/libJGadget.a: $(LIBJGADGET_A_O_FILES)
|
||||
$(BUILD_DIR)/libs/JSystem/JGadget/%.o: libs/JSystem/JGadget/%.cpp
|
||||
@mkdir -p $(@D)
|
||||
@echo building... $<
|
||||
@iconv -f UTF-8 -t CP932 < $< > $@.iconv.cpp
|
||||
@$(CC) $(CFLAGS) $(LIBJGADGET_A_CFLAGS) -c -o $@ $@.iconv.cpp
|
||||
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp
|
||||
@$(CC) $(CFLAGS) $(LIBJGADGET_A_CFLAGS) -c -o $@ $(basename $@).cpp
|
||||
|
||||
|
||||
@@ -7,25 +7,6 @@
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
namespace JGadget {
|
||||
struct binary {
|
||||
struct TEBit {};
|
||||
|
||||
struct TParse_header_block {
|
||||
/* 802DC8C8 */ ~TParse_header_block();
|
||||
/* 802DC910 */ void parse_next(void const**, u32);
|
||||
};
|
||||
|
||||
/* 802DC864 */ void parseVariableUInt_16_32_following(void const*, u32*, u32*,
|
||||
JGadget::binary::TEBit*);
|
||||
};
|
||||
|
||||
}; // namespace JGadget
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
@@ -53,9 +34,9 @@ extern "C" extern void* __vt__Q37JGadget6binary19TParse_header_block[5];
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JGadget::binary::parseVariableUInt_16_32_following(void const* param_0, u32* param_1,
|
||||
u32* param_2,
|
||||
JGadget::binary::TEBit* param_3) {
|
||||
asm const void*
|
||||
JGadget::binary::parseVariableUInt_16_32_following(void const* param_0, u32* param_1, u32* param_2,
|
||||
JGadget::binary::TEBit* param_3) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JGadget/binary/parseVariableUInt_16_32_following__Q27JGadget6binaryFPCvPUlPUlPQ37JGadget6binary5TEBit.s"
|
||||
}
|
||||
@@ -77,7 +58,7 @@ asm JGadget::binary::TParse_header_block::~TParse_header_block() {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JGadget::binary::TParse_header_block::parse_next(void const** param_0, u32 param_1) {
|
||||
asm bool JGadget::binary::TParse_header_block::parse_next(void const** param_0, u32 param_1) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JGadget/binary/parse_next__Q37JGadget6binary19TParse_header_blockFPPCvUl.s"
|
||||
}
|
||||
|
||||
@@ -104,7 +104,8 @@ asm void JGadget::TNodeLinkList::Insert(JGadget::TNodeLinkList::iterator param_0
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JGadget::TNodeLinkList::Erase(JGadget::TLinkListNode* param_0) {
|
||||
asm JGadget::TNodeLinkList::iterator
|
||||
JGadget::TNodeLinkList::Erase(JGadget::TLinkListNode* param_0) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JGadget/linklist/Erase__Q27JGadget13TNodeLinkListFPQ27JGadget13TLinkListNode.s"
|
||||
}
|
||||
|
||||
@@ -72,6 +72,6 @@ $(BUILD_DIR)/libJKernel.a: $(LIBJKERNEL_A_O_FILES)
|
||||
$(BUILD_DIR)/libs/JSystem/JKernel/%.o: libs/JSystem/JKernel/%.cpp
|
||||
@mkdir -p $(@D)
|
||||
@echo building... $<
|
||||
@iconv -f UTF-8 -t CP932 < $< > $@.iconv.cpp
|
||||
@$(CC) $(CFLAGS) $(LIBJKERNEL_A_CFLAGS) -c -o $@ $@.iconv.cpp
|
||||
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp
|
||||
@$(CC) $(CFLAGS) $(LIBJKERNEL_A_CFLAGS) -c -o $@ $(basename $@).cpp
|
||||
|
||||
|
||||
@@ -28,6 +28,6 @@ $(BUILD_DIR)/libJMath.a: $(LIBJMATH_A_O_FILES)
|
||||
$(BUILD_DIR)/libs/JSystem/JMath/%.o: libs/JSystem/JMath/%.cpp
|
||||
@mkdir -p $(@D)
|
||||
@echo building... $<
|
||||
@iconv -f UTF-8 -t CP932 < $< > $@.iconv.cpp
|
||||
@$(CC) $(CFLAGS) $(LIBJMATH_A_CFLAGS) -c -o $@ $@.iconv.cpp
|
||||
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp
|
||||
@$(CC) $(CFLAGS) $(LIBJMATH_A_CFLAGS) -c -o $@ $(basename $@).cpp
|
||||
|
||||
|
||||
@@ -32,6 +32,6 @@ $(BUILD_DIR)/libJMessage.a: $(LIBJMESSAGE_A_O_FILES)
|
||||
$(BUILD_DIR)/libs/JSystem/JMessage/%.o: libs/JSystem/JMessage/%.cpp
|
||||
@mkdir -p $(@D)
|
||||
@echo building... $<
|
||||
@iconv -f UTF-8 -t CP932 < $< > $@.iconv.cpp
|
||||
@$(CC) $(CFLAGS) $(LIBJMESSAGE_A_CFLAGS) -c -o $@ $@.iconv.cpp
|
||||
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp
|
||||
@$(CC) $(CFLAGS) $(LIBJMESSAGE_A_CFLAGS) -c -o $@ $(basename $@).cpp
|
||||
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
//
|
||||
|
||||
#include "JSystem/JMessage/resource.h"
|
||||
#include "JSystem/JGadget/binary.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
@@ -58,25 +59,6 @@ struct JMessage {
|
||||
};
|
||||
};
|
||||
|
||||
namespace JGadget {
|
||||
struct binary {
|
||||
struct TParse_header_block {
|
||||
/* 802DC8C8 */ ~TParse_header_block();
|
||||
};
|
||||
};
|
||||
|
||||
struct TLinkListNode {};
|
||||
|
||||
struct TNodeLinkList {
|
||||
struct iterator {};
|
||||
|
||||
/* 802DCA1C */ ~TNodeLinkList();
|
||||
/* 802DCBA8 */ void Insert(JGadget::TNodeLinkList::iterator, JGadget::TLinkListNode*);
|
||||
/* 802DCBD4 */ void Erase(JGadget::TLinkListNode*);
|
||||
};
|
||||
|
||||
}; // namespace JGadget
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
@@ -52,6 +52,6 @@ $(BUILD_DIR)/libJParticle.a: $(LIBJPARTICLE_A_O_FILES)
|
||||
$(BUILD_DIR)/libs/JSystem/JParticle/%.o: libs/JSystem/JParticle/%.cpp
|
||||
@mkdir -p $(@D)
|
||||
@echo building... $<
|
||||
@iconv -f UTF-8 -t CP932 < $< > $@.iconv.cpp
|
||||
@$(CC) $(CFLAGS) $(LIBJPARTICLE_A_CFLAGS) -c -o $@ $@.iconv.cpp
|
||||
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp
|
||||
@$(CC) $(CFLAGS) $(LIBJPARTICLE_A_CFLAGS) -c -o $@ $(basename $@).cpp
|
||||
|
||||
|
||||
@@ -36,6 +36,6 @@ $(BUILD_DIR)/libJStage.a: $(LIBJSTAGE_A_O_FILES)
|
||||
$(BUILD_DIR)/libs/JSystem/JStage/%.o: libs/JSystem/JStage/%.cpp
|
||||
@mkdir -p $(@D)
|
||||
@echo building... $<
|
||||
@iconv -f UTF-8 -t CP932 < $< > $@.iconv.cpp
|
||||
@$(CC) $(CFLAGS) $(LIBJSTAGE_A_CFLAGS) -c -o $@ $@.iconv.cpp
|
||||
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp
|
||||
@$(CC) $(CFLAGS) $(LIBJSTAGE_A_CFLAGS) -c -o $@ $(basename $@).cpp
|
||||
|
||||
|
||||
@@ -6,7 +6,9 @@ LIBJSTUDIO_A_CPP_FILES := \
|
||||
libs/JSystem/JStudio/JStudio/ctb.cpp \
|
||||
libs/JSystem/JStudio/JStudio/ctb-data.cpp \
|
||||
libs/JSystem/JStudio/JStudio/functionvalue.cpp \
|
||||
libs/JSystem/JStudio/JStudio/functionvalue-inline.cpp \
|
||||
libs/JSystem/JStudio/JStudio/fvb.cpp \
|
||||
libs/JSystem/JStudio/JStudio/fvb-inline.cpp \
|
||||
libs/JSystem/JStudio/JStudio/fvb-data.cpp \
|
||||
libs/JSystem/JStudio/JStudio/fvb-data-parse.cpp \
|
||||
libs/JSystem/JStudio/JStudio/jstudio-control.cpp \
|
||||
@@ -22,7 +24,9 @@ LIBJSTUDIO_A_O_FILES := \
|
||||
$(BUILD_DIR)/libs/JSystem/JStudio/JStudio/ctb.o \
|
||||
$(BUILD_DIR)/libs/JSystem/JStudio/JStudio/ctb-data.o \
|
||||
$(BUILD_DIR)/libs/JSystem/JStudio/JStudio/functionvalue.o \
|
||||
$(BUILD_DIR)/libs/JSystem/JStudio/JStudio/functionvalue-inline.o \
|
||||
$(BUILD_DIR)/libs/JSystem/JStudio/JStudio/fvb.o \
|
||||
$(BUILD_DIR)/libs/JSystem/JStudio/JStudio/fvb-inline.o \
|
||||
$(BUILD_DIR)/libs/JSystem/JStudio/JStudio/fvb-data.o \
|
||||
$(BUILD_DIR)/libs/JSystem/JStudio/JStudio/fvb-data-parse.o \
|
||||
$(BUILD_DIR)/libs/JSystem/JStudio/JStudio/jstudio-control.o \
|
||||
@@ -50,6 +54,6 @@ $(BUILD_DIR)/libJStudio.a: $(LIBJSTUDIO_A_O_FILES)
|
||||
$(BUILD_DIR)/libs/JSystem/JStudio/JStudio/%.o: libs/JSystem/JStudio/JStudio/%.cpp
|
||||
@mkdir -p $(@D)
|
||||
@echo building... $<
|
||||
@iconv -f UTF-8 -t CP932 < $< > $@.iconv.cpp
|
||||
@$(CC) $(CFLAGS) $(LIBJSTUDIO_A_CFLAGS) -c -o $@ $@.iconv.cpp
|
||||
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp
|
||||
@$(CC) $(CFLAGS) $(LIBJSTUDIO_A_CFLAGS) -c -o $@ $(basename $@).cpp
|
||||
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
//
|
||||
|
||||
#include "JSystem/JStudio/JStudio/ctb.h"
|
||||
#include "JSystem/JGadget/binary.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
@@ -55,14 +56,13 @@ struct TParse {
|
||||
|
||||
}; // namespace ctb
|
||||
|
||||
struct object {
|
||||
struct TPRObject_ID_equal {};
|
||||
namespace object {
|
||||
struct TPRObject_ID_equal {};
|
||||
|
||||
struct TIDData {
|
||||
/* 80288988 */ void isEqual(JStudio::object::TIDData const&,
|
||||
JStudio::object::TIDData const&);
|
||||
};
|
||||
struct TIDData {
|
||||
/* 80288988 */ void isEqual(JStudio::object::TIDData const&, JStudio::object::TIDData const&);
|
||||
};
|
||||
}; // namespace object
|
||||
|
||||
}; // namespace JStudio
|
||||
|
||||
@@ -73,23 +73,6 @@ struct TLinkList {};
|
||||
struct TLinkList__template0 {
|
||||
struct iterator {};
|
||||
};
|
||||
|
||||
struct binary {
|
||||
struct TParse_header_block {
|
||||
/* 802DC8C8 */ ~TParse_header_block();
|
||||
};
|
||||
};
|
||||
|
||||
struct TLinkListNode {};
|
||||
|
||||
struct TNodeLinkList {
|
||||
struct iterator {};
|
||||
|
||||
/* 802DCA1C */ ~TNodeLinkList();
|
||||
/* 802DCBA8 */ void Insert(JGadget::TNodeLinkList::iterator, JGadget::TLinkListNode*);
|
||||
/* 802DCBD4 */ void Erase(JGadget::TLinkListNode*);
|
||||
};
|
||||
|
||||
}; // namespace JGadget
|
||||
|
||||
namespace std {
|
||||
|
||||
@@ -0,0 +1,44 @@
|
||||
#include "JSystem/JStudio/JStudio/functionvalue.h"
|
||||
#include "global.h"
|
||||
|
||||
namespace std {
|
||||
template <typename A1>
|
||||
struct less {};
|
||||
/* less<f64> */
|
||||
struct less__template0 {};
|
||||
|
||||
template <typename A1, typename B1, typename C1>
|
||||
void upper_bound(/* ... */);
|
||||
}; // namespace std
|
||||
|
||||
/* 80283E24-80283EB8 27E764 0094+00 1/1 0/0 0/0 .text
|
||||
* upper_bound<Q37JStudio29TFunctionValue_list_parameter15TIterator_data_,d,Q23std7less<d>>__3stdFQ37JStudio29TFunctionValue_list_parameter15TIterator_data_Q37JStudio29TFunctionValue_list_parameter15TIterator_data_RCdQ23std7less<d>
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
#pragma force_active on
|
||||
extern "C" inline asm void
|
||||
func_80283E24(void* _this, JStudio::TFunctionValue_list_parameter::TIterator_data_ param_0,
|
||||
JStudio::TFunctionValue_list_parameter::TIterator_data_ param_1, f64 const& param_2,
|
||||
std::less<f64> param_3) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JStudio/JStudio/functionvalue/func_80283E24.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80283EB8-80283F80 27E7F8 00C8+00 1/1 0/0 0/0 .text
|
||||
* upper_bound<Q37JStudio22TFunctionValue_hermite15TIterator_data_,d,Q23std7less<d>>__3stdFQ37JStudio22TFunctionValue_hermite15TIterator_data_Q37JStudio22TFunctionValue_hermite15TIterator_data_RCdQ23std7less<d>
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
#pragma force_active on
|
||||
extern "C" inline asm void func_80283EB8(void* _this,
|
||||
JStudio::TFunctionValue_hermite::TIterator_data_ param_0,
|
||||
JStudio::TFunctionValue_hermite::TIterator_data_ param_1,
|
||||
f64 const& param_2, std::less<f64> param_3) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JStudio/JStudio/functionvalue/func_80283EB8.s"
|
||||
}
|
||||
#pragma pop
|
||||
File diff suppressed because it is too large
Load Diff
@@ -11,30 +11,6 @@
|
||||
// Types:
|
||||
//
|
||||
|
||||
namespace JStudio {
|
||||
namespace fvb {
|
||||
struct data {
|
||||
struct TParse_TParagraph {
|
||||
struct TData {};
|
||||
|
||||
/* 802850AC */ void getData(JStudio::fvb::data::TParse_TParagraph::TData*) const;
|
||||
};
|
||||
};
|
||||
|
||||
}; // namespace fvb
|
||||
|
||||
}; // namespace JStudio
|
||||
|
||||
namespace JGadget {
|
||||
struct binary {
|
||||
struct TEBit {};
|
||||
|
||||
/* 802DC864 */ void parseVariableUInt_16_32_following(void const*, u32*, u32*,
|
||||
JGadget::binary::TEBit*);
|
||||
};
|
||||
|
||||
}; // namespace JGadget
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
@@ -11,16 +11,6 @@
|
||||
// Types:
|
||||
//
|
||||
|
||||
namespace JStudio {
|
||||
namespace fvb {
|
||||
struct data {
|
||||
static f32 ga4cSignature[1 + 1 /* padding */];
|
||||
};
|
||||
|
||||
}; // namespace fvb
|
||||
|
||||
}; // namespace JStudio
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
#include "JSystem/JStudio/JStudio/object-id.h"
|
||||
|
||||
namespace JGadget {
|
||||
/* TLinkList<JStudio::fvb::TObject, 12> */
|
||||
struct TLinkList__template1 {
|
||||
struct iterator {};
|
||||
};
|
||||
|
||||
/* TVector_pointer<JStudio::TFunctionValue*> */
|
||||
struct TVector_pointer__template0 {};
|
||||
|
||||
}; // namespace JGadget
|
||||
|
||||
extern "C" void
|
||||
isEqual__Q37JStudio6object7TIDDataFRCQ37JStudio6object7TIDDataRCQ37JStudio6object7TIDData();
|
||||
extern "C" void _savegpr_28();
|
||||
extern "C" void _restgpr_28();
|
||||
|
||||
/* 80285018-802850AC 27F958 0094+00 1/1 0/0 0/0 .text
|
||||
* find_if<Q37JGadget37TLinkList<Q37JStudio3fvb7TObject,-12>8iterator,Q37JStudio6object18TPRObject_ID_equal>__3stdFQ37JGadget37TLinkList<Q37JStudio3fvb7TObject,-12>8iteratorQ37JGadget37TLinkList<Q37JStudio3fvb7TObject,-12>8iteratorQ37JStudio6object18TPRObject_ID_equal
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
extern "C" asm void func_80285018(void* _this, JGadget::TLinkList__template1::iterator param_0,
|
||||
JGadget::TLinkList__template1::iterator param_1,
|
||||
JStudio::object::TPRObject_ID_equal param_2) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JStudio/JStudio/fvb/func_80285018.s"
|
||||
}
|
||||
#pragma pop
|
||||
File diff suppressed because it is too large
Load Diff
@@ -4,6 +4,9 @@
|
||||
//
|
||||
|
||||
#include "JSystem/JStudio/JStudio/jstudio-control.h"
|
||||
#include "JSystem/JGadget/binary.h"
|
||||
#include "JSystem/JStudio/JStudio/fvb.h"
|
||||
#include "JSystem/JStudio/JStudio/stb.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
@@ -18,38 +21,6 @@ struct TCreateObject {
|
||||
/* 80285488 */ ~TCreateObject();
|
||||
};
|
||||
|
||||
namespace stb {
|
||||
struct data {
|
||||
struct TParse_TBlock_object {};
|
||||
|
||||
struct TParse_THeader {};
|
||||
|
||||
struct TParse_TBlock {};
|
||||
};
|
||||
|
||||
struct TControl {
|
||||
/* 802890B4 */ TControl();
|
||||
/* 80289194 */ ~TControl();
|
||||
};
|
||||
|
||||
struct TObject {};
|
||||
|
||||
struct TFactory {
|
||||
/* 802895B4 */ ~TFactory();
|
||||
/* 80289604 */ void destroy(JStudio::stb::TObject*);
|
||||
};
|
||||
|
||||
struct TParse {
|
||||
/* 80289640 */ TParse(JStudio::stb::TControl*);
|
||||
/* 80289660 */ ~TParse();
|
||||
/* 802896C0 */ void parseHeader_next(void const**, u32*, u32);
|
||||
/* 8028978C */ void parseBlock_next(void const**, u32*, u32);
|
||||
/* 802897E8 */ void parseBlock_block(JStudio::stb::data::TParse_TBlock const&, u32);
|
||||
/* 80289820 */ void parseBlock_object(JStudio::stb::data::TParse_TBlock_object const&, u32);
|
||||
};
|
||||
|
||||
}; // namespace stb
|
||||
|
||||
struct TFactory {
|
||||
/* 802854D0 */ ~TFactory();
|
||||
/* 80285560 */ void appendCreateObject(JStudio::TCreateObject*);
|
||||
@@ -95,47 +66,12 @@ struct TParse {
|
||||
/* 802858F0 */ void parseBlock_block_ctb_(JStudio::stb::data::TParse_TBlock const&, u32);
|
||||
};
|
||||
|
||||
namespace fvb {
|
||||
struct TControl {
|
||||
/* 80284668 */ TControl();
|
||||
/* 80284698 */ ~TControl();
|
||||
};
|
||||
|
||||
struct TFactory {
|
||||
/* 80284918 */ ~TFactory();
|
||||
};
|
||||
|
||||
struct TParse {
|
||||
/* 80284ADC */ TParse(JStudio::fvb::TControl*);
|
||||
/* 80284AFC */ ~TParse();
|
||||
};
|
||||
|
||||
}; // namespace fvb
|
||||
|
||||
struct data {
|
||||
static u8 ga8cSignature[8];
|
||||
};
|
||||
|
||||
}; // namespace JStudio
|
||||
|
||||
namespace JGadget {
|
||||
struct binary {
|
||||
struct TParse_header_block {
|
||||
/* 802DC910 */ void parse_next(void const**, u32);
|
||||
};
|
||||
};
|
||||
|
||||
struct TLinkListNode {};
|
||||
|
||||
struct TNodeLinkList {
|
||||
struct iterator {};
|
||||
|
||||
/* 802DCA1C */ ~TNodeLinkList();
|
||||
/* 802DCBA8 */ void Insert(JGadget::TNodeLinkList::iterator, JGadget::TLinkListNode*);
|
||||
};
|
||||
|
||||
}; // namespace JGadget
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
@@ -4,6 +4,8 @@
|
||||
//
|
||||
|
||||
#include "JSystem/JStudio/JStudio/jstudio-object.h"
|
||||
#include "JSystem/JStudio/JStudio/fvb.h"
|
||||
#include "JSystem/JStudio/JStudio/stb.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
@@ -73,18 +75,6 @@ struct TVariableValue {
|
||||
static u8 soOutput_none_[4 + 4 /* padding */];
|
||||
};
|
||||
|
||||
namespace stb {
|
||||
struct data {
|
||||
struct TParse_TBlock_object {};
|
||||
};
|
||||
|
||||
struct TObject {
|
||||
/* 80288AC0 */ TObject(JStudio::stb::data::TParse_TBlock_object const&);
|
||||
/* 80288B30 */ ~TObject();
|
||||
};
|
||||
|
||||
}; // namespace stb
|
||||
|
||||
struct TObject {
|
||||
/* 802866B0 */ ~TObject();
|
||||
/* 80286734 */ void forward_value(u32);
|
||||
@@ -214,14 +204,6 @@ struct TObject_sound {
|
||||
/* 80287F04 */ ~TObject_sound();
|
||||
};
|
||||
|
||||
namespace fvb {
|
||||
struct TControl {
|
||||
/* 80284834 */ void getObject(void const*, u32);
|
||||
/* 802848D4 */ void getObject_index(u32);
|
||||
};
|
||||
|
||||
}; // namespace fvb
|
||||
|
||||
}; // namespace JStudio
|
||||
|
||||
//
|
||||
|
||||
@@ -11,16 +11,6 @@
|
||||
// Types:
|
||||
//
|
||||
|
||||
namespace JStudio {
|
||||
struct object {
|
||||
struct TIDData {
|
||||
/* 80288988 */ void isEqual(JStudio::object::TIDData const&,
|
||||
JStudio::object::TIDData const&);
|
||||
};
|
||||
};
|
||||
|
||||
}; // namespace JStudio
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
@@ -5,106 +5,94 @@
|
||||
|
||||
#include "JSystem/JStudio/JStudio/stb-data-parse.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
#include "global.h"
|
||||
|
||||
namespace JStudio {
|
||||
namespace stb {
|
||||
struct data {
|
||||
struct TParse_TSequence {
|
||||
struct TData {};
|
||||
namespace data {
|
||||
|
||||
/* 802899BC */ void getData(JStudio::stb::data::TParse_TSequence::TData*) const;
|
||||
};
|
||||
extern "C" u32 gauDataSize_TEParagraph_data__Q37JStudio3stb4data[];
|
||||
|
||||
struct TParse_TParagraph {
|
||||
struct TData {};
|
||||
void TParse_TSequence::getData(TData* pData) const {
|
||||
ASSERT(pData != 0);
|
||||
|
||||
/* 80289A08 */ void getData(JStudio::stb::data::TParse_TParagraph::TData*) const;
|
||||
};
|
||||
|
||||
struct TParse_TParagraph_data {
|
||||
struct TData {};
|
||||
|
||||
/* 80289A80 */ void getData(JStudio::stb::data::TParse_TParagraph_data::TData*) const;
|
||||
};
|
||||
|
||||
static u8 const gauDataSize_TEParagraph_data[32];
|
||||
};
|
||||
|
||||
}; // namespace stb
|
||||
|
||||
}; // namespace JStudio
|
||||
|
||||
namespace JGadget {
|
||||
struct binary {
|
||||
struct TEBit {};
|
||||
|
||||
/* 802DC864 */ void parseVariableUInt_16_32_following(void const*, u32*, u32*,
|
||||
JGadget::binary::TEBit*);
|
||||
};
|
||||
|
||||
}; // namespace JGadget
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
extern "C" void
|
||||
getData__Q47JStudio3stb4data16TParse_TSequenceCFPQ57JStudio3stb4data16TParse_TSequence5TData();
|
||||
extern "C" void
|
||||
getData__Q47JStudio3stb4data17TParse_TParagraphCFPQ57JStudio3stb4data17TParse_TParagraph5TData();
|
||||
extern "C" void
|
||||
getData__Q47JStudio3stb4data22TParse_TParagraph_dataCFPQ57JStudio3stb4data22TParse_TParagraph_data5TData();
|
||||
|
||||
//
|
||||
// External References:
|
||||
//
|
||||
|
||||
extern "C" void
|
||||
parseVariableUInt_16_32_following__Q27JGadget6binaryFPCvPUlPUlPQ37JGadget6binary5TEBit();
|
||||
extern "C" u8 const gauDataSize_TEParagraph_data__Q37JStudio3stb4data[32];
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
/* 802899BC-80289A08 2842FC 004C+00 0/0 1/1 0/0 .text
|
||||
* getData__Q47JStudio3stb4data16TParse_TSequenceCFPQ57JStudio3stb4data16TParse_TSequence5TData */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JStudio::stb::data::TParse_TSequence::getData(
|
||||
JStudio::stb::data::TParse_TSequence::TData* param_0) const {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JStudio/JStudio/stb-data-parse/func_802899BC.s"
|
||||
pData->content = NULL;
|
||||
pData->next = NULL;
|
||||
u32 head = get_head();
|
||||
u8 type = head >> 24;
|
||||
u32 param = head & 0xffffff;
|
||||
pData->type = type;
|
||||
pData->param = param;
|
||||
if (type != 0) {
|
||||
const void* next = (const void*)((int)getRaw() + 4);
|
||||
if (type <= 0x7f) {
|
||||
pData->next = next;
|
||||
} else {
|
||||
pData->content = next;
|
||||
pData->next = (const void*)((int)next + param);
|
||||
}
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80289A08-80289A80 284348 0078+00 0/0 1/1 0/0 .text
|
||||
* getData__Q47JStudio3stb4data17TParse_TParagraphCFPQ57JStudio3stb4data17TParse_TParagraph5TData */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JStudio::stb::data::TParse_TParagraph::getData(
|
||||
JStudio::stb::data::TParse_TParagraph::TData* param_0) const {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JStudio/JStudio/stb-data-parse/func_80289A08.s"
|
||||
void TParse_TParagraph::getData(TData* pData) const {
|
||||
ASSERT(pData != 0);
|
||||
|
||||
const void* data = getRaw();
|
||||
u32 result;
|
||||
const void* next = parseVariableUInt_16_32_following(data, &result, &pData->type, NULL);
|
||||
pData->param = result;
|
||||
if (result == 0) {
|
||||
pData->content = NULL;
|
||||
pData->next = next;
|
||||
} else {
|
||||
pData->content = next;
|
||||
pData->next = (const void*)((int)next + align_roundUp(result, 4));
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
#ifdef NONMATCHING
|
||||
void TParse_TParagraph_data::getData(data::TParse_TParagraph_data::TData* pData) const {
|
||||
ASSERT(pData != 0);
|
||||
|
||||
pData->_4 = 0;
|
||||
pData->_8 = 0;
|
||||
pData->_c = NULL;
|
||||
pData->_10 = 0;
|
||||
u8* p = (u8*)getRaw();
|
||||
if (p != NULL) {
|
||||
u8 val = *p;
|
||||
pData->_0 = val & ~8;
|
||||
if (val != 0) {
|
||||
u32 count = 1;
|
||||
p++;
|
||||
if (val & 8) {
|
||||
count = *(p++);
|
||||
}
|
||||
pData->_8 = count;
|
||||
pData->_c = p;
|
||||
u8 idx = val & 7;
|
||||
if (idx) {
|
||||
u32 size = gauDataSize_TEParagraph_data[idx];
|
||||
pData->_4 = size;
|
||||
pData->_10 = p + size * count;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#else
|
||||
/* 80289A80-80289B00 2843C0 0080+00 0/0 3/3 1/1 .text
|
||||
* getData__Q47JStudio3stb4data22TParse_TParagraph_dataCFPQ57JStudio3stb4data22TParse_TParagraph_data5TData
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JStudio::stb::data::TParse_TParagraph_data::getData(
|
||||
JStudio::stb::data::TParse_TParagraph_data::TData* param_0) const {
|
||||
asm void TParse_TParagraph_data::getData(TParse_TParagraph_data::TData* param_0) const {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JStudio/JStudio/stb-data-parse/func_80289A80.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
} // namespace data
|
||||
} // namespace stb
|
||||
} // namespace JStudio
|
||||
@@ -7,49 +7,17 @@
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
namespace JStudio {
|
||||
namespace stb {
|
||||
struct data {
|
||||
static u8 const gauDataSize_TEParagraph_data[32];
|
||||
static u32 ga4cSignature[1 + 1 /* padding */];
|
||||
};
|
||||
namespace data {
|
||||
|
||||
}; // namespace stb
|
||||
|
||||
}; // namespace JStudio
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
extern "C" u8 const gauDataSize_TEParagraph_data__Q37JStudio3stb4data[32];
|
||||
extern "C" u32 ga4cSignature__Q37JStudio3stb4data[1 + 1 /* padding */];
|
||||
|
||||
//
|
||||
// External References:
|
||||
//
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 8039AB88-8039ABA8 0271E8 0020+00 0/0 1/1 0/0 .rodata
|
||||
* gauDataSize_TEParagraph_data__Q37JStudio3stb4data */
|
||||
SECTION_RODATA u8 const JStudio::stb::data::gauDataSize_TEParagraph_data[32] = {
|
||||
const u8 gauDataSize_TEParagraph_data[32] = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04,
|
||||
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x40,
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x8039AB88, &JStudio::stb::data::gauDataSize_TEParagraph_data);
|
||||
|
||||
/* 804554D8-804554E0 003AD8 0004+04 0/0 1/1 0/0 .sdata2 ga4cSignature__Q37JStudio3stb4data
|
||||
*/
|
||||
SECTION_SDATA2 u32 JStudio::stb::data::ga4cSignature[1 + 1 /* padding */] = {
|
||||
0x53544200,
|
||||
/* padding */
|
||||
0x00000000,
|
||||
};
|
||||
const u32 ga4cSignature = 'STB\0';
|
||||
|
||||
} // namespace data
|
||||
} // namespace stb
|
||||
} // namespace JStudio
|
||||
|
||||
@@ -1,8 +1,3 @@
|
||||
//
|
||||
// Generated By: dol2asm
|
||||
// Translation Unit: stb
|
||||
//
|
||||
|
||||
#include "JSystem/JStudio/JStudio/stb.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
@@ -11,171 +6,26 @@
|
||||
// Types:
|
||||
//
|
||||
|
||||
namespace JStudio {
|
||||
namespace stb {
|
||||
struct data {
|
||||
struct TParse_TBlock_object {};
|
||||
|
||||
struct TParse_THeader {};
|
||||
|
||||
struct TParse_TBlock {};
|
||||
|
||||
struct TParse_TSequence {
|
||||
struct TData {};
|
||||
|
||||
/* 802899BC */ void getData(JStudio::stb::data::TParse_TSequence::TData*) const;
|
||||
};
|
||||
|
||||
struct TParse_TParagraph {
|
||||
struct TData {};
|
||||
|
||||
/* 80289A08 */ void getData(JStudio::stb::data::TParse_TParagraph::TData*) const;
|
||||
};
|
||||
|
||||
static u32 gu32Mask_TSequence_value_signExpansion[1 + 1 /* padding */];
|
||||
static u32 ga4cSignature[1 + 1 /* padding */];
|
||||
};
|
||||
|
||||
struct TObject {
|
||||
/* 80288AC0 */ TObject(JStudio::stb::data::TParse_TBlock_object const&);
|
||||
/* 80288A78 */ TObject(u32, void const*, u32);
|
||||
/* 80288B30 */ ~TObject();
|
||||
/* 80288B78 */ void setFlag_operation(u8, int);
|
||||
/* 80288BD0 */ void reset(void const*);
|
||||
/* 80288BE8 */ void forward(u32);
|
||||
/* 80288E18 */ void do_begin();
|
||||
/* 80288E1C */ void do_end();
|
||||
/* 80288E20 */ void do_paragraph(u32, void const*, u32);
|
||||
/* 80288E24 */ void do_wait(u32);
|
||||
/* 80288E28 */ void do_data(void const*, u32, void const*, u32);
|
||||
/* 80288E2C */ void process_sequence_();
|
||||
/* 80288F80 */ void process_paragraph_reserved_(u32, void const*, u32);
|
||||
};
|
||||
|
||||
struct TObject_control {
|
||||
/* 80289068 */ TObject_control(void const*, u32);
|
||||
/* 80289134 */ ~TObject_control();
|
||||
};
|
||||
|
||||
struct TControl {
|
||||
/* 802890B4 */ TControl();
|
||||
/* 80289194 */ ~TControl();
|
||||
/* 80289228 */ void appendObject(JStudio::stb::TObject*);
|
||||
/* 80289278 */ void removeObject(JStudio::stb::TObject*);
|
||||
/* 802892B0 */ void destroyObject(JStudio::stb::TObject*);
|
||||
/* 80289300 */ void destroyObject_all();
|
||||
/* 80289364 */ void getObject(void const*, u32);
|
||||
/* 80289404 */ void reset();
|
||||
/* 802894B4 */ void forward(u32);
|
||||
};
|
||||
|
||||
struct TFactory {
|
||||
/* 802895B4 */ ~TFactory();
|
||||
/* 802895FC */ bool create(JStudio::stb::data::TParse_TBlock_object const&);
|
||||
/* 80289604 */ void destroy(JStudio::stb::TObject*);
|
||||
};
|
||||
|
||||
struct TParse {
|
||||
/* 80289640 */ TParse(JStudio::stb::TControl*);
|
||||
/* 80289660 */ ~TParse();
|
||||
/* 802896C0 */ void parseHeader_next(void const**, u32*, u32);
|
||||
/* 8028978C */ void parseBlock_next(void const**, u32*, u32);
|
||||
/* 802897E0 */ bool parseHeader(JStudio::stb::data::TParse_THeader const&, u32);
|
||||
/* 802897E8 */ void parseBlock_block(JStudio::stb::data::TParse_TBlock const&, u32);
|
||||
/* 80289820 */ void parseBlock_object(JStudio::stb::data::TParse_TBlock_object const&, u32);
|
||||
};
|
||||
|
||||
}; // namespace stb
|
||||
|
||||
struct object {
|
||||
struct TPRObject_ID_equal {};
|
||||
|
||||
struct TIDData {
|
||||
/* 80288988 */ void isEqual(JStudio::object::TIDData const&,
|
||||
JStudio::object::TIDData const&);
|
||||
};
|
||||
};
|
||||
|
||||
}; // namespace JStudio
|
||||
|
||||
namespace JGadget {
|
||||
template <typename A1, typename B1>
|
||||
struct TLinkList {};
|
||||
/* TLinkList<JStudio::stb::TObject, 12> */
|
||||
struct TLinkList__template2 {
|
||||
struct iterator {};
|
||||
};
|
||||
|
||||
struct binary {
|
||||
struct TParse_header_block {
|
||||
/* 802DC8C8 */ ~TParse_header_block();
|
||||
};
|
||||
};
|
||||
|
||||
struct TLinkListNode {};
|
||||
|
||||
struct TNodeLinkList {
|
||||
struct iterator {};
|
||||
|
||||
/* 802DCA1C */ ~TNodeLinkList();
|
||||
/* 802DCBA8 */ void Insert(JGadget::TNodeLinkList::iterator, JGadget::TLinkListNode*);
|
||||
/* 802DCBD4 */ void Erase(JGadget::TLinkListNode*);
|
||||
};
|
||||
|
||||
}; // namespace JGadget
|
||||
|
||||
namespace std {
|
||||
template <typename A1, typename B1>
|
||||
void find_if(/* ... */);
|
||||
/* 80289928 */ /* std::find_if<JGadget::TLinkList<JStudio::stb::TObject, 12>::iterator,
|
||||
JStudio::object::TPRObject_ID_equal> */
|
||||
void func_80289928(void* _this, JGadget::TLinkList__template2::iterator,
|
||||
JGadget::TLinkList__template2::iterator, JStudio::object::TPRObject_ID_equal);
|
||||
void func_80289928(void* _this, JGadget::TLinkList<JStudio::stb::TObject, 12>::iterator,
|
||||
JGadget::TLinkList<JStudio::stb::TObject, 12>::iterator,
|
||||
JStudio::object::TPRObject_ID_equal);
|
||||
}; // namespace std
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
extern "C" void __ct__Q37JStudio3stb7TObjectFUlPCvUl();
|
||||
extern "C" void __ct__Q37JStudio3stb7TObjectFRCQ47JStudio3stb4data20TParse_TBlock_object();
|
||||
extern "C" void __dt__Q37JStudio3stb7TObjectFv();
|
||||
extern "C" void setFlag_operation__Q37JStudio3stb7TObjectFUci();
|
||||
extern "C" void reset__Q37JStudio3stb7TObjectFPCv();
|
||||
extern "C" void forward__Q37JStudio3stb7TObjectFUl();
|
||||
extern "C" void do_begin__Q37JStudio3stb7TObjectFv();
|
||||
extern "C" void do_end__Q37JStudio3stb7TObjectFv();
|
||||
extern "C" void do_paragraph__Q37JStudio3stb7TObjectFUlPCvUl();
|
||||
extern "C" void do_wait__Q37JStudio3stb7TObjectFUl();
|
||||
extern "C" void do_data__Q37JStudio3stb7TObjectFPCvUlPCvUl();
|
||||
extern "C" void process_sequence___Q37JStudio3stb7TObjectFv();
|
||||
extern "C" void process_paragraph_reserved___Q37JStudio3stb7TObjectFUlPCvUl();
|
||||
extern "C" void __ct__Q37JStudio3stb15TObject_controlFPCvUl();
|
||||
extern "C" void __ct__Q37JStudio3stb8TControlFv();
|
||||
extern "C" void __dt__Q37JStudio3stb15TObject_controlFv();
|
||||
extern "C" void __dt__Q37JStudio3stb8TControlFv();
|
||||
extern "C" void appendObject__Q37JStudio3stb8TControlFPQ37JStudio3stb7TObject();
|
||||
extern "C" void removeObject__Q37JStudio3stb8TControlFPQ37JStudio3stb7TObject();
|
||||
extern "C" void destroyObject__Q37JStudio3stb8TControlFPQ37JStudio3stb7TObject();
|
||||
extern "C" void destroyObject_all__Q37JStudio3stb8TControlFv();
|
||||
extern "C" void getObject__Q37JStudio3stb8TControlFPCvUl();
|
||||
extern "C" void reset__Q37JStudio3stb8TControlFv();
|
||||
extern "C" void forward__Q37JStudio3stb8TControlFUl();
|
||||
extern "C" void __dt__Q37JStudio3stb8TFactoryFv();
|
||||
extern "C" bool create__Q37JStudio3stb8TFactoryFRCQ47JStudio3stb4data20TParse_TBlock_object();
|
||||
extern "C" void destroy__Q37JStudio3stb8TFactoryFPQ37JStudio3stb7TObject();
|
||||
extern "C" void __ct__Q37JStudio3stb6TParseFPQ37JStudio3stb8TControl();
|
||||
extern "C" void __dt__Q37JStudio3stb6TParseFv();
|
||||
extern "C" void parseHeader_next__Q37JStudio3stb6TParseFPPCvPUlUl();
|
||||
extern "C" void parseBlock_next__Q37JStudio3stb6TParseFPPCvPUlUl();
|
||||
extern "C" bool parseHeader__Q37JStudio3stb6TParseFRCQ47JStudio3stb4data14TParse_THeaderUl();
|
||||
extern "C" void parseBlock_block__Q37JStudio3stb6TParseFRCQ47JStudio3stb4data13TParse_TBlockUl();
|
||||
extern "C" void
|
||||
parseBlock_object__Q37JStudio3stb6TParseFRCQ47JStudio3stb4data20TParse_TBlock_objectUl();
|
||||
extern "C" void func_80289928(void* _this, JGadget::TLinkList__template2::iterator,
|
||||
JGadget::TLinkList__template2::iterator,
|
||||
extern "C" void func_80289928(void* _this, JGadget::TLinkList<JStudio::stb::TObject, 12>::iterator,
|
||||
JGadget::TLinkList<JStudio::stb::TObject, 12>::iterator,
|
||||
JStudio::object::TPRObject_ID_equal);
|
||||
extern "C" u32 gu32Mask_TSequence_value_signExpansion__Q37JStudio3stb4data[1 + 1 /* padding */];
|
||||
|
||||
//
|
||||
// External References:
|
||||
@@ -184,13 +34,6 @@ extern "C" u32 gu32Mask_TSequence_value_signExpansion__Q37JStudio3stb4data[1 + 1
|
||||
extern "C" void
|
||||
isEqual__Q37JStudio6object7TIDDataFRCQ37JStudio6object7TIDDataRCQ37JStudio6object7TIDData();
|
||||
extern "C" void
|
||||
getData__Q47JStudio3stb4data16TParse_TSequenceCFPQ57JStudio3stb4data16TParse_TSequence5TData();
|
||||
extern "C" void
|
||||
getData__Q47JStudio3stb4data17TParse_TParagraphCFPQ57JStudio3stb4data17TParse_TParagraph5TData();
|
||||
extern "C" void __dl__FPv();
|
||||
extern "C" void __dt__Q37JGadget6binary19TParse_header_blockFv();
|
||||
extern "C" void __dt__Q27JGadget13TNodeLinkListFv();
|
||||
extern "C" void
|
||||
Insert__Q27JGadget13TNodeLinkListFQ37JGadget13TNodeLinkList8iteratorPQ27JGadget13TLinkListNode();
|
||||
extern "C" void Erase__Q27JGadget13TNodeLinkListFPQ27JGadget13TLinkListNode();
|
||||
extern "C" void _savegpr_25();
|
||||
@@ -199,274 +42,331 @@ extern "C" void _savegpr_29();
|
||||
extern "C" void _restgpr_25();
|
||||
extern "C" void _restgpr_28();
|
||||
extern "C" void _restgpr_29();
|
||||
extern "C" void memcmp();
|
||||
extern "C" extern void* __vt__Q37JGadget6binary19TParse_header_block[5];
|
||||
extern "C" u32 ga4cSignature__Q37JStudio3stb4data[1 + 1 /* padding */];
|
||||
extern "C" int memcmp(const void*, const void*, u32);
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
namespace JStudio {
|
||||
namespace stb {
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803C56A0-803C56C0 0227C0 0020+00 2/2 0/0 0/0 .data __vt__Q37JStudio3stb6TParse */
|
||||
SECTION_DATA extern void* __vt__Q37JStudio3stb6TParse[8] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)__dt__Q37JStudio3stb6TParseFv,
|
||||
(void*)parseHeader_next__Q37JStudio3stb6TParseFPPCvPUlUl,
|
||||
(void*)parseBlock_next__Q37JStudio3stb6TParseFPPCvPUlUl,
|
||||
(void*)parseHeader__Q37JStudio3stb6TParseFRCQ47JStudio3stb4data14TParse_THeaderUl,
|
||||
(void*)parseBlock_block__Q37JStudio3stb6TParseFRCQ47JStudio3stb4data13TParse_TBlockUl,
|
||||
(void*)parseBlock_object__Q37JStudio3stb6TParseFRCQ47JStudio3stb4data20TParse_TBlock_objectUl,
|
||||
};
|
||||
// unchecked, in debug dol
|
||||
const char* TObject::toString_status(int status) {
|
||||
const char* result;
|
||||
|
||||
/* 803C56C0-803C56D4 0227E0 0014+00 1/1 1/1 0/0 .data __vt__Q37JStudio3stb8TFactory */
|
||||
SECTION_DATA extern void* __vt__Q37JStudio3stb8TFactory[5] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)__dt__Q37JStudio3stb8TFactoryFv,
|
||||
(void*)create__Q37JStudio3stb8TFactoryFRCQ47JStudio3stb4data20TParse_TBlock_object,
|
||||
(void*)destroy__Q37JStudio3stb8TFactoryFPQ37JStudio3stb7TObject,
|
||||
};
|
||||
|
||||
/* 803C56D4-803C56E0 0227F4 000C+00 2/2 0/0 0/0 .data __vt__Q37JStudio3stb8TControl */
|
||||
SECTION_DATA extern void* __vt__Q37JStudio3stb8TControl[3] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)__dt__Q37JStudio3stb8TControlFv,
|
||||
};
|
||||
|
||||
/* 803C56E0-803C5700 022800 0020+00 3/3 0/0 0/0 .data __vt__Q37JStudio3stb15TObject_control */
|
||||
SECTION_DATA extern void* __vt__Q37JStudio3stb15TObject_control[8] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)__dt__Q37JStudio3stb15TObject_controlFv,
|
||||
(void*)do_begin__Q37JStudio3stb7TObjectFv,
|
||||
(void*)do_end__Q37JStudio3stb7TObjectFv,
|
||||
(void*)do_paragraph__Q37JStudio3stb7TObjectFUlPCvUl,
|
||||
(void*)do_wait__Q37JStudio3stb7TObjectFUl,
|
||||
(void*)do_data__Q37JStudio3stb7TObjectFPCvUlPCvUl,
|
||||
};
|
||||
|
||||
/* 803C5700-803C5720 022820 0020+00 3/3 0/0 0/0 .data __vt__Q37JStudio3stb7TObject */
|
||||
SECTION_DATA extern void* __vt__Q37JStudio3stb7TObject[8] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)__dt__Q37JStudio3stb7TObjectFv,
|
||||
(void*)do_begin__Q37JStudio3stb7TObjectFv,
|
||||
(void*)do_end__Q37JStudio3stb7TObjectFv,
|
||||
(void*)do_paragraph__Q37JStudio3stb7TObjectFUlPCvUl,
|
||||
(void*)do_wait__Q37JStudio3stb7TObjectFUl,
|
||||
(void*)do_data__Q37JStudio3stb7TObjectFPCvUlPCvUl,
|
||||
};
|
||||
|
||||
/* 80288A78-80288AC0 2833B8 0048+00 1/1 0/0 0/0 .text __ct__Q37JStudio3stb7TObjectFUlPCvUl */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm JStudio::stb::TObject::TObject(u32 param_0, void const* param_1, u32 param_2) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JStudio/JStudio/stb/__ct__Q37JStudio3stb7TObjectFUlPCvUl.s"
|
||||
switch (status) {
|
||||
default:
|
||||
result = "(undefined)";
|
||||
break;
|
||||
case 0:
|
||||
result = "still";
|
||||
break;
|
||||
case 1:
|
||||
result = "end";
|
||||
break;
|
||||
case 2:
|
||||
result = "wait";
|
||||
break;
|
||||
case 4:
|
||||
result = "suspend";
|
||||
break;
|
||||
case 8:
|
||||
result = "inactive";
|
||||
break;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80288AC0-80288B30 283400 0070+00 0/0 1/1 0/0 .text
|
||||
* __ct__Q37JStudio3stb7TObjectFRCQ47JStudio3stb4data20TParse_TBlock_object */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm JStudio::stb::TObject::TObject(JStudio::stb::data::TParse_TBlock_object const& param_0) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JStudio/JStudio/stb/__ct__Q37JStudio3stb7TObjectFRCQ47JStudio3stb4data20TParse_TBlock_object.s"
|
||||
TObject::TObject(u32 arg1, const void* id, u32 id_size)
|
||||
: TObject_ID(id, id_size), pControl(NULL), signature(arg1), mFlag(0), bSequence_(0), _20(0),
|
||||
pSequence(NULL), pSequence_next(NULL), u32Wait_(0), mStatus(STATUS_STILL) {}
|
||||
|
||||
TObject::TObject(const data::TParse_TBlock_object& object)
|
||||
: TObject_ID(object.get_ID(), object.get_IDSize()), pControl(NULL),
|
||||
signature(object.get_type()), mFlag(object.get_flag()), bSequence_(0), _20(0), pSequence(0),
|
||||
pSequence_next(object.getContent()), u32Wait_(0), mStatus(STATUS_STILL) {}
|
||||
|
||||
TObject::~TObject() {
|
||||
JUT_EXPECT(getControl() == NULL);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80288B30-80288B78 283470 0048+00 3/2 1/1 0/0 .text __dt__Q37JStudio3stb7TObjectFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm JStudio::stb::TObject::~TObject() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JStudio/JStudio/stb/__dt__Q37JStudio3stb7TObjectFv.s"
|
||||
void TObject::setFlag_operation(u8 op, int val) {
|
||||
switch (op) {
|
||||
default:
|
||||
JUTWarn w;
|
||||
w << "unknown flag-operation : " << op;
|
||||
break;
|
||||
case 1:
|
||||
mFlag |= val;
|
||||
break;
|
||||
case 2:
|
||||
mFlag &= val;
|
||||
break;
|
||||
case 3:
|
||||
mFlag ^= val;
|
||||
break;
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80288B78-80288BD0 2834B8 0058+00 2/2 0/0 0/0 .text
|
||||
* setFlag_operation__Q37JStudio3stb7TObjectFUci */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JStudio::stb::TObject::setFlag_operation(u8 param_0, int param_1) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JStudio/JStudio/stb/setFlag_operation__Q37JStudio3stb7TObjectFUci.s"
|
||||
void TObject::reset(const void* arg1) {
|
||||
bSequence_ = 0;
|
||||
mStatus = STATUS_STILL;
|
||||
pSequence_next = arg1;
|
||||
u32Wait_ = 0;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80288BD0-80288BE8 283510 0018+00 2/2 0/0 0/0 .text reset__Q37JStudio3stb7TObjectFPCv
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JStudio::stb::TObject::reset(void const* param_0) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JStudio/JStudio/stb/reset__Q37JStudio3stb7TObjectFPCv.s"
|
||||
int TObject::forward(u32 arg1) {
|
||||
u8 temp = false;
|
||||
|
||||
while (true) {
|
||||
if (mFlag & 0x8000) {
|
||||
switch (getStatus()) {
|
||||
case STATUS_STILL:
|
||||
case STATUS_END:
|
||||
break;
|
||||
case STATUS_WAIT:
|
||||
case STATUS_SUSPEND:
|
||||
setStatus_(STATUS_INACTIVE);
|
||||
if (bSequence_) {
|
||||
on_end();
|
||||
}
|
||||
break;
|
||||
case STATUS_INACTIVE:
|
||||
break;
|
||||
default:
|
||||
ASSERT(false);
|
||||
break;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (getStatus() == STATUS_INACTIVE) {
|
||||
ASSERT(bSequence_);
|
||||
on_begin();
|
||||
setStatus_(STATUS_WAIT);
|
||||
}
|
||||
ASSERT(getStatus() != STATUS_INACTIVE);
|
||||
|
||||
TControl* control = getControl();
|
||||
if ((control != NULL && control->isSuspended()) || isSuspended()) {
|
||||
if (bSequence_) {
|
||||
ASSERT((getStatus() == STATUS_WAIT) || (getStatus() == STATUS_SUSPEND));
|
||||
setStatus_(STATUS_SUSPEND);
|
||||
on_wait(arg1);
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
while (true) {
|
||||
void* nextseq = (void*)getSequence_next();
|
||||
setSequence_(nextseq);
|
||||
|
||||
if (nextseq == NULL) {
|
||||
if (bSequence_) {
|
||||
ASSERT(getStatus() != STATUS_STILL);
|
||||
if (!temp) {
|
||||
on_wait(0);
|
||||
}
|
||||
bSequence_ = false;
|
||||
setStatus_(STATUS_END);
|
||||
on_end();
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (!bSequence_) {
|
||||
ASSERT(getStatus() == STATUS_STILL);
|
||||
bSequence_ = true;
|
||||
on_begin();
|
||||
}
|
||||
setStatus_(STATUS_WAIT);
|
||||
if (u32Wait_ == 0) {
|
||||
process_sequence_();
|
||||
if (u32Wait_ == 0) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
ASSERT(u32Wait_ > 0);
|
||||
|
||||
temp = true;
|
||||
if (arg1 >= u32Wait_) {
|
||||
u32 wait = u32Wait_;
|
||||
arg1 -= u32Wait_;
|
||||
u32Wait_ = 0;
|
||||
on_wait(wait);
|
||||
} else {
|
||||
u32Wait_ -= arg1;
|
||||
on_wait(arg1);
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80288BE8-80288E18 283528 0230+00 1/1 0/0 0/0 .text forward__Q37JStudio3stb7TObjectFUl
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JStudio::stb::TObject::forward(u32 param_0) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JStudio/JStudio/stb/forward__Q37JStudio3stb7TObjectFUl.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80288E18-80288E1C 283758 0004+00 2/0 0/0 0/0 .text do_begin__Q37JStudio3stb7TObjectFv
|
||||
*/
|
||||
void JStudio::stb::TObject::do_begin() {
|
||||
void TObject::do_begin() {
|
||||
/* empty function */
|
||||
}
|
||||
|
||||
/* 80288E1C-80288E20 28375C 0004+00 2/0 0/0 0/0 .text do_end__Q37JStudio3stb7TObjectFv */
|
||||
void JStudio::stb::TObject::do_end() {
|
||||
void TObject::do_end() {
|
||||
/* empty function */
|
||||
}
|
||||
|
||||
/* 80288E20-80288E24 283760 0004+00 2/0 0/0 0/0 .text do_paragraph__Q37JStudio3stb7TObjectFUlPCvUl
|
||||
*/
|
||||
void JStudio::stb::TObject::do_paragraph(u32 param_0, void const* param_1, u32 param_2) {
|
||||
void TObject::do_paragraph(u32 param_0, void const* param_1, u32 param_2) {
|
||||
/* empty function */
|
||||
}
|
||||
|
||||
/* 80288E24-80288E28 283764 0004+00 2/0 0/0 0/0 .text do_wait__Q37JStudio3stb7TObjectFUl
|
||||
*/
|
||||
void JStudio::stb::TObject::do_wait(u32 param_0) {
|
||||
void TObject::do_wait(u32 param_0) {
|
||||
/* empty function */
|
||||
}
|
||||
|
||||
/* 80288E28-80288E2C 283768 0004+00 2/0 0/0 0/0 .text do_data__Q37JStudio3stb7TObjectFPCvUlPCvUl
|
||||
*/
|
||||
void JStudio::stb::TObject::do_data(void const* param_0, u32 param_1, void const* param_2,
|
||||
u32 param_3) {
|
||||
void TObject::do_data(void const* param_0, u32 param_1, void const* param_2, u32 param_3) {
|
||||
/* empty function */
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 804554D0-804554D8 003AD0 0004+04 1/1 0/0 0/0 .sdata2
|
||||
* gu32Mask_TSequence_value_signExpansion__Q37JStudio3stb4data */
|
||||
SECTION_SDATA2 u32
|
||||
JStudio::stb::data::gu32Mask_TSequence_value_signExpansion[1 + 1 /* padding */] = {
|
||||
0xFF000000,
|
||||
/* padding */
|
||||
0x00000000,
|
||||
};
|
||||
void TObject::process_sequence_() {
|
||||
ASSERT(getWait() == 0);
|
||||
data::TParse_TSequence seq(getSequence());
|
||||
|
||||
/* 80288E2C-80288F80 28376C 0154+00 1/1 0/0 0/0 .text process_sequence___Q37JStudio3stb7TObjectFv
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JStudio::stb::TObject::process_sequence_() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JStudio/JStudio/stb/process_sequence___Q37JStudio3stb7TObjectFv.s"
|
||||
data::TParse_TSequence::TData dat;
|
||||
|
||||
seq.getData(&dat);
|
||||
u8 type = dat.type;
|
||||
u32 u32Value = dat.param;
|
||||
const void* pContent = dat.content;
|
||||
const void* pNext = dat.next;
|
||||
setSequence_next(dat.next);
|
||||
|
||||
switch (type) {
|
||||
case 0:
|
||||
JUT_EXPECT(u32Value == 0);
|
||||
JUT_EXPECT(pContent == 0);
|
||||
break;
|
||||
case 1:
|
||||
JUT_EXPECT(pContent == 0);
|
||||
setFlag_operation_(u32Value);
|
||||
break;
|
||||
case 2:
|
||||
JUT_EXPECT(pContent == 0);
|
||||
setWait(u32Value);
|
||||
break;
|
||||
case 3:
|
||||
JUT_EXPECT(pContent == 0);
|
||||
s32 off = toInt32FromUInt24_(u32Value);
|
||||
void* nextseq = (void*)getSequence_offset(off);
|
||||
setSequence_next(nextseq);
|
||||
break;
|
||||
case 4:
|
||||
JUT_EXPECT(pContent == 0);
|
||||
u32 val = toInt32FromUInt24_(u32Value);
|
||||
suspend(val);
|
||||
break;
|
||||
case 0x80:
|
||||
ASSERT(pContent != 0);
|
||||
void* p = (void*)pContent;
|
||||
data::TParse_TParagraph para(NULL);
|
||||
while (p < pNext) {
|
||||
para.setRaw(p);
|
||||
|
||||
data::TParse_TParagraph::TData para_dat;
|
||||
para.getData(¶_dat);
|
||||
if (para_dat.type <= 0xff) {
|
||||
process_paragraph_reserved_(para_dat.type, para_dat.content, para_dat.param);
|
||||
} else {
|
||||
on_paragraph(para_dat.type, para_dat.content, para_dat.param);
|
||||
}
|
||||
p = (void*)para_dat.next;
|
||||
ASSERT(p != 0);
|
||||
}
|
||||
JUT_EXPECT(p == pNext);
|
||||
break;
|
||||
default:
|
||||
JUTWarn w;
|
||||
w << "unknown sequence : " << dat.type;
|
||||
break;
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80288F80-80289068 2838C0 00E8+00 1/1 0/0 0/0 .text
|
||||
* process_paragraph_reserved___Q37JStudio3stb7TObjectFUlPCvUl */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JStudio::stb::TObject::process_paragraph_reserved_(u32 param_0, void const* param_1,
|
||||
u32 param_2) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JStudio/JStudio/stb/process_paragraph_reserved___Q37JStudio3stb7TObjectFUlPCvUl.s"
|
||||
void TObject::process_paragraph_reserved_(u32 arg1, const void* pContent, u32 uSize) {
|
||||
switch (arg1) {
|
||||
case 0x1:
|
||||
ASSERT(pContent != 0);
|
||||
ASSERT(uSize == 4);
|
||||
setFlag_operation_(*(u32*)pContent);
|
||||
break;
|
||||
case 0x2:
|
||||
ASSERT(pContent != 0);
|
||||
ASSERT(uSize == 4);
|
||||
setWait(*(u32*)pContent);
|
||||
break;
|
||||
case 0x3:
|
||||
ASSERT(pContent != 0);
|
||||
ASSERT(uSize == 4);
|
||||
const void* seq = getSequence_offset(*(s32*)pContent);
|
||||
setSequence_next(seq);
|
||||
break;
|
||||
case 0x80:
|
||||
on_data(NULL, 0, pContent, uSize);
|
||||
break;
|
||||
case 0x81:
|
||||
data::TParse_TParagraph_dataID dataID(pContent);
|
||||
const void* temp = dataID.getContent();
|
||||
on_data(dataID.get_ID(), dataID.get_IDSize(), temp,
|
||||
uSize - ((u32)temp - (u32)dataID.getRaw()));
|
||||
break;
|
||||
case 0x82:
|
||||
ASSERT(pContent != 0);
|
||||
break;
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80289068-802890B4 2839A8 004C+00 1/1 0/0 0/0 .text __ct__Q37JStudio3stb15TObject_controlFPCvUl
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm JStudio::stb::TObject_control::TObject_control(void const* param_0, u32 param_1) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JStudio/JStudio/stb/__ct__Q37JStudio3stb15TObject_controlFPCvUl.s"
|
||||
TObject_control::TObject_control(const void* arg1, u32 arg2) : TObject(-1, arg1, arg2) {}
|
||||
|
||||
TControl::TControl() : _4(0), _8(0), pFactory(NULL), mObject_control(NULL, 0), _54(0) {
|
||||
resetStatus_();
|
||||
mObject_control.setControl_(this);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 802890B4-80289134 2839F4 0080+00 0/0 1/1 0/0 .text __ct__Q37JStudio3stb8TControlFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm JStudio::stb::TControl::TControl() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JStudio/JStudio/stb/__ct__Q37JStudio3stb8TControlFv.s"
|
||||
// TObject_control::TObject_control() definition gets inlined here
|
||||
|
||||
TControl::~TControl() {
|
||||
mObject_control.setControl_(NULL);
|
||||
JUT_EXPECT(ocObject_.empty());
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80289134-80289194 283A74 0060+00 1/0 0/0 0/0 .text __dt__Q37JStudio3stb15TObject_controlFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm JStudio::stb::TObject_control::~TObject_control() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JStudio/JStudio/stb/__dt__Q37JStudio3stb15TObject_controlFv.s"
|
||||
#ifdef NONMATCHING
|
||||
void TControl::appendObject(TObject* p) {
|
||||
p->setControl(this);
|
||||
mObjectContainer.Push_back(p);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80289194-80289228 283AD4 0094+00 1/0 1/1 0/0 .text __dt__Q37JStudio3stb8TControlFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm JStudio::stb::TControl::~TControl() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JStudio/JStudio/stb/__dt__Q37JStudio3stb8TControlFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
#else
|
||||
/* 80289228-80289278 283B68 0050+00 1/1 0/0 0/0 .text
|
||||
* appendObject__Q37JStudio3stb8TControlFPQ37JStudio3stb7TObject */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JStudio::stb::TControl::appendObject(JStudio::stb::TObject* param_0) {
|
||||
asm void TControl::appendObject(TObject* param_0) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JStudio/JStudio/stb/appendObject__Q37JStudio3stb8TControlFPQ37JStudio3stb7TObject.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 80289278-802892B0 283BB8 0038+00 1/1 0/0 0/0 .text
|
||||
* removeObject__Q37JStudio3stb8TControlFPQ37JStudio3stb7TObject */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JStudio::stb::TControl::removeObject(JStudio::stb::TObject* param_0) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JStudio/JStudio/stb/removeObject__Q37JStudio3stb8TControlFPQ37JStudio3stb7TObject.s"
|
||||
void TControl::removeObject(TObject* p) {
|
||||
ASSERT(p != 0);
|
||||
ASSERT(p->getControl() == this);
|
||||
p->setControl_(NULL);
|
||||
mObjectContainer.Erase(p);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 802892B0-80289300 283BF0 0050+00 1/1 0/0 0/0 .text
|
||||
* destroyObject__Q37JStudio3stb8TControlFPQ37JStudio3stb7TObject */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JStudio::stb::TControl::destroyObject(JStudio::stb::TObject* param_0) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JStudio/JStudio/stb/destroyObject__Q37JStudio3stb8TControlFPQ37JStudio3stb7TObject.s"
|
||||
void TControl::destroyObject(TObject* p) {
|
||||
removeObject(p);
|
||||
ASSERT(pFactory != 0);
|
||||
pFactory->destroy(p);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80289300-80289364 283C40 0064+00 0/0 2/2 0/0 .text destroyObject_all__Q37JStudio3stb8TControlFv
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JStudio::stb::TControl::destroyObject_all() {
|
||||
asm void TControl::destroyObject_all() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JStudio/JStudio/stb/destroyObject_all__Q37JStudio3stb8TControlFv.s"
|
||||
}
|
||||
@@ -476,7 +376,7 @@ asm void JStudio::stb::TControl::destroyObject_all() {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JStudio::stb::TControl::getObject(void const* param_0, u32 param_1) {
|
||||
asm TObject* TControl::getObject(void const* param_0, u32 param_1) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JStudio/JStudio/stb/getObject__Q37JStudio3stb8TControlFPCvUl.s"
|
||||
}
|
||||
@@ -486,7 +386,7 @@ asm void JStudio::stb::TControl::getObject(void const* param_0, u32 param_1) {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JStudio::stb::TControl::reset() {
|
||||
asm void TControl::reset() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JStudio/JStudio/stb/reset__Q37JStudio3stb8TControlFv.s"
|
||||
}
|
||||
@@ -497,113 +397,131 @@ asm void JStudio::stb::TControl::reset() {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JStudio::stb::TControl::forward(u32 param_0) {
|
||||
asm void TControl::forward(u32 param_0) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JStudio/JStudio/stb/forward__Q37JStudio3stb8TControlFUl.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 802895B4-802895FC 283EF4 0048+00 1/0 1/1 0/0 .text __dt__Q37JStudio3stb8TFactoryFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm JStudio::stb::TFactory::~TFactory() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JStudio/JStudio/stb/__dt__Q37JStudio3stb8TFactoryFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
TFactory::~TFactory() {}
|
||||
|
||||
/* 802895FC-80289604 283F3C 0008+00 1/0 0/0 0/0 .text
|
||||
* create__Q37JStudio3stb8TFactoryFRCQ47JStudio3stb4data20TParse_TBlock_object */
|
||||
bool JStudio::stb::TFactory::create(JStudio::stb::data::TParse_TBlock_object const& param_0) {
|
||||
return false;
|
||||
TObject* TFactory::create(data::TParse_TBlock_object const& param_0) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* 80289604-80289640 283F44 003C+00 1/0 1/0 0/0 .text
|
||||
* destroy__Q37JStudio3stb8TFactoryFPQ37JStudio3stb7TObject */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JStudio::stb::TFactory::destroy(JStudio::stb::TObject* param_0) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JStudio/JStudio/stb/destroy__Q37JStudio3stb8TFactoryFPQ37JStudio3stb7TObject.s"
|
||||
void TFactory::destroy(TObject* p) {
|
||||
delete p;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80289640-80289660 283F80 0020+00 0/0 1/1 0/0 .text
|
||||
* __ct__Q37JStudio3stb6TParseFPQ37JStudio3stb8TControl */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm JStudio::stb::TParse::TParse(JStudio::stb::TControl* param_0) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JStudio/JStudio/stb/__ct__Q37JStudio3stb6TParseFPQ37JStudio3stb8TControl.s"
|
||||
TParse::TParse(TControl* pControl) : pControl(pControl) {}
|
||||
|
||||
TParse::~TParse() {}
|
||||
|
||||
bool TParse::parseHeader_next(const void** ppData_inout, u32* puBlock_out, u32 flags) {
|
||||
ASSERT(ppData_inout != 0);
|
||||
ASSERT(puBlock_out != 0);
|
||||
|
||||
const void* pData = *ppData_inout;
|
||||
ASSERT(pData != 0);
|
||||
|
||||
const data::TParse_THeader header(pData);
|
||||
*ppData_inout = header.getContent();
|
||||
*puBlock_out = header.get_blockNumber();
|
||||
|
||||
if (memcmp(header.get_signature(), &data::ga4cSignature, 4) != 0) {
|
||||
JUTWarn w;
|
||||
w << "unknown signature";
|
||||
return false;
|
||||
}
|
||||
|
||||
if (header.get_byteOrder() != 0xFEFF) {
|
||||
JUTWarn w;
|
||||
w << "illegal byte-order";
|
||||
return false;
|
||||
}
|
||||
u16 version = header.get_version();
|
||||
if (version < 1) {
|
||||
JUTWarn w;
|
||||
w << "obselete version : " << (long)0;
|
||||
return false;
|
||||
} else if (version > 3) {
|
||||
JUTWarn w;
|
||||
w << "unknown version : " << version;
|
||||
return false;
|
||||
}
|
||||
return parseHeader(header, flags);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80289660-802896C0 283FA0 0060+00 1/0 1/1 0/0 .text __dt__Q37JStudio3stb6TParseFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm JStudio::stb::TParse::~TParse() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JStudio/JStudio/stb/__dt__Q37JStudio3stb6TParseFv.s"
|
||||
bool TParse::parseBlock_next(void const** ppData_inout, u32* puData_out, u32 flags) {
|
||||
ASSERT(ppData_inout != 0);
|
||||
ASSERT(puData_out != 0);
|
||||
|
||||
const void* pData = *ppData_inout;
|
||||
ASSERT(pData != 0);
|
||||
|
||||
data::TParse_TBlock blk(pData);
|
||||
*ppData_inout = blk.getNext();
|
||||
*puData_out = blk.get_size();
|
||||
return parseBlock_block(blk, flags);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 802896C0-8028978C 284000 00CC+00 1/0 1/0 0/0 .text
|
||||
* parseHeader_next__Q37JStudio3stb6TParseFPPCvPUlUl */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JStudio::stb::TParse::parseHeader_next(void const** param_0, u32* param_1, u32 param_2) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JStudio/JStudio/stb/parseHeader_next__Q37JStudio3stb6TParseFPPCvPUlUl.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8028978C-802897E0 2840CC 0054+00 1/0 1/0 0/0 .text
|
||||
* parseBlock_next__Q37JStudio3stb6TParseFPPCvPUlUl */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JStudio::stb::TParse::parseBlock_next(void const** param_0, u32* param_1, u32 param_2) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JStudio/JStudio/stb/parseBlock_next__Q37JStudio3stb6TParseFPPCvPUlUl.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 802897E0-802897E8 284120 0008+00 1/0 0/0 0/0 .text
|
||||
* parseHeader__Q37JStudio3stb6TParseFRCQ47JStudio3stb4data14TParse_THeaderUl */
|
||||
bool JStudio::stb::TParse::parseHeader(JStudio::stb::data::TParse_THeader const& param_0,
|
||||
u32 param_1) {
|
||||
bool TParse::parseHeader(data::TParse_THeader const& param_0, u32 flags) {
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 802897E8-80289820 284128 0038+00 1/0 1/1 0/0 .text
|
||||
* parseBlock_block__Q37JStudio3stb6TParseFRCQ47JStudio3stb4data13TParse_TBlockUl */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JStudio::stb::TParse::parseBlock_block(JStudio::stb::data::TParse_TBlock const& param_0,
|
||||
u32 param_1) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JStudio/JStudio/stb/parseBlock_block__Q37JStudio3stb6TParseFRCQ47JStudio3stb4data13TParse_TBlockUl.s"
|
||||
bool TParse::parseBlock_block(const data::TParse_TBlock& ppBlock, u32 flags) {
|
||||
return parseBlock_object(ppBlock.get(), flags);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80289820-80289928 284160 0108+00 1/0 1/0 0/0 .text
|
||||
* parseBlock_object__Q37JStudio3stb6TParseFRCQ47JStudio3stb4data20TParse_TBlock_objectUl */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void
|
||||
JStudio::stb::TParse::parseBlock_object(JStudio::stb::data::TParse_TBlock_object const& param_0,
|
||||
u32 param_1) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JStudio/JStudio/stb/parseBlock_object__Q37JStudio3stb6TParseFRCQ47JStudio3stb4data20TParse_TBlock_objectUl.s"
|
||||
bool TParse::parseBlock_object(const data::TParse_TBlock_object& ppObject, u32 flags) {
|
||||
TControl* pControl = getControl();
|
||||
ASSERT(pControl != 0);
|
||||
|
||||
if (ppObject.get_type() == data::BLOCK_NONE) {
|
||||
TObject_control& ref = pControl->referObject_control();
|
||||
ref.reset(ppObject.getContent());
|
||||
return true;
|
||||
}
|
||||
|
||||
if (flags & 0x10) {
|
||||
TObject* p = pControl->getObject(ppObject.get_ID(), ppObject.get_IDSize());
|
||||
if (p != NULL) {
|
||||
p->reset(ppObject.getContent());
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
if (flags & 0x20)
|
||||
return true;
|
||||
|
||||
TFactory* pFactory = pControl->getFactory();
|
||||
if (pFactory == NULL) {
|
||||
JUTWarn w;
|
||||
w << "factory not specified";
|
||||
return false;
|
||||
}
|
||||
|
||||
TObject* p = pFactory->create(ppObject);
|
||||
if (p == NULL) {
|
||||
if (flags & 0x40)
|
||||
return true;
|
||||
|
||||
char a5c[8];
|
||||
char t[16];
|
||||
int type = ppObject.get_type();
|
||||
data::toString_block(a5c, type);
|
||||
|
||||
JUTWarn w;
|
||||
w << "can't create object : " << a5c;
|
||||
w << "(0x" << type << ")";
|
||||
return false;
|
||||
}
|
||||
pControl->appendObject(p);
|
||||
return true;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
} // namespace stb
|
||||
} // namespace JStudio
|
||||
|
||||
/* 80289928-802899BC 284268 0094+00 1/1 0/0 0/0 .text
|
||||
* find_if<Q37JGadget37TLinkList<Q37JStudio3stb7TObject,-12>8iterator,Q37JStudio6object18TPRObject_ID_equal>__3stdFQ37JGadget37TLinkList<Q37JStudio3stb7TObject,-12>8iteratorQ37JGadget37TLinkList<Q37JStudio3stb7TObject,-12>8iteratorQ37JStudio6object18TPRObject_ID_equal
|
||||
@@ -611,8 +529,9 @@ JStudio::stb::TParse::parseBlock_object(JStudio::stb::data::TParse_TBlock_object
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
extern "C" asm void func_80289928(void* _this, JGadget::TLinkList__template2::iterator param_0,
|
||||
JGadget::TLinkList__template2::iterator param_1,
|
||||
extern "C" asm void func_80289928(void* _this,
|
||||
JGadget::TLinkList<JStudio::stb::TObject, 12>::iterator param_0,
|
||||
JGadget::TLinkList<JStudio::stb::TObject, 12>::iterator param_1,
|
||||
JStudio::object::TPRObject_ID_equal param_2) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JStudio/JStudio/stb/func_80289928.s"
|
||||
|
||||
@@ -26,6 +26,6 @@ $(BUILD_DIR)/libJStudio_JAudio2.a: $(LIBJSTUDIO_JAUDIO2_A_O_FILES)
|
||||
$(BUILD_DIR)/libs/JSystem/JStudio/JStudio_JAudio2/%.o: libs/JSystem/JStudio/JStudio_JAudio2/%.cpp
|
||||
@mkdir -p $(@D)
|
||||
@echo building... $<
|
||||
@iconv -f UTF-8 -t CP932 < $< > $@.iconv.cpp
|
||||
@$(CC) $(CFLAGS) $(LIBJSTUDIO_JAUDIO2_A_CFLAGS) -c -o $@ $@.iconv.cpp
|
||||
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp
|
||||
@$(CC) $(CFLAGS) $(LIBJSTUDIO_JAUDIO2_A_CFLAGS) -c -o $@ $(basename $@).cpp
|
||||
|
||||
|
||||
@@ -26,6 +26,6 @@ $(BUILD_DIR)/libJStudio_JParticle.a: $(LIBJSTUDIO_JPARTICLE_A_O_FILES)
|
||||
$(BUILD_DIR)/libs/JSystem/JStudio/JStudio_JParticle/%.o: libs/JSystem/JStudio/JStudio_JParticle/%.cpp
|
||||
@mkdir -p $(@D)
|
||||
@echo building... $<
|
||||
@iconv -f UTF-8 -t CP932 < $< > $@.iconv.cpp
|
||||
@$(CC) $(CFLAGS) $(LIBJSTUDIO_JPARTICLE_A_CFLAGS) -c -o $@ $@.iconv.cpp
|
||||
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp
|
||||
@$(CC) $(CFLAGS) $(LIBJSTUDIO_JPARTICLE_A_CFLAGS) -c -o $@ $(basename $@).cpp
|
||||
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
//
|
||||
|
||||
#include "JSystem/JStudio/JStudio_JParticle/control.h"
|
||||
#include "JSystem/JStudio/JStudio/stb.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
@@ -14,13 +15,6 @@
|
||||
namespace JStudio {
|
||||
struct TObject {};
|
||||
|
||||
namespace stb {
|
||||
struct data {
|
||||
struct TParse_TBlock_object {};
|
||||
};
|
||||
|
||||
}; // namespace stb
|
||||
|
||||
struct TCreateObject {
|
||||
/* 80285488 */ ~TCreateObject();
|
||||
};
|
||||
|
||||
@@ -36,6 +36,6 @@ $(BUILD_DIR)/libJStudio_JStage.a: $(LIBJSTUDIO_JSTAGE_A_O_FILES)
|
||||
$(BUILD_DIR)/libs/JSystem/JStudio/JStudio_JStage/%.o: libs/JSystem/JStudio/JStudio_JStage/%.cpp
|
||||
@mkdir -p $(@D)
|
||||
@echo building... $<
|
||||
@iconv -f UTF-8 -t CP932 < $< > $@.iconv.cpp
|
||||
@$(CC) $(CFLAGS) $(LIBJSTUDIO_JSTAGE_A_CFLAGS) -c -o $@ $@.iconv.cpp
|
||||
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp
|
||||
@$(CC) $(CFLAGS) $(LIBJSTUDIO_JSTAGE_A_CFLAGS) -c -o $@ $(basename $@).cpp
|
||||
|
||||
|
||||
@@ -30,6 +30,6 @@ $(BUILD_DIR)/libJSupport.a: $(LIBJSUPPORT_A_O_FILES)
|
||||
$(BUILD_DIR)/libs/JSystem/JSupport/%.o: libs/JSystem/JSupport/%.cpp
|
||||
@mkdir -p $(@D)
|
||||
@echo building... $<
|
||||
@iconv -f UTF-8 -t CP932 < $< > $@.iconv.cpp
|
||||
@$(CC) $(CFLAGS) $(LIBJSUPPORT_A_CFLAGS) -c -o $@ $@.iconv.cpp
|
||||
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp
|
||||
@$(CC) $(CFLAGS) $(LIBJSUPPORT_A_CFLAGS) -c -o $@ $(basename $@).cpp
|
||||
|
||||
|
||||
@@ -62,6 +62,6 @@ $(BUILD_DIR)/libJUtility.a: $(LIBJUTILITY_A_O_FILES)
|
||||
$(BUILD_DIR)/libs/JSystem/JUtility/%.o: libs/JSystem/JUtility/%.cpp
|
||||
@mkdir -p $(@D)
|
||||
@echo building... $<
|
||||
@iconv -f UTF-8 -t CP932 < $< > $@.iconv.cpp
|
||||
@$(CC) $(CFLAGS) $(LIBJUTILITY_A_CFLAGS) -c -o $@ $@.iconv.cpp
|
||||
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp
|
||||
@$(CC) $(CFLAGS) $(LIBJUTILITY_A_CFLAGS) -c -o $@ $(basename $@).cpp
|
||||
|
||||
|
||||
@@ -134,6 +134,6 @@ $(BUILD_DIR)/libMSL_C.PPCEABI.bare.H.a: $(LIBMSL_C_PPCEABI_BARE_H_A_O_FILES)
|
||||
$(BUILD_DIR)/libs/MSL_C.PPCEABI.bare.H/%.o: libs/MSL_C.PPCEABI.bare.H/%.cpp
|
||||
@mkdir -p $(@D)
|
||||
@echo building... $<
|
||||
@iconv -f UTF-8 -t CP932 < $< > $@.iconv.cpp
|
||||
@$(CC) $(CFLAGS) $(LIBMSL_C_PPCEABI_BARE_H_A_CFLAGS) -c -o $@ $@.iconv.cpp
|
||||
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp
|
||||
@$(CC) $(CFLAGS) $(LIBMSL_C_PPCEABI_BARE_H_A_CFLAGS) -c -o $@ $(basename $@).cpp
|
||||
|
||||
|
||||
@@ -40,6 +40,6 @@ $(BUILD_DIR)/libRuntime.PPCEABI.H.a: $(LIBRUNTIME_PPCEABI_H_A_O_FILES)
|
||||
$(BUILD_DIR)/libs/Runtime.PPCEABI.H/%.o: libs/Runtime.PPCEABI.H/%.cpp
|
||||
@mkdir -p $(@D)
|
||||
@echo building... $<
|
||||
@iconv -f UTF-8 -t CP932 < $< > $@.iconv.cpp
|
||||
@$(CC) $(CFLAGS) $(LIBRUNTIME_PPCEABI_H_A_CFLAGS) -c -o $@ $@.iconv.cpp
|
||||
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp
|
||||
@$(CC) $(CFLAGS) $(LIBRUNTIME_PPCEABI_H_A_CFLAGS) -c -o $@ $(basename $@).cpp
|
||||
|
||||
|
||||
@@ -98,6 +98,6 @@ $(BUILD_DIR)/libSComponent.a: $(LIBSCOMPONENT_A_O_FILES)
|
||||
$(BUILD_DIR)/libs/SSystem/SComponent/%.o: libs/SSystem/SComponent/%.cpp
|
||||
@mkdir -p $(@D)
|
||||
@echo building... $<
|
||||
@iconv -f UTF-8 -t CP932 < $< > $@.iconv.cpp
|
||||
@$(CC) $(CFLAGS) $(LIBSCOMPONENT_A_CFLAGS) -c -o $@ $@.iconv.cpp
|
||||
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp
|
||||
@$(CC) $(CFLAGS) $(LIBSCOMPONENT_A_CFLAGS) -c -o $@ $(basename $@).cpp
|
||||
|
||||
|
||||
+253
-198
@@ -5,7 +5,7 @@
|
||||
|
||||
#include "SSystem/SComponent/c_lib.h"
|
||||
#include "JSystem/JMath/JMath.h"
|
||||
#include "MSL_C.PPCEABI.bare.H/MSL_Common/src/string.h"
|
||||
#include "MSL_C.PPCEABI.bare.H/MSL_Common/Src/string.h"
|
||||
#include "SSystem/SComponent/c_math.h"
|
||||
#include "SSystem/SComponent/c_xyz.h"
|
||||
#include "dol2asm.h"
|
||||
@@ -13,51 +13,6 @@
|
||||
#include "dolphin/types.h"
|
||||
#include "msl_c/math.h"
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
extern "C" void cLib_memCpy__FPvPCvUl();
|
||||
extern "C" void cLib_memSet__FPviUl();
|
||||
extern "C" void cLib_addCalc__FPfffff();
|
||||
extern "C" void cLib_addCalc2__FPffff();
|
||||
extern "C" void cLib_addCalc0__FPfff();
|
||||
extern "C" void cLib_addCalcPos__FP4cXyzRC4cXyzfff();
|
||||
extern "C" void cLib_addCalcPosXZ__FP4cXyzRC4cXyzfff();
|
||||
extern "C" void cLib_addCalcPos2__FP4cXyzRC4cXyzff();
|
||||
extern "C" void cLib_addCalcPosXZ2__FP4cXyzRC4cXyzff();
|
||||
extern "C" void cLib_addCalcAngleS__FPsssss();
|
||||
extern "C" void cLib_addCalcAngleS2__FPssss();
|
||||
extern "C" void cLib_chaseUC__FPUcUcUc();
|
||||
extern "C" void cLib_chaseS__FPsss();
|
||||
extern "C" void cLib_chaseF__FPfff();
|
||||
extern "C" void cLib_chasePos__FP4cXyzRC4cXyzf();
|
||||
extern "C" void cLib_chasePosXZ__FP4cXyzRC4cXyzf();
|
||||
extern "C" void cLib_chaseAngleS__FPsss();
|
||||
extern "C" void cLib_targetAngleY__FPC3VecPC3Vec();
|
||||
extern "C" void cLib_targetAngleY__FRC3VecRC3Vec();
|
||||
extern "C" void cLib_targetAngleX__FPC4cXyzPC4cXyz();
|
||||
extern "C" void cLib_offsetPos__FP4cXyzPC4cXyzsPC4cXyz();
|
||||
extern "C" void cLib_distanceAngleS__Fss();
|
||||
extern "C" void MtxInit__Fv();
|
||||
extern "C" void MtxTrans__FfffUc();
|
||||
extern "C" void MtxScale__FfffUc();
|
||||
extern "C" void MtxPosition__FP4cXyzP4cXyz();
|
||||
extern "C" void MtxPush__Fv();
|
||||
extern "C" void MtxPull__Fv();
|
||||
|
||||
//
|
||||
// External References:
|
||||
//
|
||||
|
||||
extern "C" void __mi__4cXyzCFRC3Vec();
|
||||
extern "C" void __ml__4cXyzCFf();
|
||||
extern "C" void normZP__4cXyzCFv();
|
||||
extern "C" bool __eq__4cXyzCFRC3Vec();
|
||||
extern "C" bool __ne__4cXyzCFRC3Vec();
|
||||
extern "C" void cM_atan2s__Fff();
|
||||
extern "C" u8 sincosTable___5JMath[65536];
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
@@ -72,185 +27,298 @@ void cLib_memSet(void* ptr, int value, unsigned long size) {
|
||||
memset(ptr, value, size);
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 804551E0-804551E8 0037E0 0004+04 9/9 0/0 0/0 .sdata2 @2262 */
|
||||
SECTION_SDATA2 static f32 lit_2262[1 + 1 /* padding */] = {
|
||||
0.0f,
|
||||
/* padding */
|
||||
0.0f,
|
||||
};
|
||||
|
||||
/* 8026F97C-8026FA3C 26A2BC 00C0+00 0/0 50/50 178/178 .text cLib_addCalc__FPfffff */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm f32 cLib_addCalc(f32* param_0, f32 param_1, f32 param_2, f32 param_3, f32 param_4) {
|
||||
nofralloc
|
||||
#include "asm/SSystem/SComponent/c_lib/cLib_addCalc__FPfffff.s"
|
||||
f32 cLib_addCalc(f32* pValue, f32 target, f32 scale, f32 maxStep, f32 minStep) {
|
||||
if (*pValue != target) {
|
||||
f32 step = scale * (target - *pValue);
|
||||
if (step >= minStep || step <= -minStep) {
|
||||
if (step > maxStep) {
|
||||
step = maxStep;
|
||||
}
|
||||
if (step < -maxStep) {
|
||||
step = -maxStep;
|
||||
}
|
||||
*pValue += step;
|
||||
} else {
|
||||
if (step > 0) {
|
||||
if (step < minStep) {
|
||||
*pValue += minStep;
|
||||
if (*pValue > target) {
|
||||
*pValue = target;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
minStep = -minStep;
|
||||
if (step > minStep) {
|
||||
*pValue += minStep;
|
||||
if (*pValue < target) {
|
||||
*pValue = target;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return fabsf(target - *pValue);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8026FA3C-8026FA80 26A37C 0044+00 0/0 20/20 701/701 .text cLib_addCalc2__FPffff */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void cLib_addCalc2(f32* param_0, f32 param_1, f32 param_2, f32 param_3) {
|
||||
nofralloc
|
||||
#include "asm/SSystem/SComponent/c_lib/cLib_addCalc2__FPffff.s"
|
||||
void cLib_addCalc2(f32* pValue, f32 target, f32 scale, f32 maxStep) {
|
||||
if (*pValue != target) {
|
||||
f32 step = scale * (target - *pValue);
|
||||
if (step > maxStep) {
|
||||
step = maxStep;
|
||||
} else if (step < -maxStep) {
|
||||
step = -maxStep;
|
||||
}
|
||||
*pValue += step;
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8026FA80-8026FAB8 26A3C0 0038+00 0/0 2/2 322/322 .text cLib_addCalc0__FPfff */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void cLib_addCalc0(f32* param_0, f32 param_1, f32 param_2) {
|
||||
nofralloc
|
||||
#include "asm/SSystem/SComponent/c_lib/cLib_addCalc0__FPfff.s"
|
||||
void cLib_addCalc0(f32* pValue, f32 scale, f32 maxStep) {
|
||||
f32 step = *pValue * scale;
|
||||
if (step > maxStep) {
|
||||
step = maxStep;
|
||||
} else if (step < -maxStep) {
|
||||
step = -maxStep;
|
||||
}
|
||||
*pValue -= step;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 804551E8-804551F0 0037E8 0008+00 7/7 0/0 0/0 .sdata2 @2379 */
|
||||
SECTION_SDATA2 static f64 lit_2379 = 0.5;
|
||||
|
||||
/* 804551F0-804551F8 0037F0 0008+00 7/7 0/0 0/0 .sdata2 @2380 */
|
||||
SECTION_SDATA2 static f64 lit_2380 = 3.0;
|
||||
|
||||
/* 804551F8-80455200 0037F8 0008+00 7/7 0/0 0/0 .sdata2 @2381 */
|
||||
SECTION_SDATA2 static u8 lit_2381[8] = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
};
|
||||
|
||||
/* 80455200-80455208 003800 0004+04 5/5 0/0 0/0 .sdata2 @2382 */
|
||||
SECTION_SDATA2 static f32 lit_2382[1 + 1 /* padding */] = {
|
||||
7.999999968033578e-11f,
|
||||
/* padding */
|
||||
0.0f,
|
||||
};
|
||||
|
||||
/* 8026FAB8-8026FDF4 26A3F8 033C+00 0/0 3/3 78/78 .text cLib_addCalcPos__FP4cXyzRC4cXyzfff */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm f32 cLib_addCalcPos(cXyz* param_0, cXyz const& param_1, f32 param_2, f32 param_3, f32 param_4) {
|
||||
nofralloc
|
||||
#include "asm/SSystem/SComponent/c_lib/cLib_addCalcPos__FP4cXyzRC4cXyzfff.s"
|
||||
f32 cLib_addCalcPos(cXyz* pValue, cXyz const& target, f32 scale, f32 maxStep, f32 minStep) {
|
||||
if (*pValue != target) {
|
||||
cXyz diff = (*pValue - target);
|
||||
f32 step = diff.abs();
|
||||
if (step < minStep) {
|
||||
*pValue = target;
|
||||
} else {
|
||||
step *= scale;
|
||||
diff *= scale;
|
||||
if (!cLib_IsZero(step)) {
|
||||
if (step > maxStep) {
|
||||
diff *= (maxStep / step);
|
||||
} else if (step < minStep) {
|
||||
diff *= (minStep / step);
|
||||
}
|
||||
*pValue -= diff;
|
||||
} else {
|
||||
*pValue = target;
|
||||
}
|
||||
}
|
||||
}
|
||||
return pValue->abs(target);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8026FDF4-80270178 26A734 0384+00 0/0 1/1 4/4 .text cLib_addCalcPosXZ__FP4cXyzRC4cXyzfff */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm f32 cLib_addCalcPosXZ(cXyz* param_0, cXyz const& param_1, f32 param_2, f32 param_3,
|
||||
f32 param_4) {
|
||||
nofralloc
|
||||
#include "asm/SSystem/SComponent/c_lib/cLib_addCalcPosXZ__FP4cXyzRC4cXyzfff.s"
|
||||
f32 cLib_addCalcPosXZ(cXyz* pValue, cXyz const& target, f32 scale, f32 maxStep, f32 minStep) {
|
||||
if (pValue->x != target.x || pValue->z != target.z) {
|
||||
cXyz diff = (*pValue - target);
|
||||
f32 step = diff.absXZ();
|
||||
if (step < minStep) {
|
||||
pValue->x = target.x;
|
||||
pValue->z = target.z;
|
||||
} else {
|
||||
step *= scale;
|
||||
diff *= scale;
|
||||
if (!cLib_IsZero(step)) {
|
||||
if (step > maxStep) {
|
||||
diff *= (maxStep / step);
|
||||
} else if (step < minStep) {
|
||||
diff *= (minStep / step);
|
||||
}
|
||||
pValue->x -= diff.x;
|
||||
pValue->z -= diff.z;
|
||||
} else {
|
||||
pValue->x = target.x;
|
||||
pValue->z = target.z;
|
||||
}
|
||||
}
|
||||
}
|
||||
return (*pValue - target).absXZ();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80270178-80270350 26AAB8 01D8+00 0/0 2/2 33/33 .text cLib_addCalcPos2__FP4cXyzRC4cXyzff */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void cLib_addCalcPos2(cXyz* param_0, cXyz const& param_1, f32 param_2, f32 param_3) {
|
||||
nofralloc
|
||||
#include "asm/SSystem/SComponent/c_lib/cLib_addCalcPos2__FP4cXyzRC4cXyzff.s"
|
||||
void cLib_addCalcPos2(cXyz* pValue, cXyz const& target, f32 scale, f32 maxStep) {
|
||||
if (*pValue != target) {
|
||||
cXyz diff = (*pValue - target) * scale;
|
||||
if (diff.abs() > maxStep) {
|
||||
diff = diff.normZP();
|
||||
diff *= maxStep;
|
||||
}
|
||||
*pValue -= diff;
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80270350-80270540 26AC90 01F0+00 0/0 0/0 4/4 .text cLib_addCalcPosXZ2__FP4cXyzRC4cXyzff */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void cLib_addCalcPosXZ2(cXyz* param_0, cXyz const& param_1, f32 param_2, f32 param_3) {
|
||||
nofralloc
|
||||
#include "asm/SSystem/SComponent/c_lib/cLib_addCalcPosXZ2__FP4cXyzRC4cXyzff.s"
|
||||
void cLib_addCalcPosXZ2(cXyz* pValue, cXyz const& target, f32 scale, f32 maxStep) {
|
||||
if (pValue->x != target.x || pValue->z != target.z) {
|
||||
cXyz diff = (*pValue - target) * scale;
|
||||
f32 step = diff.absXZ();
|
||||
if (!cLib_IsZero(step)) {
|
||||
if (step > maxStep) {
|
||||
diff *= (maxStep / step);
|
||||
}
|
||||
pValue->x -= diff.x;
|
||||
pValue->z -= diff.z;
|
||||
}
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80270540-80270608 26AE80 00C8+00 0/0 81/81 244/244 .text cLib_addCalcAngleS__FPsssss
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm s16 cLib_addCalcAngleS(s16* param_0, s16 param_1, s16 param_2, s16 param_3, s16 param_4) {
|
||||
nofralloc
|
||||
#include "asm/SSystem/SComponent/c_lib/cLib_addCalcAngleS__FPsssss.s"
|
||||
s16 cLib_addCalcAngleS(s16* pValue, s16 target, s16 scale, s16 maxStep, s16 minStep) {
|
||||
s16 diff = target - *pValue;
|
||||
if (*pValue != target) {
|
||||
s16 step = (diff) / scale;
|
||||
if (step > minStep || step < -minStep) {
|
||||
if (step > maxStep) {
|
||||
step = maxStep;
|
||||
}
|
||||
if (step < -maxStep) {
|
||||
step = -maxStep;
|
||||
}
|
||||
*pValue += step;
|
||||
} else {
|
||||
if (0 <= diff) {
|
||||
*pValue += minStep;
|
||||
diff = target - *pValue;
|
||||
if (0 >= diff) {
|
||||
*pValue = target;
|
||||
}
|
||||
} else {
|
||||
*pValue -= minStep;
|
||||
diff = target - *pValue;
|
||||
if (0 <= diff) {
|
||||
*pValue = target;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return target - *pValue;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80270608-8027065C 26AF48 0054+00 0/0 2/2 849/849 .text cLib_addCalcAngleS2__FPssss */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void cLib_addCalcAngleS2(s16* param_0, s16 param_1, s16 param_2, s16 param_3) {
|
||||
nofralloc
|
||||
#include "asm/SSystem/SComponent/c_lib/cLib_addCalcAngleS2__FPssss.s"
|
||||
void cLib_addCalcAngleS2(s16* pValue, s16 target, s16 scale, s16 maxStep) {
|
||||
s16 diff = target - *pValue;
|
||||
s16 step = diff / scale;
|
||||
if (step > maxStep) {
|
||||
*pValue += maxStep;
|
||||
} else if (step < -maxStep) {
|
||||
*pValue -= maxStep;
|
||||
} else {
|
||||
*pValue += step;
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8027065C-802706D0 26AF9C 0074+00 0/0 3/3 14/14 .text cLib_chaseUC__FPUcUcUc */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm int cLib_chaseUC(u8* param_0, u8 param_1, u8 param_2) {
|
||||
nofralloc
|
||||
#include "asm/SSystem/SComponent/c_lib/cLib_chaseUC__FPUcUcUc.s"
|
||||
int cLib_chaseUC(u8* pValue, u8 target, u8 step) {
|
||||
if (step) {
|
||||
s16 wideValue = *pValue;
|
||||
s16 wideTarget = target;
|
||||
s16 wideStep;
|
||||
if (wideValue > wideTarget) {
|
||||
wideStep = -step;
|
||||
} else {
|
||||
wideStep = step;
|
||||
}
|
||||
wideValue += wideStep;
|
||||
if (wideStep * (wideValue - wideTarget) >= 0) {
|
||||
*pValue = target;
|
||||
return 1;
|
||||
} else {
|
||||
*pValue = wideValue;
|
||||
}
|
||||
} else if (*pValue == target) {
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 802706D0-80270740 26B010 0070+00 0/0 4/4 49/49 .text cLib_chaseS__FPsss */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm int cLib_chaseS(s16* param_0, s16 param_1, s16 param_2) {
|
||||
nofralloc
|
||||
#include "asm/SSystem/SComponent/c_lib/cLib_chaseS__FPsss.s"
|
||||
int cLib_chaseS(s16* pValue, s16 target, s16 step) {
|
||||
if (step) {
|
||||
if (*pValue > target) {
|
||||
step = -step;
|
||||
}
|
||||
*pValue += step;
|
||||
if (step * (*pValue - target) >= 0) {
|
||||
*pValue = target;
|
||||
return 1;
|
||||
}
|
||||
} else if (*pValue == target) {
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80270740-802707AC 26B080 006C+00 0/0 70/70 448/448 .text cLib_chaseF__FPfff */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm int cLib_chaseF(f32* param_0, f32 param_1, f32 param_2) {
|
||||
nofralloc
|
||||
#include "asm/SSystem/SComponent/c_lib/cLib_chaseF__FPfff.s"
|
||||
int cLib_chaseF(f32* pValue, f32 target, f32 step) {
|
||||
if (step) {
|
||||
if (*pValue > target) {
|
||||
step = -step;
|
||||
}
|
||||
*pValue += step;
|
||||
if (step * (*pValue - target) >= 0) {
|
||||
*pValue = target;
|
||||
return 1;
|
||||
}
|
||||
} else if (*pValue == target) {
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 802707AC-80270990 26B0EC 01E4+00 0/0 3/3 60/60 .text cLib_chasePos__FP4cXyzRC4cXyzf */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm int cLib_chasePos(cXyz* param_0, cXyz const& param_1, f32 param_2) {
|
||||
nofralloc
|
||||
#include "asm/SSystem/SComponent/c_lib/cLib_chasePos__FP4cXyzRC4cXyzf.s"
|
||||
int cLib_chasePos(cXyz* pValue, cXyz const& target, f32 step) {
|
||||
if (step) {
|
||||
cXyz diff = *pValue - target;
|
||||
f32 diffF = diff.abs();
|
||||
if (cLib_IsZero(diffF) || diffF <= step) {
|
||||
*pValue = target;
|
||||
return 1;
|
||||
}
|
||||
*pValue -= diff * (step / diffF);
|
||||
} else if (*pValue == target) {
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80270990-80270B90 26B2D0 0200+00 0/0 1/0 19/19 .text cLib_chasePosXZ__FP4cXyzRC4cXyzf
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm int cLib_chasePosXZ(cXyz* param_0, cXyz const& param_1, f32 param_2) {
|
||||
nofralloc
|
||||
#include "asm/SSystem/SComponent/c_lib/cLib_chasePosXZ__FP4cXyzRC4cXyzf.s"
|
||||
int cLib_chasePosXZ(cXyz* pValue, cXyz const& target, f32 step) {
|
||||
cXyz diff = *pValue - target;
|
||||
diff.y = 0;
|
||||
f32 diffF = diff.absXZ();
|
||||
if (step) {
|
||||
if (cLib_IsZero(diffF) || diffF <= step) {
|
||||
*pValue = target;
|
||||
return 1;
|
||||
}
|
||||
*pValue -= diff * (step / diffF);
|
||||
} else if (cLib_IsZero(diffF)) {
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80270B90-80270C04 26B4D0 0074+00 0/0 4/4 213/213 .text cLib_chaseAngleS__FPsss */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm int cLib_chaseAngleS(s16* param_0, s16 param_1, s16 param_2) {
|
||||
nofralloc
|
||||
#include "asm/SSystem/SComponent/c_lib/cLib_chaseAngleS__FPsss.s"
|
||||
int cLib_chaseAngleS(s16* pValue, s16 target, s16 step) {
|
||||
if (step) {
|
||||
if ((s16)(*pValue - target) > 0) {
|
||||
step = -step;
|
||||
}
|
||||
*pValue += step;
|
||||
if (step * (s16)(*pValue - target) >= 0) {
|
||||
*pValue = target;
|
||||
return 1;
|
||||
}
|
||||
} else if (*pValue == target) {
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80270C04-80270C3C 26B544 0038+00 0/0 39/39 454/454 .text cLib_targetAngleY__FPC3VecPC3Vec */
|
||||
s16 cLib_targetAngleY(const Vec* lhs, const Vec* rhs) {
|
||||
@@ -263,34 +331,21 @@ s16 cLib_targetAngleY(const Vec& lhs, const Vec& rhs) {
|
||||
}
|
||||
|
||||
/* 80270C74-80270DC0 26B5B4 014C+00 0/0 2/2 109/109 .text cLib_targetAngleX__FPC4cXyzPC4cXyz */
|
||||
#ifdef NON_MATCHING
|
||||
s16 cLib_targetAngleX(cXyz const* param_0, cXyz const* param_1) {
|
||||
// would match with all float literals
|
||||
cXyz diff = *param_1 - *param_0;
|
||||
f32 f1 = sqrtf(diff.getMagXZ());
|
||||
return cM_atan2s(diff.GetY(), f1);
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm s16 cLib_targetAngleX(cXyz const* param_0, cXyz const* param_1) {
|
||||
nofralloc
|
||||
#include "asm/SSystem/SComponent/c_lib/cLib_targetAngleX__FPC4cXyzPC4cXyz.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 80270DC0-80270E24 26B700 0064+00 0/0 2/2 118/118 .text cLib_offsetPos__FP4cXyzPC4cXyzsPC4cXyz
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void cLib_offsetPos(cXyz* param_0, cXyz const* param_1, s16 param_2, cXyz const* param_3) {
|
||||
nofralloc
|
||||
#include "asm/SSystem/SComponent/c_lib/cLib_offsetPos__FP4cXyzPC4cXyzsPC4cXyz.s"
|
||||
void cLib_offsetPos(cXyz* pDest, cXyz const* pSrc, s16 angle, cXyz const* vec) {
|
||||
f32 cos = cM_scos(angle);
|
||||
f32 sin = cM_ssin(angle);
|
||||
pDest->x = pSrc->x + (vec->x * cos + vec->z * sin);
|
||||
pDest->y = pSrc->y + vec->y;
|
||||
pDest->z = pSrc->z + (vec->z * cos - vec->x * sin);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80270E24-80270E4C 26B764 0028+00 0/0 48/48 71/71 .text cLib_distanceAngleS__Fss */
|
||||
s32 cLib_distanceAngleS(s16 x, s16 y) {
|
||||
|
||||
@@ -24,6 +24,6 @@ $(BUILD_DIR)/libSStandard.a: $(LIBSSTANDARD_A_O_FILES)
|
||||
$(BUILD_DIR)/libs/SSystem/SStandard/%.o: libs/SSystem/SStandard/%.cpp
|
||||
@mkdir -p $(@D)
|
||||
@echo building... $<
|
||||
@iconv -f UTF-8 -t CP932 < $< > $@.iconv.cpp
|
||||
@$(CC) $(CFLAGS) $(LIBSSTANDARD_A_CFLAGS) -c -o $@ $@.iconv.cpp
|
||||
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp
|
||||
@$(CC) $(CFLAGS) $(LIBSSTANDARD_A_CFLAGS) -c -o $@ $(basename $@).cpp
|
||||
|
||||
|
||||
@@ -80,6 +80,6 @@ $(BUILD_DIR)/libTRK_MINNOW_DOLPHIN.a: $(LIBTRK_MINNOW_DOLPHIN_A_O_FILES)
|
||||
$(BUILD_DIR)/libs/TRK_MINNOW_DOLPHIN/%.o: libs/TRK_MINNOW_DOLPHIN/%.cpp
|
||||
@mkdir -p $(@D)
|
||||
@echo building... $<
|
||||
@iconv -f UTF-8 -t CP932 < $< > $@.iconv.cpp
|
||||
@$(CC) $(CFLAGS) $(LIBTRK_MINNOW_DOLPHIN_A_CFLAGS) -c -o $@ $@.iconv.cpp
|
||||
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp
|
||||
@$(CC) $(CFLAGS) $(LIBTRK_MINNOW_DOLPHIN_A_CFLAGS) -c -o $@ $(basename $@).cpp
|
||||
|
||||
|
||||
@@ -64,6 +64,6 @@ $(BUILD_DIR)/libZ2AudioLib.a: $(LIBZ2AUDIOLIB_A_O_FILES)
|
||||
$(BUILD_DIR)/libs/Z2AudioLib/%.o: libs/Z2AudioLib/%.cpp
|
||||
@mkdir -p $(@D)
|
||||
@echo building... $<
|
||||
@iconv -f UTF-8 -t CP932 < $< > $@.iconv.cpp
|
||||
@$(CC) $(CFLAGS) $(LIBZ2AUDIOLIB_A_CFLAGS) -c -o $@ $@.iconv.cpp
|
||||
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp
|
||||
@$(CC) $(CFLAGS) $(LIBZ2AUDIOLIB_A_CFLAGS) -c -o $@ $(basename $@).cpp
|
||||
|
||||
|
||||
@@ -24,6 +24,6 @@ $(BUILD_DIR)/libamcstubs.a: $(LIBAMCSTUBS_A_O_FILES)
|
||||
$(BUILD_DIR)/libs/amcstubs/%.o: libs/amcstubs/%.cpp
|
||||
@mkdir -p $(@D)
|
||||
@echo building... $<
|
||||
@iconv -f UTF-8 -t CP932 < $< > $@.iconv.cpp
|
||||
@$(CC) $(CFLAGS) $(LIBAMCSTUBS_A_CFLAGS) -c -o $@ $@.iconv.cpp
|
||||
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp
|
||||
@$(CC) $(CFLAGS) $(LIBAMCSTUBS_A_CFLAGS) -c -o $@ $(basename $@).cpp
|
||||
|
||||
|
||||
@@ -24,6 +24,6 @@ $(BUILD_DIR)/libai.a: $(LIBAI_A_O_FILES)
|
||||
$(BUILD_DIR)/libs/dolphin/ai/%.o: libs/dolphin/ai/%.cpp
|
||||
@mkdir -p $(@D)
|
||||
@echo building... $<
|
||||
@iconv -f UTF-8 -t CP932 < $< > $@.iconv.cpp
|
||||
@$(CC) $(CFLAGS) $(LIBAI_A_CFLAGS) -c -o $@ $@.iconv.cpp
|
||||
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp
|
||||
@$(CC) $(CFLAGS) $(LIBAI_A_CFLAGS) -c -o $@ $(basename $@).cpp
|
||||
|
||||
|
||||
@@ -26,6 +26,6 @@ $(BUILD_DIR)/libar.a: $(LIBAR_A_O_FILES)
|
||||
$(BUILD_DIR)/libs/dolphin/ar/%.o: libs/dolphin/ar/%.cpp
|
||||
@mkdir -p $(@D)
|
||||
@echo building... $<
|
||||
@iconv -f UTF-8 -t CP932 < $< > $@.iconv.cpp
|
||||
@$(CC) $(CFLAGS) $(LIBAR_A_CFLAGS) -c -o $@ $@.iconv.cpp
|
||||
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp
|
||||
@$(CC) $(CFLAGS) $(LIBAR_A_CFLAGS) -c -o $@ $(basename $@).cpp
|
||||
|
||||
|
||||
@@ -24,6 +24,6 @@ $(BUILD_DIR)/libbase.a: $(LIBBASE_A_O_FILES)
|
||||
$(BUILD_DIR)/libs/dolphin/base/%.o: libs/dolphin/base/%.cpp
|
||||
@mkdir -p $(@D)
|
||||
@echo building... $<
|
||||
@iconv -f UTF-8 -t CP932 < $< > $@.iconv.cpp
|
||||
@$(CC) $(CFLAGS) $(LIBBASE_A_CFLAGS) -c -o $@ $@.iconv.cpp
|
||||
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp
|
||||
@$(CC) $(CFLAGS) $(LIBBASE_A_CFLAGS) -c -o $@ $(basename $@).cpp
|
||||
|
||||
|
||||
@@ -50,6 +50,6 @@ $(BUILD_DIR)/libcard.a: $(LIBCARD_A_O_FILES)
|
||||
$(BUILD_DIR)/libs/dolphin/card/%.o: libs/dolphin/card/%.cpp
|
||||
@mkdir -p $(@D)
|
||||
@echo building... $<
|
||||
@iconv -f UTF-8 -t CP932 < $< > $@.iconv.cpp
|
||||
@$(CC) $(CFLAGS) $(LIBCARD_A_CFLAGS) -c -o $@ $@.iconv.cpp
|
||||
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp
|
||||
@$(CC) $(CFLAGS) $(LIBCARD_A_CFLAGS) -c -o $@ $(basename $@).cpp
|
||||
|
||||
|
||||
@@ -24,6 +24,6 @@ $(BUILD_DIR)/libdb.a: $(LIBDB_A_O_FILES)
|
||||
$(BUILD_DIR)/libs/dolphin/db/%.o: libs/dolphin/db/%.cpp
|
||||
@mkdir -p $(@D)
|
||||
@echo building... $<
|
||||
@iconv -f UTF-8 -t CP932 < $< > $@.iconv.cpp
|
||||
@$(CC) $(CFLAGS) $(LIBDB_A_CFLAGS) -c -o $@ $@.iconv.cpp
|
||||
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp
|
||||
@$(CC) $(CFLAGS) $(LIBDB_A_CFLAGS) -c -o $@ $(basename $@).cpp
|
||||
|
||||
|
||||
@@ -28,6 +28,6 @@ $(BUILD_DIR)/libdsp.a: $(LIBDSP_A_O_FILES)
|
||||
$(BUILD_DIR)/libs/dolphin/dsp/%.o: libs/dolphin/dsp/%.cpp
|
||||
@mkdir -p $(@D)
|
||||
@echo building... $<
|
||||
@iconv -f UTF-8 -t CP932 < $< > $@.iconv.cpp
|
||||
@$(CC) $(CFLAGS) $(LIBDSP_A_CFLAGS) -c -o $@ $@.iconv.cpp
|
||||
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp
|
||||
@$(CC) $(CFLAGS) $(LIBDSP_A_CFLAGS) -c -o $@ $(basename $@).cpp
|
||||
|
||||
|
||||
@@ -38,6 +38,6 @@ $(BUILD_DIR)/libdvd.a: $(LIBDVD_A_O_FILES)
|
||||
$(BUILD_DIR)/libs/dolphin/dvd/%.o: libs/dolphin/dvd/%.cpp
|
||||
@mkdir -p $(@D)
|
||||
@echo building... $<
|
||||
@iconv -f UTF-8 -t CP932 < $< > $@.iconv.cpp
|
||||
@$(CC) $(CFLAGS) $(LIBDVD_A_CFLAGS) -c -o $@ $@.iconv.cpp
|
||||
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp
|
||||
@$(CC) $(CFLAGS) $(LIBDVD_A_CFLAGS) -c -o $@ $(basename $@).cpp
|
||||
|
||||
|
||||
@@ -26,6 +26,6 @@ $(BUILD_DIR)/libgd.a: $(LIBGD_A_O_FILES)
|
||||
$(BUILD_DIR)/libs/dolphin/gd/%.o: libs/dolphin/gd/%.cpp
|
||||
@mkdir -p $(@D)
|
||||
@echo building... $<
|
||||
@iconv -f UTF-8 -t CP932 < $< > $@.iconv.cpp
|
||||
@$(CC) $(CFLAGS) $(LIBGD_A_CFLAGS) -c -o $@ $@.iconv.cpp
|
||||
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp
|
||||
@$(CC) $(CFLAGS) $(LIBGD_A_CFLAGS) -c -o $@ $(basename $@).cpp
|
||||
|
||||
|
||||
@@ -30,6 +30,6 @@ $(BUILD_DIR)/libgf.a: $(LIBGF_A_O_FILES)
|
||||
$(BUILD_DIR)/libs/dolphin/gf/%.o: libs/dolphin/gf/%.cpp
|
||||
@mkdir -p $(@D)
|
||||
@echo building... $<
|
||||
@iconv -f UTF-8 -t CP932 < $< > $@.iconv.cpp
|
||||
@$(CC) $(CFLAGS) $(LIBGF_A_CFLAGS) -c -o $@ $@.iconv.cpp
|
||||
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp
|
||||
@$(CC) $(CFLAGS) $(LIBGF_A_CFLAGS) -c -o $@ $(basename $@).cpp
|
||||
|
||||
|
||||
@@ -50,6 +50,6 @@ $(BUILD_DIR)/libgx.a: $(LIBGX_A_O_FILES)
|
||||
$(BUILD_DIR)/libs/dolphin/gx/%.o: libs/dolphin/gx/%.cpp
|
||||
@mkdir -p $(@D)
|
||||
@echo building... $<
|
||||
@iconv -f UTF-8 -t CP932 < $< > $@.iconv.cpp
|
||||
@$(CC) $(CFLAGS) $(LIBGX_A_CFLAGS) -c -o $@ $@.iconv.cpp
|
||||
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp
|
||||
@$(CC) $(CFLAGS) $(LIBGX_A_CFLAGS) -c -o $@ $(basename $@).cpp
|
||||
|
||||
|
||||
@@ -32,6 +32,6 @@ $(BUILD_DIR)/libmtx.a: $(LIBMTX_A_O_FILES)
|
||||
$(BUILD_DIR)/libs/dolphin/mtx/%.o: libs/dolphin/mtx/%.cpp
|
||||
@mkdir -p $(@D)
|
||||
@echo building... $<
|
||||
@iconv -f UTF-8 -t CP932 < $< > $@.iconv.cpp
|
||||
@$(CC) $(CFLAGS) $(LIBMTX_A_CFLAGS) -c -o $@ $@.iconv.cpp
|
||||
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp
|
||||
@$(CC) $(CFLAGS) $(LIBMTX_A_CFLAGS) -c -o $@ $(basename $@).cpp
|
||||
|
||||
|
||||
@@ -68,6 +68,6 @@ $(BUILD_DIR)/libos.a: $(LIBOS_A_O_FILES)
|
||||
$(BUILD_DIR)/libs/dolphin/os/%.o: libs/dolphin/os/%.cpp
|
||||
@mkdir -p $(@D)
|
||||
@echo building... $<
|
||||
@iconv -f UTF-8 -t CP932 < $< > $@.iconv.cpp
|
||||
@$(CC) $(CFLAGS) $(LIBOS_A_CFLAGS) -c -o $@ $@.iconv.cpp
|
||||
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp
|
||||
@$(CC) $(CFLAGS) $(LIBOS_A_CFLAGS) -c -o $@ $(basename $@).cpp
|
||||
|
||||
|
||||
@@ -26,6 +26,6 @@ $(BUILD_DIR)/libpad.a: $(LIBPAD_A_O_FILES)
|
||||
$(BUILD_DIR)/libs/dolphin/pad/%.o: libs/dolphin/pad/%.cpp
|
||||
@mkdir -p $(@D)
|
||||
@echo building... $<
|
||||
@iconv -f UTF-8 -t CP932 < $< > $@.iconv.cpp
|
||||
@$(CC) $(CFLAGS) $(LIBPAD_A_CFLAGS) -c -o $@ $@.iconv.cpp
|
||||
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp
|
||||
@$(CC) $(CFLAGS) $(LIBPAD_A_CFLAGS) -c -o $@ $(basename $@).cpp
|
||||
|
||||
|
||||
@@ -26,6 +26,6 @@ $(BUILD_DIR)/libsi.a: $(LIBSI_A_O_FILES)
|
||||
$(BUILD_DIR)/libs/dolphin/si/%.o: libs/dolphin/si/%.cpp
|
||||
@mkdir -p $(@D)
|
||||
@echo building... $<
|
||||
@iconv -f UTF-8 -t CP932 < $< > $@.iconv.cpp
|
||||
@$(CC) $(CFLAGS) $(LIBSI_A_CFLAGS) -c -o $@ $@.iconv.cpp
|
||||
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp
|
||||
@$(CC) $(CFLAGS) $(LIBSI_A_CFLAGS) -c -o $@ $(basename $@).cpp
|
||||
|
||||
|
||||
@@ -24,6 +24,6 @@ $(BUILD_DIR)/libvi.a: $(LIBVI_A_O_FILES)
|
||||
$(BUILD_DIR)/libs/dolphin/vi/%.o: libs/dolphin/vi/%.cpp
|
||||
@mkdir -p $(@D)
|
||||
@echo building... $<
|
||||
@iconv -f UTF-8 -t CP932 < $< > $@.iconv.cpp
|
||||
@$(CC) $(CFLAGS) $(LIBVI_A_CFLAGS) -c -o $@ $@.iconv.cpp
|
||||
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp
|
||||
@$(CC) $(CFLAGS) $(LIBVI_A_CFLAGS) -c -o $@ $(basename $@).cpp
|
||||
|
||||
|
||||
+2
-2
@@ -26,6 +26,6 @@ $(BUILD_DIR)/libexi.a: $(LIBEXI_A_O_FILES)
|
||||
$(BUILD_DIR)/libs/exi/%.o: libs/exi/%.cpp
|
||||
@mkdir -p $(@D)
|
||||
@echo building... $<
|
||||
@iconv -f UTF-8 -t CP932 < $< > $@.iconv.cpp
|
||||
@$(CC) $(CFLAGS) $(LIBEXI_A_CFLAGS) -c -o $@ $@.iconv.cpp
|
||||
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp
|
||||
@$(CC) $(CFLAGS) $(LIBEXI_A_CFLAGS) -c -o $@ $(basename $@).cpp
|
||||
|
||||
|
||||
@@ -24,6 +24,6 @@ $(BUILD_DIR)/libodemuexi2.a: $(LIBODEMUEXI2_A_O_FILES)
|
||||
$(BUILD_DIR)/libs/odemuexi2/%.o: libs/odemuexi2/%.cpp
|
||||
@mkdir -p $(@D)
|
||||
@echo building... $<
|
||||
@iconv -f UTF-8 -t CP932 < $< > $@.iconv.cpp
|
||||
@$(CC) $(CFLAGS) $(LIBODEMUEXI2_A_CFLAGS) -c -o $@ $@.iconv.cpp
|
||||
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp
|
||||
@$(CC) $(CFLAGS) $(LIBODEMUEXI2_A_CFLAGS) -c -o $@ $(basename $@).cpp
|
||||
|
||||
|
||||
@@ -24,6 +24,6 @@ $(BUILD_DIR)/libodenotstub.a: $(LIBODENOTSTUB_A_O_FILES)
|
||||
$(BUILD_DIR)/libs/odenotstub/%.o: libs/odenotstub/%.cpp
|
||||
@mkdir -p $(@D)
|
||||
@echo building... $<
|
||||
@iconv -f UTF-8 -t CP932 < $< > $@.iconv.cpp
|
||||
@$(CC) $(CFLAGS) $(LIBODENOTSTUB_A_CFLAGS) -c -o $@ $@.iconv.cpp
|
||||
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp
|
||||
@$(CC) $(CFLAGS) $(LIBODENOTSTUB_A_CFLAGS) -c -o $@ $(basename $@).cpp
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user