Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
Tags
(+1)

The short answer is: a made my own engine to do this and it is complicated.

As a long answer, here's a basic overview:

  • The game as it stands is just a GBA game written in Rust (actually the game code is transpiled from AssemblyScript, but "basic overview"), I use my own HAL (hardware abstraction layer, a library providing functions and data structures for talking to the hardware), but there are plenty of resources out there on how this can be done.
  • For most other platforms (MS-DOS version excluded) the idea is the following: The game being Rust code means I could just recompile the whole thing, however the HAL normally makes that impossible. So I reimplement this HAL through software emulation, in a similar way to normal GBA emulators for things like screen drawing and sound channels. The game code however is natively compiled so I don't need CPU emulation, which tends to be the hardest and slowest part for the GBA. So it's somewhere between just packing the game with an emulator and doing a proper port.
  • On top of this I then have a slightly more conventional engine that allows for things like drawing tile maps and sprites to make things more viable for a jam, because the GBA hardware, whilst insanely simple compared to modern systems, is still a bit of a pain to work with sometimes.