cfgfile_dwrite_bool(f, _T("1mchipjumper"), p->cs_1mchipjumper);
cfgfile_dwrite_bool(f, _T("color_burst"), p->cs_color_burst);
cfgfile_dwrite_strarr(f, _T("hvcsync"), hvcsync, p->cs_hvcsync);
+ cfgfile_dwrite(f, _T("hsyncadjust"), _T("%d"), p->cs_hsyncadjust);
+ cfgfile_dwrite(f, _T("vsyncadjust"), _T("%d"), p->cs_vsyncadjust);
cfgfile_dwrite_bool(f, _T("toshiba_gary"), p->cs_toshibagary);
cfgfile_dwrite_bool(f, _T("rom_is_slow"), p->cs_romisslow);
cfgfile_dwrite_strarr(f, _T("ciaa_type"), ciatype, p->cs_ciatype[0]);
|| cfgfile_intval(option, value, _T("keyboard_handshake"), &p->cs_kbhandshake, 1)
|| cfgfile_intval(option, value, _T("eclockphase"), &p->cs_eclockphase, 1)
|| cfgfile_intval(option, value, _T("chipset_rtc_adjust"), &p->cs_rtc_adjust, 1)
+ || cfgfile_intval(option, value, _T("hsyncadjust"), &p->cs_hsyncadjust, 1)
+ || cfgfile_intval(option, value, _T("vsyncadjust"), &p->cs_vsyncadjust, 1)
|| cfgfile_intval(option, value, _T("rndseed"), &p->seed, 1))
return 1;
p->cs_unmapped_space = 0;
p->cs_color_burst = false;
p->cs_hvcsync = 0;
+ p->cs_hsyncadjust = CCKS_AFTER_HSYNC * 2 * 4;
+ p->cs_vsyncadjust = LINES_AFTER_VSYNC * 2;
p->cs_ciatype[0] = 0;
p->cs_ciatype[1] = 0;
p->cs_memorypatternfill = true;
}
// after vsync, it seems earlier possible visible line is vsync+3.
- vsync_startline = LINES_AFTER_VSYNC;
+ vsync_startline = currprefs.cs_vsyncadjust / 2;
if ((beamcon0 & BEAMCON0_VARVBEN) && (beamcon0 & bemcon0_vsync_mask)) {
vsync_startline += vsstrt;
if (vsync_startline >= vsync_lines / 2) {
- vsync_startline = LINES_AFTER_VSYNC;
+ vsync_startline = currprefs.cs_vsyncadjust / 2;
}
}
total /= 4;
}
int hsylen = current_agnus_hslen_cck;
- hsylen += CCKS_AFTER_HSYNC;
hsylen *= 2;
+ hsylen += currprefs.cs_hsyncadjust / 4;
//hsstop_detect = hbe;
if (hbe < hsylen) {
hbe = hsylen;
} else {
maxvpos_display--;
}
- } else if (currprefs.gfx_overscanmode == OVERSCANMODE_BROADCAST) {
- maxhpos_display += 7;
} else if (currprefs.gfx_overscanmode >= OVERSCANMODE_ULTRA) {
maxhpos_display = hsync_ccks * 2;
display_hstart_cyclewait_start = 0;
#endif
}
#endif
- if (p->gfx_framerate < 1)
+ if (p->gfx_framerate < 1) {
p->gfx_framerate = 1;
+ }
if (p->gfx_display_sections < 1) {
p->gfx_display_sections = 1;
} else if (p->gfx_display_sections > 99) {
p->maprom = 0;
}
- if (p->tod_hack && p->cs_ciaatod == 0)
+ if (p->tod_hack && p->cs_ciaatod == 0) {
p->cs_ciaatod = p->ntscmode ? 2 : 1;
+ }
// PCem does not support max speed.
- if (p->x86_speed_throttle < 0)
+ if (p->x86_speed_throttle < 0) {
p->x86_speed_throttle = 0;
+ }
+
+ if (p->cs_hsyncadjust < 2 * 4 * 2) {
+ p->cs_hsyncadjust = 2 * 4 * 2;
+ }
+ if (p->cs_hsyncadjust > 20 * 4 * 2) {
+ p->cs_hsyncadjust = 20 * 4 * 2;
+ }
+ if (p->cs_vsyncadjust < 0) {
+ p->cs_vsyncadjust = 0;
+ }
+ if (p->cs_vsyncadjust > 20 * 2) {
+ p->cs_vsyncadjust = 20 * 2;
+ }
built_in_chipset_prefs (p);
blkdev_fix_prefs (p);