From cd0c4dc1ff6a3cecae7592da9976a530fa8e3ee5 Mon Sep 17 00:00:00 2001 From: DoubleGate Date: Mon, 3 Aug 2026 14:59:20 -0400 Subject: [PATCH] test(accuracy): sync AccuracyCoin to upstream ce61bb5; holds 141/141 Re-sync the AccuracyCoin accuracy oracle (100thCoin/AccuracyCoin, MIT) to the newest upstream, `ce61bb5` "Simplified Internal Data Bus error 3" (2026-08-03), advancing the vendored suite 8 commits from `71f57fb` (2026-06-26), and re-validate RustyNES against it. Four of the eight upstream commits change test *behaviour* -- "Simplified Internal Data Bus error 3", "Fixed a bug in Interrupt Flag Latency", "Updated DMC DMA Bus Conflicts", and "Fixed an edge case in $2004 Stress Test"; the remaining four are README typo/formatting fixes. The compiled ROM recompiled (NROM, 32 KiB PRG + 8 KiB CHR, same 40976 B, new content hash). Primary oracle ROM ------------------ `tests/roms/accuracycoin/AccuracyCoin.nes` is replaced with the new build (sha256 verified identical to the freshly fast-forwarded reference clone). The screen-grid + RAM-direct result decoders in `crates/rustynes-test-harness/src/accuracy_coin*.rs` read the ROM's own self-reported per-test results at runtime -- there is no memory-mapped status protocol and no hard-coded expected-pass list -- so the new logic is exercised without touching the harness. Catalog is deliberately NOT regenerated ---------------------------------------- `tests/roms/AccuracyCoin/SOURCE_CATALOG.tsv` (the 146-entry `suitenameresult_addr` source of truth the RAM-direct decoder embeds via `include_str!`) is unchanged, because the ROM's test *structure* is byte-identical across the update: the 189 `Suite_*` / `table "name",...` declaration lines diff to empty between `71f57fb` and `ce61bb5`. Every test name, suite membership, and `result_addr` is therefore stable (146 rows = 141 assigned tests + 5 "Power On State" print-only tests the upstream display routine excludes from the result table). Only test logic changed, not the catalog. Regenerated single-test sub-test ROMs (4 of 26) ----------------------------------------------- The custom sub-test ROMs are whole-battery builds with a boot wrapper that jumps straight to one target test (`scripts/accuracycoin-build/ build_sub_test_rom.py`, which injects `LDY #suite / STY / JSR SetUpSuite / JSR LoadSuiteMenuNoRendering / LDX #test / STX` into `AutomaticallyRunEveryTestInROM`). Because a sub-test ROM embeds the entire recompiled ROM, the four whose *target* test's logic changed are rebuilt from `ce61bb5`: - internal-data-bus.nes suite=19 (CPU Behavior 2) test=4 - iflag-latency.nes suite=11 (CPU Interrupts) test=0 - dmc-bus-conflicts.nes suite=12 (DMA Tests) test=6 - ppu-misc-2004-stress.nes suite=18 (PPU Misc.) test=6 The `(suite, test)` indices were recovered directly from each pre-existing ROM's injected wrapper (byte pattern `A0 ss 84 .. 20 .. .. 20 .. .. A2 tt 86 ..`) rather than re-derived, guaranteeing each rebuild lands the exact same test as before; the indices were then re-verified against the rebuilt ROMs. These four feed only the read-only trace/debug binaries (`trace_dmc_dma`, `trace_apu_reg_activation`, `trace_controller_strobing`, `validate_sub_test_rom`) -- no `#[test]` or `insta` snapshot references them, so there is nothing to re-bless. The other 22 sub-tests' target tests are unchanged upstream and are intentionally left as-is. Re-validation (unchanged: 141/141, 100.00%) ------------------------------------------- `cargo test -p rustynes-test-harness --features test-roms --test accuracycoin --test accuracycoin_runahead` passes (exit 0): - RAM-direct decoder (authoritative): total=146, pass=130, pass_with_code=11, fail=0, skipped=0, not_run=5 (the excluded Power On State tests) => 141/141 assigned tests, 100.00%. Every one of the 20 suites reports zero failures. - `accuracycoin_is_unaffected_by_run_ahead` holds -- the pass count is bit-stable across the snapshot/restore run-ahead path. The four upstream behaviour fixes regressed nothing; RustyNES still passes all 141 assigned tests against the newest oracle. The emulator core is byte-identical -- only the external oracle advanced -- so no CHANGELOG behaviour entry is warranted. The reference clone `ref-proj/AccuracyCoin` (gitignored) was fast-forwarded locally and is not part of this commit. Co-Authored-By: Claude Opus 4.8 --- .../sub-tests/dmc-bus-conflicts.nes | Bin 40976 -> 40976 bytes .../AccuracyCoin/sub-tests/iflag-latency.nes | Bin 40976 -> 40976 bytes .../sub-tests/internal-data-bus.nes | Bin 40976 -> 40976 bytes .../sub-tests/ppu-misc-2004-stress.nes | Bin 40976 -> 40976 bytes tests/roms/accuracycoin/AccuracyCoin.nes | Bin 40976 -> 40976 bytes 5 files changed, 0 insertions(+), 0 deletions(-) diff --git a/tests/roms/AccuracyCoin/sub-tests/dmc-bus-conflicts.nes b/tests/roms/AccuracyCoin/sub-tests/dmc-bus-conflicts.nes index 002c0e810800226f19f2c8dad7dfca652f44ace8..d569f7a95d7e2d14448e34ceee469b0a0322a30b 100644 GIT binary patch delta 6106 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 delta 5864 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 gQ*B@*5bSsA-}WMFo-ek`Eu+T%8)a|xDF6Tf diff --git a/tests/roms/AccuracyCoin/sub-tests/iflag-latency.nes b/tests/roms/AccuracyCoin/sub-tests/iflag-latency.nes index 4c1463a8f6a7cc7fba19247c929d2d86ef208d5a..bed039ee3d4bd9c1af7f79fb63ac07a135c8e333 100644 GIT binary patch delta 6106 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 delta 5864 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 gQ*B@*5bSsA-}WMFo-ek`Eu+T%8)a|xDF6Tf diff --git a/tests/roms/AccuracyCoin/sub-tests/internal-data-bus.nes b/tests/roms/AccuracyCoin/sub-tests/internal-data-bus.nes index 8e0b00fd89afed0fc67da44918543f514829de78..d6d04025d0358d07565edf2fdc07a1da6d0a62b2 100644 GIT binary patch delta 6106 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 delta 5864 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 gQ*B@*5bSsA-}WMFo-ek`Eu+T%8)a|xDF6Tf diff --git a/tests/roms/AccuracyCoin/sub-tests/ppu-misc-2004-stress.nes b/tests/roms/AccuracyCoin/sub-tests/ppu-misc-2004-stress.nes index 0409c0ac5bece93cb9ab83bac79521e0d87db221..262f4c290c5333735b851cf2d777b14efa872e23 100644 GIT binary patch delta 6174 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 delta 5909 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 QcRb0u7m92$^Qf`^2Wtlfc>n+a diff --git a/tests/roms/accuracycoin/AccuracyCoin.nes b/tests/roms/accuracycoin/AccuracyCoin.nes index aa3405e9088e1fa9a1bc42c79a651243b6acf728..3e4f48b85755f83aab9193f0f1990ece64eb7c4b 100644 GIT binary patch delta 5258 zcmZ`-3se+Ww!PJTi$(=$kWbqPUa$}l6y&4We&_}o&@|eD_#p6H~^_%!<$CX<`WJF{X{0WQ~9 zM=GALudQC!P$`eVzolQObovb)!sMv~;D*Y&+O-ucE0Y(?fp{|wQtR|v0Dd|b;2_*W zP3kGSKXwRdEW6lZB7@no9{1Ai>Tvz}4k0~#0Cd#Y9d(t<8$9xd4yH$s*16*V9`#QnykRrYK7(erzcTcr}gT!}YbIFjZL!fR8O@0l92(i~)liA*W*=!c2^XePS7S7_IQrr3ZEjIZx-n zg_wea0eCtKfT=i)&hn3>XZ<2mvO9%bmYbJr9jZ4C=R%levaqk70T<9Td%7AaMCXd)|ibqZ#tFuNposHzeF0m7^*3;U{?@Ee^% zKHDr7_HEV@IS20r;At6XBp2_e0scCDJHSuN0c^&d(8v`1H=V*X2A32*anTF#1o{eO z+q#5lxeC0**9>IO#)S6x>mr-q7IN5HEvBK{8P@s?cE3&U_)p}LXw0yP(J4oS48}5* z6qDI&)>PUZ74Yna;AiQ4Kwmr}WGU!e^J8czcF`9AeRM>~RnWyHkD=i>mmVD!!M#Y& z58J}MPc6d}O#$6`MJAF>XMusbo=|18U5}nS;@c)XABoxU#}7KZozVH$a8p6mPH` zPjJ0EJdooW=!YYUr!PI2Yb_%H^Jm5%y`%DQ@pbR4w$(A0z0it5UShROkU zKAj(s$aT|=0U2BxJrXd1TSosUAQDc3p99jlTACCXzoeymVNP{L&1zCvW0&XSE8TO8 zW|Q37nufaCYPlGPx|qMfvBpueQZB(a6t`sE+O>6+_4SV08hHUOI>sm!4dgMQQoNfU z4%DlDIY!S0PKwl=C|S!kfuxc`M+14jvZ~^@j@mkT5ne*IBj<3b^x2V-jmJ)y>~^NB z>|4eV?OFWcsd=U%XsfPn-P#6Lb|e1H_1SZCi2&P{AvfW>-^y$siX8RJC&>-4kKP?3 z^Vd1*R@cj0@F)Ex4X`;Rr+}1HIaUl&>gE5yo!ky-BlzlH#`QHd)MYS(Qt-6X)+M{P*YU9Ck9$c4fW13-6^b1i8TpmjqEyVPA!HpZdr(t>Y}IO+MI?eogvL*Z z=&0h$wnLh+ir>!ccHk-@8QYYQjJJ!yHqzp%3O#^@FJJeJ@6+x_XWn~#4^s7CBhtM# z^cqah^-I5y|9X{_zMf7~MlYW-;;3!5JPq+uiU(h^Nr^{o&DL|$H+>Z+k)L${^pipq zFhBu&N~Nz|(&#WXS5EuJj2rgn-DK3mtJS2OhD61we%Vc@Ma651_CWp@^{$msqKXFT z{asp;tfJ4yemhcgK%CU7A~un0wvsfuXq=%@b6}(&A3!93E(4BPC*rbzFD_odf)P3i{ck=L0gIYC?GY|cy%UsVMY8_^ylnfIX< z>ARg5i_~8H$td}Mqed2WZ5Kvz9Ho2XR>5sHZ2aWL(Dr6@Cak@gbIR=xs}Wkzp4GOX zy}W%N*sL}-dLsdcnC~64+BUU+07$_h5ktjP0Jc7&C&!QGO!V^jSQvjA9|z-@_;D~A<41FLS_X4F-5ehi zYIoY&g@bX@vVXNhn&I9TGDc;i}E(w_FQ-XsXs)n?oy)f(%OUs z|N29s3Mf11z625v56HKN5O3t{W)0$-Ua*_DLZFeCQOw@FM*h*Gn7zFapnVC+gWSA7 zD%_U`xOsd~`o>53d3!$fq-_b94I#xX!$^9`bt?3Ymx;O7@GVXhv@C(0`GNDw6s{!(y}FkmU9BBSl+`q*qaci;Ml!=zvo%F9v0JsQ2{~bvPG;Z?P*nB~sX$ex0%kxZ z2=)Y2z%Z5XQUs${#mV-{*#w5EoMsA2n~<7!0m{sogYxD;=xhE@n_e%*Z-CvhrFiQW zSW;1HWFydLbtt#DmEGI3I_|xIxIFmv!o18Wm+?q0^JCJ_Flpez^P(|&xy8ANGsgfQ z;->dYJ2eP?jJw*){qdIFoc|kkqs{8zme|dH2!1f1cLy}yw3|N^!+`vIFBz3hhi4al zWEOppI$f(&^9GR;ESQ|>ZCC3#V%B)t%*`N$%Kj{C$_iyx;v2LAo~B4MYscKX3~lX2 z2-G@^S}WSBmC#n!+TXp^w4T^?1=nKNF^yZrv>PvnAIzKhp0Q_}d&YhU^W40iu^9D? zWlQQp#`8vr{yMo(_2p4&PKyr;=-$t@XwP#}Y@e1uY-8Gb?lQfTHjC4^($bT;pxk3p zcmK8F(p^u$JJv69=$eddZX4~&SUK$WG3nSlwl8iUqfwceTskeuG+^Vq#NgVQDRCO( zyOz7hiGfy4{VTVgW@k;ER(gU2cu4E7T`H1DJWjIyK6FIB_lT&oW$usx{PTBc=51tmH-z+dq(cr%!7mhIdH!@qymIBAOEe)4wUN`#mR>*L|XN zkF=Z+Ie5|TM|;$S96AB@;B%nYizodn{N_L9H$Ev4dP*rU;a>^N^y2Z-z5S>ynl+*N zrzUJ(PQnmJ{Wxd+eNxC?urm4@PD|J4(?YqxmQ#b<0-Hcvf#(Wc zZ<+rdV9T-W`t%Iq&m$?T|C&*{(iP747E8%p5qxin6xTI{@3l(NT~qnq`BFrmwkyn- zXp}~Zs5Q*kr*&ErgFKwg^6I%NQm&JdxfmUV*1yCN1>YlG$87b(ZYp zKBiL_L=BI=Oh(G$XNBTYTE0Ms^Dm26=!OL;Qz5RFMJEX{I&Gd2ecJYi{ntiFfAgp< zKvr}|7w~MIRMwa|QqUp5-D``=wM*owKQus8brZjRKh*(;YpQvWE z%b>I$wLCoY%3p!Yq{cC+w@PEVVERdE6c+zWL5@^tPbJ-mDzjGrtgFnX3Jz&P3-4P%x)!SCb^XQnic z+U<#h)17vKKy-d#f@rig%l=i(#WuE$>@%+W2D$l_jdat$*kc-dZos`jKKPX!z7gOy z1i1A97cP*qH`+|1G4#Sqq~}Ikj%d`s#AZI?7`I`JTR+A}%}h4F8S7C zrR6L4a8~+Y<>923?>rO9^;;-T&LJ(|Nils|xK}h}(T`claWXOdl+pvJE>7-&+x*k2 zgaqJUfrzn3Rx$oXIAv2kWaq7j2p}gTfEM=1AwZ6G#Bwdv>=0mFNZdDCF5U7-|||QT?iwLW3Lb9C$<#X;l+3x|JhdbkxJm8j|PU zgLslhovZQ^*SB&S(cP-jkXko|U#-A*(NP+4TDA=rN;i zN>^d|T40a5>A3_`f0$0X>G_Cc)5z*c+-N$dI$qaw(+z*@xFFK!a5{&dk&TI3=_1`; p{rjjNZocHa`>1;G{9}kHi(th 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 I*7ha-2X_C)`Tzg`