Rekai Nyangadzayi Musuka
e6a0eab667
feat(cpu): implement THUMB format 17
2022-10-21 05:12:12 -03:00
Rekai Nyangadzayi Musuka
523b9d2736
feat(cpu): implement THUMB format11
2022-10-21 05:12:12 -03:00
Rekai Nyangadzayi Musuka
011d2f2f2a
chore: update to latest zig nightly
2022-10-21 05:12:11 -03:00
Rekai Nyangadzayi Musuka
c37546d273
chore: progress towards passing ldr/str thumb in armwrestler
2022-10-21 05:12:11 -03:00
Rekai Nyangadzayi Musuka
fbedebb938
fix(cpu): properly negate in NEG
2022-10-21 05:12:11 -03:00
Rekai Nyangadzayi Musuka
1773a3acc8
fix(cpu): reimplement THUMB offset shifts
2022-10-21 05:12:11 -03:00
Rekai Nyangadzayi Musuka
058c02150c
fix(cpu): op == 0b00 decodes to add in format 5
2022-10-21 05:12:11 -03:00
Rekai Nyangadzayi Musuka
8d841ead50
fix(cpu): account for overflow in THUMB alu MUL
2022-10-21 05:12:10 -03:00
Rekai Nyangadzayi Musuka
152dafbdf7
chore: use if-else when decoding THUMB instructions
2022-10-21 05:12:10 -03:00
Rekai Nyangadzayi Musuka
7dbd2fc556
fix(cpu): account for rn in rlist in block data transfer
2022-10-21 05:12:10 -03:00
Rekai Nyangadzayi Musuka
85e0924669
feat: implement LDM/STM behaviour when S is set
2022-10-21 05:12:10 -03:00
Rekai Nyangadzayi Musuka
97919f646d
feat(cpu): Pass all LDR/STR ARMwrestler tests
2022-10-21 05:12:10 -03:00
Rekai Nyangadzayi Musuka
696cc1b359
feat(cpu): decode and implement all necessary ARM CPU instructions
2022-10-21 05:12:10 -03:00
Rekai Nyangadzayi Musuka
151de2eab4
feat(cpu): implement ARM SWP and SWPB
2022-10-21 05:12:10 -03:00
Rekai Nyangadzayi Musuka
e7f6464564
fix: resolve off by n * 2 when accessing Palette during BG Mode 4
2022-10-21 05:12:09 -03:00
Rekai Nyangadzayi Musuka
da681c946e
feat(cpu): Implement Multiply Long ARM instructions
2022-10-21 05:12:09 -03:00
Rekai Nyangadzayi Musuka
e0e43eece5
fix: no buttons are pressed by default
2022-10-21 05:12:09 -03:00
Rekai Nyangadzayi Musuka
7013389288
feat(cpu): implement format 18 THUMB instructions
2022-10-21 05:12:09 -03:00
Rekai Nyangadzayi Musuka
443520ecae
chore: more detailed panic message
2022-10-21 05:12:09 -03:00
Rekai Nyangadzayi Musuka
96d7285111
feat(cpu): implement format 10 THUMB instructions
2022-10-21 05:12:08 -03:00
Rekai Nyangadzayi Musuka
7e6fc44191
feat(cpu): implement SWP
2022-10-21 05:12:08 -03:00
Rekai Nyangadzayi Musuka
9cb4ebaa7f
fix(cpu): perform MUL with u64s, throw away upper 32 bits
2022-10-21 05:12:08 -03:00
Rekai Nyangadzayi Musuka
3e4d7e7ed8
feat: implement keyboard input
2022-10-21 05:12:08 -03:00
Rekai Nyangadzayi Musuka
3a6951d93d
chore: don't panic on unsupported BG mode
2022-10-21 05:12:08 -03:00
Rekai Nyangadzayi Musuka
391096872e
chore: tempoarily disable fps counter
2022-10-21 05:12:08 -03:00
Rekai Nyangadzayi Musuka
eebf6fcae4
chore: zero-initialize VRAM
2022-10-21 05:12:07 -03:00
Rekai Nyangadzayi Musuka
8b7223cf35
chore: stub KeyInput I/O register
2022-10-21 05:12:07 -03:00
Rekai Nyangadzayi Musuka
e1fec48a0e
fix(cpu): properly decode multiply instructions
2022-10-21 05:12:07 -03:00
Rekai Nyangadzayi Musuka
0778ee8dd7
feat(cpu): implement ARM multiply instructions
2022-10-21 05:12:07 -03:00
Rekai Nyangadzayi Musuka
14d5160674
fix: allow 32-bit writes to DISPCNT
2022-10-21 05:12:07 -03:00
Rekai Nyangadzayi Musuka
eabf787305
fix(cpu): properly decode ldm stm thumb instructions
2022-10-21 05:12:07 -03:00
Rekai Nyangadzayi Musuka
980e4ff5dd
fix(cpu): properly decode THUMB PUSH and POP at comptime
2022-10-21 05:12:06 -03:00
Rekai Nyangadzayi Musuka
1ac193c506
fix(cpu): don't ignore 11th bit of THUMB BL offset
2022-10-21 05:12:06 -03:00
Rekai Nyangadzayi Musuka
d6ed071bc6
feat(cpu): implement thumb push / pop and stub format 13 thumb instrs
2022-10-21 05:12:06 -03:00
Rekai Nyangadzayi Musuka
a3d53d40fb
feat(cpu): implement THUMB format 9 loads / stores
2022-10-21 05:12:06 -03:00
Rekai Nyangadzayi Musuka
a17dfbe41f
fix(cpu): resolve issues with unexpected PC value in THUMB
2022-10-21 05:12:06 -03:00
Rekai Nyangadzayi Musuka
b9a81baa47
feat(cpu): implement THUMB ldmia stmia
2022-10-21 05:12:06 -03:00
Rekai Nyangadzayi Musuka
97b236225e
chore: implement THUMB format 4 instructions
2022-10-21 05:12:05 -03:00
Rekai Nyangadzayi Musuka
8113146b86
chore: dedup code in THUMB instructions
2022-10-21 05:12:05 -03:00
Rekai Nyangadzayi Musuka
e6625113db
chore: refactor and genericize ARM data processing calculations
2022-10-21 05:12:05 -03:00
Rekai Nyangadzayi Musuka
2643504eb5
chore: relocate barrel_shifter zig file
2022-10-21 05:12:05 -03:00
Rekai Nyangadzayi Musuka
f7518d1bab
feat(cpu): implement format2 THUMB instructions
2022-10-21 05:12:05 -03:00
Rekai Nyangadzayi Musuka
800ca798cd
feat(cpu): implement format19 THUMB instructions
2022-10-21 05:12:05 -03:00
Rekai Nyangadzayi Musuka
d714ffb4f9
chore: account for THUMB BL instruction when mimicking mGBA logs
2022-10-21 05:12:04 -03:00
Rekai Nyangadzayi Musuka
7bc186a03c
feat(cpu): implement format16 THUMB instructions
2022-10-21 05:12:04 -03:00
Rekai Nyangadzayi Musuka
b94b87d186
feat(cpu): implement format 1 THUMB instructions
2022-10-21 05:12:04 -03:00
Rekai Nyangadzayi Musuka
0289be60ef
fix: dont close file handle early
2022-10-21 05:12:04 -03:00
Rekai Nyangadzayi Musuka
93922b65e3
feat(cpu): implement format 6 THUMB instructions
2022-10-21 05:12:04 -03:00
Rekai Nyangadzayi Musuka
c6608748c6
chore: rename title
2022-10-21 05:12:04 -03:00
Rekai Nyangadzayi Musuka
8e383d55d7
chore: refactor GBA Display Timings
...
This change should reflect that the Hblank bit of DISPSTAT is toggled on all scanlines
while also ensuring that the Vblank bit is set on all Vblank scanlines
2022-10-21 05:12:03 -03:00