Commit Graph

2405 Commits

Author SHA1 Message Date
Jaklyy
ea429a1b8d improve interlock emulation
add cycles to the instruction execution time rather than the timestamp directly.
2024-07-04 12:58:58 -04:00
Jaklyy
bd1665c1d3 minor timing tweaks 2024-07-04 12:41:09 -04:00
Jaklyy
a549977eb0 fix clz for realsies 2024-07-04 11:04:38 -04:00
Jaklyy
0060958fed Merge remote-tracking branch 'upstream/master' into jump-after-writeback 2024-07-03 15:26:58 -04:00
RSDuck
613569a2ab append newline to nocash logging
makes behaviour consistent with no$gba
2024-07-02 19:09:32 +02:00
Nadia Holmquist Pedersen
7898b46435 Add Discord invite link to README.md 2024-07-02 10:06:05 +02:00
Nadia Holmquist Pedersen
4e3592f2d4 Fix loading GBA carts
UpdateConsole forgot to reinsert it when messing with the NDS.
2024-07-02 08:18:44 +02:00
Nadia Holmquist Pedersen
f2611680ca EmuInstance: check consoleType from NDS rather than the instance's when
updating console, fixes crash on console type switch

EmuInstance::consoleType is already updated, so the check for whether we
should recreate the NDS to switch console type never succeeds.
2024-07-02 06:23:21 +02:00
Jaklyy
88e5584b5f fix clz r15 2024-06-27 15:33:24 -04:00
Jaklyy
c5b035a973 SWP and SWPB use the same behavior as STR on the ARM9 2024-06-25 11:20:01 -04:00
Jaklyy
541e1e6388 proper timings for ldr/str 2024-06-25 09:08:11 -04:00
Jaklyy
dbe00e72dd improve stm timings
need to verify if they apply to all store instructions
2024-06-24 22:50:04 -04:00
Jaklyy
109bbed3d0 improve ldm timings
I believe this also applies to other loads as well, but currently untested.
2024-06-24 20:22:38 -04:00
Jaklyy
3583d8222f disable interlock emulation, needs more research 2024-06-24 16:17:04 -04:00
Jaklyy
f1b71fe5a9 implement configurable vram bus width
not implemented for direct boot
2024-06-24 16:15:04 -04:00
Nadia Holmquist Pedersen
db20771ef3 slirp: Add -fvisibility=hidden to glib stub
On Linux, our stubbed glib functions were conflicting with the ones from
real glib, which gets used by Qt when we're running on a GTK-based
desktop. Avoid a crash by not exposing them.
2024-06-24 05:25:00 +02:00
Jaklyy
e6ba4075b9 correct interlocked reg for umlal 2024-06-18 11:12:05 -04:00
Nadia Holmquist Pedersen
cbb0f4b872 Tell the compiler that we want wrapping signed arithmetic
The core relies on this and without -fwrapv there will be rendering
issues on some targets. Thanks CasualPokePlayer for noticing this.
2024-06-18 15:51:08 +02:00
Arisotura
e234385c20 OpenGL: add support for changing BG0HOFS midframe. fixes #2072 2024-06-18 13:11:42 +02:00
Jaklyy
c5258d6377 verify interlocks for alu and load/store
remove some checks for interlock that im pretty sure can't trigger
2024-06-17 18:07:53 -04:00
Arisotura
626d2379bc * fix default for audio volume
* add default bools for battery settings
2024-06-17 14:51:32 +02:00
Jaklyy
a9e2c7e047 implement two regs i missed 2024-06-16 23:24:20 -04:00
Jaklyy
f00f1f6ca4 im smart 2024-06-16 20:50:42 -04:00
Jaklyy
5b37ca70d1 implement correct/guess interlocks for remaining instructions 2024-06-16 20:47:01 -04:00
Jaklyy
debaaa0425 fix performance regression for disabling interlock emulation path 2024-06-15 21:16:12 -04:00
Jaklyy
449557624d don't do interlocks for the arm7 2024-06-15 18:37:31 -04:00
Jaklyy
a973c0bf5b initial implementation of interlock cycles 2024-06-15 16:07:36 -04:00
Nadia Holmquist Pedersen
eb2bd73c7d ensure teakra is always static linked even in dynamically linked builds 2024-06-15 21:31:23 +02:00
Arisotura
ae44ba2475 blarg 2024-06-15 21:01:27 +02:00
Arisotura
649462ff5c fix more bugs and crap 2024-06-15 20:57:26 +02:00
Arisotura
890dc4f228 fix other bugs with these regexes 2024-06-15 19:23:18 +02:00
Arisotura
d449888405 fix up the regexes in Config.cpp 2024-06-15 19:10:28 +02:00
Arisotura
ccc5c955e9 fix one potential crash bug 2024-06-15 17:42:26 +02:00
Arisotura
8fc403cdad update copyright headers 2024-06-15 17:01:19 +02:00
Arisotura
25a7b1ca1d
merge doublemelon (#2067)
non-exhaustive (but exhausting) list of changes:

* base laid for multiple window support, but will likely require more work to work correctly
* encapsulation of frontend state for proper multi-instance support
* (JIT still needs a fix for the NDS::Current workaround but we can get there later)
* new, more flexible configuration system
2024-06-15 13:52:47 +02:00
Jaklyy
aa1217af0a track interlock cycles for the ALU 2024-06-14 11:47:42 -04:00
Jaklyy
5a174a2ce3 track interlock cycles for load instructions 2024-06-14 00:51:55 -04:00
Jaklyy
42218106b0 verify writable msr bits 2024-06-11 10:30:30 -04:00
Jaklyy
048b0b8878 swp/swpb jumps work on the arm 7? 2024-06-10 18:03:56 -04:00
Jaklyy
3ddccde5b9 verified
also remove no longer needed variable
2024-06-10 13:23:18 -04:00
Jaklyy
ca04710deb ldrd is just ldm 2024-06-09 22:31:10 -04:00
Jaklyy
ae0824fdd3 it all makes sense now... 2024-06-09 19:10:43 -04:00
Jaklyy
b90d5c2320 what the actual F*** is going on 2024-06-09 12:18:31 -04:00
Jaklyy
be60c68aeb more weirdness 2024-06-09 07:25:42 -04:00
Jaklyy
b846c6f100 remove out of date comments 2024-06-08 22:17:07 -04:00
Jaklyy
849d4e51ac imma be real, i have no idea what is going on here 2024-06-08 22:12:44 -04:00
Jaklyy
659763f903 clarification 2024-06-08 16:15:02 -04:00
CasualPokePlayer
8e9b88d01d
Actually generate DownscaleFramebuffer (#2059) 2024-06-08 20:48:42 +02:00
Jaklyy
3699768ac9 most cpsr bits can't actually be updated (or at least can't be read?) 2024-06-08 14:01:54 -04:00
Jaklyy
5f97dfc1ab fix bits fixed to 0 for pu region sizing being set 2024-06-08 10:53:22 -04:00