Commit Graph

800 Commits

Author SHA1 Message Date
lif 35711d50e0 swizzle address with pre-swapped data instead of endian-swap 2023-12-25 00:01:56 -08:00
lif b1cf0addb1 fix genccall on big endian! we needed to load doubleword the gp 2023-12-24 17:57:16 -08:00
lif 2e9fb813a9 minor cleanup and write an emit for load/store doubleword 2023-12-24 17:13:41 -08:00
lif 9a4ee26edc seeing if fixing the vr4300 mult bug helps 2023-12-24 13:51:11 -08:00
lif a28418a331 may as well preempt the vr4300 mul bug 2023-12-24 13:51:11 -08:00
lif b7d26c8081 ugh 2023-12-24 13:51:11 -08:00
lif 0fc59f135a fix over-printification of comments 2023-12-24 13:51:11 -08:00
lif 0ef6851c63 fixed endian bug in generate_branch_patch_conditional 2023-12-24 13:51:11 -08:00
lif e272a2d4b3 HACK: turn comments into printfs so i can see whats being disassembled 2023-12-24 13:51:11 -08:00
lif 68cb9f62e3 wip: more jit endian swap macro 2023-12-24 13:51:11 -08:00
lif a7c745886c wip, endian loads (but not stores) 2023-12-24 13:51:11 -08:00
lif 086f16f098 start trying to see if the jit problem is byte order 2023-12-24 13:51:11 -08:00
lif 4a6b94980e fix blend masks 2023-12-24 13:40:48 -08:00
lif 53490ec797 just make the ifdef N64 2023-12-24 00:06:56 -08:00
lif 052656959f plumbing direct framebuffer access through the libretro way 2023-12-23 23:05:33 -08:00
lif ef45161c94 vr4300 2023-12-16 17:56:58 -08:00
lif 7813578631 n64 pixel format 2023-12-12 23:07:39 -08:00
lif 6218568cc5 wip:libdragon 2023-12-12 20:08:12 -08:00
David Guillen Fandos 895fb075c3 Update libretro.h to the latest version 2023-11-22 23:06:13 +01:00
David Guillen Fandos 904eaa2fa7 [dynarec] "Fix" ARM-mode STM instruction writeback
Move writeback to the end of the instruction (instead of the start).
This is also wrong but fixes some common cases (ie. push sp).
2023-11-21 23:35:07 +01:00
David Guillen Fandos ebbcdc852e [interp] Execute ldm/stm in the correct order (low to high)
This affects no games tho.
2023-11-14 23:54:05 +01:00
David Guillen Fandos f0f0b57c56 [Interp] Improve sbit emulation for LDM 2023-11-13 21:08:58 +01:00
David Guillen Fandos beb6e4b520 [Interp] Re-implement LDM/STM improving some missing cases.
Fixes the "base register in the list" for STM and partially honors the S
bit.
2023-11-06 01:17:54 +01:00
David Guillen Fandos 723d23adf8 Fix bug in instrumentation code 2023-11-03 01:01:56 +01:00
David Guillen Fandos 875c192257 [Interp] Simplify PC calculation 2023-11-03 00:30:35 +01:00
David Guillen Fandos 64d0a066b4 Move interpreter to use CXX so that we can simplify some bits 2023-11-03 00:09:08 +01:00
David Guillen Fandos e97037043e Move stats code out of cpu.c 2023-11-02 23:39:38 +01:00
David Guillen Fandos eaf8b94702 Update libretro common headers 2023-10-06 20:41:59 +02:00
David Guillen Fandos 7127ec6408 Improve DMA and BIOS reads 2023-10-01 23:51:53 +02:00
David Guillen Fandos 642179228a Fix gpsp options (and 3ds dynarec disable too) 2023-09-24 23:12:28 +02:00
David Guillen Fandos 4ce9c5ba26 Remove unused option 2023-09-24 23:01:43 +02:00
David Guillen Fandos 9632dedf90 Implement EEPROM save override.
Disabled SRAM/FLASH when EEPROM saves have been attempted. Allows to
override games via gba_over too
2023-09-23 18:13:18 +02:00
David Guillen Fandos ae048beb9c Rework RTC and break it into GPIO, with RTC and Rumble (GPIO3)
This adds Rumble support for GPIO3-enabled games (Drill Dozer).
2023-09-20 22:46:06 +02:00
David Guillen Fandos f0bacff91a Remove gpsp savegame method in favour of libretro's one
This generates 128KB save files (instead of variable sized ones) to
prevent truncated savegames under some circumstances. Most other
emulators have no trouble loading them (and the unused data is simply
ignored).

Remove also config txt file that's now unused.
2023-09-19 20:36:56 +02:00
David Guillen Fandos bcd062ea1b Remove config.txt parsing and reading 2023-09-19 20:36:56 +02:00
David Guillen Fandos 0501be5d78 Simplify gba over a bit 2023-09-19 20:36:56 +02:00
David Guillen Fandos 1d46986e92 Fix horizontal window inversion logic. 2023-09-19 00:19:26 +02:00
David Guillen Fandos 6e59ca6795 Improve EEPROM reads/writes and ROM reads
Unmapped areas read a value closer to what hardware produces.
Ensure that 32MB games can do EEPROM reads.
2023-09-14 00:22:55 +02:00
David Guillen Fandos c0d8ffaa38 Adding DMA transfer "Sleep" mode
This accounts for DMA stealing cycles from the CPU whenever the CPU
triggers a DMA (does not affect H/V blank or sound DMAs).
Works by moving the CPU to a PAUSED state where the cycles are accounted
for, reusing a similar mechanism for HALT/STOP.

Fixes a couple of games, notably GTA that has a DMA/IRQ race condition
(likely a bug really) if cycles are grossly miscalculated.
2023-09-08 19:44:13 +02:00
David Guillen Fandos 2352adcc50 Improve savestate loading to avoid corrupting the current state
It should not happen since the magic value and version would normally
discard incompatible savestates, however it's preferrable to check
before loading the state (it's just some minor sanity check).
2023-09-07 20:26:44 +02:00
David Guillen Fandos 1d1c719372 Remove COMPLETED_FRAME flag to simplify things 2023-09-06 00:48:37 +02:00
David Guillen Fandos 5f3e0a88cf Remove alert_loop in favour of cpu_sleep_loop 2023-09-06 00:02:47 +02:00
David Guillen Fandos 8ae2234374 Fix delay slot issue on PSP/PS2 2023-09-04 23:44:28 +02:00
David Guillen Fandos c1586a4825 Add sprite limit options and honor H-Blank Free too. 2023-09-01 23:57:57 +02:00
David Guillen Fandos 7321d49ca4 Remove PSP special weirdness, has almost no perf impact. 2023-08-31 00:26:42 +02:00
David Guillen Fandos 7906413f28 Define more I/O registers 2023-08-29 23:07:58 +02:00
David Guillen Fandos 188887e6c8 Mix MacOS x86 builds too 2023-08-27 13:40:36 +02:00
David Guillen Fandos 9d46b84dee Fix iOS builds 2023-08-27 12:28:55 +02:00
David Guillen Fandos 36b607d2b4 Merge remote-tracking branch 'upstreamssh/master' 2023-08-26 12:21:46 +02:00
David Guillen Fandos 91e8ca8f4e Merge remote-tracking branch 'origin/master' 2023-08-26 12:19:58 +02:00