0
0
mirror of https://github.com/Ishan09811/pine.git synced 2025-04-24 08:55:10 +00:00

2278 Commits

Author SHA1 Message Date
Ishan09811
3d63a718ef
fix 2024-07-24 18:51:35 +05:30
Ishan09811
9919c96160
Remove Unnecessary disable audio output option 2024-07-24 18:31:39 +05:30
Ishan09811
1d799d69a8 Update audio-core submodule 2024-07-24 13:32:43 +05:30
Ishan09811
1caf9c9d7a
add null `audioOutputEngine` option 2024-07-24 13:06:56 +05:30
Ishan09811
05a4cd661f
remove sdl2 option from audio output engine setting 2024-07-24 12:24:20 +05:30
Ishan09811
65c1fbf817
Implement `ConvertJStringToString` function 2024-07-24 11:57:26 +05:30
Ishan09811
a0e414f75c
convert jstring to string before passing to audio-core 2024-07-24 11:49:00 +05:30
Ishan09811
3826e32458 fix 2024-07-24 11:38:27 +05:30
Ishan09811
4ee44ec5f1
Implement `audioOutputEngine` option 2024-07-24 11:10:09 +05:30
Ishan09811
8398baf359
Implement Jit32 (#9)
* Introduce Jit32 and JitCore32 objects

* Initialize JIT when launching 32bit executables

* Introduce kernel objects for 32bit processes

This commit introduces two new kernel thread types, `KNceThread` and `Jit32Thread`.
`KNceThread`s behave like the previous kernel thread object by setting up thread state and jumping into guest code.
`KJit32Thread`s need to run guest code on a `JitCore32` object, so they perform the necessary state setup and then they also setup the jit core for executing guest code. A loop was introduced because jit execution might return when halted, either for an SVC or for preemption. In those cases the thread needs to wait to be scheduled before executing again.

The process object has also been updated to be able to create 32bit threads when running 32bit processes.

Additionally NCE's ThreadContext has been removed from DeviceState, since a thread is not an NCE thread only anymore, and IPC code has been changed to retrieve the tls region from the thread object.

* Introduce a preemption handler for scheduling with JIT

Scheduler initialization has been delayed until process information is available, as it needs to differentiate between 32bit and 64bit processes.

* Support initializing VMM for 32bit address spaces

* Implement GetThreadContext3 SVC for 32bit processes

* Introduce a thread local pointer to the current guest thread

This also gives easier access to the current guest process structure via the thread structure, just like any kernel does for their internal structures.

* Add a signal handler for JIT threads

* Implement coprocessor 15 accesses

* Implement exclusive memory writes and exclusive monitor

* Enable JIT fastmem

* Enable more JIT optimizations and log exceptions

* Fix incorrect logging call in QueryMemory

* Translate guest virtual addresses on direct accesses from SVCs

* Perform TLS page address translation for direct accesses

This allows the IPC code to work without modifications since `KThread::tlsRegion` now stores a host address that can be accessed directly.

* Add Dynarmic as a submodule

* Revert "Perform TLS page address translation for direct accesses"

This reverts commit 2e25b3f7e4f0687b038fa949648c74e3393da006.

* Revert "Translate guest virtual addresses on direct accesses from SVCs"

This reverts commit 7bec4e0902e6dbb6f06a2efac53a1e2127f44068.

* add an option to change cpu backend

* Fix

---------

Co-authored-by: lynxnb <niccolo.betto@gmail.com>
2024-07-23 23:59:15 +05:30
Ishan09811
d68ec66d70
Typo 2024-07-23 00:36:49 +05:30
Ishan09811
0ec8da46c5
missing import 2024-07-22 22:31:43 +05:30
Ishan09811
0ed39a0355
Add edit overlay button in emulation overlay options 2024-07-22 22:13:28 +05:30
Ishan09811
a44cb7ee88
Fix hide invalid files preference title not showing 2024-07-22 16:17:13 +05:30
Ishan09811
cb9bf7c185
Add multiple search location support (#8)
* Add support for multiple search locations

Co-authored-by: hacobotdev <hacobotdev>

* SearchLocationHelper: Use mutableListOf<Uri> and change the return value of the ``getSearchLocations`` function to List<Uri>

* MainViewModel: Modify load rom and check rom hash to accept List uri instead of array uri

* Use SearchLocationHelper when initialising search location first time

* fix search location app bar title
2024-07-22 14:31:56 +05:30
Ishan09811
6806326598
Properly handle save export function (#7) 2024-07-21 22:36:48 +05:30
Ishan09811
373ba24fa3
add more aspect ratios 2024-07-21 15:15:39 +05:30
Ishan09811
5a93c07dd0
Implement dynamic resolution option (#6) 2024-07-21 12:49:47 +05:30
Ishan09811
f7ea5e4f26
Implement thermal indicator (#4) 2024-07-20 23:48:52 +05:30
Ishan09811
8a52a1d3c0
Add Long Click Listener to Remove Firmware in FirmwareImportPreference (#3) 2024-07-19 11:19:28 +05:30
Ishan09811
998b9d1ce0
Typo 2024-07-18 23:54:01 +05:30
Ishan09811
f5b50095da
Add a per-game option to delete the shader cache that has been created during the emulation
Co-authored-by: QuackingCanary <QuackingCanary>
2024-07-18 23:49:54 +05:30
Ishan09811
4a4e9a925c
Initial in-game-menu support (#2) 2024-07-17 22:15:26 +05:30
Ishan09811
ecadc58878
Some basic rebrand (#1) 2024-07-13 18:22:13 +05:30
Ishan09811
36632139b0
singing fixes 2024-07-13 13:13:31 +05:30
Ishan09811
527f53fd01 Update audio-core and shader-compiler submodule 2024-07-12 20:55:30 +05:30
TheASVigilante
3c62a7264c Fix accidental recursion with trap handling 2024-07-11 15:22:33 +05:30
lynxnb
b35e200ab6 Move memory trapping infrastructure outside of NCE 2024-07-11 15:22:10 +05:30
lynxnb
514f5607e6 Move SvcTable definition out of header files 2024-07-11 15:21:45 +05:30
lynxnb
2be8ebddcd Introduce a generic register context for SVCs
`SvcContext` represents a common interface for accessing registers from SVCs, decoupling them from a particular thread context.
2024-07-11 15:21:26 +05:30
lynxnb
136c5b74aa KProcess: correctly handle empty optional chunk 2024-07-11 15:21:04 +05:30
lynxnb
75f8754a2e memory: update KMemory to use guest addresses 2024-07-11 15:20:46 +05:30
lynxnb
c2aa20f38e memory: use guest addresses everywhere
The memory manager has been reworked to handle addresses in the guest address space, and applying an offset to get the address on the host whenever memory needs to be mapped/unmapped/reprotected.
2024-07-11 15:20:28 +05:30
lynxnb
e845ad5924 memory: fix insertion at the beginning of the chunks map
The memory manager was incorrectly inserting chunks when the new chunk was being inserted at the beginning of the chunks map (no previous chunk available). The existing chunk was resized to an empty chunk (correctly), but the new chunk was never inserted because of `std::map::insert` skipping insertion on an already existing key.
This resulted in an empty chunk being left at the beginning of the map, causing infinite loops for code that worked by scanning the chunks map.

Usages of `std::map::operator[]` have also been replaced with the safer `insert_or_assign`.
2024-07-11 15:20:09 +05:30
lynxnb
74bf8ea611 Loader: skip patching non 64-bit executables 2024-07-11 15:19:44 +05:30
lynxnb
f05959f195 Loader: make dynsym handling more generic
dynsym is not hardcoded to handle Elf64_Sym only anymore, and a templated ResolveSymbol function has been introduced to easily support Elf32_Sym lookup in the future.
2024-07-11 15:19:26 +05:30
lynxnb
5e8bd61d6c Move symbol hooking setup code out of loader 2024-07-11 15:18:06 +05:30
lynxnb
77752b45fc Loader: skip patching non 64-bit executables 2024-07-11 14:52:30 +05:30
lynxnb
c91bd07699 Loader: make dynsym handling more generic
dynsym is not hardcoded to handle Elf64_Sym only anymore, and a templated ResolveSymbol function has been introduced to easily support Elf32_Sym lookup in the future.
2024-07-11 14:52:30 +05:30
lynxnb
7941600765 Move symbol hooking setup code out of loader 2024-07-11 14:52:29 +05:30
Ishan09811
6c504d27b3
Fix invalid switch-case syntax resulting from nvdrv macro expansion
Co-authored-by: nickbeth
<nickbeth>
2024-07-11 14:41:36 +05:30
Ishan09811
007f27a039
Fix try-catch in save import
Co-authored-by: PabloG02
<PabloG02>
2024-07-09 14:47:14 +05:30
Ishan09811
93ef1ba967
basic rebrand 2024-07-08 19:56:21 +05:30
Ishan09811
74633ad0e3
Implement info reading from Ro section
Co-authored-by: dima-xd
<dimaxdqwerty@gmail.com>
2024-07-08 01:10:59 +05:30
Ishan09811
ca14586b55
Iterate through siblings without recursion in vfs::TraverseDirectory ( #205) Prevents a stack overflow because of recursion depth.
Co-authored-by: PabloG02
<PabloG02>
2024-07-07 19:40:13 +05:30
Ishan09811
48e368e109
fix 2024-07-07 10:23:57 +05:30
Ishan09811
1b4cd2e137
downgrade kotlin to 1.9.22 2024-07-07 01:34:32 +05:30
Ishan09811
d9ff08273e
fix 2024-07-07 01:32:25 +05:30
Ishan09811
1fbec43c69
only build release apk 2024-07-06 18:23:49 +05:30
Ishan09811
6d20f045a3
Update Dependencies 2024-07-06 16:34:43 +05:30