Commit Graph

4736 Commits (eaa9f968a629b8743f22a2277a5332942a3cd9d9)

Author SHA1 Message Date
bunnei b1712b8312
Merge pull request #14 from ogniK5377/master
Changed ICommonStateGetter::ReceiveMessage to allow further execution in games
8 years ago
bunnei 92801b1c34 renderer_gl: Clear screen to black before rendering framebuffer. 8 years ago
David Marcec f3264dd78d Games expect 15 for ICommonStateGetter::ReceiveMessage in order to continue execution 8 years ago
bunnei ebd613c2cc renderer: Render previous frame when no new one is available. 8 years ago
bunnei 71eeab257f lm: Fix IPC header for Initialize. 8 years ago
bunnei 7bedea73a8 time: Implement GetStandardUserSystemClock, GetCurrentTime. 8 years ago
bunnei d81a984d4a audio: Add files to CMake. 8 years ago
bunnei 2e8246a02c hid: Remove unused registered_loggers. 8 years ago
bunnei 7a50d56d0e audio: Stub out AudOutU::ListAudioOuts. 8 years ago
bunnei f4a3d28224 hid: Implement IAppletResource::GetSharedMemoryHandle. 8 years ago
bunnei 115d3e133f qt: Update about dialog to show license for GPLv2 only.
Fixes #6.
8 years ago
bunnei 22659afcd0 shared_memory: Minor fixes and cleanup. 8 years ago
bunnei 974362bc12 svc: Implement svcMapSharedMemory. 8 years ago
bunnei bd58c5470c kernel: Increase default stack size to 64K. 8 years ago
Jannik Vogel 1a93237c23 Remove Surface Viewer stub 8 years ago
bunnei 7435dc53c8
Merge pull request #4 from spycrab/aboutdialog
Implement "About" dialog
8 years ago
spycrab c493bd9cc9 Implement "About" dialog 8 years ago
Thog 06e288cea0
Add missing FileType declarations in GuessFromExtension and GetFileTypeString 8 years ago
James Rowe a24dbcac6e yuzu qt copy windows deps renamed 8 years ago
MerryMage 80db02c497 Minor cleanup 8 years ago
MerryMage b3c303539e macOS: Update Info.plist 8 years ago
James Rowe c2d28351c7 Add new icons and fix up the linux paths for install 8 years ago
MerryMage 668e5452fa Update dynarmic to bc73004
bc73004 a64_merge_interpret_blocks: Remove debug output
4e656ed tests/A64: Randomize PSTATE.<NZCV>
fd9530b A64: Optimization: Merge interpret blocks
3c9eb04 testenv: Use format constants
324f3fc tests/A64: Unicorn interface fixes
98ecbe7 tests/A64: Fuzz against unicorn
b1d38e7 tests/A64: Move TestEnvironment to own header
5218ad9 A64/data_processing_pcrel: bug: ADR{,P} instructions sign extend their immediate
b1a8c39 A64/data_processing_addsub: bug: {ADD,SUB}S (extended register) instructions write to ZR when d = 31
64827fb a64_emit_x64: bug: A64CallSupervisor trampled callee-save registers
1bfa04d emit_x64: bug: OP m/r64, imm32 form instructions sign-extend their immediate on x64
edadeea A64 inferface: Use two argument static_assert
9ab1304 A64: Add ExceptionRaised IR instruction
6843eed Update readme
7438d07 A64/translate: Add TranslateSingleInstruction function
8 years ago
MerryMage e86bdb1601 Fix build on macOS and linux 8 years ago
bunnei 17af2937fe arm_unicorn: Log unmapped memory access address. 8 years ago
bunnei 95ce471774 config: Default log filter to trace. 8 years ago
bunnei 1247c53786 yuzu: Update license text to be consistent across project. 8 years ago
James Rowe 70e65ee63a Remove settings issues in sdl and fix a few files that broke in mingw 8 years ago
James Rowe 18ca3ca751 Removing unused settings and yuzu rebranding 8 years ago
James Rowe f5f28a4f67 Get yuzu sdl to start compiling 8 years ago
James Rowe 389979018c Remove gpu debugger and get yuzu qt to compile 8 years ago
James Rowe 1d28b2e142 Remove references to PICA and rasterizers in video_core 8 years ago
James Rowe ebf9a784a9 Massive removal of unused modules 8 years ago
bunnei 890bbc0cd3 config: Default CPU core to Unicorn. 8 years ago
bunnei 8e51c61dbc core: Gut out cryptop, since it doesn't compile with C++17. 8 years ago
MerryMage b628192bf2 configuration: Add cpu_core configuration option 8 years ago
MerryMage d2fbc78320 arm_dynarmic: Implement core 8 years ago
bunnei 056f987bcd core: Include <algorithm> where used. 8 years ago
bunnei 11adef4843 renderer_opengl: Fix LOG_TRACE in LoadFBToScreenInfo. 8 years ago
bunnei 94ad97def0 nv: Fix more broken asserts. 8 years ago
bunnei ac2feaf5fb nvdisp_disp0: Fix broken assert. 8 years ago
bunnei 039fc7f985 core: Fix recent GCC build breaks. 8 years ago
bunnei 97ef21e166 svc: Implement GetSystemTick. 8 years ago
bunnei 305035b503 nvdisp_disp0: Call SwapBuffers to render framebuffer. 8 years ago
bunnei ee4691297f renderer_opengl: Support rendering Switch framebuffer. 8 years ago
bunnei 236d463c52 render_base: Add a struct describing framebuffer metadata. 8 years ago
bunnei 866e66dc31 renderer_opengl: Add MortonCopyPixels function for Switch framebuffer. 8 years ago
bunnei 9e2ad45c98 renderer_opengl: Update DrawScreens for Switch. 8 years ago
bunnei 292135a3b7 CMakeLists: Add framebuffer_layout.cpp. 8 years ago
bunnei 482cf8a005 frontend: Update for undocked Switch screen layout. 8 years ago
Subv 1ca800ccee NV: Move the nv device nodes to their own directory and namespace. 8 years ago
Subv 977ce4abbc VI: Use a Pulse event instead of OneShot for the vblank events.
This prevents missing frames if the vblank fires between the DequeueBuffer and Wait(vsync) calls
8 years ago
bunnei 7e0ff43da0 vi: Use new CoreTiming::EventType 8 years ago
Subv 34ae2ec644 NV: Expose the nvdisp_disp0 device and a weak reference to the nvdrv:a service.
NVFlinger will call into the nvdisp_disp0 device to perform screen flips, bypassing the ioctl interface.

