You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: targets/mega65/vic4.c
+13-3Lines changed: 13 additions & 3 deletions
Original file line number
Diff line number
Diff line change
@@ -191,6 +191,11 @@ void vic_reset ( void )
191
191
// turn off possible remained sprite collision info
192
192
vic_registers[0x1E] =0;
193
193
vic_registers[0x1F] =0;
194
+
vic_write_reg(0x56, 0x15); // VHDL init value for "sprite_extended_height_size" signal
195
+
vic_write_reg(0x5B, 0x01); // VHDL init value for "chargen_y_scale" signal
196
+
vic_write_reg(0x73, 0x11); // VHDL init value for "vicii_ycounter_scale_minus_zero" signal (unknown for the reg_alpha_Delay part ...)
197
+
vic_write_reg(0x75, 0x80); // VHDL init value for "sprite_alpha_blend_value"
198
+
vic_write_reg(0x7C, 0xD0); // it seems $D07C is initialized to $D0 (and then ROM to set lower bits to '2') on real MEGA65 by unknown mechanism. Let's do it here as a workaround
// IMPORTANT NOTE: writing of vic_registers[] happens only *AFTER* this switch/case construct! This means if you need to do this before, you must do it manually at the right "case"!!!!
621
631
// if you do so, you can even use "return" instead of "break" to save the then-redundant write of the register
@@ -661,7 +671,7 @@ void vic_write_reg ( unsigned int addr, Uint8 data )
661
671
interrupt_checker();
662
672
break;
663
673
CASE_VIC_ALL(0x1A):
664
-
data &= 0xF;
674
+
data &= 0xF;// technically bit 4 is missing (raster-x interrupt), but Xemu can't support that anyway (same for D019?)
0 commit comments