Closed Yazwh0 closed 5 months ago
I think the source you pasted is not current, but I believe the problem still exists.
According to my reading of the verilog, the emulator behavior is what the VERA should be doing.
It looks like the code is saying if one byte cache cycling is on, the source should be the current index of the cache, otherwise pull it from either the cache or the multiplier/accum output depending on the state of the fx_multiplier toggle.
If that's not what it means, please help me understand.
if (if0_one_byte_cache_cycling) begin
if0_wrdata_to_use = if0_cache8;
end else begin
if0_wrdata_to_use = if0_wrdata;
end
if (if0_cache_write_enabled && !if0_one_byte_cache_cycling) begin
// In cache write mode, we use the 32-bit data from the cache
ram_wrdata = if0_mult_accum_cache32;
end else begin
// In non-cache write mode, we use the wrdata and duplicate to all four 8-bit channels
ram_wrdata = {4{if0_wrdata_to_use}};
end
I can only think I switched the sdcard over too quickly in testing, so ended up with an old version when I expected a new one?
I dunno. Appologies.
The byte cycling check in
video.c
looks suspect to me.Test app:
Emulator
Hardware