From 192c170dfdbc671558068cb5bfa9bea2649c2703 Mon Sep 17 00:00:00 2001 From: VicSevenT Date: Mon, 24 Nov 2025 00:57:55 -0600 Subject: [PATCH] Unpack Move Tutor interface graphics (#822) --- platinum.us/filesys.csv | 2 +- platinum.us/filesys.sha1 | 2 +- res/graphics/meson.build | 1 + res/graphics/move_tutor/meson.build | 73 +++++ res/graphics/move_tutor/move_tutor.order | 13 + .../move_tutor/move_tutor_background.NSCR | Bin 0 -> 4132 bytes .../move_tutor/move_tutor_bg_tiles.png | Bin 0 -> 1391 bytes res/graphics/move_tutor/scroll_arrows.png | Bin 0 -> 199 bytes .../move_tutor/scroll_arrows_anim.json | 101 +++++++ .../move_tutor/scroll_arrows_cell.json | 80 ++++++ res/graphics/move_tutor/select_box.png | Bin 0 -> 175 bytes res/graphics/move_tutor/select_box_anim.json | 24 ++ res/graphics/move_tutor/select_box_cell.json | 106 +++++++ res/graphics/move_tutor/sprites.pal | 259 ++++++++++++++++++ .../move_tutor/view_change_arrows.png | Bin 0 -> 157 bytes .../move_tutor/view_change_arrows_anim.json | 101 +++++++ .../move_tutor/view_change_arrows_cell.json | 80 ++++++ res/prebuilt/graphic/meson.build | 1 - res/prebuilt/graphic/waza_oshie_gra.narc | Bin 12084 -> 0 bytes 19 files changed, 840 insertions(+), 3 deletions(-) create mode 100644 res/graphics/move_tutor/meson.build create mode 100644 res/graphics/move_tutor/move_tutor.order create mode 100644 res/graphics/move_tutor/move_tutor_background.NSCR create mode 100644 res/graphics/move_tutor/move_tutor_bg_tiles.png create mode 100644 res/graphics/move_tutor/scroll_arrows.png create mode 100644 res/graphics/move_tutor/scroll_arrows_anim.json create mode 100644 res/graphics/move_tutor/scroll_arrows_cell.json create mode 100644 res/graphics/move_tutor/select_box.png create mode 100644 res/graphics/move_tutor/select_box_anim.json create mode 100644 res/graphics/move_tutor/select_box_cell.json create mode 100644 res/graphics/move_tutor/sprites.pal create mode 100644 res/graphics/move_tutor/view_change_arrows.png create mode 100644 res/graphics/move_tutor/view_change_arrows_anim.json create mode 100644 res/graphics/move_tutor/view_change_arrows_cell.json delete mode 100644 res/prebuilt/graphic/waza_oshie_gra.narc diff --git a/platinum.us/filesys.csv b/platinum.us/filesys.csv index 82fa2098c5..3cb0f5ff1c 100644 --- a/platinum.us/filesys.csv +++ b/platinum.us/filesys.csv @@ -237,7 +237,7 @@ res/prebuilt/graphic/touch_subwindow.narc,/graphic/touch_subwindow.narc res/prebuilt/graphic/trainer_case.narc,/graphic/trainer_case.narc res/prebuilt/graphic/unionobj2d_onlyfront.narc,/graphic/unionobj2d_onlyfront.narc res/prebuilt/graphic/unionroom.narc,/graphic/unionroom.narc -res/prebuilt/graphic/waza_oshie_gra.narc,/graphic/waza_oshie_gra.narc +res/graphics/move_tutor/move_tutor.narc,/graphic/waza_oshie_gra.narc res/prebuilt/graphic/wifi2dchar.narc,/graphic/wifi2dchar.narc res/prebuilt/graphic/wifi_lobby.narc,/graphic/wifi_lobby.narc res/prebuilt/graphic/wifi_lobby_other.narc,/graphic/wifi_lobby_other.narc diff --git a/platinum.us/filesys.sha1 b/platinum.us/filesys.sha1 index 2e7184712d..cc925fd5b7 100644 --- a/platinum.us/filesys.sha1 +++ b/platinum.us/filesys.sha1 @@ -236,7 +236,7 @@ f79e12419475818dcdb42df7fbf843e3c8f71252 *res/prebuilt/graphic/tmap_gra.narc 3446f96721b7dee9983222f2ecf4bc30e1530f27 *res/prebuilt/graphic/trainer_case.narc 474dd2ac959d28cf2be9cdc2fb0626b091ab281e *res/prebuilt/graphic/unionobj2d_onlyfront.narc a90eefcf0fe8e649978329bec0185c072392ee58 *res/prebuilt/graphic/unionroom.narc -b653d274c54681632e3c4f166f523573be9be08e *res/prebuilt/graphic/waza_oshie_gra.narc +b653d274c54681632e3c4f166f523573be9be08e *res/graphics/move_tutor/move_tutor.narc aa8f109bb43f94b0c8cf3cf5c27fb166da269823 *res/prebuilt/graphic/wifi2dchar.narc 16b0d7afaa52c353007b44bbdfbb73e9ccf0207c *res/prebuilt/graphic/wifi_lobby.narc 9cafec00fea9184395906e6063dad7ad456b99d3 *res/prebuilt/graphic/wifi_lobby_other.narc diff --git a/res/graphics/meson.build b/res/graphics/meson.build index 7f5570796f..cfbc0ae8d8 100644 --- a/res/graphics/meson.build +++ b/res/graphics/meson.build @@ -3,6 +3,7 @@ subdir('battle') subdir('diploma') subdir('item_icons') subdir('mining') +subdir('move_tutor') subdir('naming_screen') subdir('options_menu') subdir('party_menu') diff --git a/res/graphics/move_tutor/meson.build b/res/graphics/move_tutor/meson.build new file mode 100644 index 0000000000..6bd11589aa --- /dev/null +++ b/res/graphics/move_tutor/meson.build @@ -0,0 +1,73 @@ +move_tutor_tiles = ncgr_cell_gen.process( + files( + 'select_box.png', + 'view_change_arrows.png', + 'scroll_arrows.png', + ), + extra_args: [ + '-version101', + '-clobbersize', + ] +) + +move_tutor_bg_tiles = ncgr_gen.process( + files( + 'move_tutor_bg_tiles.png', + ), + extra_args: [ + '-version101', + '-sopc', + '-convertTo4Bpp', + ] +) + +move_tutor_cells = ncer_gen.process(files( + 'select_box_cell.json', + 'view_change_arrows_cell.json', + 'scroll_arrows_cell.json', +)) + +move_tutor_anims = nanr_gen.process(files( + 'select_box_anim.json', + 'view_change_arrows_anim.json', + 'scroll_arrows_anim.json', +)) + +move_tutor_pals = nclr_gen.process( + files( + 'sprites.pal', + 'move_tutor_bg_tiles.png', + ), + extra_args: [ + '-bitdepth', '4', + ], +) + +move_tutor_nscr = copy_gen.process(files('move_tutor_background.NSCR')) + +move_tutor_order = files('move_tutor.order') + +move_tutor_narc = custom_target('move_tutor.narc', + output: [ + 'move_tutor.narc', + 'move_tutor.naix.h', + ], + input: [ + move_tutor_tiles, + move_tutor_bg_tiles, + move_tutor_cells, + move_tutor_anims, + move_tutor_pals, + move_tutor_nscr, + ], + command: [ + narc_exe, 'create', + '--naix', + '--order', move_tutor_order, + '--output', '@OUTPUT0@', + '@PRIVATE_DIR@', + ] +) + +nitrofs_files += move_tutor_narc +naix_headers += move_tutor_narc[1] diff --git a/res/graphics/move_tutor/move_tutor.order b/res/graphics/move_tutor/move_tutor.order new file mode 100644 index 0000000000..cd8211197b --- /dev/null +++ b/res/graphics/move_tutor/move_tutor.order @@ -0,0 +1,13 @@ +select_box_anim.NANR +select_box_cell.NCER +select_box.NCGR +view_change_arrows_anim.NANR +view_change_arrows_cell.NCER +view_change_arrows.NCGR +scroll_arrows_anim.NANR +scroll_arrows_cell.NCER +scroll_arrows.NCGR +sprites.NCLR +move_tutor_bg_tiles.NCGR +move_tutor_background.NSCR +move_tutor_bg_tiles.NCLR diff --git a/res/graphics/move_tutor/move_tutor_background.NSCR b/res/graphics/move_tutor/move_tutor_background.NSCR new file mode 100644 index 0000000000000000000000000000000000000000..0433ebb437332d1e80067f815ad1c3a2d9d6fe65 GIT binary patch literal 4132 zcmeH}+iJo<5Qd{SJs2Tv?YV_jdQ+>gJ)dF0grwEVkG?{Sw$PIIzi6A2S2{CbE(FyN zHj&{Y^Y32F_FDb!->+3TaV*QR3Rbt*>Q|z7s~G)>f6=>Zcsx@KIe6POo~eZ#zL`wP zG!tyIqG?w3WZO6G%f6bH=)~EDeGXK@MipEou`X6PFcfg*)A7zhyDSw)h zUZwoBnO5pT|LG~yYa_Q$pT4gGCHJ4#r%&Hio}!bdmD%SXD4L=AG(2CXs;ePQA(Y^K zp&Eag{k~A0dq0^2%VlAAzy*&7Zu%EP-ge=EoBp-X2Ty=5KmSGlP5UH)miy;@2M#u| zg$lN@gI(-l9|t(Z5sssZgAIIZm&DT=8W*_46|QlETioFu4|v2Ao}-G!x!~vRKd)ax zGbX!jjX!On|1-gF2>vO`G1+Zv{8yWP2D1DA|NjrvrI7W^Ys!C+7tRI&4Zr%V`smfHy?cWo?kCdNQDwx0z?`F50ul;q z_U>gU2FB;RcM1ak*X;d2WiK%OX^R63i2rwN2W9NwB1||juCM{1F$B>N1w=-T( zYF6NB{oRqurnbo8{(oJwJ1)#YYqpdvpC`Y%Jz{!|3uFFw1u+)K{<%heT&exSm;J8Y zUYuy-5uO@hTNhKlDB7m8Q-*0lPL~#A0MpVi2A@#j)yMl^uVt8WKG2mxuiiZ&lu?0Y ziE|vI$-S%d`3^`F^xpd0>co1XBL2U~0f8@E4O5n|D>Q|PGBC9{Cas<#l);<8y5mQJ zbvFNn+xxdNMKMU6k@>CED&yWMvx)12uL4`O!{wXXnG;-Xx80hp&A^zz+B3smXoF!8 zqZ5zkx{}?$p1C&|nzyfQ`I{X5_N*wwwr}qGp7Bf(j2kjGKc8D$%sPd=D*8Obl48Z6 ze@htd=uBwiiP^LMejwvbhsOb%lQ!q(vp$e>k^HPaxgnnY$Vo=0J*)HCA51S+ul`lWV0He!S{TcM+l)UpIxtPT?AkChyy-^r z9<{Yn*1s+@{&+o+;rz5ltGBEThqdmVpU0eEE6Ta+aoKc|q*FOC!cUVQ1S zDf0r^YEFlzn=4on4zYcjQ&N0)8&fsoht@ZxSNuPUJrtksvuPRkfv^V*46Y0-ec`6ru;wa^?!|KcXRdLy-Tu^qV%F=U4VLnJY5_^IA$g% z0D*TxLqm!&$Jw+T9zn0tLQZDxmK{5GG_?ddH!ASVJUESw#bM?DfChm?4>LBV2@^H- v93Hgg@Ojir99efEV8z#!i2>;icbOTcZ;^SjFts%gXgY(ZtDnm{r-UW|Y*b3R literal 0 HcmV?d00001 diff --git a/res/graphics/move_tutor/scroll_arrows_anim.json b/res/graphics/move_tutor/scroll_arrows_anim.json new file mode 100644 index 0000000000..c13816c371 --- /dev/null +++ b/res/graphics/move_tutor/scroll_arrows_anim.json @@ -0,0 +1,101 @@ +{ + "labelEnabled": true, + "uaatEnabled": false, + "sequenceCount": 2, + "frameCount": 12, + "sequences": [{ + "frameCount": 6, + "loopStartFrame": 0, + "animationElement": 2, + "animationType": 1, + "playbackMode": 2, + "frameData": [{ + "frameDelay": 4, + "resultId": 0 + }, { + "frameDelay": 4, + "resultId": 1 + }, { + "frameDelay": 4, + "resultId": 2 + }, { + "frameDelay": 4, + "resultId": 3 + }, { + "frameDelay": 4, + "resultId": 2 + }, { + "frameDelay": 4, + "resultId": 1 + }] + }, { + "frameCount": 6, + "loopStartFrame": 0, + "animationElement": 2, + "animationType": 1, + "playbackMode": 2, + "frameData": [{ + "frameDelay": 4, + "resultId": 4 + }, { + "frameDelay": 4, + "resultId": 5 + }, { + "frameDelay": 4, + "resultId": 6 + }, { + "frameDelay": 4, + "resultId": 7 + }, { + "frameDelay": 4, + "resultId": 6 + }, { + "frameDelay": 4, + "resultId": 5 + }] + }], + "animationResults": [{ + "resultType": 2, + "index": 0, + "positionX": 0, + "positionY": 0 + }, { + "resultType": 2, + "index": 0, + "positionX": 0, + "positionY": -1 + }, { + "resultType": 2, + "index": 0, + "positionX": 0, + "positionY": -2 + }, { + "resultType": 2, + "index": 0, + "positionX": 0, + "positionY": -3 + }, { + "resultType": 2, + "index": 1, + "positionX": 0, + "positionY": 0 + }, { + "resultType": 2, + "index": 1, + "positionX": 0, + "positionY": 1 + }, { + "resultType": 2, + "index": 1, + "positionX": 0, + "positionY": 2 + }, { + "resultType": 2, + "index": 1, + "positionX": 0, + "positionY": 3 + }], + "resultCount": 8, + "labels": ["CellAnime0", "CellAnime1"], + "labelCount": 2 +} \ No newline at end of file diff --git a/res/graphics/move_tutor/scroll_arrows_cell.json b/res/graphics/move_tutor/scroll_arrows_cell.json new file mode 100644 index 0000000000..2e34f9b084 --- /dev/null +++ b/res/graphics/move_tutor/scroll_arrows_cell.json @@ -0,0 +1,80 @@ +{ + "labelEnabled": true, + "dontPadKbec": false, + "extended": true, + "vramTransferEnabled": false, + "ucatEnabled": false, + "cellCount": 2, + "mappingType": 0, + "cells": [{ + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": true, + "boundingSphereRadius": 2 + }, + "maxX": 7, + "maxY": 3, + "minX": -8, + "minY": -4, + "oamCount": 1, + "OAM": [{ + "Attr0": { + "YCoordinate": -4, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 1 + }, + "Attr1": { + "XCoordinate": -8, + "RotationScaling": 0, + "Size": 0 + }, + "Attr2": { + "CharName": 0, + "Priority": 0, + "Palette": 0 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": true, + "boundingSphereRadius": 2 + }, + "maxX": 7, + "maxY": 3, + "minX": -8, + "minY": -4, + "oamCount": 1, + "OAM": [{ + "Attr0": { + "YCoordinate": -4, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 1 + }, + "Attr1": { + "XCoordinate": -8, + "RotationScaling": 0, + "Size": 0 + }, + "Attr2": { + "CharName": 2, + "Priority": 0, + "Palette": 0 + } + }] + }], + "labels": ["CellAnime0", "CellAnime1"], + "labelCount": 2 +} \ No newline at end of file diff --git a/res/graphics/move_tutor/select_box.png b/res/graphics/move_tutor/select_box.png new file mode 100644 index 0000000000000000000000000000000000000000..4a5b984e0629c864c476796af1e43dad72792528 GIT binary patch literal 175 zcmeAS@N?(olHy`uVBq!ia0vp^4L~fw!VDyJ%CdF?DT4r?5LeBhW-mv}Z~y=QU*h#Y z%ksaYec`6ru;wa^?!|KcXRdLy-Tu^qV%F=U4VM6JY5_^EP9g@ z5)!hdGjr#hnQm`$BvF4q%Y4h1G8SOPtS%X8IK&v63?w)J>;&Eb-UQBmLBn+~G9~~o z0)Geglxq0BpRpf+%gPvA4*W~U@^Z!qN_hfi47wfCl)~iVqq_!N+b7GM352>mu=)dUt*M-o26i zd-k=5SaM5Lf>$bJ6VZCr-Vroadv($JM$}0o*~^C#7Qjpyt7WC^Ty`WoBAh$M*obib zm>*Bp6TmarGmAZt?HJki`9fHP0PH0qjrBp)vw&jQp!HD!eVQ+=9gKA(8Ee2B*#y>D z>;OmrU8;b1<>%Ye+T;uQM7~)A`9!v@xr{w1->d&#<-PjvRo<)rUgf>|?^WKb|E}`L zX;JJ_z7w9dTcFJZ9(4cOh>z}n3!CH%`P2d5jNCX6$l#Mj!&7 z52%5;ZRF4r( zHqWA6M(bp>N7zUN`JIitKTd!29RDM98ae(H>iIdo2Yq?|QCFI=9$-2Rk_JJ2ETq$Z zbdRDsj>fBUB+q)x5@W`i8G8L`-ea_?+Mc6bMtkob-lw()HA<&CwP`mHEq+XUtjJHx zTMBz4*}L$m$gk}&t$kM*!S<(T(fIs%_&wGNcUI!e4&w|LS!+~en{aO+Z0(>_!`gsh zR7B(?G5I2LRJ)2Q7h~AUaF{iSnk)pNi|!qCAyGAi!);6ycWScGAwd_VH`1MmYj>`N z2zH8zWHQcYp-wTcg4&O~7b&Z}-~HYEp~^XxtNcIj`syJ6cxZj?f}t5x*4;^bv4pX* z%IV$T9J$tZzxzy0>cF)RvfGD~pI3Ely~jma2_Dtrj0JD+sVx##TPOeJ3g^900;iRnanL)-yW5IMNu+} za#2*2xQ-&|D1uob-UR-tqX=q3S(Y=hd_j`sZ8}PzqX=e|bQSoUjuNN|MHhg689plV zQR#}ZS(1)+rMI^9cAebbn?9ZD?HkDPH+RX~CFvij@3XGnfj;Tt`9XkFe7& z{)~Q#b&7Kt%$x(%*DR?mMI?O;=tM@{E^lmO9 zFPdJ(M0H{X9{UR9$9t}Q_Uu{Oqjs?mw!zQEx;gH_t{{1HtdFTr_cGqu&R)&1c#XrS8{T-mkJ^4yLdX>KcMNVj!8%T!yf9x-O!r)W20vq4s_4p}3 zg&=+*+4=l;mERDG*_OtTyZ_Ge0UqG5@Tq(npU!9SnS2(1mA}R-_-tMYPJmD0 z`$D2^iH1Tv#Fz0fU(Q$Xm3$Rn&EMj0^LO|fz80JiuW^z0>c3a{Nqh+v{kBy|%U%3m zY+O ze&)~LCw>2TZV$eRiK{E{px>f+UoP{vDu%W{XJl)C32$2v#kVSB`NP%2YloBao*jpW zQ#(?Hd`*MAqPA@?F=rip>tdE4&$lp!e6|~3bAQs58m_Kg)E(}x-LmRVHQ9f*Vd|<6 f1OK(0J9_)mZ~a3pJ6gIAMqmCZrp@_GO}6`g%aId8