Giter Club home page Giter Club logo

Industry-advance

A GBA game more-or-less loosely intended as a demake of Mindustry (Changes planned largely due to technical limitations).

Build and run

The quickest way to get started under Linux/macOS is to use https://nixos.org/nix/ as a dev environment. Just run nix-shell in the project directory.

Once set up, all that's needed is to run git submodule init && git submodule update && cargo make assets && cargo make run-qt to clone the Mindustry submodule, build assets, build the game and start it in mGBA. Alternatively, cargo make assets && cargo make debug-run creates a debug build and launches it in mGBA, waiting for a GDB client to attach on port 2345 (you should strongly consider using our VScode debug config, as all the annoying setup has already been done for you there). cargo make assets && cargo make test runs the tests.

NOTE: If you change the Mindustry assets/the asset generation script you have to run cargo make assets manually. The process is manual because rebuilding them takes a long time.

HW resource map

When developing the game, please keep in mind which subsystems use which resources (and expect exclusive access to them). Otherwise, fun debugging will ensue.

  • IWRAM: Entirely used by static variables and the stack
  • EWRAM: Entirely used by the global allocator (heap)
  • OAM: Entirely managed by the HW sprite allocator
  • Sprite palette: Entirely managed by the HW sprite allocator
  • Background palette (slots 0-15): Used by the text engine
  • Background palette (slots 16-255): Entirely managed by the background system
  • Charblocks 0, 1: Entirely managed by the background system
  • Screenblocks 8-11: Entirely managed by the background system
  • Charblock 2: Entirely managed by the text engine
  • Screenblock 24: Entirely managed by the text engine
  • Screenblocks 25, 26: Used by instances of crate::menu::Window
  • Charblock 3: Unusable, as it overlaps the screenblocks we use
  • Windows: Entirely used by instances of crate::menu::Window
  • Backgrounds 0, 1: Used by background
  • Background 3: Used by text engine
  • Background 2: Used by windows

Further reading

industry-advance's Projects

gbfs_rs icon gbfs_rs

A small library for reading files out of GBFS (Gameboy Filesystem)-formatted data.

grit_read icon grit_read

Small rust library for reading GRF-formatted-data generated by the grit GBA graphics conversion tool

itertools icon itertools

Extra iterator adaptors, iterator methods, free functions, and macros.

nin10kit icon nin10kit

(Formerly brandontools) A set of tools for doing homebrew game development, includes look up table generators and and image to C exporter for Nintendo's Gameboy Advance, DS, and 3DS systems. In addition the GUI version of the program allows you to see what the image would look like on real hardware before exporting. Coming soon the ability to edit the bitmap/palette/tilemaps before exporting to the GBA.

tiny_riff icon tiny_riff

A tiny parser for RIFF files, primarily for embedded use.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.