aboutsummaryrefslogtreecommitdiff
path: root/arm9/source/core.c
Commit message (Collapse)AuthorAge
* Massive rewriteBen Bridle2025-09-19
| | | | | | | | | | | | | | | This commit rewrites the emulator halfway from scratch to make it easier to change and maintain in the future. The emulator core was rewritten to adhere to the released Bedrock specification (earlier versions implemented an older prototype specification, which is no longer relevant). This commit also adds proper support for running multiple concurrent Bedrock instances. This was previously supported in a limited manner for the on-screen keyboard, but now works for any regular program as well, with switching being performed by pressing the L or R bumper buttons. This is disabled by default, as programs will still need to be baked into the emulator and hand-loaded.
* Increase cycles evaluated at a time to 65536Ben Bridle2024-12-16
| | | | | Evaluating a greater number of cycles at a time reduces the overhead caused by the Bedrock instance management code.
* Implement a toggleable keyboard on the lower screenBen Bridle2024-12-16
|
* Prevent overzealous resetting of Bedrock instancesBen Bridle2024-11-22
| | | | | | | A Bedrock instance contains some data which should not be erased, such as the buffer contents for the system name and system author ports, and the identifier for the memory device. This has been stubbed out for now, since it isn't yet needed.
* Implement file deviceBen Bridle2024-11-22
| | | | | | | There is still a small amount of work to be done on the file device: - Read file size only when requested - Hide '.' and '..' directories - Resize files
* Implement name and author ports in system deviceBen Bridle2024-11-22
|
* Simplify clock device implementationBen Bridle2024-11-22
| | | | | Two pairs of generic get/set functions now do the role of the previous pair of custom get/set functions for each timer.
* Implement memory deviceBen Bridle2024-11-19
| | | | | | | | | | | | | The memory device is fully implemented, with 3MB of heap memory. This commit is a bit messy, additional changes are: - The program memory and program counter in each Bedrock struct have been moved to a dedicated struct to prevent a name collision with the memory device - The run_bg and debug functions have been moved to core.c and debug.c - The blank screen colour has been changed back to black - No second program runs on the sub screen by default - The number of Bedrock instances to run has been parameterized
* Initial commitBen Bridle2024-11-18