Commit graph

16 commits

Author SHA1 Message Date
Matthew Berry
4001dae0b8 Refactor Config to allow temporary command-line overrides 2022-01-11 21:27:34 -08:00
Matthew Berry
2ed4868973 minor frontend cleanup 2021-07-31 16:16:33 -07:00
Matthew Berry
e047f42f73 allow emulator to be started without rom, clear settings between roms
Had to refactor a decent bit in order to support running the program
without a running emulator. Now will open with the menu bar selected to
help indicate that a rom should be opened. Some day it might be nice to
just render something into vram to show on the screen instead, but
that's a future issue.

Also added screen clearing between frames, although this might break
blending. Will need to revisit. This allows imgui to render properly
when no emulator is rendering, though.

Finally, I made it clear settings between roms, since the options for
syncing, blending, etc were getting out of sync with the actual state of
the emulator. In the future, I should make sure that these are tied into
actual emulator state.
2021-06-22 19:12:37 -07:00
Matthew Berry
f5d60285cd file explorer that lets you open both gb and gba games from the same program 2021-06-18 17:39:50 -07:00
Matthew Berry
fca039bd12 refactor out frontend to drive the emu frame-by-frame, add pause/sync
Now the Frontend drives the Emu, which is wrapped with an Accessor which
will eventually define which actions are available per Emu, and wrap
around calls into that Emu.

Added the ability to pause and toggle audio syncing from the menu bar.
2021-06-16 19:39:37 -07:00
Matthew Berry
c7bc2c31f9 very minimal imgui frontend 2021-06-11 08:50:21 -07:00
Matthew Berry
a8ed1e7f6b simplified cli, made tests run headless again 2021-05-13 22:49:21 -07:00
Matthew Berry
f6fdd071d1 abstract common keyboard input between emus 2021-05-08 01:08:16 -07:00
Matthew Berry
26d747801d Moved CryBoy into the crab codebase, along with all associated changes
The next step will be abstracting features between the two, like the
scheduler, apu, display, and anything else than can be abstracted. Once
this is abstracted, I can go back to trying to fix the CryBoy APU that
started having trouble once it was on the scheduler. This will ensure
consistency between the two projects.
2021-05-06 00:29:04 -07:00
Matthew Berry
df4ce8540e dma audio is actually playing the correct sounds! 2020-12-27 20:35:34 -08:00
Matthew Berry
3b7e0448c9 run through normatt's bios successfully, print unmapped mmio/ppu read/writes to stdout
simply comment out the default PC value to run the bios. I've left it
disabled because that's not the source of my inaccuracy, and it's
annoying to look at every time :p
2020-11-15 23:32:06 -08:00
Matthew Berry
2a43b20797 bump bitfield version, add post_init to force all components to init at start 2020-10-21 22:19:32 -07:00
Matthew Berry
da624104fd support adding bios (necessary for interrupts) 2020-10-20 08:25:26 -07:00
Matthew Berry
fc9f3d3035 very basic ppu, passing tonc first.gba 2020-10-02 23:30:14 -07:00
Matthew Berry
e9a1acb52a move cpsr onto new bitfield implementation 2020-09-23 08:21:56 -07:00
Matthew Berry
069a536085 initial commit: load cartridge, parse instr types 2020-08-22 00:15:30 -07:00