From 73ccb216f56884cc8fba7edfa4e34a75b8b3f264 Mon Sep 17 00:00:00 2001 From: Abdessamad Derraz <3028866+Abdess@users.noreply.github.com> Date: Thu, 2 Apr 2026 15:35:24 +0200 Subject: [PATCH] feat: align gap analysis coherence, add 7 BIOS files, unsourceable field cross_reference.py: add bios_mode/agnostic/load_from filters, archive grouping, unsourceable field support. verify.py: case-insensitive by_name lookup, storage:release in_repo, unsourceable skip, trailing slash fix. generate_site.py: enriched all_declared, platform-relevant profile filtering, proper in_repo resolution on emulator pages, acknowledged gaps section. New BIOS: delta2.rom (XRoar), tilekey.dat + sprites.sif (NXEngine), Gram Kracker.ctg + cf7+.ctg + ti-pcard.ctg (ti99sim), desc.dat (SDLPAL). Profiles: hle_fallback on tilekey.dat/key.txt, unsourceable on 7 files with source-verified reasons. --- bios/Dragon/Dragon/delta2.rom | Bin 0 -> 8192 bytes bios/Other/NXEngine/nxengine/data/sprites.sif | Bin 0 -> 59482 bytes bios/Other/NXEngine/nxengine/tilekey.dat | Bin 0 -> 1028 bytes bios/Texas Instruments/TI-99/Gram Kracker.ctg | Bin 0 -> 7587 bytes bios/Texas Instruments/TI-99/cf7+.ctg | Bin 0 -> 5768 bytes bios/Texas Instruments/TI-99/ti-pcard.ctg | Bin 0 -> 71924 bytes bios/sdlpal/desc.dat | 301 ++++++++++++++++++ database.json | 127 +++++++- emulators/fmsx.yml | 1 + emulators/np2kai.yml | 3 + emulators/nxengine.yml | 1 + emulators/puae.yml | 1 + emulators/puae2021.yml | 1 + emulators/xroar.yml | 1 + emulators/zc210.yml | 2 + scripts/cross_reference.py | 111 ++++++- scripts/generate_site.py | 29 ++ scripts/verify.py | 39 ++- 18 files changed, 592 insertions(+), 25 deletions(-) create mode 100644 bios/Dragon/Dragon/delta2.rom create mode 100644 bios/Other/NXEngine/nxengine/data/sprites.sif create mode 100644 bios/Other/NXEngine/nxengine/tilekey.dat create mode 100644 bios/Texas Instruments/TI-99/Gram Kracker.ctg create mode 100644 bios/Texas Instruments/TI-99/cf7+.ctg create mode 100644 bios/Texas Instruments/TI-99/ti-pcard.ctg create mode 100644 bios/sdlpal/desc.dat diff --git a/bios/Dragon/Dragon/delta2.rom b/bios/Dragon/Dragon/delta2.rom new file mode 100644 index 0000000000000000000000000000000000000000..af37dc64b0e0fafcdb6a85b25c491beb3d629c54 GIT binary patch literal 8192 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 literal 0 HcmV?d00001 diff --git a/bios/Other/NXEngine/nxengine/data/sprites.sif b/bios/Other/NXEngine/nxengine/data/sprites.sif new file mode 100644 index 0000000000000000000000000000000000000000..46156a40d56e07b5764f8c3dc225b9df079c4d5a GIT binary patch literal 59482 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

