Commit graph

6 commits

Author SHA1 Message Date
Lokathor 5de0f5e9f2 cleanup, make MIR inlining work in dev 2022-12-01 19:13:31 -07:00
Lokathor 08824f1400 fix config 2022-10-04 23:51:31 -06:00
Lokathor bf853b71d6
v0.7.0-remake (#168)
* Literally clear the repo to nothing for starters

* The screen color changes with key presses

There's enough code here that the screen color can change when you press the keys. Right now it's most all unsafe code directly in the example file. The strange thing is that llvm is making us define atomic helper functions when it's not supposed to do that, so we need to investigate more before proceeding too much.

* can't tell if this is broken or if mgba is busted on mac

* unix dumper

* don't panic

* oops

* GbaCell into its own file, also i had broken the rt irq handler.

* closer to an acceptable demo.

* make IrqFn into just an alias.

* wrap most current mmio types.

* more stuff

* Use paste to remove a whole bunch of repetition (#166)

* gba cells are "unwind safe", they can't be in a bad intermediate state, that's the point

* Once again we must thank Yandros for saving us from ourselves.

* assembly updates.

* oops

* finish video MMIO basics, no docs yet.

* small note.

* simplify asm irq handler stack usage.

* ewram support.

* more cell stuff.

* Remove the non-Zlib dependency, sorry Sp00ph :(

* add proper dma support.

* small docs improvement.

* bitmap and oam declarations

* more macros

* single bit constants will be extremely useful

* add `IntrWait`

* rename for clarity

* improvements

* use the new constant

* improve sound support

* timers

* key support

* add a prelude module.

* fix doc

* more and more assembly (mem fns will need global_asm probably)

* more comments.

* comment updates.

* readme

* more video support, and put IrqFn alias into interrupts module.

* finish working in the EABI code.

* CI config.

* funding file.

* rustc plz inline these functions when you can :3

* "rt0" is unnecessarily cryptic

* overhaul the readme.

* phrasing

Co-authored-by: Sp00ph <61327188+Sp00ph@users.noreply.github.com>
2022-09-27 10:40:05 -06:00
Lokathor fd3a308e8a
remove proc macro usage and finish out the mmio (#125)
* .

* more updates, much more to do soon.

* hello world works again.

* fix key interrupts.

* remove the old book

* don't forget timers.

* we can just use search, duh.

* cleanup

* more bios

* finished most mmio, finished bios.

* dump some old macros that shouldn't have been pub to begin with.

* Update README.md

* for now, just make this a u16

* timers

* fix hello_world

* timer fix

* docs on timers

* block resetting work ram for now.

* put preserves_flags on bios calls as appropriate

* add a code page 437 tile sheet.

* docs.

* sound :( it's all bad but we'll fix it in 0.5

* move most backup files back into the lib.

* CI might work now?

* fix up non-serial examples.

* oops, gotta check out the repo.

* readme.
2021-04-08 23:57:30 -06:00
Neil P 5114f89448
Simplify build process (#106)
* Simplify build process

- Remove dependencies on DevkitPro
- Use linker similarly to min-gba
- Update cargo.toml so that dev builds will build
- Update cargo config so that std builds can run without the linker for
  testing purposes
- Update CI flow to remove xbuild dependency

* Add windows toolchain install

* Add windows section to toolchain install instructions
2021-02-20 11:49:40 -07:00
Michael Mogenson d52d627113
Remove cargo-xbuild dev dependency (#95)
* Remove cargo-xbuild dev dependency

As of Rust nightly 2020-07-15, we can set the default build target
and build-std feature of cargo instead of relying on cargo-xbuild.

Since the thumbv4-non-agb target is the default for all cargo commands,
change the Rust snippets in Makefile.toml to cross-platform duckscript.

The only uglyness we're left with is running the unit tests. We want to
build and run the tests on the host archetecture. Create three platform
overrides for Mac, Windows, Linux and set flags to override the default
target triple and build-std option.

* remove uneeded attribute

From cargo: "the feature `cfg_target_vendor` has been stable since
1.33.0 and no longer requires an attribute to enable"
2021-01-12 14:41:51 -07:00