| Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
# Conflicts:
# src/core/CMakeLists.txt
# src/core/arm/dynarmic/arm_dynarmic.cpp
# src/core/arm/dyncom/arm_dyncom.cpp
# src/core/hle/kernel/process.cpp
# src/core/hle/kernel/thread.cpp
# src/core/hle/kernel/thread.h
# src/core/hle/kernel/vm_manager.cpp
# src/core/loader/3dsx.cpp
# src/core/loader/elf.cpp
# src/core/loader/ncch.cpp
# src/core/memory.cpp
# src/core/memory.h
# src/core/memory_setup.h
|
|
|
|
|
|
Remove more usages of GetPointer.
|
|
HLE/APT: Always set up the APT parameter when starting a library applet.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
SharedMemory: Don't take over and unmap the source memory block when creating a shared memory, just reference it
|
|
creating a shared memory, just reference it.
Also reference the right offset into the backing block for the requested address.
|
|
Memory: Add overloads for ReadBlock and WriteBlock that operate on a specific process.
|
|
|
|
Services/NIM: Implement CheckForSysUpdateEvent.
|
|
|
|
|
|
|
|
|
|
|
|
Implementation verified by reverse engineering.
This lets the Home Menu boot without crashing on startup.
|
|
|
|
Services/UDS: Handle the rest of the connection sequence.
|
|
Implement PrepareToStartNewestHomeMenu and fixed an APT regression.
|
|
Kernel/Threads: When putting a thread to wait, specify a function to execute when it is awoken
|
|
|
|
when it is awoken.
This change makes for a clearer (less confusing) path of execution in the scheduler, now the code to execute when a thread awakes is closer to the code that puts the thread to sleep (WaitSynch1, WaitSynchN). It also allows us to implement the special wake up behavior of ReplyAndReceive without hacking up WaitObject::WakeupAllWaitingThreads.
If savestates are desired in the future, we can change this implementation to one similar to the CoreTiming event system, where we first register the callback functions at startup and assign their identifiers to the Thread callback variable instead of directly assigning a lambda to the wake up callback variable.
|
|
creating it.
Don't automatically assume that Thread::Create will only be called when the parent process is currently scheduled. This assumption will be broken when applets or system modules are loaded.
|
|
Only use the HLE interface if an HLE applet with the desired id was started.
This commit reorganizes the APT code surrounding parameter creation and delivery to make it easier to support LLE applets in the future.
As future work, the HLE applet interface can be reworked to utilize the same facilities as the LLE interface.
|
|
archive independently.
The loaders now register each loaded ROM with the SelfNCCH factory, which keeps the data around for the duration of the emulation session.
When opening the SelfNCCH archive, the factory queries the current program's programid and uses that as a key to the map that contains the NCCHData structure (RomFS, Icon, Banner, etc).
3dsx files do not have a programid and will use a default of 0 for this value, thus, only 1 3dsx file with RomFS is loadable at the same time.
|
|
Switchable Page Tables
|
|
HLE/SRV: Implemented RegisterService.
|
|
* Services/UDS: Added a function to generate the EAPoL-Start packet body.
* Services/UDS: Added filter for beacons.
* Services/UDS: Lock a mutex when accessing connection_status from both the emulation and network thread.
* Services/UDS: Handle the Association Response frame and respond with the EAPoL-Start frame.
* fixup: make use of current_node, changed received_beacons into a list, mutex and assert corrections
* fixup: fix damn clang-format
|
|
Don't expose Memory::current_page_table as a global.
|
|
the Home Menu doesn't try to reboot the system.
As per 3dbrew:
"During Home Menu start-up it uses APT:PrepareToStartNewestHomeMenu. If that doesn't return an error(normally NS returns 0xC8A0CFFC for that), Home Menu starts a hardware reboot with APT:StartNewestHomeMenu etc. "
|
|
We need to know what is being run so we can set the APT parameter destination AppId correctly.
Delaying the preparation of the parameter until we know which AppId is running lets us support booting both the Home Menu and normal game Applications.
|
|
Now system modules can do more than just crash immediately on startup.
|
|
Services/NS: Port ns:s to the new service framework.
|
|
|
|
Kernel/Memory: Give each process its own page table and allow switching the current page table upon reschedule
|
|
context switch from an idle thread into a thread in the same process.
We were unnecessarily clearing the cache when going from Process A -> Idle -> Process A, this caused extreme performance regressions.
|
|
current process' page table to obtain a pointer.
|
|
APT: load different shared font depending on the region
|
|
|
|
The loader is in charge of setting the newly created process's page table as the main one during the loading process.
|
|
Services/UDS: Handle beacon frames and the basic AP connection sequence frames.
|