mirror of
https://github.com/libretro/Mesen.git
synced 2024-11-27 02:50:28 +00:00
Input: Added "keyboard mode" toggle to improve keyboard input
This commit is contained in:
parent
6b90228bdd
commit
d2ef196a3b
@ -148,6 +148,11 @@ void BaseControlDevice::EnsureCapacity(int32_t minBitCount)
|
||||
}
|
||||
}
|
||||
|
||||
bool BaseControlDevice::IsKeyboard()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
bool BaseControlDevice::HasCoordinates()
|
||||
{
|
||||
return false;
|
||||
@ -207,7 +212,12 @@ void BaseControlDevice::InvertBit(uint8_t bit)
|
||||
|
||||
void BaseControlDevice::SetPressedState(uint8_t bit, uint32_t keyCode)
|
||||
{
|
||||
if(EmulationSettings::InputEnabled() && KeyManager::IsKeyPressed(keyCode)) {
|
||||
if(IsKeyboard() && keyCode < 0x200 && !EmulationSettings::IsKeyboardMode()) {
|
||||
//Prevent keyboard device input when keyboard mode is off
|
||||
return;
|
||||
}
|
||||
|
||||
if(EmulationSettings::InputEnabled() && (!EmulationSettings::IsKeyboardMode() || keyCode >= 0x200 || IsKeyboard()) && KeyManager::IsKeyPressed(keyCode)) {
|
||||
SetBit(bit);
|
||||
}
|
||||
}
|
||||
|
@ -56,6 +56,8 @@ public:
|
||||
|
||||
bool IsPressed(uint8_t bit);
|
||||
MousePosition GetCoordinates();
|
||||
|
||||
virtual bool IsKeyboard();
|
||||
|
||||
void ClearState();
|
||||
void SetBit(uint8_t bit);
|
||||
|
@ -172,6 +172,8 @@ void ControlManager::UpdateControlDevices()
|
||||
//Reset update flag
|
||||
EmulationSettings::NeedControllerUpdate();
|
||||
|
||||
bool hadKeyboard = HasKeyboard();
|
||||
|
||||
ControlManager::_controlDevices.clear();
|
||||
|
||||
ControlManager::RegisterControlDevice(_systemActionManager);
|
||||
@ -203,6 +205,13 @@ void ControlManager::UpdateControlDevices()
|
||||
ControlManager::RegisterControlDevice(expDevice);
|
||||
}
|
||||
|
||||
bool hasKeyboard = HasKeyboard();
|
||||
if(!hasKeyboard) {
|
||||
EmulationSettings::DisableKeyboardMode();
|
||||
} else if(!hadKeyboard && hasKeyboard) {
|
||||
EmulationSettings::EnableKeyboardMode();
|
||||
}
|
||||
|
||||
if(_mapperControlDevice) {
|
||||
ControlManager::RegisterControlDevice(_mapperControlDevice);
|
||||
}
|
||||
@ -213,6 +222,12 @@ void ControlManager::UpdateControlDevices()
|
||||
}
|
||||
}
|
||||
|
||||
bool ControlManager::HasKeyboard()
|
||||
{
|
||||
shared_ptr<BaseControlDevice> expDevice = GetControlDevice(BaseControlDevice::ExpDevicePort);
|
||||
return expDevice && expDevice->IsKeyboard();
|
||||
}
|
||||
|
||||
uint8_t ControlManager::GetOpenBusMask(uint8_t port)
|
||||
{
|
||||
//"In the NES and Famicom, the top three (or five) bits are not driven, and so retain the bits of the previous byte on the bus.
|
||||
|
@ -62,6 +62,7 @@ public:
|
||||
static shared_ptr<BaseControlDevice> GetControlDevice(uint8_t port);
|
||||
static shared_ptr<BaseControlDevice> CreateControllerDevice(ControllerType type, uint8_t port);
|
||||
static shared_ptr<BaseControlDevice> CreateExpansionDevice(ExpansionPortDevice type);
|
||||
static bool HasKeyboard();
|
||||
|
||||
virtual void GetMemoryRanges(MemoryRanges &ranges) override
|
||||
{
|
||||
|
@ -56,6 +56,8 @@ bool EmulationSettings::_nsfDisableApuIrqs = true;
|
||||
uint32_t EmulationSettings::_autoSaveDelay = 5;
|
||||
bool EmulationSettings::_autoSaveNotify = false;
|
||||
|
||||
bool EmulationSettings::_keyboardModeEnabled = false;
|
||||
|
||||
SimpleLock EmulationSettings::_shortcutLock;
|
||||
std::unordered_map<uint32_t, KeyCombination> EmulationSettings::_emulatorKeys[2];
|
||||
std::unordered_map<uint32_t, vector<KeyCombination>> EmulationSettings::_shortcutSupersets[2];
|
||||
|
@ -362,6 +362,7 @@ enum class EmulatorShortcut
|
||||
ToggleAudio,
|
||||
ToggleFastForward,
|
||||
ToggleRewind,
|
||||
ToggleKeyboardMode,
|
||||
|
||||
RunSingleFrame,
|
||||
|
||||
@ -586,6 +587,8 @@ private:
|
||||
static uint32_t _autoSaveDelay;
|
||||
static bool _autoSaveNotify;
|
||||
|
||||
static bool _keyboardModeEnabled;
|
||||
|
||||
static std::unordered_map<uint32_t, KeyCombination> _emulatorKeys[2];
|
||||
static std::unordered_map<uint32_t, vector<KeyCombination>> _shortcutSupersets[2];
|
||||
|
||||
@ -1338,4 +1341,25 @@ public:
|
||||
{
|
||||
return _dipSwitches;
|
||||
}
|
||||
|
||||
static bool IsKeyboardMode()
|
||||
{
|
||||
return _keyboardModeEnabled;
|
||||
}
|
||||
|
||||
static void EnableKeyboardMode()
|
||||
{
|
||||
if(!_keyboardModeEnabled) {
|
||||
_keyboardModeEnabled = true;
|
||||
MessageManager::DisplayMessage("Input", "KeyboardModeEnabled");
|
||||
}
|
||||
}
|
||||
|
||||
static void DisableKeyboardMode()
|
||||
{
|
||||
if(_keyboardModeEnabled) {
|
||||
_keyboardModeEnabled = false;
|
||||
MessageManager::DisplayMessage("Input", "KeyboardModeDisabled");
|
||||
}
|
||||
}
|
||||
};
|
||||
|
@ -87,6 +87,11 @@ public:
|
||||
{
|
||||
}
|
||||
|
||||
bool IsKeyboard() override
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
uint8_t ReadRAM(uint16_t addr) override
|
||||
{
|
||||
if(addr == 0x4017) {
|
||||
|
@ -12,6 +12,7 @@ std::unordered_map<string, string> MessageManager::_enResources = {
|
||||
{ "Error", u8"Error" },
|
||||
{ "GameInfo", u8"Game Info" },
|
||||
{ "GameLoaded", u8"Game loaded" },
|
||||
{ "Input", u8"Input" },
|
||||
{ "Patch", u8"Patch" },
|
||||
{ "Movies", u8"Movies" },
|
||||
{ "NetPlay", u8"Net Play" },
|
||||
@ -38,6 +39,8 @@ std::unordered_map<string, string> MessageManager::_enResources = {
|
||||
{ "EmulationSpeedPercent", u8"%1%" },
|
||||
{ "Frame", u8"Frame" },
|
||||
{ "GameCrash", u8"Game has crashed (%1)" },
|
||||
{ "KeyboardModeDisabled", u8"Keyboard mode disabled." },
|
||||
{ "KeyboardModeEnabled", u8"Keyboard mode enabled." },
|
||||
{ "Lag", u8"Lag" },
|
||||
{ "Mapper", u8"Mapper: %1, SubMapper: %2" },
|
||||
{ "MovieEnded", u8"Movie ended." },
|
||||
@ -82,6 +85,7 @@ std::unordered_map<string, string> MessageManager::_frResources = {
|
||||
{ "Error", u8"Erreur" },
|
||||
{ "GameInfo", u8"Info sur le ROM" },
|
||||
{ "GameLoaded", u8"Jeu chargé" },
|
||||
{ "Input", u8"Contrôles" },
|
||||
{ "Patch", u8"Patch" },
|
||||
{ "Movies", u8"Films" },
|
||||
{ "NetPlay", u8"Jeu en ligne" },
|
||||
@ -108,6 +112,8 @@ std::unordered_map<string, string> MessageManager::_frResources = {
|
||||
{ "EmulationSpeedPercent", u8"%1%" },
|
||||
{ "Frame", u8"Image" },
|
||||
{ "GameCrash", u8"Le jeu a planté (%1)" },
|
||||
{ "KeyboardModeDisabled", u8"Mode clavier activé." },
|
||||
{ "KeyboardModeEnabled", u8"Mode clavier désactivé." },
|
||||
{ "Lag", u8"Lag" },
|
||||
{ "Mapper", u8"Mapper : %1, SubMapper : %2" },
|
||||
{ "MovieEnded", u8"Fin du film." },
|
||||
@ -152,6 +158,7 @@ std::unordered_map<string, string> MessageManager::_jaResources = {
|
||||
{ "Error", u8"エラー" },
|
||||
{ "GameInfo", u8"ゲーム情報" },
|
||||
{ "GameLoaded", u8"ゲーム開始" },
|
||||
{ "Input", u8"コントローラ" },
|
||||
{ "Patch", u8"パッチ" },
|
||||
{ "Movies", u8"動画" },
|
||||
{ "NetPlay", u8"ネットプレー" },
|
||||
@ -178,6 +185,8 @@ std::unordered_map<string, string> MessageManager::_jaResources = {
|
||||
{ "EmulationSpeedPercent", u8"%1%" },
|
||||
{ "Frame", u8"フレーム" },
|
||||
{ "GameCrash", u8"ゲームは停止しました (%1)" },
|
||||
{ "KeyboardModeDisabled", u8"キーボードモードを無効にしました。" },
|
||||
{ "KeyboardModeEnabled", u8"キーボードモードを有効にしました。" },
|
||||
{ "Lag", u8"ラグ" },
|
||||
{ "Mapper", u8"Mapper: %1, SubMapper: %2" },
|
||||
{ "MovieEnded", u8"動画の再生が終了しました。" },
|
||||
@ -222,6 +231,7 @@ std::unordered_map<string, string> MessageManager::_ruResources = {
|
||||
{ "Error", u8"Ошибка" },
|
||||
{ "GameInfo", u8"Информация об игре" },
|
||||
{ "GameLoaded", u8"Игра загружена" },
|
||||
{ "Input", u8"Input" },
|
||||
{ "Patch", u8"Patch" },
|
||||
{ "Movies", u8"Записи" },
|
||||
{ "NetPlay", u8"Игра по сети" },
|
||||
@ -248,6 +258,8 @@ std::unordered_map<string, string> MessageManager::_ruResources = {
|
||||
{ "EmulationSpeedPercent", u8"%1%" },
|
||||
{ "Frame", u8"Frame" },
|
||||
{ "GameCrash", u8"Игра была аварийно завершена (%1)" },
|
||||
{ "KeyboardModeDisabled", u8"Keyboard mode disabled." },
|
||||
{ "KeyboardModeEnabled", u8"Keyboard mode enabled." },
|
||||
{ "Lag", u8"Лаг" },
|
||||
{ "Mapper", u8"Mapper: %1, SubMapper: %2" },
|
||||
{ "MovieEnded", u8"Воспроизведение окончено." },
|
||||
@ -292,6 +304,7 @@ std::unordered_map<string, string> MessageManager::_esResources = {
|
||||
{ "Error", u8"Error" },
|
||||
{ "GameInfo", u8"Info del Juego" },
|
||||
{ "GameLoaded", u8"Juego Cargado" },
|
||||
{ "Input", u8"Input" },
|
||||
{ "Patch", u8"Patch" },
|
||||
{ "Movies", u8"Videos" },
|
||||
{ "NetPlay", u8"Juego Online" },
|
||||
@ -318,6 +331,8 @@ std::unordered_map<string, string> MessageManager::_esResources = {
|
||||
{ "EmulationSpeedPercent", u8"%1%" },
|
||||
{ "Frame", u8"Frame" },
|
||||
{ "GameCrash", u8"El juego se ha colgado (%1)" },
|
||||
{ "KeyboardModeDisabled", u8"Keyboard mode disabled." },
|
||||
{ "KeyboardModeEnabled", u8"Keyboard mode enabled." },
|
||||
{ "Lag", u8"Lag" },
|
||||
{ "Mapper", u8"Mapeado: %1, SubMapeado: %2" },
|
||||
{ "MovieEnded", u8"Video terminado." },
|
||||
@ -363,6 +378,7 @@ std::unordered_map<string, string> MessageManager::_ukResources = {
|
||||
{ "Error", u8"Помилка" },
|
||||
{ "GameInfo", u8"Інформація про гру" },
|
||||
{ "GameLoaded", u8"Гра завантажена" },
|
||||
{ "Input", u8"Input" },
|
||||
{ "Patch", u8"Patch" },
|
||||
{ "Movies", u8"Записи" },
|
||||
{ "NetPlay", u8"Гра по мережi" },
|
||||
@ -389,6 +405,8 @@ std::unordered_map<string, string> MessageManager::_ukResources = {
|
||||
{ "EmulationSpeedPercent", u8"%1%" },
|
||||
{ "Frame", u8"Frame" },
|
||||
{ "GameCrash", u8"Гра була аварійно завершена (%1)" },
|
||||
{ "KeyboardModeDisabled", u8"Keyboard mode disabled." },
|
||||
{ "KeyboardModeEnabled", u8"Keyboard mode enabled." },
|
||||
{ "Lag", u8"Лаг" },
|
||||
{ "Mapper", u8"Mapper: %1, SubMapper: %2" },
|
||||
{ "MovieEnded", u8"Відтворення закінчено." },
|
||||
@ -433,6 +451,7 @@ std::unordered_map<string, string> MessageManager::_ptResources = {
|
||||
{ "Error", u8"Erro" },
|
||||
{ "GameInfo", u8"Informações do Jogo" },
|
||||
{ "GameLoaded", u8"Jogo Carregado" },
|
||||
{ "Input", u8"Input" },
|
||||
{ "Patch", u8"Patch" },
|
||||
{ "Movies", u8"Vídeos" },
|
||||
{ "NetPlay", u8"Jogo Online" },
|
||||
@ -459,6 +478,8 @@ std::unordered_map<string, string> MessageManager::_ptResources = {
|
||||
{ "EmulationSpeedPercent", u8"%1%" },
|
||||
{ "Frame", u8"Frame" },
|
||||
{ "GameCrash", u8"O jogo crashou (%1)" },
|
||||
{ "KeyboardModeDisabled", u8"Keyboard mode disabled." },
|
||||
{ "KeyboardModeEnabled", u8"Keyboard mode enabled." },
|
||||
{ "Lag", u8"Lag" },
|
||||
{ "Mapper", u8"Mapeado: %1, SubMapeado: %2" },
|
||||
{ "MovieEnded", u8"Vídeo terminado." },
|
||||
@ -503,6 +524,7 @@ std::unordered_map<string, string> MessageManager::_caResources = {
|
||||
{ "Error", u8"Error" },
|
||||
{ "GameInfo", u8"Informació del joc" },
|
||||
{ "GameLoaded", u8"Joc carregat" },
|
||||
{ "Input", u8"Input" },
|
||||
{ "Patch", u8"Pedaç" },
|
||||
{ "Movies", u8"Pel·lícules" },
|
||||
{ "NetPlay", u8"Joc en línia" },
|
||||
@ -529,6 +551,8 @@ std::unordered_map<string, string> MessageManager::_caResources = {
|
||||
{ "EmulationSpeedPercent", u8"%1%" },
|
||||
{ "Frame", u8"Fotograma" },
|
||||
{ "GameCrash", u8"El joc ha fallat (%1)" },
|
||||
{ "KeyboardModeDisabled", u8"Keyboard mode disabled." },
|
||||
{ "KeyboardModeEnabled", u8"Keyboard mode enabled." },
|
||||
{ "Lag", u8"Retard" },
|
||||
{ "Mapper", u8"Mapat: %1, SubMapat: %2" },
|
||||
{ "MovieEnded", u8"Final de pel·lícula." },
|
||||
|
@ -10,10 +10,14 @@
|
||||
#include "FdsSystemActionManager.h"
|
||||
#include "VsSystemActionManager.h"
|
||||
#include "MovieManager.h"
|
||||
#include "ControlManager.h"
|
||||
|
||||
ShortcutKeyHandler::ShortcutKeyHandler()
|
||||
{
|
||||
_keySetIndex = 0;
|
||||
_isKeyUp = false;
|
||||
_keyboardMode = false;
|
||||
|
||||
_stopThread = false;
|
||||
_thread = std::thread([=]() {
|
||||
while(!_stopThread) {
|
||||
@ -52,9 +56,18 @@ bool ShortcutKeyHandler::IsKeyPressed(KeyCombination comb)
|
||||
return false;
|
||||
}
|
||||
|
||||
return KeyManager::IsKeyPressed(comb.Key1) &&
|
||||
(comb.Key2 == 0 || KeyManager::IsKeyPressed(comb.Key2)) &&
|
||||
(comb.Key3 == 0 || KeyManager::IsKeyPressed(comb.Key3));
|
||||
return IsKeyPressed(comb.Key1) &&
|
||||
(comb.Key2 == 0 || IsKeyPressed(comb.Key2)) &&
|
||||
(comb.Key3 == 0 || IsKeyPressed(comb.Key3));
|
||||
}
|
||||
|
||||
bool ShortcutKeyHandler::IsKeyPressed(uint32_t keyCode)
|
||||
{
|
||||
if(keyCode >= 0x200 || !_keyboardMode) {
|
||||
return KeyManager::IsKeyPressed(keyCode);
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
bool ShortcutKeyHandler::DetectKeyPress(EmulatorShortcut shortcut)
|
||||
@ -85,6 +98,18 @@ void ShortcutKeyHandler::CheckMappedKeys()
|
||||
bool isNetplayClient = GameClient::Connected();
|
||||
bool isMovieActive = MovieManager::Playing() || MovieManager::Recording();
|
||||
|
||||
_keyboardMode = false;
|
||||
if(DetectKeyPress(EmulatorShortcut::ToggleKeyboardMode)) {
|
||||
if(EmulationSettings::IsKeyboardMode()) {
|
||||
EmulationSettings::DisableKeyboardMode();
|
||||
} else {
|
||||
if(ControlManager::HasKeyboard()) {
|
||||
EmulationSettings::EnableKeyboardMode();
|
||||
}
|
||||
}
|
||||
}
|
||||
_keyboardMode = EmulationSettings::IsKeyboardMode();
|
||||
|
||||
//Let the UI handle these shortcuts
|
||||
for(uint64_t i = (uint64_t)EmulatorShortcut::SwitchDiskSide; i <= (uint64_t)EmulatorShortcut::OpenTraceLogger; i++) {
|
||||
if(DetectKeyPress((EmulatorShortcut)i)) {
|
||||
|
@ -16,6 +16,7 @@ private:
|
||||
vector<uint32_t> _pressedKeys;
|
||||
vector<uint32_t> _lastPressedKeys;
|
||||
bool _isKeyUp;
|
||||
bool _keyboardMode;
|
||||
|
||||
std::unordered_set<uint32_t> _keysDown[2];
|
||||
std::unordered_set<uint32_t> _prevKeysDown[2];
|
||||
@ -24,6 +25,7 @@ private:
|
||||
|
||||
bool IsKeyPressed(EmulatorShortcut key);
|
||||
bool IsKeyPressed(KeyCombination comb);
|
||||
bool IsKeyPressed(uint32_t keyCode);
|
||||
|
||||
bool DetectKeyPress(EmulatorShortcut key);
|
||||
bool DetectKeyRelease(EmulatorShortcut key);
|
||||
|
@ -91,6 +91,11 @@ public:
|
||||
{
|
||||
}
|
||||
|
||||
bool IsKeyboard() override
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
uint8_t ReadRAM(uint16_t addr) override
|
||||
{
|
||||
if(addr == 0x4017) {
|
||||
|
@ -101,6 +101,7 @@ namespace Mesen.GUI.Config
|
||||
|
||||
ShortcutKeys1.Add(new ShortcutKeyInfo(EmulatorShortcut.ToggleFps, new KeyCombination() { Key1 = InteropEmu.GetKeyCode("F10") }));
|
||||
ShortcutKeys1.Add(new ShortcutKeyInfo(EmulatorShortcut.ToggleFullscreen, new KeyCombination() { Key1 = InteropEmu.GetKeyCode("F11") }));
|
||||
ShortcutKeys1.Add(new ShortcutKeyInfo(EmulatorShortcut.ToggleKeyboardMode, new KeyCombination() { Key1 = InteropEmu.GetKeyCode("Scroll Lock") }));
|
||||
ShortcutKeys1.Add(new ShortcutKeyInfo(EmulatorShortcut.TakeScreenshot, new KeyCombination() { Key1 = InteropEmu.GetKeyCode("F12") }));
|
||||
ShortcutKeys1.Add(new ShortcutKeyInfo(EmulatorShortcut.LoadRandomGame, new KeyCombination() { Key1 = InteropEmu.GetKeyCode("Ctrl"), Key2 = InteropEmu.GetKeyCode("Ins") }));
|
||||
|
||||
|
@ -738,6 +738,7 @@
|
||||
<Message ID="EmulatorShortcutMappings_InsertNextDisk">FDS - Insereix el següent disc</Message>
|
||||
<Message ID="EmulatorShortcutMappings_InsertCoin1">VS - Insereix moneda (1)</Message>
|
||||
<Message ID="EmulatorShortcutMappings_InsertCoin2">VS - Insereix moneda (2)</Message>
|
||||
<Message ID="EmulatorShortcutMappings_InputBarcode">Input Barcode</Message>
|
||||
<Message ID="EmulatorShortcutMappings_VsServiceButton">VS - Botó de servei</Message>
|
||||
<Message ID="EmulatorShortcutMappings_MoveToNextStateSlot">Selecciona la següent partida guardada</Message>
|
||||
<Message ID="EmulatorShortcutMappings_MoveToPreviousStateSlot">Selecciona l'anterior partida guardada</Message>
|
||||
@ -762,6 +763,7 @@
|
||||
<Message ID="EmulatorShortcutMappings_ToggleOsd">Mostra/Amaga la visualització en pantalla (OSD)</Message>
|
||||
<Message ID="EmulatorShortcutMappings_ToggleBackground">Mostra/Amaga la capa de fons</Message>
|
||||
<Message ID="EmulatorShortcutMappings_ToggleSprites">Mostra/Amaga la capa de sprites</Message>
|
||||
<Message ID="EmulatorShortcutMappings_ToggleKeyboardMode">Toggle Keyboard Mode</Message>
|
||||
<Message ID="EmulatorShortcutMappings_MaxSpeed">Activa/Desactiva la velocitat màxima</Message>
|
||||
<Message ID="EmulatorShortcutMappings_LoadRandomGame">Carrega un joc a l'atzar</Message>
|
||||
<Message ID="EmulatorShortcutMappings_SaveStateSlot1">Desa la partida - Posició 1</Message>
|
||||
|
@ -104,6 +104,7 @@
|
||||
<Message ID="EmulatorShortcutMappings_InsertNextDisk">FDS - Insert Next Disk</Message>
|
||||
<Message ID="EmulatorShortcutMappings_InsertCoin1">VS - Insert Coin 1</Message>
|
||||
<Message ID="EmulatorShortcutMappings_InsertCoin2">VS - Insert Coin 2</Message>
|
||||
<Message ID="EmulatorShortcutMappings_InputBarcode">Input Barcode</Message>
|
||||
<Message ID="EmulatorShortcutMappings_VsServiceButton">VS - Service Button</Message>
|
||||
<Message ID="EmulatorShortcutMappings_MoveToNextStateSlot">Select Next Save Slot</Message>
|
||||
<Message ID="EmulatorShortcutMappings_MoveToPreviousStateSlot">Select Previous Save Slot</Message>
|
||||
@ -128,6 +129,7 @@
|
||||
<Message ID="EmulatorShortcutMappings_ToggleOsd">Toggle OSD (On-Screen Display)</Message>
|
||||
<Message ID="EmulatorShortcutMappings_ToggleBackground">Toggle Background Layer</Message>
|
||||
<Message ID="EmulatorShortcutMappings_ToggleSprites">Toggle Sprite Layer</Message>
|
||||
<Message ID="EmulatorShortcutMappings_ToggleKeyboardMode">Toggle Keyboard Mode</Message>
|
||||
|
||||
<Message ID="EmulatorShortcutMappings_MaxSpeed">Toggle Maximum Speed</Message>
|
||||
<Message ID="EmulatorShortcutMappings_LoadRandomGame">Load Random Game</Message>
|
||||
|
@ -757,6 +757,7 @@
|
||||
<Message ID="EmulatorShortcutMappings_InsertNextDisk">FDS - Insertar siguiente disco</Message>
|
||||
<Message ID="EmulatorShortcutMappings_InsertCoin1">VS - Insertar moneda (1)</Message>
|
||||
<Message ID="EmulatorShortcutMappings_InsertCoin2">VS - Insertar moneda (2)</Message>
|
||||
<Message ID="EmulatorShortcutMappings_InputBarcode">Input Barcode</Message>
|
||||
<Message ID="EmulatorShortcutMappings_VsServiceButton">VS - Botón de servicio</Message>
|
||||
<Message ID="EmulatorShortcutMappings_MoveToNextStateSlot">Ir a posición de guardado siguiente</Message>
|
||||
<Message ID="EmulatorShortcutMappings_MoveToPreviousStateSlot">Ir a posición de guardado anterior</Message>
|
||||
@ -781,6 +782,7 @@
|
||||
<Message ID="EmulatorShortcutMappings_ToggleOsd">Alternar OSD (Información en pantalla)</Message>
|
||||
<Message ID="EmulatorShortcutMappings_ToggleBackground">Alternar capa de fondo</Message>
|
||||
<Message ID="EmulatorShortcutMappings_ToggleSprites">Alternar capa de sprite</Message>
|
||||
<Message ID="EmulatorShortcutMappings_ToggleKeyboardMode">Toggle Keyboard Mode</Message>
|
||||
<Message ID="EmulatorShortcutMappings_MaxSpeed">Alternar velocidad máxima</Message>
|
||||
<Message ID="EmulatorShortcutMappings_LoadRandomGame">Cargar juego aleatorio</Message>
|
||||
<Message ID="EmulatorShortcutMappings_SaveStateSlot1">Guardar partida - Hueco 1</Message>
|
||||
|
@ -770,6 +770,7 @@
|
||||
<Message ID="EmulatorShortcutMappings_InsertNextDisk">FDS - Insérer le disque suivant</Message>
|
||||
<Message ID="EmulatorShortcutMappings_InsertCoin1">VS - Insérer une pièce (1)</Message>
|
||||
<Message ID="EmulatorShortcutMappings_InsertCoin2">VS - Insérer une pièce (2)</Message>
|
||||
<Message ID="EmulatorShortcutMappings_InputBarcode">Entrer un code-barres</Message>
|
||||
<Message ID="EmulatorShortcutMappings_VsServiceButton">VS - Bouton de service</Message>
|
||||
<Message ID="EmulatorShortcutMappings_MoveToNextStateSlot">Position de sauvegarde suivante</Message>
|
||||
<Message ID="EmulatorShortcutMappings_MoveToPreviousStateSlot">Position de sauvegarde précédente</Message>
|
||||
@ -794,6 +795,7 @@
|
||||
<Message ID="EmulatorShortcutMappings_ToggleOsd">Activer/désactiver les messages à l'écran (OSD)</Message>
|
||||
<Message ID="EmulatorShortcutMappings_ToggleBackground">Activer/désactiver l'arrière-plan</Message>
|
||||
<Message ID="EmulatorShortcutMappings_ToggleSprites">Activer/désactiver les sprites</Message>
|
||||
<Message ID="EmulatorShortcutMappings_ToggleKeyboardMode">Activer/désactiver le mode clavier</Message>
|
||||
<Message ID="EmulatorShortcutMappings_MaxSpeed">Activer/désactiver la vitesse maximale</Message>
|
||||
<Message ID="EmulatorShortcutMappings_LoadRandomGame">Ouvrir un jeu aléatoire</Message>
|
||||
<Message ID="EmulatorShortcutMappings_SaveStateSlot1">Sauvegarde d'état - Position 1</Message>
|
||||
|
@ -753,6 +753,7 @@
|
||||
<Message ID="EmulatorShortcutMappings_InsertNextDisk">FDS - 次のディスクを入れる</Message>
|
||||
<Message ID="EmulatorShortcutMappings_InsertCoin1">VS - インサートコイン 1</Message>
|
||||
<Message ID="EmulatorShortcutMappings_InsertCoin2">VS - インサートコイン 2</Message>
|
||||
<Message ID="EmulatorShortcutMappings_InputBarcode">バーコードを入力</Message>
|
||||
<Message ID="EmulatorShortcutMappings_VsServiceButton">VS - サービスボタン</Message>
|
||||
<Message ID="EmulatorShortcutMappings_MoveToNextStateSlot">次のクイックセーブスロットを選ぶ</Message>
|
||||
<Message ID="EmulatorShortcutMappings_MoveToPreviousStateSlot">前のクイックセーブスロットを選ぶ</Message>
|
||||
@ -777,6 +778,7 @@
|
||||
<Message ID="EmulatorShortcutMappings_ToggleOsd">オンスクリーン表示を無効・有効にする</Message>
|
||||
<Message ID="EmulatorShortcutMappings_ToggleBackground">バックグラウンドレイヤー表示</Message>
|
||||
<Message ID="EmulatorShortcutMappings_ToggleSprites">スプライトレイヤー表示</Message>
|
||||
<Message ID="EmulatorShortcutMappings_ToggleKeyboardMode">キーボードモードを無効・有効にする</Message>
|
||||
<Message ID="EmulatorShortcutMappings_MaxSpeed">最高速度を無効・有効にする</Message>
|
||||
<Message ID="EmulatorShortcutMappings_LoadRandomGame">ランダムゲームを開く</Message>
|
||||
<Message ID="EmulatorShortcutMappings_SaveStateSlot1">クイックセーブスロット1に保存する</Message>
|
||||
|
@ -754,6 +754,7 @@
|
||||
<Message ID="EmulatorShortcutMappings_InsertNextDisk">FDS - Inserir próximo disco</Message>
|
||||
<Message ID="EmulatorShortcutMappings_InsertCoin1">VS - Inserir moeda (1)</Message>
|
||||
<Message ID="EmulatorShortcutMappings_InsertCoin2">VS - Inserir moeda (2)</Message>
|
||||
<Message ID="EmulatorShortcutMappings_InputBarcode">Input Barcode</Message>
|
||||
<Message ID="EmulatorShortcutMappings_VsServiceButton">VS - Botão de serviço</Message>
|
||||
<Message ID="EmulatorShortcutMappings_MoveToNextStateSlot">Ir ao próximo estado salvo</Message>
|
||||
<Message ID="EmulatorShortcutMappings_MoveToPreviousStateSlot">Ir ao estado salvo anterior</Message>
|
||||
@ -778,6 +779,7 @@
|
||||
<Message ID="EmulatorShortcutMappings_ToggleOsd">Alternar OSD (Menu na tela)</Message>
|
||||
<Message ID="EmulatorShortcutMappings_ToggleBackground">Alternar camada de fundo</Message>
|
||||
<Message ID="EmulatorShortcutMappings_ToggleSprites">Alternar camada de sprite</Message>
|
||||
<Message ID="EmulatorShortcutMappings_ToggleKeyboardMode">Toggle Keyboard Mode</Message>
|
||||
<Message ID="EmulatorShortcutMappings_MaxSpeed">Alternar velocidade máxima</Message>
|
||||
<Message ID="EmulatorShortcutMappings_LoadRandomGame">Carrear jogo aleatório</Message>
|
||||
<Message ID="EmulatorShortcutMappings_SaveStateSlot1">Salvar estado - Posição 1</Message>
|
||||
|
@ -758,6 +758,7 @@
|
||||
<Message ID="EmulatorShortcutMappings_InsertNextDisk">FDS - Вставить следующий диск</Message>
|
||||
<Message ID="EmulatorShortcutMappings_InsertCoin1">VS - Вставить монету в слот 1</Message>
|
||||
<Message ID="EmulatorShortcutMappings_InsertCoin2">VS - Вставить монету в слот 2</Message>
|
||||
<Message ID="EmulatorShortcutMappings_InputBarcode">Input Barcode</Message>
|
||||
<Message ID="EmulatorShortcutMappings_VsServiceButton">VS - Сервисная кнопка</Message>
|
||||
<Message ID="EmulatorShortcutMappings_MoveToNextStateSlot">Следующий слот для сохранений</Message>
|
||||
<Message ID="EmulatorShortcutMappings_MoveToPreviousStateSlot">Предыдущий слот для сохранений</Message>
|
||||
@ -782,6 +783,7 @@
|
||||
<Message ID="EmulatorShortcutMappings_ToggleOsd">Toggle OSD (On-Screen Display)</Message>
|
||||
<Message ID="EmulatorShortcutMappings_ToggleBackground">Toggle Background Layer</Message>
|
||||
<Message ID="EmulatorShortcutMappings_ToggleSprites">Toggle Sprite Layer</Message>
|
||||
<Message ID="EmulatorShortcutMappings_ToggleKeyboardMode">Toggle Keyboard Mode</Message>
|
||||
<Message ID="EmulatorShortcutMappings_MaxSpeed">Toggle Maximum Speed</Message>
|
||||
<Message ID="EmulatorShortcutMappings_LoadRandomGame">Load Random Game</Message>
|
||||
<Message ID="EmulatorShortcutMappings_SaveStateSlot1">Save State - Slot 1</Message>
|
||||
|
@ -758,6 +758,7 @@
|
||||
<Message ID="EmulatorShortcutMappings_InsertNextDisk">FDS - Вставити наступний диск</Message>
|
||||
<Message ID="EmulatorShortcutMappings_InsertCoin1">VS - Вставити монету в слот 1</Message>
|
||||
<Message ID="EmulatorShortcutMappings_InsertCoin2">VS - Вставити монету в слот 2</Message>
|
||||
<Message ID="EmulatorShortcutMappings_InputBarcode">Input Barcode</Message>
|
||||
<Message ID="EmulatorShortcutMappings_VsServiceButton">VS - Сервісна кнопка</Message>
|
||||
<Message ID="EmulatorShortcutMappings_MoveToNextStateSlot">Наступний слот для збережень</Message>
|
||||
<Message ID="EmulatorShortcutMappings_MoveToPreviousStateSlot">Попередній слот для збережень</Message>
|
||||
@ -782,6 +783,7 @@
|
||||
<Message ID="EmulatorShortcutMappings_ToggleOsd">Переключити OSD (Екранне меню)</Message>
|
||||
<Message ID="EmulatorShortcutMappings_ToggleBackground">Переключити Background</Message>
|
||||
<Message ID="EmulatorShortcutMappings_ToggleSprites">Переключити Sprite Layer</Message>
|
||||
<Message ID="EmulatorShortcutMappings_ToggleKeyboardMode">Toggle Keyboard Mode</Message>
|
||||
<Message ID="EmulatorShortcutMappings_MaxSpeed">Переключити максимальну швидкість</Message>
|
||||
<Message ID="EmulatorShortcutMappings_LoadRandomGame">Завантажити випадкову гру</Message>
|
||||
<Message ID="EmulatorShortcutMappings_SaveStateSlot1">Save State - Slot 1</Message>
|
||||
|
@ -74,6 +74,7 @@ namespace Mesen.GUI.Forms.Config
|
||||
EmulatorShortcut.ToggleSprites,
|
||||
EmulatorShortcut.ToggleCheats,
|
||||
EmulatorShortcut.ToggleAudio,
|
||||
EmulatorShortcut.ToggleKeyboardMode,
|
||||
|
||||
EmulatorShortcut.MaxSpeed,
|
||||
EmulatorShortcut.IncreaseSpeed,
|
||||
|
@ -1524,6 +1524,7 @@ namespace Mesen.GUI
|
||||
ToggleAudio,
|
||||
ToggleFastForward,
|
||||
ToggleRewind,
|
||||
ToggleKeyboardMode,
|
||||
|
||||
RunSingleFrame,
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user