AoT Compiler for Legacy Game Code Execution

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Legacy games are incompatible with modern machines due to security issues and architectural differences, preventing their execution and requiring recompilation on each machine, leading to inefficiencies and increased processing power usage.

Innovation Solution

An ahead-of-time (AoT) compiler that scans, decodes, and translates legacy game code into updated code, creating compiled blocks that can be executed on modern machines, allowing for efficient execution and reduced processing power requirements by caching valid blocks and dynamically compiling only invalid ones.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If legacy game code is executed directly on modern machines, then the game can be played, but security issues and architectural differences prevent execution

Engineering Contradiction:
Improveexecution compatibilityVSAvoidmachine compatibility
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The patent applies preliminary action by performing ahead-of-time (AoT) compilation of legacy game code into updated machine code before execution. The compiler translates legacy executable code into updated source code and compiles it to updated compiled code in advance, storing it in a cache. This pre-processing resolves security and architectural incompatibilities before the game runs on modern machines, enabling reliable execution without direct legacy code interpretation.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent uses an intermediary approach by introducing a compilation and caching system between the legacy game code and the modern machine execution environment. The AoT compiler acts as a mediator that translates legacy code into an intermediate updated source code format, which is then compiled into updated machine code suitable for modern architectures. This intermediary layer resolves the incompatibility without requiring direct execution of legacy code on modern hardware.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If legacy code is recompiled on each machine, then execution is possible, but processing power usage increases and inefficiencies occur

Engineering Contradiction:
Improvemachine portabilityVSAvoidprocessing power consumption
Core Design Contradiction:
Adaptability or versatilityVSUse of energy by moving object

Solution Approach 1:

The patent eliminates repeated compilation by performing the compilation action in advance. The AoT compiler compiles legacy game code into updated machine code before distribution, and the compiled code is cached on modern machines. When the game is executed, the pre-compiled code is directly used without recompilation, significantly reducing processing power consumption while maintaining machine portability through the cached updated code.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent uses copying by creating and storing updated compiled code copies in a cache on modern machines. Instead of recompiling legacy code on each machine, the system copies the pre-compiled updated code to the target machine's cache. This copying approach preserves machine adaptability while avoiding the energy-intensive recompilation process, as the cached copy can be directly executed.

Inventive Principle:
Principle #26Copying

3Reliability

If all basic blocks are checked for invalidity, then execution accuracy is improved, but latency in displaying virtual environment increases

Engineering Contradiction:
Improvecode execution accuracyVSAvoiddisplay latency
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent applies partial action by checking only those basic blocks that are marked as invalid rather than checking all basic blocks for invalidity. The system identifies and validates only the specific blocks that require verification, leaving already-valid blocks unchecked. This selective validation maintains execution accuracy for critical blocks while reducing overall validation time and display latency.

Inventive Principle:
Principle #16Partial or excessive action

Solution Approach 2:

The patent uses preliminary action by marking basic blocks as invalid or valid during the compilation phase before execution. This pre-marking allows the execution system to skip validation of known-valid blocks and focus only on marked-invalid blocks, reducing runtime latency while maintaining accuracy through pre-established validation states.

Inventive Principle:
Principle #10Preliminary action

4Productivity

If two or more instructions are combined into one basic block, then execution speed is improved, but code complexity increases

Engineering Contradiction:
Improveexecution speedVSAvoidcode structure complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent applies merging by combining two or more instructions into single basic blocks during the compilation process. The AoT compiler consolidates multiple legacy instructions into optimized basic blocks that execute as unified units on modern machines. This merging increases execution speed by reducing instruction overhead and improving processor efficiency, while the compiler manages the resulting structural complexity through systematic code organization.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS11900136B2AoT compiler for a legacy game
Publication Date: 2024.02.13 SONY INTERACTIVE ENTERTAINMENT LLC
  • US11900136B2 patent drawing
  • US11900136B2 patent drawing
  • US11900136B2 patent drawing

AI summary

A method for ahead of time (AoT) compiling during a play of a legacy game is provided. The method includes scanning a memory device for an executable code of the legacy game, decoding the executable code, and translating the executable code into a first source code. The method further includes compiling the first source code to output a first compiled code, determining whether a user input during the play of the legacy game is received, and determining whether a fiber for servicing the user input is created. The fiber provides directionality of execution between the first compiled code and a second compiled code. The method includes executing the fiber in response to determining that the fiber for servicing the user input is created. The fiber is executed to generate one or more image frames of the legacy game.