Commit graph

804 commits

Author SHA1 Message Date
lif
f974a8c128 idfk 2023-12-27 02:17:32 -08:00
lif
69c145be62 fix the pass-by-value of translation_ptr in emit_mem_access_loadop 2023-12-26 00:07:38 -08:00
lif
a275018d09 swizzle all accesses, why not 2023-12-25 01:19:19 -08:00
lif
6f692d7296 uhh swizzle io register addresses too?? is this anything 2023-12-25 00:52:08 -08:00
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