200 Commits

Author SHA1 Message Date
100thCoin
e3cec3fcb5 The unofficial instructions exist test now works for both SHA behaviors.
The unofficial instructions exist test now works for both SHA behaviors, and also both SHS behaviors.
2025-05-18 23:17:05 -04:00
100thCoin
5f164483e7 Fixed the Unofficial Instructions exist test
I accidentally broke the SHA and SHS instructions when trying to set X to FF in order to prevent behavior differences from breaking that test. That is now fixed.
2025-05-18 15:33:57 -04:00
100thCoin
5573009456 Added tests for NMI toggle control, and NMI timing
Added tests for NMI toggle control, and NMI timing
The NMI timing test has a single PPU-cycle of leeway, since my console has 1 CPU/PPU clock alignment where the NMI happens at a different time.
2025-05-18 15:15:41 -04:00
100thCoin
c51edc1d22 Fixed Unofficial Op tests Initial error code.
The error code for any unofficial instruction is now 1, instead of the previously written value.
2025-05-17 22:23:40 -04:00
100thCoin
ce79c88ffa Fixed the $FFFF + X test, this time for sure.
The branch from $FFF0 to the zero page was accidentally moved one byte. I have fixed this.
2025-05-17 21:41:50 -04:00
100thCoin
9b10251641 Fixed the $FFFF + X test, added comments
Fixed the $FFFF + X test.
Added comments explaining the PPU timing tests.
2025-05-17 21:38:54 -04:00
100thCoin
3facde53da Added two tests for VBlank timing
Added the test for VBlank beginning, which tests the $2002 VBlank flag being read during the beginning of VBlank.
Added the test for VBlank end, which tests the timing of the $2002 Vblank flag being disabled at the end of VBlank.
2025-05-17 20:50:03 -04:00
100thCoin
0aa09a27bd Fixed bugs in the changes made for the SHA and SHS tests
Correctly tests for which behavior to use
2025-05-17 13:49:57 -04:00
100thCoin
20abb1eff3 The SHA and SHS tests print the behavior used before running tests
The SHA and SHS tests print the behavior used before running tests. This makes sure you can still see which behavior is used even if an error is encountered.
2025-05-17 00:39:38 -04:00
100thCoin
603432ccdf Merge branch 'main' of https://github.com/100thCoin/AccuracyCoin 2025-05-17 00:11:52 -04:00
100thCoin
ad449e80ae Fixed the A register in the post-DMA Unofficial Op tests
The DmaSync routine was overwriting Copy_A, so now the test just runs LDA <Test_UnOp_A
2025-05-17 00:11:51 -04:00
Chris Siebert
aec8500b63 Update README.md
Updates the README to include the new tests I have added. I also mentioned the SHA and SHS discoveries.
2025-05-16 23:47:21 -04:00
100thCoin
80a645cc9a Commented out the "CPU Instructions" test.
It was never implemented anyway.
2025-05-16 23:34:57 -04:00
100thCoin
7d10e2588d Fixed the SHS instruction error code for post-DMA tests
Fixed the SHS instruction error code for post-DMA tests
2025-05-16 23:33:45 -04:00
100thCoin
dc52e768b0 Added a second DMA Sync for emulators without open bus
If your emulator doesn't update the databus during a DMA, there is now a check for that when booting the ROM, so it can choose the best DMA Sync routine.
2025-05-16 23:18:57 -04:00
100thCoin
840b72de7f Replaced the DMA Sync function with a more reliable one
This new method works regardless of DMA timing inaccuracies, as long as the duration between DMAs is accurate. Therefore, this will now work on many more emulators, and still work on console.
2025-05-16 21:48:46 -04:00
100thCoin
7202bde0c5 Added a DMA related test to SHA, SHS, SHX, and SHY
Tests for the SHA, SHS, SHX, and SHY instructions now have an additional test, where a DMA is precisely timed 2 cycles before the write cycle. This changes the behavior of those instructions, which this test now accounts for.
2025-05-16 20:18:04 -04:00
100thCoin
ca72a2e133 Added a test for DMA + $2007 writes
Added a test for DMA + $2007 writes. It basically confirms that your DMA does not happen on write cycles.
2025-05-16 16:12:28 -04:00
100thCoin
aad71f1903 Fixed some visual bugs caused by updating PPUADDR while rendering
Tests no longer end with JSR ResetScrollAndWaitForVBlank.
If a test updates the scroll, please reset the scroll before returning from the test.
2025-05-16 14:30:42 -04:00
100thCoin
5a55ac3e7b Added the PPU Open Bus Test to the menu
Added the PPU Open Bus Test to the menu
Extended the PPU Open Bus test to check that all PPU registers update the PPU data bus.
Extended the PPU Open Bus test to check that bit 0 through 4 of address $2002 is PPU open bus.
2025-05-16 14:23:05 -04:00
100thCoin
bc92d082b2 Replaced the test for Dummy Writes again
Instead of relying on the double-writes to $2007, which has CPU/PPU click alignment behavior, this relies on double-writes to $2006, which does not,
I pretty much just copied the test by bisqwit and blargg.
2025-05-16 14:01:17 -04:00
100thCoin
d153d6801c Fixed the test for Dummy Writes, for sure this time 2025-05-15 22:26:42 -04:00
100thCoin
4b37c9be52 Fixed the test for Dummy Writes
The test for Dummy Writes is no longer CPU/PPU clock alignment dependant.
2025-05-15 22:18:10 -04:00
100thCoin
0dc76f5259 Added a test for reading from $FFFF and wrapping around
This tests for:
LDA $FFFF, X
LDA $FFFF, Y
Branching from $FFxx to $00xx
Branching from $00xx to $FFxx
Executing from $FFFF to $0000
2025-05-15 21:08:48 -04:00
100thCoin
d78e8e79d3 Replaced the unimplemented rest result pointer
Changed from $100 to $400, since address $100 is inside the stack, and modified during some tests.
2025-05-15 20:44:05 -04:00
100thCoin
f3d8081a41 Fixed test K of the Unofficial Instruction test
I made changes to the stack pointer in a previous commit as a means to prevent a stack pointer value of 00 in a test from overwriting the bottom of the stack. That modified the results of test K, as it expected the stack pointer to have the value F6. My solution was to force the stack pointer to a known value for the test.
2025-05-15 20:38:40 -04:00
100thCoin
a6c890bf55 Added a test for the SHS instruction
Added a test for the SHS instruction
2025-05-15 20:26:16 -04:00
100thCoin
b3348b4b68 Fixed issues with the SHA test
The SHA (Indirect), Y test now properly tests for which behavior to use.
If behavior 2 is used, the ROM will now determine the magic value and print it on screen.
2025-05-15 16:52:53 -04:00
100thCoin
06227eb919 Added a new test for the SHA instructions
The SHA instructions are now known to have two different behaviors. This will not only check if your emulator is running this instruction, but also print which behavior.
2025-05-15 16:10:21 -04:00
100thCoin
e6bf95de9a Added a test for LAE
Added a test for LAE
2025-05-14 23:20:50 -04:00
100thCoin
42ff1beba3 Replaced SHA test with SHX test.
My console is giving me strange results for SHA, so I'll get back to that one. in the meantime, SHX seems to be consistent.
2025-05-14 22:34:17 -04:00
100thCoin
7c553108ae Added a test for DMA + $2007 reads
Added a test for DMA + $2007 reads
This required making a function to sync the DMA to run on a very specific CPU cycle in a function.
It's pretty much just a copy of what blargg was doing in their DMA timing related tests.
2025-05-13 17:06:40 -04:00
100thCoin
773370ff7f Updated the test for SHA
Corrected the value of the X register from 9 to 8, making the value written $0055 instead of $0155.
2025-05-13 01:49:23 -04:00
100thCoin
0ff5921c04 Added tests for all SHA instructions
Added tests for all SHA instructions
(Correction, there are more unofficial instructions to test.)
TODO: Per my current understanding, the high byte instability doesn't occur if we time a DMA on the cycle before the write. Include that in the test.
2025-05-12 16:17:11 -04:00
100thCoin
0bda8a3115 Added tests for all ISC instructions
Added tests for all ISC instruction, completing the set of unofficial instruction tests.
2025-05-12 15:30:39 -04:00
100thCoin
b80100af31 Added tests for all DCP instructions
Added tests for all DCP instructions
2025-05-12 15:15:08 -04:00
100thCoin
f6dcb9be36 Added tests for all SAX and LAX instructions
Added tests for all SAX and LAX instructions
2025-05-12 14:55:59 -04:00
100thCoin
195079844b Added tests for all RRA instructions
Added tests for all RRA instructions
2025-05-12 14:32:24 -04:00
100thCoin
e783d9055c Added tests for all SRE instructions
Added tests for all SRE instructions
2025-05-12 14:12:33 -04:00
100thCoin
b86d828ca5 Added tests for ANE, LXA, and RLA
Added tests for ANE, LXA, and the entire set of RLA instructions
2025-05-12 14:01:16 -04:00
100thCoin
66b84d31e8 Added a test for the AXS instruction
Added a test that runs a few AXS instructions and checks for the correct output/flags and stuff.
2025-05-12 00:24:53 -04:00
100thCoin
57bc4a96d3 Added tests for ARR and printing Magic
Added a test for the ARR instruction.
Added a test that prints the values of MAGIC for both ANE and LXA
2025-05-11 23:45:30 -04:00
100thCoin
6fc10dd8a5 Added tests for ANC and ASR
Added tests for ANC and ASR
Also added placeholders for ARR, ANE, LXA, AXS, and SBC.
2025-05-11 23:10:28 -04:00
100thCoin
fc4581175c Added a suite of tests for the SLO instruction
This test isn't finished yet, and only runs a single test for each instruction. Though this commit also includes the entire "engine" for these tests that will be used on all instruction tests.
2025-05-11 21:43:37 -04:00
100thCoin
10702a3562 Merge branch 'main' of https://github.com/100thCoin/AccuracyCoin 2025-05-09 23:19:25 -04:00
100thCoin
0a7e4abd75 Added a test for AHX (indirect), Y
Added a test for AHX (indirect), Y to the list of Unofficial Instruction tests.
2025-05-09 23:19:23 -04:00
Chris Siebert
d8d853fb3f Update README.md
Explained what this is in a README.
2025-05-09 23:08:31 -04:00
100thCoin
bde562ddc9 Added the Unofficial Instruction Test
Added a test that checks for NOP Absolute, SLO, ANC, RLA, SRE, ASR, RRA, ARR, SAX, XAA, AHX, SHX, SHY, TAS, LAX, LXA, LAE, DPC, AXS, and ISC.
2025-05-09 21:44:21 -04:00
100thCoin
2412e028d7 Added the power on state tests
Added tests for CPU RAM Power on State, CPU Registers Power on State, PPU RAM Power on State, Palette RAM Power on State, and PPU Reset Flag.
2025-05-09 17:24:59 -04:00
100thCoin
dc4cca7e02 Initial commit 2025-05-09 16:25:03 -04:00