mirror of
https://github.com/pmret/papermario.git
synced 2024-11-18 08:52:40 +01:00
Merge branch 'master' into audio
This commit is contained in:
commit
1c52052c12
4
.gitignore
vendored
4
.gitignore
vendored
@ -27,4 +27,8 @@ settings.mk
|
||||
/msg
|
||||
/sprite
|
||||
|
||||
# Star Rod
|
||||
/sprite/SpriteTable.xml
|
||||
/mod.cfg
|
||||
|
||||
tools/Yay0compress
|
||||
|
5
.gitmodules
vendored
5
.gitmodules
vendored
@ -1,3 +1,6 @@
|
||||
[submodule "tools/n64splat"]
|
||||
path = tools/n64splat
|
||||
url = https://github.com/ethteck/n64splat.git
|
||||
url = https://github.com/ethteck/n64splat.git
|
||||
[submodule "tools/star-rod"]
|
||||
path = tools/star-rod
|
||||
url = https://github.com/nanaian/star-rod-for-decomp.git
|
||||
|
32
Makefile
32
Makefile
@ -7,6 +7,7 @@ TARGET = papermario
|
||||
COMPARE = 1
|
||||
NON_MATCHING = 0
|
||||
WATCH_INCLUDES = 1
|
||||
WSL_ELEVATE_GUI = 1
|
||||
|
||||
# Fail early if baserom does not exist
|
||||
ifeq ($(wildcard $(BASEROM)),)
|
||||
@ -66,6 +67,15 @@ ifeq ($(UNAME_S),Darwin)
|
||||
ICONV := tools/iconv.py UTF-8 SHIFT-JIS
|
||||
endif
|
||||
|
||||
WSL := 0
|
||||
JAVA := java
|
||||
ifeq ($(findstring microsoft,$(shell cat /proc/sys/kernel/osrelease)),microsoft)
|
||||
WSL := 1
|
||||
ifeq ($(WSL_ELEVATE_GUI),1)
|
||||
JAVA := powershell.exe -command java
|
||||
endif
|
||||
endif
|
||||
|
||||
OLD_AS=tools/$(OS)/mips-nintendo-nu64-as
|
||||
CC=tools/$(OS)/cc1
|
||||
|
||||
@ -114,14 +124,16 @@ tools:
|
||||
|
||||
setup: clean submodules tools split $(LD_SCRIPT)
|
||||
|
||||
# tools/star-rod submodule intentionally omitted
|
||||
submodules:
|
||||
git submodule init tools/n64splat
|
||||
git submodule update --init --recursive
|
||||
|
||||
split:
|
||||
$(SPLAT) --modes ld bin Yay0 PaperMarioMapFS PaperMarioMessages img PaperMarioNpcSprites --new
|
||||
|
||||
split-%:
|
||||
$(SPLAT) --modes ld $* --verbose --new
|
||||
$(SPLAT) --modes ld $* --verbose
|
||||
|
||||
split-all:
|
||||
$(SPLAT) --modes all
|
||||
@ -268,9 +280,25 @@ $(BUILD_DIR)/$(TARGET).bin: $(BUILD_DIR)/$(TARGET).elf
|
||||
include/ld_addrs.h: $(BUILD_DIR)/$(LD_SCRIPT)
|
||||
grep -E "[^\. ]+ =" $< -o | sed 's/^/extern void* /; s/ =/;/' > $@
|
||||
|
||||
|
||||
### Star Rod (optional) ###
|
||||
|
||||
STAR_ROD := cd tools/star-rod && $(JAVA) -jar StarRod.jar
|
||||
|
||||
# lazily initialise the submodule
|
||||
tools/star-rod:
|
||||
git submodule init tools/star-rod
|
||||
|
||||
sprite/SpriteTable.xml: tools/star-rod sources.mk
|
||||
$(PYTHON) tools/star-rod/spritetable.xml.py $(NPC_SPRITES) > $@
|
||||
|
||||
editor: tools/star-rod sprite/SpriteTable.xml
|
||||
$(STAR_ROD)
|
||||
|
||||
|
||||
### Make Settings ###
|
||||
|
||||
.PHONY: clean tools test setup submodules split $(ROM) include/sprite
|
||||
.PHONY: clean tools test setup submodules split editor $(ROM) include/sprite
|
||||
.DELETE_ON_ERROR:
|
||||
.SECONDARY:
|
||||
.PRECIOUS: $(ROM) %.Yay0
|
||||
|
@ -42,6 +42,10 @@ $ make
|
||||
|
||||
If you get `OK`, you're all set! Otherwise, please feel free to reach out to us in [our Discord channel](https://discord.gg/urUm3VG).
|
||||
|
||||
## Star Rod GUI
|
||||
|
||||
You can open [our modified version of Star Rod](https://github.com/nanaian/star-rod-for-decomp) with `make editor`.
|
||||
|
||||
## Contributing
|
||||
|
||||
### Dependencies
|
||||
@ -136,4 +140,4 @@ make: *** [verify] Error 1
|
||||
```
|
||||
> 💡 Solution
|
||||
|
||||
> Run `git checkout checksum.sha1` and retry building. Windows has different line endings than Linux, causing some of our tools to break.
|
||||
> Run `git checkout checksum.sha1` and retry building. Windows has different line endings than Linux, causing some of our tools to break.
|
||||
|
@ -1,224 +0,0 @@
|
||||
.set noat # allow manual use of $at
|
||||
.set noreorder # don't insert nops after branches
|
||||
|
||||
glabel initialize_status_menu
|
||||
/* 80DE4 800E7934 27BDFFE0 */ addiu $sp, $sp, -0x20
|
||||
/* 80DE8 800E7938 AFB10014 */ sw $s1, 0x14($sp)
|
||||
/* 80DEC 800E793C 3C118011 */ lui $s1, %hi(gUIStatus)
|
||||
/* 80DF0 800E7940 2631EF58 */ addiu $s1, $s1, %lo(gUIStatus)
|
||||
/* 80DF4 800E7944 2402000C */ addiu $v0, $zero, 0xc
|
||||
/* 80DF8 800E7948 AFBF001C */ sw $ra, 0x1c($sp)
|
||||
/* 80DFC 800E794C AFB20018 */ sw $s2, 0x18($sp)
|
||||
/* 80E00 800E7950 AFB00010 */ sw $s0, 0x10($sp)
|
||||
/* 80E04 800E7954 A6220034 */ sh $v0, 0x34($s1)
|
||||
/* 80E08 800E7958 2402FF9C */ addiu $v0, $zero, -0x64
|
||||
/* 80E0C 800E795C 3C038011 */ lui $v1, %hi(gPlayerData)
|
||||
/* 80E10 800E7960 2463F290 */ addiu $v1, $v1, %lo(gPlayerData)
|
||||
/* 80E14 800E7964 3C018011 */ lui $at, %hi(D_8010CD10)
|
||||
/* 80E18 800E7968 A420CD10 */ sh $zero, %lo(D_8010CD10)($at)
|
||||
/* 80E1C 800E796C 3C018011 */ lui $at, %hi(D_8010CD12)
|
||||
/* 80E20 800E7970 A420CD12 */ sh $zero, %lo(D_8010CD12)($at)
|
||||
/* 80E24 800E7974 A6220036 */ sh $v0, 0x36($s1)
|
||||
/* 80E28 800E7978 A220003A */ sb $zero, 0x3a($s1)
|
||||
/* 80E2C 800E797C 90640010 */ lbu $a0, 0x10($v1)
|
||||
/* 80E30 800E7980 240200D2 */ addiu $v0, $zero, 0xd2
|
||||
/* 80E34 800E7984 A6220038 */ sh $v0, 0x38($s1)
|
||||
/* 80E38 800E7988 A220003B */ sb $zero, 0x3b($s1)
|
||||
/* 80E3C 800E798C A2200044 */ sb $zero, 0x44($s1)
|
||||
/* 80E40 800E7990 A2200045 */ sb $zero, 0x45($s1)
|
||||
/* 80E44 800E7994 A2200046 */ sb $zero, 0x46($s1)
|
||||
/* 80E48 800E7998 A220004A */ sb $zero, 0x4a($s1)
|
||||
/* 80E4C 800E799C A220004B */ sb $zero, 0x4b($s1)
|
||||
/* 80E50 800E79A0 A220004C */ sb $zero, 0x4c($s1)
|
||||
/* 80E54 800E79A4 A220004D */ sb $zero, 0x4d($s1)
|
||||
/* 80E58 800E79A8 A220004E */ sb $zero, 0x4e($s1)
|
||||
/* 80E5C 800E79AC A220004F */ sb $zero, 0x4f($s1)
|
||||
/* 80E60 800E79B0 A2200050 */ sb $zero, 0x50($s1)
|
||||
/* 80E64 800E79B4 A2200051 */ sb $zero, 0x51($s1)
|
||||
/* 80E68 800E79B8 A2200054 */ sb $zero, 0x54($s1)
|
||||
/* 80E6C 800E79BC A2200055 */ sb $zero, 0x55($s1)
|
||||
/* 80E70 800E79C0 A2200056 */ sb $zero, 0x56($s1)
|
||||
/* 80E74 800E79C4 A2200047 */ sb $zero, 0x47($s1)
|
||||
/* 80E78 800E79C8 A2200052 */ sb $zero, 0x52($s1)
|
||||
/* 80E7C 800E79CC 90620002 */ lbu $v0, 2($v1)
|
||||
/* 80E80 800E79D0 90650005 */ lbu $a1, 5($v1)
|
||||
/* 80E84 800E79D4 9466000C */ lhu $a2, 0xc($v1)
|
||||
/* 80E88 800E79D8 94630290 */ lhu $v1, 0x290($v1)
|
||||
/* 80E8C 800E79DC 00042600 */ sll $a0, $a0, 0x18
|
||||
/* 80E90 800E79E0 00042603 */ sra $a0, $a0, 0x18
|
||||
/* 80E94 800E79E4 A222003D */ sb $v0, 0x3d($s1)
|
||||
/* 80E98 800E79E8 2402FFFF */ addiu $v0, $zero, -1
|
||||
/* 80E9C 800E79EC A225003E */ sb $a1, 0x3e($s1)
|
||||
/* 80EA0 800E79F0 A6260040 */ sh $a2, 0x40($s1)
|
||||
/* 80EA4 800E79F4 A6240042 */ sh $a0, 0x42($s1)
|
||||
/* 80EA8 800E79F8 A6230048 */ sh $v1, 0x48($s1)
|
||||
/* 80EAC 800E79FC A2200053 */ sb $zero, 0x53($s1)
|
||||
/* 80EB0 800E7A00 A222006E */ sb $v0, 0x6e($s1)
|
||||
/* 80EB4 800E7A04 2402FFFF */ addiu $v0, $zero, -1
|
||||
/* 80EB8 800E7A08 A220003C */ sb $zero, 0x3c($s1)
|
||||
/* 80EBC 800E7A0C A2200057 */ sb $zero, 0x57($s1)
|
||||
/* 80EC0 800E7A10 A2200058 */ sb $zero, 0x58($s1)
|
||||
/* 80EC4 800E7A14 A2200059 */ sb $zero, 0x59($s1)
|
||||
/* 80EC8 800E7A18 A220005A */ sb $zero, 0x5a($s1)
|
||||
/* 80ECC 800E7A1C A220006C */ sb $zero, 0x6c($s1)
|
||||
/* 80ED0 800E7A20 A220006D */ sb $zero, 0x6d($s1)
|
||||
/* 80ED4 800E7A24 0C03A5EE */ jal func_800E97B8
|
||||
/* 80ED8 800E7A28 AE220064 */ sw $v0, 0x64($s1)
|
||||
/* 80EDC 800E7A2C 3C048011 */ lui $a0, %hi(D_80108248)
|
||||
/* 80EE0 800E7A30 24848248 */ addiu $a0, $a0, %lo(D_80108248)
|
||||
/* 80EE4 800E7A34 0C050529 */ jal create_icon
|
||||
/* 80EE8 800E7A38 00000000 */ nop
|
||||
/* 80EEC 800E7A3C 0040802D */ daddu $s0, $v0, $zero
|
||||
/* 80EF0 800E7A40 0200202D */ daddu $a0, $s0, $zero
|
||||
/* 80EF4 800E7A44 24050080 */ addiu $a1, $zero, 0x80
|
||||
/* 80EF8 800E7A48 0C051280 */ jal set_icon_flags
|
||||
/* 80EFC 800E7A4C AE300000 */ sw $s0, ($s1)
|
||||
/* 80F00 800E7A50 0200202D */ daddu $a0, $s0, $zero
|
||||
/* 80F04 800E7A54 0C05128B */ jal clear_icon_flags
|
||||
/* 80F08 800E7A58 34058000 */ ori $a1, $zero, 0x8000
|
||||
/* 80F0C 800E7A5C 3C048011 */ lui $a0, %hi(D_80108518)
|
||||
/* 80F10 800E7A60 24848518 */ addiu $a0, $a0, %lo(D_80108518)
|
||||
/* 80F14 800E7A64 0C050529 */ jal create_icon
|
||||
/* 80F18 800E7A68 00000000 */ nop
|
||||
/* 80F1C 800E7A6C 0040802D */ daddu $s0, $v0, $zero
|
||||
/* 80F20 800E7A70 0200202D */ daddu $a0, $s0, $zero
|
||||
/* 80F24 800E7A74 24050080 */ addiu $a1, $zero, 0x80
|
||||
/* 80F28 800E7A78 0C051280 */ jal set_icon_flags
|
||||
/* 80F2C 800E7A7C AE300004 */ sw $s0, 4($s1)
|
||||
/* 80F30 800E7A80 0200202D */ daddu $a0, $s0, $zero
|
||||
/* 80F34 800E7A84 0C05128B */ jal clear_icon_flags
|
||||
/* 80F38 800E7A88 34058000 */ ori $a1, $zero, 0x8000
|
||||
/* 80F3C 800E7A8C 3C048011 */ lui $a0, %hi(D_80108270)
|
||||
/* 80F40 800E7A90 24848270 */ addiu $a0, $a0, %lo(D_80108270)
|
||||
/* 80F44 800E7A94 0C050529 */ jal create_icon
|
||||
/* 80F48 800E7A98 00000000 */ nop
|
||||
/* 80F4C 800E7A9C 0040802D */ daddu $s0, $v0, $zero
|
||||
/* 80F50 800E7AA0 0200202D */ daddu $a0, $s0, $zero
|
||||
/* 80F54 800E7AA4 24050080 */ addiu $a1, $zero, 0x80
|
||||
/* 80F58 800E7AA8 0C051280 */ jal set_icon_flags
|
||||
/* 80F5C 800E7AAC AE300008 */ sw $s0, 8($s1)
|
||||
/* 80F60 800E7AB0 0200202D */ daddu $a0, $s0, $zero
|
||||
/* 80F64 800E7AB4 0C05128B */ jal clear_icon_flags
|
||||
/* 80F68 800E7AB8 34058000 */ ori $a1, $zero, 0x8000
|
||||
/* 80F6C 800E7ABC 3C048011 */ lui $a0, %hi(D_80108538)
|
||||
/* 80F70 800E7AC0 24848538 */ addiu $a0, $a0, %lo(D_80108538)
|
||||
/* 80F74 800E7AC4 0C050529 */ jal create_icon
|
||||
/* 80F78 800E7AC8 00000000 */ nop
|
||||
/* 80F7C 800E7ACC 0040802D */ daddu $s0, $v0, $zero
|
||||
/* 80F80 800E7AD0 0200202D */ daddu $a0, $s0, $zero
|
||||
/* 80F84 800E7AD4 24050080 */ addiu $a1, $zero, 0x80
|
||||
/* 80F88 800E7AD8 0C051280 */ jal set_icon_flags
|
||||
/* 80F8C 800E7ADC AE30000C */ sw $s0, 0xc($s1)
|
||||
/* 80F90 800E7AE0 0200202D */ daddu $a0, $s0, $zero
|
||||
/* 80F94 800E7AE4 0C05128B */ jal clear_icon_flags
|
||||
/* 80F98 800E7AE8 34058000 */ ori $a1, $zero, 0x8000
|
||||
/* 80F9C 800E7AEC 3C048011 */ lui $a0, %hi(D_80108558)
|
||||
/* 80FA0 800E7AF0 24848558 */ addiu $a0, $a0, %lo(D_80108558)
|
||||
/* 80FA4 800E7AF4 0C050529 */ jal create_icon
|
||||
/* 80FA8 800E7AF8 00000000 */ nop
|
||||
/* 80FAC 800E7AFC 0040802D */ daddu $s0, $v0, $zero
|
||||
/* 80FB0 800E7B00 0200202D */ daddu $a0, $s0, $zero
|
||||
/* 80FB4 800E7B04 24050080 */ addiu $a1, $zero, 0x80
|
||||
/* 80FB8 800E7B08 0C051280 */ jal set_icon_flags
|
||||
/* 80FBC 800E7B0C AE300010 */ sw $s0, 0x10($s1)
|
||||
/* 80FC0 800E7B10 0200202D */ daddu $a0, $s0, $zero
|
||||
/* 80FC4 800E7B14 0C05128B */ jal clear_icon_flags
|
||||
/* 80FC8 800E7B18 34058000 */ ori $a1, $zero, 0x8000
|
||||
/* 80FCC 800E7B1C 3C048008 */ lui $a0, %hi(D_80080FC4)
|
||||
/* 80FD0 800E7B20 24840FC4 */ addiu $a0, $a0, %lo(D_80080FC4)
|
||||
/* 80FD4 800E7B24 0C050529 */ jal create_icon
|
||||
/* 80FD8 800E7B28 00000000 */ nop
|
||||
/* 80FDC 800E7B2C 0040802D */ daddu $s0, $v0, $zero
|
||||
/* 80FE0 800E7B30 0200202D */ daddu $a0, $s0, $zero
|
||||
/* 80FE4 800E7B34 24050080 */ addiu $a1, $zero, 0x80
|
||||
/* 80FE8 800E7B38 0C051280 */ jal set_icon_flags
|
||||
/* 80FEC 800E7B3C AE300014 */ sw $s0, 0x14($s1)
|
||||
/* 80FF0 800E7B40 0200202D */ daddu $a0, $s0, $zero
|
||||
/* 80FF4 800E7B44 0C05128B */ jal clear_icon_flags
|
||||
/* 80FF8 800E7B48 34058000 */ ori $a1, $zero, 0x8000
|
||||
/* 80FFC 800E7B4C 3C048011 */ lui $a0, %hi(D_801086AC)
|
||||
/* 81000 800E7B50 248486AC */ addiu $a0, $a0, %lo(D_801086AC)
|
||||
/* 81004 800E7B54 0C050529 */ jal create_icon
|
||||
/* 81008 800E7B58 00000000 */ nop
|
||||
/* 8100C 800E7B5C 0040802D */ daddu $s0, $v0, $zero
|
||||
/* 81010 800E7B60 0200202D */ daddu $a0, $s0, $zero
|
||||
/* 81014 800E7B64 24050080 */ addiu $a1, $zero, 0x80
|
||||
/* 81018 800E7B68 0C051280 */ jal set_icon_flags
|
||||
/* 8101C 800E7B6C AE300018 */ sw $s0, 0x18($s1)
|
||||
/* 81020 800E7B70 0200202D */ daddu $a0, $s0, $zero
|
||||
/* 81024 800E7B74 0C05128B */ jal clear_icon_flags
|
||||
/* 81028 800E7B78 34058000 */ ori $a1, $zero, 0x8000
|
||||
/* 8102C 800E7B7C 3C048010 */ lui $a0, %hi(D_80104BEC)
|
||||
/* 81030 800E7B80 24844BEC */ addiu $a0, $a0, %lo(D_80104BEC)
|
||||
/* 81034 800E7B84 0C050529 */ jal create_icon
|
||||
/* 81038 800E7B88 00000000 */ nop
|
||||
/* 8103C 800E7B8C 0040802D */ daddu $s0, $v0, $zero
|
||||
/* 81040 800E7B90 0200202D */ daddu $a0, $s0, $zero
|
||||
/* 81044 800E7B94 24050080 */ addiu $a1, $zero, 0x80
|
||||
/* 81048 800E7B98 0C051280 */ jal set_icon_flags
|
||||
/* 8104C 800E7B9C AE30001C */ sw $s0, 0x1c($s1)
|
||||
/* 81050 800E7BA0 0200202D */ daddu $a0, $s0, $zero
|
||||
/* 81054 800E7BA4 0C05128B */ jal clear_icon_flags
|
||||
/* 81058 800E7BA8 34058000 */ ori $a1, $zero, 0x8000
|
||||
/* 8105C 800E7BAC 3C128011 */ lui $s2, %hi(D_80108068)
|
||||
/* 81060 800E7BB0 26528068 */ addiu $s2, $s2, %lo(D_80108068)
|
||||
/* 81064 800E7BB4 0C050529 */ jal create_icon
|
||||
/* 81068 800E7BB8 0240202D */ daddu $a0, $s2, $zero
|
||||
/* 8106C 800E7BBC 0040802D */ daddu $s0, $v0, $zero
|
||||
/* 81070 800E7BC0 0200202D */ daddu $a0, $s0, $zero
|
||||
/* 81074 800E7BC4 24050082 */ addiu $a1, $zero, 0x82
|
||||
/* 81078 800E7BC8 0C051280 */ jal set_icon_flags
|
||||
/* 8107C 800E7BCC AE300020 */ sw $s0, 0x20($s1)
|
||||
/* 81080 800E7BD0 0200202D */ daddu $a0, $s0, $zero
|
||||
/* 81084 800E7BD4 0C05128B */ jal clear_icon_flags
|
||||
/* 81088 800E7BD8 34058000 */ ori $a1, $zero, 0x8000
|
||||
/* 8108C 800E7BDC 0C050529 */ jal create_icon
|
||||
/* 81090 800E7BE0 0240202D */ daddu $a0, $s2, $zero
|
||||
/* 81094 800E7BE4 0040802D */ daddu $s0, $v0, $zero
|
||||
/* 81098 800E7BE8 0200202D */ daddu $a0, $s0, $zero
|
||||
/* 8109C 800E7BEC 24050082 */ addiu $a1, $zero, 0x82
|
||||
/* 810A0 800E7BF0 0C051280 */ jal set_icon_flags
|
||||
/* 810A4 800E7BF4 AE300024 */ sw $s0, 0x24($s1)
|
||||
/* 810A8 800E7BF8 0200202D */ daddu $a0, $s0, $zero
|
||||
/* 810AC 800E7BFC 0C05128B */ jal clear_icon_flags
|
||||
/* 810B0 800E7C00 34058000 */ ori $a1, $zero, 0x8000
|
||||
/* 810B4 800E7C04 0C050529 */ jal create_icon
|
||||
/* 810B8 800E7C08 0240202D */ daddu $a0, $s2, $zero
|
||||
/* 810BC 800E7C0C 0040802D */ daddu $s0, $v0, $zero
|
||||
/* 810C0 800E7C10 0200202D */ daddu $a0, $s0, $zero
|
||||
/* 810C4 800E7C14 24050082 */ addiu $a1, $zero, 0x82
|
||||
/* 810C8 800E7C18 0C051280 */ jal set_icon_flags
|
||||
/* 810CC 800E7C1C AE300028 */ sw $s0, 0x28($s1)
|
||||
/* 810D0 800E7C20 0200202D */ daddu $a0, $s0, $zero
|
||||
/* 810D4 800E7C24 0C05128B */ jal clear_icon_flags
|
||||
/* 810D8 800E7C28 34058000 */ ori $a1, $zero, 0x8000
|
||||
/* 810DC 800E7C2C 0C050529 */ jal create_icon
|
||||
/* 810E0 800E7C30 0240202D */ daddu $a0, $s2, $zero
|
||||
/* 810E4 800E7C34 0040802D */ daddu $s0, $v0, $zero
|
||||
/* 810E8 800E7C38 0200202D */ daddu $a0, $s0, $zero
|
||||
/* 810EC 800E7C3C 24050082 */ addiu $a1, $zero, 0x82
|
||||
/* 810F0 800E7C40 0C051280 */ jal set_icon_flags
|
||||
/* 810F4 800E7C44 AE30002C */ sw $s0, 0x2c($s1)
|
||||
/* 810F8 800E7C48 0200202D */ daddu $a0, $s0, $zero
|
||||
/* 810FC 800E7C4C 0C05128B */ jal clear_icon_flags
|
||||
/* 81100 800E7C50 34058000 */ ori $a1, $zero, 0x8000
|
||||
/* 81104 800E7C54 3C048011 */ lui $a0, %hi(D_801083D8)
|
||||
/* 81108 800E7C58 248483D8 */ addiu $a0, $a0, %lo(D_801083D8)
|
||||
/* 8110C 800E7C5C 0C050529 */ jal create_icon
|
||||
/* 81110 800E7C60 00000000 */ nop
|
||||
/* 81114 800E7C64 0040802D */ daddu $s0, $v0, $zero
|
||||
/* 81118 800E7C68 0200202D */ daddu $a0, $s0, $zero
|
||||
/* 8111C 800E7C6C 24050080 */ addiu $a1, $zero, 0x80
|
||||
/* 81120 800E7C70 0C051280 */ jal set_icon_flags
|
||||
/* 81124 800E7C74 AE300030 */ sw $s0, 0x30($s1)
|
||||
/* 81128 800E7C78 0200202D */ daddu $a0, $s0, $zero
|
||||
/* 8112C 800E7C7C 0C05128B */ jal clear_icon_flags
|
||||
/* 81130 800E7C80 34058000 */ ori $a1, $zero, 0x8000
|
||||
/* 81134 800E7C84 0C03C357 */ jal func_800F0D5C
|
||||
/* 81138 800E7C88 00000000 */ nop
|
||||
/* 8113C 800E7C8C 8FBF001C */ lw $ra, 0x1c($sp)
|
||||
/* 81140 800E7C90 8FB20018 */ lw $s2, 0x18($sp)
|
||||
/* 81144 800E7C94 8FB10014 */ lw $s1, 0x14($sp)
|
||||
/* 81148 800E7C98 8FB00010 */ lw $s0, 0x10($sp)
|
||||
/* 8114C 800E7C9C 03E00008 */ jr $ra
|
||||
/* 81150 800E7CA0 27BD0020 */ addiu $sp, $sp, 0x20
|
@ -80,8 +80,10 @@ void fx_walk_normal(s32 arg0, f32 arg1, f32 arg2, f32 arg3, s32 arg4, s32 arg5);
|
||||
void fx_emote(s32, Npc*, s32, f32, f32, f32, f32, s32, s32*);
|
||||
|
||||
f32 func_800E0088(f32, f32);
|
||||
void func_800E97B8(void);
|
||||
s32 func_800EB168(s32);
|
||||
|
||||
|
||||
PlayerData* get_player_data(void);
|
||||
|
||||
// Pause
|
||||
|
@ -22,6 +22,7 @@
|
||||
#define BATTLE_STATUS (&gBattleStatus)
|
||||
#define GAME_STATUS (*gGameStatusPtr)
|
||||
#define PLAYER_STATUS (&gPlayerStatus)
|
||||
#define UI_STATUS (&gUIStatus)
|
||||
#define PLAYER_DATA (&gPlayerData)
|
||||
#define CAM(id) (&gCameras[id])
|
||||
#define CURRENT_CAM (&gCameras[gCurrentCameraID])
|
||||
|
@ -195,6 +195,15 @@ extern UNK_TYPE D_80147474;
|
||||
extern UNK_TYPE D_80147574;
|
||||
extern UNK_TYPE D_80109270;
|
||||
extern UNK_TYPE D_80108558;
|
||||
extern s32 D_80108248;
|
||||
extern s32 D_80108518;
|
||||
extern s32 D_80108270;
|
||||
extern s32 D_80108538;
|
||||
extern s32 D_80080FC4;
|
||||
extern s32 D_801086AC;
|
||||
extern s32 D_801083D8;
|
||||
extern s32 D_80108068;
|
||||
extern s32 D_80104BEC;
|
||||
extern UNK_TYPE D_8010F250; // play_sound state struct?
|
||||
extern s8 D_8010EBB0[];
|
||||
|
||||
|
@ -58,7 +58,7 @@ ASSETS := \
|
||||
|
||||
MESSAGES := $(shell find msg -type f -name "*.msg" 2> /dev/null)
|
||||
|
||||
NPC_SPRITES := world_goombario world_kooper world_bombette world_parakarry world_bow world_watt world_sushi world_lakilester battle_goombario battle_kooper battle_bombette battle_parakarry battle_bow battle_watt battle_sushi battle_lakilester kooper_without_shell world_eldstar world_mamar world_skolar world_muskular world_misstar world_klevar world_kalmar battle_eldstar battle_mamar battle_skolar battle_muskular battle_misstar battle_klevar battle_kalmar twink jr_troopa spiked_jr_troopa spiked_para_jr_troopa mage_jr_troopa para_jr_troopa goomba spiked_goomba paragoomba koopa_troopa para_troopa fuzzy bob_omb bullet_bill bill_blaster monty_mole cleft pokey battle_bandit buzzy_beetle swooper stone_chomp putrid_piranha piranha_plant sentinel world_clubba battle_clubba shy_guy groove_guy sky_guy pyro_guy spy_guy medi_guy fuzzipede jungle_guy heart_plant hurt_plant m_bush bubble kent_c_koopa dayzee lakitu spiny bzzap ruff_puff spike_top duplighost albino_dino blooper baby_blooper gulpit dry_bones thrown_bone bony_beetle magikoopa flying_magikoopa world_koopatrol koopatrol hammer_bros bush_basic bush_blocky bush_dry bush_leafy bush_matted world_kammy battle_kammy goomba_bros goomba_king spiky_goomnut dark_toad koopa_bros buzzar tutankoopa chain_chomp world_tubba battle_tubba tubbas_heart big_lantern_ghost shy_squad_guy marshal_guy stilt_guy stilt_guy_unfold shy_stack_guy shy_stack_unfold shy_stack_damage shy_stack_rock general_guy general_guy_bomb tank_guy lava_piranha_head petit_piranha lava_bud huff_n_puff tuff_puff monstar crystal_king world_bowser battle_bowser luigi toad three_sisters vanna_t toad_kid toad_guard harry_t toad_minister postmaster conductor_toad train_station_toad fishmael artist_toad koopa koopa_without_shell world_bob_omb whacka dryite mouser boo yoshi yoshi_kid raven bubulb penguin shiver_toad world_bandit goompapa goombaria goomama goompa goomma the_master chan lee merlon chet_rippo rowf minh_t russ_t tayce_t fice_t bartender chanterelle rip_cheato chuck_quizmo merluvlee merlar merlow star_kid kolorado_wife koopa_koot kolorado battle_kolorado archeologist nomadimouse world_merlee battle_merlee disguised_moustafa moustafa oaklie bootler yakkey gourmet_guy village_leader leaders_friend rafael_raven tolielup gate_flower petunia posie lily rosie sun lakilulu ninji mayor_penguin mayor_penguin_wife penguin_patrol herringway merle star_rod fire coin parade_peach parade_koopas parade_burnt_bowser parade_luigi parade_partners parade_yoshis parada_kolorados parade_chicks parade_ice_show parade_toads parade_batons parade_drums parade_flags parade_horns parade_tubba_balloon parade_wizards parade_mario parade_shy_guys parade_twink leaf
|
||||
NPC_SPRITES := world_goombario world_kooper world_bombette world_parakarry world_bow world_watt world_sushi world_lakilester battle_goombario battle_kooper battle_bombette battle_parakarry battle_bow battle_watt battle_sushi battle_lakilester kooper_without_shell world_eldstar world_mamar world_skolar world_muskular world_misstar world_klevar world_kalmar battle_eldstar battle_mamar battle_skolar battle_muskular battle_misstar battle_klevar battle_kalmar twink jr_troopa spiked_jr_troopa spiked_para_jr_troopa mage_jr_troopa para_jr_troopa goomba spiked_goomba paragoomba koopa_troopa para_troopa fuzzy bob_omb bullet_bill bill_blaster monty_mole cleft pokey battle_bandit buzzy_beetle swooper stone_chomp putrid_piranha piranha_plant sentinel world_clubba battle_clubba shy_guy groove_guy sky_guy pyro_guy spy_guy medi_guy fuzzipede jungle_guy heart_plant hurt_plant m_bush bubble kent_c_koopa dayzee lakitu spiny bzzap ruff_puff spike_top duplighost albino_dino blooper baby_blooper gulpit dry_bones thrown_bone bony_beetle magikoopa flying_magikoopa world_koopatrol koopatrol hammer_bros bush_basic bush_blocky bush_dry bush_leafy bush_matted world_kammy battle_kammy goomba_bros goomba_king spiky_goomnut dark_toad koopa_bros buzzar tutankoopa chain_chomp world_tubba battle_tubba tubbas_heart big_lantern_ghost shy_squad_guy marshal_guy stilt_guy stilt_guy_unfold shy_stack_guy shy_stack_unfold shy_stack_damage shy_stack_rock general_guy general_guy_bomb tank_guy lava_piranha_head petit_piranha lava_bud huff_n_puff tuff_puff monstar crystal_king world_bowser battle_bowser luigi toad three_sisters vanna_t toad_kid toad_guard harry_t toad_minister postmaster conductor_toad train_station_toad fishmael artist_toad koopa koopa_without_shell world_bob_omb whacka dryite mouser boo yoshi yoshi_kid raven bubulb penguin shiver_toad world_bandit goompapa goombaria goomama goompa goomma the_master chan lee merlon chet_rippo rowf minh_t russ_t tayce_t fice_t bartender chanterelle rip_cheato chuck_quizmo merluvlee merlar merlow star_kid kolorado_wife koopa_koot kolorado battle_kolorado archeologist nomadimouse world_merlee battle_merlee disguised_moustafa moustafa oaklie bootler yakkey gourmet_guy village_leader leaders_friend rafael_raven tolielup gate_flower petunia posie lily rosie sun lakilulu ninji mayor_penguin mayor_penguin_wife penguin_patrol herringway merle star_rod fire coin parade_peach parade_koopas parade_burnt_bowser parade_luigi parade_partners parade_yoshis parade_kolorados parade_chicks parade_ice_show parade_toads parade_batons parade_drums parade_flags parade_horns parade_tubba_balloon parade_wizards parade_mario parade_shy_guys parade_twink leaf
|
||||
|
||||
# Image settings
|
||||
$(BUILD_DIR)/img/battle/text_action_command_ratings.ia4.png: IMG_FLAGS = --flip-y
|
||||
|
@ -268,7 +268,121 @@ void enforce_hpfp_limits(void) {
|
||||
}
|
||||
}
|
||||
|
||||
INCLUDE_ASM(s32, "code_80850_len_3060", initialize_status_menu);
|
||||
void initialize_status_menu(void) {
|
||||
UiStatus* uiStatus = UI_STATUS;
|
||||
PlayerData* playerData = PLAYER_DATA;
|
||||
s32 iconIndex;
|
||||
s32 newVar;
|
||||
|
||||
uiStatus->drawPosX = 12;
|
||||
D_8010CD10 = 0;
|
||||
D_8010CD12 = 0;
|
||||
uiStatus->drawPosY = -100;
|
||||
uiStatus->hidden = 0;
|
||||
uiStatus->showTimer = 210;
|
||||
uiStatus->unk_3B[0] = 0;
|
||||
uiStatus->ignoreChanges = 0;
|
||||
uiStatus->unk_45[0] = 0;
|
||||
uiStatus->unk_45[1] = 0;
|
||||
uiStatus->hpBlinking = 0;
|
||||
uiStatus->hpBlinkCounter = 0;
|
||||
uiStatus->hpBlinkTimer = 0;
|
||||
uiStatus->fpBlinking = 0;
|
||||
uiStatus->fpBlinkCounter = 0;
|
||||
uiStatus->fpBlinkTimer = 0;
|
||||
uiStatus->spBlinking = 0;
|
||||
uiStatus->spBlinkCounter = 0;
|
||||
uiStatus->coinsBlinking = 0;
|
||||
uiStatus->coinsBlinkCounter = 0;
|
||||
uiStatus->coinsBlinkTimer = 0;
|
||||
uiStatus->disabled = 0;
|
||||
uiStatus->starpointsBlinking = 0;
|
||||
uiStatus->displayHP = playerData->curHP;
|
||||
uiStatus->displayFP = playerData->curFP;
|
||||
uiStatus->displayCoins = playerData->coins;
|
||||
uiStatus->displayStarpoints = playerData->starPoints;
|
||||
uiStatus->displaySP = playerData->specialBarsFilled;
|
||||
uiStatus->starpointsBlinkCounter = 0;
|
||||
uiStatus->unk_6C[2] = -1;
|
||||
uiStatus->unk_3B[1] = 0;
|
||||
uiStatus->unk_57[0] = 0;
|
||||
uiStatus->unk_57[1] = 0;
|
||||
uiStatus->unk_57[2] = 0;
|
||||
uiStatus->unk_57[3] = 0;
|
||||
uiStatus->unk_6C[0] = 0;
|
||||
uiStatus->unk_6C[1] = 0;
|
||||
uiStatus->iconIndex12 = -1;
|
||||
|
||||
func_800E97B8();
|
||||
|
||||
iconIndex = create_icon(&D_80108248);
|
||||
uiStatus->hpIconIndexes[0] = iconIndex;
|
||||
set_icon_flags(iconIndex, 0x80);
|
||||
clear_icon_flags(iconIndex, 0x8000);
|
||||
|
||||
iconIndex = create_icon(&D_80108518);
|
||||
uiStatus->hpIconIndexes[1] = iconIndex;
|
||||
set_icon_flags(iconIndex, 0x80);
|
||||
clear_icon_flags(iconIndex, 0x8000);
|
||||
|
||||
iconIndex = create_icon(&D_80108270);
|
||||
uiStatus->fpIconIndexes[0] = iconIndex;
|
||||
set_icon_flags(iconIndex, 0x80);
|
||||
clear_icon_flags(iconIndex, 0x8000);
|
||||
|
||||
iconIndex = create_icon(&D_80108538);
|
||||
uiStatus->fpIconIndexes[1] = iconIndex;
|
||||
set_icon_flags(iconIndex, 0x80);
|
||||
clear_icon_flags(iconIndex, 0x8000);
|
||||
|
||||
iconIndex = create_icon(&D_80108558);
|
||||
uiStatus->coinIconIndex = iconIndex;
|
||||
set_icon_flags(iconIndex, 0x80);
|
||||
clear_icon_flags(iconIndex, 0x8000);
|
||||
|
||||
iconIndex = create_icon(&D_80080FC4);
|
||||
uiStatus->coinIconIndex2 = iconIndex;
|
||||
set_icon_flags(iconIndex, 0x80);
|
||||
clear_icon_flags(iconIndex, 0x8000);
|
||||
|
||||
iconIndex = create_icon(&D_801086AC);
|
||||
uiStatus->starpointsIconIndex = iconIndex;
|
||||
set_icon_flags(iconIndex, 0x80);
|
||||
clear_icon_flags(iconIndex, 0x8000);
|
||||
|
||||
iconIndex = create_icon(&D_80104BEC);
|
||||
uiStatus->starpointsIconIndex2 = iconIndex;
|
||||
set_icon_flags(iconIndex, 0x80);
|
||||
clear_icon_flags(iconIndex, 0x8000);
|
||||
|
||||
newVar = create_icon(&D_80108068);
|
||||
iconIndex = newVar;
|
||||
uiStatus->iconIndex8 = iconIndex;
|
||||
set_icon_flags(iconIndex, 0x82);
|
||||
clear_icon_flags(iconIndex, 0x8000);
|
||||
|
||||
iconIndex = create_icon(&D_80108068);
|
||||
uiStatus->iconIndex9 = iconIndex;
|
||||
set_icon_flags(iconIndex, 0x82);
|
||||
clear_icon_flags(iconIndex, 0x8000);
|
||||
|
||||
iconIndex = create_icon(&D_80108068);
|
||||
uiStatus->iconIndexA = iconIndex;
|
||||
set_icon_flags(iconIndex, 0x82);
|
||||
clear_icon_flags(iconIndex, 0x8000);
|
||||
|
||||
iconIndex = create_icon(&D_80108068);
|
||||
uiStatus->iconIndexB = iconIndex;
|
||||
set_icon_flags(iconIndex, 0x82);
|
||||
clear_icon_flags(iconIndex, 0x8000);
|
||||
|
||||
iconIndex = create_icon(&D_801083D8);
|
||||
uiStatus->iconIndexC = iconIndex;
|
||||
set_icon_flags(iconIndex, 0x80);
|
||||
clear_icon_flags(iconIndex, 0x8000);
|
||||
|
||||
func_800F0D5C();
|
||||
}
|
||||
|
||||
INCLUDE_ASM(s32, "code_80850_len_3060", status_menu_draw_number);
|
||||
|
||||
|
@ -46,9 +46,9 @@ if __name__ == "__main__":
|
||||
|
||||
f.write(offset.to_bytes(4, byteorder="big"))
|
||||
f.write((len(comp.commands) * 2).to_bytes(2, byteorder="big"))
|
||||
f.write(comp.x.to_bytes(2, byteorder="big"))
|
||||
f.write(comp.y.to_bytes(2, byteorder="big"))
|
||||
f.write(comp.z.to_bytes(2, byteorder="big"))
|
||||
f.write(comp.x.to_bytes(2, byteorder="big", signed=True))
|
||||
f.write(comp.y.to_bytes(2, byteorder="big", signed=True))
|
||||
f.write(comp.z.to_bytes(2, byteorder="big", signed=True))
|
||||
|
||||
next_anim = f.tell()
|
||||
|
||||
|
@ -7355,7 +7355,7 @@ segments:
|
||||
- parade_luigi
|
||||
- parade_partners
|
||||
- parade_yoshis
|
||||
- parada_kolorados
|
||||
- parade_kolorados
|
||||
- parade_chicks
|
||||
- parade_ice_show
|
||||
- parade_toads
|
||||
|
@ -241,9 +241,9 @@ class Component:
|
||||
commands_data = sprite_data[commands_offset : commands_offset + commands_size]
|
||||
self.commands = [int.from_bytes(d[0:2], byteorder="big") for d in iter_in_groups(commands_data, 2)]
|
||||
|
||||
self.x = int.from_bytes(data[6:8], byteorder="big")
|
||||
self.y = int.from_bytes(data[8:10], byteorder="big")
|
||||
self.z = int.from_bytes(data[10:12], byteorder="big")
|
||||
self.x = int.from_bytes(data[6:8], byteorder="big", signed=True)
|
||||
self.y = int.from_bytes(data[8:10], byteorder="big", signed=True)
|
||||
self.z = int.from_bytes(data[10:12], byteorder="big", signed=True)
|
||||
|
||||
return self
|
||||
|
||||
|
1
tools/star-rod
Submodule
1
tools/star-rod
Submodule
@ -0,0 +1 @@
|
||||
Subproject commit aec5d4c037e95227fb5f118075564031636697fe
|
Loading…
Reference in New Issue
Block a user