Commit Graph

809 Commits

Author SHA1 Message Date
lif a774bc4511 plain n64 driver 2024-01-22 02:00:10 -08:00
lif 62ce62777d fix screen edge partial sprite tile drawing in bigend 2024-01-04 22:52:18 -08:00
lif 6928b667ae fix most(?) rendering issues i have seen so far in swizzled mode. tiles at screen edges are still being drawn backwards 2024-01-03 03:04:44 -08:00
lif e6eb0a17dc start fixing swizzle-mode graphics rendering, starting with tilemap pointers and OAM 2024-01-02 03:55:24 -08:00
lif b296b42f0f try using uncached memory?? 2023-12-31 00:10:08 -08:00
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