Legacy Game Input Emulation Using Cached Basic Block Translation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Legacy games are not compatible with modern gaming systems due to architectural differences between legacy and updated machines, leading to security issues and inefficiencies in execution and processing.
Innovation Solution
A system and method that converts legacy game code into intermediate code using a basic block compiler, caching and executing these blocks to emulate user input, allowing modern machines to play legacy games by parsing and compiling instructions on demand.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If legacy games are emulated on modern systems, then accessibility and user base are improved, but input compatibility and control accuracy deteriorate
Solution Approach 1:
An input translation layer is introduced between modern input devices and legacy games. This intermediary component captures input from modern devices (gamepads, keyboards, touchscreens) and translates it into the original input formats expected by legacy games, thereby maintaining control accuracy while enabling accessibility across diverse platforms.
Solution Approach 2:
The system dynamically adjusts input parameters such as button mappings, axis sensitivity, and input timing based on the specific legacy game being emulated. By changing these parameters to match the original game's input specifications, the system preserves control accuracy while adapting to modern hardware capabilities.
2Adaptability or versatility
If input translation layer is added, then input compatibility is improved, but system complexity increases
Solution Approach 1:
The input translation layer is designed as a universal interface that handles multiple input device types (gamepads, keyboards, touchscreens, motion controllers) through a single standardized system. This multi-functional approach improves input compatibility across devices while avoiding the complexity of implementing separate translation mechanisms for each device type.
Solution Approach 2:
The system automatically detects the type of input device being used and configures the appropriate translation parameters without requiring manual setup or complex configuration files. This self-service capability simplifies the user experience while maintaining comprehensive input compatibility.
3Ease of operation
If input mapping is customized, then user experience is improved, but configuration complexity increases
Solution Approach 1:
The system pre-configures input mappings for a wide variety of common input devices and game titles before the user needs them. These preliminary configurations are stored in a database and automatically selected based on the detected game and device combination, providing a good user experience without requiring users to perform complex configuration tasks.
Solution Approach 2:
The input mapping system is dynamic and allows users to adjust mappings in real-time during gameplay. Users can remap buttons and controls on-the-fly without leaving the game or accessing complex configuration menus, thereby improving ease of operation while keeping the configuration interface simple.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
A method for emulation of user input during a play of a legacy game is described. The method includes receiving a user input from the updated hand-held controller and parsing the user input to identify an updated input device of the updated hand-held controller. The method further includes determining, based on the identity of the updated input device, an identity of a legacy input device of a legacy hand-held controller. The method includes determining whether one or more blocks of code for servicing a functionality of the legacy input device of the legacy hand-held controller are cached, and accessing one or more instructions of a legacy game code of the legacy game upon determining that the one or more blocks of code are not cached. The method includes compiling the one or more blocks of code from the one or more instructions of the legacy game code.