Commit Graph

432 Commits

Author SHA1 Message Date
Rekai Nyangadzayi Musuka 22fbe380eb chore: update dependencies 2022-10-21 05:12:57 -03:00
Rekai Nyangadzayi Musuka f2b27f31f4 chore: better conform to zig idioms 2022-10-21 05:12:57 -03:00
Rekai Nyangadzayi Musuka 867025b1ec chore: rename arm7tdmi variables to just cpu
Less verbose, specifying arm7tdmi doesn't really do much when there's
no other CPU in the system
2022-10-21 05:12:57 -03:00
Rekai Nyangadzayi Musuka 9b0f54b111 chore: allocate sprite array on heap
Each Sprite optional is 10 bytes meaning I'm allocating 1.28Kb on the
stack which isn't necessary.
2022-10-21 05:12:56 -03:00
Rekai Nyangadzayi Musuka 4cf58f1faa chore: improve init/deinit methods 2022-10-21 05:12:56 -03:00
Rekai Nyangadzayi Musuka 1a56f957c1 chore: reorganize some code 2022-10-21 05:12:56 -03:00
Rekai Nyangadzayi Musuka 1a4a2a56a3 chore: pass the allocator as an argument more often
As of right now, I think the only cases where I shouldn't explicitly pass an allocator
are in read/write functions and deinits
2022-10-21 05:12:56 -03:00
Rekai Nyangadzayi Musuka c701156ce6 fix: resolve use-afer-free in backup.zig
This worked fine on stage1, and works fine in debug in stage3.
However, stage3 ReleaseSafe would panic due to what I assume must
have been an undefined behaviour optimization.

