MiSTer-devel / Arcade-LadyBug_MiSTer

Arcade: Lady Bug for MiSTer
2 stars 10 forks source link

Snap Jack - Purple square tile artifact appears on playfield #11

Open thepulserifle opened 3 years ago

thepulserifle commented 3 years ago

https://www.youtube.com/watch?v=d12bKm9UEs4&t=25s

If the timecode doesn't work, you'll want to go to 25 seconds to see it.

Fairly consistently, during the "Power Dot Transition Phase" where the screen flashes, a purple tile artifact will appear onscreen (sometimes two, but rarely two). This issue has been around since at least October of 2020, but the recording supplied above is fresh from JimmyStones.

JimmyStones commented 3 years ago

@sorgelig This was identified in the old Arcade-SnapJack core but never reported, but we've now confirmed it happens in the new merged core as well so I asked @thepulserifle to report it here with evidence

paulb-nl commented 4 months ago

This is something that rarely happens for me but I was able to find the issue.

Gating the Char & Color RAMs access here with clk_en_4mhz_i causes much too short data output. https://github.com/MiSTer-devel/Arcade-LadyBug_MiSTer/blob/962741e878b191f8e94436417940395b4e537a64/rtl/ladybug_char.vhd#L511

Please try the below core and see if it is fixed: Arcade-LadyBug_20240602.zip

paulb-nl commented 4 months ago

I found that the Wait signal for the CPU is sometimes cleared too early.

The b1_ff signal is supposed to delay the Wait clear when a new scroll value is loaded in at the falling edge of hx_ctrl_q.

https://github.com/MiSTer-devel/Arcade-LadyBug_MiSTer/blob/962741e878b191f8e94436417940395b4e537a64/rtl/ladybug_char.vhd#L314 b1_ff should go high at the falling edge of h_ctrl_s(3) which is done here: https://github.com/MiSTer-devel/Arcade-LadyBug_MiSTer/blob/962741e878b191f8e94436417940395b4e537a64/rtl/ladybug_char.vhd#L376-L379

The problem is that h_ctrl_n_rise_s is wrong and b1_ff goes high at the rising edge of h_ctrl_s(3). https://github.com/MiSTer-devel/Arcade-LadyBug_MiSTer/blob/962741e878b191f8e94436417940395b4e537a64/rtl/ladybug_char.vhd#L265

It should be

h_ctrl_n_rise_s <= h_ctrl_s and not h_ctrl_d_out_s;

Here is a new core with the fix: Arcade-LadyBug_20240606.zip