Commit graph

755 commits

Author SHA1 Message Date
Lokathor 8706c578b6 add repo to metadata. 2022-09-27 10:42:45 -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
Luna Mittelbach 380b3612b8
Cargo.toml: cargoflags -> cargo-args (#164)
Per https://docs.rs/about/metadata this hopefully fixes builds on docs.rs. Minor version bump so that docs.rs can pick up the new version from crates.io
2022-04-12 08:46:36 -06:00
Lokathor 5c5081ddc4
fix a critical typo 2022-01-10 15:40:11 -07:00
ShinySaana 456e4f4fc0
Include iwram section in linker script (#159) 2022-01-01 22:00:34 -07:00
Matt L 093146fd8a
Using asm and global_asm from core::arch module. (#157)
* Using asm and global_asm from core::arch module.

* Commenting out some broken code with higher registers.
2022-01-01 21:54:46 -07:00
ShinySaana 42e2836507
Use half-word write for WAITCNT access (#160)
Fixes Stub I/O warning in mGBA.
2022-01-01 12:40:21 -07:00
Lokathor 7471c0016d (cargo-release) version 0.5.2 2021-11-21 13:04:58 -07:00
Lokathor 28f81b51e4 JYN said this should work. 2021-11-21 13:04:45 -07:00
Lokathor 60ab38458c (cargo-release) version 0.5.1 2021-11-21 12:29:45 -07:00
Lokathor 81e557162c this should fix the docs.rs build issues. 2021-11-21 12:29:32 -07:00
Lokathor 37c4e82d71 (cargo-release) version 0.5.0 2021-11-11 20:22:32 -07:00
Lokathor b93589b8ac docs fix. 2021-11-11 20:07:22 -07:00
Lokathor 6c8213fed8
Update README.md 2021-07-09 10:27:02 -06:00
Lokathor 7df5f4737f
should work now (Nightly e4ca1662f 2021-05-22) (#149) 2021-05-23 19:07:26 -06:00
Alissa Rao 144dada16b
Added sound master control registers to mmio_addresses. (#144)
* Added sound master control registers to mmio_addresses.

* Merge FifioEnable into SoundStatus, reduce struct sizes.

* Rename SOUND_CHANNEL_CTL to something a bit simpler.
2021-05-23 16:41:11 -06:00
Hpmason ec0ca7d804
Add RNG (#142)
* Add random

* Add GBA random example

* switch macro_export to pub(crate)

* rename u32_to_u32 macro

* remove useless pub use

* Comment out extra u32 to u16 macro

* Comment random_color example

* formatting

* More commenting

* Add/fix some docs

* Fix some doc links

* Remove use of u64
- Halve bit widths where u64 was used

* Add Gen32::next_color()
2021-05-17 12:22:51 -06:00
Alissa Rao 2956493be9
Sets an initial WAITCNT in rsrt0.S (#147) 2021-05-17 12:00:05 -06:00
Alissa Rao 093edc703f
Bitfield fixes (#146)
* Fix incorrect bit for `chained_counting` field in TimerControl.

* Fixes incorrect bitfield manipulation math in mmio_types.
2021-05-17 11:50:42 -06:00
Lokathor 127f31ecf2 fix macros. 2021-05-01 19:45:55 -06:00
Lokathor 6a709689ed this is the commit that gave the ICE. 2021-05-01 18:38:52 -06:00
Lokathor 8f4847306d add rust toolchain file, Closes https://github.com/rust-console/gba/issues/139 2021-05-01 18:38:34 -06:00
Lokathor bff42750eb
Update README.md 2021-04-19 11:30:20 -06:00
Lokathor b071b8dbdf dumb. 2021-04-19 11:21:37 -06:00
Lokathor d0dc0306ee try just using cargo-publish on 0.4.0 2021-04-19 11:21:06 -06:00
Lokathor 8b1d2d2220 (cargo-release) start next development iteration 0.4.3-alpha.0 2021-04-19 11:20:10 -06:00
Lokathor 37e54e00e4 (cargo-release) version 0.4.2 2021-04-19 11:20:09 -06:00
Lokathor 43b231d5c9 (cargo-release) start next development iteration 0.4.2-alpha.0 2021-04-19 10:56:20 -06:00
Lokathor 27f95bb2a3 (cargo-release) version 0.4.1 2021-04-19 10:56:19 -06:00
Lokathor 9e8349c82e
palettes and oam (#137) 2021-04-16 15:01:38 -06:00
Lokathor d93facbaf4 fix wrapping math errors. Part of https://github.com/rust-console/gba/issues/129 2021-04-11 18:00:18 -06:00
Lokathor e595270bfe fix irq example, part of https://github.com/rust-console/gba/issues/129 2021-04-11 17:41:08 -06:00
Lokathor 0d21b4c899 add an example using the keypad. 2021-04-10 09:19:25 -06:00
Lokathor 6e6f4be709 fix color constructor, part of https://github.com/rust-console/gba/issues/129 2021-04-10 09:13:05 -06:00
Lokathor 12823a8b58 (cargo-release) start next development iteration 0.4.1-alpha.0 2021-04-09 00:13:58 -06:00
Lokathor d0d802d231 (cargo-release) version 0.4.0 2021-04-09 00:13:58 -06:00
Lokathor 703c837a21 Closes https://github.com/rust-console/gba/issues/86 2021-04-09 00:08:00 -06:00
Lokathor 9bca85264f Closes https://github.com/rust-console/gba/issues/70 2021-04-09 00:06:52 -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
Lokathor 8efef6ebc5
No more old book stuff (#123)
* stop with the book, we should focus on the crate.

* Update README.md

* Update README.md
2021-04-05 18:11:42 -06:00
Lokathor 99f80d2b9a update to release voladdress-0.4 2021-03-31 20:53:47 -06:00
Lokathor 3bcd64f28c
update to voladdress-0.4 (#120)
* update to voladdress-0.4 (via git)

* restore the imports rust-analyzer told me to break.
2021-03-31 20:22:42 -06:00
Lokathor 7b2a067aad
move to a tri-license (adds Zlib and MIT options) (#116) 2021-03-01 08:36:39 -07:00
Joshua Barretto c375b5ac7a
Added .iwram section (#118)
* Added .iwram section

* Use the same section for .data and .text_iwram
2021-02-28 12:09:49 -07:00
Alissa Rao 40ced658f3
Properly finish documentation for the save module. (#119) 2021-02-27 10:05:39 -07:00
Lokathor a1e1b4d320
prevent building the book
we might restore this later, but for now, no book.
2021-02-23 00:16:37 -07:00
Alissa Rao 79099d807b
Adds support for reading/writing to save media. (#109)
* Write some of the basic infrastructure for SRAM support.

* Implement battery-backed SRAM.

* Implement non-Atmel Flash chips.

* Implement support for Atmel Flash SRAM chips.

* Implement EEPROM support, various refactorings to SRAM system.

* Replace Save API with one based more cleanly on the flash chip API.

* Run rustfmt on new save media code.

* Improve test_savegame and fix remaining bugs caught by the changes.

* Proofreading on comments/documentation for save module.

* Fix addresses for read/verify routines in save::flash.

* Rebase save_api onto current master.
2021-02-22 23:19:37 -07:00
Alissa Rao 8bfa1a228a
Adds support for NO$GBA's debugging API. (#108)
* Implement a debugging interface that allows the use of debugging on multiple emulators.

* Implement NO$GBA debugging interface.

* Run rustfmt on new debug code.

* Fix the debug module not compiling on non-ARM systems.

* Don't error (and just silently truncate) on messages that are too long.
2021-02-22 23:19:14 -07:00
Alissa Rao 2aa59bb341
Implement a sync API for working with global mutable state. (#107)
* Add IntelliJ workspace files to the .gitignore.

* Add a simple make_example script for Linux.

* Create a `sync` module with many GBA-specific sync utilties.

* Fix overflow error in debug mode in the hello_world crate.

* Fixes to DMA.

* Code cleanup for the sync module.

* Run rustfmt on new sync code.

* Fix up some names and documentation in the sync module.

* Add a few changes suggested by thomcc for the locks.

* Added needed compiler fences to `InitOnce::try_get`.
* Change the error in `RawMutex::raw_unlock` to better reflect the cause.

* Add a proper issue link to the __sync_synchronize hack.

* Disable interrupts during `InitOnce::try_get`.

* Fix some bad wording in the comments for `InitOnce::try_get`

* Use the new target in `cfg` checks to see if we're on GBA.

* Change registers used for transfer_align4_arm for the different target.

* Cleanup on sync_api changes for the target change.
2021-02-21 16:57:26 -07: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