🎮On-Chain SNES

We Built a Custom Super Nintendo Emulator for Bitcoin Ordinals and Inscribed It Fully On-Chain

Disclaimer: The ROMs showcased in this video were obtained legally as backup copies of games that the author personally owns and were not inscribed. Only public domain ROMs were inscribed on Bitcoin.

Our emulator is based on webretro, a WebAssembly port of RetroArch/Libretro, and it's Snes9x core. Our team designed custom JavaScript code to eliminate unnecessary functions and ensure a seamless integration with the Bitcoin Ordinals environment.

The features and benefits of this emulator include:

  1. Two-Player Support: Mirroring the original SNES, this emulator includes support for two players. This allows for cooperative or competitive gameplay and recreates the classic multiplayer experience of the SNES.

  2. Custom Controls and Gamepad Compatibility: The emulator enables users to tailor game controls for a two-player setup, offering flexibility in assigning preferred keys for an enhanced gaming experience. It also supports modern gamepads, leveraging the browser's gamepad API for a more authentic feel, ideal for both single-player and two-player games. This customization ensures that each player can enjoy the games comfortably, whether using a keyboard or a gamepad.

  3. No Installation Required: Unlike traditional emulators that require downloading and installing software, this emulator can be accessed directly through the web. This ease of access simplifies the process for users to start playing games.

  4. Cross-Platform Compatibility: Being browser-based, the emulator can run on various platforms such as Windows, macOS, Linux, and even mobile operating systems, as long as the device has a compatible web browser. This universality eliminates the need for specific operating system support.

  5. WebAssembly Performance: WebAssembly allows the emulator to run at near-native speed, which is crucial for accurately emulating the hardware of the SNES. This means games can run smoothly and with a high degree of accuracy compared to the original console.

  6. Security and Safety: Running in a sandboxed environment, the emulator offers a secure way to play games without the risks associated with downloading and installing software, which might contain malicious code.

  7. Accessible Code on Bitcoin: While not managed as a traditional open-source project, all of the code for our browser-based emulator is available on the Bitcoin network. This approach allows anyone to access, learn from, and utilize the code in their own projects. By making the code publicly accessible on Bitcoin, we encourage a form of decentralized contribution and learning, facilitating the use and adaptation of our work in various independent projects.

v2 Ideas

We are currently exploring the potential of additional features for the next version of this emulator, including:

  1. Save States and Local Storage: We hope to implement save states, a feature that allows players to save and load their game progress at any point. This feature would enable the saving of game data directly to one's computer, inscribing saved game states on Bitcoin, and loading saved states either from inscriptions or from local files.

  2. Networking Capabilities for Online Multiplayer: We're exploring the potential to utilize WebRTC for online multiplayer features. While there are significant UX challenges with this given the current infrastructure, we think it would be super cool to allow players to engage in remote multiplayer gameplay with others via inscriptions.

  3. Customizable Settings for Enhanced User Experience: We also aim to provide users with the ability to customize various settings, including audio, video output, and input configurations. This customization would cater to personal preferences and device specifications, allowing for adjustments such as scaling graphics to different screen sizes and fine-tuning audio settings for an optimal gaming experience.

Last updated