cfgfile_write_bool(f, _T("fm801_pci"), p->obs_sound_fm801);
#endif
+ cfgfile_dwrite_bool(f, _T("keyboard_connected"), p->keyboard_connected);
cfgfile_write_str (f, _T("kbd_lang"), (p->keyboard_lang == KBD_LANG_DE ? _T("de")
: p->keyboard_lang == KBD_LANG_DK ? _T("dk")
: p->keyboard_lang == KBD_LANG_ES ? _T("es")
return 1;
}
+
if (_tcscmp (option, _T("kbd_lang")) == 0) {
KbdLang l;
if ((l = KBD_LANG_DE, strcasecmp (value, _T("de")) == 0)
|| cfgfile_yesno(option, value, _T("gfxcard_hardware_vblank"), &p->rtg_hardwareinterrupt)
|| cfgfile_yesno(option, value, _T("gfxcard_hardware_sprite"), &p->rtg_hardwaresprite)
|| cfgfile_yesno(option, value, _T("synchronize_clock"), &p->tod_hack)
+ || cfgfile_yesno(option, value, _T("keyboard_connected"), &p->keyboard_connected)
|| cfgfile_yesno (option, value, _T("kickshifter"), &p->kickshifter)
|| cfgfile_yesno (option, value, _T("ks_write_enabled"), &p->rom_readwrite)
inputdevice_joyport_config_store(p, _T("kbd1"), 1, -1, 0);
}
p->keyboard_lang = KBD_LANG_US;
+ p->keyboard_connected = true;
p->produce_sound = 3;
p->sound_stereo = SND_STEREO;
p->bogomem_size = 0x00080000;
p->z3chipmem_size = 0;
for (int i = 0; i < MAX_RAM_BOARDS; i++) {
- p->fastmem[i].size = 0;
- p->z3fastmem[i].size = 0;
+ memset(p->fastmem, 0, sizeof(struct ramboard));
+ memset(p->z3fastmem, 0, sizeof(struct ramboard));
}
for (int i = 0; i < MAX_RTG_BOARDS; i++) {
p->rtgboards[i].rtgmem_size = 0x00000000;
}
}
+void keyboard_connected(void)
+{
+ kbstate = 0;
+ kblostsynccnt = 0;
+ resetwarning_phase = 0;
+}
+
static void check_keyboard(void)
{
- if ((keys_available () || kbstate < 3) && !kblostsynccnt ) {
- switch (kbstate)
- {
- case 0:
- kbcode = 0; /* powerup resync */
- kbstate++;
- break;
- case 1:
- setcode (AK_INIT_POWERUP);
- kbstate++;
- break;
- case 2:
- setcode (AK_TERM_POWERUP);
- kbstate++;
- break;
- case 3:
- kbcode = ~get_next_key ();
- break;
- }
- keyreq ();
+ if (currprefs.keyboard_connected) {
+ if ((keys_available () || kbstate < 3) && !kblostsynccnt ) {
+ switch (kbstate)
+ {
+ case 0:
+ kbcode = 0; /* powerup resync */
+ kbstate++;
+ break;
+ case 1:
+ setcode (AK_INIT_POWERUP);
+ kbstate++;
+ break;
+ case 2:
+ setcode (AK_TERM_POWERUP);
+ kbstate++;
+ break;
+ case 3:
+ kbcode = ~get_next_key ();
+ break;
+ }
+ keyreq ();
+ }
+ } else {
+ while (keys_available()) {
+ get_next_key();
+ }
}
}
if (currprefs.tod_hack && ciaatodon)
do_tod_hack (dotod);
- } else {
+ } else if (currprefs.keyboard_connected) {
// custom hsync
if (resetwarning_phase) {
resetwarning_check ();