mirror of
https://github.com/pmret/papermario.git
synced 2024-11-08 20:12:30 +01:00
match npc sprites
This commit is contained in:
parent
87023d8be2
commit
87cc5ed999
1
.gitignore
vendored
1
.gitignore
vendored
@ -23,3 +23,4 @@ settings.mk
|
|||||||
/bin
|
/bin
|
||||||
/img
|
/img
|
||||||
/msg
|
/msg
|
||||||
|
/sprite
|
||||||
|
3
.vscode/settings.json
vendored
3
.vscode/settings.json
vendored
@ -18,4 +18,7 @@
|
|||||||
"build": true,
|
"build": true,
|
||||||
"docs/doxygen": true,
|
"docs/doxygen": true,
|
||||||
},
|
},
|
||||||
|
"python.autoComplete.extraPaths": [
|
||||||
|
"./tools"
|
||||||
|
],
|
||||||
}
|
}
|
||||||
|
28
Makefile
28
Makefile
@ -35,7 +35,8 @@ LD_SCRIPT := $(TARGET).ld
|
|||||||
LD_MAP := $(BUILD_DIR)/$(TARGET).map
|
LD_MAP := $(BUILD_DIR)/$(TARGET).map
|
||||||
ASSETS_BIN := $(BUILD_DIR)/bin/assets/assets.bin
|
ASSETS_BIN := $(BUILD_DIR)/bin/assets/assets.bin
|
||||||
MSG_BIN := $(BUILD_DIR)/msg.bin
|
MSG_BIN := $(BUILD_DIR)/msg.bin
|
||||||
GENERATED_HEADERS := include/ld_addrs.h
|
NPC_BIN := $(BUILD_DIR)/sprite/npc.bin
|
||||||
|
GENERATED_HEADERS := include/ld_addrs.h include/npc_animations.h
|
||||||
|
|
||||||
### Tools ###
|
### Tools ###
|
||||||
|
|
||||||
@ -99,14 +100,14 @@ submodules:
|
|||||||
git submodule update --init --recursive
|
git submodule update --init --recursive
|
||||||
|
|
||||||
split:
|
split:
|
||||||
rm -rf bin img
|
rm -rf bin msg img sprite
|
||||||
$(SPLAT) --modes bin Yay0 PaperMarioMapFS PaperMarioMessages img
|
$(SPLAT) --modes ld bin Yay0 PaperMarioMapFS PaperMarioMessages img PaperMarioNpcSprites
|
||||||
|
|
||||||
split-%:
|
split-%:
|
||||||
$(SPLAT) --modes $* --verbose
|
$(SPLAT) --modes ld $* --verbose
|
||||||
|
|
||||||
split-all:
|
split-all:
|
||||||
rm -rf bin img
|
rm -rf bin msg img sprite
|
||||||
$(SPLAT) --modes all
|
$(SPLAT) --modes all
|
||||||
|
|
||||||
test: $(ROM)
|
test: $(ROM)
|
||||||
@ -198,11 +199,24 @@ $(MSG_BIN): $(MESSAGES)
|
|||||||
@echo "building $@"
|
@echo "building $@"
|
||||||
@$(PYTHON) tools/compile_messages.py $@ /dev/null $(MESSAGES)
|
@$(PYTHON) tools/compile_messages.py $@ /dev/null $(MESSAGES)
|
||||||
$(MSG_BIN:.bin=.o): $(MSG_BIN)
|
$(MSG_BIN:.bin=.o): $(MSG_BIN)
|
||||||
@mkdir -p $(shell dirname $@)
|
|
||||||
$(LD) -r -b binary -o $@ $<
|
$(LD) -r -b binary -o $@ $<
|
||||||
|
|
||||||
$(LD_SCRIPT): $(SPLAT_YAML)
|
# Sprites
|
||||||
|
$(foreach npc, $(NPC_SPRITES), $(eval sprite/npc/$(npc): $(shell find sprite/npc/$(npc) -type f))) # dependencies
|
||||||
|
NPC_DIRS := $(foreach npc, $(NPC_SPRITES), $(BUILD_DIR)/sprite/npc/$(npc))
|
||||||
|
$(BUILD_DIR)/sprite/npc/%: sprite/npc/%
|
||||||
@mkdir -p $(shell dirname $@)
|
@mkdir -p $(shell dirname $@)
|
||||||
|
$(PYTHON) tools/compile_npc_sprite.py $@ $<
|
||||||
|
$(NPC_BIN): $(foreach dir, $(NPC_DIRS), $(dir).Yay0) tools/compile_npc_sprites.py
|
||||||
|
@mkdir -p $(shell dirname $@)
|
||||||
|
@echo "building $@"
|
||||||
|
@$(PYTHON) tools/compile_npc_sprites.py $@ $(foreach dir, $(NPC_DIRS), $(dir).Yay0)
|
||||||
|
$(NPC_BIN:.bin=.o): $(NPC_BIN)
|
||||||
|
$(LD) -r -b binary -o $@ $<
|
||||||
|
include/npc_animations.h: $(NPC_DIRS)
|
||||||
|
@echo "TODO"
|
||||||
|
|
||||||
|
$(LD_SCRIPT): $(SPLAT_YAML)
|
||||||
$(SPLAT) --modes ld
|
$(SPLAT) --modes ld
|
||||||
|
|
||||||
$(BUILD_DIR)/$(LD_SCRIPT): $(LD_SCRIPT)
|
$(BUILD_DIR)/$(LD_SCRIPT): $(LD_SCRIPT)
|
||||||
|
@ -58,5 +58,7 @@ ASSETS := \
|
|||||||
|
|
||||||
MESSAGES := $(shell find msg -type f -name "*.msg")
|
MESSAGES := $(shell find msg -type f -name "*.msg")
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
# Image settings
|
# Image settings
|
||||||
$(BUILD_DIR)/img/battle/text_action_command_ratings.ia4.png: IMG_FLAGS = --flip-y
|
$(BUILD_DIR)/img/battle/text_action_command_ratings.ia4.png: IMG_FLAGS = --flip-y
|
||||||
|
115
tools/compile_npc_sprite.py
Executable file
115
tools/compile_npc_sprite.py
Executable file
@ -0,0 +1,115 @@
|
|||||||
|
#! /usr/bin/python3
|
||||||
|
|
||||||
|
from sys import argv, path
|
||||||
|
from pathlib import Path
|
||||||
|
import os
|
||||||
|
path.append(os.path.join(os.path.dirname(__file__), "n64splat"))
|
||||||
|
from n64splat.segtypes.PaperMarioNpcSprites import Sprite
|
||||||
|
from convert_image import pack_color, iter_in_groups
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
if len(argv) != 3:
|
||||||
|
print("usage: compile_npc_sprite.py [OUTBIN] [DIR]")
|
||||||
|
exit(1)
|
||||||
|
|
||||||
|
_, outfile, sprite_dir = argv
|
||||||
|
|
||||||
|
try:
|
||||||
|
sprite = Sprite.from_dir(Path(sprite_dir))
|
||||||
|
except AssertionError as e:
|
||||||
|
print("error:", e)
|
||||||
|
exit(1)
|
||||||
|
|
||||||
|
with open(outfile, "wb") as f:
|
||||||
|
f.seek(0x10) # leave space for header
|
||||||
|
|
||||||
|
# leave space for animation offset list
|
||||||
|
f.seek((len(sprite.animations) + 1) * 4, 1)
|
||||||
|
animation_offsets = []
|
||||||
|
|
||||||
|
# write animations
|
||||||
|
for i, components in enumerate(sprite.animations):
|
||||||
|
animation_offsets.append(f.tell())
|
||||||
|
|
||||||
|
# leave space for component offset list
|
||||||
|
f.seek((len(components) + 1) * 4, 1)
|
||||||
|
component_offsets = []
|
||||||
|
|
||||||
|
for comp in components:
|
||||||
|
offset = f.tell()
|
||||||
|
|
||||||
|
for command in comp.commands:
|
||||||
|
f.write(command.to_bytes(2, byteorder="big"))
|
||||||
|
|
||||||
|
f.seek(f.tell() % 4, 1)
|
||||||
|
component_offsets.append(f.tell())
|
||||||
|
|
||||||
|
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"))
|
||||||
|
|
||||||
|
next_anim = f.tell()
|
||||||
|
|
||||||
|
# write component offset list
|
||||||
|
f.seek(animation_offsets[i])
|
||||||
|
component_offsets.append(-1)
|
||||||
|
for offset in component_offsets:
|
||||||
|
f.write(offset.to_bytes(4, byteorder="big", signed=True))
|
||||||
|
|
||||||
|
f.seek(next_anim)
|
||||||
|
|
||||||
|
# palettes start 8-byte aligned
|
||||||
|
if (f.tell() & 7) == 4:
|
||||||
|
f.seek(4, 1)
|
||||||
|
|
||||||
|
# write palettes
|
||||||
|
palette_offsets = []
|
||||||
|
for i, palette in enumerate(sprite.palettes):
|
||||||
|
palette_offsets.append(f.tell())
|
||||||
|
for rgba in palette:
|
||||||
|
if rgba[3] not in (0, 0xFF):
|
||||||
|
print("error: translucent pixels not allowed in palette {sprite.palette_names[i]}")
|
||||||
|
exit(1)
|
||||||
|
|
||||||
|
color = pack_color(*rgba)
|
||||||
|
f.write(color.to_bytes(2, byteorder="big"))
|
||||||
|
|
||||||
|
# write images/rasters
|
||||||
|
image_offsets = []
|
||||||
|
for image in sprite.images:
|
||||||
|
offset = f.tell()
|
||||||
|
|
||||||
|
for a, b in iter_in_groups(image.raster, 2):
|
||||||
|
byte = (a << 4) | b
|
||||||
|
f.write(byte.to_bytes(1, byteorder="big"))
|
||||||
|
|
||||||
|
image_offsets.append(f.tell())
|
||||||
|
|
||||||
|
f.write(offset.to_bytes(4, byteorder="big"))
|
||||||
|
f.write(bytes([image.width, image.height, image.palette_index, 0xFF]))
|
||||||
|
|
||||||
|
# write image offset list
|
||||||
|
image_offset_list_offset = f.tell()
|
||||||
|
image_offsets.append(-1)
|
||||||
|
for offset in image_offsets:
|
||||||
|
f.write(offset.to_bytes(4, byteorder="big", signed=True))
|
||||||
|
|
||||||
|
# write palette offset list
|
||||||
|
palette_offset_list_offset = f.tell()
|
||||||
|
palette_offsets.append(-1)
|
||||||
|
for offset in palette_offsets:
|
||||||
|
f.write(offset.to_bytes(4, byteorder="big", signed=True))
|
||||||
|
|
||||||
|
# write header
|
||||||
|
f.seek(0)
|
||||||
|
f.write(image_offset_list_offset.to_bytes(4, byteorder="big"))
|
||||||
|
f.write(palette_offset_list_offset.to_bytes(4, byteorder="big"))
|
||||||
|
f.write(sprite.max_components.to_bytes(4, byteorder="big"))
|
||||||
|
f.write(sprite.num_variations.to_bytes(4, byteorder="big"))
|
||||||
|
|
||||||
|
# write animation offset list
|
||||||
|
animation_offsets.append(-1)
|
||||||
|
for offset in animation_offsets:
|
||||||
|
f.write(offset.to_bytes(4, byteorder="big", signed=True))
|
32
tools/compile_npc_sprites.py
Executable file
32
tools/compile_npc_sprites.py
Executable file
@ -0,0 +1,32 @@
|
|||||||
|
#! /usr/bin/python3
|
||||||
|
|
||||||
|
from sys import argv
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
if len(argv) < 4:
|
||||||
|
print("usage: compile_npc_sprites.py [OUTBIN] [INFILES]")
|
||||||
|
exit(1)
|
||||||
|
|
||||||
|
_, outfile, *infiles = argv
|
||||||
|
|
||||||
|
with open(outfile, "wb") as f:
|
||||||
|
offsets = []
|
||||||
|
|
||||||
|
f.seek(4 * (len(infiles) + 1))
|
||||||
|
|
||||||
|
for filename in infiles:
|
||||||
|
with open(filename, "rb") as spritef:
|
||||||
|
offsets.append(f.tell())
|
||||||
|
f.write(spritef.read())
|
||||||
|
|
||||||
|
# align
|
||||||
|
while f.tell() % 8 != 0:
|
||||||
|
f.write(bytes([0]))
|
||||||
|
|
||||||
|
print(f"{0x19E67B8 + f.tell():X}")
|
||||||
|
|
||||||
|
offsets.append(f.tell())
|
||||||
|
|
||||||
|
f.seek(0)
|
||||||
|
for offset in offsets:
|
||||||
|
f.write(offset.to_bytes(4, byteorder="big"))
|
@ -1 +1 @@
|
|||||||
Subproject commit 6106762b0561e40a640c11852a17bb87963c7ba8
|
Subproject commit 0ff02cd4734c26c7ae03aee4a0374a774b3b097b
|
0
tools/sort_symbol_addrs.py
Normal file → Executable file
0
tools/sort_symbol_addrs.py
Normal file → Executable file
506
tools/splat.yaml
506
tools/splat.yaml
@ -7022,241 +7022,277 @@ segments:
|
|||||||
- [0x19E5758, "Yay0"]
|
- [0x19E5758, "Yay0"]
|
||||||
- [0x19E5950, "Yay0"]
|
- [0x19E5950, "Yay0"]
|
||||||
- [0x19E62A0, "Yay0"]
|
- [0x19E62A0, "Yay0"]
|
||||||
- [0x19E67B2, "bin"]
|
- start: 0x19E67B8
|
||||||
- [0x19E6B60, "Yay0"]
|
type: PaperMarioNpcSprites
|
||||||
- [0x19E7528, "Yay0"]
|
files:
|
||||||
- [0x19E9778, "Yay0"]
|
- name: world_goombario
|
||||||
- [0x19EAF38, "Yay0"]
|
frames:
|
||||||
- [0x19EC4E0, "Yay0"]
|
- walk1
|
||||||
- [0x19EDD30, "Yay0"]
|
- still
|
||||||
- [0x19EEB18, "Yay0"]
|
- walk2
|
||||||
- [0x19F0070, "Yay0"]
|
- pain
|
||||||
- [0x19F15A0, "Yay0"]
|
- headbonk
|
||||||
- [0x19F26D8, "Yay0"]
|
- still_copy1
|
||||||
- [0x19F5390, "Yay0"]
|
- still_copy2
|
||||||
- [0x19F7398, "Yay0"]
|
- jump
|
||||||
- [0x19FA128, "Yay0"]
|
- talk1
|
||||||
- [0x19FCAE8, "Yay0"]
|
- talk2
|
||||||
- [0x19FED70, "Yay0"]
|
- jump_copy
|
||||||
- [0x1A00958, "Yay0"]
|
- fall
|
||||||
- [0x1A02D00, "Yay0"]
|
- happy1
|
||||||
- [0x1A04400, "Yay0"]
|
- happy2
|
||||||
- [0x1A05550, "Yay0"]
|
- read_paper
|
||||||
- [0x1A06390, "Yay0"]
|
palettes:
|
||||||
- [0x1A06F98, "Yay0"]
|
- default
|
||||||
- [0x1A07B68, "Yay0"]
|
- poisoned
|
||||||
- [0x1A0A0A0, "Yay0"]
|
- inactive
|
||||||
- [0x1A0ACC8, "Yay0"]
|
- electrified
|
||||||
- [0x1A0B780, "Yay0"]
|
- burnt
|
||||||
- [0x1A0BBE0, "Yay0"]
|
animations:
|
||||||
- [0x1A0C000, "Yay0"]
|
- still
|
||||||
- [0x1A0C438, "Yay0"]
|
- idle
|
||||||
- [0x1A0C860, "Yay0"]
|
- walk
|
||||||
- [0x1A0D1E8, "Yay0"]
|
- run
|
||||||
- [0x1A0D5B0, "Yay0"]
|
- jump
|
||||||
- [0x1A0D970, "Yay0"]
|
- fall
|
||||||
- [0x1A0EF00, "Yay0"]
|
- headbonk # centered at 0,0,0 rather than at base of sprite
|
||||||
- [0x1A13920, "Yay0"]
|
- pain
|
||||||
- [0x1A15850, "Yay0"]
|
- talk
|
||||||
- [0x1A183F8, "Yay0"]
|
- celebrate
|
||||||
- [0x1A1A608, "Yay0"]
|
- read_paper
|
||||||
- [0x1A1C5E8, "Yay0"]
|
- world_kooper
|
||||||
- [0x1A1D6D0, "Yay0"]
|
- world_bombette
|
||||||
- [0x1A1E478, "Yay0"]
|
- world_parakarry
|
||||||
- [0x1A1F370, "Yay0"]
|
- world_bow
|
||||||
- [0x1A226B0, "Yay0"]
|
- world_watt
|
||||||
- [0x1A249B8, "Yay0"]
|
- world_sushi
|
||||||
- [0x1A25E78, "Yay0"]
|
- world_lakilester
|
||||||
- [0x1A27FF0, "Yay0"]
|
- battle_goombario
|
||||||
- [0x1A28BE0, "Yay0"]
|
- battle_kooper
|
||||||
- [0x1A29680, "Yay0"]
|
- battle_bombette
|
||||||
- [0x1A2BC68, "Yay0"]
|
- battle_parakarry
|
||||||
- [0x1A2E120, "Yay0"]
|
- battle_bow
|
||||||
- [0x1A2F3F8, "Yay0"]
|
- battle_watt
|
||||||
- [0x1A31D18, "Yay0"]
|
- battle_sushi
|
||||||
- [0x1A33AB0, "Yay0"]
|
- battle_lakilester
|
||||||
- [0x1A35BB8, "Yay0"]
|
- kooper_without_shell
|
||||||
- [0x1A369A8, "Yay0"]
|
- world_eldstar
|
||||||
- [0x1A39600, "Yay0"]
|
- world_mamar
|
||||||
- [0x1A3B018, "Yay0"]
|
- world_skolar
|
||||||
- [0x1A3C310, "Yay0"]
|
- world_muskular
|
||||||
- [0x1A3FCC8, "Yay0"]
|
- world_misstar
|
||||||
- [0x1A423D8, "Yay0"]
|
- world_klevar
|
||||||
- [0x1A449C0, "Yay0"]
|
- world_kalmar
|
||||||
- [0x1A46568, "Yay0"]
|
- battle_eldstar
|
||||||
- [0x1A49340, "Yay0"]
|
- battle_mamar
|
||||||
- [0x1A4AC88, "Yay0"]
|
- battle_skolar
|
||||||
- [0x1A4D7E8, "Yay0"]
|
- battle_muskular
|
||||||
- [0x1A4E028, "Yay0"]
|
- battle_misstar
|
||||||
- [0x1A4FA60, "Yay0"]
|
- battle_klevar
|
||||||
- [0x1A531D0, "Yay0"]
|
- battle_kalmar
|
||||||
- [0x1A53D48, "Yay0"]
|
- twink
|
||||||
- [0x1A56C80, "Yay0"]
|
- jr_troopa
|
||||||
- [0x1A58F58, "Yay0"]
|
- spiked_jr_troopa
|
||||||
- [0x1A5A5A8, "Yay0"]
|
- spiked_para_jr_troopa
|
||||||
- [0x1A62B40, "Yay0"]
|
- mage_jr_troopa
|
||||||
- [0x1A641F8, "Yay0"]
|
- para_jr_troopa
|
||||||
- [0x1A666F0, "Yay0"]
|
- goomba
|
||||||
- [0x1A68870, "Yay0"]
|
- spiked_goomba
|
||||||
- [0x1A6C630, "Yay0"]
|
- paragoomba
|
||||||
- [0x1A6D5A0, "Yay0"]
|
- koopa_troopa
|
||||||
- [0x1A6EF50, "Yay0"]
|
- para_troopa
|
||||||
- [0x1A70FF0, "Yay0"]
|
- fuzzy
|
||||||
- [0x1A74FC0, "Yay0"]
|
- bob_omb
|
||||||
- [0x1A78A40, "Yay0"]
|
- bullet_bill
|
||||||
- [0x1A79900, "Yay0"]
|
- bill_blaster
|
||||||
- [0x1A7D798, "Yay0"]
|
- monty_mole
|
||||||
- [0x1A7EEA0, "Yay0"]
|
- cleft
|
||||||
- [0x1A7EFD8, "Yay0"]
|
- pokey
|
||||||
- [0x1A83450, "Yay0"]
|
- battle_bandit
|
||||||
- [0x1A85668, "Yay0"]
|
- buzzy_beetle
|
||||||
- [0x1A87958, "Yay0"]
|
- swooper
|
||||||
- [0x1A8BF98, "Yay0"]
|
- stone_chomp
|
||||||
- [0x1A8FE28, "Yay0"]
|
- putrid_piranha
|
||||||
- [0x1A93EA0, "Yay0"]
|
- piranha_plant
|
||||||
- [0x1A94188, "Yay0"]
|
- sentinel
|
||||||
- [0x1A94480, "Yay0"]
|
- world_clubba
|
||||||
- [0x1A946A8, "Yay0"]
|
- battle_clubba
|
||||||
- [0x1A94A00, "Yay0"]
|
- shy_guy
|
||||||
- [0x1A94C58, "Yay0"]
|
- groove_guy
|
||||||
- [0x1A98D98, "Yay0"]
|
- sky_guy
|
||||||
- [0x1A9BA80, "Yay0"]
|
- pyro_guy
|
||||||
- [0x1A9DB68, "Yay0"]
|
- spy_guy
|
||||||
- [0x1AA0048, "Yay0"]
|
- medi_guy
|
||||||
- [0x1AA0698, "Yay0"]
|
- fuzzipede
|
||||||
- [0x1AA1008, "Yay0"]
|
- jungle_guy
|
||||||
- [0x1AA6D58, "Yay0"]
|
- heart_plant
|
||||||
- [0x1AAD600, "Yay0"]
|
- hurt_plant
|
||||||
- [0x1AB1BF0, "Yay0"]
|
- m_bush
|
||||||
- [0x1AB2368, "Yay0"]
|
- bubble
|
||||||
- [0x1ABA290, "Yay0"]
|
- kent_c_koopa
|
||||||
- [0x1AC14A8, "Yay0"]
|
- dayzee
|
||||||
- [0x1AC3910, "Yay0"]
|
- lakitu
|
||||||
- [0x1ACBC98, "Yay0"]
|
- spiny
|
||||||
- [0x1ACE058, "Yay0"]
|
- bzzap
|
||||||
- [0x1ACF910, "Yay0"]
|
- ruff_puff
|
||||||
- [0x1AD06D8, "Yay0"]
|
- spike_top
|
||||||
- [0x1AD0B98, "Yay0"]
|
- duplighost
|
||||||
- [0x1AD1E90, "Yay0"]
|
- albino_dino
|
||||||
- [0x1AD2348, "Yay0"]
|
- blooper
|
||||||
- [0x1AD27F8, "Yay0"]
|
- baby_blooper
|
||||||
- [0x1AD28A8, "Yay0"]
|
- gulpit
|
||||||
- [0x1AD44F0, "Yay0"]
|
- dry_bones
|
||||||
- [0x1AD4758, "Yay0"]
|
- thrown_bone
|
||||||
- [0x1AD57C0, "Yay0"]
|
- bony_beetle
|
||||||
- [0x1AD9D50, "Yay0"]
|
- magikoopa
|
||||||
- [0x1ADA498, "Yay0"]
|
- flying_magikoopa
|
||||||
- [0x1ADCFC0, "Yay0"]
|
- world_koopatrol
|
||||||
- [0x1AE2168, "Yay0"]
|
- koopatrol
|
||||||
- [0x1AE2EA0, "Yay0"]
|
- hammer_bros
|
||||||
- [0x1AE6A58, "Yay0"]
|
- bush_basic
|
||||||
- [0x1AEB778, "Yay0"]
|
- bush_blocky
|
||||||
- [0x1AF4958, "Yay0"]
|
- bush_dry
|
||||||
- [0x1AFCB18, "Yay0"]
|
- bush_leafy
|
||||||
- [0x1AFF748, "Yay0"]
|
- bush_matted
|
||||||
- [0x1B00640, "Yay0"]
|
- world_kammy
|
||||||
- [0x1B01390, "Yay0"]
|
- battle_kammy
|
||||||
- [0x1B01C08, "Yay0"]
|
- goomba_bros
|
||||||
- [0x1B02128, "Yay0"]
|
- goomba_king
|
||||||
- [0x1B02970, "Yay0"]
|
- spiky_goomnut
|
||||||
- [0x1B03118, "Yay0"]
|
- dark_toad
|
||||||
- [0x1B03C18, "Yay0"]
|
- koopa_bros
|
||||||
- [0x1B045E8, "Yay0"]
|
- buzzar
|
||||||
- [0x1B04FC0, "Yay0"]
|
- tutankoopa
|
||||||
- [0x1B05998, "Yay0"]
|
- chain_chomp
|
||||||
- [0x1B06C88, "Yay0"]
|
- world_tubba
|
||||||
- [0x1B07C48, "Yay0"]
|
- battle_tubba
|
||||||
- [0x1B09440, "Yay0"]
|
- tubbas_heart
|
||||||
- [0x1B0B290, "Yay0"]
|
- big_lantern_ghost
|
||||||
- [0x1B0B9A0, "Yay0"]
|
- shy_squad_guy
|
||||||
- [0x1B0C548, "Yay0"]
|
- marshal_guy
|
||||||
- [0x1B0CAC0, "Yay0"]
|
- stilt_guy
|
||||||
- [0x1B0D130, "Yay0"]
|
- stilt_guy_unfold
|
||||||
- [0x1B0EB80, "Yay0"]
|
- shy_stack_guy
|
||||||
- [0x1B10CC0, "Yay0"]
|
- shy_stack_unfold
|
||||||
- [0x1B129A0, "Yay0"]
|
- shy_stack_damage
|
||||||
- [0x1B13548, "Yay0"]
|
- shy_stack_rock
|
||||||
- [0x1B16420, "Yay0"]
|
- general_guy
|
||||||
- [0x1B17128, "Yay0"]
|
- general_guy_bomb
|
||||||
- [0x1B17840, "Yay0"]
|
- tank_guy
|
||||||
- [0x1B19318, "Yay0"]
|
- lava_piranha_head
|
||||||
- [0x1B1A030, "Yay0"]
|
- petit_piranha
|
||||||
- [0x1B1B8C8, "Yay0"]
|
- lava_bud
|
||||||
- [0x1B1BC88, "Yay0"]
|
- huff_n_puff
|
||||||
- [0x1B1C7A0, "Yay0"]
|
- tuff_puff
|
||||||
- [0x1B1CD28, "Yay0"]
|
- monstar
|
||||||
- [0x1B21C48, "Yay0"]
|
- crystal_king
|
||||||
- [0x1B23290, "Yay0"]
|
- world_bowser
|
||||||
- [0x1B253E0, "Yay0"]
|
- battle_bowser
|
||||||
- [0x1B26660, "Yay0"]
|
- luigi
|
||||||
- [0x1B283F8, "Yay0"]
|
- toad
|
||||||
- [0x1B29C60, "Yay0"]
|
- three_sisters
|
||||||
- [0x1B2A688, "Yay0"]
|
- vanna_t
|
||||||
- [0x1B2B3E8, "Yay0"]
|
- toad_kid
|
||||||
- [0x1B2C8D8, "Yay0"]
|
- toad_guard
|
||||||
- [0x1B2D7B0, "Yay0"]
|
- harry_t
|
||||||
- [0x1B2E328, "Yay0"]
|
- toad_minister
|
||||||
- [0x1B2ED60, "Yay0"]
|
- postmaster
|
||||||
- [0x1B2FA18, "Yay0"]
|
- conductor_toad
|
||||||
- [0x1B31A18, "Yay0"]
|
- train_station_toad
|
||||||
- [0x1B33000, "Yay0"]
|
- fishmael
|
||||||
- [0x1B34098, "Yay0"]
|
- artist_toad
|
||||||
- [0x1B34928, "Yay0"]
|
- koopa
|
||||||
- [0x1B34C00, "Yay0"]
|
- koopa_without_shell
|
||||||
- [0x1B35480, "Yay0"]
|
- world_bob_omb
|
||||||
- [0x1B36440, "Yay0"]
|
- whacka
|
||||||
- [0x1B38748, "Yay0"]
|
- dryite
|
||||||
- [0x1B39A98, "Yay0"]
|
- mouser
|
||||||
- [0x1B3A2E8, "Yay0"]
|
- boo
|
||||||
- [0x1B3A818, "Yay0"]
|
- yoshi
|
||||||
- [0x1B3C488, "Yay0"]
|
- yoshi_kid
|
||||||
- [0x1B3CAC8, "Yay0"]
|
- raven
|
||||||
- [0x1B3D0A0, "Yay0"]
|
- bubulb
|
||||||
- [0x1B3D920, "Yay0"]
|
- penguin
|
||||||
- [0x1B3F060, "Yay0"]
|
- shiver_toad
|
||||||
- [0x1B40048, "Yay0"]
|
- world_bandit
|
||||||
- [0x1B40720, "Yay0"]
|
- goompapa
|
||||||
- [0x1B49570, "Yay0"]
|
- goombaria
|
||||||
- [0x1B4C3E8, "Yay0"]
|
- goomama
|
||||||
- [0x1B4DEA0, "Yay0"]
|
- goompa
|
||||||
- [0x1B4FD98, "Yay0"]
|
- goomma
|
||||||
- [0x1B50CD8, "Yay0"]
|
- the_master
|
||||||
- [0x1B51B08, "Yay0"]
|
- chan
|
||||||
- [0x1B54258, "Yay0"]
|
- lee
|
||||||
- [0x1B580A0, "Yay0"]
|
- merlon
|
||||||
- [0x1B5A248, "Yay0"]
|
- chet_rippo
|
||||||
- [0x1B5BB88, "Yay0"]
|
- rowf
|
||||||
- [0x1B5CC90, "Yay0"]
|
- minh_t
|
||||||
- [0x1B5E968, "Yay0"]
|
- russ_t
|
||||||
- [0x1B5ED88, "Yay0"]
|
- tayce_t
|
||||||
- [0x1B608C0, "Yay0"]
|
- fice_t
|
||||||
- [0x1B625F8, "Yay0"]
|
- bartender
|
||||||
- [0x1B633D0, "Yay0"]
|
- chanterelle
|
||||||
- [0x1B64878, "Yay0"]
|
- rip_cheato
|
||||||
- [0x1B657E0, "Yay0"]
|
- chuck_quizmo
|
||||||
- [0x1B65A08, "Yay0"]
|
- merluvlee
|
||||||
- [0x1B65E50, "Yay0"]
|
- merlar
|
||||||
- [0x1B66238, "Yay0"]
|
- merlow
|
||||||
- [0x1B69580, "Yay0"]
|
- star_kid
|
||||||
- [0x1B6C318, "Yay0"]
|
- kolorado_wife
|
||||||
- [0x1B6DD98, "Yay0"]
|
- koopa_koot
|
||||||
- [0x1B6F150, "Yay0"]
|
- kolorado
|
||||||
- [0x1B71618, "Yay0"]
|
- battle_kolorado
|
||||||
- [0x1B72890, "Yay0"]
|
- archeologist
|
||||||
- [0x1B73B08, "Yay0"]
|
- nomadimouse
|
||||||
- [0x1B747B8, "Yay0"]
|
- world_merlee
|
||||||
- [0x1B76E30, "Yay0"]
|
- battle_merlee
|
||||||
- [0x1B78EC0, "Yay0"]
|
- disguised_moustafa
|
||||||
- [0x1B79A20, "Yay0"]
|
- moustafa
|
||||||
- [0x1B79F08, "Yay0"]
|
- oaklie
|
||||||
- [0x1B7AA08, "Yay0"]
|
- bootler
|
||||||
- [0x1B7B008, "Yay0"]
|
- yakkey
|
||||||
- [0x1B7BB50, "Yay0"]
|
- gourmet_guy
|
||||||
- [0x1B7EC68, "Yay0"]
|
- village_leader
|
||||||
- [0x1B7FF48, "Yay0"]
|
- leaders_friend
|
||||||
- [0x1B81E88, "Yay0"]
|
- rafael_raven
|
||||||
- [0x1B82058, "Yay0"]
|
- tolielup
|
||||||
- [0x1B82202, "bin"]
|
- 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
|
||||||
|
- [0x1B82208, bin]
|
||||||
- start: 0x1B83000
|
- start: 0x1B83000
|
||||||
type: PaperMarioMessages
|
type: PaperMarioMessages
|
||||||
files:
|
files:
|
||||||
|
Loading…
Reference in New Issue
Block a user