Gn4ZWBiXND^ei?LVWkMW6Jg~DTa2*h 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 Obh`Wfw{QlK4gNp(LK~R? literal 0 HcmV?d00001 diff --git a/bios/Other/NXEngine/nxengine/tilekey.dat b/bios/Other/NXEngine/nxengine/tilekey.dat new file mode 100644 index 0000000000000000000000000000000000000000..6381fc79e38d590ec308ae4fc3244eeeef3f1cba GIT binary patch literal 1028 zcmZQzfB**|#RSF75TOx4Dgb?{4#WmPoDRfFK&$}7iclKFM#dmX(1vd(XM&++XfJ&$;h&-{*PXn-t$CJiPCK zC}zyk*%^!GFnySjiBV&i(aTb1Eu6DV?g{_T!2n1x9G7)X8sUx@j&qrNbxD>)Y?NX z!7FR#XL1r`=&VLbZh7Rcrh=L}xE$qAU-0iAPaTf-$;wqHu~9$90;G+Zg^N_r@kjm2 z8XtEyQFEr6{UuN5&n+csrx#Bhn`fW(8{QemvAb2em3ME=ihKN~`vVB-aL>jw*3jz? z9*C7bLr$fBwC1-(-Q87xi^G509q{SEY*3uYLw8*rY9C`)+>p zc47Ifzihz+`1pfWaaH?g9M`CS?0;QQ8u8L7r(M{3Ylp)suGGn8HmvN~U}6--e(Cw= z<)fbYy*idiI#MpQn@(ue5al114R5i>=|J%Y2vBs8Oy3wTu0KFe9vqcX-m&yZUoOVq z;6u!yM@F-pKYhVM_oxtB>W@`)X1g)Pn zA|2~nlbLYNkG# z)y=@CL>4-{Uc08OI)DI1f^SEOWenW%*dmuThPRDjHdr zlG0Gal9RC_ztp?zm`XCKY~q@)5Z7Ue4zZ+YN+q$ruXsjbCXGE57aF1q6LyiLrle_~ zGfRY${VP2D{iEr!`EfAt(Dwz;Ht@Ye#(-bq=jfb%z23#vmR(}cER5+%p3s={=>YG6 z&Qr29MXwUREN^*}tj0JU&=`16SrOpg>ZM56q`41PM*aO?8O%!LVsDE+R8UIHKMq%& zM%(p)6i#bn{4VRoppf>1FuX12+il1Dnswg&``Q&-vfUB$PFZeQMS%F%gcosl&>Uk-oeq)>|f&uAdGO0 z<$b+rtsExU!}e@TYOwbjE(W-fyBgU%rtRd8`wvu0*Mvv9zU+oaKkA`thAeaUAPxeZ z`DUa}>E0)r4fpi@tRC{#;Lc}$4a`lG96(9kIJ!nvO*w=+W`;>Q$_cg2kZE7~IlfRJzJtCPYl?jos_5T4Ebj# zEGD2SZPJOaL%Hn?;aaJTq@$7+&VipNM4y8S5Y~{LJ7~$oS%|O zHtl~7w&#wb$9IQpLkCD(La-5G_#qqPN2dIea$YmHM^l1q>ZuSsnk}A(ZXrWTbPi9i zb=d{7;nTW@f%2x*Z8}Dz80P%?U;QcbYhRw`*AP{lMhIhwl$lFjy|QdVnlvXE6p*8- zrlK^?cl9og`Sv?54CC>g%-09%7?fJzQN+x?h_mdf$DbW|<1yC}yPpzhXqb#U8To2j z>QPRd)u#U^oha!%WiFo8L;gs5D{Lg@yNyZCD|U)j{LjD9GibkLH=fPRQMIh;mu)Kv zpX}UGqeybjK7YW84ehyB_$d#|7$BdSl2#6_^R61D(oN;>W|*%oKd^C#W<>cH9V*@M zNZ;OV*_DCmexEC{VW@nU>1*R)YJyCg+E1P~(xpoDE2woDmlxE|Xu5L8)B|-l7k}5#%X!AI{e_35g~UiX zkAr-TtaejO>OqpkJRAJ8?K{U{#zcp|LszIxMmj-TKxzyUxH>6z#l?Gf!o-QQ2e6P$ z_jWQP3h3-b+FFj@MK3*P#i(p}q>6a67t=Rs4Pmz!K_cH#{-fi}j#mRy=zk2{bWcg< z9nwbl%g0mnxXkEB)oJku?b-g>5a*Z^!0>{#caq~PCm+Y>1XmhRZeyL0_b0wvBH|hx zvzLDeW!c}poA6=DPIeW&aODvxR{n10iz~ED|1@T@R=+yS+V7Vgr5+mXH#9H9_(SMCIKJ<2XTBpjoxi61-afdI6AFG=q)u*uY z{wGcHO3mmE;<$A;Wl|k8uctd4aabymd-D4m-SN4(J@&!NwAM)VYZY` zm%3$UNoJstof-39WNexi65W}aAw|i(COfxJn(Z}-UoK5@?Q5JP<#I5o#iuH+k5*Wv zwPKJX6P?xiDudmRWHS)^H$+p?+E`$K5$`j0Oli`QYzJ@{B&sR;evey5r27oqG+=DF z%R*X<83d^u!iO-iKD9Fu`##_DBWPpuX*0=JAubf@-H`B;9C8S~8#K<8kfUc9+mNIU zbSPi528Uxv`b19FYWZodg_%^RXzb0qg$-xT$4vxeg3Lkz;Y%HQ#cV zBFCv~ANpTXq}!KgI6Y6Tekv<}&kp#wuui0n1f{|={PsvTApjqSI4Vz?UAy$Po&sh+(kbfR(fl)vfv?ZO)fJ9lumI) z0W$$smDs#}s%B#0uF11U z_!gkmnuj!31)9m5s&XCTaxsTvxHSUlK2`SKi#hDxDiE%jYvlzQo2GEMwUG+f{G=bM zF5H1zX$l0~3MBA|nsp%*{F3>x2@S6mr?PoQXywZuqsE5LCkH}&6Cu6dcy+Qp37sf=ej-g2Lyi> zi$j4f2BvMVW&x>Lt~5cO@jeC-V`>+W@=Wkty=`jF-n8X@ZSU6G`4U?&ZutZOPbr?k zgczd-Zk(b(Isoqn{jLy`)KX!zjBR7ZFC4Z3qTV6M+(%73Abh1`**$Qr!;!(mr2I1C{ zee<&@CLXbS^92Brr;IK@HxXz^rW)Rx5`Hl@1$i|Ez@BxXGH|;sujS z)q)vVGoiOi$!mvZ~>jq@caHZ^)jK6ElHxQ`xZjpM0tNAryUK^NRro>!tv$ zJGj;Bu--(p&BW@?faV$!h^@MQ62S{->#;$5kJzP0*uP3_-xyAL0i!f@kymt6-m9pa zy6KmqF%ru(%*vFFjsR_5alGQVT?X2G!Ora*Q3-x!YI~Fl`VyVFQig_oYW&6eAz^Ki zmNp4PA7i!0;uVM;V`M`dfM|gBU4k17sW{PlH+1Gp zRk#}gfmnOp5c!ra8f)E7ta4}++R^-pBs~DYvrLa~wbOY#bF%1AebK3H;+J|Dp#m1; z9;+Zk(y{_)0*Qc`xcF#4FH?w4fZ zLO=Yp9w-2UhwTY7x1aim3CU+|&2`gWQ@X$cL`aAlT;F{0hx=8!&R^l;MIn%=ySZT@ zQyFk?)96dNpIUI^l1k=siOs9>4<tbXc zf)3->QRlWEJ;lxfYOkue47^8g*6qHusH%>Oy>x1YL~-=EE^%kV(DNMx=wq6LV@`Jp zKUMBV;s|Qhxow}5P2yupZ-I~3>p#ztdr!Ea?L=vhE*QU_GY&gfw1Hp(@xW7-k6r2a zoAb0kitwGR755Ymz^y~i^MS{7;qt=PU+MF5#nD_-KP-X0KIGKqm+xC>3CT($>n>Y^ z-+?WVu%%skKu0X5kL%)E5>~aW+R(DisV?EPiWeK;1Lf&(`RIJo7JBKs0Gysmx-EtU z70XKkZ!*Rk5Bef@N-oz|*-&k^VkB#5()>e)B_JVyqH`{DqbOF_O5H777;%EzzM1xH zbn?6)NWto+*3oETRijC9J80Wa+Qi$O8*I(Gy?;6anS=HH$yW>2mjkU`1&Cm=+LOvY z9i`YDYsu>ETKu*{L*t9vr|1u74odL)hn5K2=IMW3Z+RzDJ0!}{m)CZ`dFfrt&}DTA zTc|~E@yo|HFIp%OL#fe!g8$!C%gZ{pzqQ)hQJ96k8-e_$`^(qYt>FZVwlk= z3pWFkg*W(s6(i`$gF>U^5J)Yqd05_c6(1iOe_X-8ztk0}{r5KncY9#!gEMXzk6}&} zf}U26DtU3}h-R&8=XW_E)n@_^AjKw;gCp=UR!5wl>~X>a*(mR8usKul7}coC4Ob z>IC&6zc0r=Q4~;ed3T_`N4rPlTT@9Mb?BWQS`jL)H~BmVu4hTHH>$gPN~Ufx^qPAKO6b^2fO2Rdy zQ&Qb4;j+((_+uR_>wz)Ei_X-4?{n?w&i$n;O$Bh}d&FKS{bsA2?Rtf|3RSjQl-c?` zP;glwI;%?0ATYh;oxx@9pSGchwLKHZUN|u9*AB^pZZ|F5lKZ;Km%*=cO@nZy@1?VG zulb8{bnPR-E@yMvB784c<6!hrBGj;%wOniHckMwNbtbbtX=Hmhr&HgxTyIY@*ROA1 zf2Un|m}?&(jSt7!Dg?*sPqXI(D{w~p<~s=6wcizceQF2#r_Tc`4ig(NfSec5Q>bG-rjub+WEl8!3 zR`#A9J#>BL0f}wRWLlfMabI!n+bvbyFI+uQNi+oITe&}(AUU|9LiZz`ckgJWRWL*n zG7oPnfERZq^Ib~>AZcNPXe<5jM*2(AhTuQ`I&=RoTlWX22i2W%Z#9l;J-xGKe~))x zKHWXN`O=xnQ)8->4QCS4?@3{xLglFH>xqr|iZkaCjS(#ufxA#Y|L!%;tmvf#;~!LU zIL=v67fY9jTbr%>?W%p3&LJIfTxZ3EFa&Rp>%#u?wDnonir~c=W85IdRsH%ujB`uY zV}IQ1%5rg~%&~e>I=$8!KK%9A{QJU_zdS2tB8zn4>sEjK-S$O5@If-} z?{zQIX0~6qyZRNuxMwS>2+`%s@%JM7`pY^#Sp$p6sHEZV;jh>0IyF81go{5xt(0#? zTORO>a9z^yf!^F8Nn(R7`Jw;s^;xGcnbQ(`Fe!M9t#6;RMU7bj6i*m8{>f`Gn`S}{ z?{(vcTgwJFDr}HFI#rB*lrObj!2*2Dw|ZUl%I-ESrIYaaR?e+Hdka(j65r{B_$SRz2Zz>NJurEF)r4q} z{?^5d*qy7xG>`_(eM;lYuO3|+77QR~0E_BhGH0b_Xg4dx>3$w_R%muJ5uEPu52<_t zw9KAzdEUl21mv0Tw=R)Kr!KB+Z1ejuYkqK0KP2|*{)*-&4QulXuE3v+*xXBIMPPh; zpgy)%QW;j3ZfNY~OMXJW;T%KV(ZIo1%#@iL6;xrii73IFycTzoi!#ja-+9dEieQz> zM}sP_3d=Ib1O*Wg>MA<$9$<6e+?L+dcJ*8m(OHkF6HNL(&yp$uVQf6_j8YsQT|~DIZ-3_uPDpgRQ>ds8I#uVSyRlx!B7Zda_krNa zNu)H(KVi72tfXe$HX=Zh^#nGVKqC|Ngsl%Bth&9!rx^|;5EcTpx;`25OR+|N3t2S0 zlhXZ%JUmeS_Q3nWmW%FsT^)HK|s|-afhM^H@=D183;~%xcHlC2N(QDW+r@)ds z=|16ddBl`**Wbup6UOmfz%Qcg>m`vDfDd=k=p0JguvR(wbcnkS16Qfbit^IK{!@TM zZ#qib20?1!llp;I;7#YKu)!ei`tY824B~YWFUlON_Xhk2Xzb{c)LTo;ZU~e$t$EO& zuo2*0HgcNE@mAlv$S&c={x6>J%fxLkFDV;>(Zw|_pDUOY17K%(4#q_^Kb zlzjF0T)Z`}+!d(YC!?OszSs9?xh`_LKY#lQd8EK^RiA=Kpy}IM*sXQJueTKOcL_~o zmZ{b?E(eQGoB#bI?#>x(y{v3*!l;2is$Aqe-ZdWz#y)G0_H%YXTVvEsWn%dL7D?}T;-}{7G;CraisSy zdWG!ePLF&0`GesH=OyMt`tm!ANOsm1qceF!8nf7~7`X5ISTONRYyo37BG7yzc)#5T zTY6qN;8V3^)W#*tYNOZGn~h2yzpVG{nh-{$Q^sVyQO#?F1=*Zk zrVr;WvYtUmf0DD{tT)=N)CJ=vZ~h9-d1c*Fa*J`g8(hP+Ug(Jumf%)zt_i0#NR;XN zZsJLpB;kXy5=aQZGM!-!!TM&=pCBGfRzrh?@dG0vPQhOWGPysf%6i(JNGZxq`1c2){NOg zxevh3fC6{nB&qG-X5*}90xPwJAq&kJx)7i)efcVTTU0@*FCN6vcs_bq@*rqFlu>bU zI%d6qwE;{5a74vY-M8q()S^3*0j|h0ooBZ-KPeREBo?5n)e|;%%X9}oIp6Hg)b$sF zQZ~k4nRMbxRHo=QF1%%nPqI+euH&z=&@Lp)Rb!o^yY(5rxKFr6y+m1kv1jzU!wry;gb{!bVoMHqv1dV(0L)piINFh(-bkL+#Poccdw|PgAx;I z?a=X)if*ku$`l0%OEz3HTX8vS16ch4Ua;fbpL}@dfE4`32PT@M{6x zg#V;s-=?N5wpC~-#`&l$67iARL&3xCM-*-%F2~+LEr2H+Tc#T?rOZGHy{-pUI z7MBl|a_{_2RN=!1Fq&|w;QQl_ZZNm%tu}FN`Cf9^cRjg`c>A}BMH?!LU}7(GZanW9 z)%Z>Tlo=t3#i1YJRsk%rF>wC*v4g&Jbx*rUo~hs&ns!3CGs0aE?uu|Xgu5gB{{R-l B6HWjC literal 0 HcmV?d00001 diff --git a/bios/Texas Instruments/TI-99/cf7+.ctg b/bios/Texas Instruments/TI-99/cf7+.ctg new file mode 100644 index 0000000000000000000000000000000000000000..8053393a0bf9355068c73948fbfa8badd0d8e65e GIT binary patch literal 5768 zcmbW5>01-`*T%mynS@CQFd-o%fG~j|5kZEf3W7R;fKgGxrUAFGh!IdhMA6bZS%9EG zqbQ=HMnJ?31B%m<$c4+{$j zk>Yb#XBOrz!~OB7m?;xkF5v%JI0qmQ%$`X3QdR(g>j>_OLZ}$`OI`{h5%5Sk0-;7E zI@5%RNuE<3h3x{179@a3J#;`NfLKPG=z|KxkM!g#ED3?)+UN;JW_OK=w>!?adb1wx zQ>$$n`(AjXw^`hj(xrK{d?S+ned+wJa&CKBti!uXNxL}n?f;E1?T7^-=^&95{uSEcQ(oO zn`kqXqbi#`9#;k8G9CqgI= z3EdM^4$F+F9DpDLN>ud%cS5T{>L9uXX~gDAQG1LcQC|S5#6o%pE{G*GCc(AIpl9lG zU^Kxic3;z}&{aMYdI6y~#tI?5iF^s`jlQbdrt%{W!9Wzmssm!;7V3oydK$gF1O_Pf z$`BV&iN2da4{VrAXpE?uk^;wu!SFb&ZM0hqmLnISL~hUJ0k zOBfs1v;+x70ttcYP!PgEdyHHt<37xCcyhJ}Mg!CD&$yYR^=FX$Nq$ZhG`F-Z^cb_w ziBh>C#J&;mIE2NLcM4pj3Yd9w?0ygQP;zisbq&M#o7|=BA7z6gUKeC>HqEwUGYfx_ zAbFt_5cRSLfUAxsxmtlPnh&(x&z~=7BU<-g9j!%0TMH6ZjO8aNo@OJW4ecoDrm(KQ z*%_c4XbA+$pn&g3K_yEDAbG^6sl65z%AXeW>UQ9r_QZSB^(kK}J|p0@=i3XLy=E>% z;&Cy|vH84XL~@8VfGD_^iM3H5!YJ{4mb%dr6FEtjm8Nz1^-|Uf8c@E@s}!;Q39KYQIh+R ziUu+P?o`>@e;#6>kwH>y1q6r>WUZSz9pDfV$W&3nO^+#W$m^lR#UzoRXn%h?AO3tG z@#VNGvA9e`VIm2D0pG*@-7F~m@CnSnLe0j?*=c(?nmh*db8;S$_JIV%09z<2{cF*# zkqtR15Q8tjpmjZ7_~#I8P=1~aCY%+t2~G8fPB;Q(2$b1xSRUNrE@U_vH&A? zOR8!ZZzQ3{Qdc)4j2u0Ds9o6D_JF2V`wqXT43zoZfia zsqpZ-gS~rjKhmS-+Sv})%al&*dmR9m_e$sjPXHk*##^ZoqpwoDV~_}Qr^4nC_h6Gd zY4l~Fm*K0m@Hg30zrCn?fi_%i0DLz(wc;j_YNzi9mm?nErj|e3kPJk2b4c@Dm?vTD zQ2cS73f@#I_tHr%6h*s}WnvD4!_Q#5J8J;&Z)q=YLoO>hkQF82=k+un71!-F^Q9*E zezEYRN?ln|2*jDNWslZ21JEnz0}wT?c&P=%iUXOF$3rY;2b+ktz{CNTGmDz{6Ds`t zbG*^&yt3^$5E<>e1d95J6+DN(hR^jr&1%f@Z=|wY0Nv?yxBC3}DBX1;W(J$wpiN|>zYw@qAbf+h|AHK({QeJL3U`FAwmf)em z!C!Npf49Q>!>Ti{v%fj5a31KJ>_L)+oli#~hVY)5VxB9}ofcD+RbcDq7d<~6kV<%? zNr6Ick!M?Ryz9D&759kv^#;L*i|z==8U0nUr(Of@mwN$C^T3-ARIY!;Mu;UV2Erdg zuO}gPRQf8{BFw4&NKH$FAF%qp0CozvrTJvgQW6o=m+YjZKWvCA`VXVwFiLFyu~XHP zb0G9BJ$}cYF0?ONL(mq5je}BQ!ro?IjAA?iM z|Gq!9-to)`xPD@7C)#OME#7cT024pvUhCMGGWKZ3Ym|vafwak`-3rU%n8QvIb{VS{ z@{S6WzBbq<9b?9M+h1}$8R6KT^=hrRTkjxlw{m_{3<&Nzen=Z+I0+OWYAhLbSo!I= zO+72_+dI^8UK|^22@&pnke5}QzW50rn@gKsAf)K6D@!WCo&`r;pRqM&wuIszg?|eU zo3HA=_~z^<2sbED9Bop+x}daB8wL1VP~D zSRK&2Fh9~nkNd;UbkZx6CW7jropy>5RtYq%s^Af77$L z^b#xkz2GA4@>n>hzQnoMgLW*q=}CMtNcP$Ucn?A_Axd+ZQ8c?i*9VLo z)>@jPiBGe1q&ylXZ15ZnaO|6zbwVCsmJEDVtjn<9QRgm6^KM?X=yv@#?IthJI;Kr_sCQCu;jxJ4+5pNX z^FuhKatXWjHvG0(*xVl8aJH(jH^s_X+?|2rJ_*neG83II-G=m@o{@Y^mtT|Cun(9> zXkDBz>zv0|uu6uM>HpBrJ_@F_Iy5iN%s69L&Z&wrO&ne#iXTEo%&``gd%0`GqnZg9 z%MtTKAs%OE;()_G_7;~J{Zi7bKrGmN&es{G&+0qDviWYkE&!;a$I%}IA1bcm(kiY< z4ZN{PrxHc*X_v9-Te)f8y>DlYnCO_};_8DtDB5}}wSMI9(BAJO`D!7qux`iodgr zSJ3_GK_0uF>@k+CP2W3LqAD~pFpLhtEI>gtoW>-$hEcOY9;ukq1W$B2%t(UG zZ-}1QNjq7v03F|CckGzOi_!d zW3yB#Z`q}cw9{aX|D{(ko!FcKe6zQKE!O}t(G0wi&ggD==kiaZiq2&OP;R5Hw#@T6 zhQ}K@fDM=$GXCbwT+5u*>t8LI9uIf%QAj`*)l<7q&$>_l470GEVpI;rU$w0^e;=>K8kR|=^z9o3o8N@+`z&agTkqS_M=Dlr-DC zLzZvs0M~qu(BZA|ic!!~kI?7=_udIg_a#IC`szMyFs!3l;1+sJF4~ZgCCNUlDBJF? z=mCMlB~j7LTc<(vue^;GP|Kf|L+oA(RGUMQz`pn-U)~jDKL2=Z-a=6h7F>BDa$(Jz zA9S19_Y*z06}hv!$8xQkA-N8bUvUfq^dr)`u7P?*wXI4{naJLrU~{MmfIPHgBkfQw z*mW=-Z~BSCw}Tm$G*Dj(S6aBtmuLQy4aSrnj5w5rAE6nD={ISbSz3?P{W zmgn)xfT7U-7SjS84gx@Be_`GnMOc_U7y9RWD#~R|;M2-i#gEQX6SqM6oZ->y0T1V- zfC{nNP@o|ch~5}fuCH1#636?^MA1DV`QjwT{y68uZ5MJH?a=|%x~R#nYzNobpBHYr z1$UVi9QC~x?3c2Iq<}LK5~Xkw2Tfz2uG)L|X|CUqeWGi?@$~iRV(3mFe-9Nzm zhtCsqaRpXGm22r>m8zf8(7{ri_EoByozcib01Z}&N6%RNKn&VLQp}7)eZvrZJ6QD#{uAQAPG>%uF}rU+G0HeXDG_k@Z_slMqMtheB{mWWA=?Rn9W)+ASeNlT!{yhs(30|W># z5t1ra8yz5wi-|XgNDvnIHP5$Mx6^N_O15^&bttjROOx*sav&_hK4Oh*0v+l-a? zrI{U44@#87as;^c3IkB7`(44LCHUZP9#ZlDn1^=U*hhdyy8t(?eDT0X~?(x`vpFV*=(LfPI(^S#ZJn`pS#ZDL$^6Ou-6d+hTclN zEBvo)KjJ8JY+;-_=&UhfAhigYqH~n@*W8B~zDIdcz_WMRvZ%!1LfiDbFA@AdymnaT zhd6l_h99V(bFkTTNIiY&?cV02yI9Wqw`w3|gKy>7)iFfuKXF#-gOT^$JarG8T%#E$&8o@!*|Sb>|arU}2;CZ~fw| z1M`JWS7+dO3Rv>!>b@>K7BaU5Q|2rekjpHMIkGrKj?mJ+dr6}#{1~d&HeCfuR3?VD z`=hOw+^$5y!$^6@UUTk-B}Cge$~;#9(?@CA9$W8<(~^Spm9Z*jD8Dv^9hKzr*iU9S zVOvdGcE{pL??<8l$rFKW&DqH_@_7y(jY)oG6ksx%ai*h1kzodb*Be`Mwq43BvGh1w zCY-mmiXT$Mg?lxsjISOKsmvj=0TyZzX8;lV zB{h(s{6H+%sP-PWnCG~-d=`PNCAP;oJ~lx6X~|ACJS#gZuHiAD2%PbDd}G*oF{w8D z*{=11&sdvphR%{IY+T4gpS}+W_{m8;$BY<=yucVB(gT0^4VDs3}im9`S?YubC%B2rB;e_K`o2N3VgGxY;RLi9yacsNdkR+RSvN~w?pxZ zCQ5iaEzr&vef@M04>vE`B*U{7Hw>bYp0B*K8k75FUc&LPOeDir#ai|EN(_T7GXz!1#Ujql|74 z?oR1Um6WJPYsHzQDwoFo>BHy`&$dWcW$M9*v*ji0OS;#4?r7KZnUZ+W6DLa<#L=(o zk!n=Y6*t(xb%jace##XPHgio$aa}jS2*;sU3^QV(5c`zgV)r6UBjM34SrGA2W6fOK z+DL1~=_3x@k^i(k{@URH9U7>U1ncDA=+skmhA>@oxUOfKZg_?smFgwa0dSBiXEL9x z)vs};qcioxaR8lbGaRk|FpDpC()TDzniERo^GeinN(8AT=pwy(iN0A`DoEE4XO<|J z12m7GPOd}w6a38va%X*O|7V`tgMS^ zWjmF(Y#-Fh)=TTP9R(erZi$ms0iT!AzA|9y}H01Cn4^^8A50tmRH6;atJ)Ghg80nkdc zd1lANxeor7``lYJ1>Md8+|^Gq&FQ4nxaP?RQ0ql3@y=?YbO|RLi5_evhwl zJl}ppHDVf&QUi7ef*L1)V207`tpN;~g9CJsbmjBnQj9mP(Qso-m$w{8grji9#F;WY zZpPY!Zy(J5f^$2x>vQeRY;pF8e%(4ypdfL8p#Z2n9Kk)BM}Z?mXXG}tTmp3DUic{H2wq!u91-ms zk2@lYe_6}HK6`b5t5ibL!N4AGMByd3FCPrpkw9Qk_RK&YX?HG5N79VW*LIRXifQzUdWVx^FdKpDb zULoyr=lT`$i`$C0WIp3F9^=wN4j6j!Y)d$-r3LcN0)C^#^&dC05GbkJ`?M8@-SwHE z#otvM^hv}8TTmDkivMO1prQcHa53I6NtZ$4$Qq^qAaS5oWSvjcpz~iksoJj-FoOlc zvYAn=Ua&fs7BNKzif!b;J1Hp+Z{*i+P6b^!f)`lCUNN=uE)<5Sg%CqJ@;p(G6Y6@B z_H>n7Xs3G8A7i}r-T|Qm|mfQO<8FF zk6jKokEPX4x)MNp)j5YyoSqX6q2B4D%{P5!J1@4UlnRjg{)+&2Dnoblt>z#C%Hhj3 zM~~ZCDCAZm+;bOpYK!5Fc}t7P3K&kf3Dl&Qz$+t|tLMsSuYwu|4+aSd&aj7Ff8Yga z31115&cOwP0%RY(Ds?r|TGQHu3U7G})06~JPO*DZ*_|FmsIWej>j z`w!m5Hq9Nsd-pin_(hJ`c2gSgtNK7$vip{b?6O>Kff3HO-zTv6@R{IZ?t(JNA8^qZ zG#V0(l3+8;k8ML>3kuiJO8^&(0ZQT?W2k|u6fm~SkX}WkdvVXt2Z$OTZy>||*T_Sr zryi;k%*$pt^-f)+^7dg}Oj=(|O&<=tkb&&Nja8fzHoWL&&;foE}QjIF$tF5M*x}U!(|!y`x~b zpg>HF9SDqk7e^vFjpV0RgI=6&(o9v6?&CBjpjJo(Pz9_cdSvRR%(T;he=+Pmxbrb* z%Ac37MJd`=#2E@vFfOMY#5!z}`#p5tfy|mSt?L=Q?y>(ye-4Njr#H}PMv|C|wZZHt z;;CzV*?AwI^YXnrZ?0ug@YW>jd0r?Swn=Y_*x8-4?(6jWR6ob_CaEEvc%GfOwsKJ9 zrJ;kR&u{F&<|+6DBiQCK?0L}OJBwtb;3uxPFKG0D1F=rA(p|y)NxF9B-|%u#MB@R%B&WaHXK8-@UdggO802 z=7Ne|yl{?i;P4if@B$G18wtT%ejr*3tn46Gi%CtsIHP z-_P|LPcZ zev(DPV8qtHX~(KyzrPsZwesNG{}z9_Z|^hPD$p{{wdsZx7E~1f!^!9`>DOLnypOBb zGmKP_GiDJ>;b2%Yh?u6A2=ecu`iCXN{l&YRFsiylUBQ?Q5tG6Np}CA1hC_345FN}W z#aI7{wwxXO`TnwWk?u1eHFzyI{6u{3MnX#MKn&=1wP~1h>(1FXI&CxbMRP(}xXJG9F)X-6)ZmnqB zB)~S$DOJrc@T%%-6f&2Pwj@a10~mjt<#MruOKtBde>>g)VLa)e8p~%`p}|m0b5UO% z5woJCAaA5K8dCkYc)~>-B$ZvfI*Yx^Yo1qCTC<3CtRmU?SAr@PQne_qsNi08&0O85 z894a2?!}^HUI%P=3IPeG8zE+BVfGV1R?3WyKz&t6am7B{fc%Oh_5;jB>~5$%fK+TY zC0UWB=9nOu20dTb82KX5KL_;3yW92DzrMWvYuEC8G}^WIc#!HV1U|*lqbD~WsC_>o z+zO+{M>(m6K9xd+MUu)s6cTYwS$9rfLlNNlDvB_Z1kX43gFZoI+ zqPc&m=)|b%a4kqi0lVC?S7yBI&ogt_znxcvw*ZK@;Mar?<)_X+4N*O2@J zwI`@;#;Z6HEn~+(dxnG$N#pLhvE+q#o633NLBc=7<1wy)K%vYU|=}JDoaP(7Vx9SMaa94l!gbhb> z)bt)b3T-lTK?WBdyzSl|+_Bf;ST6_2L3+KN?UmGFwDU;s0uE?v(O7Z6;6tzeraG|zo?PwJm#=(LY7F_^Ti-|KpW#)D#I^UD{bzgrxq9b`YsFMW)7?rm<^n+< z1VIo7hDDzlr~#F-3a@4;80dDBgh7P`L+~!OTq%P=i;_|1P)>V`0Z$?}cIqN6y}`o%QE2x6jMe z05(uH-b@Vau+@nnXwbXHgJuG+Yk51azxuFwU3rwZtS-)TEcRv@(e-2Mz=vM2q~UU4=3z3$MXVtnAC+8a50#df%x8QTT0(1=3fA&s(31JBp{HkE0J z(W!uoJVwW0ovl z;U+*0=UYwKlL9p@v0*r>s6dz=5Y^Jd%AYo)7C@(|vVTv%6iZ8g>^Ubgf08|U@9S<&` zKnl9i&hcoTtlC0Mkkw=-=w&OL6Iy){GQEGv8kTnQzDTCaPbq<_iKkSL{e)bVxKBw# zX_+o`%q_krZS{cSy}K8_xEVPI5Nm^KA#iLy6Fu|#)TxFv6s74x^p}23E8JzP8O&W4 z9~H4TJ>^D1H`$5rPjRVtFm_SMUX@9rq!fn9c*w~ApyUv=$7GdaJc_21g=u%DICTSE z_=nLfwJp*_TqRtBUA!JXBp^KN^Qha*cj?3%tWkFUcS_4?3=%O5cCYwor4eX|-n4s; zDJ&>0;#W;5%wKSZf>}D+WeM5y&~Dtlp`PmC7Yh@^JMS+bl4au;fnFmpO%Il))5RrrXdg|BslHSfUa4w2CzFXfJmEb z##QvcTX0M%%Ac%?eBD^T0ZKb6#K58iRC1O=!sSzdGvbFFsA2*79|T z+I~n(gbrn6W>&L?y&@o(Nc8DoFe0Gm$jW|`dSRe>5>OL?bK;+`uQs1dS`&SHL$_?( z`o5B=t*@?M=(J1_i1vF2%?PBpHIiJ-S$PcvQ08!|B%0)V&YUA`uE>b7)H|;93i9CT zX`=3(UB44P=dXRdqUZFk_d0nuw11of*}RYhv$FiJTnU%2sF zcDm6HJDJu(WjUdf!wR(+Eezo_Z5wc;9;Va9WpLYeIfSy6ldK9w8Qfp@y28b>zf-X! zH16Uas^W4Obn%%5=lesdli~efqZgT$1>H=_aL}12N=)f0j=F?Oy5lIlwO?IM$~aie z2kkTm-T!CU6_>Y}FPY(e3>$ ze3vn6ufcI0lyBW=8F~$e(nBYtJd#%G9bMlWF!3HFo^ymJ0Tsqg^NXQa3;;ko)Vs)@ zbHF4?IqBgjStl2E0Jt2jtII(hI-id)zK~7fGnWDAe-NQFlIq-3@++H9BjM=-xxyr$ z1B8G3#wmIC>Quo%;omYbYnrR&Ahx#u8bDx3ddp(X+fN(Xk8QukxUZ`?AZlqpmRngj zdsXqkfmcR)pN_&M?38YrJLtVUxoY;5LK%BO?y;o@f?fwlh3O^0?F$pME~rqem6QEY zG-+#Y;M-q@R0;0j`gJyU=Mo}tBt_RrA2b&j(}r+Gd*u_` zIk>MgQbp|arR{aNyYU&_=s$B}d(Fe5f?(H~Gx|BnAHmJJ)ZeDlhVqr41#qTaJh7wl zHZfOnGdBfFp9}w1G-H5DMn&J~4FYZF^OTJjCJ+Wrjz=_(N5Y^HmXS5UBP9j^i{k)E ztF*@NCBGZ+VI>n4@ULYgQ)92`aaHkl{Hx%YO~A7P5))jQHpp$Z&`@Rdx*=gsSB7ad ze=sXgwN&>?mCb)9{%^{ljVx)vbWD^eR`$Gq_LZS0Ly=HJiERPceKSJ^w$k=!KSM9b z*UwPuSME{wpo_yDJ9y1Cawxr({;$NLc6!;gtILnvY$(VkO*%2tD2K_w1fjz}bAG?^ zvrwH@cB!8Lp_#9PpVA3UW8Oe!85iszur)T9`MB|`yc0YQ$~rr5d!KmeuS-K(CN&MJ z1gUF~QZ+*gCMn%L*NX~0@ZKYeO>_A#NV1?#5>$qor30F7lYEUA0*E*l3$l$*ha!v3 z8xXbP1tfVigr_6_gSl~7{FieOU7;2eYJL^S z<^sd&%C)7y7&#-ZlUf25H016X8td|)#DQpT4d-mR{@ft#{8F-H677E4sXlYl9PQWh zjQEqGyhk3*d)eKo{da@~9d6ynS2#+#9uEebXNVL(fYE$-y2LuPgU1NB6ee zjfsLzzy10jojCPjtjS%AjWv1)wGRD0s`381?1Gq_{plj$7zoqXac~_cuH)o&+@`Q? zA63_J^>utfL%xxPxmA7@gA#2tMVs=u#SmK~&OaGU@}~Zi>}D`ci#HF<`!bDξ0J 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 z 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 a7-Tadcyo(UW3YXQ GP-IB interface BIOS ROM (8 KB). If missing, GP-IB emulation is disabled entirely. @@ -198,6 +199,8 @@ files: - name: "key.txt" path: "np2kai/key.txt" required: false + hle_fallback: true + unsourceable: "user-created keyboard config, no default distributed in any NP2kai release" note: > Keyboard remapping configuration (text file). User-created file for custom keyboard layout. The core uses built-in defaults if absent. diff --git a/emulators/nxengine.yml b/emulators/nxengine.yml index 8a406e93..25df3828 100644 --- a/emulators/nxengine.yml +++ b/emulators/nxengine.yml @@ -81,5 +81,6 @@ files: system: cave-story description: "Tile attribute lookup table (maps tile codes to collision/behavior attributes)" required: false + hle_fallback: true source_ref: "map.cpp:290-303 (loaded at init, hardcoded default if missing)" note: "Not part of the freeware distribution. Generated by the standalone NXEngine extraction tool. The libretro core has hardcoded defaults in map.cpp:30." diff --git a/emulators/puae.yml b/emulators/puae.yml index aff86fd6..69943b2e 100644 --- a/emulators/puae.yml +++ b/emulators/puae.yml @@ -247,6 +247,7 @@ files: - name: "WHDLoad.key" system: commodore-amiga required: false + unsourceable: "per-user signed registration key, never distributed generically, WHDLoad free since v18.2" note: "WHDLoad license key. Copied to saves/WHDLoad/L/ for registered WHDLoad use." source_ref: "libretro/libretro-core.c:5985-5998" diff --git a/emulators/puae2021.yml b/emulators/puae2021.yml index 9b98f4f0..a027d60f 100644 --- a/emulators/puae2021.yml +++ b/emulators/puae2021.yml @@ -251,6 +251,7 @@ files: - name: "WHDLoad.key" system: commodore-amiga required: false + unsourceable: "per-user signed registration key, never distributed generically, WHDLoad free since v18.2" note: "WHDLoad license key. Copied to saves/WHDLoad/L/ for registered WHDLoad use." source_ref: "libretro/libretro-core.c:5903-5916" diff --git a/emulators/xroar.yml b/emulators/xroar.yml index bbe81d59..f937bd2b 100644 --- a/emulators/xroar.yml +++ b/emulators/xroar.yml @@ -397,5 +397,6 @@ files: system: dragon64 description: "Ikon Ultra Drive Dragonfly ROM 2.3" required: false + unsourceable: "not yet dumped, only v1.3 publicly available, XRoar support is experimental (#ifdef WANT_EXPERIMENTAL)" source_ref: "xroar.c:715 (romlist ikon), ikon.c:151 (default @ikon)" note: "Experimental. Ikon Ultra Drive storage interface. Older version: dragonfly-1.3." diff --git a/emulators/zc210.yml b/emulators/zc210.yml index f5d8bf51..cb988734 100644 --- a/emulators/zc210.yml +++ b/emulators/zc210.yml @@ -138,6 +138,8 @@ files: - name: Custom.dat path: zc210/sfx/Custom.dat + category: game_data description: user-provided custom SFX replacement required: false + unsourceable: "user placeholder slot, README says 'rename your own SFX dat file to this name'" source_ref: "zelda.cpp:1193-1218, libretro.cpp:148" diff --git a/scripts/cross_reference.py b/scripts/cross_reference.py index 83e7e8d4..4fa7f7c2 100644 --- a/scripts/cross_reference.py +++ b/scripts/cross_reference.py @@ -140,6 +140,20 @@ def _resolve_source( return None +def _resolve_archive_source( + archive_name: str, + by_name: dict[str, list], + by_name_lower: dict[str, str], + data_names: set[str] | None = None, + by_path_suffix: dict | None = None, +) -> str: + """Resolve source for an archive (ZIP) name, returning a source category string.""" + result = _resolve_source( + archive_name, by_name, by_name_lower, data_names, by_path_suffix, + ) + return result if result is not None else "missing" + + def cross_reference( profiles: dict[str, dict], declared: dict[str, set[str]], @@ -175,6 +189,10 @@ def cross_reference( emu_files = profile.get("files", []) systems = profile.get("systems", []) + # Skip filename-agnostic profiles (BIOS detected without fixed names) + if profile.get("bios_mode") == "agnostic": + continue + if all_declared is not None: platform_names = all_declared else: @@ -184,13 +202,28 @@ def cross_reference( gaps = [] covered = [] + unsourceable_list: list[dict] = [] + archive_gaps: dict[str, dict] = {} + seen_files: set[str] = set() for f in emu_files: fname = f.get("name", "") - if not fname: + if not fname or fname in seen_files: + continue + + # Collect unsourceable files separately (documented, not a gap) + unsourceable_reason = f.get("unsourceable", "") + if unsourceable_reason: + seen_files.add(fname) + unsourceable_list.append({ + "name": fname, + "required": f.get("required", False), + "reason": unsourceable_reason, + "source_ref": f.get("source_ref", ""), + }) continue # Skip pattern placeholders (e.g., .bin, .bin) - if "<" in fname or ">" in fname: + if "<" in fname or ">" in fname or "*" in fname: continue # Skip UI-imported files with explicit path: null (not resolvable by pack) @@ -202,6 +235,61 @@ def cross_reference( if file_mode == "standalone": continue + # Skip files loaded from non-system directories (save_dir, content_dir) + load_from = f.get("load_from", "") + if load_from and load_from != "system_dir": + continue + + # Skip filename-agnostic files (handled by agnostic scan) + if f.get("agnostic"): + continue + + archive = f.get("archive") + + # Check platform declaration (by name or archive) + in_platform = fname in platform_names + if not in_platform and archive: + in_platform = archive in platform_names + + if in_platform: + seen_files.add(fname) + covered.append({ + "name": fname, + "required": f.get("required", False), + "in_platform": True, + }) + continue + + seen_files.add(fname) + + # Group archived files by archive name + if archive: + if archive not in archive_gaps: + source = _resolve_archive_source( + archive, by_name, by_name_lower, data_names, + by_path_suffix, + ) + archive_gaps[archive] = { + "name": archive, + "required": False, + "note": "", + "source_ref": "", + "in_platform": False, + "in_repo": source != "missing", + "source": source, + "archive": archive, + "archive_file_count": 0, + "archive_required_count": 0, + } + entry = archive_gaps[archive] + entry["archive_file_count"] += 1 + if f.get("required", False): + entry["archive_required_count"] += 1 + entry["required"] = True + if not entry["source_ref"] and f.get("source_ref"): + entry["source_ref"] = f["source_ref"] + continue + # --- resolve source provenance --- storage = f.get("storage", "") if storage in ("release", "large_file"): @@ -235,22 +323,21 @@ def cross_reference( source = "missing" in_repo = source != "missing" - in_platform = fname in platform_names entry = { "name": fname, "required": f.get("required", False), "note": f.get("note", ""), "source_ref": f.get("source_ref", ""), - "in_platform": in_platform, + "in_platform": False, "in_repo": in_repo, "source": source, } + gaps.append(entry) - if not in_platform: - gaps.append(entry) - else: - covered.append(entry) + # Append grouped archive gaps + for ag in sorted(archive_gaps.values(), key=lambda e: e["name"]): + gaps.append(ag) report[emu_name] = { "emulator": profile.get("emulator", emu_name), @@ -264,6 +351,7 @@ def cross_reference( "gap_data": sum(1 for g in gaps if g["source"] == "data"), "gap_large_file": sum(1 for g in gaps if g["source"] == "large_file"), "gap_details": gaps, + "unsourceable": unsourceable_list, } return report @@ -301,7 +389,12 @@ def print_report(report: dict) -> None: req = "*" if g["required"] else " " src = g.get("source", "missing").upper() note = f" -- {g['note']}" if g["note"] else "" - print(f" {req} {g['name']} [{src}]{note}") + archive_info = "" + if g.get("archive"): + fc = g.get("archive_file_count", 0) + rc = g.get("archive_required_count", 0) + archive_info = f" ({fc} files, {rc} required)" + print(f" {req} {g['name']} [{src}]{archive_info}{note}") total_gaps += gaps for key in totals: diff --git a/scripts/generate_site.py b/scripts/generate_site.py index c2d744bc..7e5c0df4 100644 --- a/scripts/generate_site.py +++ b/scripts/generate_site.py @@ -1709,6 +1709,35 @@ def generate_gap_analysis( ) lines.append("") + # ---- Section 4: Acknowledged gaps (unsourceable files) ---- + + all_unsourceable: list[dict] = [] + for emu_name, data in sorted(report.items()): + for u in data.get("unsourceable", []): + all_unsourceable.append({ + "name": u["name"], + "emulator": data["emulator"], + "reason": u["reason"], + "source_ref": u.get("source_ref", ""), + }) + + if all_unsourceable: + lines.extend([ + "## Acknowledged Gaps", + "", + f"{len(all_unsourceable)} files documented as unsourceable " + "(verified from source code).", + "", + "| File | Emulator | Reason | Source ref |", + "|------|----------|--------|-----------|", + ]) + for u in sorted(all_unsourceable, key=lambda x: x["name"]): + lines.append( + f"| `{u['name']}` | {u['emulator']} | {u['reason']} " + f"| {u['source_ref']} |" + ) + lines.append("") + lines.extend(["", f'

Generated on {_timestamp()}.
']) return "\n".join(lines) + "\n" diff --git a/scripts/verify.py b/scripts/verify.py index 6ee211e1..9fcf2363 100644 --- a/scripts/verify.py +++ b/scripts/verify.py @@ -298,13 +298,23 @@ def _name_in_index( by_name: dict, by_path_suffix: dict | None = None, data_names: set[str] | None = None, + by_name_lower: dict[str, str] | None = None, ) -> bool: """Check if a name is resolvable in the database indexes or data directories.""" + # Strip trailing slash for directory-type entries (e.g. nestopia/samples/foo/) + name = name.rstrip("/") if name in by_name: return True - basename = name.rsplit("/", 1)[-1] + basename = name.rsplit("/", 1)[-1] if "/" in name else name if basename != name and basename in by_name: return True + # Case-insensitive by_name lookup + if by_name_lower: + key = name.lower() + if key in by_name_lower: + return True + if basename != name and basename.lower() in by_name_lower: + return True if by_path_suffix and name in by_path_suffix: return True if data_names: @@ -345,6 +355,7 @@ def find_undeclared_files( declared_dd.add(ref) by_name = db.get("indexes", {}).get("by_name", {}) + by_name_lower = {k.lower(): k for k in by_name} by_path_suffix = db.get("indexes", {}).get("by_path_suffix", {}) profiles = ( emu_profiles @@ -378,6 +389,10 @@ def find_undeclared_files( fname = f.get("name", "") if not fname or fname in seen_files: continue + # Skip unsourceable files (documented reason, not a gap) + if f.get("unsourceable"): + seen_files.add(fname) + continue # Skip pattern placeholders (e.g., .bin) if "<" in fname or ">" in fname or "*" in fname: continue @@ -416,7 +431,8 @@ def find_undeclared_files( if archive: if archive not in archive_entries: in_repo = _name_in_index( - archive, by_name, by_path_suffix, data_names + archive, by_name, by_path_suffix, data_names, + by_name_lower, ) archive_entries[archive] = { "emulator": profile.get("emulator", emu_name), @@ -447,11 +463,20 @@ def find_undeclared_files( else: dest = f.get("path") or fname - # Resolution: try name, then path basename, then path_suffix - in_repo = _name_in_index(fname, by_name, by_path_suffix, data_names) - if not in_repo and dest != fname: - path_base = dest.rsplit("/", 1)[-1] - in_repo = _name_in_index(path_base, by_name, by_path_suffix, data_names) + # Resolution: storage flag, then name, then path basename + storage = f.get("storage", "") + if storage in ("release", "large_file"): + in_repo = True + else: + in_repo = _name_in_index( + fname, by_name, by_path_suffix, data_names, by_name_lower, + ) + if not in_repo and dest != fname: + path_base = dest.rsplit("/", 1)[-1] + in_repo = _name_in_index( + path_base, by_name, by_path_suffix, data_names, + by_name_lower, + ) checks = _parse_validation(f.get("validation")) undeclared.append(