key_fifo->write(code);
if(scancode < 0x5c) {
double usec = (double)repeat_time_long * 1000.0;
- if(event_keyrepeat >= 0) cancel_event(this, event_keyrepeat);
- event_keyrepeat = -1;
+ if((repeat_keycode == 0) && repeat_mode) {
+ if(event_keyrepeat >= 0) cancel_event(this, event_keyrepeat);
+ event_keyrepeat = -1;
+ register_event(this,
+ ID_KEYBOARD_AUTOREPEAT_FIRST,
+ usec, false, &event_keyrepeat);
+ }
repeat_keycode = (uint8_t)scancode;
- if(repeat_mode) register_event(this,
- ID_KEYBOARD_AUTOREPEAT_FIRST,
- usec, false, &event_keyrepeat);
}
}
}
{
state_fio->FputUint32_BE(STATE_VERSION);
state_fio->FputInt32_BE(this_device_id);
+ p_emu->out_debug_log("Save State: KEYBOARD: id=%d ver=%d\n", this_device_id, STATE_VERSION);
// Version 1
{
version = state_fio->FgetUint32_BE();
if(this_device_id != state_fio->FgetInt32_BE()) return false;
+ p_emu->out_debug_log("Load State: KEYBOARD: id=%d ver=%d\n", this_device_id, version);
if(version >= 1) {
keycode_7 = state_fio->FgetUint32_BE();
did_hidden_message_av_1 = state_fio->FgetBool();
#endif
}
- if(version == 2) {
+ if(version == STATE_VERSION) {
return true;
}
return false;