I've been running tests for the past 10 hours or so (running 3 copies of the simulator at once). I didn't run every single test, some take a ridiculously long time to run (1 second test = 1 hour... one of them took about 5-6 hours to complete)
The CPU seems to be working correctly in most cases ($4014 writes aside).
ADC/SBC (and RRA/ISC which reuse their logic) are bugged (I imagine the "carry" part of the operation might not be working properly?) - this has the potential to break other tests if they are used.
The APU seems to be working as well (irq_flag failed, and dmc dma's behavior seems to be slightly incorrect)
The PPU is hard to say - with the $4014 bug, sprite-related tests will all fail.
The palette RAM test passed, but I'm fairly sure there is something wrong with the palette in general.
The background color that gets output seems to always use $3F0F instead of $3F00 (so the lower 4 bits are inverted - incorrect wiring maybe?), among other things.
Hopefully these results can eventually be useful in trying to fix the visual 2A03/2C02 - I'm not sure there is anything I can do beyond this, though.
Edit: Also updated the download link to include the latest build (better speed, fixes, and some UI improvements)
Code: Select all
blargg_apu_2005.07.30:
01.len_ctr: Pass
02.len_table: Pass
03.irq_flag: FAIL ($06 - "Writing $00 or $80 to $4017 doesn't affect flag")
04.clock_jitter: Pass
05.len_timing_mode0: Pass
06.len_timing_mode1: Pass
07.irq_flag_timing: Pass
08.irq_timing: Pass
09.reset_timing: Pass
10.len_halt_timing: Pass
11.len_reload_timing: Pass
blargg_ppu_tests_2005.09.15b:
palette_ram: Pass
power_up_palette: FAIL (expected it to fail)
sprite_ram: FAIL ($06 - "$4014 DMA copy doesn't work at all")
vbl_clear_time: Pass
vram_access: Pass
branch_timing_tests:
1.Branch_Basics: Pass
2.Backward_Branch: Pass
3.Forward_Branch: Pass
cpu_interrupts_v2:
1-cli_latency: Pass
dmc_dma_during_read4:
dma_2007_read: FAIL? (Outputs: 11 22, 11 22, 11 22, 11 22, 33 44 - 4AEFDE12)
dma_2007_write: Pass
double_2007_read: FAIL? (Outputs: 22 33 44 55 66, 02 33 44 55 66, 31D9ED83)
read_write_2007: Pass
instr_misc:
01-abs_x_wrap: Pass
02-branch_wrap: Pass
03-dummy_reads: Pass
04-dummy_reads_apu: Pass
instr_test-v3:
01-implied: Pass
02-immediate: FAIL (69 ADC, E9 SBC)
03-zero_page: FAIL (65 ADC, E5 SBC, 67 RRA, E7 ISC)
04-zp_xy: FAIL (75 ADC, F5 SBC, 77 RRA, F7 ISC)
05-absolute: FAIL (6D ADC, ED SBC, 6E RRA, EF ISC)
06-abs_xy: FAIL (7D ADC, 79 ADC, FD SBC, F9 SBC, 7F RRA, FF ISC, 7B RRA, FB ISC)
07-ind_x: FAIL (61 ADC, E1 SBC, 63 RRA, E3 ISC)
08-ind_y: FAIL (F1 SBC, 71 ADC, 73 RRA, F3 ISC)
09-branches: Pass
10-stack: Pass
11-jmp_jsr: Pass
12-rts: Pass
13-rti: Pass
14-brk: Pass
15-special: Pass
oam_read: FAIL (Displays mostly stars)
ppu_sprite_hit:
01-basics: FAIL ("Flag isn't working at all" - Most likely caused by broken $4014 writes)
ppu_sprite_overflow:
01-basics: FAIL ("Should clear flag at end of VBL" - Not sure what is causing this)
read_joy3:
count_errors_fast: FAIL (because no controller is connected - need to emulate a standard controller and try again)
test_apu_2:
test_1: Pass
test_2: FAIL (might be normal - apparently can also fail on NES based on cpu-ppu alignment)
test_3: Pass
test_4: Pass
test_5: Pass
test_6: FAIL (not sure if this is normal - test 6 was originally affected by alignment, but it sounded like it was fixed?)
test_7: Pass
test_8: Pass
test_9: Pass
test_10: Pass
test_11: Pass
The OAM read test looked like this:
- oamread.png (18.12 KiB) Viewed 4874 times