aboutsummaryrefslogtreecommitdiff
path: root/frontend/3ds
AgeCommit message (Collapse)Author
2020-10-10[3DS] Enable threading for the SPUJustin Weiss
2020-08-23[3DS] Support latest libctruJustin Weiss
2020-02-25Add async CD accessJustin Weiss
2020-02-25Merge pull request #390 from justinweiss/ctr-fix-dynarec-crashesTwinaphex
Fix dynarec crashes on 3DS
2020-02-25Revert "(3DS) Set pthread stack size to 12MB - possible solution for crashes"twinaphex
This reverts commit dfcd7153048c2f6d479dfcd328ee2c0e1e0784ed.
2020-02-24Fix dynarec crashes on 3DSJustin Weiss
After the dynarec writes new instructions, it has to flush the instruction and data caches. Some of these flush operations are privileged on the 3DS, so the clear cache functions have to run through svcBackdoor. The Nintendo implementation (and CFW reimplementation) of svcBackdoor has a problem where interrupts and context switches will cause crashes. Even though we can disable interrupts in the flush function, there's still a window of time between svcBackdoor being called and the function being run where an interrupt will corrupt the stack. Luma3DS implemements a svcCustomBackdoor call we can use that also runs a function in supervisor mode, but uses an implementation that avoids this problem.
2020-02-16(3DS) Set pthread stack size to 12MB - possible solution for crashesTwinaphex
2019-10-053DS: Switch from svc* to the thread* APIJustin Weiss
svcCreateThread doesn't fully set up thread vars, which causes svcBreaks / crashes when calling certain functions -- reentrant ones, for example. threadCreate, etc. are higher-level functions that do all the correct setup and cleanup. Since we're treating the thread structure as opaque, calling it an int_32t seems OK.
2019-10-023DS: Schedule threads on the default coreJustin Weiss
When creating a thread, pcsx was scheduling threads on core 1, which is the system core. This is usually prevented by the system. Instead, it should schedule threads on the default core, as suggested by 3dbrew: https://www.3dbrew.org/wiki/Multi-threading > Games usually create threads using -2. In the future, we may be able to schedule threads on core 2 on New 3DS only, if we find it gives better performance. This was preventing the CDDA thread from starting, which was preventing CD Audio from playing.
2017-04-03Fix running on CTR: dyncache mmap doesn't specify MAP_FIXED anymoreYuxuan Shui
2016-01-16(3DS) - remove provileged services enabling code, it should be done byaliaspider
the frontend instead. - dynamically allocate the recompiler cache, this will allow using the recompiler even when the .bss section is relocated far from the .text section (for example when using the hombrew loader).
2015-10-01nitaliaspider
2015-10-01(CTR/3DS) add a warning message when mprotect is called without thealiaspider
needed svc access.
2015-10-01(ctr/3ds) fix 3dsx build.aliaspider
2015-09-23(ctr/3ds) add zconf.h tooaliaspider
2015-09-23(ctr/3ds) add zlib.haliaspider
2015-09-23cleanup.aliaspider
2015-09-23(ctr/3ds) add target.aliaspider