Justin Weiss [Sun, 1 Mar 2020 23:40:25 +0000 (15:40 -0800)]
Preserve uSrc MSB across lighting and blending
This saves a few cycles because gcc stores / loads srcMSB when
using ARM-optimized lighting.
Justin Weiss [Fri, 28 Feb 2020 07:42:43 +0000 (23:42 -0800)]
WIP: Add ARM-assembly versions of lighting and blending
Twinaphex [Thu, 27 Feb 2020 04:48:54 +0000 (05:48 +0100)]
Merge pull request #392 from justinweiss/ctr-use-floatmath
[3DS] Tweak compile-time options to increase performance
Justin Weiss [Thu, 27 Feb 2020 01:18:33 +0000 (17:18 -0800)]
[3DS] Tweak compile-time options to increase performance
Twinaphex [Tue, 25 Feb 2020 04:32:11 +0000 (05:32 +0100)]
Merge pull request #390 from justinweiss/ctr-fix-dynarec-crashes
Fix dynarec crashes on 3DS
twinaphex [Tue, 25 Feb 2020 04:05:56 +0000 (05:05 +0100)]
Revert "(3DS) Set pthread stack size to 12MB - possible solution for crashes"
This reverts commit
dfcd7153048c2f6d479dfcd328ee2c0e1e0784ed.
Justin Weiss [Tue, 25 Feb 2020 01:47:14 +0000 (17:47 -0800)]
Fix dynarec crashes on 3DS
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.
Twinaphex [Mon, 24 Feb 2020 18:39:44 +0000 (19:39 +0100)]
Merge pull request #389 from notaz/master
Merge upstream changes
Twinaphex [Fri, 21 Feb 2020 18:46:05 +0000 (19:46 +0100)]
Merge pull request #388 from ZachCook/master
Fix second instance runahead without breaking reset
Zachary Cook [Fri, 21 Feb 2020 01:17:27 +0000 (20:17 -0500)]
Fix second instance runahead without breaking reset
twinaphex [Fri, 21 Feb 2020 00:49:28 +0000 (01:49 +0100)]
Revert "Use a more lightweight reset method for lightrec"
This reverts commit
7070d5c660963aec56e1d667211b4a09a62d400d.
Twinaphex [Fri, 21 Feb 2020 00:10:05 +0000 (01:10 +0100)]
Merge pull request #386 from ZachCook/master
Fix second instance runahead
Zachary Cook [Thu, 20 Feb 2020 03:27:52 +0000 (22:27 -0500)]
Use a more lightweight reset method for lightrec
Reset is common when using runahead, this seems to prevent crashes
when resets occur rapidly.
Zachary Cook [Wed, 19 Feb 2020 04:29:38 +0000 (23:29 -0500)]
Add fallback addresses so second instance runahead can work
Also prefer MAP_FIXED_NOREPLACE over MAP_FIXED, as it won't remove old memory maps
Twinaphex [Sun, 16 Feb 2020 20:19:08 +0000 (21:19 +0100)]
(3DS) Set pthread stack size to 12MB - possible solution for crashes
notaz [Sun, 16 Feb 2020 18:03:39 +0000 (20:03 +0200)]
Merge pull request #156 from pcercuei/fix-gte-divide
Replace existing gte_divider with MAME's version
Paul Cercueil [Wed, 12 Feb 2020 18:38:16 +0000 (15:38 -0300)]
Replace existing gte_divider with MAME's version
The original code did not have a license header, and as a result was
licensed under the GPLv2 which means that it was impossible to link it
with LGPL code.
The new code originates from MAME and is under a BSD-3-Clause license,
which is GPL-compatible, and also much cleaner.
Signed-off-by: Paul Cercueil <paul@crapouillou.net>
twinaphex [Wed, 12 Feb 2020 12:10:32 +0000 (13:10 +0100)]
Silence some unused variable warnings
twinaphex [Wed, 12 Feb 2020 11:58:21 +0000 (12:58 +0100)]
Take out this override for OSX
twinaphex [Wed, 12 Feb 2020 11:56:04 +0000 (12:56 +0100)]
Buildfix
notaz [Tue, 11 Feb 2020 23:19:43 +0000 (01:19 +0200)]
gte_neon: fix compile under clang's assembler
notaz [Tue, 11 Feb 2020 23:46:45 +0000 (01:46 +0200)]
add some missing license headers
notaz [Tue, 11 Feb 2020 23:19:43 +0000 (01:19 +0200)]
gte_neon: fix compile under clang's assembler
twinaphex [Sat, 8 Feb 2020 20:40:17 +0000 (21:40 +0100)]
License these files as MIT
Twinaphex [Sun, 9 Feb 2020 16:32:26 +0000 (17:32 +0100)]
Update Android.mk
twinaphex [Sun, 9 Feb 2020 13:12:16 +0000 (14:12 +0100)]
(Android) Aarch64/x86/x64 now has lightrec support
twinaphex [Sun, 9 Feb 2020 11:17:52 +0000 (12:17 +0100)]
Buildfix for LLVM
Twinaphex [Sun, 9 Feb 2020 10:18:38 +0000 (11:18 +0100)]
OSX should use lightrec
Twinaphex [Sun, 9 Feb 2020 10:16:48 +0000 (11:16 +0100)]
Fix build
Twinaphex [Sun, 9 Feb 2020 10:12:18 +0000 (11:12 +0100)]
Update Makefile.libretro
Twinaphex [Sun, 9 Feb 2020 07:58:45 +0000 (08:58 +0100)]
Update psxmem.c
twinaphex [Sat, 8 Feb 2020 22:22:01 +0000 (23:22 +0100)]
(NEON GPU) Don't hide this for non-ARM
twinaphex [Sat, 8 Feb 2020 21:19:13 +0000 (22:19 +0100)]
Start getting NEON GPU to work on non-Arm
twinaphex [Sat, 8 Feb 2020 20:39:07 +0000 (21:39 +0100)]
License this MIT - should be compatible with everything
Twinaphex [Sat, 8 Feb 2020 20:33:17 +0000 (21:33 +0100)]
Merge pull request #381 from negativeExponent/travis_update
Update .travis.yml
Twinaphex [Sat, 8 Feb 2020 20:33:08 +0000 (21:33 +0100)]
Merge pull request #380 from negativeExponent/fix_makefile
Update Makefile.libretro
notaz [Sat, 8 Feb 2020 19:29:08 +0000 (21:29 +0200)]
menu: fix a buffer overflow
Reported by @wwhheerree, closes #152.
negativeExponent [Sat, 8 Feb 2020 17:21:50 +0000 (01:21 +0800)]
Update .travis.yml
negativeExponent [Sat, 8 Feb 2020 16:25:27 +0000 (00:25 +0800)]
Update Makefile.libretro
Twinaphex [Sat, 8 Feb 2020 16:25:34 +0000 (17:25 +0100)]
Merge pull request #378 from pcercuei/libretro
Fix Linux build
Paul Cercueil [Sat, 8 Feb 2020 16:00:30 +0000 (13:00 -0300)]
Fix Linux build
Signed-off-by: Paul Cercueil <paul@crapouillou.net>
Twinaphex [Sat, 8 Feb 2020 15:24:22 +0000 (16:24 +0100)]
Merge pull request #377 from pcercuei/libretro
Lightrec dynarec
Daniel Silsby [Tue, 12 Nov 2019 23:48:44 +0000 (18:48 -0500)]
cdrom: add missing BCD->int convert in cdrFreeze()
For some Eboot .PBP game images, when loading a savestate, a zlib error
like 'uncompress failed with -5 for block 5383, sector 86132' would be
output to stdout/stderr. The savestate would still be playable, though.
Traced it down to cdrFreeze() failing to convert cdr.Prev from BCD->int
when calling ReadTrack(). Note that the odd 'cdr.Prev[0]++;' line seems
to be someone's hacky way of forcing ReadTrack() to avoid skipping what
it thinks is a duplicate sector read.
Daniel Silsby [Sat, 9 Nov 2019 01:30:04 +0000 (20:30 -0500)]
gpulib: fix out-of-bounds reads in do_cmd_buffer()
When gpu.cmd_buffer[] is filling up, and the last 1 or 2 words
in it are the beginning of a new vram read/write cmd, do_cmd_buffer()
would access out-of-bounds, reading garbage pos/size data.
Fixes corrupted gfx in this PS1 .exe test utility:
https://github.com/PeterLemon/PSX/tree/master/CPUTest/CPU/LOADSTORE/LW
(This and all similar tests on Peter's site).
Note that gfx access in this utility is done entirely through cmds given
through GPUwriteData(), i.e. direct CPU->GP0 stores, not DMA.
Paul Cercueil [Tue, 7 Jan 2020 17:26:14 +0000 (14:26 -0300)]
Add support for the Lightrec dynarec
Signed-off-by: Paul Cercueil <paul@crapouillou.net>
Paul Cercueil [Thu, 30 Jan 2020 13:15:16 +0000 (15:15 +0200)]
pcsxmem: mmap RAM/BIOS/scratchpad to better locations
This permits the Lightrec dynarec to emit better code.
Signed-off-by: Paul Cercueil <paul@crapouillou.net>
Paul Cercueil [Thu, 30 Jan 2020 23:18:58 +0000 (20:18 -0300)]
git subrepo clone (merge) https://github.com/witwall/mman-win32 deps/mman
subrepo:
subdir: "deps/mman"
merged: "
2d1c576e"
upstream:
origin: "https://github.com/witwall/mman-win32"
branch: "master"
commit: "
2d1c576e"
git-subrepo:
version: "0.4.1"
origin: "https://github.com/ingydotnet/git-subrepo.git"
commit: "
a04d8c2"
Paul Cercueil [Thu, 30 Jan 2020 15:34:17 +0000 (12:34 -0300)]
git subrepo clone https://github.com/pcercuei/lightrec.git deps/lightrec
subrepo:
subdir: "deps/lightrec"
merged: "
6c69e10"
upstream:
origin: "https://github.com/pcercuei/lightrec.git"
branch: "master"
commit: "
6c69e10"
git-subrepo:
version: "0.4.1"
origin: "https://github.com/ingydotnet/git-subrepo.git"
commit: "
a04d8c2"
Paul Cercueil [Thu, 30 Jan 2020 15:33:44 +0000 (12:33 -0300)]
git subrepo clone https://git.savannah.gnu.org/git/lightning.git deps/lightning
subrepo:
subdir: "deps/lightning"
merged: "
b0b8eb5"
upstream:
origin: "https://git.savannah.gnu.org/git/lightning.git"
branch: "master"
commit: "
b0b8eb5"
git-subrepo:
version: "0.4.1"
origin: "https://github.com/ingydotnet/git-subrepo.git"
commit: "
a04d8c2"
Twinaphex [Sat, 1 Feb 2020 14:04:03 +0000 (15:04 +0100)]
Merge pull request #376 from stuken/joycon_axis_fix
Add input analog axis range modifier
Stuart Kenny [Sat, 1 Feb 2020 13:20:01 +0000 (13:20 +0000)]
Add input analog axis range modifier
Add core option to change axis saturation. Square bounds allow controllers that struggle to fully register diagonal deflections . Very helpful with switch joycons and some android controllers.
Twinaphex [Thu, 23 Jan 2020 15:09:53 +0000 (16:09 +0100)]
Merge pull request #375 from jdgleaver/disk-control-v1
Add disk control interface v1 support
jdgleaver [Thu, 23 Jan 2020 14:58:53 +0000 (14:58 +0000)]
Add disk control interface v1 support
Twinaphex [Mon, 16 Dec 2019 17:59:27 +0000 (18:59 +0100)]
Merge pull request #370 from negativeExponent/switch
Update psxbios.c
negativeExponent [Mon, 16 Dec 2019 17:53:01 +0000 (01:53 +0800)]
Update psxbios.c
Twinaphex [Mon, 16 Dec 2019 17:50:50 +0000 (18:50 +0100)]
Merge pull request #369 from negativeExponent/switch
Update
negativeExponent [Mon, 16 Dec 2019 17:10:56 +0000 (01:10 +0800)]
Update
Twinaphex [Sat, 14 Dec 2019 18:09:16 +0000 (19:09 +0100)]
Merge pull request #368 from negativeExponent/memmap
Access psx main memory using retro_memory_map
Twinaphex [Sat, 14 Dec 2019 18:09:04 +0000 (19:09 +0100)]
Merge pull request #360 from negativeExponent/spu_irq
Add "Spu Irq" core option
negativeExponent [Sat, 14 Dec 2019 17:54:30 +0000 (01:54 +0800)]
Access psx main memory using retro_memory_map
notaz [Tue, 19 Nov 2019 22:24:11 +0000 (00:24 +0200)]
Merge pull request #147 from senquack/cdrom_sstate_fix
cdrom: add missing BCD->int convert in cdrFreeze()
Daniel Silsby [Tue, 12 Nov 2019 23:48:44 +0000 (18:48 -0500)]
cdrom: add missing BCD->int convert in cdrFreeze()
For some Eboot .PBP game images, when loading a savestate, a zlib error
like 'uncompress failed with -5 for block 5383, sector 86132' would be
output to stdout/stderr. The savestate would still be playable, though.
Traced it down to cdrFreeze() failing to convert cdr.Prev from BCD->int
when calling ReadTrack(). Note that the odd 'cdr.Prev[0]++;' line seems
to be someone's hacky way of forcing ReadTrack() to avoid skipping what
it thinks is a duplicate sector read.
notaz [Mon, 11 Nov 2019 18:50:44 +0000 (20:50 +0200)]
Merge pull request #146 from senquack/gpulib_fix
gpulib: fix out-of-bounds reads in do_cmd_buffer()
Daniel Silsby [Sat, 9 Nov 2019 01:30:04 +0000 (20:30 -0500)]
gpulib: fix out-of-bounds reads in do_cmd_buffer()
When gpu.cmd_buffer[] is filling up, and the last 1 or 2 words
in it are the beginning of a new vram read/write cmd, do_cmd_buffer()
would access out-of-bounds, reading garbage pos/size data.
Fixes corrupted gfx in this PS1 .exe test utility:
https://github.com/PeterLemon/PSX/tree/master/CPUTest/CPU/LOADSTORE/LW
(This and all similar tests on Peter's site).
Note that gfx access in this utility is done entirely through cmds given
through GPUwriteData(), i.e. direct CPU->GP0 stores, not DMA.
negativeExponent [Sat, 26 Oct 2019 16:46:50 +0000 (00:46 +0800)]
Add "Spu Irq" core option
Twinaphex [Thu, 24 Oct 2019 18:11:31 +0000 (20:11 +0200)]
Merge pull request #351 from SindenLightgun/master
Basic Guncon support
Twinaphex [Thu, 24 Oct 2019 18:11:17 +0000 (20:11 +0200)]
Merge pull request #358 from Sakitoshi/master
sbi support for multidisc pbp
Sakitoshi [Thu, 24 Oct 2019 04:14:07 +0000 (01:14 -0300)]
sbi support for multidisc pbp
same syntaxis as beetle-psx, name the sbi file after the pbp and append an underscore and the number of the disc at the end.
Twinaphex [Mon, 7 Oct 2019 16:09:17 +0000 (18:09 +0200)]
Merge pull request #354 from justinweiss/move-to-thread-api
3DS: Switch from svc* to the thread* API
Justin Weiss [Sun, 6 Oct 2019 04:35:06 +0000 (21:35 -0700)]
3DS: Switch from svc* to the thread* API
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.
Twinaphex [Thu, 3 Oct 2019 01:49:41 +0000 (03:49 +0200)]
Merge pull request #353 from justinweiss/default-thread-cpu-3ds
3DS: Schedule threads on the default core
Justin Weiss [Thu, 3 Oct 2019 00:49:12 +0000 (17:49 -0700)]
3DS: Schedule threads on the default core
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.
Twinaphex [Wed, 25 Sep 2019 16:17:57 +0000 (18:17 +0200)]
Merge pull request #349 from negativeExponent/unai_plugin_update
update gpu_unai plugin
negativeExponent [Wed, 25 Sep 2019 02:53:17 +0000 (10:53 +0800)]
Merge branch 'gpu_unai_plugin_update'
Twinaphex [Mon, 23 Sep 2019 02:50:52 +0000 (04:50 +0200)]
Merge pull request #348 from justinweiss/remove-utime
Stop calling utime on 3ds
Justin Weiss [Mon, 23 Sep 2019 02:14:07 +0000 (19:14 -0700)]
Stop calling utime on 3ds
The toolchain doesn't have utime defined, so these calls will fail.
Twinaphex [Mon, 23 Sep 2019 00:17:59 +0000 (02:17 +0200)]
Merge pull request #347 from justinweiss/enable-chd-3ds
Enable CHD on 3DS builds
Justin Weiss [Mon, 23 Sep 2019 00:12:20 +0000 (17:12 -0700)]
Enable CHD on 3DS builds
I don't know what build errors were happening before, but this built
cleanly for me.
Twinaphex [Sun, 22 Sep 2019 00:35:24 +0000 (02:35 +0200)]
Merge pull request #345 from justinweiss/enable-unai-3ds
Re-enable unai on 3DS
Twinaphex [Sun, 22 Sep 2019 00:08:23 +0000 (02:08 +0200)]
Merge pull request #346 from justinweiss/fix-sound-3ds
Fix sound over-buffering on 3ds
Justin Weiss [Sat, 21 Sep 2019 23:49:45 +0000 (16:49 -0700)]
Fix sound over-buffering on 3ds
With iTempo turned on, we generate a frame and a half of sound data
each frame, which causes dropped sound frames and noise.
It looks like GPH hacks are disabled for 3ds in other places, so
disabling it here too seemed like the correct fix.
Justin Weiss [Sat, 21 Sep 2019 23:44:31 +0000 (16:44 -0700)]
Re-enable unai on 3DS
It now builds properly, and is much much faster.
SindenLightgun [Sat, 14 Sep 2019 23:11:53 +0000 (00:11 +0100)]
Adding Guncon support for mouse based lightguns
SindenLightgun [Sat, 14 Sep 2019 23:06:20 +0000 (00:06 +0100)]
Adding Guncon support for mouse based lightguns
SindenLightgun [Sat, 14 Sep 2019 23:03:36 +0000 (00:03 +0100)]
Update psemu_plugin_defs.h
SindenLightgun [Sat, 14 Sep 2019 23:02:42 +0000 (00:02 +0100)]
Adding Guncon support for mouse based lightguns
SindenLightgun [Sat, 14 Sep 2019 23:01:43 +0000 (00:01 +0100)]
Adding Guncon support for mouse based lightguns
SindenLightgun [Sat, 14 Sep 2019 22:59:29 +0000 (23:59 +0100)]
Adding Guncon support for mouse based lightguns
SindenLightgun [Sat, 14 Sep 2019 22:57:30 +0000 (23:57 +0100)]
Adding Guncon support for mouse based lightguns
SindenLightgun [Sat, 14 Sep 2019 22:54:40 +0000 (23:54 +0100)]
Adding Guncon support for mouse based lightguns
Twinaphex [Wed, 21 Aug 2019 23:24:21 +0000 (01:24 +0200)]
Merge pull request #339 from dankcushions/patch-1
Added support for PSXONPSP660.bin and psx* named BIOS files
dankcushions [Wed, 21 Aug 2019 22:47:11 +0000 (23:47 +0100)]
Added support for PSXONPSP660.bin and psx* named BIOS files
negativeExponent [Sat, 17 Aug 2019 01:31:06 +0000 (09:31 +0800)]
Backport GPU Unai plugin from PCSX4ALL
- backports gpu unai plugin from PCSX4ALL
- sync necessary files with notaz/master to allow building standalone app
Twinaphex [Wed, 14 Aug 2019 15:57:51 +0000 (17:57 +0200)]
Merge pull request #335 from yoshisuga/ios-arm64-buildbot-fix
iOS: support for building using buildbot recipe
Twinaphex [Wed, 14 Aug 2019 13:19:52 +0000 (15:19 +0200)]
Merge pull request #334 from jdgleaver/options-update
Update 'libretro_core_options.h' to v1.3 format
jdgleaver [Wed, 14 Aug 2019 13:10:51 +0000 (14:10 +0100)]
Update 'libretro_core_options.h' to v1.3 format
Yoshi Sugawara [Tue, 13 Aug 2019 20:40:25 +0000 (10:40 -1000)]
iOS: support for building using buildbot recipe
Twinaphex [Wed, 7 Aug 2019 11:58:05 +0000 (13:58 +0200)]
Merge pull request #330 from retro-wertz/skip_plugins
Do not compile plugins when using the non-static build method
retro-wertz [Wed, 7 Aug 2019 10:49:38 +0000 (18:49 +0800)]
Do not compile plugins when using the non-static build method
- This is meant for platforms that still uses the non-static build method to compile the libretro core (aka versions of retropie)
- The output file is still libretro.so to preserve any compatibility with existing script
- Using the static makefile is still recommended.
Twinaphex [Mon, 5 Aug 2019 02:53:52 +0000 (04:53 +0200)]
Merge pull request #328 from retro-wertz/sanitize_gpu_adv_options
Sanitize gpu adv options and close plugins upon exiting core