From 441d41294bf85357a512df0c7880e9e22eda0ee2 Mon Sep 17 00:00:00 2001 From: VERHILLE Arnaud Date: Thu, 5 Nov 2026 15:58:29 +0400 Subject: [PATCH] feat: pom2 1.1.0 profile, Apple II dumps back POM2 v1.1.0 ships no firmware dump in any package, so the 26 Apple II files dropped in ef8b37281 return byte for byte, with the DAN ][ slot EPROM from ThorstenBr/Apple2Card. The profile is re-read at de86e8e3: bundled false on the firmware, 8 entries for the new cards, refs re-anchored. (#86) --- bios/Apple/Apple II/341-0358-a.bin | Bin 0 -> 65536 bytes bios/Apple/Apple II/341-0438-a.bin | Bin 0 -> 32768 bytes bios/Apple/Apple II/342-0274-a.e9 | Bin 0 -> 8192 bytes bios/Apple/Apple II/342-0326-a.f12 | Bin 0 -> 2048 bytes bios/Apple/Apple II/3420033a.256 | Bin 0 -> 32768 bytes .../Apple II/Videx Lower Case Chip ROM.bin | Bin 0 -> 2048 bytes bios/Apple/Apple II/ae_transwarp_1.4.bin | Bin 0 -> 4096 bytes bios/Apple/Apple II/apple2c-16K.rom | Bin 0 -> 16384 bytes bios/Apple/Apple II/apple2c-32Kv0.rom | Bin 0 -> 32768 bytes bios/Apple/Apple II/apple2cp.rom | Bin 0 -> 32768 bytes bios/Apple/Apple II/apple2e_char_de.rom | Bin 0 -> 4096 bytes .../Apple II/apple2e_char_de_improved.rom | Bin 0 -> 4096 bytes bios/Apple/Apple II/apple2e_char_fr.rom | Bin 0 -> 4096 bytes bios/Apple/Apple II/apple2e_char_frca.rom | Bin 0 -> 4096 bytes .../Apple II/apple2e_char_ft_blockascii.rom | Bin 0 -> 8192 bytes bios/Apple/Apple II/apple2e_char_reactive.rom | Bin 0 -> 4096 bytes bios/Apple/Apple II/apple2e_char_uk.rom | Bin 0 -> 4096 bytes bios/Apple/Apple II/apple2e_char_uk_unenh.rom | Bin 0 -> 4096 bytes .../Apple II/apple2e_char_us_mt_iigs.rom | Bin 0 -> 4096 bytes bios/Apple/Apple II/apple2p.rom | Bin 0 -> 20480 bytes bios/Apple/Apple II/cffa20ee02.bin | Bin 0 -> 4096 bytes bios/Apple/Apple II/cffa20eec02.bin | Bin 0 -> 4096 bytes bios/Apple/Apple II/dan2_eprom.bin | Bin 0 -> 512 bytes bios/Apple/Apple II/grappler_plus.bin | Bin 0 -> 4096 bytes bios/Apple/Apple II/liron.rom | Bin 0 -> 4096 bytes bios/Apple/Apple II/mouse_341-0269.bin | Bin 0 -> 2048 bytes bios/Apple/Apple II/thunderclock_u9_v1.3.bin | Bin 0 -> 2048 bytes emulators/pom2.yml | 438 +++++++++++------- tests/test_site_r5_systems.py | 2 +- website/src/data/source-paths.json | 11 +- 30 files changed, 288 insertions(+), 163 deletions(-) create mode 100644 bios/Apple/Apple II/341-0358-a.bin create mode 100644 bios/Apple/Apple II/341-0438-a.bin create mode 100644 bios/Apple/Apple II/342-0274-a.e9 create mode 100644 bios/Apple/Apple II/342-0326-a.f12 create mode 100644 bios/Apple/Apple II/3420033a.256 create mode 100644 bios/Apple/Apple II/Videx Lower Case Chip ROM.bin create mode 100644 bios/Apple/Apple II/ae_transwarp_1.4.bin create mode 100644 bios/Apple/Apple II/apple2c-16K.rom create mode 100644 bios/Apple/Apple II/apple2c-32Kv0.rom create mode 100644 bios/Apple/Apple II/apple2cp.rom create mode 100644 bios/Apple/Apple II/apple2e_char_de.rom create mode 100644 bios/Apple/Apple II/apple2e_char_de_improved.rom create mode 100644 bios/Apple/Apple II/apple2e_char_fr.rom create mode 100644 bios/Apple/Apple II/apple2e_char_frca.rom create mode 100644 bios/Apple/Apple II/apple2e_char_ft_blockascii.rom create mode 100644 bios/Apple/Apple II/apple2e_char_reactive.rom create mode 100644 bios/Apple/Apple II/apple2e_char_uk.rom create mode 100644 bios/Apple/Apple II/apple2e_char_uk_unenh.rom create mode 100644 bios/Apple/Apple II/apple2e_char_us_mt_iigs.rom create mode 100644 bios/Apple/Apple II/apple2p.rom create mode 100644 bios/Apple/Apple II/cffa20ee02.bin create mode 100644 bios/Apple/Apple II/cffa20eec02.bin create mode 100644 bios/Apple/Apple II/dan2_eprom.bin create mode 100644 bios/Apple/Apple II/grappler_plus.bin create mode 100644 bios/Apple/Apple II/liron.rom create mode 100644 bios/Apple/Apple II/mouse_341-0269.bin create mode 100644 bios/Apple/Apple II/thunderclock_u9_v1.3.bin diff --git a/bios/Apple/Apple II/341-0358-a.bin b/bios/Apple/Apple II/341-0358-a.bin new file mode 100644 index 0000000000000000000000000000000000000000..73e39fc40914a707cf4806f71121863bae944ff7 GIT binary patch literal 65536 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 literal 0 HcmV?d00001 diff --git a/bios/Apple/Apple II/342-0326-a.f12 b/bios/Apple/Apple II/342-0326-a.f12 new file mode 100644 index 0000000000000000000000000000000000000000..4b522516d4b4969d2c97a488368626d502b97ff0 GIT binary patch literal 2048 zcmeH{S5q2c7)C)lh;#)Oa6zSsNbiCOD2NmhRIJ#0?-B8@>`%?}natz{O_|9|oXNS` zZ`zYpY)Ksf)>l)2nLnJyX$Yd84h2mf*+JA&Ao~iA=zVbQryP!V~{W0jDc+Wrdw+06{$5<@SBt^aH@9IC9NG9a+>ZQrl z*?|7H0r;7J=x={E{~63zlgwCw$uc!&iebuFRG2iwWGdBWtuT|XGwEt|E{Aog+NkGh zj5ity68~ne*^7>RL;fNEa9}uqRzf4ek)Snf4Lc*wh&^h5>mP3C;cW^2(SHs7H_?9` z{Ws8m0sU7hY<4;g|LA`K{pZpDH2R-G|Fh`7Sd7JEarmFZ9Ie1V`p=;MMf5*~{>x>| zM=9Y-xRUOqJ2jpn`n&euX?0p;J{%s0hs?oy{TmGJHTbVm)bpy*__F>h{ab7n+h_An o)c*;;>Hms!`%(Y!zx7f7-~FGG|46s~$^YRm_`m$`zx#B21x&JaV*mgE literal 0 HcmV?d00001 diff --git a/bios/Apple/Apple II/3420033a.256 b/bios/Apple/Apple II/3420033a.256 new file mode 100644 index 0000000000000000000000000000000000000000..756c996fcc4eb3bcead6ae05edaffa296993bae4 GIT binary patch literal 32768 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 F`3q5{te^k@ literal 0 HcmV?d00001 diff --git a/bios/Apple/Apple II/ae_transwarp_1.4.bin b/bios/Apple/Apple II/ae_transwarp_1.4.bin new file mode 100644 index 0000000000000000000000000000000000000000..8df6c8e20f7c37dc63cf0c37d2bf1b0d3dcb6b53 GIT binary patch literal 4096 zcmeHJe{2)i9e>Wnv14-Blr(X+iCou00c9JTvsW~qe)>C9z!~lT=0cBe%LOMzZOc!fJyA2{0Iqf``+34 zRdwC|*q@xw@4fHm`?>G;eZTMf-d*(ZyBLYF2y!*(0WvMd#*s@adkwiff6xp>V_G%r z6k}mONUjG{zTp7*R}nk!*R0$91)}S=sk+8+8b$+L*q>6+%$ z5z;kdj1Y2y-20|1T7-SFv|W~7k)@x>(l2Cbhb-wC!6gf{Ec{v)ezUZ#kVX8ZVPRdQ zn3!AIAP2}@(ZbuLhq{W$PU(@Z>STwA0P)Fi!>Ek2itZymSy*OBcHSW-`Ev0xzYH@2 z_VW(%^#HjaEAMl_6;Hgh!dk|c2@Yd=9(4t`nQ_@mOQy=Fmc`1|6d8p`-jwTnGIQHK zp{tb)`tYF+PJ<71;gOCfL_PRe7j(V%3SH-yV>Zn#p=q^|ESD_Ps-4)Rl4+IEsGC=4 zFn|dBHZc2Y__wiDIyEDFN~<G8BHC=@t}8(LIg!byRt2#9h&|&h1$H z1|M`dticGX=xKz@&Ifze*&L3hU^x@ffFd_G&T}?Yq~xbVlI#xsRhB~;=37-F#dqS$ z_Ku?+iES0UKjEVJgNc5cZ%?FXp2yEiNLB|3<$1JH{Ap7l-gJl$bR25xiZ>nRyE+bk z&^Z}cKY3{VWY_x1!|UhA-)?s(ouQI7fj7ebfa`C=9WET}bhni9ouPNIm3iMCAT#*+ z_P`>??v@hpX?Slz;CJahH2a|udQcaMuo0GKXdZpSA0CXRda;SCbQ(8DR6SI*TY!7Ia3CmNf z%d~qvX5oqG2q$ybjjEv9D!+<6h!S19INld^iKs8krO51*Z-m@~s`~9i9f39Ggxg+A zvPv$82Qy>&Y-UsfLCNEM#st){PZW`Yedigj#LE*m^$4N@uKQpZY(O>aH4P#3P@m8X z=1Say88V(#&!+OYZ&1VoiIabpPM*YP#=#f0GD*m&stjRe?5sMbC|PyvEa2AX&Wz(+ zUb&!*;dF9T8B8hXaB^%2r`5q!QW?b;)zNb~X_D5~0K4p&VKtk+n9M3Tt6WfXYGw?~ zW0F!waT=n?j3$S1Vyp!g9aw7FY4z#_j_z z{iVa*+Tfp_`njzmcytyi}N^%HiGij`3 zvz{>{9+&e>a_k(=T~zafDHFbG!ppPCG)^n&Om^HvXHC?V8_hsPsc9wiN#4X)R+~l) zn?|+Z;iNjM40+a98>P$ac7GpUm~{tbxCKN6WN&a5PA!m*P0-ql4VqvDm0c*6;rId+ z2y^r_B4pXz10cXDrcs{rRm>_lGof$L05nI1M;e@SavIqS%oFZqPcI4(YP7hTUNI~< z7%|S&xW)5xqY&k}Rs~C1(7igZGe!m733tVcMVTp7nip@5%5aYM|FAF*Orp9Wezy=R zh!cjm#t8Tsh;mNvnx`9jh_0Vv)-v8*T)VF$fKe2MIkG%O?tkFB*5R8Bgl@XM8@&Q0 zLv%ukY>XgxMc)8G3caFUU*Ej(x`jM2+uPn|o@?fPQyeLo@_o$3Pa`;JPrEDlgY!^> zzOiL(W8a(%Un3*rcFb2FY@!hEbE*|4rtbH+G3##9NQJ1!S zper0OK4T6|9frq;x;2}LaCg0YH@pzK9rf#+@n+*C;bndWg&jrE#n(Cex(qDd>}~JH zIv?yx#k)3M?e3o*4!Z929PRc-OW?e7A3)P7GBZN%dlB-oth0@+-NUjwS+m)8-5LRDG#v=JX_nQwoN9_KtIQ8TbLi!TH9J%-~qb8dop^GfhQUG|7Ji#@cTE6 CN|LPr literal 0 HcmV?d00001 diff --git a/bios/Apple/Apple II/apple2c-16K.rom b/bios/Apple/Apple II/apple2c-16K.rom new file mode 100644 index 0000000000000000000000000000000000000000..4a17815d018d32511d25c84239352f6266d93fbc GIT binary patch literal 16384 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 CF2V!= literal 0 HcmV?d00001 diff --git a/bios/Apple/Apple II/apple2c-32Kv0.rom b/bios/Apple/Apple II/apple2c-32Kv0.rom new file mode 100644 index 0000000000000000000000000000000000000000..73055d3c96c17352c3a4acc73ac95e6c9c2b4a95 GIT binary patch literal 32768 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

T9?t^xFj{->e#K|-Re@- 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 aG!Xsg?94x9`+ZyBl>vUwi9ILwo%m1m?=rmr literal 0 HcmV?d00001 diff --git a/bios/Apple/Apple II/apple2e_char_de.rom b/bios/Apple/Apple II/apple2e_char_de.rom new file mode 100644 index 0000000000000000000000000000000000000000..c044bc3c4482a905773f4ff627e47dc19d6b72a1 GIT binary patch literal 4096 zcmd^gA>FKFns;aB%b9bi5i=7=TSKz#d zbJoE*KCH+ynG7$Y46TFpWHKF@OwZ()VcoDijdwFxgkzi)bJ&Wk6C0f4ZBwUAZQ~5K zLF-}s&#o@q$NBGF({Misob-dcJ zI>J`g)0xj@(H_i#V~nSUz@Jn@kukg}yeHd#|N2PHupBEC3h7j#&;!2$%XLpJ{<9;; zru+_ir~Qj%r%uhHpJ)pk7|Ud`IhM=Az4I`36?4TdSj*+W^>hn-X7QtkBz(g{>L-JH zPV4#|?wR`qJt%_Q*^d6hJ=*d9`SwCvPd*QE??~hN?`#HA0&&6f*(}Bl9~`?o^S`FL zCp}B;Vl=Y3Jj{bmc*8fIg#CGNF9&)2d*`2G1A$@1&Tgn@D03*W4v?|JyICj9LTGWF z_ki5~Tebt^jxt2NNc%ZN5)%mdV(s~SzU>!)r|nm$<20=>&lmvEg_Vc;afI`bw^RlK zz#i)BWb8jvkO#DnTxQYSZ|xw%_Gy362=$LL0DvO`K=a@aPo})MicG9EI8&&Y6$#EHB_C$o5FjtP5&HP`4JuRg9c+{7U0?Z4}qA6K!DwW35)R;TmeHpb9{D#*hl=s(JpR4&PqBf(xax2()H9Sh zlvo91tngkp46_hgTsI|-EtwfM@g*)Nz_tn0F2U zC}ZWJejMREwv2mqW1>+rm8xpEDDaBQ;u{AtzCpAPPCVl@BbhxUK`fO=^vi`V`BJxRWQ zcWz=rMiUdxefuW(w{KYHvB5h3`ZbbYzdAQQ9){!N&VBh3cwfFaH#X+$u`%a9f9B%z zXXieB@`6uLrXN2t_VJ^0P}2(2$9rK24IRPfa{H zD5Jqa6F+$(_>(6le*8E#j~|=((W6K{dSv2qISe7s@xzCK_wb>K2L^mSFks>b54d>n zz{L0Od%^wtCcbx%v3vJSeD|(%ckgQd&K;}n+|ho2zlr<%wXZex+qadyeOvptZY9aB zTiWmIlTlxv_HW)4{N_#V-?$N*8#lCn{dy#?U)TP%Yhifpn)a_=4ZN#Ywcp$8>)u}N zU%A4?l`GmWmAs%-(*EVkj9tF0{Y#geyL3s}ix;iBcv0C47fgKNg0kn&YybRtWtF0S z?p%_bJE!c~vobn+R@pOW1V3{|+0&->>Zc{mK8^zI`&!WRjXvQa;2|Vu9VS=65BZ5dX0u{*is^#D8pv|JV@!u_69rL;S~v_>T?o9~n@B_zyhdKk$hEz$5+x zkN6Kf;y>_+|G*>u1CRI*JmMeOr%wC_9`PS|#DCxs|A9yR`g81ix_(%4s6aQQg|6CCNUO@bN0rBqz#J?91|6V}+djaw91;oD> z5dU64{CffM?*+ua7ZCqmK>Q>7)QNvDApRL6{uv|w86*A~BmNm9{uv|w86*A~BmNm9 Y{uv|w86*A~BmNm9{uv|wk$vj_13cCEc>n+a literal 0 HcmV?d00001 diff --git a/bios/Apple/Apple II/apple2e_char_de_improved.rom b/bios/Apple/Apple II/apple2e_char_de_improved.rom new file mode 100644 index 0000000000000000000000000000000000000000..9ae48be7a12f249d53da8ae0521c948f2842df3c GIT binary patch literal 4096 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 literal 0 HcmV?d00001 diff --git a/bios/Apple/Apple II/apple2e_char_fr.rom b/bios/Apple/Apple II/apple2e_char_fr.rom new file mode 100644 index 0000000000000000000000000000000000000000..2ee91881f3d0fec964745d2b2ecb80752bf535aa GIT binary patch literal 4096 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 literal 0 HcmV?d00001 diff --git a/bios/Apple/Apple II/apple2e_char_ft_blockascii.rom b/bios/Apple/Apple II/apple2e_char_ft_blockascii.rom new file mode 100644 index 0000000000000000000000000000000000000000..032aefb59736b84603f49f213ca3a2761868d521 GIT binary patch literal 8192 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 literal 0 HcmV?d00001 diff --git a/bios/Apple/Apple II/apple2e_char_reactive.rom b/bios/Apple/Apple II/apple2e_char_reactive.rom new file mode 100644 index 0000000000000000000000000000000000000000..651d95561b8d869f830893fb8c6ebc187e8efe9c GIT binary patch literal 4096 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 L2|@lP`#Ams0xEjV literal 0 HcmV?d00001 diff --git a/bios/Apple/Apple II/apple2e_char_uk.rom b/bios/Apple/Apple II/apple2e_char_uk.rom new file mode 100644 index 0000000000000000000000000000000000000000..d5c5a729b27533a21db7368205cbac68af6ea978 GIT binary patch literal 4096 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 S;-4|%pE2T}G2$QDr}1CDskR*e literal 0 HcmV?d00001 diff --git a/bios/Apple/Apple II/apple2e_char_uk_unenh.rom b/bios/Apple/Apple II/apple2e_char_uk_unenh.rom new file mode 100644 index 0000000000000000000000000000000000000000..3f79b4ba88b80bfe4ddcb1e9ebf1784cfa69209c GIT binary patch literal 4096 zcmd^b@f`Ti;yoS7y&3eA*e6qSqUUmd;(g5+ zdNPA4>u77tq%qEEC>@NY(wW9K#yb8$0Uf^-o>TJQe_j$dEW?_co0FwEUV274{Wr_B zPtX3RHN&ROgnMWI!P3*Gr!h|Sg#yk};DUjZHgL@{xojqzgS|`!LQhQKHH|Omd`e&= ziIc&1&d$w*@60q{1X2TOUcv_b8ylM%0G_59(8ozxVVyAmAcvio5Jl&q zZix;AfIqyijj_L`ArI(3+t$j`=@W3vuK9?M;!pb83CYmhzIHnw?Z1?I;3!89E+fo&!WQS1ToF18&oEXs-%s}#1_Y?|fr}aRg7wtjObU)l% zPxQh_f8rm{f&UWTlTYrgqMyV*nJS51DD>cc6%0L@!PMr5MyoZ9a}p(QZM{|<9kMpx zhXOi&DLkiS?msVy8(X!NN+nt9R<*HOZIP{ZPL!S%t9Eh#?(OZfwTX!u#)-aAz*!w! zSa31~u5GnYs+J0{SFJ+mi3z;c@CBVu32Y>BTKLZ1!T@|{bsQrofj(4D;vX6<QQOJ8S$!mA54kdxS;Q3k&^M*g1JBLQc;C_f9@d7jW#cV(ZUhbxU+00Q}*7L)LapA`j@lG*q-TbT?QA9m44C zry2SmbpQZo1c25d9;h>vH*dSg$0x_fyRlCb87r6j%H=WJKMbZQg$n%9D?WeyGV0ea zz@@H3bpP{b?Ed@-{Zdl~KljIvDEjfk+Q~^7Oio(+{k!1bzhj$+8vFd)w?KaTX6?j; z?@vrv`}M2meEn+e__!O7k6ZiY3m0F$SUWc6cw^9}pFcD9`Lngq+AxeVhQ`Q<4o60e z`t&JwKYcQ)QcspZd@uE_2vy1Z{8SHEIMAXXw>W1jJeVY9LY9;9 z@@4G4e5u31L1hL9b@<{%6uo$%!+`-A3=HV-`E$XaKiA>2XQ6)fOovaO2J-1s9Tp0{ z4|NWoJn@_-PjuMd@5cT8I(+;iK5-R z8QZ-(igxX?cGoT$?A&S8&Yd#Yu|tPDcF17+_SoINT?X5>DYI>x47P5KqODtHASI10 zTLj;-MFyKUhkEm78Eo1V$W5DMuyLdBZ`>$@4I4aX!v-0wU+>22*UMntIxg0&lfl}x zj<eYg;T4mI#Rf4Zvsl$~k1z)iuc2}$reED)^mM<54*|I2F zwoLG)OJ%Thso+A;Sh6J4OO^<}cyS;XFBW{!BHv%MNbrRVJ!j!U!51uW;{^)@pFf|A z`SS&zH_!3r%@cg?T*l_k6&%n92{rK_YT`fC#DA!X|4HFD6aS$m z{zFathnn~gHSr&6;y={He;|qfKob9fB>n?Q{0EZw4WRjvQLBf_Z;Hi zbBKS>A^tsw_;+LC-;IfXHzxkwnD}>N;@^#le>W!n-I(}yW8&Y9iGMdH{*iqe#J?L8 z|87kDyD{<41@X@X@y`YE&js<%1^olyg81ix_~(N7=Ysg>g81ix_~(N7NA_tD|6CCN zToC_`NBlb;@$Y!VzvB`Ajz|1E9`WyZ#J}Sa|BgreJ09`xc*MWs5&w=y{3H7`h=0c; z{uv|w86*A~BmNm9{uv|w86*A~BmNm9{uv|w86*A~BmNm9{uv|w86*CYeH#A*+-&%H literal 0 HcmV?d00001 diff --git a/bios/Apple/Apple II/apple2e_char_us_mt_iigs.rom b/bios/Apple/Apple II/apple2e_char_us_mt_iigs.rom new file mode 100644 index 0000000000000000000000000000000000000000..8385bf5e4435b4691b974c1e14f96bfb62b7881c GIT binary patch literal 4096 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 O86*A~BmR+nYX1c>b*&Eo literal 0 HcmV?d00001 diff --git a/bios/Apple/Apple II/apple2p.rom b/bios/Apple/Apple II/apple2p.rom new file mode 100644 index 0000000000000000000000000000000000000000..3a1c5d3974b485919ed96798b62da2764d25a47d GIT binary patch literal 20480 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≷V0%+}+h>Ez8KE@UzwcrGCYNUD zR!FzaP+aGNb0NaaBk4`E$jr{!!E|_<$qBzj$8SqFEq8p^gomN&2ahnwM+uKZRgD^j z)E3SeYXH}2o+`|MAM0^w@ODWJ*QkF~)31LNKiXIfys1q#q|A<+Q<`jEoyG*S0C09H z2zXHPf9A)6txp0wdP2 zKMj)fxES#A5HU!4N{pmJ9}Y$|x;7ou8122yhqz3>Co_}Gq9;72bVEeR%?9dUQRkpJ zB_Yli*b8nsdiAdv`iqpwk6WKKpg#?mT~Bh&Pslr4qPY?J5R@DJ;(d_W*84P>$7S{va@L~H^pznd(!W1Wyk#49; zM?c*G?g$T<`HR9tc#s!4HSy@kZRr+=m^)^(w3-Ied*Ky49a=&nXoT-36v9*J!tIUe z`svUQ0G{M!cy5|5kAO`PxR8UCJgDEHvN0Hl-o3!JFqy-8+XCytSTlxS;2Ggpy#MC) zsE-r9_*ZDTRT~DyDhMg)JBjb~1CCzTp^pnS==r3oN z%`D3Z$ycOkNW*5?X4f-HztIN=S%)kofm^;GIPs35{#@8V9s^T*jQe`eH+wGa+arGE zc14%PD5GSi_oL66x9tgh^X-%G@B8@kapN9&XmimYzW?&}xN+B11FB`Wo(=zBa2Dg4 literal 0 HcmV?d00001 diff --git a/bios/Apple/Apple II/cffa20ee02.bin b/bios/Apple/Apple II/cffa20ee02.bin new file mode 100644 index 0000000000000000000000000000000000000000..54ed12ba87a633df3e916295e3d43bbbb04476b2 GIT binary patch literal 4096 zcmc(ie{2)y8OPuAkF#T9$AM5>hSs-?i9|q>McwdNwK~6?OK?Y8x@z4f^(c6<*Fe$` zz--+{AqQScsJjV?Y_fE*;*ghN%~`cST+P$r#Lk_AliSvR*u==D2?3(ZiH*(>za%~-kYsao0xYcTX z+56T3f46r(Zd4z1$lv3`&CTsE?|5-D-q+cKwJeww{$B^d5k&OldAr3CqMUf}f~Qi1 z^mya>6(ULFk$XWoA49^H5;12HWz!94!<$5&>TL-2x_euQnQQKCQY*KLTp?~hkIX^Y z5~IwDak$Y#nWIRyM5$cfBUCcj@2gf!3@df^rK*o#t4H4Jl=0}g# ze_G>DFTtN)j6c16{`5j3M5_3Z;Z4*ZvIdAzl_G8S%N>a7=LE@ z{27)1$Hn{^Jebk=GYkBG7f7a4-+-DPN`YtXP5HfiZSz-@gg$5`>$wdO z{dP^q@}|}wsxu7SLv&vFi%q_~ctb3F15 zxR5AVL;vaHbrB>{EHTK}lAn{9$ ztG&G>g96;1Jff!Zt*hHJ4fdOv?V0U-b;N>0oTy)B)PACLYIpO_N$^Rui|Hv}ls5 z-LB#3QAV~!TfXR)3JR?vfErs=RiR_2LeHy5%Gr?Kb5ew9(AV5p)urf&ZbPG8uTDr+ z+h~JQDpAUJC7sf)5+?#CORZIP%}-ql(8_9g#lu3LR?LwCUm(cAM$Jsr#6)QZe=Rp; z8m4_5{7pX290%E1vXRAaW#f09aaz6JaztC0sGEs4GtpVbjFXd<1c!8_){Ix?6t)sX zo(;y=s4_QcGB>F*H)m$;H$D7hvhg zQ2{@jQz{5d({ny<*2gvbIJb{$>0>L&M)?K|Dxt!Cf`+#?>fT!>hTj#UEqm=^_@odk z7Z2wR;eLUImX!}%R%tC2qUW!ZiGV?hDy=cS2%-+;O);G~5HQ9Nq;!lD2lDjOAk_wN zf*|lNW)o{G2pv8y5CcA&BRVzrHstV27fEy=U?2z<0jv6a;$o;oEz!^iXiqCvGK0y* zO948rhuQ>)ZY7FZlUHlN=nQkdR7}1n*ei&If%opSIUhJB|2rt(aK5(e@{ zu(PUmRkGBstkw*J@~m$pkvF#5!34(1HJPqrHv+uikkfh`ucQu z;bs>4tevYev*aeDWi@19_&s61p#=5`Y|equZEaQdk{NhZ(ULmD@Cb%l6uv6w!5f%v z7PTs*^`S2;W|5~uD^v@x zG?PkJ+qV*V18Z4fwXN3MEG6c3n`*YYAOui0o6dH;zSq@D5!8Q6PiFf6rN^Cf_%%`6 zmvk5V?EVF#Dqmwu`ANkMrfd2oQc{M1zF`sKA#@qe7=LPw?3u;C%)n$)itq&~T<4;Gzd zfJKV9qn=++N$<+$%u)MoqL*i@u1G1lEP71-6@)B^GhA=SF(my-u}FWAKY}WVXc1dd znLZr?vf=vhF(IO#_uU4*8zIaD3^;@oOV)l3ntKJ!JJ0J=iC;`J>ZhE~ew&pnp>nAr zWFRldE3TI?WE2>ECGnCY(%(W>CicNxD=ksJkgn>A=i~d@2ebA$eXy=NzO$pVhu_9q ztc*qm#+D1;Hj O;hxj@(cP{%&JzP{dsNapJ-A z{#psj6D{YKNMr(^xgS-EDI`8=kqTBxFK7`_o@}C!zQbhq(caQJSThw zY;*z}q|6`At1Ny>l9XFq-)WJY?<<O@y@o*2mW~5^c55PQ_RgJM-Jxz8D^#MfC?SNtZ2fQkQH_6e5&qGI z_(va|f0XhcDd!)>gQFV%=sbTyB%|g0x&(e~{9_vb*dqL63-OOVI{z5u|7kh@7#te{LcE+@tg7 zDF4sP`Ez(Mr}5|J`Trr3Tsc3R;2s;|l{F9H)KS}vtFXx}cgOeKnGkya?3?u@CJ}elY*sayRSTNIf@lqE;CjU_0|4G6ByyXAQw7*gElYFLV zs=+*tN7J|1uChc zslAgXy;_ojA4syCP?2#VZ`6M0MALiON{073Li%_mldWR-_7I9!G0>;3ig%qEZo-!@ z2+W9=Z9XW``APk0G4+&p7V*Szb!#LCJV+CJnOC>naLXR%&R>j*k4px}TDNun+G zX|JG5AerHaLAiR=F6;GrM$a&e!LVAcxv=a)fBviaP5E~CyDVRp@s@o0=^y@<2WM~Dx@B8a%d^?LoU!IR8S10*2!U1z*ncBzQ)OE?<(1-2;H+i zv{Y_h*_>;(-^gvwZ5HYi4s6W})d}l}&nu1iqTmpOGq21#I128-{rU8An0i%St;nlv zUNz-ay*B?RoE&K4fUBjH25zN;Soml_Hq*lIcxY**7j9a3XwjxgNrzn_up?f@mTdcm zr$%Kd0Z8#A6%)pFss<_>S<1!q{$2@U-s^6u>r{0_x4Om7)M%0>o7D=LQD2aCs-MDU z!X|6O66jrXG0dvV6^m9avZ^^z5=sO)xTM*eG`(<`XDt(v;6R9$y& z)_$X>F4^h`F}x?~4k5lR`wMZz6Ymj6TH{d>UhKf@N*nlH&mI%;r&DS*fyeP|ke?0m z?jY|8@@>6bEm@;nhfoqG-YaTkHA&CjDk=V^m~7i?m*T$?Q%j}8MMJz#Qkr4+dvKK6jf%AWQxXi zJ2*gWj$}`Yb#|*2rt!rf5|p+kS))m2lI9SCf&LRw=*z)~4fpEI9J%4usz4fyza>62 zTN*h$GX=`}e06rq4BVz{)wKtaqv;o`v;v$1d?Edc9QQ z&2W7Usb*5*S>D8(kHFxn5gL17(b54L44@XQ8J2T;uQAH~AQZPbZzgP1Rs~hd#iB_u z5v1y2YaM_Ea3{>h)ho^G;r1>w#qN*E3Fpu%G$LX zz6V=6Q(392Jkbd8#szx24{9)4cZ_MLxT=(CFsykQ!i3)SF+3ar7fk$;2k z@_aPGD7u6`i==)&Z!Z!(e{A>hgdzKv0{-#6?B5Ff>g?YOXJA{OF{rEH+opT^_xvR! zsn!`?T6g8Ruqm=0GKElztS18O_IdlnkSqBHJd4RFeJ+QOJsgRw;8!bp$R@aAPX4WW zQjRLi$b$p?r7MNlwM*9v>5uyP*a^8G_BEtlmHSkK+^g7nYh(i~NyH!XN8Xp;RLr?! z_FF`+%+`G=8EL7*efy`&DR;h}zuz&iBp2Q-D}&Cg__Ki}KdO{e7>#O8b~d1-}`~GVE>} zGpNGSBMUJ-{g@M9jLrH_&I$I+JJVij2-ackgU8qSes`svpixczz4C(U(Rw?2!v g*EK!o#y_n4QTqpn=uwIz$iz|A2;otRZ*!%816Z;(b^rhX literal 0 HcmV?d00001 diff --git a/bios/Apple/Apple II/dan2_eprom.bin b/bios/Apple/Apple II/dan2_eprom.bin new file mode 100644 index 0000000000000000000000000000000000000000..0eda6bcdccb9facd54f54fcc6517bb0f82ceb299 GIT binary patch literal 512 zcmaixze^)Q6vrotS)(2#Wh&iH0v0JP1ZCaC6#fBLlET8ye?h^4Eev?w1rf%ar~4$r z#ztHSo8S*JjXV++JEN#UY(^A`iOb$3oE}!b>V1dL`##=x>MA4kKyC~Nz_;FZ3^8Kh z__7ZDR8wa>yGVRA(JzZm_8B|Sk_c-QbP>)z1S|MDZMQO!k{LgQ3DtbxC8fA9@EJlh zkphyUNjjDDE$NV^uIiGGS;y+r$b&ov4m7gfbc!t}(yo*g6tat{;;qs=6)P1=$|k?Z@Q@5C+=N*I7w_x0*R*o5C7CF_#}b5F3>nCpEAyEhSlR*ja84& z&a0<{ko~#($NfPd^0;5jUmp`MDY+gP8#J;P3br6Gmm27H+!d1OA+E3+@_lN&8}r=N_Ih!p~;vcZ5bQiz@P~p4sdJrk=s_o zjD=U`dTEk9b>XWou(kRk8Iif|mHt!ELpAnIew{zW#lv#-h!vP=?H=Sez$RV2*VR&y EznY0CvH$=8 literal 0 HcmV?d00001 diff --git a/bios/Apple/Apple II/grappler_plus.bin b/bios/Apple/Apple II/grappler_plus.bin new file mode 100644 index 0000000000000000000000000000000000000000..e3dac4b3e1619b236b3bb77aa60c4adace51b236 GIT binary patch literal 4096 zcmcgue{37o9Y5cl?`+peOevjNXnUQ~)EA&i3oXvjR5NICy&H6G_#sVO4|Smql(s7y z@|d&)jaxHoo-DLU4qGM@;VlQq^8l6Z_ptYu`@jmZt zx1EHvKPD~l-S^#l-}n7~-uL@?@B4yM`|HLQ)da zD+|xYXGz)Kn`+4UW<698G>&+RVVNx19@4ZuA$;Qz^5Z24IxXnl@vw5uiD^#Hzx+9o z=!*QBk~+R)oG!}^k(0JN9@j2b^bJJWUCni=OG~yG#H29vL-CpT>@OR#$xVgjRKh(q zFHD8SsjxH^MjJoToSd4MpjnR_zPPdMLmyqgcG)!doDWDOh1Rv><=nDp&KK2z(CdL2 z<+s)1VmVs;xE$3lmU(iq93-m=Px^>5U+%plEogU<_lM}pT$nC5dyTMp$rxfV@(EGv zy=3yn7E^~Allu=m4j7;^e-1owrHZzo{c!=4&df_Rz?=g&o7E7pTBhN#S=7`E=q}Dn zWYXSV42y5{75wP+y3lK8sm3%S^rl=N38eeaghhKTlvF#Yy-JGnZsZ1`nRhd6!{w1a zqfh%G!3Rm&KIom97t${kICR|Ps@lR*SR_X%Gp`1ypdDE-k0?*qW-=s2SFs3-Eg0_N zykPV(EyZ@5No|pNvafUOxzk-4lBFIq1=r4qXm>dyV%lw{(32ra+FuO2?X^o`1VTC! zcBfZ5%U*1Vrd(@?cCVR)UwRHM9!Yx#)TODg4BQ#=3m66t2{B^sBXo5O(F&6Tpm{NT z2`lgx+;E7MUaV+=D)eSl9Y_dhX!vK$ASuE6_LAFV*XSw(! z$CXPx^a4OC-zigHhyU`){KuEbetJ5;c!_MGwNAf%DHn?7)Tk37!h>-Grw-IW;&c8mdD+^e!gc^aQ3mX5xk#H$p(bbUn2DSXj*8 zSDFi@hD$JnuelH;I1M(CQ2Jdxs>(4hti{!!?NbA`XzrxE8A|h`V@60fQ_yBhbx4i2 z;}p1b*bf9i9#!sYi0W9%*`SO}DP*KjC$pf#IEGpSNV#abXbi~{O_6?`ybd`|ze?VK z4A4#FJfM|MXKRE@d(AA^{8KEo5OOQP62E(p3BQ29KoxnbJBPAIp4QSw?%|w;I z*FfxbOt|b%7;=v-noa8DYur0_b3&RNFU4o_2}#fTk8XBHk1n?+H@he3r^;fj{c~)5 zmgUNEjFkN83x$~%8*TDT6yVzJryjE+15RRAWP9e!+HK*)~Ql{HrJfE6u1W<^^XE*&ln zL7|qP5K@Kl+o_lh#w#)7I}GpR`P6+NB(|U?5}5W@K8%2cX!V8GKwd!c9w8 zM!3!hg7z~ZCm1{eg7m)0)AJMb9D_J8(8XS=i!BX^#aLHEoYh5?hn$<$h@V^BZjR&b z=9*0||5OPX2yoYNLC(Xi)30PHfIF~OXDt{b8XtZ@s{wGq440~rdxT@B?Jc}C?r=Qr}h7ioZ;*|`G)Ld za}v1uYA3m~Q%`{!+RYY+(v8?7-Dl52#i0wLqtW`=D>gc|n9TM}9OW>JHV}HF3kDtP zQJ>kx*5bnp74*Gsx*Fw@SZ|-GlGn4R{z^`tEN4%>ar!i|-s);%+n|z1?7n=kOw zf7yBWI`12t_bTVThP~lJdAF=|>VL%ExV_ut24<)HrP%gv$ot!JxGi_J<<7R`O7M5N z{_`LHPxW7JI;;-h_JHfa+9rDsZ@jgsn>S$Tx(O23b=J9VsJp2n6v^0Z@pfYPsYjM& z36Jb>%=WSfU^_gzU^Y_?iJfV(a=bpxDKAxj&Hv+lKRusyN{TcsFWk>>NJvR~0kOdB zSlR;;?`VP;IX{u?FXbB&DLI|0tj(dqOX^r#ZdK0XxRn&Q1z;2OMW}{9@WY{#fF4-e z5lJQ7K3`hUbh4O$eVMRJn@(OxxHC8omuGhH(7<7X>I;wae z5FC{O$DNh5?G+_e(;fsOH`3k3#zy=k3tx4d+s;R+;02nN8df9Qf|jaf1x$6k8KOC6 zNC=Esf|>=*S8FdMs6E2it{*`3dd0h3$Nf>A-gk5m+as z`A*1Wz{E1wQx-?H$5Da;WGhnPbFLV1LW}vqs|@843fnj zn9(yng5(58r5V-6xf=5h8hl3Wfe;+>HFG>PbBuV7x_1yQMnQoG37Z*TaMXpKtC@+; zwl?n6(CqRx+XZ^35dwTwxu$B;D^1obU+HZ%TLoCpu3*WeXm*Pc^FVuRdPgUp-PyLH>$C>)nK1 z3R{|bCfYgeP`lJl5n60W$Rh|Tn4I2XkHh^?erGAatCWAB zlpikTzgtRml~S$}^Af=w3s;GLTqSgj&GqYGhQs;CFg%dnHvrn8SeRU4^*s$S&3lEG z@VCSu6E}JzbiG4>A(QKFi1e(frQVs?QX6auKNB^t zpxswvk$bilEl$>=`tNJ(KVN&-Zhdf6G1lu*=J;Av@a0xiUt;25)jBf+0*$ z8^E3iFK`2S9E)az#To8=>DV9o|G)mjYtnFKxwCVe#+98N()rwDp`IgCmpkV;T-fz5 KuKS%kz`p^oU+WqG literal 0 HcmV?d00001 diff --git a/bios/Apple/Apple II/liron.rom b/bios/Apple/Apple II/liron.rom new file mode 100644 index 0000000000000000000000000000000000000000..a7e7b6283f029834793e767b48dee866e23d0ff8 GIT binary patch literal 4096 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 literal 0 HcmV?d00001 diff --git a/bios/Apple/Apple II/mouse_341-0269.bin b/bios/Apple/Apple II/mouse_341-0269.bin new file mode 100644 index 0000000000000000000000000000000000000000..b43d2aa8f1ad2a704627cd46f807b76a98dc96b7 GIT binary patch literal 2048 zcmeHHPe>F|7=QC-oMxj8qEbk4PCExBi9kw(=C8Z!{&i+ociq+M(m|w4oq}Mc^F}wp zqC+fGr;w2MnIUXNE7EuqArQigb?+3k*!MOq?P3R^4i5ACc;ENF@AtkxGmnse`-rr` z$T>=Bqm51z+5mEf3bb*SPE$pY0%?i_(rv^B30lr0dJqxB9mGS#GsGMT!2?u%{IUIH1f9`-!fB*%_KLN6@g8(gcc^QW5@(N_?@;mVA@_TT70Y=d?3%Nl0 zCeo9u#p$fP5f{{x(R= z-21OHeV=CS(~NzZ@Vp%D8)Spk+Tz&W4XkbqByn5;9ZWF5!h<@5=24|T{7QiLiU>t0 zK_12-0x^ifkS{_U5*Uz#6z>SwNI8h4zxh^48B8v8E-Wq#elD^->I|__7-3!l(r7~N z4q=s4@ODE+r7JYcTu`vz2^(GC=PUj-%z?X5O&}$l2 YG-;$NI~nVTnfYIG$@k=%ToY?Q0Bl-zga7~l literal 0 HcmV?d00001 diff --git a/bios/Apple/Apple II/thunderclock_u9_v1.3.bin b/bios/Apple/Apple II/thunderclock_u9_v1.3.bin new file mode 100644 index 0000000000000000000000000000000000000000..6c5c1cb8403fefe67bae17316dfe5baf3af76f05 GIT binary patch literal 2048 zcmeHF&ubJ{9N)~&>}01|l|;f;Ed5HX>`JJ6@W+5bx^*|c4U=Tp>{=BGd+6cSQx6_; zQFBm`g@qh?*ajAc(aJtabg2brgNq7<=FJ{_haN;wJa{lUl$Ta<5lZ@bE(lYo8N0@t1s#G&ygyrljY4PuxFLhm0C|XaMk8?N@h+8%}1ogXXQD*PfqZIvgiUIMNIK8rR8S$Avul$q~oa=kj20qH2t|@uJr|kvtopr zYuOC&;az)gcWPZr?V^Tth%x70==wWxJrYe*rKbG-g+gPi9eWA)0FmKUHK`xtKuz6I2zmyqryn>r?u!~QHIg18V14A zQPXw!SW9u;Dk?So_Kof;8t#a{-`51u;FnP0e@~ literal 0 HcmV?d00001 diff --git a/emulators/pom2.yml b/emulators/pom2.yml index fa75430d7..eaf6b8314 100644 --- a/emulators/pom2.yml +++ b/emulators/pom2.yml @@ -3,9 +3,9 @@ type: standalone core_classification: other source: "https://github.com/habib256/pom2" upstream: "https://github.com/habib256/pom2" -profiled_date: "2026-10-23" -source_commit: "dbf7673d0ca938884419335f3d88e9029c15494f" -core_version: "0.9.9" +profiled_date: "2026-11-02" +source_commit: "de86e8e35df96fe6ffced56dfb727bbd567f8568" +core_version: "1.1.0" version_basis: kind: file path: "CMakeLists.txt" @@ -44,9 +44,12 @@ notes: | %LOCALAPPDATA%\POM2) when it really is per-user, the executable directory, its parent, ../share/POM2, the temp fallback data directory otherwise, then the working directory and its two parents. The first hit - wins. Release packages ship the whole roms/ tree, the fonts, the About - photo, the two keyboard photos and the pic/retro artwork - (packaging/bundle.manifest:39, 50-61). + wins. Since v1.1.0 a desktop release package ships no firmware dump + (packaging/bundle.manifest:35-41): the user downloads or drops them in. + The browser build alone preloads the 32 KB //c ROM, the enhanced //e + ROM, the //e character generator and the AppleMouse slot EPROM + (packaging/bundle.manifest:57-60). Packages do carry the floppy samples, + the fonts and the pic/ folder (packaging/bundle.manifest:64, 75, 83). Machine firmware is a probe chain per profile, first name found wins (SystemProfile.cpp romProbeOrder, src/ProfileSwitch.cpp:136-154): @@ -57,13 +60,13 @@ notes: | //c apple2c-32Kv0.rom, apple2c-16K.rom, 3420033a.256 //c Plus apple2cp.rom, apple2c-plus.rom, apple2c-32Kv0.rom With no candidate the machine runs on a $D000-$FFFF stub and the Welcome - panel opens (src/MainWindow.cpp:334-342). A first run with no //e image - falls back to the ][+ chain (src/MainWindow.cpp:239-252). + panel opens (src/MainWindow.cpp:356-364). A first run with no //e image + falls back to the ][+ chain (src/MainWindow.cpp:245-258). Memory::loadAppleIIRom (src/Memory.cpp:175-262) maps 12 KB at $D000, 16 KB at $C000, skips the 4 KB pad of a 20 KB ][+ dump, and slices a 32 KB dump by profile: //e images carry the firmware in the upper half, //c and //c+ images are two firmware banks with bank 0 in the lower half - (src/SystemProfile.cpp:432). + (src/SystemProfile.cpp:446). Character generators follow charRomProbeOrder per profile, or the locale picked in the toolbar (src/CharRomCatalog.cpp:42-91, @@ -73,8 +76,16 @@ notes: | live set. Peripheral ROMs are read when the card is plugged (src/SlotCardFactory.cpp). - The Disk II carries the 341-0027-A boot PROM and the 16-sector P6 - sequencer built in (src/DiskIICard.cpp:136-149). CFFA, Liron, + The Disk II comes up on POM2's own 16-sector boot PROM, assembled from + the boot protocol (src/DiskIIBootRom.h, src/DiskIICard.cpp:86-96). + Apple's 341-0027-A replaces it when roms/disk2.rom is present + (src/DiskIICard.cpp:103-126). Without the P6 PROM, .dsk and .nib images + run the legacy 32-cycle gate and a WOZ is read by POM2's own sequencer + (src/DiskIICard.cpp:128-156, src/DiskIICard.cpp:1412-1416). The + Applicard and the UltraTerm leave the slot empty without their dump + (src/SlotCardFactory.cpp:328-345, src/SlotCardFactory.cpp:362-385). The + CCS 7710 and the DAN ][ run POM2's own firmware page without theirs + (src/SlotCardFactory.cpp:290-327). CFFA, Liron, Workstation, the MC68705 mouse card, the 1981 Grappler, the Apple Parallel Interface, the Videx Videoterm and the Apple Memory Expansion Card leave the slot empty without their dump. Grappler+, ThunderClock+ @@ -83,36 +94,44 @@ notes: | lists every name in probe order with the size the loader enforces, what a missing dump costs (degraded, card unavailable, unused) and, where POM2 vouches for a dump, its CRC32. The panel hashes each present - file (src/RomStatus_ImGui.cpp:176-203, 404) and lists the Virtual ][ - recordings with a decode check (src/RomStatus_ImGui.cpp:314-380). + file (src/RomStatus_ImGui.cpp:183-210, 427) and lists the Virtual ][ + recordings with a decode check (src/RomStatus_ImGui.cpp:337-403). - Help > Download missing ROMs (src/RomFetch.cpp:68-301) fetches 45 files, - 43 distinct dumps, with curl from raw.githubusercontent.com/Abdess/retrobios, - pinned to HTTPS (src/RomFetch.cpp:734-750). Every entry carries a - SHA-256, fourteen a CRC32 as well, and a download is installed only when its - size, CRC32 and SHA-256 match (src/RomFetch.cpp:631-667). A present file - is re-checked with the same gate and, when it is not the catalogued dump, + Help > Download missing ROMs fetches the catalogue of 57 names, 54 + distinct dumps (src/RomFetch.cpp:72-368), with curl pinned to HTTPS + (src/RomFetch.cpp:822-828). The RetroBIOS URLs are read at the pinned + commit f71b006, never main: the loose copies POM2 probes left main on + 2026-10-20 and the pin keeps every URL resolving (src/RomFetch.h:110-124). + Every entry carries a SHA-256, most a CRC32 as well, and a download is + installed only when its size, CRC32 and SHA-256 match + (src/RomFetch.cpp:713, src/RomFetch.cpp:999). A present file is + re-checked with the same gate and, when it is not the catalogued dump, replaced after a copy to roms-replaced/ under the data directory - (src/RomFetch.cpp:581-629, 840-860, 869-887). A 12 KB apple2p.rom is the - one alternate size kept as is. Nine entries are members of MAME romsets, - read in-process (src/ZipMember.cpp): apple2e_unenh.rom is 342-0135-b.64 - then 342-0134-a.64 from apple2e.zip, mouse_341-0270-c.bin is - 341-0270-c.4b from a2mouse.zip, ssc_341-0065-a.bin is 341-0065-a.bin from - a2ssc.zip, grappler_eps-1.bin is eps-1_c1981.u6 from a2grappler.zip, - 341-0057.bin is 341-0057.7b from a2pic.zip, and the four Videoterm files - come from a2vidtrm.zip. Downloads land in the per-user data directory's - roms/ (src/RomFetch.cpp:808-828). Unavailable in the browser build - (src/RomFetch.cpp:932-937). + (src/RomFetch.cpp:665, src/RomFetch.cpp:969-990). A 12 KB apple2p.rom is + the one alternate size kept as is. Fifteen entries are members of MAME + romsets, read in-process (src/ZipMember.cpp): apple2e_unenh.rom is + 342-0135-b.64 then 342-0134-a.64 from apple2e.zip, mouse_341-0270-c.bin + is 341-0270-c.4b from a2mouse.zip, ssc_341-0065-a.bin is 341-0065-a.bin + from a2ssc.zip, grappler_eps-1.bin is eps-1_c1981.u6 from a2grappler.zip, + 341-0057.bin is 341-0057.7b from a2pic.zip, the four Videoterm files come + from a2vidtrm.zip, slinky_341-0344a.bin from a2memexp.zip, + applicard_v9.bin is applicard-v9.bin from a2aplcrd.zip and the four + UltraTerm files come from a2ulttrm.zip and a2ultrme.zip. The two CCS 7710 + PROMs and the DAN ][ EPROM are not fetched from RetroBIOS + (src/RomFetch.cpp:333-351). Downloads land in POM2's own roms/ when that + folder takes files, else in the per-user data directory's roms/ + (src/RomFetch.cpp:905-931). Unavailable in the browser build + (src/RomFetch.cpp:1068-1074). The floppy mechanical sounds are MAME's samples/floppy set, read from roms/floppy_samples/ as two banks of ten WAV files prefixed 525_ and 35_ - (src/FloppySoundDevice.cpp:83-121, src/MainWindow.cpp:351-364). A + (src/FloppySoundDevice.cpp:83-121, src/MainWindow.cpp:373-386). A missing sample is logged and the drive stays silent. A second bank, the Virtual ][ recordings, is read from the folder picked with Import sounds in the audio mixer, stored as mechanical_sound_path (src/MainWindow_AudioPanels.cpp:349-381), then from roms/virtual_ii_sons/, and on macOS from Virtual ][.app/Contents/Resources/ under /Applications - and ~/Applications (src/MainWindow.cpp:365-381, + and ~/Applications (src/MainWindow.cpp:387-403, src/VirtualIISoundCatalog.h:34-45): eight drive and switch takes under lecteur/ and interface/ (src/VirtualIISoundCatalog.h:19-28) and one printer loop under imprimante/ (src/VirtualIISoundCatalog.h:30-31). The @@ -123,7 +142,7 @@ notes: | so a Virtual ][ Contents/Resources/ folder is read as it is (src/VirtualIISoundCatalog.h:47-66, src/FloppySoundDevice.cpp:176-190). The packaging manifest keeps the directory out of release packages - (packaging/bundle.manifest:92-95). + (packaging/bundle.manifest:115-118). The nine takes come from Contents/Resources/ of Virtual ][.app in VirtualII.dmg, the free download on virtualii.com (Virtual ][ 13.3). @@ -143,7 +162,7 @@ notes: | src/PrinterSoundDevice.cpp:80-103, src/VirtualIISoundLoader.h:17-104). The screen sits in a Monitor II bezel, pic/retro/monitor/monitor2.png, - on by default (src/MainWindow_Screen.cpp:371-372), and the Drives window + on by default (src/MainWindow_Screen.cpp:380-381), and the Drives window shows a picture per drive state from pic/retro/drives/ (src/RetroArtwork.cpp:44-91, src/MainWindow_DriveRack.cpp:109-120). Without a picture the screen has no bezel and the drive is drawn as a @@ -153,10 +172,11 @@ notes: | packaging/fujinet/stage.py:20-31). Media named by the code are not firmware and are not listed here: the - browser demo boots bundled_disks/DIX-fix.po on the //c PAL preset - (wasm/shell.html:114-117, src/main.cpp:313-319), and the headless CLI - mounts disks_5.4/dos33_master.dsk by default - (src/pom2_headless.cpp:265-267). Disk, tape and hard-disk images are + browser demo boots bundled_disks/DIX-fix.po on the //c PAL preset unless + ?preset=, ?disk=, ?url= or ?nodisk=1 says otherwise + (wasm/shell.html:114-120, src/main.cpp:317-323), and the headless CLI + mounts disks_5.4/dos33_master.dsk by default, a library image packages + do not carry (src/pom2_headless.cpp:360-365). Disk, tape and hard-disk images are browsed from disks_5.4/, disks_3.5/, hdv/, floppyemu/, bundled_disks/, cassettes/ and prodos_folder/ next to the executable. @@ -165,107 +185,107 @@ files: path: "roms/apple2o.rom" description: "Apple ][ Original monitor and Integer BASIC, $D000-$FFFF" required: false - bundled: true + bundled: false priority: 1 size: 12288 sha256: "68d9db6bb4c305d40c3fa89fa0f2d7b7f71516a9431e3138859f23bc5bddb2d1" sha1: "78008be557f643e956a106121bcc182c0fb9ea6d" validation: [size, sha256] - source_ref: "src/SystemProfile.cpp:38, src/Memory.cpp:175-262, src/RomFetch.cpp:72-75" + source_ref: "src/SystemProfile.cpp:38, src/Memory.cpp:175-262, src/RomFetch.cpp:76-79" note: "First candidate of the Apple ][ Original profile. apple2.rom is probed next." - name: "apple2.rom" path: "roms/apple2.rom" description: "Apple ][ generic 12 KB fallback, Autostart monitor and Applesoft" required: false - bundled: true + bundled: false priority: 2 size: 12288 sha256: "fc3e9d41e9428534a883df5aa10eb55b73ea53d2fcbb3ee4f39bed1b07a82905" sha1: "33a24f5489ba9195b44be77d9afb2252594cb5c7" validation: [size, sha256] - source_ref: "src/SystemProfile.cpp:38, src/SystemProfile.cpp:54, src/ProfileSwitch.cpp:142-149, src/RomFetch.cpp:76-83" + source_ref: "src/SystemProfile.cpp:38, src/SystemProfile.cpp:54, src/ProfileSwitch.cpp:142-149, src/RomFetch.cpp:80-87" note: "Probed after the profile image for the ][ and ][+ profiles. When it resolves in place of that image the loader logs that the ROM identity may not match the machine." - name: "apple2p.rom" path: "roms/apple2p.rom" description: "Apple ][+ Autostart monitor and Applesoft, 4 KB pad then $C000-$FFFF" required: false - bundled: true + bundled: false priority: 1 size: [12288, 20480] sha256: "92c4bef609920842ea472d21b661a0d35dbda6cd90963b8b734a205e22d84108" sha1: "29a53f3bb158b160433369e8e4a1d7cd5bf68ac6" validation: [size, sha256] - source_ref: "src/SystemProfile.cpp:54, src/Memory.cpp:247-257, src/RomFetch.cpp:84-96, src/RomFetch.cpp:869-880" - note: "First candidate of the ][+ profile and of the first-run fallback (src/MainWindow.cpp:248-252). The loader drops the leading 4 KB of the 20 KB dump. The fetch gate names that dump, but a 12 KB six-chip image already on disk is kept as present without a digest check." + source_ref: "src/SystemProfile.cpp:54, src/Memory.cpp:247-257, src/RomFetch.cpp:88-100, src/RomFetch.cpp:999-1010" + note: "First candidate of the ][+ profile and of the first-run fallback (src/MainWindow.cpp:254-258). The loader drops the leading 4 KB of the 20 KB dump. The fetch gate names that dump, but a 12 KB six-chip image already on disk is kept as present without a digest check." - name: "apple2e.rom" path: "roms/apple2e.rom" description: "Apple //e Enhanced firmware, 32 KB dump with the 16 KB firmware in the upper half" required: true - bundled: true + bundled: false priority: 1 size: 32768 sha256: "c17bc38c75ba96c33a30c688a1efd60144811073423533fe7f8453cdd9457aab" sha1: "d756eba578a6c5a4807510dfee30ee585c63755e" validation: [size, sha256] - source_ref: "src/SystemProfile.cpp:101, src/SystemProfile.cpp:244-256, src/Memory.cpp:227-239, src/Memory.cpp:258-260, src/MainWindow.cpp:239-242, src/RomFetch.cpp:97-100" + source_ref: "src/SystemProfile.cpp:101, src/SystemProfile.cpp:244-256, src/Memory.cpp:227-239, src/Memory.cpp:258-260, src/MainWindow.cpp:245-248, src/RomFetch.cpp:101-104" note: "Sole candidate of the //e Enhanced profiles, NTSC and PAL, PAL being the default machine. Also the last fallback of the //e Unenhanced chain." - name: "apple2e_unenh.rom" path: "roms/apple2e_unenh.rom" description: "Apple //e Unenhanced firmware, 4 KB internal $Cx00 ROM then $D000-$FFFF" required: false - bundled: true + bundled: false priority: 1 aliases: ["342-0135-b.64.rom"] size: 16384 sha256: "1fb812584c6633fa16b77b20915986ed1178d1e6fc07a647f7ee8d4e6ab9d40b" sha1: "61fa9254628e5bb7236fb474006116d67684d747" validation: [size, sha256] - source_ref: "src/SystemProfile.cpp:78-79, src/SystemProfile.cpp:270-282, src/RomFetch.cpp:51-56, src/RomFetch.cpp:101-109" + source_ref: "src/SystemProfile.cpp:78-79, src/SystemProfile.cpp:270-282, src/RomFetch.cpp:52-57, src/RomFetch.cpp:105-113" note: "First candidate of the //e Unenhanced profiles. 342-0135-b.64.rom is probed second, apple2e.rom third. The fetcher assembles it from the two 8 KB chips of the MAME apple2e set, 342-0135-b.64 then 342-0134-a.64." - name: "apple2c-32Kv0.rom" path: "roms/apple2c-32Kv0.rom" description: "Apple //c two-bank firmware, bank 0 in the lower 16 KB" required: false - bundled: true + bundled: false priority: 1 size: 32768 crc32: "323952d1" sha256: "d65bbf97058b9cdce8eaebf74124048e3b4e42dca1bd42be316747bbc27dc124" sha1: "fb0d644aafaff1352d0816bc8494f6c9913809d5" validation: [size, sha256] - source_ref: "src/SystemProfile.cpp:142-143, src/SystemProfile.cpp:204-205, src/SystemProfile.cpp:432-437, src/Memory.cpp:227-239, src/Memory.cpp:258-260, src/RomFetch.cpp:110-113" + source_ref: "src/SystemProfile.cpp:142-143, src/SystemProfile.cpp:204-205, src/SystemProfile.cpp:446-451, src/Memory.cpp:227-239, src/Memory.cpp:258-260, src/RomFetch.cpp:114-117" note: "First candidate of the //c and //c PAL profiles, third of the //c Plus chain. Bank 0 is mapped at reset, the $C028 ROMBANK switch selects the other. Identical to 3420033a.256 with its first 256 bytes zeroed." - name: "apple2c-16K.rom" path: "roms/apple2c-16K.rom" description: "Apple //c ROM 255, 16 KB, MAME apple2c a2c.128" required: false - bundled: true + bundled: false priority: 2 size: 16384 crc32: "f0edaa1b" sha256: "3ca1c8a27bf111aa0f4dc9372c5e6404457adb9a458ce32ae4b03a7e989e0c76" sha1: "1a9b8aca5e32bb702ddb7791daddd60a89655729" validation: [size, sha256] - source_ref: "src/SystemProfile.cpp:142-143, src/Memory.cpp:245-246, src/RomFetch.cpp:114-117" + source_ref: "src/SystemProfile.cpp:142-143, src/Memory.cpp:245-246, src/RomFetch.cpp:118-121" note: "Second candidate of the //c chain, loaded at $C000." - name: "3420033a.256" path: "roms/3420033a.256" description: "Apple //c ROM 0, UniDisk 3.5 firmware, MAME apple2c0 342-0033-A" required: false - bundled: true + bundled: false priority: 3 size: 32768 crc32: "c8b979b3" sha256: "678d5c9d374664d2ee94ba9c9564d26a917b31116b07c46df30a3e82c640885b" sha1: "10767e96cc17bad0970afda3a4146564e6272ba1" validation: [size, sha256] - source_ref: "src/SystemProfile.cpp:142-143, src/RomFetch.cpp:118-121" + source_ref: "src/SystemProfile.cpp:142-143, src/RomFetch.cpp:122-125" note: "Third candidate of the //c chain." - name: "apple2cp.rom" path: "roms/apple2cp.rom" description: "Apple //c Plus two-bank firmware, MAME apple2cp 341-0625-a.256" required: false - bundled: true + bundled: false priority: 1 aliases: ["apple2c-plus.rom"] size: 32768 @@ -273,295 +293,295 @@ files: sha256: "5a62070f6a0b07784681d4df4bf2ce88b2809bec0cbaa65fcb963e804ed60374" sha1: "1a27ae26966bbafd825d08ad1a24742d3e33557c" validation: [size, sha256] - source_ref: "src/SystemProfile.cpp:204-205, src/SystemProfile.cpp:432-437, src/RomFetch.cpp:122-125" + source_ref: "src/SystemProfile.cpp:204-205, src/SystemProfile.cpp:446-451, src/RomFetch.cpp:126-129" note: "First candidate of the //c Plus profile. apple2c-plus.rom is probed second and apple2c-32Kv0.rom third." - name: "apple2_char.rom" path: "roms/apple2_char.rom" description: "Apple ][ and ][+ character generator, 2 KB uppercase set" required: false - bundled: true + bundled: false priority: 1 size: 2048 sha256: "08f5d22230481019844492dde0a29a018cb193712a9e4a43770a3870608f28de" sha1: "f9d312f128c9557d9d6ac03bfad6c3ddf83e5659" validation: [size, sha256] - source_ref: "src/SystemProfile.cpp:39, src/SystemProfile.cpp:55, src/CharRomCatalog.cpp:42-43, src/RomFetch.cpp:128-131, src/Memory.cpp:343-376" + source_ref: "src/SystemProfile.cpp:39, src/SystemProfile.cpp:55, src/CharRomCatalog.cpp:42-43, src/RomFetch.cpp:132-135, src/Memory.cpp:343-376" note: "Sole candidate of the ][ and ][+ profiles and the last fallback of every //e-class chain." - name: "apple2e_char.rom" path: "roms/apple2e_char.rom" description: "Apple //e Enhanced character generator 342-0265-A, 4 KB with MouseText" required: false - bundled: true + bundled: false priority: 1 aliases: ["apple2e_char_us.rom"] size: 4096 sha256: "52c3b87900ac939f6525402cab1ccfd8f8259290fc6df54da48fb4c98ae3ed0f" sha1: "b2b5d87f52693817fc747df087a4aa1ddcdb1f10" validation: [size, sha256] - source_ref: "src/SystemProfile.cpp:105, src/SystemProfile.cpp:144, src/SystemProfile.cpp:206, src/CharRomCatalog.cpp:48-49, src/RomFetch.cpp:132-144, src/Memory.cpp:343-376" + source_ref: "src/SystemProfile.cpp:105, src/SystemProfile.cpp:144, src/SystemProfile.cpp:206, src/CharRomCatalog.cpp:48-49, src/RomFetch.cpp:136-148, src/Memory.cpp:343-376" note: "First candidate of the //e Enhanced, //c and //c Plus profiles. The same dump answers to apple2e_char_us.rom in the locale picker, and the fetcher writes both names." - name: "apple2e_char_us_unenh.rom" path: "roms/apple2e_char_us_unenh.rom" description: "Apple //e Unenhanced character generator 342-0133-A, 4 KB" required: false - bundled: true + bundled: false priority: 1 aliases: ["apple2e_char_2k.rom", "341-0265-a.chr.rom"] size: 4096 sha256: "ed5bdd4afa509134e85f1d020685af7ff50e279226eb869a17825b471cc1634c" sha1: "58ad0008df72896a18601e090ee0d58155ffa5be" validation: [size, sha256] - source_ref: "src/SystemProfile.cpp:83-84, src/CharRomCatalog.cpp:50-51, src/RomFetch.cpp:145-152, src/Memory.cpp:343-376" + source_ref: "src/SystemProfile.cpp:83-84, src/CharRomCatalog.cpp:50-51, src/RomFetch.cpp:149-156, src/Memory.cpp:343-376" note: "The //e Unenhanced profile probes apple2e_char_2k.rom then 341-0265-a.chr.rom then apple2_char.rom. The same dump ships under both names and the fetcher writes both." - name: "apple2e_char_fr.rom" path: "roms/apple2e_char_fr.rom" description: "Apple //e French character generator, 4 KB" required: false - bundled: true + bundled: false aliases: ["apple2e_char_frca_unenh.rom"] size: 4096 crc32: "ab0be706" sha256: "52d8e46b487a617c288caaf12ab7ad6cb81030b6ab92419f9a2e19c43d765566" sha1: "42afb02aab4146f781ac52803a2733adc4da834e" validation: [size, sha256] - source_ref: "src/CharRomCatalog.cpp:52-53, src/CharRomCatalog.cpp:56-57, src/CharRomCatalog.cpp:165-180, src/RomFetch.cpp:155-158, src/Memory.cpp:343-376" - note: "Locale picker entry. The same dump is also listed as the FR Canadian unenhanced set 341-0168-A, a name the fetcher does not serve." + source_ref: "src/CharRomCatalog.cpp:52-53, src/CharRomCatalog.cpp:56-57, src/CharRomCatalog.cpp:165-180, src/RomFetch.cpp:159-162, src/Memory.cpp:343-376" + note: "Locale picker entry. The same dump is also listed as the FR Canadian unenhanced set 341-0168-A, and the fetcher writes that name from the same object (src/RomFetch.cpp:183-189)." - name: "apple2e_char_frca.rom" path: "roms/apple2e_char_frca.rom" description: "Apple //e French Canadian Enhanced character generator, 4 KB" required: false - bundled: true + bundled: false size: 4096 crc32: "2c8fc403" sha256: "56479cbec4767651c62a4d0f61e6ed103395216f2b86eddba74d85495dd71cc4" sha1: "4043e0808af8be096660827445e41149d16c5c85" validation: [size, sha256] - source_ref: "src/CharRomCatalog.cpp:54-55, src/CharRomCatalog.cpp:165-180, src/RomFetch.cpp:159-162, src/Memory.cpp:343-376" + source_ref: "src/CharRomCatalog.cpp:54-55, src/CharRomCatalog.cpp:165-180, src/RomFetch.cpp:163-166, src/Memory.cpp:343-376" note: "Locale picker entry, equal to the low bank of 342-0274-a.e9." - name: "apple2e_char_uk.rom" path: "roms/apple2e_char_uk.rom" description: "Apple //e UK Enhanced character generator 342-0273-A, 4 KB" required: false - bundled: true + bundled: false size: 4096 crc32: "dda11653" sha256: "d55bd5391485cd78c68c71408f09bd088e82a73d179a0a25820067a0c1554acd" sha1: "d19c2e2cc12b27d77edc403d5d0701186a4ed988" validation: [size, sha256] - source_ref: "src/CharRomCatalog.cpp:58-59, src/CharRomCatalog.cpp:165-180, src/RomFetch.cpp:163-166, src/Memory.cpp:343-376" + source_ref: "src/CharRomCatalog.cpp:58-59, src/CharRomCatalog.cpp:165-180, src/RomFetch.cpp:167-170, src/Memory.cpp:343-376" note: "Locale picker entry." - name: "apple2e_char_uk_unenh.rom" path: "roms/apple2e_char_uk_unenh.rom" description: "Apple //e UK Unenhanced character generator 341-0160-A, 4 KB" required: false - bundled: true + bundled: false size: 4096 crc32: "7a9a91ef" sha256: "f2199fbfb473e98a8c3fb7e7c3312faaf76b4b010b02c655b662e5f87dc997f3" sha1: "6ca9767e0f47f642d1caab6ed41b8f58c58bb9eb" validation: [size, sha256] - source_ref: "src/CharRomCatalog.cpp:60-61, src/CharRomCatalog.cpp:165-180, src/RomFetch.cpp:167-170, src/Memory.cpp:343-376" + source_ref: "src/CharRomCatalog.cpp:60-61, src/CharRomCatalog.cpp:165-180, src/RomFetch.cpp:171-174, src/Memory.cpp:343-376" note: "Locale picker entry." - name: "apple2e_char_de.rom" path: "roms/apple2e_char_de.rom" description: "Apple //e German character generator 341-0161-A, 4 KB" required: false - bundled: true + bundled: false size: 4096 crc32: "0d72f153" sha256: "b92576b4fa994384501078ff99963b53cfa98eff4bb641eb61649d484a469315" sha1: "a7fd75ae8611572b0b4d99ad54562014b879dbbf" validation: [size, sha256] - source_ref: "src/CharRomCatalog.cpp:62-63, src/CharRomCatalog.cpp:165-180, src/RomFetch.cpp:171-174, src/Memory.cpp:343-376" + source_ref: "src/CharRomCatalog.cpp:62-63, src/CharRomCatalog.cpp:165-180, src/RomFetch.cpp:175-178, src/Memory.cpp:343-376" note: "Locale picker entry." - name: "apple2e_char_de_improved.rom" path: "roms/apple2e_char_de_improved.rom" description: "Apple //e German Improved character generator, 4 KB" required: false - bundled: true + bundled: false size: 4096 crc32: "d345d332" sha256: "0e32ab131e3932fc61c0a5f0f5509b4c37ab8db6239027f5955d47feba56d39f" sha1: "12ce44f02bd28c350e2b0723d94ab8d9066f8798" validation: [size, sha256] - source_ref: "src/CharRomCatalog.cpp:64-65, src/CharRomCatalog.cpp:165-180, src/RomFetch.cpp:175-178, src/Memory.cpp:343-376" + source_ref: "src/CharRomCatalog.cpp:64-65, src/CharRomCatalog.cpp:165-180, src/RomFetch.cpp:179-182, src/Memory.cpp:343-376" note: "Locale picker entry." - name: "342-0274-a.e9" path: "roms/342-0274-a.e9" description: "Apple //e international video ROM 342-0274-A, 8 KB, French Canadian bank then US bank, MAME apple2eefr" required: false - bundled: true + bundled: false size: 8192 crc32: "8f342081" sha256: "d4d29771658372c6ab5d18ff3bdab6b3b2b02b8de30ed6b021efb8a415192432" sha1: "c81c1bbf237e70f8c3e5eef3c8fd5bd9b9f54d1e" validation: [size, sha256] - source_ref: "src/CharRomCatalog.cpp:81-84, src/CharRomCatalog.cpp:158-163, src/RomFetch.cpp:179-184, src/RomStatus_ImGui.cpp:273, src/Memory.cpp:343-376" + source_ref: "src/CharRomCatalog.cpp:81-84, src/CharRomCatalog.cpp:158-163, src/RomFetch.cpp:198-203, src/RomStatus_ImGui.cpp:296, src/Memory.cpp:343-376" note: "Locale picker entries select bank 0 or bank 1. Loaded whole, both banks stay live and annunciator 2 picks the set." - name: "apple2e_char_ft_blockascii.rom" path: "roms/apple2e_char_ft_blockascii.rom" description: "French Touch Block ASCII dual-bank character generator, 8 KB" required: false - bundled: true + bundled: false size: 8192 crc32: "1eae3944" sha256: "c69c8e1eb26923c5df03d3507fdf86c5f768283a924a5fffdd80377cf2339321" sha1: "f79815457437e50404f4f537d8aabe34bff3a220" validation: [size, sha256] - source_ref: "src/CharRomCatalog.cpp:85-86, src/RomFetch.cpp:185-189, src/RomStatus_ImGui.cpp:273, src/Memory.cpp:343-376" + source_ref: "src/CharRomCatalog.cpp:85-86, src/RomFetch.cpp:204-208, src/RomStatus_ImGui.cpp:296, src/Memory.cpp:343-376" note: "Locale picker entry loaded dual-bank: annunciator 2 flips between the text set and the block glyphs." - name: "apple2e_char_us_mt_iigs.rom" path: "roms/apple2e_char_us_mt_iigs.rom" description: "Apple //e US Enhanced character generator with the IIgs MouseText glyphs, 4 KB" required: false - bundled: true + bundled: false size: 4096 crc32: "a68a4f03" sha1: "66eca035fd18024fceed4c30c32a4185792cb3ea" sha256: "097cd3500afe6c15d710d2e96af539a8e5065853986289294aac08ee7a1f070a" validation: [size] - source_ref: "src/CharRomCatalog.cpp:87-88, src/CharRomCatalog.cpp:165-180, src/RomStatus_ImGui.cpp:273, src/Memory.cpp:343-376" + source_ref: "src/CharRomCatalog.cpp:87-88, src/CharRomCatalog.cpp:165-180, src/RomStatus_ImGui.cpp:296, src/Memory.cpp:343-376" note: "Locale picker entry. Shipped in roms/. The fetcher does not serve it, so only the size is checked." - name: "apple2e_char_reactive.rom" path: "roms/apple2e_char_reactive.rom" description: "ReActive custom Apple //e character generator, 4 KB" required: false - bundled: true + bundled: false size: 4096 crc32: "af19aff6" sha1: "02075efbfdb99af48360561323404a921b91a676" sha256: "49716e2804b119810c22ab668ae37cebadf0cd53bc8911b5f17c4a62a3acb514" validation: [size] - source_ref: "src/CharRomCatalog.cpp:89-90, src/CharRomCatalog.cpp:165-180, src/RomStatus_ImGui.cpp:273, src/Memory.cpp:343-376" + source_ref: "src/CharRomCatalog.cpp:89-90, src/CharRomCatalog.cpp:165-180, src/RomStatus_ImGui.cpp:296, src/Memory.cpp:343-376" note: "Locale picker entry. Shipped in roms/. The fetcher does not serve it, so only the size is checked." - name: "Videx Lower Case Chip ROM.bin" path: "roms/Videx Lower Case Chip ROM.bin" description: "Videx LOWER CASE CHIP character generator for the ][ and ][+, 2 KB" required: false - bundled: true + bundled: false size: 2048 crc32: "00f68076" sha256: "6a516bcd96382597af7a498fb1da7547490c830db0f9d22d541fb065b9cd048b" sha1: "447874fe0850c8add3fd5b13fa98f6648fe6f999" validation: [size, crc32, sha256] - source_ref: "src/CharRomCatalog.cpp:44-45, src/RomCatalog.h:208-214, src/RomFetch.cpp:190-194, src/RomStatus_ImGui.cpp:404" + source_ref: "src/CharRomCatalog.cpp:44-45, src/RomCatalog.h:253-259, src/RomFetch.cpp:209-213, src/RomStatus_ImGui.cpp:427" note: "Locale picker entry for the ][ and ][+ profiles. Without it the picker keeps the stock uppercase set." - name: "disk2.rom" path: "roms/disk2.rom" description: "Disk II 16-sector boot PROM 341-0027-A" required: false - bundled: true + bundled: false has_builtin: true size: 256 sha256: "de1e3e035878bab43d0af8fe38f5839c527e9548647036598ee6fe7ec74d2a7d" sha1: "d4181c9f046aafc3fb326b381baac809d9e38d16" validation: [size, sha256] - source_ref: "src/SlotCardFactory.cpp:106-119, src/DiskIICard.cpp:136-141, src/DiskIICard.cpp:151-174, src/RomFetch.cpp:197-200" - note: "The card carries the same PROM built in, and the file replaces it when present." + source_ref: "src/SlotCardFactory.cpp:111-124, src/DiskIICard.cpp:86-92, src/DiskIICard.cpp:103-126, src/RomFetch.cpp:216-219" + note: "The card comes up on POM2's own boot PROM, written from the boot protocol (src/DiskIIBootRom.h). Apple's file replaces it when present." - name: "diskii_p6.rom" path: "roms/diskii_p6.rom" description: "Disk II 16-sector P6 logic state sequencer PROM 341-0028-A" required: false - bundled: true + bundled: false has_builtin: true size: 256 sha256: "e5e30615040567c1e7a2d21599681f8dac820edbdcda177b816a64d74b3a12f2" sha1: "bc39fbd5b9a8d2287ac5d0a42e639fc4d3c2f9d4" validation: [size, sha256] - source_ref: "src/SlotCardFactory.cpp:106-119, src/DiskIICard.cpp:142-149, src/DiskIICard.cpp:176-202, src/DiskIICard.cpp:251-263, src/RomFetch.cpp:201-204" - note: "Loading the file switches the bit-level LSS path on for every image. Without it the legacy 32-cycle nibble gate serves non-WOZ images and the built-in PROM serves WOZ images." + source_ref: "src/SlotCardFactory.cpp:111-124, src/DiskIICard.cpp:93-101, src/DiskIICard.cpp:128-156, src/DiskIICard.cpp:205-215, src/RomFetch.cpp:220-223" + note: "Loading the file switches the bit-level P6 path on for every image. Without it the legacy 32-cycle nibble gate serves .dsk and .nib images and POM2's own sequencer reads and writes WOZ images." - name: "disk2_13.rom" path: "roms/disk2_13.rom" description: "Disk II 13-sector boot PROM 341-0009" required: false - bundled: true + bundled: false size: 256 sha256: "2d2599521fc5763d4e8c308c2ee7c5c4d5c93785b8fb9a4f7d0381dfd5eb60b6" sha1: "afd060e6f35faf3bb0146fa889fc787adf56330a" validation: [size, sha256] - source_ref: "src/SlotCardFactory.cpp:106-119, src/DiskIICard.cpp:204-221, src/DiskIICard.cpp:264-288, src/RomCatalog.h:90-93, src/RomFetch.cpp:205-208" + source_ref: "src/SlotCardFactory.cpp:111-124, src/DiskIICard.cpp:158-175, src/DiskIICard.cpp:216-240, src/RomCatalog.h:92-95, src/RomFetch.cpp:224-227" note: "A mounted 13-sector disk switches the card to this PROM at $Cn00 and forces the bit-level LSS. Without it the disk mounts but cannot boot." - name: "diskii_p6_13.rom" path: "roms/diskii_p6_13.rom" description: "Disk II 13-sector P6 logic state sequencer PROM 341-0010" required: false - bundled: true + bundled: false size: 256 sha256: "383c55f5333cbfde39dd41528186631e5aca2eddfec30716344f03b6a4d44655" sha1: "e3d6d1c30653572b49ecc2dc54ce073978411a04" validation: [size, sha256] - source_ref: "src/SlotCardFactory.cpp:106-119, src/DiskIICard.cpp:223-240, src/DiskIICard.cpp:273-283, src/RomCatalog.h:94-97, src/RomFetch.cpp:209-212" + source_ref: "src/SlotCardFactory.cpp:111-124, src/DiskIICard.cpp:177-194, src/DiskIICard.cpp:225-235, src/RomCatalog.h:96-99, src/RomFetch.cpp:228-231" note: "Read into the card and not consumed: the 13-sector switch depends on disk2_13.rom alone, and the sequencer keeps running the 16-sector P6 on 13-sector disks." - name: "cffa20eec02.bin" path: "roms/cffa20eec02.bin" description: "CFFA 2.0 firmware, 65C02 build" required: false - bundled: true + bundled: false size: 4096 crc32: "fb3726f8" sha256: "a08cb25ad80054649ee5fcb620e01ed56f025acb28c753bc28dd187a1d149cab" sha1: "080ff88f19de22328e162954ee2b51ee65f9d5cd" validation: [size, crc32, sha256] - source_ref: "src/SlotCardFactory.cpp:128-152, src/CffaCard.cpp:26-40, src/RomCatalog.h:119-123, src/RomFetch.cpp:223-226" + source_ref: "src/SlotCardFactory.cpp:133-157, src/CffaCard.cpp:26-40, src/RomCatalog.h:121-125, src/RomFetch.cpp:242-245" note: "Preferred when the CPU is a 65C02, the 6502 build is the fallback, and the slot stays empty when neither is found." - name: "cffa20ee02.bin" path: "roms/cffa20ee02.bin" description: "CFFA 2.0 firmware, 6502 build" required: false - bundled: true + bundled: false size: 4096 crc32: "3ecafce5" sha256: "3d7f6918f9af3828f5a6299299a817df0d354ee62e547bc0238755de66162a88" sha1: "d600692ed9626668233a22a48236af639410cb7b" validation: [size, crc32, sha256] - source_ref: "src/SlotCardFactory.cpp:128-152, src/CffaCard.cpp:26-40, src/RomCatalog.h:124-129, src/RomFetch.cpp:219-222" + source_ref: "src/SlotCardFactory.cpp:133-157, src/CffaCard.cpp:26-40, src/RomCatalog.h:126-131, src/RomFetch.cpp:238-241" note: "Preferred on an NMOS 6502, fallback for a 65C02." - name: "mouse_341-0270-c.bin" path: "roms/mouse_341-0270-c.bin" description: "AppleMouse II card slot EPROM 341-0270-C" required: false - bundled: true + bundled: false size: 2048 sha256: "7f8e50c0e8a409991264201f9300f109b872b68e09c43f3e6c26af35fd8b89af" sha1: "3a9d881a8a8d30f55b9719aceebbcf717f829d6f" validation: [size, sha256] - source_ref: "src/SlotCardFactory.cpp:64-96, src/SlotCardFactory.cpp:399-414, src/MouseCard.cpp:120-154, src/MouseCardAppleWin.cpp:90-103, src/RomFetch.cpp:243-248" + source_ref: "src/SlotCardFactory.cpp:69-101, src/SlotCardFactory.cpp:507-522, src/MouseCard.cpp:120-154, src/MouseCardAppleWin.cpp:90-103, src/RomFetch.cpp:262-267" note: "Needed by both mouse cards: the MC68705 card also needs the MCU ROM, the AppleWin HLE card needs this one only. The fetcher extracts it from the MAME a2mouse set as 341-0270-c.4b." - name: "mouse_341-0269.bin" path: "roms/mouse_341-0269.bin" description: "AppleMouse II card MC68705P3 MCU mask ROM 341-0269" required: false - bundled: true + bundled: false size: 2048 sha256: "66480812edad5f6bd70349949cf8bd8fbafee2dc8bf396541d4e78bac2629ec0" sha1: "3a2baa6648efe4456d3ec3721216e57c64f7acfc" validation: [size, sha256] - source_ref: "src/SlotCardFactory.cpp:64-96, src/MouseCard.cpp:151-154, src/M68705P3.cpp:85-104, src/RomFetch.cpp:239-242" + source_ref: "src/SlotCardFactory.cpp:69-101, src/MouseCard.cpp:151-154, src/M68705P3.cpp:84-103, src/RomFetch.cpp:258-261" note: "The MC68705 mouse card leaves its slot empty without it." - name: "grappler_plus.bin" path: "roms/grappler_plus.bin" description: "Orange Micro Grappler+ parallel printer EPROM 3.2" required: false - bundled: true + bundled: false aliases: ["grappler+.bin", "grappler.bin"] size: 4096 sha256: "9be4dea7722ad8928aee64c2ae708f365a6d66c50a63bff8a3c1a4e7596d44c6" sha1: "829072cc19a58b24d36c2af972abaad6f9ba35d9" validation: [size, sha256] - source_ref: "src/SlotCardFactory.cpp:166-185, src/GrapplerCard.cpp:30-53, src/RomCatalog.h:132-138, src/RomFetch.cpp:235-238" + source_ref: "src/SlotCardFactory.cpp:171-190, src/GrapplerCard.cpp:31-54, src/RomCatalog.h:134-140, src/RomFetch.cpp:254-257" note: "Without it the card runs a stub ROM: PR#n prints, the graphics dump commands are absent." - name: "ae_transwarp_1.4.bin" path: "roms/ae_transwarp_1.4.bin" description: "Applied Engineering TransWarp accelerator ROM v1.4, MAME warprom" required: false - bundled: true + bundled: false aliases: ["ae transwarp rom v1.4.bin"] size: 4096 crc32: "afe37f55" sha256: "bcbb1a3bab083b0c2988b502f5e024ff4346fab5dbf09276b32724693bcbd0e9" sha1: "7b75534e7895e04859a0b1337801c6eeb0cef52a" validation: [size, crc32, sha256] - source_ref: "src/TranswarpCard.h:175, src/TranswarpCard.cpp:215-235, src/RomCatalog.h:139-146, src/RomFetch.cpp:231-234" + source_ref: "src/TranswarpCard.h:175, src/TranswarpCard.cpp:215-235, src/RomCatalog.h:141-148, src/RomFetch.cpp:250-253" note: "Shipped in roms/ since v0.9.3. The dump is the card's boot firmware, 65C02 code overlaid on $F000-$FFFF until it writes $C072: it tests RAM and the Apple ROM, then boots through the Apple reset vector. Without it the card accelerates and the machine boots straight into the Apple ROM. The shadow steps aside for a main ROM reload and covers the new firmware." - name: "ssc_341-0065-a.bin" path: "roms/ssc_341-0065-a.bin" @@ -573,7 +593,7 @@ files: sha256: "4fa1323ba31f4bd562486838397b7744257c126806766e360876720daca6e2aa" sha1: "6dab633470c6bc4cb3e81d09fda46597caf8ee57" validation: [size, crc32, sha256] - source_ref: "src/SlotCardFactory.cpp:441-459, src/SuperSerialCard.cpp:773-779, src/RomCatalog.h:147-154, src/RomFetch.cpp:281-284" + source_ref: "src/SlotCardFactory.cpp:549-567, src/SuperSerialCard.cpp:833-839, src/RomCatalog.h:192-199, src/RomFetch.cpp:300-303" note: "Three names are probed in order and a file that is not 2048 bytes is refused. Without it the card runs a hand-written slot ROM: PR#n, IN#n and the Pascal 1.1 entries work, the firmware commands and printer mode are absent. Not loaded on the //c and //c Plus. The fetcher extracts it from the MAME a2ssc set as 341-0065-a.bin." - name: "grappler_eps-1.bin" path: "roms/grappler_eps-1.bin" @@ -584,7 +604,7 @@ files: sha256: "4cce25c87ba4dd396919ce82f8567894225519c3d9db76c5667760f77054694f" sha1: "791ebae64a7fad8f42bdfaec36b9e2d34f12ded8" validation: [size, crc32, sha256] - source_ref: "src/SlotCardFactory.cpp:188-226, src/GrapplerClassicCard.cpp:28-34, src/RomCatalog.h:155-158, src/RomFetch.cpp:253-256" + source_ref: "src/SlotCardFactory.cpp:193-231, src/GrapplerClassicCard.cpp:28-34, src/RomCatalog.h:200-203, src/RomFetch.cpp:272-275" note: "The original Grappler leaves its slot empty without it. The fetcher extracts it from the MAME a2grappler set as eps-1_c1981.u6." - name: "341-0057.bin" path: "roms/341-0057.bin" @@ -595,7 +615,7 @@ files: sha256: "634e91bae5938820da79183984c03aa06075cbd5701d480debcc4f6d70620001" sha1: "de8aa285dcac88b1cc80ec9128b092833f5174b6" validation: [size, crc32, sha256] - source_ref: "src/SlotCardFactory.cpp:188-226, src/AppleParallelCard.cpp:28-34, src/RomCatalog.h:159-162, src/RomFetch.cpp:257-260" + source_ref: "src/SlotCardFactory.cpp:193-231, src/AppleParallelCard.cpp:28-34, src/RomCatalog.h:204-207, src/RomFetch.cpp:276-279" note: "The Apple Parallel Interface leaves its slot empty without it. The fetcher extracts it from the MAME a2pic set as 341-0057.7b." - name: "videx_videoterm_v24_60hz.bin" path: "roms/videx_videoterm_v24_60hz.bin" @@ -607,7 +627,7 @@ files: sha256: "420da3867e489824f5fc0377c287c48a125296f19e1306df764e8f63bd23b00a" sha1: "19f69011ed7d2551c39d5c1cac1f5a2defc8f8fb" validation: [size, crc32, sha256] - source_ref: "src/SlotCardFactory.cpp:245-256, src/SlotCardFactory.cpp:264-274, src/VidexVideotermCard.cpp:40-47, src/RomCatalog.h:165-171, src/RomFetch.cpp:263-266" + source_ref: "src/SlotCardFactory.cpp:250-261, src/SlotCardFactory.cpp:269-279, src/VidexVideotermCard.cpp:40-47, src/RomCatalog.h:210-216, src/RomFetch.cpp:282-285" note: "First firmware candidate of the Videoterm card. The 50 Hz dump is probed second. With neither the slot stays empty. The fetcher extracts it from the MAME a2vidtrm set." - name: "videx_videoterm_v24_50hz.bin" path: "roms/videx_videoterm_v24_50hz.bin" @@ -619,7 +639,7 @@ files: sha256: "616f4d9f81a7a4ea0fa918842a05dfb3b503927776d2bfe97e6950b5431b562e" sha1: "bb653836e84850ce3197f461d4e19355f738cfbf" validation: [size, crc32, sha256] - source_ref: "src/SlotCardFactory.cpp:245-256, src/VidexVideotermCard.cpp:40-47, src/RomCatalog.h:172-177, src/RomFetch.cpp:267-271" + source_ref: "src/SlotCardFactory.cpp:250-261, src/VidexVideotermCard.cpp:40-47, src/RomCatalog.h:217-222, src/RomFetch.cpp:286-290" note: "Fallback firmware of the Videoterm card, padded to 2 KB with $FF. The fetcher extracts it from the MAME a2vidtrm set." - name: "videx_videoterm_char_normal.bin" path: "roms/videx_videoterm_char_normal.bin" @@ -630,7 +650,7 @@ files: sha256: "ad873ca47e09def4c942177c84809d853231d4774e8d824e1b834d2033b8199c" sha1: "410b54f33d13c82e3857f1be906d93a8c5b8d321" validation: [size, crc32, sha256] - source_ref: "src/SlotCardFactory.cpp:257-274, src/VidexVideotermCard.cpp:49-65, src/RomCatalog.h:178-182, src/RomFetch.cpp:272-276" + source_ref: "src/SlotCardFactory.cpp:262-279, src/VidexVideotermCard.cpp:49-65, src/RomCatalog.h:223-227, src/RomFetch.cpp:291-295" note: "The Videoterm card leaves its slot empty without it. The fetcher extracts it from the MAME a2vidtrm set as videx videoterm character rom normal.bin." - name: "videx_videoterm_char_inverse.bin" path: "roms/videx_videoterm_char_inverse.bin" @@ -641,80 +661,176 @@ files: sha256: "4d03bd0934ab39cb18f22444e0361f91d1984131759c07010398ad5cf84397c0" sha1: "50c3df528109c65491a001ec74e50351a652c1fd" validation: [size, crc32, sha256] - source_ref: "src/SlotCardFactory.cpp:257-263, src/VidexVideotermCard.cpp:49-65, src/RomCatalog.h:183-188, src/RomFetch.cpp:277-280" + source_ref: "src/SlotCardFactory.cpp:262-268, src/VidexVideotermCard.cpp:49-65, src/RomCatalog.h:228-233, src/RomFetch.cpp:296-299" note: "Alternate set of the Videoterm card. A missing or wrong-size file is ignored and the card derives the set as the bitwise inverse of the normal one. The fetcher extracts it from the MAME a2vidtrm set." - name: "thunderclock_u9_v1.3.bin" path: "roms/thunderclock_u9_v1.3.bin" description: "Thunderware ThunderClock+ slot ROM rev 1.3, U9" required: false - bundled: true + bundled: false aliases: ["thunderclock_u9.bin", "thunderclock.rom", "Thunderware_REV_1.3_ROM_U9.bin"] size: [256, 2048] sha256: "ecca793179427fdd193373080bf23e49a95743bd7b5e0b218c747663938b6c03" sha1: "60f434f5325899d7ea257a6e56e6f53eae65146a" validation: [size, sha256] - source_ref: "src/ClockCard.cpp:592-653, src/RomCatalog.h:216-226, src/RomFetch.cpp:227-230" + source_ref: "src/ClockCard.cpp:702-763, src/RomCatalog.h:261-271, src/RomFetch.cpp:246-249" note: "The card loads a 256-byte slot ROM or the 2 KB chip, which supplies the $C800 expansion ROM as well. The fetch gate names the 2 KB dump and replaces a 256-byte file. The first four even bytes must read $08, $28, $58, $70, the ProDOS clock signature, or the synthetic ROM stays in place." - name: "liron.rom" path: "roms/liron.rom" description: "Apple Liron SmartPort controller firmware, 4 KB" required: false - bundled: true + bundled: false size: 4096 sha256: "42c1ae66c6bec932669239599eb8989a5364752d56fa5c8997bb23d8dfc0b657" sha1: "fa94ecc2aa23f336f7da9e18bc8f4a6cfbb4ea60" validation: [size, sha256] - source_ref: "src/SlotCardFactory.cpp:352-387, src/LironCard.cpp:62-86, src/SmartPortCard.cpp:102-119, src/RomCatalog.h:100-104, src/RomFetch.cpp:215-218" + source_ref: "src/SlotCardFactory.cpp:460-495, src/LironCard.cpp:68-92, src/SmartPortCard.cpp:102-119, src/RomCatalog.h:102-106, src/RomFetch.cpp:234-237" note: "The Liron card refuses to plug without it. The SmartPort 3.5 card loads it on machines with physical slots and otherwise presents a synthetic identity." - name: "341-0358-A.bin" path: "roms/341-0358-A.bin" description: "Apple II Workstation Card firmware 341-0358-A, 64 KB" required: false - bundled: true + bundled: false aliases: ["341-0358-a.bin"] size: 65536 crc32: "63819dcb" sha256: "ce785b913b9fcec6db0fab89b2d94f07fcd07664a822531dcbba3a5ca70ca3bf" sha1: "59c8e8c88bac5c31ada1306b412edfcf5912a720" validation: [size, crc32, sha256] - source_ref: "src/SlotCardFactory.cpp:327-350, src/WorkstationCard.cpp:60-74, src/RomCatalog.h:198-206, src/RomFetch.cpp:291-294" + source_ref: "src/SlotCardFactory.cpp:435-458, src/WorkstationCard.cpp:60-74, src/RomCatalog.h:243-251, src/RomFetch.cpp:358-361" note: "The Workstation card leaves its slot empty without it. The card runs its own 65C02 on the upper 32 KB." - name: "slinky_341-0344a.bin" path: "roms/slinky_341-0344a.bin" description: "Apple Memory Expansion Card firmware 341-0344A, 4 KB, MAME a2memexp" required: false - bundled: true + bundled: false size: 4096 crc32: "1e994e17" sha256: "2b9beab16f64cda027ef8f2a048e54f3cb8f8016eafdc98d7be500c6a90ccc9c" sha1: "6e823a1fa40ed37eeddcef23f5df24da2ea1463e" validation: [size] - source_ref: "src/SlotCardFactory.cpp:299-325, src/SlinkyCard.cpp:38-40, src/SlinkyCard.h:93-97" + source_ref: "src/SlotCardFactory.cpp:407-433, src/SlinkyCard.cpp:39-41, src/SlinkyCard.h:94-98" note: "The Memory Expansion card leaves its slot empty without it, and a file that is not 4096 bytes is refused. The firmware is the card's ProDOS RAM-disk driver: seven per-slot $Cn00 pages and the $C800 expansion ROM. Not in the fetch catalogue." - name: "341-0438-a.bin" path: "roms/341-0438-a.bin" description: "Apple II 3.5 Disk Controller SuperDrive firmware 341-0438-A, MAME a2superdrive" required: false - bundled: true + bundled: false size: 32768 crc32: "c73ff25b" sha256: "084587835c1d2c92f5708a9745fdd43ba32136fcdb861a12ee7d690de22dc172" sha1: "440c3f84176c7b9f542da0b6ddf4fb13ec326c46" validation: [size, crc32, sha256] - source_ref: "src/RomCatalog.h:105-111, src/RomStatus_ImGui.cpp:179-197, src/RomFetch.cpp:287-290" + source_ref: "src/RomCatalog.h:107-113, src/RomStatus_ImGui.cpp:186-204, src/RomFetch.cpp:354-357" note: "No card reads it. The ROM Status panel and the fetch gate check it." - name: "342-0326-a.f12" path: "roms/342-0326-a.f12" description: "Apple //e French keyboard decode ROM 342-0326-A, MAME apple2eefr" required: false - bundled: true + bundled: false size: 2048 crc32: "f04970a9" sha256: "4ae7ff693a486b155a70a8833047b3d4363464dace6760ed64bfb68db233ed4b" sha1: "806a602195c18ffec637c03b6bb3405188b0dc1e" validation: [size, crc32, sha256] - source_ref: "src/RomCatalog.h:112-118, src/RomStatus_ImGui.cpp:179-197, src/RomStatus_ImGui.cpp:404, src/RomFetch.cpp:295-298" + source_ref: "src/RomCatalog.h:114-120, src/RomStatus_ImGui.cpp:186-204, src/RomStatus_ImGui.cpp:427, src/RomFetch.cpp:362-365" note: "Host keys are mapped directly, no keyboard decode ROM is emulated. The ROM Status panel and the fetch gate check the file only." + - name: "applicard_v9.bin" + path: "roms/applicard_v9.bin" + description: "PCPI Applicard Z80 boot ROM v9, MAME a2aplcrd applicard-v9.bin" + required: false + bundled: false + size: 2048 + crc32: "1d461000" + sha256: "ee9841257e923e1d6be9cd366d2d98d12db9647c9cb1cfe3ce5d631f588cdeca" + sha1: "71d633be864b6084362e85108a4e600cbe6e44fe" + validation: [size, crc32, sha256] + source_ref: "src/SlotCardFactory.cpp:328-345, src/ApplicardCard.h:58-62, src/ApplicardCard.cpp:39-44, src/RomCatalog.h:155-159, src/RomFetch.cpp:313-316" + note: "ROM-gated: the card's 6 MHz Z80 boots from this 2 KB ROM and has nothing else to run, so a file that is missing or not 2048 bytes leaves the slot empty. The fetcher extracts it from the MAME a2aplcrd set, which the collection holds in bios/Arcade/Arcade/a2aplcrd.zip." + - name: "videx_ultraterm_frm_b537.bin" + path: "roms/videx_ultraterm_frm_b537.bin" + description: "Videx UltraTerm firmware EPROM, original card, MAME a2ulttrm frm_b537.bin" + required: false + bundled: false + size: 4096 + crc32: "1e85a93e" + sha256: "8c9888dbc0c5dc8d51493e3f192a09415216ccb96d99e9d94ea29c58dec643e0" + sha1: "b4acd1775c08ae43996ab4edf6d8e28f4736346b" + validation: [size, crc32, sha256] + source_ref: "src/SlotCardFactory.cpp:362-385, src/VidexUltratermCard.h:87-90, src/VidexUltratermCard.cpp:43-49, src/RomCatalog.h:174-177, src/RomFetch.cpp:317-320" + note: "Loaded as a pair with videx_ultraterm_chs_7859.bin: both must be 4 KB or the slot stays empty. On a //e the enhanced pair is tried first and this one second. A ][ or ][+ probes this pair only. Member of the MAME a2ulttrm set, bios/Arcade/Arcade/a2ulttrm.zip." + - name: "videx_ultraterm_chs_7859.bin" + path: "roms/videx_ultraterm_chs_7859.bin" + description: "Videx UltraTerm character ROM, original card, MAME a2ulttrm chs_7859.bin" + required: false + bundled: false + size: 4096 + crc32: "ebe8f333" + sha256: "d9c3108abb2a21a3807deb992af62c963891f18938f1da945e536f82e4676651" + sha1: "3517fa9e7a39573f1cb159b3161d6939dec199ba" + validation: [size, crc32, sha256] + source_ref: "src/SlotCardFactory.cpp:362-385, src/VidexUltratermCard.h:87-90, src/VidexUltratermCard.cpp:43-49, src/RomCatalog.h:179-182, src/RomFetch.cpp:321-324" + note: "The high- and low-density glyph sets of the original card, 128 glyphs of 16 rasters each. Pair of videx_ultraterm_frm_b537.bin. Member of the MAME a2ulttrm set, bios/Arcade/Arcade/a2ulttrm.zip." + - name: "videx_ultraterm_enh_frm_b5c9.bin" + path: "roms/videx_ultraterm_enh_frm_b5c9.bin" + description: "Videx UltraTerm firmware EPROM, enhanced //e card, MAME a2ultrme frm_b5c9.bin" + required: false + bundled: false + size: 4096 + crc32: "b71e05e0" + sha256: "cb17d747d3370723df02504f94bcf72aae9ef6d7419dc1e2edeb2cccfedf4024" + sha1: "092e3eda4644d4f465809864a7f023ac7d1d1542" + validation: [size, crc32, sha256] + source_ref: "src/SlotCardFactory.cpp:362-385, src/VidexUltratermCard.h:87-90, src/VidexUltratermCard.cpp:43-49, src/RomCatalog.h:183-186, src/RomFetch.cpp:325-328" + note: "Loaded as a pair with videx_ultraterm_enh_chs_5604.bin, the first pair tried on a //e and never probed on a ][ or ][+. Member of the MAME a2ultrme set, bios/Arcade/Arcade/a2ultrme.zip." + - name: "videx_ultraterm_enh_chs_5604.bin" + path: "roms/videx_ultraterm_enh_chs_5604.bin" + description: "Videx UltraTerm character ROM, enhanced //e card, MAME a2ultrme chs_5604.bin" + required: false + bundled: false + size: 4096 + crc32: "3fb4e90a" + sha256: "cbbfd3d07be729795d2b5a2bcdb1f1daf01af945f2f80430a5666bb7f0fedcd0" + sha1: "94ff75199232a9b613585c22f88470f73fb7dd09" + validation: [size, crc32, sha256] + source_ref: "src/SlotCardFactory.cpp:362-385, src/VidexUltratermCard.h:87-90, src/VidexUltratermCard.cpp:43-49, src/RomCatalog.h:188-191, src/RomFetch.cpp:329-332" + note: "Pair of videx_ultraterm_enh_frm_b5c9.bin. Member of the MAME a2ultrme set, bios/Arcade/Arcade/a2ultrme.zip." + - name: "ccs7710_03h.u5" + path: "roms/ccs7710_03h.u5" + description: "CCS 7710 asynchronous serial interface, firmware 7710-03 PROM U5 (high nibbles), MAME ccs7710 7710-03h.u5" + required: false + bundled: false + size: 256 + crc32: "a2cdb6bd" + sha256: "1e303244535c4f00f2c6758ab4c9416414e5228639921a5b1b3277ccea529bf3" + sha1: "6ecfb6b145256d4787a943da8ef267303df562d6" + validation: [size, crc32, sha256] + source_ref: "src/SlotCardFactory.cpp:290-307, src/Ccs7710Card.h:29-35, src/Ccs7710Card.h:57-58, src/Ccs7710Card.cpp:172-176, src/RomCatalog.h:160-163, src/RomFetch.cpp:333-345" + note: "One of the card's two 256x4 PROMs: each holds one nibble of every firmware byte, so both must be present and 256 bytes for the card to load them. Loaded, CCS's firmware executes. Without the pair, or with ccs7710_firmware = pom2, the card serves POM2's own page written to behave as the 7710-03. Member of the MAME ccs7710 set, bios/Arcade/MAME/ccs7710.zip." + - name: "ccs7710_03l.u6" + path: "roms/ccs7710_03l.u6" + description: "CCS 7710 asynchronous serial interface, firmware 7710-03 PROM U6 (low nibbles), MAME ccs7710 7710-03l.u6" + required: false + bundled: false + size: 256 + crc32: "18e3983f" + sha256: "1af47c6f8c45af30483fd84bae77994583753a0268ca43c2c8f5b45fa4b4a04e" + sha1: "d0df2aaf0134f8c1b929a4de0036fedc7e7164e2" + validation: [size, crc32, sha256] + source_ref: "src/SlotCardFactory.cpp:290-307, src/Ccs7710Card.h:29-35, src/Ccs7710Card.h:57-58, src/Ccs7710Card.cpp:172-176, src/RomCatalog.h:164-168, src/RomFetch.cpp:333-348" + note: "The low-nibble half of the 7710-03 firmware, see ccs7710_03h.u5. Member of the MAME ccs7710 set, bios/Arcade/MAME/ccs7710.zip." + - name: "dan2_eprom.bin" + path: "roms/dan2_eprom.bin" + description: "DAN ][ Controller slot EPROM, 512 bytes (two slot pages), ThorstenBr/Apple2Card" + required: false + bundled: false + size: 512 + crc32: "b1c3860f" + sha256: "c64413319243ecab3e2a93a9f5e93702d372b32dd265fa13d45c38298a3a2130" + sha1: "5e2737d233f5769df654d2d5aa96d24f2fd85671" + validation: [size, crc32, sha256] + source_ref: "src/SlotCardFactory.cpp:309-327, src/Dan2Card.h:41-44, src/Dan2Card.h:60, src/Dan2Card.cpp:106-111, src/RomCatalog.h:169-173, src/RomFetch.cpp:349-351" + note: "The card's own firmware from the open-source DAN ][ project (zlib licence), selected one page at a time through the 8255's bit set/reset. A file that is not 512 bytes is refused. Without it the card serves POM2's own page written to the same protocol: ProDOS signature, boot by SAFEREAD of block 0, the block driver." - name: "525_seek_2ms.wav" path: "roms/floppy_samples/525_seek_2ms.wav" description: "MAME floppy sample, 5.25 inch drive, 2 ms head seek" @@ -723,7 +839,7 @@ files: bundled: true size: 5336 sha1: "2d046a880476218685ed738fe8c8381962afd74a" - source_ref: "src/FloppySoundDevice.cpp:83-121, src/MainWindow.cpp:351-364" + source_ref: "src/FloppySoundDevice.cpp:83-121, src/MainWindow.cpp:373-386" note: "One of ten samples per drive bank. A missing sample is logged and that sound stays silent." - name: "525_seek_6ms.wav" path: "roms/floppy_samples/525_seek_6ms.wav" @@ -733,7 +849,7 @@ files: bundled: true size: 14860 sha1: "6f698055fa6e9da6c5ae3fd6fb05de76b92a45a9" - source_ref: "src/FloppySoundDevice.cpp:83-121, src/MainWindow.cpp:351-364" + source_ref: "src/FloppySoundDevice.cpp:83-121, src/MainWindow.cpp:373-386" - name: "525_seek_12ms.wav" path: "roms/floppy_samples/525_seek_12ms.wav" description: "MAME floppy sample, 5.25 inch drive, 12 ms head seek" @@ -742,7 +858,7 @@ files: bundled: true size: 22764 sha1: "fbbbb5e8724c076d194e66a4443d299d54a8efd6" - source_ref: "src/FloppySoundDevice.cpp:83-121, src/MainWindow.cpp:351-364" + source_ref: "src/FloppySoundDevice.cpp:83-121, src/MainWindow.cpp:373-386" - name: "525_seek_20ms.wav" path: "roms/floppy_samples/525_seek_20ms.wav" description: "MAME floppy sample, 5.25 inch drive, 20 ms head seek" @@ -751,7 +867,7 @@ files: bundled: true size: 30060 sha1: "b6cd14944454c743861196edb4fcab1cc9b586d4" - source_ref: "src/FloppySoundDevice.cpp:83-121, src/MainWindow.cpp:351-364" + source_ref: "src/FloppySoundDevice.cpp:83-121, src/MainWindow.cpp:373-386" - name: "525_spin_empty.wav" path: "roms/floppy_samples/525_spin_empty.wav" description: "MAME floppy sample, 5.25 inch drive, motor running, no disk" @@ -760,7 +876,7 @@ files: bundled: true size: 8864 sha1: "4b13701d9a7f8ab0f0827f17ba80b5c32b4e0fa7" - source_ref: "src/FloppySoundDevice.cpp:83-121, src/MainWindow.cpp:351-364" + source_ref: "src/FloppySoundDevice.cpp:83-121, src/MainWindow.cpp:373-386" - name: "525_spin_loaded.wav" path: "roms/floppy_samples/525_spin_loaded.wav" description: "MAME floppy sample, 5.25 inch drive, motor running, disk loaded" @@ -769,7 +885,7 @@ files: bundled: true size: 17708 sha1: "875f90538a3ff5db863ad4c384e1808841ddea9b" - source_ref: "src/FloppySoundDevice.cpp:83-121, src/MainWindow.cpp:351-364" + source_ref: "src/FloppySoundDevice.cpp:83-121, src/MainWindow.cpp:373-386" - name: "525_spin_start_empty.wav" path: "roms/floppy_samples/525_spin_start_empty.wav" description: "MAME floppy sample, 5.25 inch drive, motor start, no disk" @@ -778,7 +894,7 @@ files: bundled: true size: 11180 sha1: "b87d89c4b46c36dd78dec3dc5170ca61501e7cd9" - source_ref: "src/FloppySoundDevice.cpp:83-121, src/MainWindow.cpp:351-364" + source_ref: "src/FloppySoundDevice.cpp:83-121, src/MainWindow.cpp:373-386" - name: "525_spin_start_loaded.wav" path: "roms/floppy_samples/525_spin_start_loaded.wav" description: "MAME floppy sample, 5.25 inch drive, motor start, disk loaded" @@ -787,7 +903,7 @@ files: bundled: true size: 17708 sha1: "510476098848e2b5cdfe9f1608f8dfa3207fe9b4" - source_ref: "src/FloppySoundDevice.cpp:83-121, src/MainWindow.cpp:351-364" + source_ref: "src/FloppySoundDevice.cpp:83-121, src/MainWindow.cpp:373-386" - name: "525_spin_end.wav" path: "roms/floppy_samples/525_spin_end.wav" description: "MAME floppy sample, 5.25 inch drive, motor stop" @@ -796,7 +912,7 @@ files: bundled: true size: 8864 sha1: "f8d9b94c4d92d35d9ffb1117b693fc74a93f613f" - source_ref: "src/FloppySoundDevice.cpp:83-121, src/MainWindow.cpp:351-364" + source_ref: "src/FloppySoundDevice.cpp:83-121, src/MainWindow.cpp:373-386" - name: "525_step_1_1.wav" path: "roms/floppy_samples/525_step_1_1.wav" description: "MAME floppy sample, 5.25 inch drive, single track step" @@ -805,7 +921,7 @@ files: bundled: true size: 6628 sha1: "669ee98fb9fac4371c72ed0b60be1bc8470bc7f8" - source_ref: "src/FloppySoundDevice.cpp:83-121, src/MainWindow.cpp:351-364" + source_ref: "src/FloppySoundDevice.cpp:83-121, src/MainWindow.cpp:373-386" - name: "35_seek_2ms.wav" path: "roms/floppy_samples/35_seek_2ms.wav" description: "MAME floppy sample, 3.5 inch drive, 2 ms head seek" @@ -814,7 +930,7 @@ files: bundled: true size: 7450 sha1: "55caafbd19486b8d517e4b33a6fa65250df55e25" - source_ref: "src/FloppySoundDevice.cpp:83-121, src/MainWindow.cpp:351-364" + source_ref: "src/FloppySoundDevice.cpp:83-121, src/MainWindow.cpp:373-386" note: "One of ten samples per drive bank. A missing sample is logged and that sound stays silent." - name: "35_seek_6ms.wav" path: "roms/floppy_samples/35_seek_6ms.wav" @@ -824,7 +940,7 @@ files: bundled: true size: 22230 sha1: "87e5dec269e67497681c15849777ebfc301131c1" - source_ref: "src/FloppySoundDevice.cpp:83-121, src/MainWindow.cpp:351-364" + source_ref: "src/FloppySoundDevice.cpp:83-121, src/MainWindow.cpp:373-386" - name: "35_seek_12ms.wav" path: "roms/floppy_samples/35_seek_12ms.wav" description: "MAME floppy sample, 3.5 inch drive, 12 ms head seek" @@ -833,7 +949,7 @@ files: bundled: true size: 26540 sha1: "c6b34fc61496943134ac45cc836a24e743caf794" - source_ref: "src/FloppySoundDevice.cpp:83-121, src/MainWindow.cpp:351-364" + source_ref: "src/FloppySoundDevice.cpp:83-121, src/MainWindow.cpp:373-386" - name: "35_seek_20ms.wav" path: "roms/floppy_samples/35_seek_20ms.wav" description: "MAME floppy sample, 3.5 inch drive, 20 ms head seek" @@ -842,7 +958,7 @@ files: bundled: true size: 44144 sha1: "b2fe4c3a4185146a7d11483d92d4412dd79dbc78" - source_ref: "src/FloppySoundDevice.cpp:83-121, src/MainWindow.cpp:351-364" + source_ref: "src/FloppySoundDevice.cpp:83-121, src/MainWindow.cpp:373-386" - name: "35_spin_empty.wav" path: "roms/floppy_samples/35_spin_empty.wav" description: "MAME floppy sample, 3.5 inch drive, motor running, no disk" @@ -851,7 +967,7 @@ files: bundled: true size: 17708 sha1: "db04fc097bdd0411cff232f57525ded491b48c6c" - source_ref: "src/FloppySoundDevice.cpp:83-121, src/MainWindow.cpp:351-364" + source_ref: "src/FloppySoundDevice.cpp:83-121, src/MainWindow.cpp:373-386" - name: "35_spin_loaded.wav" path: "roms/floppy_samples/35_spin_loaded.wav" description: "MAME floppy sample, 3.5 inch drive, motor running, disk loaded" @@ -860,7 +976,7 @@ files: bundled: true size: 17708 sha1: "96ce04a5b02af0da6d311f06fc4906a3cf71c78f" - source_ref: "src/FloppySoundDevice.cpp:83-121, src/MainWindow.cpp:351-364" + source_ref: "src/FloppySoundDevice.cpp:83-121, src/MainWindow.cpp:373-386" - name: "35_spin_start_empty.wav" path: "roms/floppy_samples/35_spin_start_empty.wav" description: "MAME floppy sample, 3.5 inch drive, motor start, no disk" @@ -869,7 +985,7 @@ files: bundled: true size: 17708 sha1: "af770fd9261a8efee23d66cd39b27be7b2ab7853" - source_ref: "src/FloppySoundDevice.cpp:83-121, src/MainWindow.cpp:351-364" + source_ref: "src/FloppySoundDevice.cpp:83-121, src/MainWindow.cpp:373-386" - name: "35_spin_start_loaded.wav" path: "roms/floppy_samples/35_spin_start_loaded.wav" description: "MAME floppy sample, 3.5 inch drive, motor start, disk loaded" @@ -878,7 +994,7 @@ files: bundled: true size: 35308 sha1: "c82b1714378bf2507ed86dea1e9fe743c380abab" - source_ref: "src/FloppySoundDevice.cpp:83-121, src/MainWindow.cpp:351-364" + source_ref: "src/FloppySoundDevice.cpp:83-121, src/MainWindow.cpp:373-386" - name: "35_spin_end.wav" path: "roms/floppy_samples/35_spin_end.wav" description: "MAME floppy sample, 3.5 inch drive, motor stop" @@ -887,7 +1003,7 @@ files: bundled: true size: 17684 sha1: "a8901b692de15eb7a9052f61283f0e7a2b63d67d" - source_ref: "src/FloppySoundDevice.cpp:83-121, src/MainWindow.cpp:351-364" + source_ref: "src/FloppySoundDevice.cpp:83-121, src/MainWindow.cpp:373-386" - name: "35_step_1_1.wav" path: "roms/floppy_samples/35_step_1_1.wav" description: "MAME floppy sample, 3.5 inch drive, single track step" @@ -896,7 +1012,7 @@ files: bundled: true size: 6878 sha1: "40d756d0cb5f7998ca26ac1de142a96a83fa2b97" - source_ref: "src/FloppySoundDevice.cpp:83-121, src/MainWindow.cpp:351-364" + source_ref: "src/FloppySoundDevice.cpp:83-121, src/MainWindow.cpp:373-386" - name: "Disk Rotation.wav" path: "roms/virtual_ii_sons/lecteur/Disk Rotation.wav" description: "Virtual ][ recording, drive motor loop" @@ -904,7 +1020,7 @@ files: required: false size: 18420 sha1: "553e664b2f41f1cc74e2525c966e9c71f9e3bd2f" - source_ref: "src/VirtualIISoundCatalog.h:20, src/FloppySoundDevice.cpp:176-190, src/FloppySoundDevice.cpp:192-228, src/MainWindow.cpp:365-381" + source_ref: "src/VirtualIISoundCatalog.h:20, src/FloppySoundDevice.cpp:176-190, src/FloppySoundDevice.cpp:192-228, src/MainWindow.cpp:387-403" note: "The Virtual ][ bank is offered only when this file and the arm, insertion and removal takes have loaded. The bare Disk Rotation.wav and Disk Rotation.raw in the folder are tried next, the .raw read as headerless PCM. Virtual ][ Disk Rotation.raw (sha1 993b054ee6ecf3778186937593d591eba332bdd6) behind a mono 44100 Hz 16-bit PCM RIFF header." - name: "Boot.wav" path: "roms/virtual_ii_sons/lecteur/Boot.wav" @@ -913,7 +1029,7 @@ files: required: false size: 6806 sha1: "15c67468555494a9336d8f1981806ecd05a47da4" - source_ref: "src/VirtualIISoundCatalog.h:21, src/FloppySoundDevice.cpp:176-190, src/FloppySoundDevice.cpp:192-228, src/MainWindow.cpp:365-381" + source_ref: "src/VirtualIISoundCatalog.h:21, src/FloppySoundDevice.cpp:176-190, src/FloppySoundDevice.cpp:192-228, src/MainWindow.cpp:387-403" note: "The bare Boot.wav and Boot.raw in the folder are tried next, the .raw read as headerless PCM. Virtual ][ Boot.raw (sha1 06db331ec01064661bf64ed39b58a9b35aaec067) behind a mono 44100 Hz 16-bit PCM RIFF header." - name: "Move arm.aiff" path: "roms/virtual_ii_sons/lecteur/Move arm.aiff" @@ -923,7 +1039,7 @@ files: size: 36510 sha1: "3e03cfef6a327adf9e2c09dd329a4c5b8e0aac52" aliases: ["Move arm.wav"] - source_ref: "src/VirtualIISoundCatalog.h:22, src/FloppySoundDevice.cpp:176-190, src/FloppySoundDevice.cpp:192-228, src/MainWindow.cpp:365-381" + source_ref: "src/VirtualIISoundCatalog.h:22, src/FloppySoundDevice.cpp:176-190, src/FloppySoundDevice.cpp:192-228, src/MainWindow.cpp:387-403" note: "Needed for the bank. When the .aiff does not decode, the .wav name and then both bare names in the folder are tried. Virtual ][ Move arm.aiff unchanged." - name: "Disk Insertion.aiff" path: "roms/virtual_ii_sons/lecteur/Disk Insertion.aiff" @@ -933,7 +1049,7 @@ files: size: 69146 sha1: "3da6c2e5986c38b6c7200bacc95ef076d0429152" aliases: ["Disk Insertion.wav"] - source_ref: "src/VirtualIISoundCatalog.h:23, src/FloppySoundDevice.cpp:176-190, src/FloppySoundDevice.cpp:192-228, src/MainWindow.cpp:365-381" + source_ref: "src/VirtualIISoundCatalog.h:23, src/FloppySoundDevice.cpp:176-190, src/FloppySoundDevice.cpp:192-228, src/MainWindow.cpp:387-403" note: "Needed for the bank. When the .aiff does not decode, the .wav name and then both bare names in the folder are tried. Virtual ][ Disk Insertion.aiff unchanged." - name: "Disk Removal.aiff" path: "roms/virtual_ii_sons/lecteur/Disk Removal.aiff" @@ -943,7 +1059,7 @@ files: size: 243894 sha1: "9c33c1c1d793c8b9d6ff2e7867ae3c51f2556355" aliases: ["Disk Removal.wav"] - source_ref: "src/VirtualIISoundCatalog.h:24, src/FloppySoundDevice.cpp:176-190, src/FloppySoundDevice.cpp:192-228, src/MainWindow.cpp:365-381" + source_ref: "src/VirtualIISoundCatalog.h:24, src/FloppySoundDevice.cpp:176-190, src/FloppySoundDevice.cpp:192-228, src/MainWindow.cpp:387-403" note: "Needed for the bank. When the .aiff does not decode, the .wav name and then both bare names in the folder are tried. Virtual ][ Disk Removal.aiff unchanged." - name: "I-O Error.wav" path: "roms/virtual_ii_sons/lecteur/I-O Error.wav" @@ -952,7 +1068,7 @@ files: required: false size: 4014 sha1: "464e3d8f9b50d21cef706503058cef63a5d73995" - source_ref: "src/VirtualIISoundCatalog.h:25, src/FloppySoundDevice.cpp:176-190, src/FloppySoundDevice.cpp:192-228, src/MainWindow.cpp:365-381" + source_ref: "src/VirtualIISoundCatalog.h:25, src/FloppySoundDevice.cpp:176-190, src/FloppySoundDevice.cpp:192-228, src/MainWindow.cpp:387-403" note: "The bare I-O Error.wav and I-O Error.raw in the folder are tried next, the .raw read as headerless PCM. Virtual ][ I-O Error.raw (sha1 b123ef605fa977bcda49617cb96c7bc898281dbc) behind a mono 44100 Hz 16-bit PCM RIFF header." - name: "PopOn2.aiff" path: "roms/virtual_ii_sons/interface/PopOn2.aiff" @@ -962,7 +1078,7 @@ files: size: 172338 sha1: "7473f2ade668f9155729e6dfc56775f998bb9ac3" aliases: ["PopOn2.wav"] - source_ref: "src/VirtualIISoundCatalog.h:26, src/FloppySoundDevice.cpp:176-190, src/FloppySoundDevice.cpp:192-228, src/MainWindow.cpp:365-381" + source_ref: "src/VirtualIISoundCatalog.h:26, src/FloppySoundDevice.cpp:176-190, src/FloppySoundDevice.cpp:192-228, src/MainWindow.cpp:387-403" note: "Virtual ][ PopOn2.aiff unchanged." - name: "PopOff2.aiff" path: "roms/virtual_ii_sons/interface/PopOff2.aiff" @@ -972,7 +1088,7 @@ files: size: 144702 sha1: "60b4b8bb589bcc3e4c6876a09d4aa4b391390798" aliases: ["PopOff2.wav"] - source_ref: "src/VirtualIISoundCatalog.h:27, src/FloppySoundDevice.cpp:176-190, src/FloppySoundDevice.cpp:192-228, src/MainWindow.cpp:365-381" + source_ref: "src/VirtualIISoundCatalog.h:27, src/FloppySoundDevice.cpp:176-190, src/FloppySoundDevice.cpp:192-228, src/MainWindow.cpp:387-403" note: "Virtual ][ PopOff2.aiff unchanged." - name: "Matrix Printer.wav" path: "roms/virtual_ii_sons/imprimante/Matrix Printer.wav" @@ -981,7 +1097,7 @@ files: required: false size: 1316870 sha1: "0b0363772efc684ea0d21cb79e62a0df63f0c094" - source_ref: "src/VirtualIISoundCatalog.h:30-31, src/MainWindow.cpp:376-379, src/PrinterSoundDevice.cpp:80-103, src/PrinterSoundDevice.cpp:298-322" + source_ref: "src/VirtualIISoundCatalog.h:30-31, src/MainWindow.cpp:398-401, src/PrinterSoundDevice.cpp:80-103, src/PrinterSoundDevice.cpp:298-322" note: "Loaded when present, otherwise the printer sound is generated. The bare Matrix Printer.wav and Matrix Printer.raw in the folder are tried next, the .raw read as headerless PCM. Virtual ][ Matrix Printer.raw (sha1 6f6d26237389435693469b4dd0e0b69083797bff) behind a mono 44100 Hz 16-bit PCM RIFF header." - name: "DejaVuSans.ttf" path: "fonts/DejaVuSans.ttf" @@ -991,7 +1107,7 @@ files: bundled: true size: 759720 sha1: "3061cf7af25793a655a1ff5a509385f3620f3eb3" - source_ref: "src/main.cpp:581-594" + source_ref: "src/main.cpp:585-598" note: "Falls back to the system DejaVu, Arial Unicode or Segoe UI, then to the ImGui bitmap font." - name: "fa-solid-900.ttf" path: "fonts/fa-solid-900.ttf" @@ -1001,7 +1117,7 @@ files: bundled: true size: 426112 sha1: "0c8c9706abc0116f08b66d11a69da6aa9ef7e6bf" - source_ref: "src/main.cpp:641-659" + source_ref: "src/main.cpp:645-663" note: "Without it every icon renders as an empty box." - name: "Apple_II_plus.jpg" path: "pic/Apple_II_plus.jpg" @@ -1011,7 +1127,7 @@ files: bundled: true size: 102046 sha1: "69358dd499148deae4112b49cedb7bec220584e2" - source_ref: "src/MainWindow_MiscPanels.cpp:657" + source_ref: "src/MainWindow_MiscPanels.cpp:780" - name: "Keyboard_AppleIIe.jpeg" path: "pic/Keyboard_AppleIIe.jpeg" description: "Apple //e keyboard photograph the clickable keyboard window is built on" @@ -1020,7 +1136,7 @@ files: bundled: true size: 568596 sha1: "dc85406f7bb69c4439088e78afab610afb753865" - source_ref: "src/KeyboardSkin.cpp:142-152, src/MainWindow_MiscPanels.cpp:515-526" + source_ref: "src/KeyboardSkin.cpp:142-152, src/MainWindow_MiscPanels.cpp:623-634" note: "Keyboard window picture for every profile outside the //c family. The window hotspots are fractions of this image. Without it the window has nothing to click." - name: "Keyboard_AppleIIc.png" path: "pic/Keyboard_AppleIIc.png" @@ -1030,7 +1146,7 @@ files: bundled: true size: 1743304 sha1: "f7c8a696d66ce9403b5c2f5f62b797c816961df0" - source_ref: "src/KeyboardSkin.cpp:142-152, src/MainWindow_MiscPanels.cpp:515-526" + source_ref: "src/KeyboardSkin.cpp:142-152, src/MainWindow_MiscPanels.cpp:623-634" note: "Keyboard window picture for the //c, //c PAL and //c Plus profiles. Without it the window has nothing to click." - name: "monitor2.png" path: "pic/retro/monitor/monitor2.png" @@ -1040,7 +1156,7 @@ files: bundled: true size: 24460 sha1: "1b8f16f4e74e6717d0332364c7b80cf20f37580f" - source_ref: "src/RetroArtwork.cpp:44-47, src/MainWindow_Screen.cpp:371-372" + source_ref: "src/RetroArtwork.cpp:44-47, src/MainWindow_Screen.cpp:380-381" note: "Drawn by default. Without it the screen has no bezel." - name: "driveopen.png" path: "pic/retro/drives/driveopen.png" diff --git a/tests/test_site_r5_systems.py b/tests/test_site_r5_systems.py index ddfb8950b..83b35982d 100644 --- a/tests/test_site_r5_systems.py +++ b/tests/test_site_r5_systems.py @@ -336,7 +336,7 @@ class EachFileDownloadsFromItsCard(unittest.TestCase): self.skipTest("site not generated") section = page.read_text(encoding="utf-8").split("## Apple II {", 1)[1] start = section.split("