A virtual machine specifically designed for video games, making retro console development easier by providing modern tools while respecting vintage hardware constraints.
Note: This project is in active development and not yet ready for production use.
GameVM requires:
- .NET 10 SDK (download)
- Java Development Kit (JDK) 21 or later (required for ANTLR tooling)
- Options: Eclipse Temurin, Microsoft Build of OpenJDK, or Amazon Corretto
- The build process will automatically handle ANTLR tooling
GameVM uses several testing strategies to ensure correctness:
- Unit Tests: NUnit tests for individual components (found in
src/UnitTests,src/GameVM.Compiler.Core.Tests, etc.). - BDD Tests: Scenario-based end-to-end tests using Reqnroll (found in
src/GameVM.Compiler.Specs). These tests cover language features, backend code generation, and behavior validation via MAME execution.
dotnet buildComprehensive documentation is available in the docs directory:
- Compiler Design - Toolchain, IRs, and implementation
- Standard Library & HAL - Developer APIs and libraries
- System References - Hardware specs and platforms
- Architecture - Strategy, testing, and lifecycle
For an overview of the project architecture and design principles, start with the Architecture Overview.
GameVM is currently in early development. The current focus is on building the core compiler infrastructure.
Contributions are welcome! Please see CONTRIBUTING.md for development setup and guidelines.
This project follows the Contributor Covenant.
This project is released under the Unlicense.