Commit graph

294 commits

Author SHA1 Message Date
Matthew Berry
8676c3824d ignore cimgui dylib 2021-07-10 17:19:45 -07:00
Matthew Berry
d85e358c54 fix Minish Cap saves (compat with mGBA), write EEPROM save files 2021-07-05 02:04:33 -07:00
Matthew Berry
79d9a75649 eeprom size detection 2021-07-05 00:36:48 -07:00
Matthew Berry
4ce01591ee passing dennis' eeprom tests 2021-07-02 18:02:16 -07:00
Matthew Berry
e5ec0eab9f hide "Select BIOS" when no emulator is running 2021-06-29 20:22:35 -07:00
Matthew Berry
dd87534e8d start to a debugger frontend for the gba 2021-06-29 08:46:33 -07:00
Matthew Berry
bcd9658fb2 default gbc to no bios 2021-06-28 19:48:59 -07:00
Matthew Berry
2a4c7f9ee5 all setting gba and gbc bios 2021-06-27 17:02:34 -10:00
Matthew Berry
bd7e588fdd refactor file explorer to parse extensions/hidden entries on render 2021-06-27 16:22:55 -10:00
Matthew Berry
6b516a6567 moved sync under new emulator menu 2021-06-23 17:53:18 -10:00
Matthew Berry
35b593d95e add basic configuration and default gba bios 2021-06-23 16:18:52 -10:00
Matthew Berry
fb8c4f2d60 remove blending until it can be re-implemented properly 2021-06-23 11:09:37 -10: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
c940dfbf00 got rid of ability to filter by extension
it did not provide much
2021-06-18 20:38:22 -07:00
Matthew Berry
fa7f2901e4 compile and use the correct shader program per emulator 2021-06-18 18:39:57 -07:00
Matthew Berry
97d4f1d5bb added breadcrumbs, hidden files, and disabling extensions to file explorer 2021-06-18 17:42:16 -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
3b71156bd3 fix timing of thumb ldmia writeback 2021-06-06 12:46:50 -07:00
Matthew Berry
e706c5f64f updated readme gif and added cryboy gifs to readme dir 2021-05-28 00:31:15 -07:00
Matthew Berry
1372453133 remove unused variable and one extra call to to_u32 2021-05-27 00:09:34 -07:00
Matthew Berry
92c33f5872 fix fps calculation causing crashes above 2148 fps 2021-05-26 00:07:21 -07:00
Matthew Berry
71131ac86a increment affine reference points before hdma
This alone seems to fix Golden Sun. Many games like Gadget Racers still
don't work, but this seems to be a closer approximation of "correct".
Finally, the best game for the GBA is playable... I'm sad that this was
all it took to "fix" lol.
2021-05-25 00:23:34 -07:00
Matthew Berry
7b114029a9 make all ppu regs use read__byte and write_byte 2021-05-24 22:49:19 -07:00
Matthew Berry
2f983c5045 use better variable names in reg bg render func 2021-05-23 14:47:44 -07:00
Matthew Berry
65ea773adb removed redundant util files 2021-05-21 15:18:25 -07:00
Matthew Berry
00e7795e6f update readme to reflect addition of cryboy codebase 2021-05-19 01:12:15 -07:00
Matthew Berry
6d00710121 touched up tmcnt read logic slightly 2021-05-18 21:05:55 -07:00
Matthew Berry
026b86c891 add minor docs to thumb move shifted reg 2021-05-17 21:04:54 -07:00
Matthew Berry
d5c06fef98 thumb load address does not need set_reg 2021-05-16 21:03:43 -07:00
Matthew Berry
cf804e723c applied formatter to whole project 2021-05-15 00:04:54 -07:00
Matthew Berry
8ccb8cb31b clear the bottom bits of IF properly 2021-05-14 23:41:49 -07:00
Matthew Berry
a8ed1e7f6b simplified cli, made tests run headless again 2021-05-13 22:49:21 -07:00
Matthew Berry
9e2f742d1d make graphics tests output the correct colors, fix dmg colors 2021-05-12 01:00:37 -07:00
Matthew Berry
f2151a0a25 move gb color correction to gpu, unify display logic for gb and gba 2021-05-11 00:47:32 -07:00
Matthew Berry
be81650f54 move gb display from rgb24 to bgr16 2021-05-10 03:18:43 -07:00
Matthew Berry
8b6f300f67 simplify arm branch exchange logic 2021-05-09 23:48:23 -07:00
Matthew Berry
bdda6b0509 copied over cryboy tests and made them run again 2021-05-08 22:25:21 -07:00
Matthew Berry
f6fdd071d1 abstract common keyboard input between emus 2021-05-08 01:08:16 -07:00
Matthew Berry
fceb5ee988 abstract scheduler between gb and gba 2021-05-07 16:30:19 -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
b8a7fc1428 simplify register rotates a little bit 2021-05-02 19:08:06 -07:00
Matthew Berry
655bd67855 use the offest field of bgofs rather than the value directly 2021-05-01 12:40:43 -07:00
Matthew Berry
c584c29fd6 support halting + fast-forwarding the scheduler on halt
this improves performance dramatically in games that utilize halting, including pokemon ruby and golden sun. in both games, framerate was doubled or trippled in many cases
2021-04-29 23:50:48 -07:00
Matthew Berry
b8c64fa69d pull out repetitive logic from scanline loops, saving some fps 2021-04-29 23:40:54 -07:00
Matthew Berry
d92d37e875 add vdma 2021-04-22 22:14:54 -07:00
Matthew Berry
c57bb1e4bf abort on swap halfword transfers 2021-04-01 23:18:58 -07:00
Matthew Berry
6f7f10d292 add optional interframe blending with m key 2021-03-31 00:26:10 -07:00
Matthew Berry
09481ae54d clean up affine screen entry logic 2021-03-12 00:34:05 -08:00