Commit Graph

299 Commits

Author SHA1 Message Date
Gericom
cb168c8537 Fixed dma with pc-relative rom source. Fixes various Torus Games titles. Fixes #93, fixes #94, fixes #84 2023-11-07 18:49:01 +01:00
Gericom
e55410cf7e Created defines for stack size 2023-11-06 20:28:57 +01:00
Gericom
85e70c2651 Properly reorder arguments of dmaStartSound 2023-11-05 22:38:48 +01:00
Gericom
98e017e999 Implemented irq after immediate dma. Fixes Twin Series 1 - Mezase Debut! - Fashion Designer Monogatari + Kawaii Pet Game Gallery 2 (Japan) 2023-11-05 21:47:31 +01:00
Gericom
d990b3f6fa Implemented dma irq after hdma. Fixes Wanwan Meitantei 2023-11-05 19:34:36 +01:00
Gericom
d583e7c7f2 Fixed memory mirroring for dma destinations. Fixes Monsters Inc and center and mask in The Legend of Zelda Link to the Past 2023-11-05 19:18:59 +01:00
Gericom
38e2afec0c Fixed jitting of mirrored iwram addresses. Fixes Spirit - Stallion of the Cimarron - Search for Homeland 2023-11-05 15:35:27 +01:00
Gericom
e65ec883d0 Fixed hdma without repeat. Fixes Yggdra Union - We'll Never Fight Alone 2023-11-05 14:59:38 +01:00
Gericom
cc9caf6e29 Ensure delayed irqs are properly triggered after sd fetches and dma3 transfers, unify irq handler to prevent code duplication and save itcm space, enabled handling of dma during save read/write 2023-11-05 14:46:37 +01:00
Gericom
23c5788086 Some tiny improvements 2023-11-05 10:25:06 +01:00
Gericom
356ee568fe Improved memory protection regions to allow some ewram data mirroring. Fixes Mother 3 2023-11-01 19:53:41 +01:00
Gericom
941b3069d4 Implemented center and mask 2023-10-29 19:49:15 +01:00
Gericom
ba8cd017ae Fixed compiling after merge with develop and added better handling of bg2cnt in bitmap mode 2023-10-28 18:27:21 +02:00
Gericom
98cd7c690d Merge remote-tracking branch 'origin/develop' into feature/implement-bitmap-modes 2023-10-28 16:44:50 +02:00
Gericom
7b3e303fd1 Fixed regression in commit 195383c, fixed /1024 timer mode causing freezes. Fixes #79 2023-10-28 15:16:03 +02:00
Gericom
195383c1ec Added some support for longer range pc-relative rom reads, added manual jit patches for Kong - The Animated Series. Fixes #67 2023-10-28 12:43:56 +02:00
Gericom
63d8fc4a20 Changed the way hex numbers are parsed in JsonAppSettingsSerializer, added manual jit patches for Dragon Quest Monsters 2023-10-26 19:26:27 +02:00
Gericom
e19d6da677 Added option to disable wram instruction cache, fixed some issues with manual jit patches 2023-10-25 21:03:15 +02:00
Gericom
cfd5ca3a07 VM: Fixed calling swi from abort mode 2023-10-25 18:41:31 +02:00
Gericom
e0684f40b6 Oops 2023-10-23 20:59:23 +02:00
Gericom
12458f5739 Implemented loading manual jit patches from game specific settings files 2023-10-23 20:44:40 +02:00
Gericom
cb33f35074 Disable sram read and/or write when a game uses eeprom or flash save. Fixes #52. Also fixes Rocky 2023-10-22 16:50:33 +02:00
Gericom
00b4c81cc2 Improved undefined DMA source emulation. Fixes #59 2023-10-22 12:22:51 +02:00
Gericom
f67213556b Added gbaScreenBrightness setting and fixed flakyness of settings file 2023-10-21 21:52:47 +02:00
Gericom
db4304fc56 Created an app setting for color correction 2023-10-21 20:44:43 +02:00
Gericom
7468079e81 Fixed dma oopsie 2023-10-21 20:05:33 +02:00
Gericom
f6b177fbc7 Fixed reading from palette ram with color correction 2023-10-20 20:15:32 +02:00
Gericom
221a04e3f0 Initial work on color correction 2023-10-18 21:31:28 +02:00
Gericom
f22f5288cb Improved dispstat behavior. Fixes graphical issue in mega man zero 2 2023-10-15 16:57:57 +02:00
Gericom
bc55e4cce2 Don't trigger hblank irq on scanlines that are not part of the gba screen 2023-10-15 15:47:56 +02:00
Gericom
280b011e66 JIT: Improved performance of bx handling a bit more 2023-10-14 15:05:12 +02:00
Gericom
2846e0d1ef Fix compiling 2023-10-14 14:16:50 +02:00
Gericom
bec50517b5 Merge branch 'develop' into feature/sound 2023-10-14 14:06:05 +02:00
Gericom
8b9e7f163f JIT: Improved thumb jit performance a bit 2023-10-14 14:05:32 +02:00
Gericom
9ed6885648 Merge branch 'develop' into feature/sound 2023-10-13 18:17:41 +02:00
Gericom
17698f87a3 JIT: Fixed arm ldr pc pre with reg offset reading from rom address in main memory. Fixes Franklin the Turtle. Fixes #33. 2023-10-13 18:16:20 +02:00
Gericom
b7ae9aab9d Merge branch 'develop' into feature/sound 2023-10-11 20:58:16 +02:00
Gericom
bd86e7fdfa Implemented table dispatch for thumb jit, handle thumb mov pc and add pc in assembly 2023-10-11 20:10:28 +02:00
Gericom
0f4a66d134 Cherry pick: Implemented settings json file with option to switch screens 2023-10-09 21:27:47 +02:00
Gericom
2101e624b0 Implemented settings json file with option to switch screens 2023-10-09 21:22:28 +02:00
Gericom
a1fb8bc51f Merge branch 'develop' into feature/sound 2023-10-08 15:49:08 +02:00
Gericom
9dff27ae41 JIT: Improved the way jit bits are accessed 2023-10-08 15:48:46 +02:00
Gericom
4e22d9d86a Merge branch 'develop' into feature/sound 2023-10-08 15:14:56 +02:00
Gericom
eb0b35745c JIT: Removed the need for more than 4 MB of memory for the thumb jit 2023-10-08 15:14:18 +02:00
Gericom
23c59ac253 Merge branch 'develop' into feature/sound 2023-10-08 12:55:46 +02:00
Gericom
8937b6a2af JIT: Force alignment for ldmia base address and loaded pc branch destinations 2023-10-08 12:54:43 +02:00
Gericom
2e61a0d8ff DMA: Skip transfer for sound dma with source address < 0x02000000. Fixes Magical Vacation. 2023-10-08 12:23:26 +02:00
Gericom
147dafd938 Merge branch 'develop' into feature/sound 2023-10-08 12:21:29 +02:00
Gericom
23780573c6 JIT: Fixed ldr pc reading from DS addresses instead of GBA addresses. Fixes crash in magical vacation. 2023-10-08 12:19:14 +02:00
Gericom
b6b0e27bf8 Improved behavior of direct sound fifo's when empty 2023-10-08 11:09:48 +02:00
Gericom
a0c1895afe Merge branch 'develop' into feature/sound 2023-10-08 10:23:33 +02:00
Gericom
f6f3db6903 Removed todo comment about implementing pmic in libtwl 2023-10-08 10:21:23 +02:00
Gericom
4c26c56168 Use libtwl for SPI power management chip functions and disabled backlight of bottom screen. Implements #1 2023-10-08 10:18:33 +02:00
Gericom
a10864ee08 Added patch for mixer with bad instruction 2023-10-03 20:00:56 +02:00
Gericom
41d829086a Merge branch 'develop' into feature/sound 2023-10-03 19:14:15 +02:00
Gericom
0b1e0ed5a8 Use sensible maker id and device id for flash saves. Fixes Sims 2 Pets saving 2023-10-03 19:12:49 +02:00
Gericom
0d04376c5b Fixed save flushing 2023-10-03 17:59:42 +02:00
Gericom
44dcfc3e68 Merge branch 'develop' into feature/sound 2023-10-02 21:14:13 +02:00
Gericom
f4b6490d30 Read and write eeprom and flash saves directly from/to the sd card 2023-10-02 21:13:12 +02:00
Gericom
2cde0fa70d Merge branch 'develop' into feature/sound 2023-09-30 18:10:46 +02:00
Gericom
4e2829d0d8 JIT: Automatically patch LDM with writeback and base register first reg in rlist 2023-09-30 18:09:56 +02:00
Gericom
c70ae5a46b Initial work on bitmap support 2023-09-30 18:07:47 +02:00
Gericom
f3dfad9a94 Implemented non-repeat sound dma 2023-09-30 14:17:43 +02:00
Gericom
1b3011c556 Implemented irq for sound dma 2023-09-30 14:00:39 +02:00
Gericom
4fe740cf20 Merge branch 'develop' into feature/sound 2023-09-30 12:19:05 +02:00
Gericom
eeb47efb6d Fixed writing to vram in bitmap mode 2023-09-30 12:18:31 +02:00
Gericom
f00beb25e6 Merge branch 'develop' into feature/sound 2023-09-30 11:39:02 +02:00
Gericom
e45538c187 Fixed some irq related bugs 2023-09-30 11:38:23 +02:00
Gericom
7e5cbf0e88 Fixed sending 32 bit timer settings to arm7 2023-09-28 19:46:25 +02:00
Gericom
193a2931c5 Fixed gb sound 2023-09-26 20:02:42 +02:00
Gericom
7e01f33191 Slightly improved noise channel by reversing samples, removed some debug leftovers 2023-09-25 21:36:56 +02:00
Gericom
9a6a9fb0d1 Improved gb sound 2023-09-25 21:01:59 +02:00
Gericom
2cf12336b8 Fixed masking of some sound registers 2023-09-24 23:17:33 +02:00
Gericom
5c836ee9ea Crappy gb sound 2023-09-24 22:56:16 +02:00
Gericom
869a68cdd5 Improved sound performance 2023-09-24 12:29:02 +02:00
Gericom
d6746f47b0 Merge branch 'develop' into feature/sound 2023-09-24 10:41:46 +02:00
Gericom
7f0dd99933 Improved implementation of timers 2023-09-24 10:38:37 +02:00
Gericom
77482872ee Merge branch 'develop' into feature/sound 2023-09-23 21:14:22 +02:00
Gericom
0b0c776ef1 Fixed mistake in merging stash 2023-09-23 21:13:29 +02:00
Gericom
2a5e9c70a7 Added patch for harvest moon 2023-09-23 21:11:40 +02:00
Gericom
ef67b4c5a2 Merge branch 'develop' into feature/sound 2023-09-23 18:11:59 +02:00
Gericom
ed3abcfe30 Fixed thumb bx pc emulation. Fixes golden sun 2 2023-09-23 18:11:24 +02:00
Gericom
743420a68f Merge branch 'develop' into feature/sound 2023-09-23 17:33:10 +02:00
Gericom
d99e1225a4 Always use the sd cache for rom reads. Prevents reading changes made by the jit; fixes #12 2023-09-23 17:31:38 +02:00
Gericom
baaca13d48 Main memory priority to arm9 (and use the new definitions in libtwl) 2023-09-23 13:42:08 +02:00
Gericom
9afd6da8c2 Merge branch 'develop' into feature/sound 2023-09-23 12:51:18 +02:00
Gericom
68aad8d614 Fixed vm_forcedIrqMask 2023-09-23 12:48:13 +02:00
Gericom
9969cbce4d oops 2023-09-22 20:18:59 +02:00
Gericom
3a0d2c9829 Improved sound a bit 2023-09-22 20:15:15 +02:00
Gericom
a093b04684 Added framerate adjustment 2023-09-22 17:31:40 +02:00
Gericom
f2cb540ee3 Ported some fixes from the sound branch 2023-09-22 16:54:22 +02:00
Gericom
e149f8ea92 Shitty direct sound 2023-09-21 23:22:40 +02:00
Gericom
0a7f619bb6 Initial work on sound 2023-09-19 20:39:44 +02:00
Gericom
e17abc6d16 Added save loading 2023-09-18 20:41:56 +02:00
Gericom
a60d9323df Fixed save patches. Fixes #8 2023-09-18 19:40:27 +02:00
Gericom
61cfe0450d Properly power off on long DSi power button press 2023-09-18 17:41:10 +02:00
Gericom
d889f0c7f4 Merge branch 'develop' into feature/jit-patcher 2023-09-18 17:27:10 +02:00
Gericom
20e3ae7dd6 Use null logger when not on is-nitro-emulator. Fixes #9 2023-09-18 17:22:39 +02:00
Gericom
a76a02f3c1 Merge remote-tracking branch 'origin/develop' into feature/jit-patcher 2023-09-17 21:08:55 +02:00
Gericom
1c52d722ff Implemented missing step modes for dma. Fixes advance wars 2 and the title screen crash of mario & luigi superstar saga 2023-09-17 20:54:41 +02:00
Gericom
5205f7cfaa Fixed save patches for jit 2023-09-17 16:31:52 +02:00
Gericom
8398e0b9af Merge branch 'feature/save-patches' into feature/jit-patcher 2023-09-17 16:15:09 +02:00
Gericom
ae152f19a6 Implemented save patches, fixed bug in msr emulation, implemented 32 bit read from keyinput/keycontrol 2023-09-17 16:12:34 +02:00
wzhy90
f61803f0d9 fix case sensitivity 2023-09-17 00:18:59 +08:00
Gericom
6d7b977579 Merge remote-tracking branch 'origin/develop' into feature/jit-patcher 2023-09-16 11:50:24 +02:00
Gericom
3cac58f708 Improved DSi power button behavior. Fixes #6 2023-09-16 11:48:01 +02:00
Gericom
a50d0380e3 Implemented argv support 2023-09-14 20:29:54 +02:00
Gericom
5745d10e6e Merge branch 'develop' into feature/jit-patcher 2023-09-14 20:00:12 +02:00
Gericom
b8fb2b48e4 Implemented DSi powerbutton irq 2023-09-14 19:57:34 +02:00
Gericom
2de08f1dd3 Merge branch 'develop' into feature/jit-patcher 2023-09-14 19:27:52 +02:00
Gericom
f0495a19be Implemented DSi SD support 2023-09-14 18:28:51 +02:00
Gericom
3395846676 Moved dldi to arm7 2023-09-12 21:21:23 +02:00
Gericom
e5de035149 Implemented simple arm7 2023-09-12 18:26:53 +02:00
Gericom
9c82103782 Inlined emulation irq dispatch into irq handler 2023-09-12 16:54:04 +02:00
Gericom
3ff0bbf754 JIT: Don't assume code will follow after a BL
Fixes Mario Kart Super Circuit glitch when falling in water
Fixes Varooom 3D crashing when race count down starts
2023-09-09 23:22:20 +02:00
Gericom
eadfb82ef6 Faster vram read/write, faster jit condition evaluation 2023-09-09 19:43:54 +02:00
Gericom
fa5dfb1685 Implemented support for more pc modifying instructions in the JIT and improved thumb bx performance 2023-09-09 16:00:16 +02:00
Gericom
1784958ac1 Improved jit slightly 2023-09-05 21:43:59 +02:00
Gericom
b348fa5635 JIT can actually boot games now 2023-09-03 21:43:32 +02:00
Gericom
3f8f6844b0 Initial work for JIT patcher 2023-09-01 20:46:02 +02:00
Gericom
8ff17b5b92 Implemented cache mapping hi code support 2023-08-27 18:18:19 +02:00
Gericom
a3ca74aa23 Implemented sd cache, added dldi, fixed bug in mem_copy16 (fixes sims bustin' out) 2023-08-26 23:30:15 +02:00
Gericom
ac2032a44e Improved IO handling 2023-08-21 20:32:46 +02:00
Gericom
166ac01c31 Added more documentation comments, added nested irq handler 2023-08-20 20:40:09 +02:00
Gericom
546a29221a Use libtwl defines and inline functions 2023-08-20 19:54:30 +02:00
Gericom
34a7b54966 Added logging facilities, created table for bios relocation addresses 2023-08-20 18:10:34 +02:00
Gericom
8866bd6198 Implemented hdma, implemented emulation of swp and swpb (closes #4), ignore writes to green swap 2023-08-20 15:34:19 +02:00
Gericom
d46e9e8e8f Further improved dma performance 2023-08-19 20:20:34 +02:00
Gericom
65bafa4010 Improved DMA speed 2023-08-19 15:15:49 +02:00
Gericom
eb3dd63e9a Implemented proper updating of DS REG_IE, retrigger irq for pending irqs using gx fifo irq 2023-08-19 11:40:26 +02:00
Gericom
84a6cd09df Improved memory emulation speed, added support for fixed source dma, fixed dispcnt 2023-08-16 23:02:22 +02:00
Gericom
4996e36cc3 Improved performance of thumb memory emulation 2023-08-15 21:43:06 +02:00
Gericom
a4aa0af901 Halved size of arm dispatch table, improved emulated read/write accuracy (oob, unaligned) 2023-08-14 20:46:17 +02:00
Gericom
f54f3f0f4d Various bug fixes and implemented basic dma and some other peripherals. Simple test roms can now boot if they are pre patched with sensitive instruction patches 2023-08-13 19:40:04 +02:00
Gericom
132ff123e3 GBA bios is able to boot now 2023-08-12 20:00:16 +02:00
Gericom
e19073e417 First preparations for running gba bios 2023-08-09 20:41:54 +02:00
Gericom
6728edd29d Added more arm STM tests, added support for argv in the test project 2023-08-09 00:04:17 +02:00
Gericom
fc47bfe28a Moved stack of test project to ewram, started adding ARM stm tests 2023-08-07 19:25:23 +02:00
Gericom
15840849de Started implementing arm ldm/stm and started implementing handling loads and stores 2023-08-06 21:44:06 +02:00
Gericom
f8cbb6cc2a Implemented hypercall for ALUs pc, rn, #imm and added tests for VM irq handling 2023-08-06 14:21:18 +02:00
Gericom
033cda601a Added some msr cpsr, reg hypercall tests 2023-08-05 11:41:39 +02:00
Gericom
d1e7cc19bc Added tests for VM msr spsr, reg hypercall 2023-08-05 11:00:01 +02:00
Gericom
0d800601cf Started implemented MSR reg hypercall 2023-08-04 21:07:48 +02:00
Gericom
0ce01c23de Added first tests with running the VM 2023-08-03 21:51:25 +02:00
Gericom
67e78c3ba3 Initial work on jit 2023-08-02 21:20:59 +02:00
Gericom
15f093ea2e Faster VM irq handler 2023-08-01 21:43:14 +02:00
Gericom
357b7ed25b Started implementing the VM 2023-07-31 21:51:47 +02:00
Gericom
cd4ca00871 Updated Technical Reference Manual and added more arm instruction tests 2023-07-30 23:09:47 +02:00
Gericom
8c534d7a1b Initial commit 2023-07-29 19:55:21 +02:00