While I'm happy that I was quickly made aware of the issue thanks to
the safety checks in ReleaseSafe I do wish that this issue showed itself
in Debug, since I *am* using the GPA
2022-10-21 05:12:56 -03:00
Rekai Nyangadzayi Musuka 4b6897aedf feat: Get ZBA working on Zig's new stage2/stage3 compiler 2022-10-21 05:12:55 -03:00
Rekai Nyangadzayi Musuka 1471288969 chore: move window scale const to emu.zig 2022-10-21 05:12:55 -03:00
Rekai Nyangadzayi Musuka 7488fd7fd5 fix: reimpl debug reads w/out throwing away *const Self 2022-10-21 05:12:55 -03:00
Rekai Nyangadzayi Musuka 20056eff2c chore: update dependencies: 2022-10-21 05:12:55 -03:00
Rekai Nyangadzayi Musuka 3f760fccaf feat: reimplement cpu logging 2022-10-21 05:12:55 -03:00
Rekai Nyangadzayi Musuka f833de765c chore: don't init bus in Arm7tdmi init 2022-10-21 05:12:55 -03:00
Rekai Nyangadzayi Musuka aa19ef5f71 feat: move arm instr decoding to module 2022-10-21 05:12:54 -03:00
Rekai Nyangadzayi Musuka f0284107f9 feat: move thumb instr decoding to module 2022-10-21 05:12:54 -03:00
Rekai Nyangadzayi Musuka 91c94fe528 chore: change directory structure 2022-10-21 05:12:54 -03:00
Rekai Nyangadzayi Musuka 45fc49b216 fix: reimplement halt fast-forwarding 2022-10-21 05:12:54 -03:00
Rekai Nyangadzayi Musuka 0939d6d7bc chore: move audio sync, video sync variables 2022-10-21 05:12:53 -03:00
Rekai Nyangadzayi Musuka e7b5410509 chore: update README.md 2022-10-21 05:12:53 -03:00
Rekai Nyangadzayi Musuka 2758e511ea chore: update SDL.zig 2022-10-21 05:12:53 -03:00
Rekai Nyangadzayi Musuka 46ee21f464 feat: impl WININ, WINOUT, WIN{N}H and WIN{N}V 2022-10-21 05:12:53 -03:00
Rekai Nyangadzayi Musuka 0287c9a260 fix: force align DMA transfers 2022-10-21 05:12:53 -03:00
Rekai Nyangadzayi Musuka 665767c250 fix: resolve bugs in VRAM unpredictable read/writes 2022-10-21 05:12:53 -03:00
Rekai Nyangadzayi Musuka 0fd8a13a93 fix: don't start HDMA in vblank 2022-10-21 05:12:52 -03:00
Rekai Nyangadzayi Musuka 125b931d0c feat: implement brightness increase/decrease 2022-10-21 05:12:52 -03:00
Rekai Nyangadzayi Musuka 27259c97db feat: implement object blending 2022-10-21 05:12:52 -03:00
Rekai Nyangadzayi Musuka 9479838614 feat: implement background alpha blending 2022-10-21 05:12:52 -03:00
Rekai Nyangadzayi Musuka 8a203ff05f feat: implement BLDCNT, BLDALPHA, BLDY 2022-10-21 05:12:52 -03:00
Rekai Nyangadzayi Musuka 39f71730e0 chore: update README 2022-10-21 05:12:52 -03:00
Rekai Nyangadzayi Musuka 33f993c19d chore: rename + remove some code 2022-10-21 05:12:51 -03:00
Rekai Nyangadzayi Musuka 18ec16eb6d fix: properly fire DMA IRQs
This resolves Sound DMA Timing issues present in DOOM
2022-10-21 05:12:51 -03:00
Rekai Nyangadzayi Musuka bf558922f9 chore: rename Dma.active to Dma.in_progress 2022-10-21 05:12:51 -03:00
Rekai Nyangadzayi Musuka e87bda7584 chore: rewrite info log message 2022-10-21 05:12:51 -03:00
Rekai Nyangadzayi Musuka 87dc70436c feat: implement NR10 obscure behaviour 2022-10-21 05:12:51 -03:00
Rekai Nyangadzayi Musuka 5dd78177f4 feat: handle all I/O when using Cult-Of-GBA BIOS 2022-10-21 05:12:51 -03:00
Rekai Nyangadzayi Musuka 203af4c471 chore: 32-bit reads for PSG audio 2022-10-21 05:12:50 -03:00
Rekai Nyangadzayi Musuka 98223d9e5a chore: implement more than just 1 cycle per mem access 2022-10-21 05:12:50 -03:00
Rekai Nyangadzayi Musuka e8cc0dfabb fix: implement register reads for Yoshi's Island 2022-10-21 05:12:50 -03:00
Rekai Nyangadzayi Musuka c8585a6f9a fix: reimplement DMA ticking 2022-10-21 05:12:50 -03:00
Rekai Nyangadzayi Musuka 7d79361aca chore(cpu): add inline fn isHalted() 2022-10-21 05:12:50 -03:00
Rekai Nyangadzayi Musuka d1d32e465c chore: attempt to debug Rhythm Heaven 2022-10-21 05:12:50 -03:00
Rekai Nyangadzayi Musuka 42c6b21124 fix: impl BG?{X,Y} RefPoint write behaviour outside of Vblank
With this fix Mode 7-like games now properly render their backgrounds
2022-10-21 05:12:49 -03:00
Rekai Nyangadzayi Musuka 44e1dacb7b chore: change priority of some logs 2022-10-21 05:12:49 -03:00
Rekai Nyangadzayi Musuka eeea8a6327 chore: mess with debug statements + mask APU I/O reads 2022-10-21 05:12:49 -03:00
Rekai Nyangadzayi Musuka 0a5df26c31 chore: move timer, apu and dma i/o addr matching outside of io.zig 2022-10-21 05:12:49 -03:00
Rekai Nyangadzayi Musuka d3bc58d71c chore: separate render code for affine sprites 2022-10-21 05:12:49 -03:00
Rekai Nyangadzayi Musuka 8d32d9788e chore: reimplement object rendering
TODO: implement affine sprites
2022-10-21 05:12:48 -03:00
Rekai Nyangadzayi Musuka b18f488b01 chore: small changes to normal background drawing code 2022-10-21 05:12:48 -03:00
Rekai Nyangadzayi Musuka 4b4242df2a feat: implement affine backgrounds 2022-10-21 05:12:48 -03:00