mirror of
https://github.com/pmret/papermario.git
synced 2024-11-08 12:02:30 +01:00
commit
abbeb58dd2
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
|
||||
|
||||
-include settings.mk
|
||||
|
||||
@ -68,6 +69,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
|
||||
|
||||
@ -115,14 +125,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
|
||||
@ -269,9 +281,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.
|
||||
|
@ -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
|
||||
|
@ -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()
|
||||
|
||||
|
@ -7348,7 +7348,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