summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2017-10-06Merge pull request #2975 from ↵Sebastian Valle
shinyquagsire23/archive-ncch-container-and-override file_sys/archive_ncch: use NCCHs/.apps instead of .romfs files, NCCH section override
2017-10-04Merge pull request #2953 from Subv/applet_launchSebastian Valle
HLE/APT: Always set up the APT parameter when starting a library applet.
2017-10-04Extracted the attribute setup and draw commands into their own functionsHuw Pascoe
2017-10-03Merge pull request #2977 from Subv/shmem_createbunnei
SharedMemory: Don't take over and unmap the source memory block when creating a shared memory, just reference it
2017-10-02Kernel/SharedMemory: Don't take over and unmap the source memory block when ↵Subv
creating a shared memory, just reference it. Also reference the right offset into the backing block for the requested address.
2017-10-01Merge pull request #2971 from Subv/per_process_memopsSebastian Valle
Memory: Add overloads for ReadBlock and WriteBlock that operate on a specific process.
2017-10-01Memory: Make WriteBlock take a Process parameter on which to operateSubv
2017-10-01Memory: Make ReadBlock take a Process parameter on which to operateSubv
2017-10-01Kernel/Thread: Added a helper function to get a thread's command buffer VAddr.Subv
2017-10-01Merge pull request #2974 from Subv/nim_eventSebastian Valle
Services/NIM: Implement CheckForSysUpdateEvent.
2017-10-01file_sys, loader: add support for reading TMDs to determine app pathsshinyquagsire23
2017-10-01file_sys: add class for Title Metadata (TMD)shinyquagsire23
2017-10-01file_sys/ncch_container: add RomFS, ExeFS override to allow for backward ↵shinyquagsire23
compatibility with existing .romfs system archive dumps
2017-10-01file_sys/archive_ncch: use NCCHContainer instead of loading .romfs filesshinyquagsire23
2017-09-30Services/NIM: Implement CheckForSysUpdateEvent.Subv
Implementation verified by reverse engineering. This lets the Home Menu boot without crashing on startup.
2017-09-30Moved down_count to CoreTimingHuw Pascoe
2017-09-30Services/UDS: Handle the rest of the connection sequence. (#2963)B3n30
Services/UDS: Handle the rest of the connection sequence.
2017-09-30Merge pull request #2946 from Subv/home_menu_aptSebastian Valle
Implement PrepareToStartNewestHomeMenu and fixed an APT regression.
2017-09-30Merge pull request #2967 from Subv/thread_wakeup_callbacksSebastian Valle
Kernel/Threads: When putting a thread to wait, specify a function to execute when it is awoken
2017-09-30Fixed type conversion ambiguityHuw Pascoe
2017-09-29Merge pull request #2961 from Subv/load_titlesbunnei
Loaders: Don't automatically set the current process every time we load an application.
2017-09-28Kernel/Threads: When putting a thread to wait, specify a function to execute ↵Subv
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.
2017-09-27Merge pull request #2907 from Subv/warnings3Sebastian Valle
Disable unary operator- on Math::Vec2/Vec3/Vec4 for unsigned types.
2017-09-27Disable unary operator- on Math::Vec2/Vec3/Vec4 for unsigned types.Subv
It is unlikely we will ever use this without first doing a Cast to a signed type. Fixes 9 "unary minus operator applied to unsigned type, result still unsigned" warnings on MSVC2017.3
2017-09-26Loaders: Don't automatically set the current process every time we load an ↵Subv
application. The loaders will now just create a Kernel::Process, construct it and return it to the caller, which is responsible for setting it as the current process and configuring the global page table.
2017-09-26Merge pull request #2954 from Subv/cache_unmapped_memJames Rowe
Memory/RasterizerCache: Ignore unmapped memory regions when caching physical regions
2017-09-26Kernel/Thread: Allow specifying which process a thread belongs to when ↵Subv
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.
2017-09-26Tests: Added Memory::IsValidVirtualAddress tests.Subv
2017-09-26Tests: Fixed ARM VFP testsSubv
2017-09-26Memory: Allow IsValidVirtualAddress to be called with a specific process ↵Subv
parameter. There is still an overload of IsValidVirtualAddress that only takes the VAddr and will default to the current process.
2017-09-26Merge pull request #2958 from Subv/audio_buffer_datatypeMerry
Audio: Use std::deque instead of std::vector for the audio buffer type (StereoBuffer16)
2017-09-25HLE/APT: Always set up the APT parameter when starting a library applet.Subv
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.
2017-09-25Memory/RasterizerCache: Ignore unmapped memory regions when caching physical ↵Subv
regions. Not all physical regions need to be mapped into the address space of every process, for example, system modules do not have a VRAM mapping. This fixes a crash when loading applets and system modules.
2017-09-25Audio: Use std::deque instead of std::vector for the audio buffer type ↵Subv
(StereoBuffer16). The current code inserts and deletes elements from the beginning of the audio buffer, which is very inefficient in an std::vector. Profiling was done using VisualStudio2017's Performance Analyzer in Super Mario 3D Land. Before this change: AudioInterp::Linear had 14.14% of the runtime (inclusive) and most of that time was spent in std::vector's insert implementation. After this change: AudioInterp::Linear has 0.36% of the runtime (inclusive)
2017-09-25HLE/Archives: Allow multiple loaded applications to access their SelfNCCH ↵Subv
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.
2017-09-25Merge pull request #2952 from MerryMage/page-tablesB3n30
Switchable Page Tables
2017-09-25Merge pull request #2951 from huwpascoe/perf-4B3n30
Optimized Morton
2017-09-25Merge pull request #2949 from wwylele/fix-trB3n30
citra-qt: fix some untranslated strings
2017-09-25Merge pull request #2948 from Subv/register_serviceB3n30
HLE/SRV: Implemented RegisterService.
2017-09-25Loader/NCCH: Add support for loading application updates (#2927)Max Thomas
* loader/ncch: split NCCH parsing into its own file * loader/ncch: add support for loading update NCCHs from the SD card * loader/ncch: fix formatting * file_sys/ncch_container: Return a value for OpenFile * loader/ncch: cleanup, always instantiate overlay_ncch to base_ncch * file_sys/ncch_container: better encryption checks, allow non-app NCCHs to load properly and for the existence of NCCH structures to be checked * file_sys/ncch_container: pass filepath as a const reference
2017-09-25Services/UDS: Added a function to send EAPoL-Start packets (#2920)B3n30
* 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
2017-09-25Optimized Float<M,E> multiplicationHuw Pascoe
Before: ucomiss xmm1, xmm1 jp .L9 pxor xmm2, xmm2 mov edx, 1 ucomiss xmm0, xmm2 setp al cmovne eax, edx test al, al jne .L9 .L3: movaps xmm0, xmm2 ret .L9: ucomiss xmm0, xmm0 jp .L10 pxor xmm2, xmm2 mov edx, 1 ucomiss xmm1, xmm2 setp al cmovne eax, edx test al, al je .L3 After: movaps xmm2, xmm1 mulss xmm2, xmm0 ucomiss xmm2, xmm2 jnp .L3 ucomiss xmm1, xmm0 jnp .L11 .L3: movaps xmm0, xmm2 ret .L11: pxor xmm2, xmm2 jmp .L3
2017-09-24ARM_Interface: Implement PageTableChangedMerryMage
2017-09-24memory: Remove GetCurrentPageTablePointersMerryMage
2017-09-24memory: Add GetCurrentPageTable/SetCurrentPageTableMerryMage
Don't expose Memory::current_page_table as a global.
2017-09-24Optimized MortonHuw Pascoe
2017-09-24citra-qt: fix some untranslated stringswwylele
2017-09-24HLE/APT: Always return an error from PrepareToStartNewestHomeMenu so that ↵Subv
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. "
2017-09-24HLE/APT: Prepare the APT Wakeup parameter when the game calls InitializeSubv
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.
2017-09-24Merge pull request #2921 from jroweboy/batch-fix-2James Rowe
GPU: Add draw for immediate and batch modes