Play GBA games from IPFS


This project is not complete and we created just to test the functionalities of IPFS. This project lets users play GBA games from rom files store on IPFS. It also has a ERC721 factory where people can wrap GBA games into NFTs and potentially fetch the game from NFT tokens. We are using GBA emulator and GBA roms as an example to demonstrate that potentially digital games can be wrapped into NFTs and can be traded and played in browser. However, there must be a robust copyright encoding system for ipfs file and a game decoding emulator system for this concept to work.

How it's made

Ipfs for rom file storing, solidity contract for erc721 token minting. The most hacky part of this project is probably how the rom file from IPFS is loaded into GBA emulator. We use ipfs.cat to retrieve the rom file in the uint8array format, convert it into arraybuffer and then convert it into new Blob and then feed into the emulator via new Filereader. Since we are using an opensource emulator, GBA.js, so we did not optimize the code for the file conversion part and just treated loading rom from ipfs to the emulator as if it was reading an uploaded file from the user device.