diff --git a/targets/mega65/vic4.c b/targets/mega65/vic4.c index 154b79c4..b8d73980 100644 --- a/targets/mega65/vic4.c +++ b/targets/mega65/vic4.c @@ -378,7 +378,11 @@ static void vic4_interpret_legacy_mode_registers ( void ) vic4_update_vertical_borders(); Uint8 width = REG_H640 ? 80 : 40; - REG_CHRCOUNT = width; + + // Set all 10 bits of ChrCount + vic_registers[0x5e] = width; + vic_registers[0x63] &= 0xCF; // clearing bits 4 and 5, being MSB of CHRCOUNT + SET_LINESTEP_BYTES(width); // * (REG_16BITCHARSET ? 2 : 1)); REG_SCRNPTR_B0 = 0; diff --git a/targets/mega65/vic4.h b/targets/mega65/vic4.h index 95e5c098..92221b12 100644 --- a/targets/mega65/vic4.h +++ b/targets/mega65/vic4.h @@ -110,7 +110,7 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #define REG_LINESTEP vic_registers[0x58] #define REG_LINESTEP_U8 vic_registers[0x59] #define REG_CHARXSCALE vic_registers[0x5A] -#define REG_CHRCOUNT vic_registers[0x5E] +#define REG_CHRCOUNT (vic_registers[0x5E] + ((vic_registers[0x63] & 0x30) << 4)) #define REG_SCRNPTR_B0 vic_registers[0x60] #define REG_SCRNPTR_B1 vic_registers[0x61] #define REG_SCRNPTR_B2 vic_registers[0x62]