Rekai Nyangadzayi Musuka
601e717850
chore: reimplement bus read/writes
2022-10-21 05:12:33 -03:00
Rekai Nyangadzayi Musuka
886b9abf3d
fix: force align reads/writes in memory bus rather than in CPU
2022-10-21 05:12:32 -03:00
Rekai Nyangadzayi Musuka
9c87b9820e
fix: pass none.gba and kind of sram.gba from jsmolka test suite
2022-10-21 05:12:32 -03:00
Rekai Nyangadzayi Musuka
677eecad41
chore: rewrite read/write methods for remainig Bus devices
2022-10-21 05:12:32 -03:00
Rekai Nyangadzayi Musuka
74b6fa2ecc
chore: mirror VRAM
2022-10-21 05:12:31 -03:00
Rekai Nyangadzayi Musuka
effb6315e9
chore: write generic read/write for VRAM
2022-10-21 05:12:31 -03:00
Rekai Nyangadzayi Musuka
147f6ac9ec
Revert "chore: tick on memory access instead of 1cpi"
...
This reverts commit 7f555095f2
.
2022-10-21 05:12:30 -03:00
Rekai Nyangadzayi Musuka
84273cbdad
chore: tick on memory access instead of 1cpi
2022-10-21 05:12:30 -03:00
Rekai Nyangadzayi Musuka
f12800f2d0
chore: stub more apu I/O addresses
2022-10-21 05:12:30 -03:00
Rekai Nyangadzayi Musuka
ad9463dcb9
feat: implement SRAM saving and loading
2022-10-21 05:12:29 -03:00
Rekai Nyangadzayi Musuka
5ecbcc9f33
fix: implement proper SRAM mirroring and stub Flash
2022-10-21 05:12:28 -03:00
Rekai Nyangadzayi Musuka
2d16e4a4e6
chore: move DMA and Timers from io to bus
2022-10-21 05:12:28 -03:00
Rekai Nyangadzayi Musuka
bb9dc45e0c
feat: define APU registers
2022-10-21 05:12:27 -03:00
Rekai Nyangadzayi Musuka
a768d28e7c
chore: organize io switch statements
2022-10-21 05:12:26 -03:00
Rekai Nyangadzayi Musuka
efd99f16e0
fix: mirror SRAM
...
SRAM is mirrored in 64K chunks
TODO: According to GBATEK SRAM chips are 32K and mirrored
2022-10-21 05:12:26 -03:00
Rekai Nyangadzayi Musuka
61d6288fec
chore: don't panic on unknown bus and io writes/reads
...
This will lead to emulation bugs due to devices I've yet to implement but by
doing this a lot of games become playable "by default" such as Doom or
Kirby: Nightmare in Dream Land.
When implementing feature and/or debuggin make sure to set:
panic_on_und_bus and panic_on_und_io to true so that the emu crashes
on unknown reads/writes
2022-10-21 05:12:26 -03:00
Rekai Nyangadzayi Musuka
e3e45cd129
feat: implement Timers
2022-10-21 05:12:26 -03:00
Rekai Nyangadzayi Musuka
d54e593276
chore: clean up io
2022-10-21 05:12:25 -03:00
Rekai Nyangadzayi Musuka
d4c7cfdf8b
feat: impelement a barebones SRAM
2022-10-21 05:12:23 -03:00
Rekai Nyangadzayi Musuka
d1fce8ba75
chore: improve Bus log + panic messages
2022-10-21 05:12:22 -03:00
Rekai Nyangadzayi Musuka
4afcbd0957
feat: implement mirroring for IWRAM EWRAM, OAM and PALRAM
...
Also realized I confused IWRAM and EWRAM. This is also fixed
TODO: Implemnt Mirroring for VRRAM
2022-10-21 05:12:22 -03:00
Rekai Nyangadzayi Musuka
acf1a10f91
chore: don't panic on 32-bit I/O
2022-10-21 05:12:21 -03:00
Rekai Nyangadzayi Musuka
223a3403c0
chore: give io read/write functions access to the entire Bus
2022-10-21 05:12:20 -03:00
Rekai Nyangadzayi Musuka
bfdad9fa32
feat: implement OAM
2022-10-21 05:12:19 -03:00
Rekai Nyangadzayi Musuka
603e4b6fdf
chore: make use of scoped logging
2022-10-21 05:12:18 -03:00
Rekai Nyangadzayi Musuka
8006ca31e6
chore: remove unnecessary @as calls
2022-10-21 05:12:16 -03:00
Rekai Nyangadzayi Musuka
17b91db2ef
feat: integrate zig-clap with ZBA
2022-10-21 05:12:13 -03:00
Rekai Nyangadzayi Musuka
52493831cc
chore(io): implement IE and IME
2022-10-21 05:11:54 -03:00
Rekai Nyangadzayi Musuka
97e663febf
fix(bus): remove accidental recursion
2022-10-21 05:11:54 -03:00
Rekai Nyangadzayi Musuka
670347d4a0
feat(bus): implement IWRAM and EWRAM
2022-10-21 05:11:53 -03:00
Rekai Nyangadzayi Musuka
2cec8d9f70
chore: improve code clarity
2022-10-21 05:11:51 -03:00
Rekai Nyangadzayi Musuka
036b861b05
chore: code cleanup
2022-10-21 05:11:50 -03:00
Rekai Nyangadzayi Musuka
880546468c
chore(bus): refactor bus.zig
2022-10-21 05:11:50 -03:00