From c3328afd545858515517b997fe159aa895271d4b Mon Sep 17 00:00:00 2001 From: iriv24 Date: Sun, 12 Jan 2025 00:24:26 -0500 Subject: [PATCH] Add script to repack ppark.narc, delete res/prebuilt/arc/ppark.narc --- platinum.us/filesys.sha1 | 2 +- platinum.us/rom.rsf | 8 +++++- res/pokemon/meson.build | 15 +++++++++++ res/prebuilt/arc/meson.build | 1 - res/prebuilt/arc/ppark.narc | Bin 3020 -> 0 bytes tools/json2bin/catching_show_data.py | 39 +++++++++++++++++++++++++++ tools/json2bin/meson.build | 1 + 7 files changed, 63 insertions(+), 3 deletions(-) delete mode 100644 res/prebuilt/arc/ppark.narc create mode 100644 tools/json2bin/catching_show_data.py diff --git a/platinum.us/filesys.sha1 b/platinum.us/filesys.sha1 index 0d7e5c8ea6..86d994362c 100644 --- a/platinum.us/filesys.sha1 +++ b/platinum.us/filesys.sha1 @@ -291,7 +291,7 @@ adcb9634923530fd7f217a131a3949f556f4f324 *res/prebuilt/arc/email_gra.narc 0832d441d7e543e14d68e9df7e9118b472d67833 *res/field/encounters/encdata_ex.narc d534f791217a311610812b18ef674a326ecdd2ac *res/prebuilt/arc/manene.narc ad5fefc4758eba86f6f647e506531d6cfe9c9ce5 *res/prebuilt/arc/plgym_ghost.narc -89b24d0c67f2cb089800613d5a0254a124d98ba6 *res/prebuilt/arc/ppark.narc +89b24d0c67f2cb089800613d5a0254a124d98ba6 *res/pokemon/ppark.narc 9b0b19798338e63d907a95c35be4b302778192f1 *res/prebuilt/arc/ship_demo.narc 91559385ad608514630650e1f1e94206048bc3a8 *res/prebuilt/arc/ship_demo_pl.narc 114d4f20de27a95ad930b246bb6f62a6d7295fe5 *res/prebuilt/arc/tv.narc diff --git a/platinum.us/rom.rsf b/platinum.us/rom.rsf index d1d17be3af..5737d8ec1b 100644 --- a/platinum.us/rom.rsf +++ b/platinum.us/rom.rsf @@ -447,7 +447,13 @@ RomSpec HostRoot res/prebuilt File arc/manene.narc File arc/plgym_ghost.narc - File arc/ppark.narc + + Root /arc + HostRoot res/pokemon + File ppark.narc + + Root / + HostRoot res/prebuilt File arc/ship_demo.narc File arc/ship_demo_pl.narc File arc/tv.narc diff --git a/res/pokemon/meson.build b/res/pokemon/meson.build index c528cc5e02..1cef7ba074 100644 --- a/res/pokemon/meson.build +++ b/res/pokemon/meson.build @@ -838,6 +838,20 @@ gen_species_headers = custom_target('gen_species_headers', ] ) +ppark_narc = custom_target('ppark.narc', + output: 'ppark.narc', + input: personal_files, + env: json2bin_env, + depends: [ py_consts_generators ], + command: [ + catching_show_data_py, + '--narc', narc_exe, + '--source-dir', '@CURRENT_SOURCE_DIR@', + '--private-dir', '@PRIVATE_DIR@', + '--output-dir', '@OUTDIR@', + ] +) + nitrofs_files += pl_personal_narc nitrofs_files += evo_narc nitrofs_files += pl_poke_icon_narc @@ -851,3 +865,4 @@ nitrofs_files += shinzukan_narc nitrofs_files += pl_growtbl_narc nitrofs_files += pokedex_data_narc nitrofs_files += pokedex_data_giratina_altered_narc +nitrofs_files += ppark_narc diff --git a/res/prebuilt/arc/meson.build b/res/prebuilt/arc/meson.build index 9e9d059a7d..19c4e21154 100644 --- a/res/prebuilt/arc/meson.build +++ b/res/prebuilt/arc/meson.build @@ -8,7 +8,6 @@ prebuilt_files = [ 'email_gra.narc', 'manene.narc', 'plgym_ghost.narc', - 'ppark.narc', 'ship_demo_pl.narc', 'ship_demo.narc', 'tv.narc' diff --git a/res/prebuilt/arc/ppark.narc b/res/prebuilt/arc/ppark.narc deleted file mode 100644 index 3e95554c58a5d4d7a00f37166babc87e2df99561..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3020 zcmZveL9VMt6hs>uunoq>5@Qy@4*risltI3%=#Ln`^<8Ps)CuqWvp%clLY!%?Z;B>dMj<1$ zN5I!xt!=zkcyAAff_)E%lC{TU$=c&l^BddphlR-{w5of(J5i|FDZQP3g-8if&D`92r_3W;Egk@=cR*z^UtcI#@sY2WE zpvuO+LVlo5gcs}!>P{6%4c>&WXT|T>anoUs(pYPhkCyRzm5;7hjbE9m>KEywP_}Tz z8F3xuTzAeT$3@QXh+iD7 z1>w`tw#vpTsRE-s`a`$?2D<1KJ`t;M7RXG;i4LICG4AtL(P55OEJ_w9!eP+918?z; zRdhaw-V`nBTQmObLKo>%9!Eds{POPBia7AF=IWAot~%vkp~HC^dh=E*encoS5^6z* z^VHjA{n3ndJEh_JW$fXTv$NweUO=LG?NDl$Os)5QEP4?&LSvzmy%+ASw5o~-!_k`> zttG~#!>GRXMsD(>Mmn~Hy@%ecD|fR3RHekvo33yl(N0?h$(AahD|nmcVNeBy?;88s z`JenZNp1=~fJ9?Q`dH*ZHOV2OSxYs%F+bGkk*KLq^;K5b6xZl}kvmkKg5D_hqEd>f zXJ*ooVkR{`i*wa6su?`L`m=J2w;cwKTEtBB##-t~&zz@=yO8kS3W?xOae{6e}F@?7~Dl)K#_`4^nWF5C`wrEvc& z*DFumZueFyif7!^E33X21GHNr3sJs%sdf=3JA61!d8%`&iz?>a*!rBjeV&&S*e114UwZBqS1@WUe{n^|ax6T|qSZ^p3jTxg$tIzP&bk&LUr6dKW>Z6bjKZ=2DKWJ=v JuItawe*s4p({TU* diff --git a/tools/json2bin/catching_show_data.py b/tools/json2bin/catching_show_data.py new file mode 100644 index 0000000000..e8633baae0 --- /dev/null +++ b/tools/json2bin/catching_show_data.py @@ -0,0 +1,39 @@ +#!/usr/bin/env python3 +import pathlib +import json2bin as j2b + +from consts import ( + species, + catching_show +) + +def parse_catching_show_data(cs_data: dict, _size: int, _consts: type = None) -> bytes: + binary = bytearray([]) + binary.extend(j2b.parse_int(cs_data['catching_points'], 1)) + binary.extend(j2b.parse_int(cs_data['rarity'], 1)) + binary.extend(j2b.parse_int(cs_data['unused'], 2)) + return binary + + +SCHEMA = j2b.Parser() \ + .register('catching_show_data.pal_park_land_area', 1, j2b.parse_const, catching_show.PalParkLandArea) \ + .register('catching_show_data.pal_park_water_area', 1, j2b.parse_const, catching_show.PalParkWaterArea) \ + .register('catching_show_data', 1, parse_catching_show_data) + + +def indexer(file_path: pathlib.Path) -> int: + name = file_path.parent.stem.upper() + return species.PokemonSpecies[f'SPECIES_{name}'].value + + +args = j2b.ARGPARSER.parse_args() +j2b.json2bin(args.source_dir, + SCHEMA, + args.private_dir, + args.output_dir, + indexer, + glob_pattern='**/data.json', + narc_name='ppark', + narc_packer=args.narc, + output_mode=j2b.OutputMode.SINGLE_FILE, + skip_stems=['forms', '000', 'bad_egg', 'egg']) diff --git a/tools/json2bin/meson.build b/tools/json2bin/meson.build index 50b281b832..76fad6ec9c 100644 --- a/tools/json2bin/meson.build +++ b/tools/json2bin/meson.build @@ -17,3 +17,4 @@ encdata_ex_elusive_rod_py = find_program('encdata_ex_elusive_rod.py', native: tr encdata_ex_honey_trees_py = find_program('encdata_ex_honey_trees.py', native: true) encdata_ex_trophy_garden_py = find_program('encdata_ex_trophy_garden.py', native: true) encdata_ex_great_marsh_py = find_program('encdata_ex_great_marsh.py', native: true) +catching_show_data_py = find_program('catching_show_data.py', native: true)