We now have the address of the framebuffer to draw, we just need to actually put it on the screen.
8 years ago
Subv e21fbd9ae5 NV: Determine what buffer to draw for each layer of each display.
Don't try to draw buffers that the guest application is using, only queued buffers are eligible for drawing.

Drawing actual pixels is still not implemented.
8 years ago
Subv 404149e475 NV: Signal all display's vsync event 60 times per second. 8 years ago
Subv d205dee0a6 NV: Give each display its own vsync event. 8 years ago
Subv 927569bed8 NV: Keep track of Displays, Layers and BufferQueues in nvflinger. 8 years ago
Subv fb73e8b723 IPC: Allow passing arguments to the Interfaces when using PushIpcInterface 8 years ago
Subv 25f29c2f4f NV: Implemented (with stubs) the vi:m service and some of its subservices.
The homebrew display test application now properly writes graphics data to the graphics buffer but we still don't have a way to compose the display layers.
8 years ago
Subv 94a5e97eb3 NV: Implemented the nvdrv:a service and the /dev/nvmap device. 8 years ago
Subv ab86b80cac IPC: Corrected some definitions for the buffer C descriptor flags. 8 years ago
Subv ba02f0deef svc: Stub ResetSignal and CreateTransferMemory 8 years ago
Subv 0a1278081e svc: Stub SetMemoryAttribute 8 years ago
Subv 7ad20154fc Threads: Added enum values for the Switch's 4 cpu cores and implemented svcGetInfo(AllowedCpuIdBitmask) 8 years ago
Subv 188feba457 Services: Allow lm to log single-character messages. 8 years ago
Subv c2ee513d35 SVC: Fixed WaitSynchronization with multiple handles when none is immediately ready. 8 years ago
Subv bc91ebacc1 SVC: Implemented CancelSynchronization. 8 years ago
Subv a418f6e77b ErrorCodes: Updated the InvalidHandle and Timeout kernel error codes. 8 years ago
Subv 8d9250fa70 SVC: Fixed WaitSynchronization with multiple handles when at least one of them is ready. 8 years ago
bunnei 4236799832 kernel: Rename Semaphore to ConditionVariable. 8 years ago
bunnei 9fcd2bf672 mutex: Remove unused call to VerifyGuestState. 8 years ago
Subv db3a525166 Kernel: Actually wake up the requested number of threads in Semaphore::Release.
Also properly keep track of data in guest memory, this fixes managing the semaphore from userland.

It was found that Semaphores are actually Condition Variables, with Release(1) and Release(-1) being equivalent to notify_one and notify_all. We should change the name of the class to reflect this.
8 years ago
Subv 1bbe9309da Kernel: Properly keep track of mutex lock data in the guest memory. This fixes userland locking/unlocking. 8 years ago
Subv 2a3f8e8484 Kernel: Allow chaining WaitSynchronization calls inside a wakeup callback. 8 years ago
MerryMage f10a304ecd fix macos build 8 years ago
bunnei d6e4e6ea32 core_timing: Use 1.020GHz for core clock rate. 8 years ago
B3n30 82151d407d CoreTiming: Reworked CoreTiming (cherry-picked from Citra #3119)
* CoreTiming: New CoreTiming; Add Test for CoreTiming
8 years ago
Subv c12c756539 IPC: Make DuplicateSession return the Domain instead of the Session if the request was made on a Domain interface. 8 years ago
Subv e3b4c8e043 AppletOE: Fixed command buffer structure for ReceiveMessage. 8 years ago
Subv ad965501d0 IPC: Corrected some command headers in the IPC Controller interface. 8 years ago
Subv 166286e976 IPC: Corrected some command header sizes in appletOE. 8 years ago
Subv ba2ffd7b81 IPC: Take the number of domain objects as a parameter in MakeBuilder. 8 years ago
Subv 5f41477f9c SM: Fixed connecting to services with an 8-byte name, like appletOE. 8 years ago
Subv 80f6df5414 IPC: Fixed pushing ResultCodes into the command buffer.
They should have 32 bits of padding after the error code now.
8 years ago
Subv 32847d8b86 IPC: Add functions to read the input move/copy objects from an IPC request. 8 years ago
Subv 7e3561b1cd IPC: Don't attempt to read the command buffer if it holds a Close request. 8 years ago
Subv 0368324f79 IPC Cleanup: Remove 3DS-specific code and translate copy, move and domain objects in IPC requests.
Popping objects from the buffer is still not implemented.
8 years ago
Subv b0ceb4df70 IPC: Skip the entire u64 of the command id when receiving an IPC request.
Service code now doesn't have to deal with this.
8 years ago
Subv 226786f0b0 IPC: Use the correct size when pushing raw data to the command buffer and fixed pushing domain objects.
Domain object ids are always stored immediately after the raw data.
8 years ago
bunnei bc8ef64804 svc: Implement svcSignalProcessWideKey. 8 years ago
bunnei bd377908d7 audio: Log dropping frames as trace to reduce spam. 8 years ago
bunnei 4e33b4b42f semaphore: More changes for Switch. 8 years ago
bunnei 0f6fbdb963 wait_object: Refactor to allow waking up a single thread. 8 years ago
bunnei bc77a7580e nso: Always load the filepath specified by the user. 8 years ago
bunnei 79e0dd249e core_timing: Increase clock speed for Switch docked. 8 years ago
bunnei 5017038ca7 svc: Implement svcWaitProcessWideKeyAtomic. 8 years ago
bunnei 91f10a1460 semaphore: Updates for Switch. 8 years ago
bunnei 6f6d9af408 lm: Assert on unsupported multi-message. 8 years ago
bunnei 0e978bdd50 svc: Implement WaitSynchronization for a single handle. 8 years ago
bunnei 57f42e5887 svc: Refactor LockMutex code to use WaitSynchronization1. 8 years ago
bunnei d083c07c46 lm: Improve Log() to format a useful string. 8 years ago
bunnei 0dbc8f3577 svc: Add missing string_util include. 8 years ago
bunnei dcfbad2129 cmake: Don't compile Dynarmic as it's unused. 8 years ago
bunnei 24f10a20e7 core: Increase tight_loop 100x for speed. 8 years ago
bunnei 5e262a4a68 citra_qt: Remove VFP registers, since this isn't used anyways and caused an assert. 8 years ago
bunnei b38223f662 arm_unicorn: Load/release unicorn DLL. 8 years ago
bunnei 738845cc0e externals: Use unicorn DLL instead of static lib. 8 years ago
bunnei 3f8b9181b5 unicorn: Use for arm interface on Windows. 8 years ago
bunnei 6e9d66fd3a arm_dynarmic: More cleanup. 8 years ago
bunnei 914ebee67a core: Remove unicorn_dynload. 8 years ago
bunnei aa7e061e71 arm_dynarmic: Gut interface until dynarmic is ready for general use. 8 years ago
bunnei b172f0d770 arm: Remove SkyEye/Dyncom code that is ARMv6-only. 8 years ago
bunnei f0eab802e8 vm_manager: Use a more reasonable MAX_ADDRESS size. 8 years ago
bunnei 81a8a57ce2 svc: Remove unnecessary "svc" prefix to naming scheme. 8 years ago
bunnei fe11b51545 pctl: Remove duplicate InstallInterfaces function. 8 years ago
bunnei 480906fe1b hle: Move SVC code to kernel namespace. 8 years ago
bunnei 72f671fd7a svc: Improve svcGetInfo. 8 years ago
bunnei e9710a2cf7 vm_manager: Stub out a bunch of interfaces used by svcGetInfo. 8 years ago
bunnei dc4fe2fbd5 svc: Fix string formatting for CreateThread. 8 years ago
bunnei dd3a237981 cmake: Add missing object_address_table. 8 years ago
bunnei 93480b10ef core/video_core: Fix a bunch of u64 -> u32 warnings. 8 years ago
bunnei 9e8608e8b1 svc: Stub out svcWaitSynchronization.
- This does not matter until we implement other kernel objects, mutexes use svcLockMutex for waiting.
8 years ago
bunnei aa7c824ea4 svc: Implement svcExitProcess. 8 years ago
bunnei 9b8afed5f7 svc: Implement svcUnlockMutex. 8 years ago
bunnei b9950cd4b0 svc: Implement svcLockMutex. 8 years ago
bunnei d0046b120a kernel: Add ObjectAddressTable class. 8 years ago
bunnei 1cb978eb82 thread: Keep track of the initially created handle.
This is kinda crufty, but we need it for now to update guest state variables.
8 years ago
bunnei 45debfe4fd svc: Implement svcExitThread. 8 years ago
bunnei 9d0c3bda7f svc: Implement svcCreateThread. 8 years ago
bunnei 001091fa72 svc: Cleanup svcGetThreadPriority. 8 years ago
bunnei 283c63645d svc: Stub out svcGetCurrentProcessorNumber. 8 years ago
bunnei c7983e970c errors: Define missing kernel error codes. 8 years ago
bunnei 8a7f8f3e2c svc: Implement svcSetThreadPriority. 8 years ago
bunnei 960e8dc5e5 svc: Change SignalProcessWideKey to a stub. 8 years ago
bunnei f24531b1a2 function_wrappers: Cleanup, fix warnings, remove unused code. 8 years ago
bunnei 3a91a62b8f svc: Implement svcUnmapMemory. 8 years ago
bunnei a3228d9b77 svc: Minor cleanups. 8 years ago
bunnei 8ab33616ac svc: Implement svcStartThread. 8 years ago
bunnei b6087e35b5 thread: Main thread should set thread handle to reg 1. 8 years ago
bunnei 7ccd8de863 thread: Remove THUMB mode flag. 8 years ago
bunnei eed4f2e229 thread: Main thread should be ready by default, all others dormant. 8 years ago
bunnei ebd4b1422d kernel: Various 64-bit fixes in memory/process/thread 8 years ago
bunnei 1d01ffccb8 applet_oe: Stub out a bunch of interfaces necessary for boot. 8 years ago
bunnei 30e98fae3f controller: Implement DuplicateSession. 8 years ago
bunnei dcdaac8a0b kernel: Fix implementation of ConvertSessionToDomain. 8 years ago
bunnei b67cbb8d92 ap, aoc_u: Minor cleanup. 8 years ago
bunnei fcd4c1a0dc service: Add empty interface for pctl:a. 8 years ago
bunnei e17c0019c5 kernel: Add basic support for Domain object. 8 years ago
bunnei 834fa5db65 kernel: Add SyncObject primitive, use it for ClientSession. 8 years ago
bunnei 6e021f22b8 svc: Implement MapMemory. 8 years ago
bunnei 3421e1617e process: Add method to mirror a memory region. 8 years ago
bunnei 7618b5237d svc: Implement SetHeapSize. 8 years ago
bunnei ad073846bc service: Clean up apm/lm/applet_oe/controller/sm ctor/dtor. 8 years ago
bunnei 16fb1c8fe7 service: Halt on ReportUnimplementedFunction and improve output log. 8 years ago
bunnei d5995fd30f service: Add empty interface for aoc:u. 8 years ago
bunnei 3597650f22 service: Return proper result code for IPC::CommandType::Close. 8 years ago
bunnei 34571f4d2e hle: Use Switch formatted result codes. 8 years ago
bunnei 266c1c8020 svc: Implement GetThreadId and GetProcessId. 8 years ago
bunnei 45db4bb3ea logging: Rename category "Core_ARM11" to "Core_ARM". 8 years ago
bunnei 3f0caefdf5 nso: Load more common submodules. 8 years ago
bunnei 9ceb0d9381 memory: Support 32-bit paging, move heap address space up. 8 years ago
bunnei dcd6bb82f7 hle: Fix QueryMemory response for MemoryInfo. 8 years ago
bunnei 716e5cf070 lm: Implement lm::Initialize and Logger::log. 8 years ago
bunnei 654fae29c1 hle_ipc: Only copy necessary fields for outgoing command buffer. 8 years ago
bunnei b283cf7348 hle_ipc: Parse out buffer X/A/B/B descriptors from incoming command buffer. 8 years ago
bunnei 03bf0739a4 service: Add CreatePort function (that does not register/install). 8 years ago
bunnei 97d52b9f89 memory: Print addresses as 64-bit. 8 years ago
bunnei 3f2a738d34 ipc_helpers: Fix alignment (was wrong as a result of a dynarmic bug). 8 years ago
bunnei d3cc369618 service: Print correct command ID on unimplemented function. 8 years ago
bunnei 4fb1b24d68 hle: Implement ConvertSessionToDomain, various cleanups. 8 years ago
bunnei 746c2a3ae7 core: Refactor MakeMagic usage and remove dead code. 8 years ago
bunnei 72eeca1f03 hle: Add service stubs for apm and appletOE. 8 years ago
bunnei 960a1416de hle: Initial implementation of NX service framework and IPC. 8 years ago
bunnei 12c7469d81 nso: Add a log for loading submodules. 8 years ago
bunnei 78bc2b70bb svc: Some logging cleanup. 8 years ago
bunnei e98a3ca171 svc: Update MemoryInfo flags for 64-bit. 8 years ago
bunnei cb889f9220 svc: Initial nx impl. for QueryMemory, ConnectToPort, SendSyncRequest, etc. 8 years ago
bunnei d62750c46d Remove more 3DS-specific code. 8 years ago
bunnei 15983dcfdc Remove more 3DS-specific code. 8 years ago
bunnei dbd15b0d10 Remove more 3DS-specific code. 8 years ago
bunnei 72b03025ac Remove lots more 3DS-specific code. 8 years ago
bunnei 0906de9a14 hle: Remove a large amount of 3ds-specific service code. 8 years ago
bunnei b1d5db1cf6 Merge remote-tracking branch 'upstream/master' into nx
# 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
8 years ago
bunnei 23ce4f5afc loader: Various improvements for NSO/NRO loaders. 8 years ago
Dragios 83e5f639e6 Change command header in nwm::UDS Initialize function 8 years ago
Sebastian Valle 20e19a340c Merge pull request #2991 from Subv/getpointer
Remove more usages of GetPointer.
8 years ago
Sebastian Valle 74d4050924 Merge pull request #2975 from shinyquagsire23/archive-ncch-container-and-override
file_sys/archive_ncch: use NCCHs/.apps instead of .romfs files, NCCH section override
8 years ago
bunnei 33ea53094c loader: Add support for NRO, as well as various fixes and shared linker. 8 years ago
Sebastian Valle 84c344b9b1 Merge pull request #2953 from Subv/applet_launch
HLE/APT: Always set up the APT parameter when starting a library applet.
8 years ago
Subv 97f262c1f5 SVC: Removed GetPointer usage in the GetResourceLimit functions. 8 years ago
Subv 46fc7595b4 SVC: Remove GetPointer usage in CreatePort. 8 years ago
Subv 7b09b30ef1 SVC: Replace GetPointer usage with ReadCString in ConnectToPort. 8 years ago
Subv 3c0113632d SVC: Replace GetPointer usage with ReadBlock in OutputDebugString. 8 years ago
Subv 0cfb231e00 SVC: Replace GetPointer usage with Read32 in ReplyAndReceive. 8 years ago
Subv b863d6c860 SVC: Replace GetPointer usage with Read32 in WaitSynchronizationN. 8 years ago
Subv 7772fc0731 Memory: Remove all GetPointer usages from the GDB stub. 8 years ago
Huw Pascoe b3b34a1e76 Extracted the attribute setup and draw commands into their own functions 8 years ago
bunnei d454364bca nso: Fixes to support homebrew NSOs without a MOD header. 8 years ago
bunnei 15c7641bef Merge pull request #2977 from Subv/shmem_create
SharedMemory: Don't take over and unmap the source memory block when creating a shared memory, just reference it
8 years ago
Subv b18589ecf7 Kernel/SharedMemory: Don't take over and unmap the source memory block when creating a shared memory, just reference it.
Also reference the right offset into the backing block for the requested address.
8 years ago
Sebastian Valle 30fabc41c6 Merge pull request #2971 from Subv/per_process_memops
Memory: Add overloads for ReadBlock and WriteBlock that operate on a specific process.
8 years ago
Subv 1f2de7501b Memory: Make WriteBlock take a Process parameter on which to operate 8 years ago
Subv 811c01e5fe Memory: Make ReadBlock take a Process parameter on which to operate 8 years ago
Subv 8217ed7acb Kernel/Thread: Added a helper function to get a thread's command buffer VAddr. 8 years ago
Sebastian Valle 9c123c29a6 Merge pull request #2974 from Subv/nim_event
Services/NIM: Implement CheckForSysUpdateEvent.
8 years ago
shinyquagsire23 4887d18591 file_sys, loader: add support for reading TMDs to determine app paths 8 years ago
shinyquagsire23 8e10c9bb2e file_sys: add class for Title Metadata (TMD) 8 years ago
shinyquagsire23 e21f2348e7 file_sys/ncch_container: add RomFS, ExeFS override to allow for backward compatibility with existing .romfs system archive dumps 8 years ago
shinyquagsire23 c93e5ecfe6 file_sys/archive_ncch: use NCCHContainer instead of loading .romfs files 8 years ago
bunnei 6377585edb arm_interface: Set TLS address for dynarmic core. 8 years ago
bunnei 8c92435ded nso: Refactor and allocate .bss section. 8 years ago
bunnei fa1c7c7ee1 process: Support loading multiple codesets. 8 years ago
bunnei 6bafd3f4f7 loader: Add support for loading an NSO. 8 years ago
bunnei 9eb4888df7 externals: Add lz4. 8 years ago
bunnei 46297c9653 memory: Log with 64-bit values. 8 years ago
bunnei c5ce5c06e4 kernel: Various threading fixes to support 64-bit addressing. 8 years ago
bunnei f01472a5ff core: Various changes to support 64-bit addressing. 8 years ago
bunnei 3411883fe3 arm: Use 64-bit addressing in a bunch of places. 8 years ago
bunnei 1c4f9e822c elf: Check if machine is ARM. 8 years ago
Subv 5bae5a48b9 Services/NIM: Implement CheckForSysUpdateEvent.
Implementation verified by reverse engineering.
This lets the Home Menu boot without crashing on startup.
8 years ago
Huw Pascoe 529f4a0131 Moved down_count to CoreTiming 8 years ago
B3n30 afb1012bcd Services/UDS: Handle the rest of the connection sequence. (#2963)
Services/UDS: Handle the rest of the connection sequence.
8 years ago
Sebastian Valle 7056b9c46a Merge pull request #2946 from Subv/home_menu_apt
Implement PrepareToStartNewestHomeMenu and fixed an APT regression.
8 years ago
Sebastian Valle db752b52e8 Merge pull request #2967 from Subv/thread_wakeup_callbacks
Kernel/Threads: When putting a thread to wait, specify a function to execute when it is awoken
8 years ago
Huw Pascoe a13ab958cb Fixed type conversion ambiguity 8 years ago
bunnei b07af7dda8 Merge pull request #2961 from Subv/load_titles
Loaders: Don't automatically set the current process every time we load an application.
8 years ago
Subv 8432749db7 Kernel/Threads: When putting a thread to wait, specify a function to execute 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.
8 years ago
Sebastian Valle 0d42706a7b Merge pull request #2907 from Subv/warnings3
Disable unary operator- on Math::Vec2/Vec3/Vec4 for unsigned types.
8 years ago
Subv a321bce378 Disable unary operator- on Math::Vec2/Vec3/Vec4 for unsigned types.
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
8 years ago
Subv 7f48aa8d25 Loaders: Don't automatically set the current process every time we load an 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.
8 years ago
James Rowe 5620327e03 Merge pull request #2954 from Subv/cache_unmapped_mem
Memory/RasterizerCache: Ignore unmapped memory regions when caching physical regions
8 years ago
Subv 3165466b66 Kernel/Thread: Allow specifying which process a thread belongs to when 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.
8 years ago
Subv a8d2f5787f Tests: Added Memory::IsValidVirtualAddress tests. 8 years ago
Subv c102e3ae28 Tests: Fixed ARM VFP tests 8 years ago
Subv 35da7f57ef Memory: Allow IsValidVirtualAddress to be called with a specific process parameter.
There is still an overload of IsValidVirtualAddress that only takes the VAddr and will default to the current process.
8 years ago
Merry 0c20da7fde Merge pull request #2958 from Subv/audio_buffer_datatype
Audio: Use std::deque instead of std::vector for the audio buffer type (StereoBuffer16)
8 years ago
Subv e27ae04696 HLE/APT: Always set up the APT parameter when starting a library applet.
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.
8 years ago
Subv 41f6c9f87f Memory/RasterizerCache: Ignore unmapped memory regions when caching physical 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.
8 years ago
Subv d7459354f5 Audio: Use std::deque instead of std::vector for the audio buffer type (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)
8 years ago
Subv 774e7deae8 HLE/Archives: Allow multiple loaded applications to access their SelfNCCH 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.
8 years ago
B3n30 d881dee818 Merge pull request #2952 from MerryMage/page-tables
Switchable Page Tables
8 years ago
B3n30 dc6a365337 Merge pull request #2951 from huwpascoe/perf-4
Optimized Morton
8 years ago
B3n30 78022b5a79 Merge pull request #2949 from wwylele/fix-tr
citra-qt: fix some untranslated strings
8 years ago
B3n30 a21b9deb98 Merge pull request #2948 from Subv/register_service
HLE/SRV: Implemented RegisterService.
8 years ago
Max Thomas c91ccbd0ba Loader/NCCH: Add support for loading application updates (#2927)
* 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
8 years ago
B3n30 d673d508dd Services/UDS: Added a function to send EAPoL-Start packets (#2920)
* 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
8 years ago
Huw Pascoe 903906da3b Optimized Float<M,E> multiplication
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
8 years ago
MerryMage 67a70bd9e1 ARM_Interface: Implement PageTableChanged 8 years ago
MerryMage 4e5eb2044a memory: Remove GetCurrentPageTablePointers 8 years ago