Commit graph

5591 commits

Author SHA1 Message Date
bunnei 236d463c52 render_base: Add a struct describing framebuffer metadata. 2018-01-10 23:28:56 -05:00
bunnei 866e66dc31 renderer_opengl: Add MortonCopyPixels function for Switch framebuffer. 2018-01-10 23:28:53 -05:00
bunnei 9e2ad45c98 renderer_opengl: Update DrawScreens for Switch. 2018-01-10 23:28:49 -05:00
bunnei 292135a3b7 CMakeLists: Add framebuffer_layout.cpp. 2018-01-10 23:28:46 -05:00
bunnei 482cf8a005 frontend: Update for undocked Switch screen layout. 2018-01-10 23:28:43 -05:00
Subv 1ca800ccee NV: Move the nv device nodes to their own directory and namespace. 2018-01-10 23:28:40 -05:00
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
2018-01-10 23:28:36 -05:00
bunnei 7e0ff43da0 vi: Use new CoreTiming::EventType 2018-01-10 23:28:33 -05:00
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.
2018-01-10 23:28:29 -05:00
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.
2018-01-10 23:28:25 -05:00
Subv 404149e475 NV: Signal all display's vsync event 60 times per second. 2018-01-10 23:28:22 -05:00
Subv d205dee0a6 NV: Give each display its own vsync event. 2018-01-10 23:28:19 -05:00
Subv 927569bed8 NV: Keep track of Displays, Layers and BufferQueues in nvflinger. 2018-01-10 23:28:16 -05:00
Subv fb73e8b723 IPC: Allow passing arguments to the Interfaces when using PushIpcInterface 2018-01-10 23:28:13 -05:00
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.
2018-01-10 23:28:09 -05:00
Subv 94a5e97eb3 NV: Implemented the nvdrv:a service and the /dev/nvmap device. 2018-01-10 23:28:05 -05:00
Subv ab86b80cac IPC: Corrected some definitions for the buffer C descriptor flags. 2018-01-10 23:28:02 -05:00
Subv ba02f0deef svc: Stub ResetSignal and CreateTransferMemory 2018-01-10 23:27:59 -05:00
Subv 0a1278081e svc: Stub SetMemoryAttribute 2018-01-10 23:27:56 -05:00
Subv 7ad20154fc Threads: Added enum values for the Switch's 4 cpu cores and implemented svcGetInfo(AllowedCpuIdBitmask) 2018-01-10 01:01:55 -05:00
Subv 188feba457 Services: Allow lm to log single-character messages. 2018-01-10 00:41:29 -05:00
Subv c2ee513d35 SVC: Fixed WaitSynchronization with multiple handles when none is immediately ready. 2018-01-09 15:02:43 -05:00
Subv bc91ebacc1 SVC: Implemented CancelSynchronization. 2018-01-09 15:02:04 -05:00
Subv a418f6e77b ErrorCodes: Updated the InvalidHandle and Timeout kernel error codes. 2018-01-09 12:05:10 -05:00
Subv 8d9250fa70 SVC: Fixed WaitSynchronization with multiple handles when at least one of them is ready. 2018-01-09 11:53:50 -05:00
bunnei 4236799832 kernel: Rename Semaphore to ConditionVariable. 2018-01-08 21:41:37 -05:00
bunnei 9fcd2bf672 mutex: Remove unused call to VerifyGuestState. 2018-01-08 21:12:56 -05:00
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.
2018-01-08 21:12:54 -05:00
Subv 1bbe9309da Kernel: Properly keep track of mutex lock data in the guest memory. This fixes userland locking/unlocking. 2018-01-08 21:12:51 -05:00
Subv 2a3f8e8484 Kernel: Allow chaining WaitSynchronization calls inside a wakeup callback. 2018-01-08 21:12:49 -05:00
MerryMage f10a304ecd fix macos build 2018-01-08 19:20:10 -05:00
bunnei d6e4e6ea32 core_timing: Use 1.020GHz for core clock rate. 2018-01-08 19:18:50 -05:00
B3n30 82151d407d CoreTiming: Reworked CoreTiming (cherry-picked from Citra #3119)
* CoreTiming: New CoreTiming; Add Test for CoreTiming
2018-01-08 19:10:25 -05:00
Subv c12c756539 IPC: Make DuplicateSession return the Domain instead of the Session if the request was made on a Domain interface. 2018-01-07 17:12:07 -05:00
Subv e3b4c8e043 AppletOE: Fixed command buffer structure for ReceiveMessage. 2018-01-07 17:12:05 -05:00
Subv ad965501d0 IPC: Corrected some command headers in the IPC Controller interface. 2018-01-07 17:12:03 -05:00
Subv 166286e976 IPC: Corrected some command header sizes in appletOE. 2018-01-07 17:12:01 -05:00
Subv ba2ffd7b81 IPC: Take the number of domain objects as a parameter in MakeBuilder. 2018-01-07 17:11:58 -05:00
Subv 5f41477f9c SM: Fixed connecting to services with an 8-byte name, like appletOE. 2018-01-07 17:11:56 -05:00
Subv 80f6df5414 IPC: Fixed pushing ResultCodes into the command buffer.
They should have 32 bits of padding after the error code now.
2018-01-07 17:11:54 -05:00
Subv 32847d8b86 IPC: Add functions to read the input move/copy objects from an IPC request. 2018-01-07 17:11:51 -05:00
Subv 7e3561b1cd IPC: Don't attempt to read the command buffer if it holds a Close request. 2018-01-07 17:11:49 -05:00
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.
2018-01-07 17:11:47 -05:00
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.
2018-01-07 17:11:45 -05:00
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.
2018-01-07 17:11:43 -05:00
bunnei bc8ef64804 svc: Implement svcSignalProcessWideKey. 2018-01-07 16:55:17 -05:00
bunnei bd377908d7 audio: Log dropping frames as trace to reduce spam. 2018-01-07 16:52:59 -05:00
bunnei 4e33b4b42f semaphore: More changes for Switch. 2018-01-07 16:52:23 -05:00
bunnei 0f6fbdb963 wait_object: Refactor to allow waking up a single thread. 2018-01-07 16:33:41 -05:00
bunnei bc77a7580e nso: Always load the filepath specified by the user. 2018-01-07 12:44:36 -05:00
bunnei 79e0dd249e core_timing: Increase clock speed for Switch docked. 2018-01-07 00:58:06 -05:00
bunnei 5017038ca7 svc: Implement svcWaitProcessWideKeyAtomic. 2018-01-06 16:14:12 -05:00
bunnei 91f10a1460 semaphore: Updates for Switch. 2018-01-06 15:55:40 -05:00
bunnei 6f6d9af408 lm: Assert on unsupported multi-message. 2018-01-06 14:41:56 -05:00
bunnei 0e978bdd50 svc: Implement WaitSynchronization for a single handle. 2018-01-06 14:34:32 -05:00
bunnei 57f42e5887 svc: Refactor LockMutex code to use WaitSynchronization1. 2018-01-06 14:19:28 -05:00
bunnei d083c07c46 lm: Improve Log() to format a useful string. 2018-01-05 00:45:13 -05:00
bunnei 0dbc8f3577 svc: Add missing string_util include. 2018-01-04 19:45:15 -05:00
bunnei dcfbad2129 cmake: Don't compile Dynarmic as it's unused. 2018-01-04 17:01:02 -05:00
bunnei 24f10a20e7 core: Increase tight_loop 100x for speed. 2018-01-04 16:52:16 -05:00
bunnei 5e262a4a68 citra_qt: Remove VFP registers, since this isn't used anyways and caused an assert. 2018-01-04 13:52:29 -05:00
bunnei b38223f662 arm_unicorn: Load/release unicorn DLL. 2018-01-04 13:40:01 -05:00
bunnei 738845cc0e externals: Use unicorn DLL instead of static lib. 2018-01-04 13:15:29 -05:00
bunnei 3f8b9181b5 unicorn: Use for arm interface on Windows. 2018-01-04 00:13:23 -05:00
bunnei 6e9d66fd3a arm_dynarmic: More cleanup. 2018-01-04 00:09:12 -05:00
bunnei 914ebee67a core: Remove unicorn_dynload. 2018-01-03 22:10:31 -05:00
bunnei aa7e061e71 arm_dynarmic: Gut interface until dynarmic is ready for general use. 2018-01-03 22:10:11 -05:00
bunnei b172f0d770 arm: Remove SkyEye/Dyncom code that is ARMv6-only. 2018-01-02 22:24:12 -05:00
bunnei f0eab802e8 vm_manager: Use a more reasonable MAX_ADDRESS size. 2018-01-02 21:37:56 -05:00
bunnei 81a8a57ce2 svc: Remove unnecessary "svc" prefix to naming scheme. 2018-01-02 20:47:26 -05:00
bunnei fe11b51545 pctl: Remove duplicate InstallInterfaces function. 2018-01-02 20:41:20 -05:00
bunnei 480906fe1b hle: Move SVC code to kernel namespace. 2018-01-02 20:40:30 -05:00
bunnei 72f671fd7a svc: Improve svcGetInfo. 2018-01-01 16:01:06 -05:00
bunnei e9710a2cf7 vm_manager: Stub out a bunch of interfaces used by svcGetInfo. 2018-01-01 15:59:31 -05:00
bunnei dc4fe2fbd5 svc: Fix string formatting for CreateThread. 2018-01-01 15:48:08 -05:00
bunnei dd3a237981 cmake: Add missing object_address_table. 2018-01-01 15:41:05 -05:00
bunnei 93480b10ef core/video_core: Fix a bunch of u64 -> u32 warnings. 2018-01-01 15:40:35 -05:00
bunnei 9e8608e8b1 svc: Stub out svcWaitSynchronization.
- This does not matter until we implement other kernel objects, mutexes use svcLockMutex for waiting.
2018-01-01 14:47:57 -05:00
bunnei aa7c824ea4 svc: Implement svcExitProcess. 2018-01-01 14:38:34 -05:00
bunnei 9b8afed5f7 svc: Implement svcUnlockMutex. 2018-01-01 14:04:36 -05:00
bunnei b9950cd4b0 svc: Implement svcLockMutex. 2018-01-01 14:02:26 -05:00
bunnei d0046b120a kernel: Add ObjectAddressTable class. 2018-01-01 13:25:37 -05:00
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.
2017-12-31 17:23:36 -05:00
bunnei 45debfe4fd svc: Implement svcExitThread. 2017-12-31 16:11:27 -05:00
bunnei 9d0c3bda7f svc: Implement svcCreateThread. 2017-12-31 16:10:01 -05:00
bunnei 001091fa72 svc: Cleanup svcGetThreadPriority. 2017-12-31 16:06:11 -05:00
bunnei 283c63645d svc: Stub out svcGetCurrentProcessorNumber. 2017-12-31 16:01:04 -05:00
bunnei c7983e970c errors: Define missing kernel error codes. 2017-12-31 15:59:00 -05:00
bunnei 8a7f8f3e2c svc: Implement svcSetThreadPriority. 2017-12-31 15:58:16 -05:00
bunnei 960e8dc5e5 svc: Change SignalProcessWideKey to a stub. 2017-12-31 15:55:11 -05:00
bunnei f24531b1a2 function_wrappers: Cleanup, fix warnings, remove unused code. 2017-12-31 15:46:30 -05:00
bunnei 3a91a62b8f svc: Implement svcUnmapMemory. 2017-12-31 15:22:49 -05:00
bunnei a3228d9b77 svc: Minor cleanups. 2017-12-30 13:40:28 -05:00
bunnei 8ab33616ac svc: Implement svcStartThread. 2017-12-30 13:37:07 -05:00
bunnei b6087e35b5 thread: Main thread should set thread handle to reg 1. 2017-12-30 12:10:58 -05:00
bunnei 7ccd8de863 thread: Remove THUMB mode flag. 2017-12-30 12:08:26 -05:00
bunnei eed4f2e229 thread: Main thread should be ready by default, all others dormant. 2017-12-30 12:05:10 -05:00
bunnei ebd4b1422d kernel: Various 64-bit fixes in memory/process/thread 2017-12-29 13:27:58 -05:00
bunnei 1d01ffccb8 applet_oe: Stub out a bunch of interfaces necessary for boot. 2017-12-29 00:44:46 -05:00
bunnei 30e98fae3f controller: Implement DuplicateSession. 2017-12-29 00:39:34 -05:00
bunnei dcdaac8a0b kernel: Fix implementation of ConvertSessionToDomain. 2017-12-29 00:36:22 -05:00
bunnei b67cbb8d92 ap, aoc_u: Minor cleanup. 2017-12-28 23:45:44 -05:00
bunnei fcd4c1a0dc service: Add empty interface for pctl:a. 2017-12-28 23:44:39 -05:00
bunnei e17c0019c5 kernel: Add basic support for Domain object. 2017-12-28 23:30:21 -05:00
bunnei 834fa5db65 kernel: Add SyncObject primitive, use it for ClientSession. 2017-12-28 23:12:28 -05:00
bunnei 6e021f22b8 svc: Implement MapMemory. 2017-12-28 21:38:38 -05:00
bunnei 3421e1617e process: Add method to mirror a memory region. 2017-12-28 21:35:49 -05:00
bunnei 7618b5237d svc: Implement SetHeapSize. 2017-12-28 15:29:52 -05:00
bunnei ad073846bc service: Clean up apm/lm/applet_oe/controller/sm ctor/dtor. 2017-12-28 15:27:30 -05:00
bunnei 16fb1c8fe7 service: Halt on ReportUnimplementedFunction and improve output log. 2017-12-28 15:24:59 -05:00
bunnei d5995fd30f service: Add empty interface for aoc:u. 2017-12-28 15:24:05 -05:00
bunnei 3597650f22 service: Return proper result code for IPC::CommandType::Close. 2017-10-31 19:30:05 -04:00
bunnei 34571f4d2e hle: Use Switch formatted result codes. 2017-10-31 19:26:11 -04:00
bunnei 266c1c8020 svc: Implement GetThreadId and GetProcessId. 2017-10-23 00:15:45 -04:00
bunnei 45db4bb3ea logging: Rename category "Core_ARM11" to "Core_ARM". 2017-10-23 00:13:12 -04:00
bunnei 3f0caefdf5 nso: Load more common submodules. 2017-10-22 23:50:26 -04:00
bunnei 9ceb0d9381 memory: Support 32-bit paging, move heap address space up. 2017-10-22 23:17:59 -04:00
bunnei dcd6bb82f7 hle: Fix QueryMemory response for MemoryInfo. 2017-10-19 23:00:46 -04:00
bunnei 716e5cf070 lm: Implement lm::Initialize and Logger::log. 2017-10-18 21:41:24 -04:00
bunnei 654fae29c1 hle_ipc: Only copy necessary fields for outgoing command buffer. 2017-10-18 21:39:48 -04:00
bunnei b283cf7348 hle_ipc: Parse out buffer X/A/B/B descriptors from incoming command buffer. 2017-10-18 21:38:01 -04:00
bunnei 03bf0739a4 service: Add CreatePort function (that does not register/install). 2017-10-18 21:34:19 -04:00
bunnei 97d52b9f89 memory: Print addresses as 64-bit. 2017-10-18 21:29:23 -04:00
bunnei 3f2a738d34 ipc_helpers: Fix alignment (was wrong as a result of a dynarmic bug). 2017-10-17 18:03:47 -04:00
bunnei d3cc369618 service: Print correct command ID on unimplemented function. 2017-10-17 18:02:08 -04:00
bunnei 4fb1b24d68 hle: Implement ConvertSessionToDomain, various cleanups. 2017-10-15 01:24:22 -04:00
bunnei 746c2a3ae7 core: Refactor MakeMagic usage and remove dead code. 2017-10-15 00:11:38 -04:00
bunnei 72eeca1f03 hle: Add service stubs for apm and appletOE. 2017-10-14 22:50:04 -04:00
bunnei 960a1416de hle: Initial implementation of NX service framework and IPC. 2017-10-14 22:18:42 -04:00
bunnei 12c7469d81 nso: Add a log for loading submodules. 2017-10-14 17:37:51 -04:00
bunnei 78bc2b70bb svc: Some logging cleanup. 2017-10-14 17:35:21 -04:00
bunnei e98a3ca171 svc: Update MemoryInfo flags for 64-bit. 2017-10-14 17:31:25 -04:00
bunnei cb889f9220 svc: Initial nx impl. for QueryMemory, ConnectToPort, SendSyncRequest, etc. 2017-10-14 17:30:07 -04:00
bunnei d62750c46d Remove more 3DS-specific code. 2017-10-13 17:56:42 -04:00
bunnei 15983dcfdc Remove more 3DS-specific code. 2017-10-12 21:45:06 -04:00
bunnei dbd15b0d10 Remove more 3DS-specific code. 2017-10-12 21:29:53 -04:00
bunnei 72b03025ac Remove lots more 3DS-specific code. 2017-10-12 21:21:49 -04:00
bunnei 0906de9a14 hle: Remove a large amount of 3ds-specific service code. 2017-10-10 17:32:14 -04:00
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
2017-10-09 23:56:20 -04:00
bunnei 23ce4f5afc loader: Various improvements for NSO/NRO loaders. 2017-10-09 21:39:32 -04:00
Dragios 83e5f639e6 Change command header in nwm::UDS Initialize function 2017-10-09 09:10:48 +08:00
Sebastian Valle 20e19a340c Merge pull request #2991 from Subv/getpointer
Remove more usages of GetPointer.
2017-10-08 10:11:12 -05:00
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
2017-10-06 12:19:20 -05:00
bunnei 33ea53094c loader: Add support for NRO, as well as various fixes and shared linker. 2017-10-05 23:30:08 -04:00
Sebastian Valle 84c344b9b1 Merge pull request #2953 from Subv/applet_launch
HLE/APT: Always set up the APT parameter when starting a library applet.
2017-10-04 15:01:58 -05:00
Subv 97f262c1f5 SVC: Removed GetPointer usage in the GetResourceLimit functions. 2017-10-04 14:04:27 -05:00
Subv 46fc7595b4 SVC: Remove GetPointer usage in CreatePort. 2017-10-04 14:04:03 -05:00
Subv 7b09b30ef1 SVC: Replace GetPointer usage with ReadCString in ConnectToPort. 2017-10-04 14:03:59 -05:00
Subv 3c0113632d SVC: Replace GetPointer usage with ReadBlock in OutputDebugString. 2017-10-04 12:30:33 -05:00
Subv 0cfb231e00 SVC: Replace GetPointer usage with Read32 in ReplyAndReceive. 2017-10-04 12:30:33 -05:00
Subv b863d6c860 SVC: Replace GetPointer usage with Read32 in WaitSynchronizationN. 2017-10-04 12:30:32 -05:00
Subv 7772fc0731 Memory: Remove all GetPointer usages from the GDB stub. 2017-10-04 11:33:32 -05:00
Huw Pascoe b3b34a1e76 Extracted the attribute setup and draw commands into their own functions 2017-10-04 01:08:29 +01:00
bunnei d454364bca nso: Fixes to support homebrew NSOs without a MOD header. 2017-10-03 18:30:02 -04:00
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
2017-10-03 16:21:49 -04:00
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.
2017-10-02 15:16:16 -05:00
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.
2017-10-01 14:44:06 -05:00
Subv 1f2de7501b Memory: Make WriteBlock take a Process parameter on which to operate 2017-10-01 14:18:36 -05:00
Subv 811c01e5fe Memory: Make ReadBlock take a Process parameter on which to operate 2017-10-01 14:18:36 -05:00
Subv 8217ed7acb Kernel/Thread: Added a helper function to get a thread's command buffer VAddr. 2017-10-01 14:18:35 -05:00
Sebastian Valle 9c123c29a6 Merge pull request #2974 from Subv/nim_event
Services/NIM: Implement CheckForSysUpdateEvent.
2017-10-01 14:16:14 -05:00
shinyquagsire23 4887d18591 file_sys, loader: add support for reading TMDs to determine app paths 2017-10-01 10:54:02 -06:00
shinyquagsire23 8e10c9bb2e file_sys: add class for Title Metadata (TMD) 2017-10-01 10:53:45 -06:00
shinyquagsire23 e21f2348e7 file_sys/ncch_container: add RomFS, ExeFS override to allow for backward compatibility with existing .romfs system archive dumps 2017-10-01 10:53:18 -06:00
shinyquagsire23 c93e5ecfe6 file_sys/archive_ncch: use NCCHContainer instead of loading .romfs files 2017-10-01 10:53:04 -06:00
bunnei 6377585edb arm_interface: Set TLS address for dynarmic core. 2017-09-30 14:34:03 -04:00
bunnei 8c92435ded nso: Refactor and allocate .bss section. 2017-09-30 14:33:58 -04:00
bunnei fa1c7c7ee1 process: Support loading multiple codesets. 2017-09-30 14:33:11 -04:00
bunnei 6bafd3f4f7 loader: Add support for loading an NSO. 2017-09-30 14:32:53 -04:00
bunnei 9eb4888df7 externals: Add lz4. 2017-09-30 14:30:04 -04:00
bunnei 46297c9653 memory: Log with 64-bit values. 2017-09-30 14:28:54 -04:00
bunnei c5ce5c06e4 kernel: Various threading fixes to support 64-bit addressing. 2017-09-30 14:28:54 -04:00
bunnei f01472a5ff core: Various changes to support 64-bit addressing. 2017-09-30 14:28:54 -04:00
bunnei 3411883fe3 arm: Use 64-bit addressing in a bunch of places. 2017-09-30 14:28:53 -04:00
bunnei 1c4f9e822c elf: Check if machine is ARM. 2017-09-30 14:28:53 -04:00
Subv 5bae5a48b9 Services/NIM: Implement CheckForSysUpdateEvent.
Implementation verified by reverse engineering.
This lets the Home Menu boot without crashing on startup.
2017-09-30 13:21:45 -05:00
Huw Pascoe 529f4a0131 Moved down_count to CoreTiming 2017-09-30 17:38:14 +01:00
B3n30 afb1012bcd Services/UDS: Handle the rest of the connection sequence. (#2963)
Services/UDS: Handle the rest of the connection sequence.
2017-09-30 18:18:45 +02:00
Sebastian Valle 7056b9c46a Merge pull request #2946 from Subv/home_menu_apt
Implement PrepareToStartNewestHomeMenu and fixed an APT regression.
2017-09-30 10:47:42 -05:00
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
2017-09-30 09:12:18 -05:00
Huw Pascoe a13ab958cb Fixed type conversion ambiguity 2017-09-30 09:34:35 +01:00
bunnei b07af7dda8 Merge pull request #2961 from Subv/load_titles
Loaders: Don't automatically set the current process every time we load an application.
2017-09-29 14:58:42 -04:00
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.
2017-09-28 11:53:32 -05:00
Sebastian Valle 0d42706a7b Merge pull request #2907 from Subv/warnings3
Disable unary operator- on Math::Vec2/Vec3/Vec4 for unsigned types.
2017-09-27 15:45:38 -05:00
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
2017-09-27 09:06:41 -05:00
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.
2017-09-26 18:17:47 -05:00
James Rowe 5620327e03 Merge pull request #2954 from Subv/cache_unmapped_mem
Memory/RasterizerCache: Ignore unmapped memory regions when caching physical regions
2017-09-26 16:55:47 -06:00
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.
2017-09-26 17:40:49 -05:00
Subv a8d2f5787f Tests: Added Memory::IsValidVirtualAddress tests. 2017-09-26 17:31:50 -05:00
Subv c102e3ae28 Tests: Fixed ARM VFP tests 2017-09-26 17:29:06 -05:00
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.
2017-09-26 17:27:44 -05:00
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)
2017-09-26 08:47:37 +01:00
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.
2017-09-25 23:47:50 -05:00
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.
2017-09-25 19:37:45 -05:00
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)
2017-09-25 18:31:37 -05:00
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.
2017-09-25 09:45:02 -05:00
B3n30 d881dee818 Merge pull request #2952 from MerryMage/page-tables
Switchable Page Tables
2017-09-25 08:29:32 +02:00
B3n30 dc6a365337 Merge pull request #2951 from huwpascoe/perf-4
Optimized Morton
2017-09-25 08:28:55 +02:00
B3n30 78022b5a79 Merge pull request #2949 from wwylele/fix-tr
citra-qt: fix some untranslated strings
2017-09-25 08:23:04 +02:00
B3n30 a21b9deb98 Merge pull request #2948 from Subv/register_service
HLE/SRV: Implemented RegisterService.
2017-09-25 08:22:05 +02:00
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
2017-09-25 08:17:38 +02:00
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
2017-09-25 08:16:27 +02:00
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
2017-09-25 00:54:02 +01:00
MerryMage 67a70bd9e1 ARM_Interface: Implement PageTableChanged 2017-09-24 23:08:25 +01:00
MerryMage 4e5eb2044a memory: Remove GetCurrentPageTablePointers 2017-09-24 22:43:28 +01:00
MerryMage c02bbb7030 memory: Add GetCurrentPageTable/SetCurrentPageTable
Don't expose Memory::current_page_table as a global.
2017-09-24 22:42:42 +01:00
Huw Pascoe 876aa82c29 Optimized Morton 2017-09-24 22:27:14 +01:00
wwylele 7117fcc024 citra-qt: fix some untranslated strings 2017-09-24 17:53:35 +03:00
Subv 7096f01c14 HLE/APT: Always return an error from PrepareToStartNewestHomeMenu so that 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-24 08:59:31 -05:00
Subv b57d58c0dc HLE/APT: Prepare the APT Wakeup parameter when the game calls Initialize
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-24 08:59:30 -05:00
James Rowe 93930a966f Merge pull request #2921 from jroweboy/batch-fix-2
GPU: Add draw for immediate and batch modes
2017-09-24 07:57:16 -06:00
Subv 0b33e36292 HLE/SRV: Implemented RegisterService.
Now system modules can do more than just crash immediately on startup.
2017-09-24 00:12:58 -05:00
James Rowe 19d41dcc6e Remove pipeline.gpu_mode and fix minor issues 2017-09-23 09:28:20 -06:00
Yuri Kunde Schlesner a7758b0b36 Merge pull request #2928 from huwpascoe/master
Fixed framebuffer warning
2017-09-22 04:06:38 +02:00
bunnei 6fc123d67c Merge pull request #2933 from huwpascoe/perf-1
Improved performance of FromAttributeBuffer
2017-09-19 13:18:35 -04:00
B3n30 28c726f205 WebService: Verify username and token (#2930)
* WebService: Verify username and token; Log errors in PostJson

* Fixup: added docstrings to the functions

* Webservice: Added Icons to the verification, imrpved error detection in cpr, fixup nits

* fixup: fmt warning
2017-09-18 21:18:26 -04:00
Huw Pascoe a234e4c200 Improved performance of FromAttributeBuffer
Ternary operator is optimized by the compiler
whereas std::min() is meant to return a value.

I've noticed a 5%-10% emulation speed increase.
2017-09-17 15:56:36 +01:00
Huw Pascoe 6a110ac5f5 Fixed framebuffer warning 2017-09-17 11:57:06 +01:00
Yuri Kunde Schlesner 255fd8768d Merge pull request #2906 from Subv/ns_new_framework
Services/NS: Port ns:s to the new service framework.
2017-09-16 21:13:51 +02:00
Subv 3d86e3afc4 Services/NS: Port ns:s to the new service framework. 2017-09-16 10:52:45 -05:00
Yuri Kunde Schlesner 699c920991 Merge pull request #2900 from wwylele/clip-2
PICA: implement custom clip plane
2017-09-16 10:23:00 +02:00
B3n30 813837c5cf Merge pull request #2842 from Subv/switchable_page_table
Kernel/Memory: Give each process its own page table and allow switching the current page table upon reschedule
2017-09-15 22:41:45 +02:00
Subv 7a3ab7c63d CPU/Dynarmic: Disable the fast page-table access in dynarmic until it supports switching page tables at runtime. 2017-09-15 14:26:22 -05:00
Subv 3bde97ea05 Tests/VFP: Use a standalone pagetable for the TestEnvironment memory operations.
This fixes building the tests
2017-09-15 14:26:20 -05:00
Subv f18a176b60 Kernel/Memory: Make IsValidPhysicalAddress not go through the current process' virtual memory mapping. 2017-09-15 14:26:18 -05:00
Subv b178089251 Kernel/Threads: Don't clear the CPU instruction cache when performing a 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.
2017-09-15 14:26:15 -05:00
Subv 214150f00c Kernel/Memory: Changed GetPhysicalPointer so that it doesn't go through the current process' page table to obtain a pointer. 2017-09-15 14:26:13 -05:00
bunnei 588077184b Merge pull request #2915 from wwylele/font-archive-2
APT: load different shared font depending on the region
2017-09-11 21:39:56 -04:00
James Rowe ad0b57f407 GPU: Add draw for immediate and batch modes
PR #1461 introduced a regression where some games would change configuration
even while in the poorly named "drawing" mode, which broke the heuristic
citra was using to determine when to draw the batch. This change adds
back in a draw call for batching, and also adds in a draw call in
immediate mode each time it adds a triangle.
2017-09-11 09:21:43 -06:00
Subv c34ec5e77c Kernel/Memory: Switch the current page table when a new process is scheduled. 2017-09-10 15:14:31 -05:00
Subv 6d2734a074 Kernel/Memory: Give each Process its own page table.
The loader is in charge of setting the newly created process's page table as the main one during the loading process.
2017-09-10 15:13:41 -05:00
bunnei 11baa40d75 Merge pull request #2865 from wwylele/gs++
PICA: implemented geometry shader
2017-09-07 23:02:59 -04:00
bunnei ff4941fb3a Merge pull request #2914 from wwylele/fresnel-fix
pica/lighting: only apply Fresnel factor for the last light
2017-09-05 10:00:49 -04:00
Weiyi Wang 617b6974b9 Merge pull request #2831 from Subv/uds_auth
Services/UDS: Handle beacon frames and the basic AP connection sequence frames.
2017-09-05 15:03:56 +03:00
mailwl 11f2eff17d Remove _flag in var names 2017-09-04 12:15:15 +03:00
mailwl 589babbf74 Mii Selector Applet: update Mii structures 2017-09-04 12:04:12 +03:00
James Rowe 79f177c6d2 Fix icon for citra qt 2017-09-03 11:26:10 -06:00
wwylele 59a9aaf388 APT: load different shared font depending on the region 2017-09-03 12:34:11 +03:00
wwylele 12fbc8c8df pica/lighting: only apply Fresnel factor for the last light 2017-09-03 08:22:03 +03:00
DaMan 40505bc4fc Add manifest 2017-09-02 20:08:11 -04:00
bunnei f251b8873a Merge pull request #2909 from wwylele/telemetry-gas
video_core: report telemetry for gas mode
2017-08-31 11:12:55 -04:00
wwylele e2c41a5891 video_core: report telemetry for gas mode 2017-08-31 12:54:17 +03:00
bunnei e450a2d2b8 Merge pull request #2858 from MerryMage/interp-on-a-frame-basis
interpolate: Interpolate on a frame-by-frame basis
2017-08-30 21:56:43 -04:00
bunnei f0e461bf6f Merge pull request #2891 from wwylele/sw-bump
SwRasterizer/Lighting: implement bump mapping
2017-08-30 21:07:30 -04:00
bunnei 75cd28a7cc Merge pull request #2899 from wwylele/touch-refactor
Refactor touch input into a TouchDevice
2017-08-29 11:29:10 -04:00
Sebastian Valle acbd46366c Merge pull request #2905 from danzel/fix-2902
Use recursive_mutex instead of mutex to fix #2902
2017-08-29 09:35:56 -05:00
danzel 8266064796 Use recursive_mutex instead of mutex to fix #2902 2017-08-29 20:39:55 +12:00
MerryMage 933508e2a2 interpolate: Interpolate on a frame-by-frame basis 2017-08-28 10:54:41 +01:00
Weiyi Wang 647f017c6d Merge pull request #2892 from Subv/warnings2
Warnings: Fixed a few missing-return warnings in video_core.
2017-08-28 03:21:51 -05:00
Subv f64cd87604 Services/UDS: Remove an old duplicated declaration of WifiPacket. 2017-08-27 10:48:15 -05:00
Subv d088dbfbe1 Services/UDS: Handle the connection sequence packets.
There is currently no stage tracking, a client is considered "Connected" when it receives the EAPoL Logoff packet from the server, this is not yet implemented.
2017-08-27 10:48:13 -05:00
Subv 2e9f544ecc Services/UDS: Store the received beacon frames until RecvBeaconBroadcastData is called, up to 15 beacons at the same time, removing any older beacon frames when the limit is exceeded. 2017-08-27 10:48:11 -05:00
Subv 54411bef4e Services/UDS: Add functions to generate 802.11 auth and assoc response frames. 2017-08-27 10:48:09 -05:00
bunnei 7698567fc9 web_backend: Fix CPR bug where Winsock is not properly initializing. 2017-08-26 19:45:41 -04:00
Subv da88f3b8f0 Warnings: Fixed a few missing-return warnings in video_core. 2017-08-26 11:58:22 -05:00
bunnei c8562b21d9 web_backend: Fix asynchronous JSON post by spawning new thread. 2017-08-25 23:37:47 -04:00
bunnei 04bd0c957e web_services: Refactor to remove dependency on Core. 2017-08-25 23:10:02 -04:00
bunnei 9f0da33c33 qt: Add an option to view/regenerate telemetry ID. 2017-08-25 23:10:02 -04:00
bunnei 5d7b364a21 default_ini: Use correct telemetry endpoint URL. 2017-08-25 23:10:01 -04:00
bunnei 2e37201c63 # This is a combination of 2 commits.
# This is the 1st commit message:

qt: Add web configuration tab.

# The commit message #2 will be skipped:

# fixup! qt: Add web configuration tab.
2017-08-25 23:10:01 -04:00
bunnei fb17e866aa qt: Add web configuration tab. 2017-08-25 23:10:01 -04:00
bunnei 41328afb58 web_backend: User config for username and token, support anonymous post. 2017-08-25 23:10:01 -04:00
bunnei 40f417125b telemetry: Log frontend type. 2017-08-25 23:10:01 -04:00
bunnei c781aea947 settings: Add enable_telemetry, citra_username, and citra_token. 2017-08-25 23:10:00 -04:00
bunnei d6a819c7cb telemetry_session: Log telemetry ID. 2017-08-25 23:10:00 -04:00
bunnei 59ad933022 citra_qt: Show one-time callout messages to user. 2017-08-25 23:10:00 -04:00
ThaMighty90 3cdf854e44 SidebySide Layout (#2859)
* added a SidebySide Layout

* Reworked, so both screen have the same height and cleaned up screen translates.

* added the option in the UI, hope this is the right way to do it. formated framebuffer_layout.cpp

* delete the x64 files

* deleted ui_configure_graphics.h

* added Option for the Layout in the xml

* got rid of SIDE_BY_SIDE_ASPECT_RATIO because it was useless. pulled translate into variables

* changed shift variables to u32 and moved them in their respective branch. remove notr="true" for the Screen layout drop down

* reworked intends :). changed function description for SideFrameLayout

* some description reworking
2017-08-25 17:53:07 -04:00
wwylele 417cb45e3f SwRasterizer/Clipper: flip the sign convention to match PICA and OpenGL 2017-08-25 07:26:45 +03:00
wwylele addbcd5784 gl_rasterizer: implement custom clip plane 2017-08-25 07:26:45 +03:00
wwylele ea51a3af26 SwRasterizer: implement custom clip plane 2017-08-24 15:34:27 +03:00
wwylele 2617de1fe6 EmuWindow: refactor touch input into a TouchDevice 2017-08-24 15:00:56 +03:00
wwylele c84e60b470 HID: use TouchDevice for touch pad 2017-08-24 13:56:43 +03:00
James Rowe 61442d6afb Merge pull request #2839 from Subv/global_kernel_lock
Kernel/HLE: Use a mutex  to synchronize access to the HLE kernel state between the cpu thread and any other possible threads that might touch the kernel (network thread, etc).
2017-08-23 18:17:44 -06:00
bunnei 2bbff9fa96 Merge pull request #2893 from Subv/not_schedule_main_thread
Kernel/Threads: Don't immediately switch to the new main thread when loading a new process.
2017-08-22 17:45:47 -04:00
Subv f484927ed0 Kernel/Memory: Acquire the global HLE lock when a memory read/write operation falls outside of the fast path, for it might perform an MMIO operation. 2017-08-22 09:30:58 -05:00
Subv bca8916cea Kernel/HLE: Use a mutex to synchronize access to the HLE kernel state between the cpu thread and any other possible threads that might touch the kernel (network thread, etc).
This mutex is acquired in SVC::CallSVC, ie, as soon as the guest application enters the HLE kernel, and should be acquired by the aforementioned threads before modifying kernel structures.
2017-08-22 09:30:55 -05:00
James Rowe a8675f4287 Merge pull request #2888 from Subv/warnings
Fixed some warnings in the core project.
2017-08-22 08:09:09 -06:00
wwylele 4d058cfb76 motion_emu: fix initialization order 2017-08-22 11:43:44 +03:00
wwylele 17c6104d2a gl_rasterizer/lighting: more accurate CP formula 2017-08-22 09:34:44 +03:00
wwylele b5aa570354 SwRasterizer/Lighting: implement LUT input CP 2017-08-22 09:34:44 +03:00
wwylele 3e478ca131 SwRasterizer/Lighting: implement bump mapping 2017-08-22 09:34:44 +03:00
Subv fa228ca637 Kernel/Threads: Don't immediately switch to the new main thread when loading a new process.
This is necessary for loading multiple processes at the same time.
The main thread will be automatically scheduled when necessary once the scheduler runs.
2017-08-21 20:54:29 -05:00
Subv 8a9a4e2c42 GPU/Warnings: Explicitly cast the screen refresh ticks to u64. 2017-08-21 08:34:30 -05:00
Subv 65f19b51c4 Warnings: Add UNREACHABLE macros to switches that contemplate all possible values. 2017-08-21 08:34:28 -05:00
Subv 145a7293a3 HLE/Applets: Fixed some conversion warnings when creating the framebuffer shared memory objects. 2017-08-21 08:34:27 -05:00
Subv d237a89048 CPU/Dynarmic: Fixed a warning when incrementing the number of ticks in ExecuteInstructions. 2017-08-21 08:34:25 -05:00
Subv 9d0841b48b Dyncom: Use size_t instead of int to store the instruction offsets in the instruction cache.
Fixes a few warnings.
2017-08-21 08:34:23 -05:00
Subv d3fb1d6c38 Dyncom: Fixed a conversion warning when decoding thumb instructions. 2017-08-21 08:20:36 -05:00
wwylele 63b6e802cd swrasterizer: remove invalid TODO
This function is called in clipping, before the pespective divide, and is not used in later rasterization. Thus it doesn't need perspective correction.
2017-08-21 08:03:07 +03:00
wwylele 72b26ac32f swrasterizer/clipper: remove tested TODO
hwtested. Current implementation is the correct behavior
2017-08-21 08:03:07 +03:00
wwylele 5a4af616c6 gl_shader_gen: simplify and clarify the depth transformation between vertex shader and fragment shader 2017-08-21 08:03:07 +03:00
wwylele 1eca380886 gl_rasterizer: add clipping plane z<=0 defined in PICA 2017-08-21 08:03:07 +03:00
Yuri Kunde Schlesner 46d1ca768d Merge pull request #2872 from wwylele/sw-geo-factor
SwRasterizer/Lighting: implement geometric factor
2017-08-20 17:49:42 -07:00
James Rowe bbfa9d0635 Merge pull request #2861 from wwylele/motion-refactor
Refactor MotionEmu into a InputDevice
2017-08-19 23:43:01 -06:00
wwylele 54c0c8adee HID: fix a comment and a warning 2017-08-20 08:37:48 +03:00
James Rowe 8afa81ac1b Merge pull request #2871 from wwylele/sw-spotlight
SwRasterizer/Lighting: implement spot light
2017-08-19 20:10:24 -06:00
B3n30 5d0a1e7efd Added missing parts in libnetwork (#2838)
* Network: Set and send the game information over enet

Added Callbacks for RoomMember and GetMemberList to Room in preparation for web_services.
2017-08-19 11:14:33 -06:00
wwylele 0f35755572 pica/command_processor: build geometry pipeline and run geometry shader
The geometry pipeline manages data transfer between VS, GS and primitive assembler. It has known four modes:
 - no GS mode: sends VS output directly to the primitive assembler (what citra currently does)
 - GS mode 0: sends VS output to GS input registers, and sends GS output to primitive assembler
 - GS mode 1: sends VS output to GS uniform registers, and sends GS output to primitive assembler. It also takes an index from the index buffer at the beginning of each primitive for determine the primitive size.
 - GS mode 2: similar to mode 1, but doesn't take the index and uses a fixed primitive size.
hwtest shows that immediate mode also supports GS (at least for mode 0), so the geometry pipeline gets refactored into its own class for supporting both drawing mode.
In the immediate mode, some games don't set the pipeline registers to a valid value until the first attribute input, so a geometry pipeline reset flag is set in `pipeline.vs_default_attributes_setup.index` trigger, and the actual pipeline reconfigure is triggered in the first attribute input.
In the normal drawing mode with index buffer, the vertex cache is a little bit modified to support the geometry pipeline. Instead of OutputVertex, it now holds AttributeBuffer, which is the input to the geometry pipeline. The AttributeBuffer->OutputVertex conversion is done inside the pipeline vertex handler. The actual hardware vertex cache is believed to be implemented in a similar way (because this is the only way that makes sense).
Both geometry pipeline and GS unit rely on states preservation across drawing call, so they are put into the global state. In the future, the other three vertex shader units should be also placed in the global state, and a scheduler should be implemented on top of the four units. Note that the current gs_unit already allows running VS on it in the future.
2017-08-19 10:13:20 +03:00
wwylele 8285ca4ad8 pica/shader/jit: implement SETEMIT and EMIT 2017-08-19 10:13:20 +03:00
wwylele 36981a5aa6 pica/primitive_assembly: Handle winding for GS primitive
hwtest shows that, although GS always emit a group of three vertices as one primitive, it still respects to the topology type, as if the three vertices are input into the primitive assembler independently and sequentially. It is also shown that the winding flag in SETEMIT only takes effect for Shader topology type, which is believed to be the actual difference between List and Shader (hence removed the TODO). However, only Shader topology type is observed in official games when GS is in use, so the other mode seems to be just unintended usage.
2017-08-19 10:13:20 +03:00
wwylele bb63ae3052 correct constness 2017-08-19 10:13:20 +03:00
wwylele 28128348f2 pica/shader/interpreter: implement SETEMIT and EMIT 2017-08-19 10:13:20 +03:00
wwylele 46c6973d2b pica/shader: extend UnitState for GS
Among four shader units in pica, a special unit can be configured to run both VS and GS program. GSUnitState represents this unit, which extends UnitState (which represents the other three normal units) with extra state for primitive emitting. It uses lots of raw pointers to represent internal structure in order to keep it standard layout type for JIT to access.
This unit doesn't handle triangle winding (inverting) itself; instead, it calls a WindingSetter handler. This will be explained in the following commits
2017-08-19 10:13:20 +03:00
wwylele 223bd35450 motion_emu: no need to include thread in header 2017-08-19 07:21:02 +03:00
Yuri Kunde Schlesner 21204ba488 Merge pull request #2881 from MerryMage/dsp-firm-check
dsp_dsp: Remove size assertion in LoadComponent
2017-08-15 20:14:41 -07:00
MerryMage b67c2dc82c dsp_dsp: Remove size assertion in LoadComponent 2017-08-15 10:16:50 +01:00
Dave Leaver bf71fc0342 Fix Spelling/English mistakes 2017-08-14 09:15:39 +12:00
Sebastian Valle d59f503729 Merge pull request #2843 from Subv/applet_slots
Services/APT: Use an array to hold data about the 4 possible concurrent applet types (Application, Library, HomeMenu, System)
2017-08-12 10:27:57 -05:00
wwylele 686fb3e78c gl_shader_gen: don't call SampleTexture when bump map is not used 2017-08-11 18:35:00 +03:00
wwylele 188194908c move MotionEmu from core/frontend to input_common as a InputDevice 2017-08-11 11:05:08 +03:00
wwylele 867eabd6b7 HID: use MotionDevice for Accelerometer and Gyroscope 2017-08-11 11:03:18 +03:00
Weiyi Wang 53ef90d1bd Merge pull request #2874 from danzel/spelling-1
Fix some spelling mistakes
2017-08-11 11:02:14 +03:00
danzel 8d3f48d0a3 Fix some spelling mistakes 2017-08-11 19:51:16 +12:00
wwylele 945f9a1b04 SwRasterizer/Lighting: implement spot light 2017-08-11 01:19:10 +03:00
wwylele 14ee32c46a SwRasterizer/Lighting: implement geometric factor 2017-08-11 01:18:43 +03:00
Weiyi Wang aaf5161344 Merge pull request #2863 from wwylele/pad-state-zero
HID: zero unused PadState bits
2017-08-10 17:50:18 +03:00
wwylele 599de29ea3 HID: zero unused PadState bits 2017-08-10 17:01:03 +03:00
wwylele 5d9d42f0d0 SwRasterizer/Lighting: use make_tuple instead of constructor
implicit tuple constructor is a c++17 thing, which is not supported by some not-so-old libraries. Play safe for now
2017-08-10 12:19:58 +03:00
wwylele db309b2423 pica/regs: layout geometry shader configuration regs
All the register meanings are derived from ctrulib (3dbrew is outdated for most of them)
2017-08-10 01:53:08 +03:00
bunnei c2466a2f19 Merge pull request #2862 from j-selby/update-cryptopp
Update CryptoPP (byte ambiguity)
2017-08-09 16:18:43 -04:00
Weiyi Wang 792dee47a7 Merge pull request #2822 from wwylele/sw_lighting-2
Implement fragment lighting in the sw renderer (take 2)
2017-08-09 18:54:29 +03:00
Weiyi Wang 93ab46e500 Merge pull request #2856 from wwylele/shader-share
pica: upload shared shader code & swizzle to both unit
2017-08-09 18:52:30 +03:00
mailwl a6273dd56a Service/dlp: Update function tables according 3dbrew 2017-08-09 16:14:07 +03:00
James 1a44949ef7 Update cryptopp 2017-08-08 17:50:09 +10:00
Subv 177e8ce655 Services/APT: Use the AppletAttributes union directly when dealing with applet attrs. 2017-08-07 16:09:55 -05:00
Subv 73fba0de46 Services/APT: Use an array to hold data about the 4 possible concurrent applet types (Application, Library, HomeMenu, System).
This gives each applet type its own set of events as per the real NS module.
2017-08-07 14:53:58 -05:00
wwylele baa24f4ea9 pica: upload shared shader code to both unit 2017-08-07 10:30:05 +03:00
Andrea Pascal f55b7aefd9 Quickfix typo in OpenGL 3.3 error message
User pointed out on the Discord server that "nothave" is erroneously concatenated. Added a space to prevent it.
2017-08-04 23:11:27 -04:00
bunnei fb8de89859 telemetry: Add field for OsPlatform. 2017-08-03 20:10:38 -04:00
bunnei 9390d54bb3 telemetry: Add field for BuildName. 2017-08-03 20:10:37 -04:00
bunnei 5c631ec9c5 telemetry: Add field for RequiresSharedFont. 2017-08-03 20:10:37 -04:00
bunnei a621ab6853 telemetry_session: Log BuildDate and ProgramName fields. 2017-08-03 20:10:37 -04:00
bunnei f44a1e0291 common: Add build timestamp to scm_rev. 2017-08-03 20:10:37 -04:00
bunnei 9b8e5bea66 core: Expose AppLoader as a public interface. 2017-08-03 20:10:37 -04:00
bunnei f5cf9960d9 loader: Expose program title. 2017-08-03 20:10:37 -04:00
wwylele 2252a63f80 SwRasterizer/Lighting: shorten file name 2017-08-03 13:51:22 +03:00
wwylele eda28266fb SwRasterizer/Lighting: move to its own file 2017-08-02 22:20:40 +03:00
wwylele 48b4105871 SwRasterizer/Lighting: reduce confusion 2017-08-02 22:07:15 +03:00
wwylele c59ed47608 SwRasterizer/Lighting: move quaternion normalization to the caller 2017-08-02 22:05:53 +03:00
James 941a722ff1 Handle invalid filenames when renaming files/directories 2017-07-31 17:11:53 +10:00
Weiyi Wang 60024ad7c2 Merge pull request #2848 from wwylele/shader-loop-fix
pica/shader_interpreter: fix off-by-one in LOOP
2017-07-29 12:34:28 +03:00
bunnei 05a38e307c Merge pull request #2679 from MerryMage/interp-tests
DynCom VFP tests
2017-07-27 11:21:36 -04:00
bunnei f15e5522dc Merge pull request #2840 from Subv/apt_parameter
Services/APT: Corrected the behavior of the Receive/Send/Glance/CancelParameter functions
2017-07-27 11:14:27 -04:00
wwylele c89f804a01 pica/shader_interpreter: fix off-by-one in LOOP 2017-07-27 13:48:27 +03:00
bunnei a724fb3657 Merge pull request #2837 from wwylele/shader-debugger-fix
Misc shader debugger fixes
2017-07-26 16:00:10 -04:00
B3n30 718423e506 Network: Moved NintendoOUI initalization to RoomMember constructor 2017-07-26 21:06:40 +02:00
MerryMage a08edd67eb tests: Add tests for vadd 2017-07-23 12:29:51 +01:00
MerryMage 567c3a2ee7 tests: Arm testing framework 2017-07-23 12:08:43 +01:00
Sebastian Valle c6a2e519ef Merge pull request #2816 from wwylele/proctex-lutlutlut
gl_rasterizer: use texture buffer for proctex LUT
2017-07-22 23:03:48 -05:00
Sebastian Valle e646bd902d Merge pull request #2834 from wwylele/depth-enable-fix
gl_rasterizer_cache: fix using_depth_fb
2017-07-22 23:02:59 -05:00
Weiyi Wang 045d0b5bbd Merge pull request #2799 from yuriks/virtual-cached-range-flush
Add address conversion functions returning optional, Add function to flush virtual region from rasterizer cache
2017-07-22 10:15:52 +03:00
Subv e59ab7c1d6 Service/APT: Log Send/Cancel/Receive/GlanceParameter calls even if they return an error. 2017-07-21 15:03:06 -05:00
Subv 68596a7068 Services/APT: Return the proper error code when calling SendParameter with an outstanding parameter already in memory. 2017-07-21 14:59:26 -05:00
Subv a9bc417f59 Services/APT: Reset the APT parameter inside CancelParameter if the conditions are met. 2017-07-21 14:59:25 -05:00
Subv e403638d9b Services/APT: Properly clear the apt parameter after a successful ReceiveParameter call. 2017-07-21 14:59:22 -05:00
Subv 2dc720c355 Services/APT: Use the right error codes in ReceiveParameter and GlanceParameter when the parameter doesn't exist. 2017-07-21 14:59:21 -05:00
Subv 5682608df7 Services/APT: Use boost::optional for the APT parameter structure. 2017-07-21 14:59:20 -05:00
wwylele 49602139c8 debugger/shader: display LOOP 2017-07-20 23:30:34 +03:00
wwylele b5609e1578 debugger/shader: print the invert flag for JMPU 2017-07-20 23:18:07 +03:00
wwylele 8375fd2aba debugger/shader: fix address register for reverted arithmetic op 2017-07-20 23:12:08 +03:00
wwylele 98cd5164c5 debugger/shader: fix inverted uniform flow control 2017-07-20 22:47:53 +03:00
bunnei df8b9863f9 telemetry: Log performance, configuration, and system data. 2017-07-17 21:32:28 -04:00
bunnei 822e8d21ea Merge pull request #2804 from Kloen/theming
citra-qt: UI Themes
2017-07-17 21:30:01 -04:00
Weiyi Wang 924215a41f Merge pull request #2818 from B3n30/network
Enable data transfer over ENet
2017-07-17 17:08:02 +03:00
B3n30 7dbbd8a02e stubbed frd::UnscrambleLocalFriendCode (#2827) 2017-07-16 21:32:08 -05:00
B3n30 77df82f5d6 Network: Changed timeout for receiving packets to 100ms 2017-07-16 21:30:17 +02:00
B3n30 253d3dd3d8 Network: Propagate Room closing to connected members 2017-07-16 21:30:10 +02:00
B3n30 a0626221a5 Network: Made send async in RoomMember 2017-07-16 21:30:04 +02:00
B3n30 859be35d54 Network: Send the game title 2017-07-16 21:29:57 +02:00
B3n30 42e57c1218 Network: Enable sending and receiving chat messages 2017-07-16 21:29:49 +02:00
B3n30 35a0b32553 Network: Handle the disconnect of a client 2017-07-16 21:29:41 +02:00
B3n30 641346c15c Network: Enable to send WifiPackets 2017-07-16 21:29:34 +02:00
B3n30 ebff5ba514 Network: Init Network in SDL and QT 2017-07-16 21:29:19 +02:00
B3n30 77677e205e Network: Send JoinRequest and handle the answer in RoomMember 2017-07-16 21:29:11 +02:00
B3n30 2af9a7146d Network: Handle join request in Room 2017-07-16 21:29:02 +02:00
B3n30 7d9b7394dd Network: Added Packet class for serialization 2017-07-16 21:28:55 +02:00
B3n30 589dc083a5 Network: Threads for Room and RoomMember 2017-07-16 21:28:47 +02:00
Weiyi Wang e634b75754 Merge pull request #2784 from wwylele/font-archive
load shared font from system archive
2017-07-16 20:12:55 +03:00
bunnei 28c3575679 web_backend: Specify api-version on JSON post. 2017-07-11 18:34:30 -04:00
bunnei 33b012e86b web_service: Add CMake flag to enable. 2017-07-11 18:33:41 -04:00
bunnei 8af3ebb149 telemetry_session: Use TelemetryJson to submit real telemetry. 2017-07-11 18:33:40 -04:00
bunnei fd3b4451ec web_service: Implement JSON serialization of telemetry data. 2017-07-11 18:33:38 -04:00
bunnei a634efa40e web_backend: Add initial interface to POST data to Citra Web Services. 2017-07-11 18:33:25 -04:00
wwylele 4feff63ffa SwRasterizer/Lighting: dist atten lut input need to be clamp 2017-07-11 22:19:00 +03:00
wwylele 56e5425e59 SwRasterizer/Lighting: unify float suffix 2017-07-11 22:15:35 +03:00
wwylele e415558a4f SwRasterizer/Lighting: get rid of nested return 2017-07-11 22:15:35 +03:00
wwylele c6d1472513 SwRasterizer/Lighting: refactor GetLutValue into a function.
merging similar pattern. Also makes the code more similar to the gl one
2017-07-11 22:15:35 +03:00
wwylele f13cf506e0 SwRasterizer: only interpolate quat and view when lighting is enabled 2017-07-11 21:35:57 +03:00
wwylele fe44e843fe vector_math: remove dead template parameter 2017-07-11 20:08:56 +03:00
wwylele efc655aec0 SwRasterizer/Lighting: pass lighting state as parameter 2017-07-11 20:06:26 +03:00
wwylele f3660ba9dd vector_math: remove broken SFINAE stuff
this was originally added to eliminate warnings on MSVC, but it doesn't work for custom types.
2017-07-11 19:51:29 +03:00
Subv 9906feefbd SwRasterizer/Lighting: Move the clamp highlight calculation to the end of the per-light loop body. 2017-07-11 19:39:15 +03:00
Subv 7526af5e52 SwRasterizer/Lighting: Move the lighting enable check outside the ComputeFragmentsColors function. 2017-07-11 19:39:15 +03:00
Subv b8229a7684 SwRasterizer/Lighting: Do not use global registers state in ComputeFragmentsColors. 2017-07-11 19:39:15 +03:00
Subv 7bc467e872 SwRasterizer/Lighting: Do not use global state in LookupLightingLut. 2017-07-11 19:39:15 +03:00
Subv 37ac2b6657 SwRasterizer/Lighting: Fixed a bug where the distance attenuation bias was being set to the dist atten scale. 2017-07-11 19:39:15 +03:00
Subv 6250f52e93 SwRasterizer: Fixed a few conversion warnings and moved per-light values into the per-light loop. 2017-07-11 19:39:15 +03:00
Subv 2d69a9b8bf SwRasterizer: Run clang-format 2017-07-11 19:39:15 +03:00
Subv 73566ff7a9 SwRasterizer: Flip the vertex quaternions before clipping (if necessary). 2017-07-11 19:39:15 +03:00
Subv 2a75837bc3 SwRasterizer: Corrected the light LUT lookups. 2017-07-11 19:39:15 +03:00
Subv f2d4d5c219 SwRasterizer: Corrected the light LUT lookups. 2017-07-11 19:39:15 +03:00
Subv 80b6fc592e SwRasterizer: Fixed the lighting lut lookup function. 2017-07-11 19:39:15 +03:00
Subv 10b0bea060 SwRasterizer: Calculate fresnel for fragment lighting. 2017-07-11 19:39:15 +03:00
Subv 46b8c8e1da SwRasterizer: Calculate specular_1 for fragment lighting. 2017-07-11 19:39:15 +03:00
Subv be25e78b07 SwRasterizer: Calculate specular_0 for fragment lighting. 2017-07-11 19:39:15 +03:00
Subv b2f472a2b1 SwRasterizer: Implement primary fragment color. 2017-07-11 19:39:15 +03:00
bunnei 52fbe1e10c web_service: Add skeleton project. 2017-07-10 00:15:40 -04:00
bunnei 8abf808854 settings: Add telemetry endpoint URL. 2017-07-10 00:15:39 -04:00
bunnei f7a9d42592 logging: Add WebService as a log cateogry. 2017-07-10 00:15:30 -04:00
Sebastian Valle 669757a97b Merge pull request #2815 from mailwl/bossp
Service/boss:P: Add some functions to FunctionTable
2017-07-08 13:58:40 -05:00
bunnei 6d4bac8522 Merge pull request #2797 from yuriks/cached-vma-free-crash
Memory: Fix crash when unmapping a VMA covering cached surfaces
2017-07-08 14:07:47 -04:00
B3n30 2e37ce01c9 Implement basic virtual Room support based on enet (#2803)
* Added support for network with ENet lib,

connecting is possible, but data can't be sent, yet.

* fixup! Added support for network with ENet lib,

* fixup! CLang

* fixup! Added support for network with ENet lib,

* fixup! Added support for network with ENet lib,

* fixup! Clang format

* More fixups!

* Moved ENetHost* and ENetPeer* into pimpl classes

* fixup! Moved ENetHost* and ENetPeer* into pimpl classes

* fixup! Clang again

* fixup! Moved ENetHost* and ENetPeer* into pimpl classes

* fixup! Moved ENetHost* and ENetPeer* into pimpl classes

* fixup! Moved ENetHost* and ENetPeer* into pimpl classes
2017-07-07 15:34:15 -04:00
mailwl 8582194a4c Service/boss:P: Add some functions to FunctionTable 2017-07-01 12:21:38 +03:00
wwylele 8482933db8 gl_rasterizer: use texture buffer for proctex LUT 2017-07-01 11:02:48 +03:00
Kloen 0e428823f0 Remove unnecessary WIN32_LEAN_AND_MEAN macro definition 2017-06-30 01:59:55 +02:00
Sebastian Valle 56d718b2a1 Merge pull request #2793 from Subv/replyandreceive
Kernel/SVC: Partially implemented svcReplyAndReceive
2017-06-29 17:05:22 -05:00
Subv b53fa9514f Kernel/SVC: Pass the current thread as a parameter to ClientSession::SendSyncRequest. 2017-06-29 12:30:34 -05:00
Yuri Kunde Schlesner 686fde7e52 Merge pull request #2809 from wwylele/texture-copy-fix
gpu: fix edge cases for TextureCopy
2017-06-29 09:29:40 -07:00
wwylele 85a448d405 gpu: add comments for TextureCopy 2017-06-29 13:09:23 +03:00
Yuri Kunde Schlesner a613d45de9 Merge pull request #2800 from wwylele/fog-lutlutlut
gl_rasterizer: use texture buffer for fog LUT
2017-06-28 21:52:20 -07:00
MerryMage f1790e6d91 configure_debug: Add label warning that CPU JIT needs to be disabled for gdbstub to work 2017-06-28 08:50:22 +01:00
wwylele bf16c73260 gpu: fix edge cases for TextureCopy 2017-06-27 23:20:23 +03:00
Sebastian Valle fa53ccc74b Merge pull request #2778 from Subv/uds_more
Services/UDS: Stub SendTo to generate the unencrypted data frames with the right headers
2017-06-26 19:35:52 -05:00
Subv 2eb174713b UDS: Use the ToDS and FromDS fields to properly calculate the AAD used during encryption. 2017-06-26 12:24:14 -05:00
Subv 1f1739d366 UDS: Move the UDS keyslot used to generate the CCMP key to the AES::KeySlotID enum. 2017-06-26 12:24:13 -05:00
Subv 87168bfe8b UDS: Run clang-format. 2017-06-26 12:24:11 -05:00
Subv 9befb8c887 UDS: Added functions to encrypt and decrypt the data frames.
The responsibility of encryption and encapsulation into an 802.11 MAC frame will fall into the callers of GenerateDataPayload.
2017-06-26 12:24:09 -05:00
Subv c3c9175a1c Kernel/Sessions: Clean up the list of pending request threads of a session when the client endpoint is closed. 2017-06-25 23:38:29 -05:00
Subv 88c93a7436 Kernel/SVC: Partially implemented svcReplyAndReceive.
It behaves mostly as WaitSynchronizationN with wait_all = false, except for IPC buffer translation.

The target thread of an IPC response will now wake up when responding.
IPC buffer translation is currently not implemented.
Error passing back to svcSendSyncRequest is currently not implemented.
2017-06-25 23:38:28 -05:00
wwylele 9549eed0be apt: load shared font from system archive 2017-06-26 01:38:12 +03:00
wwylele 22994607cc apt/shared_font: don't relocate zero offset 2017-06-26 00:43:23 +03:00
Subv 8feeb81af2 Kernel/ServerSession: Keep track of which threads have issued sync requests. 2017-06-25 14:47:25 -05:00
B3n30 6ba089fafb Set global definition WIN32_LEAN_AND_MEAN (#2807)
Set definition WIN32_LEAN_AND_MEAN to avoid windows.h including a lot of libs that are usually not used.
2017-06-24 17:38:16 -07:00
Kloen 74cf73f9d3 citra-qt: Add option to configure the UI theme 2017-06-24 05:48:43 +02:00
Kloen 9c2335b984 citra-qt: load ui theme at startup and config change. 2017-06-24 05:48:42 +02:00
Kloen 1355f0f39e citra-qt: Add Dark theme from https://github.com/ColinDuquesnoy/QDarkStyleSheet 2017-06-24 05:48:42 +02:00
Kloen bbeb9f1dbb citra-qt: add new uisetting->theme 2017-06-24 05:48:35 +02:00
Yuri Kunde Schlesner e192d417ec Kernel: Implement AcceptSession SVC 2017-06-23 11:26:37 -07:00
Yuri Kunde Schlesner 8c6a8edaca Kernel: Fix SVC wrapper for CreatePort
The return parameters were flipped.
2017-06-23 11:22:04 -07:00
Yuri Kunde Schlesner aa0f3047d3 Kernel: Implement CreateSessionToPort SVC 2017-06-23 11:22:02 -07:00
Yuri Kunde Schlesner 6d436d7a52 Merge pull request #2798 from yuriks/svc-create-session
Kernel: Implement CreateSession SVC
2017-06-23 11:18:49 -07:00
bunnei cac1133bc4 Merge pull request #2795 from chris062689/master
Change default UI background from white to black.
2017-06-22 22:00:03 -04:00
bunnei 8223d18088 Merge pull request #2796 from yuriks/hle-null-handles
Kernel/IPC: Support translation of null handles
2017-06-22 21:59:25 -04:00
wwylele 8978ecb09c gl_rasterizer: use texture buffer for fog LUT 2017-06-22 20:41:00 +03:00
wwylele f1e377f57e gl_rasterizer: create the texture before applying the state
this is a rebasing error from #2792. It doesn't affect much though, because the later more Apply() call fixes/hides it
2017-06-22 17:47:46 +03:00
Yuri Kunde Schlesner cdefefc539 Kernel: Fix typo in test name 2017-06-22 02:21:18 -07:00
Yuri Kunde Schlesner f94093d0fd Kernel: Implement CreateSession SVC 2017-06-22 00:39:27 -07:00
Yuri Kunde Schlesner d553135748 Memory: Add function to flush a virtual range from the rasterizer cache
This is slightly more ergonomic to use, correctly handles virtual
regions which are disjoint in physical addressing space, and checks only
regions which can be cached by the rasterizer.
2017-06-21 22:57:12 -07:00
Yuri Kunde Schlesner f2a5a77e27 Memory: Fix crash when unmapping a VMA covering cached surfaces
Unmapping pages tries to flush any cached GPU surfaces touching that
region. When a cached page is invalidated, GetPointerFromVMA() is used
to restore the original pagetable pointer. However, since that VMA has
already been deleted, this hits an UNREACHABLE case in that function.

Now when this happens, just set the page type to Unmapped and continue,
which arrives at the correct end result.
2017-06-21 22:56:31 -07:00
Yuri Kunde Schlesner 6ae0086b39 Memory: Add TryVirtualToPhysicalAddress, returning a boost::optional 2017-06-21 22:55:18 -07:00
Yuri Kunde Schlesner 326e7c7020 Memory: Make PhysicalToVirtualAddress return a boost::optional
And fix a few places in the code to take advantage of that.
2017-06-21 22:55:17 -07:00
Yuri Kunde Schlesner 72b69cea4b Merge pull request #2792 from wwylele/lutlutlut
gl_rasterizer: fix lighting LUT interpolation
2017-06-21 14:55:23 -07:00
Yuri Kunde Schlesner f64d0b3f26 Kernel/IPC: Support translation of null handles
Missed this in my first implementation. Thanks to @wwylele for pointing
out that this was missing.
2017-06-21 14:27:03 -07:00
wwylele 457659fe01 gl_state: reset 1d textures 2017-06-21 23:13:06 +03:00
wwylele 42f7ca7412 gl_rasterizer: fix glGetUniformLocation type 2017-06-21 23:13:06 +03:00
wwylele be9e952bdc gl_rasterizer: manage texture ids in one place 2017-06-21 23:13:06 +03:00
wwylele ab60414122 gl_rasterizer/lighting: fix LUT interpolation 2017-06-21 23:13:06 +03:00
chris062689 f44b360724 Changing default values for bg_red, bg_green, and bg_blue from 1.0 to 0.0. 2017-06-21 13:45:07 -04:00
Weiyi Wang c4f0927a62 Merge pull request #2789 from yuriks/misc-kernel
Trivial no-op additions
2017-06-21 20:34:12 +03:00
Yuri Kunde Schlesner b21dfbb295 Merge pull request #2790 from yuriks/remove-movefrom
Remove ResultVal::MoveFrom
2017-06-20 22:04:09 -07:00
Yuri Kunde Schlesner 42b198eb0a Memory: Add enum definitions for the n3DS FCRAM size 2017-06-20 22:03:25 -07:00
Sebastian Valle 96dcccc80c Merge pull request #2779 from Subv/uds_more2
UDS: Added a hook for updating the connection status when a client connects to the network.
2017-06-21 02:29:00 +00:00
Yuri Kunde Schlesner 723dc644fa ResultVal: Remove MoveFrom()
Replace it with std::move(result_val).Unwrap(), or Foo().Unwrap() in
case you already have an rvalue.
2017-06-18 19:03:15 -07:00
Yuri Kunde Schlesner 4cb47b0278 ResultVal: Add an rvalue overload of Unwrap() 2017-06-18 18:49:46 -07:00
Yuri Kunde Schlesner 90b8d4dd36 Kernel: Add comment about the extended linear heap area 2017-06-18 18:38:40 -07:00
Yuri Kunde Schlesner 60a882cd50 Kernel/IPC: Add tests for HLERequestContext buffer translation 2017-06-18 16:05:58 -07:00
Yuri Kunde Schlesner 0dfafdbe59 Kernel/IPC: Make HLERequestContext usable from outside kernel 2017-06-18 16:05:12 -07:00
Yuri Kunde Schlesner d0888f8548 Merge pull request #2776 from wwylele/geo-factor
Fragment lighting: implement geometric factor
2017-06-18 14:18:48 -07:00
wwylele 5a454173a8 gl_rasterizer/lighting: use the formula from the paper for germetic factor 2017-06-18 10:29:02 +03:00
Yuri Kunde Schlesner f6715f98f5 Stop using reserved operator names (and/or/xor) with Xbyak
Also has the Dynarmic upgrade with the same change
2017-06-17 12:20:22 -07:00
Subv 812b404492 UDS: Clarify comment about the first 4 bytes of the SecureData header.
It is likely that these 4 bytes are actually a different header, part of some protocol that encapsulates the SecureData protocol.
2017-06-15 12:08:55 -05:00
Subv 61ce89a55a UDS: Return the correct error messages in SendTo when not connected to a network or trying to send to itself. 2017-06-15 12:08:54 -05:00
Subv 7efb64132d UDS: Stub SendTo to generate the unencrypted data frame with the right headers. 2017-06-15 12:08:53 -05:00
Subv 38ceab13f6 UDS: Added a hook for updating the connection status when a client connects to the network. 2017-06-15 11:57:49 -05:00
wwylele 7052d43a67 gl_rasterizer/lighting: implement geometric factor 2017-06-15 14:59:01 +03:00
Yuri Kunde Schlesner da1bec121a Merge pull request #2762 from wwylele/light-cp-tangent
Fragment lighting: implement lut input 5 (CP) and tangent mapping
2017-06-14 20:08:26 -07:00
Yuri Kunde Schlesner 5fe5ccac42 Merge pull request #2743 from wwylele/wrap-fix
pica/rasterizer: implement/stub texture wrap mode 4-7
2017-06-13 21:28:12 -07:00
Sebastian Valle ac168eeb5d Services/UDS: Set the proper bit in the ConnectionStatus structure when creating a network. (#2738)
* Services/UDS: Set the proper bit in the ConnectionStatus structure when creating a network.

This lets the application know that the host was successfully added to the session.

* Services/UDS: Reset the connection status when destroying the network

* Services/UDS: Reset the connection status's bitmask of changed nodes after reporting it to the game.
2017-06-13 22:00:58 +03:00
Yuri Kunde Schlesner 791cd14c8d Merge pull request #2767 from yuriks/quaternion-flip-comment
OpenGL: Update comment on AreQuaternionsOpposite with new information
2017-06-12 16:31:55 -07:00
Yuri Kunde Schlesner 4325a7c82d Merge pull request #2774 from yuriks/hle-handles
Add basic support for IPC translation for HLE services
2017-06-11 21:39:49 -07:00
Yuri Kunde Schlesner d8f6000f54 Kernel/IPC: Use boost::small_vector for HLE context objects 2017-06-11 16:34:13 -07:00
Yuri Kunde Schlesner 92ca422088 Kernel: Allow clearing request_objects to re-use buffer space
Reduces the necessary allocation to max(in_handles, out_handles) rather
than (in_handles + out_handles).
2017-06-11 13:10:21 -07:00
Yuri Kunde Schlesner 8cb65fe65a Kernel: Basic support for IPC translation for HLE services 2017-06-11 13:10:21 -07:00
Yuri Kunde Schlesner 7656d83df5 Service/sm: Convert srv: to use IPC helpers 2017-06-11 13:10:21 -07:00
Yuri Kunde Schlesner 21436f5ef7 IPC: Add Pop/PushObjects methods to RequestParser/Builder
These use the context functions to create and look-up handles for the
user.
2017-06-11 13:10:20 -07:00
Yuri Kunde Schlesner 1c4b0ebb1f IPC: Add basic HLERequestContext support to RequestParser/Builder 2017-06-11 13:10:16 -07:00
Yuri Kunde Schlesner 05fee70211 Kernel: Add methods in HLERequestContext abstracting handle creation 2017-06-11 13:07:33 -07:00
Yuri Kunde Schlesner 20e5abb308 ServiceFramework: Use separate copy of command buffer
Copy the IPC command buffer to/from the request context before/after the
handler is invoked. This is part of a move away from using global data
for handling IPC requests.
2017-06-11 13:07:33 -07:00
wwylele 972548e3ee gl_rasterizer/lighting: Implement tangent mapping 2017-06-11 21:30:53 +03:00
wwylele 40b7d0bf3f gl_rasterizer/lighting: implement lut input 5 (CP) 2017-06-11 21:30:53 +03:00
Sebastian Valle 39c7c1f580 Merge pull request #2727 from wwylele/spot-light
Fragment lighting: implement spot light
2017-06-11 18:23:47 +00:00
wwylele b3b9468573 gl_rasterizer_cache: depth write is disabled if allow_depth_stencil_write is false 2017-06-10 15:10:34 +03:00
Yuri Kunde Schlesner ba01a8302a OpenGL: Update comment on AreQuaternionsOpposite with new information
While debugging the software renderer implementation, it was noticed
that this is actually exactly what the hardware does, upgrading the
status of this "hack" to being a proper implementation. And there was
much rejoicing.
2017-06-10 01:55:17 -07:00
Kloen Lansfiel 9a8a90b52b Remove unused import in break_points.cpp (#2763) 2017-06-08 21:16:46 -07:00
Yuri Kunde Schlesner 78398d0978 Merge pull request #2756 from yuriks/service-framework
New service framework
2017-06-08 21:03:03 -07:00
Yuri Kunde Schlesner 6f368abe13 Service/sm: Convert 'srv:' to ServiceFramework 2017-06-08 20:59:19 -07:00
Yuri Kunde Schlesner 838faf147e Session: Remove/add some forward declarations 2017-06-08 00:33:57 -07:00
Yuri Kunde Schlesner d666e01cdf Kernel: Ensure objects are kept alive during ClientSession disconnection
Fixes #2760
2017-06-08 00:33:24 -07:00
Yuri Kunde Schlesner c92a8a6154 Service: Remove a few redundant namespace qualifiers 2017-06-08 00:11:37 -07:00
Yuri Kunde Schlesner 84c497292a Service: Add new ServiceFramework framework for writing HLE services
The old "Interface" class had a few problems such as using free
functions (Which didn't allow you to write the service handler as if it
were a regular class.) which weren't very extensible. (Only received one
parameter with a pointer to the Interface object.)

The new ServiceFramework aims to solve these problems by working with
member functions and passing a generic context struct as parameter. This
struct can be extended in the future without having to update all
existing service implementations.
2017-06-08 00:11:37 -07:00
James Rowe 8c22334f96 Merge pull request #2737 from Subv/decryptbeacondata
Services/UDS: Implement DecryptBeaconData.
2017-06-07 10:08:43 -06:00
Yuri Kunde Schlesner 6dc133c24a Kernel: Remove some unnecessary namespace qualifications 2017-06-06 14:51:42 -07:00
Subv d7d0b46fc1 Services/UDS: Implement DecryptBeaconData.
This function decrypts the encrypted data tags contained in the 802.11 beacon frames.
2017-06-06 11:31:20 -05:00
Yuri Kunde Schlesner d96a9e0c11 Service: Remove unnecessary includes from service.h
This has a huge fallout in terms of needing to fix other files because
all service implementations included that file.
2017-06-06 02:57:23 -07:00
Yuri Kunde Schlesner 23ec6b3d8f Service: Make service registration part of the sm implementation
Also enhances the GetServiceHandle implementation to be more accurate.
2017-06-06 02:57:04 -07:00
Yuri Kunde Schlesner e5a59ef27c Service/sm: Use an actual semaphore for the notification semaphore
An Event was used way back then when we didn't have proper working
semaphores. Our Semaphore implementation is good enough now.
2017-06-06 02:57:04 -07:00
Yuri Kunde Schlesner 1eee09f364 Service: Move SRV interface to a new sm/ subdirectory
This will contain the implementation of the sm (Service Manager) system
module.
2017-06-06 02:57:04 -07:00
Yuri Kunde Schlesner 6354d08359 Kernel: Add a dedicated SetHleHandler method to ServerPort/ServerSession
This allows attaching a HLE handle to a ServerPort at any point after it
is created, allowing port/session creation to be generic between HLE and
regular services.
2017-06-06 02:56:32 -07:00
Yuri Kunde Schlesner 7e5dd46cf4 ResultVal: Add more convenience utils for creating and cascading results 2017-06-06 00:51:57 -07:00
Yuri Kunde Schlesner e626a520ca HLE: Move SessionRequestHandler from Service:: to Kernel::
Most of the code that works with this is or will be in the kernel, so
it's a more appropriate place for it to be.
2017-06-05 23:40:11 -07:00
wwylele 28d1e73d2f pica/rasterizer: implement/stub texture wrap mode 4-7 2017-06-04 09:47:25 +03:00
Alex Touchet e46ec64690 Edit Citra URLs (#2728) 2017-06-03 23:51:45 +03:00
Kloen b763220dec Remove unused imports in game_list_p.h 2017-06-03 17:43:37 +02:00
TheKoopaKingdom f008b22e3b Addressed Bunnei's review comments, and made some other tweaks:
- Deleted GetStatus() because it wasn't used anywhere outside of Core::System.
 - Fixed design flaw where the message bar status could be set despite the game being stopped.
2017-06-02 18:40:39 -04:00
TheKoopaKingdom ff04320c97 Fixed wiki URLs. 2017-06-02 18:40:39 -04:00
TheKoopaKingdom 59de38b965 Switched to the ERROR_NOT_FOUND constant from errors.h. 2017-06-02 18:40:39 -04:00
TheKoopaKingdom cea19fd659 Moved whitelist checks from FS_User to the Archive_NCCH handler. 2017-06-02 18:40:27 -04:00
TheKoopaKingdom a8aef599e0 Created a whitelist of system archives to prevent false positives creating dialogs. 2017-06-02 18:28:14 -04:00
TheKoopaKingdom 0409bdfea5 Optimized messages that were repetitive and added ability for core errors to specify more details optionally. 2017-06-02 18:28:14 -04:00
TheKoopaKingdom b6bab59000 Added message to status bar to show core errors ignored by the user. 2017-06-02 18:28:14 -04:00
TheKoopaKingdom 37bec598ea Made some changes from review comments:
- Made LoadKernelSystemMode return a pair consisting of a system mode and a result code (Could use review).
- Deleted ErrorOpenGL error code in favor of just having ErrorVideoCore.
- Made dialog messages more clear.
- Compared archive ID in fs_user.cpp to ArchiveIdCode::NCCH as opposed to hex magic.
- Cleaned up some other stuff.
2017-06-02 18:28:14 -04:00
TheKoopaKingdom 1ecb322daa Added system for handling core errors in citra-qt. 2017-06-02 18:27:56 -04:00
TheKoopaKingdom e523c76cc8 Fixed encrypted ROM error messages. 2017-06-02 18:25:32 -04:00
bunnei 4857eb441b Merge pull request #2722 from wwylele/cam-ipc-helper
CAM: use IPCHelper
2017-05-31 19:47:37 -04:00
bunnei af1ff4d3ce Merge pull request #2739 from yuriks/kernel-reorg
Split-up kernel.h
2017-05-31 19:46:15 -04:00
bunnei 54ea95cca7 Merge pull request #2721 from wwylele/texture-cube
swrasterizer: implemented TextureCube
2017-05-30 10:21:05 -04:00
wwylele 10906dceec gl_rasterizer: implement spot light 2017-05-30 10:54:58 +03:00
wwylele 686cbf3ac6 gl_rasterizer: sync spot light status 2017-05-30 10:54:58 +03:00
wwylele b5addf8fb8 pica: prepare registers for spotlight 2017-05-30 10:54:58 +03:00
Yuri Kunde Schlesner be031989ee Kernel: Move HandleTable to a separate file 2017-05-29 17:34:39 -07:00
Yuri Kunde Schlesner 64ecf81a3c Kernel: Move WaitObject to a separate file
Now that HandleTable doesn't directly depend on WaitObject anymore, this
can be separated from the main kernel.h header.
2017-05-29 16:16:46 -07:00
Yuri Kunde Schlesner a4f88c7d7c Merge pull request #2734 from yuriks/cmake-imported-libs
CMake: Use CMake target properties for all libraries
2017-05-29 15:12:21 -07:00
Yuri Kunde Schlesner 9453223075 Kernel: Removed HandleTable::GetWaitObject
This isn't necessary anymore since plain Get works correctly for
WaitObjects.
2017-05-29 15:10:06 -07:00
Yuri Kunde Schlesner b17754f998 Kernel: Extract dynamic Object pointer cast into its own function 2017-05-29 14:42:27 -07:00
wwylele 0b9bb082c3 swrasterizer: implement TextureCube 2017-05-29 22:28:48 +03:00
wwylele 077cc683e5 pica: add registers for texture cube 2017-05-29 22:03:08 +03:00
Yuri Kunde Schlesner 3df85a103a Merge pull request #2729 from yuriks/quaternion-fix
OpenGL: Improve accuracy of quaternion interpolation
2017-05-28 01:24:06 -07:00
Yuri Kunde Schlesner cebdae6c92 CMake: Create an INTERFACE target for Catch 2017-05-27 22:46:59 -07:00
Yuri Kunde Schlesner d736cca848 CMake: Create INTERFACE targets for microprofile and nihstro 2017-05-27 22:34:52 -07:00
Yuri Kunde Schlesner 3b68600f81 CMake: Remove unnecessary include_directories for dynarmic
Dynarmic already adds the correct include paths to the library target.
2017-05-27 22:19:37 -07:00
Yuri Kunde Schlesner 4f84372bc2 CMake: Add cryptopp include path to target property 2017-05-27 22:16:57 -07:00
Yuri Kunde Schlesner 74afcd5328 CMake: Add SoundTouch include path to target property 2017-05-27 22:09:28 -07:00
Yuri Kunde Schlesner 776cb91785 CMake: Define an interface target for SDL2 definitions 2017-05-27 21:38:49 -07:00
Yuri Kunde Schlesner 34b6c8bd88 CMake: Remove CITRA_QT_LIBS var
This used to be required to support both Qt4 and Qt5, but we dropped Qt4
so it's not needed anymore.
2017-05-27 20:53:39 -07:00
Yuri Kunde Schlesner 089baa04e8 CMake: Stop using FindOpenGL, which seems to not be required anymore 2017-05-27 20:48:00 -07:00
Yuri Kunde Schlesner 0f563111a2 CMake: Use IMPORTED target for Boost 2017-05-27 20:44:51 -07:00
Yuri Kunde Schlesner 4660bc1c78 CMake: Use IMPORTED target for libpng 2017-05-27 20:44:51 -07:00
Yuri Kunde Schlesner 7b81903756 CMake: Correct inter-module dependencies and library visibility
Modules didn't correctly define their dependencies before, which relied
on the frontends implicitly including every module for linking to
succeed.

Also changed every target_link_libraries call to specify visibility of
dependencies to avoid leaking definitions to dependents when not
necessary.
2017-05-27 18:41:24 -07:00
Yuri Kunde Schlesner 62f34c8e5c Citra: Convert include into forward declaration 2017-05-27 18:41:24 -07:00
Yuri Kunde Schlesner e91f2b7663 Remove some unnecessary inclusions of video_core.h 2017-05-27 18:41:24 -07:00
Yuri Kunde Schlesner eb10f25025 Move screen size constants from video_core to core
video_core didn't even properly use them, and they were the source of
many otherwise-unnecessary dependencies from core to video_core.
2017-05-27 18:41:24 -07:00
Yuri Kunde Schlesner 6665557ff7 OpenGL: Remove unused RendererOpenGL fields 2017-05-27 18:02:46 -07:00
Yuri Kunde Schlesner ae095cfb71 Core: Fix some out-of-style includes 2017-05-27 16:31:42 -07:00
Yuri Kunde Schlesner 2579ae543b Common: Fix some out-of-style includes 2017-05-27 16:14:10 -07:00
Yuri Kunde Schlesner d1bf7919da Move framebuffer_layout from Common to Core
This removes a dependency inversion between core and common. It's also
the proper place for the file since it makes screen layout decisions
specific to the 3DS.
2017-05-27 16:10:25 -07:00
wwylele 857510a7c0 fixup!cam: use IPCHelper 2017-05-27 21:30:07 +03:00
Yuri Kunde Schlesner 96528b3aab Merge pull request #2725 from wwylele/texture-sampler
gl_shader: refactor texture sampler into its own function
2017-05-27 03:26:50 -07:00
Yuri Kunde Schlesner 669ef82aee OpenGL: Improve accuracy of quaternion interpolation
Current order of operations (rotate then normalize) seems to produce a
lot more distortion than normalizing and then rotating. This makes Citra
results match pretty closesly with hardware, and indicates that hardware
may also be using lerp instead of slerp to interpolate the quaternions.
2017-05-27 00:13:41 -07:00
wwylele 90c8d09098 gl_shader: refactor texture sampler into its own function 2017-05-27 01:56:22 +03:00
bunnei 61decd84cc Merge pull request #2716 from yuriks/decentralized-result
Decentralize ResultCode
2017-05-26 11:59:57 -04:00
Yuri Kunde Schlesner bae3799bd5 Merge pull request #2697 from wwylele/proctex
Implemented Procedural Texture (Texture Unit 3)
2017-05-24 21:37:42 -07:00
Yuri Kunde Schlesner a5810d61da FS: Remove unused result definition 2017-05-24 21:06:00 -07:00
Yuri Kunde Schlesner c1a9e94068 Common: Clean up meta-template logic in BitField 2017-05-24 21:06:00 -07:00
Yuri Kunde Schlesner 2cdb40d709 Kernel: Centralize error definitions in errors.h 2017-05-24 21:06:00 -07:00
Yuri Kunde Schlesner 743d18f0e4 GSP_GPU: Move error codes from result.h to local file 2017-05-24 21:06:00 -07:00
Yuri Kunde Schlesner 92be29adba FileSys: Move all result description to errors.h 2017-05-24 21:06:00 -07:00
Yuri Kunde Schlesner 3b1f0fea31 result: Make error description a generic integer
It is now known that result code description vary depending on the
module, and so they're best defined on a per-module basis. To support
this, allow passing in an arbitrary integer instead of limiting to the
ones in the ErrorDescription enum. These will be gradually migrated to
their individual users, but a few will be kept as "common" codes shared
by all modules.
2017-05-24 21:05:59 -07:00
Yuri Kunde Schlesner a75145a2c6 Make BitField and ResultCode constexpr-initializable 2017-05-24 21:05:59 -07:00
bunnei 120b00fb1a telemetry: Log a few simple data fields throughout core. 2017-05-24 19:16:23 -04:00
bunnei f3e14cae1e core: Keep track of telemetry for the current emulation session. 2017-05-24 19:16:22 -04:00
bunnei a4760e939f common: Add a generic interface for logging telemetry fields. 2017-05-24 19:16:21 -04:00
wwylele 8cd9522526 cam: move u32->u8 trancation to IPCHelper 2017-05-24 12:50:19 +03:00
wwylele 924292f2cc cam: use IPCHelper 2017-05-24 12:45:36 +03:00
Sebastian Valle c291db72e7 Merge pull request #2692 from Subv/vfp_ftz
Dyncom/VFP: Convert denormal outputs into 0 when the FTZ flag is enabled.
2017-05-22 12:16:53 -05:00
Yuri Kunde Schlesner cc566dadd8 Merge pull request #2406 from Subv/session_disconnect
Kernel: Properly update port counters on session disconnection.
2017-05-21 17:18:16 -07:00
Subv 5b46a89230 fixup! Dyncom/VFP: Convert denormal outputs into 0 when the FTZ flag is enabled. 2017-05-21 18:56:09 -05:00
Subv 37347bfa38 Kernel/Sessions: Remove the ClientSession::Create function.
It is not meant to be used by anything other than CreateSessionPair.
2017-05-21 18:52:42 -05:00
Merry 188d63fdb6 Merge pull request #2694 from Subv/vfp_vsub_ftz
Dyncom/VFP: Perform flush-to-zero on the second operand of vsub before sending it to vadd.
2017-05-22 00:50:52 +01:00
wwylele 36526c63ef swrasterizer: add missing tc0_w and fragment lighting attribute processing 2017-05-21 09:09:15 +03:00
wwylele 4d62e75fb2 gl_rasterizer: implement procedural texture 2017-05-20 13:50:50 +03:00
wwylele ade45b5b99 pica/swrasterizer: implement procedural texture 2017-05-20 13:50:50 +03:00
bunnei 152a012373 Merge pull request #2661 from Subv/uds5
Services/UDS: Generate 802.11 beacon frames when a network is open.
2017-05-19 11:04:34 -04:00
bunnei b70cd0c33f Merge pull request #2710 from emmauss/ptm_ipc
use IPCHelper for PTM services
2017-05-19 11:03:55 -04:00
emmaus b2e82d16c8 use IPCHelper for PTM services 2017-05-19 08:44:58 +00:00
wwylele 393fee10a2 pica: use correct register value for shader bool_uniforms
variable value is not masked. the masked and combined register value should be used instead
2017-05-17 22:14:09 +03:00
Yuri Kunde Schlesner 8d558777a6 Merge pull request #2703 from wwylele/pica-reg-revise
pica: correct bit field length for some registers
2017-05-16 10:00:37 -07:00
wwylele 86ee1f6101 pica: correct bit field length for some registers 2017-05-16 19:24:06 +03:00
Subv f2d5d8cfac Services/UDS: Use the new IPC helper functions. 2017-05-15 13:05:17 -05:00
Subv 846cc6cee3 Services/UDS: Implement RecvBeaconBroadcastData.
This allows the applications to retrieve 802.11 beacon frames from nearby UDS networks.
Note that the networks are still not announced anywhere.
2017-05-15 13:05:16 -05:00
Subv 528dea988c Services/UDS: Generate the UDS beacons when the beacon callback fires. 2017-05-15 13:05:15 -05:00
Subv ce5bc477ca Kernel: Remove a now unused enum and variable regarding a session's status. 2017-05-15 11:22:16 -05:00
Subv ddfabf3133 Kernel: Use a Session object to keep track of the status of a Client/Server session pair.
Reduce the associated port's connection count when a ServerSession is destroyed.
2017-05-15 11:22:15 -05:00
Yuri Kunde Schlesner 180587bb8b Merge pull request #2687 from yuriks/address-mappings
Kernel: Map special regions according to ExHeader
2017-05-14 13:52:40 -07:00
Subv a0874a7a68 Dyncom/VFP: Perform flush-to-zero on the second operand of vsub before sending it to vadd.
Previously we were letting vadd flush the value to positive 0, but there are cases where this behavior is wrong, for example,

vsub: -0 - +0 = -0
vadd: -0 + +0 = +0

Now we'll flush the value to +0 inside vsub, and then negate it.
2017-05-13 18:03:41 -05:00
Weiyi Wang 9bd3986540 Merge pull request #2695 from JayFoxRox/gs-regs
Prepare Pica registers for Geometry Shaders
2017-05-12 18:02:45 +03:00
Jannik Vogel ba722be2ac Pica: Write GS registers
This adds the handlers for the geometry shader register writes which will call the functions from the previous commit to update registers for the GS.
2017-05-12 16:22:37 +02:00
Jannik Vogel 3fd3775d35 Pica: Write shader registers in functions
The commit after this one adds GS register writes, so this moves the VS handlers into functions so they can be re-used and extended more easily.
2017-05-12 16:22:37 +02:00
Jannik Vogel 925724c990 Pica: Set program code / swizzle data limit to 4096
One of the later commits will enable writing to GS regs.
It turns out that on startup, most games will write 4096 GS program words.

The current limit of 1024 would hence result in 3072 (4096 - 1024) error messages:
```
HW.GPU <Error> video_core/shader/shader.cpp:WriteProgramCode:229: Invalid GS program offset 1024
```

New constants have been introduced to represent these limits.
The swizzle data size has also been raised. This matches the given field sizes of [GPUREG_SH_OPDESCS_INDEX](https://3dbrew.org/wiki/GPU/Internal_Registers#GPUREG_SH_OPDESCS_INDEX) and [GPUREG_SH_CODETRANSFER_INDEX](https://www.3dbrew.org/wiki/GPU/Internal_Registers#GPUREG_SH_CODETRANSFER_INDEX) (12 bit = [0; 4095]).
2017-05-11 15:01:27 +02:00
Yuri Kunde Schlesner db22b88fea Merge pull request #2669 from jroweboy/async_file_watcher
Frontend: Prevent FileSystemWatcher from blocking UI thread
2017-05-10 18:44:06 -07:00
James Rowe fc2f7b0df6 Frontend: Prevent FileSystemWatcher from blocking UI thread
Instead of tying the QFileSystemWatcher to the GameList and updating in
the UI thread, this change moves it to the worker thread. Since it gets
deleted and recreated as part of the worker thread, this prevents it from
ever getting used from multiple threads (which is why it was originally
done on the UI thread)
2017-05-10 09:37:44 -06:00
bunnei 15b26249cc Merge pull request #2676 from wwylele/irrst
ir: implement new 3ds HID via ir:rst
2017-05-10 09:56:27 -04:00
Yuri Kunde Schlesner f18d454eb6 Kernel: Map special regions according to ExHeader
This replaces the hardcoded VRAM/DSP mappings with ones made based on
the ExHeader ARM11 Kernel caps list. While this has no visible effect
for most applications (since they use a standard set of mappings) it
does improve support for system modules and n3DS exclusives.
2017-05-09 21:44:00 -07:00
Yuri Kunde Schlesner b4a93cfdde DSP: Create backing memory for entire DSP RAM
Also move address space mapping out of video_core.
2017-05-09 21:44:00 -07:00
Yuri Kunde Schlesner d3db770cad Memory: Add constants for the n3DS additional RAM
This is 4MB of extra, separate memory that was added on the New 3DS.
2017-05-09 21:43:59 -07:00
Yuri Kunde Schlesner 13dd0b88de Merge pull request #2696 from Subv/vfp_revert
Dyncom/VFP: Revert edf30d8 and fix the FPSCR getting invalid values.
2017-05-08 21:38:45 -07:00
Subv 11fe85f129 Dyncom/VFP: Strip the VFP_NAN_FLAG sentinel value when setting vfp exceptions. 2017-05-09 00:36:23 -05:00
Subv bf45ccfb40 Revert "Remove exceptions parameter from normaliseround VFP functions"
This reverts commit edf30d84cc.

Conflicts:
	src/core/arm/skyeye_common/vfp/vfp_helper.h
	src/core/arm/skyeye_common/vfp/vfpdouble.cpp
	src/core/arm/skyeye_common/vfp/vfpsingle.cpp
2017-05-09 00:36:22 -05:00
Subv b1a29371c9 Dyncom/VFP: Convert denormal outputs into 0 when the FTZ flag is enabled.
Inputs are still not flushed to 0 if they are denormals.
2017-05-08 14:34:16 -05:00
Yuri Kunde Schlesner d97b977540 Dyncom: Remove disassembler code
Had licensing issue around it, in addition to several bugs.

Closes #1632, #1280
2017-05-07 15:33:46 -07:00
Yuri Kunde Schlesner f0a582b218 Dyncom: Tweak types and log formatting 2017-05-07 15:33:42 -07:00
Yuri Kunde Schlesner cb4da3975e Remove unused symbols code 2017-05-07 15:33:39 -07:00
Yuri Kunde Schlesner 6577bbc3c5 Remove ability to load symbol maps
This was now mostly unused except by thread creation, which used a
symbol of the entrypoint, if available, to name the thread.
2017-05-07 15:33:07 -07:00
Yuri Kunde Schlesner 4af2a1a3d7 citra-qt: Remove callstack widget
Appears to be currently broken, and given the complexity of doing this
for ARM code without debugging information, should probably be left to
an external tool or library. Use the GDB stub instead.

Closes #586
2017-05-07 15:32:47 -07:00
Yuri Kunde Schlesner 47e806b084 citra-qt: Remove disassembler widget
It has performance problems, a very misleading UI, and is broken in
general. It has essentially been superceded by the GDB stub, but if we
wanted a built-in disassembler in the future it'd essentially need to be
rewritten from scratch anyway.

Closes #427, #1480
2017-05-07 15:29:36 -07:00
Yuri Kunde Schlesner e33558c6ce Merge pull request #2682 from nicoboss/filter
citra-qt: game list search function fixed minor mistakes
2017-05-07 13:46:46 -07:00
wwylele f9fdaafa04 fixup!ir: implement new 3ds HID via ir:rst 2017-05-07 21:53:27 +03:00
Nico Bosshard db256ea395 Don’t focus the search field if the game is empty 2017-05-06 12:08:28 +02:00
Yuri Kunde Schlesner 2a01a03375 Merge pull request #2686 from wwylele/tex-coord-reg
pica: use correct coordinates for texture 2
2017-05-05 21:33:32 -07:00
B3n30 8bee016145 Create a random console_unique_id (#2668)
* Create a random console_id when config save_file is created

Added button in system config to refresh the console unique id

* Moved the connect for the button from .ui file to constructor of ConfigureSystem

* Added warning and info dialog
Fixup: Make use of qt5 style connects,
  renamed the refresh button,
  removed some duplicate code,
  changed random device and moved all to the generate function

* Changed the random generator to reflect what a real 3DS stores as console unique id
Fixup: Changed the warning message

* Fixup: Set and Create

* Fixup: Added console id label, therfore removed second message box

* Fixup: fixed the endianess

* Fixup: more endianness fixes

* Fixup: Endianness the 3rd
2017-05-05 20:55:51 -04:00
wwylele 039b293092 pica: shader_dirty if texture2 coord changed 2017-05-05 15:35:17 +03:00
wwylele 85116643b2 ir: implement new 3ds HID via ir:rst 2017-05-04 12:59:28 +03:00
bunnei de1b6cc695 Merge pull request #2606 from wwylele/ir
ir: implement circle pad pro
2017-05-03 22:34:12 -04:00
wwylele 0f664ef89d pica: use correct coordinates for texture 2 2017-05-03 22:12:46 +03:00
wwylele 12bcf64ab5 ir: implement circle pad pro 2017-05-03 09:44:00 +03:00
Nico Bosshard 89c28f9f80 Fixed some more typos 2017-05-03 00:23:20 +02:00
Nico Bosshard f447dfc36b citra-qt: game list search function fixed minor mistakes 2017-05-02 23:55:27 +02:00
Nico Bosshard 06d4654966 citra-qt: game list search function (#2673)
* citra-qt: game list search function

* Empty search field during game list refresh

* Code improvements

* Code formatting

* Autofocus search field

* JayFoxRox's recommendations

* lioncash's review
2017-04-29 22:04:39 -04:00
bunnei ea53d6085a Merge pull request #2671 from wwylele/dot3-rgba
rasterizer: implement combiner operation 7 (Dot3_RGBA)
2017-04-21 17:03:22 -04:00
wwylele 2c2e872b31 gl_shader_gen: remove TODO about Lerp behaviour verification. The implementation is verified against hardware 2017-04-20 22:56:07 +03:00
Yuri Kunde Schlesner 5d852467a2 Merge pull request #2666 from yuriks/gl-cleanups
PicaShaderConfig cleanups
2017-04-19 22:09:51 -07:00
wwylele b624a95205 rasterizer: implement combiner operation 7 (Dot3_RGBA) 2017-04-19 23:48:10 +03:00
Yuri Kunde Schlesner 941a3dda8a Merge pull request #2532 from wwylele/ldrro-ipc
ldr_ro: use IPC helper
2017-04-18 00:32:01 -07:00
Yuri Kunde Schlesner 52a4489d65 OpenGL: Pass Pica regs via parameter 2017-04-17 10:34:45 -07:00
wwylele 4ad82f2e5a input_common/sdl: add support for binding button to axis 2017-04-17 14:14:35 +03:00
wwylele 11ea159aa4 ldr_ro: use IPC helper 2017-04-17 10:11:18 +03:00
Yuri Kunde Schlesner a6fd4533f6 OpenGL: Move PicaShaderConfig to gl_shader_gen.h
Also move the implementation of CurrentConfig to the cpp file.
2017-04-16 21:49:32 -07:00
Yuri Kunde Schlesner 40e28f6217 OpenGL: Move Attributes enum to a more appropriate file 2017-04-16 20:47:04 -07:00
bunnei 6a72bd62b5 Merge pull request #2659 from MerryMage/dsp_dsp-correction
dsp_dsp: Messages are modified by service before being sent to DSP
2017-04-13 10:43:13 -04:00
Cereal-Killa bf18e584e5 Better looking status bar under Linux Ubuntu (#2662)
* Remove borders from status bar items

On Ubuntu the status bar didn't look as good as on Windows due to some border being drawn around each status bar cell.
2017-04-12 19:14:52 -06:00
MerryMage 172a362884 dsp_dsp: Messages are modified by service before being sent to DSP 2017-04-12 21:33:07 +01:00
Sebastian Valle 26745f28ea Merge pull request #2628 from Subv/uds
Services/UDS: Initial support for hosting local-wlan networks.
2017-04-12 11:57:24 -05:00
wwylele 6843538f7c qt: enable config for circle pad pro 2017-04-09 12:05:57 +03:00
Jannik Vogel 1b397c77fa Pica/Regs: Correct bit width for blend-equations 2017-04-08 18:33:17 +02:00
bunnei 26979cd6ef Merge pull request #2533 from Lectem/apt_ipchelper
IpcHelper enhancement and APT refactor
2017-04-06 14:44:52 -04:00
bunnei 37b7df9c59 Merge pull request #2634 from wwylele/battery
shared_page: stub battery state
2017-04-06 14:43:29 -04:00
Lioncash 1631e99eed citra-qt: Move config dialog code to its own directory 2017-04-03 20:43:13 -06:00
noah the goodra 7ca9dedfd6 error conversion fixes for soc_u 2017-04-03 10:19:42 -05:00
Michael Theall 31f9c1ab5d Fix OutputDebugString syscall 2017-04-01 04:09:39 -05:00
Sebastian Valle 5c4bd3ef33 Services/UDS: Fixed a style mistake in GetChannel. 2017-03-27 13:08:26 -05:00
Subv f8f3b27eb3 Services/UDS: Use consistent spelling for WiFi and simplify the GetChannel function. 2017-03-26 08:17:57 -05:00
Subv 0ae6d8be5b Services/UDS: Signal the connection event when closing down the network. 2017-03-26 08:17:56 -05:00
Subv d7d5bf411a Services/UDS: Do not allow trying to start up a network that only the host can connect to. 2017-03-26 08:17:55 -05:00
Subv 97f1e62b66 Service/UDS: Schedule an event to broadcast the beacon frames every 102.4ms. 2017-03-26 08:17:53 -05:00
Subv 4243c1198f Services/UDS: Store the entire NetworkInfo structure that was used to create the network.
It will be needed when generating the beacon frames.
2017-03-26 08:17:52 -05:00
Subv 9771615f16 Services/UDS: Initial support for hosting local-wlan networks.
Currently it will let games create a network as hosts, but will not broadcast it anywhere and will not allow clients to connect.
2017-03-26 08:17:51 -05:00
wwylele a37c9fb9d3 ptm: create SharedExtSave file before openning it 2017-03-25 14:22:07 +03:00
bunnei ccc3985cc0 Merge pull request #2512 from SonofUgly/custom-layout
Add custom layout settings.
2017-03-21 22:57:31 -04:00
wwylele f7a0328a6e shared_page: stub battery state 2017-03-21 13:25:56 +02:00
Lectem e60b433efa hopefully fix clang-format issues with old version 2017-03-20 22:47:06 +01:00
bunnei a48e5c64b6 Merge pull request #2630 from wwylele/qt-focus-loss-2
Qt: Release all pressed buttons when window focus is lost [rebased]
2017-03-20 11:13:52 -04:00
Lectem e9c80ea5b7 address more comments 2017-03-19 01:33:56 +01:00
Lectem 979d2000d2 Cast size_t to u32 for PushStaticBuffer usages 2017-03-18 11:56:21 +01:00
Lectem 12ed746477 IPCHelper Skip method + address comments for apt 2017-03-18 11:47:40 +01:00
wwylele 0123411468 apt: fix RequestBuilder parameters for Unwrap 2017-03-18 11:45:19 +02:00
Lectem 77f4fc473f fix #2560 and other comments 2017-03-18 10:44:01 +01:00
Lectem fb70c9683c move push out of class body and add u8 u16 bool specializations 2017-03-18 10:44:01 +01:00
Lectem 501e23ce59 refactor APT service to use the new IPC helpers 2017-03-18 10:44:01 +01:00
wwylele 560884336f citra-qt: remove dead code 2017-03-17 21:45:29 +02:00
wwylele 5245c86f26 citra-qt: release all buttons when render window focus is lost
credit to @Hawkheart for the original idea
2017-03-17 21:41:25 +02:00
bunnei 423ab5e2bc Merge pull request #2497 from wwylele/input-2
Refactor input emulation & add SDL gamepad support
2017-03-17 14:59:39 -04:00
bunnei 3e7459bbf9 Merge pull request #2618 from wwylele/log-less-filename
Reduce host file name and path logging
2017-03-16 23:35:36 -04:00
bunnei 709e4fa5d2 Merge pull request #2620 from FernandoS27/syscore_error
Refined thread launch on syscore error messages
2017-03-15 21:17:43 -04:00
bunnei b8332610e6 Merge pull request #2625 from wwylele/hash-console-unique
cfg: correctly implement GenHashConsoleUnique
2017-03-15 21:07:54 -04:00
Yuri Kunde Schlesner 6ca816e011 common/cpu_detect: Add missing include and fix namespace scope 2017-03-12 21:55:15 -07:00
wwylele 363f36b904 cfg: implement GenHashConsoleUnique 2017-03-12 12:24:57 +02:00
wwylele d040a73bed file_util: Log when using local user directory 2017-03-11 18:31:17 +02:00
Fernando Sahmkow b5dbc6cb98 Refined thread launch on syscore error messages 2017-03-09 08:18:18 -05:00
wwylele 047a1586fe file_sys: lower log level for setting host path 2017-03-08 17:47:24 +02:00
wwylele 7cd6cc0fd9 file_util: lower logging level for harmless cases 2017-03-08 17:42:10 +02:00
wwylele 6551a72ec8 loader/ncch: less verbose log for loading game list. only log program ID when booting 2017-03-08 17:37:24 +02:00
wwylele 4b931bb913 loader: lower file name logging level 2017-03-08 17:25:09 +02:00
wwylele b5faa68120 qt/config_input: don't connect for null button 2017-03-02 13:29:28 +02:00
wwylele 5a692ddaec citra: update default ini with new input system 2017-03-01 23:30:57 +02:00
wwylele e02c4b7195 Input: remove unused stuff & clean up
1. removed zl, zr and c-stick from HID::PadState. They are handled by IR, not HID
2. removed button handling in EmuWindow
3. removed key_map
4. cleanup #include
2017-03-01 23:30:57 +02:00
wwylele e7a602fe16 Qt: rework input configuration for new input system 2017-03-01 23:30:57 +02:00
wwylele 51b1c1f211 InputCommon: add SDL joystick support 2017-03-01 23:30:57 +02:00
wwylele a6bd7917cb InputCommon: add AnalogFromButton 2017-03-01 23:30:57 +02:00
wwylele 38e800f70d InputCommon: add Keyboard 2017-03-01 23:30:57 +02:00
wwylele 70420272ca HID: use AnalogDevice 2017-03-01 23:30:57 +02:00
wwylele 1d1329af23 HID: use ButtonDevice 2017-03-01 23:30:57 +02:00
wwylele 3974895e08 Input: add device and factory template 2017-03-01 23:30:57 +02:00
wwylele 8a8c0f348b Common: add ParamPackage 2017-03-01 23:30:57 +02:00
wwylele 85ba60d5ec Timer: restore missing signaled=true from #2421 2017-02-27 22:49:46 +02:00
bunnei 5e334af369 Merge pull request #2594 from wwylele/ir-separate
IR: separate functions of each port to their own files
2017-02-27 14:25:50 -05:00
B3n30 dcf115778a Fix log entry in timer::signal (#2600) 2017-02-27 11:04:03 -05:00
Mat M 0cb52ee74a Doxygen: Amend minor issues (#2593)
Corrects a few issues with regards to Doxygen documentation, for example:

- Incorrect parameter referencing.
- Missing @param tags.
- Typos in @param tags.

and a few minor other issues.
2017-02-26 17:58:51 -08:00
Yuri Kunde Schlesner b250ce21b9 Merge pull request #2587 from yuriks/status-bar
Replace built-in Profiler with indicators in status bar
2017-02-26 17:51:15 -08:00
Yuri Kunde Schlesner 174464a87f PerfStats: Re-order and document members better 2017-02-26 17:22:04 -08:00
Yuri Kunde Schlesner 1469b3212b Qt: Tweak status bar styling 2017-02-26 17:22:04 -08:00
Yuri Kunde Schlesner 915d69ac4c Qt: Increase status bar update interval to 2 seconds 2017-02-26 17:22:04 -08:00
Yuri Kunde Schlesner fb1979d7e2 Core: Re-write frame limiter
Now based on std::chrono, and also works in terms of emulated time
instead of frames, so we can in the future frame-limit even when the
display is disabled, etc.

The frame limiter can also be enabled along with v-sync now, which
should be useful for those with displays running at more than 60 Hz.
2017-02-26 17:22:04 -08:00
Yuri Kunde Schlesner b285c2a4ed Core: Make PerfStats internally locked
More ergonomic to use and will be required for upcoming changes.
2017-02-26 17:22:03 -08:00
Yuri Kunde Schlesner f273959205 Qt: Add tooltips to status bar displays 2017-02-26 17:22:03 -08:00
Yuri Kunde Schlesner 008c709dbf Qt: Don't show fractional figures in the status bar
They're not very important and this makes the display changes less
often, making it less distracting.
2017-02-26 17:22:03 -08:00
Yuri Kunde Schlesner 3b4e400333 Remove built-in (non-Microprofile) profiler 2017-02-26 17:22:03 -08:00
Yuri Kunde Schlesner 92c8bd4b1f PerfStats: Add method to get the instantaneous time ratio 2017-02-26 17:22:03 -08:00
Yuri Kunde Schlesner c75ae6c585 Add performance statistics to status bar 2017-02-26 17:22:03 -08:00
Yuri Kunde Schlesner 21f4f49c7a SynchronizedWrapper: Add Lock convenience method 2017-02-26 17:22:02 -08:00
Yuri Kunde Schlesner 1b28b26682 Qt: Add (empty) status bar 2017-02-26 17:22:02 -08:00
Yuri Kunde Schlesner 441f8b5a4b Core: Remove unnecessary include in thread.h 2017-02-26 17:22:01 -08:00
wwylele 2d6113de09 IR: separate functions of each port to their own files 2017-02-26 11:11:35 +02:00
bunnei 892888ed9e Merge pull request #2569 from wwylele/wrap-unwrap
APT: implemented Wrap and Unwrap
2017-02-25 00:12:33 -05:00
Yuri Kunde Schlesner fb5301cf6e Merge pull request #2421 from Subv/timers
Timers: Immediately signal the timer if it was started with an initial value of 0
2017-02-24 20:48:31 -08:00
James Rowe 26823cd38b Use QFileSystemWatcher to reload the game list when a change is detected. (#2555)
* Added a refresh game directory option to the file menu

* Make the game list watcher recursive and have it start watching from the initial load

* Rework game list watcher to be thread safe

* Fix code style issues
2017-02-23 16:29:00 -05:00
bunnei 4dee08b343 Merge pull request #2441 from jroweboy/titlebar
Gui: Change title bar to include build name
2017-02-23 16:24:48 -05:00
SonofUgly e0a4450bbd Add custom layout settings. 2017-02-23 10:49:56 -08:00
James Rowe b090422991 Gui: Change title bar to include build name
Nightly builds now have "Citra Nightly" in the titlebar
Bleeding edge builds now have "Citra Bleeding Edge" in the titlebar
2017-02-23 00:42:55 -07:00
Anthony a7360f2642 [UI] Modify recursive scanning label (#2589) 2017-02-22 21:45:03 -08:00
Subv 0be77c3ae4 Timers: Return an error when calling SetTimer with negative timeouts. 2017-02-21 20:51:56 -05:00
Subv 029a11030e Timers: Immediately signal the timer if it was started with an initial value of 0. 2017-02-21 20:51:54 -05:00
wwylele d5b0e275e3 APT: implement Wrap and Unwrap 2017-02-21 23:57:31 +02:00
wwylele ea1ea0224c HW: add AES engine & implement AES-CCM 2017-02-21 23:57:31 +02:00
bunnei bb448ae66f Merge pull request #2585 from MerryMage/sxtb16-sxtab16
dyncom: Correct SXTAB16 and SXTB16
2017-02-19 22:45:46 -05:00
Yuri Kunde Schlesner 7628f3a6fc Merge pull request #2580 from yuriks/qt-cleanup2
Qt cleanups 2
2017-02-19 12:13:52 -08:00
MerryMage b125388152 dyncom: Correct SXTAB16 and SXTB16 2017-02-18 20:04:54 +00:00
Jannik Vogel e594e63bb5 OpenGL: Check if uniform block exists before updating it (#2581) 2017-02-18 11:46:26 -08:00
Yuri Kunde Schlesner 80762583c2 Qt: Move some connections from .ui file to code 2017-02-18 02:30:29 -08:00
Yuri Kunde Schlesner 5b96915c69 Qt: Reorganize connection of menu events 2017-02-18 02:26:57 -08:00
Yuri Kunde Schlesner 4cb1f36896 Qt: Re-organize setup of debugging widgets 2017-02-18 02:16:24 -08:00
Yuri Kunde Schlesner e823c908ea Qt: Fix action name to match conventions 2017-02-18 01:11:57 -08:00
Yuri Kunde Schlesner cef18c94e2 Qt: Make IsSingleFileDropEvent static 2017-02-17 21:44:00 -08:00
Yuri Kunde Schlesner c81a2aabbf Qt: Allow any file extension in Open dialog 2017-02-17 21:44:00 -08:00
Yuri Kunde Schlesner c7c0219f8a Qt: Remove orpahned function declaration 2017-02-17 21:44:00 -08:00
Yuri Kunde Schlesner 5f00fe905c Qt: Remove unnecessary std::string usage 2017-02-17 21:44:00 -08:00
Weiyi Wang c7c1f56ce6 HID: move enable_accelerometer/gyroscope_count initialization into Init() (#2574)
Fixes #2556
2017-02-16 22:04:27 -08:00
noah the goodra 6bcd5ce047 added drag n drop feature 2017-02-16 14:43:18 -06:00
Mat M 5472528202 Merge pull request #2571 from wwylele/missing-file
core: add missing errors.h in CMakeLists.txt
2017-02-15 11:19:06 -05:00
wwylele e4da1a54cf core: add missing errors.h in CMakeLists.txt 2017-02-15 15:49:07 +02:00
Weiyi Wang e085e6a768 video_core: remove #pragma once in cpp file (#2570) 2017-02-15 00:16:50 -08:00
Weiyi Wang fae1efaad4 Merge pull request #2566 from yuriks/file-extension-suffix
Qt/GameList: Use suffix() to parse the file extension
2017-02-14 09:04:59 +02:00
Yuri Kunde Schlesner 070daf4126 HLE/IPC: Fix uninitialized variables in helpers (#2568)
Fixes #2567
2017-02-13 21:41:59 -08:00
Yuri Kunde Schlesner f75e964d49 Qt/GameList: Use suffix() to parse the file extension
completeSuffix returns everything after the first period, which means
that a file such as `foo.bar.3ds` would not get recognized.
2017-02-13 19:03:59 -08:00
noah the goodra 091dd226d6 applied the change suggested by @wwylele 2017-02-13 18:34:02 -06:00
noah the goodra ded09dc727 NWM changed to NIM 2017-02-13 18:34:01 -06:00
noah the goodra ad49cec194 turned clang format back on 2017-02-13 18:34:01 -06:00
noah the goodra 1a84bce0f4 added http service enum to the log.h file 2017-02-13 18:34:01 -06:00
Yuri Kunde Schlesner 1bf449d752 Merge pull request #2562 from yuriks/pica-refactor3
Re-organize software rasterizer code
2017-02-13 12:04:17 -08:00
Weiyi Wang dbc94efdb5 Core: add cryptopp library (#2412) 2017-02-13 12:03:55 -08:00
Yuri Kunde Schlesner d60767d393 Merge pull request #2561 from wwylele/fs-rom
file_sys: change RomFS archive to Self NCCH archive
2017-02-13 09:18:23 -08:00
wwylele 20544977da loader: use self NCCH archive 2017-02-13 13:57:38 +02:00
wwylele a0df747325 file_sys: add Self NCCH archive 2017-02-13 13:57:38 +02:00
Yuri Kunde Schlesner 426fda1d52 SWRasterizer: Move more framebuffer functions to file 2017-02-12 18:13:04 -08:00
Yuri Kunde Schlesner 1683cb0ec9 SWRasterizer: Move texturing functions to their own file 2017-02-12 18:12:37 -08:00
Yuri Kunde Schlesner f9026e8a7a SWRasterizer: Convert large no-capture lambdas to standalone functions 2017-02-12 18:11:05 -08:00
Yuri Kunde Schlesner e1ad7d69b9 SWRasterizer: Move framebuffer operation functions to their own file 2017-02-12 18:11:03 -08:00
Yuri Kunde Schlesner e24717bca0 VideoCore: Move software rasterizer files to sub-directory 2017-02-12 18:08:11 -08:00
Yuri Kunde Schlesner e10b11a5d0 video_core/shader: Document sanitized MUL operation 2017-02-12 13:29:14 -08:00
Yuri Kunde Schlesner 443bb3d522 Merge pull request #2550 from yuriks/pica-refactor2
Small VideoCore cleanups
2017-02-12 12:33:26 -08:00
Kloen Lansfiel 30ff675f02 citra-qt: Don't attempt to scan files with unsupported extensions (#2402) 2017-02-12 12:28:56 -08:00
Yuri Kunde Schlesner da6a40e3d1 core: Free AppLoader on shutdown to release file (#2558)
Fixes #2455
2017-02-11 03:29:46 -08:00
Weiyi Wang 0dd007e9ba hid: remove the touch field from PadState (#2557) 2017-02-11 01:11:42 -08:00
Yuri Kunde Schlesner e2fa1ca5e1 video_core: Fix benign out-of-bounds indexing of array (#2553)
The resulting pointer wasn't written to unless the index was verified as
valid, but that's still UB and triggered debug checks in MSVC.

Reported by garrettboast on IRC
2017-02-10 20:51:09 -08:00
Yuri Kunde Schlesner 553e672777 VideoCore: Split u64 Pica reg unions into 2 separate u32 unions
This eliminates UB when aliasing it with the array of u32 regs, and
is compatible with non-LE architectures.
2017-02-09 00:04:25 -08:00
Yuri Kunde Schlesner bfb1531352 VideoCore: Force enum sizes to u32 in LightingRegs
All enums that are used with BitField must have their type forced to u32
to ensure correctness.
2017-02-09 00:04:24 -08:00
Yuri Kunde Schlesner af65e1c0a0 OpenGL: Remove unused duplicate of IsPassThroughTevStage
This copy was left behind when the shader generation code was moved to a
separate file.
2017-02-09 00:04:24 -08:00
Yuri Kunde Schlesner 60fc0b086f VideoCore: Split regs.h inclusions 2017-02-09 00:04:24 -08:00
Yuri Kunde Schlesner f241bb72f5 Pica/Regs: Use binary search to look up reg names
This gets rid of the static unordered_map. Also changes the return type
const char*, avoiding unnecessary allocations (the result was only used
by calling .c_str() on it.)
2017-02-09 00:04:24 -08:00
Yuri Kunde Schlesner 602f57da38 VideoCore: Use union to index into Regs struct
Also remove some unused members.
2017-02-08 22:13:25 -08:00
Yuri Kunde Schlesner 2889372e47 Merge pull request #2482 from yuriks/pica-refactor
Split up monolithic Regs struct
2017-02-08 22:07:34 -08:00
Lectem f146a6d45a Use std::array<u8,2> instead of u8[2] to fix MSVC build 2017-02-05 14:55:51 +01:00
Weiyi Wang a1393dc70c Merge pull request #2027 from Lectem/ipcrefactor
IPC helper
2017-02-05 10:22:13 +02:00
Lectem 2ee472b9c7 fix wwylele's comment and use typename in templates 2017-02-05 00:29:07 +01:00
Yuri Kunde Schlesner 5759d94b5c VideoCore: Move Regs to its own file 2017-02-04 13:59:12 -08:00
Yuri Kunde Schlesner f7c7f422c6 VideoCore: Split shader regs from Regs struct 2017-02-04 13:59:11 -08:00
Yuri Kunde Schlesner 8fca90b5d5 VideoCore: Split geometry pipeline regs from Regs struct 2017-02-04 13:59:11 -08:00
Yuri Kunde Schlesner f443c7e5b0 VideoCore: Split lighting regs from Regs struct 2017-02-04 13:59:11 -08:00
Yuri Kunde Schlesner 23713d5dee VideoCore: Split framebuffer regs from Regs struct 2017-02-04 13:59:11 -08:00
Yuri Kunde Schlesner 9017093f58 VideoCore: Split texturing regs from Regs struct 2017-02-04 13:59:09 -08:00
Yuri Kunde Schlesner 000e78144c VideoCore: Split rasterizer regs from Regs struct 2017-02-04 13:08:47 -08:00
Yuri Kunde Schlesner 97e06b0a0d Merge pull request #2476 from yuriks/shader-refactor3
Oh No! More shader changes!
2017-02-04 13:02:48 -08:00
Yuri Kunde Schlesner c74787a11c Pica/Texture: Move part of ETC1 decoding to new file and cleanups 2017-02-04 12:33:28 -08:00
Yuri Kunde Schlesner 09a750e866 Pica/Texture: Simplify/cleanup texture tile addressing 2017-02-04 12:33:25 -08:00
Yuri Kunde Schlesner a1c9ac7845 VideoCore: Move LookupTexture out of debug_utils.h 2017-02-04 12:31:40 -08:00
Yuri Kunde Schlesner 9590c932ec Merge pull request #2496 from mailwl/cfg-mem
Core: update Kernel Config Memory to latest version (11.2)
2017-02-03 21:17:48 -08:00
Yuri Kunde Schlesner ba7cdce46d Merge pull request #2520 from wwylele/shader-stack-boundary
ShaderJIT: add 16 dummy bytes at the bottom of the stack
2017-02-03 18:56:42 -08:00
Yuri Kunde Schlesner a630fa287e Merge pull request #2518 from MerryMage/coproc
arm_dynarmic: Coprocessor support
2017-02-03 18:22:28 -08:00
bunnei 632562f5cf Merge pull request #2509 from jfmherokiller/settingscastpatch
removed the possibly uneeded cast on values.gdbstub_port
2017-02-03 14:57:44 -05:00
bunnei c330dcd3fd Merge pull request #2507 from jfmherokiller/keyidchange
removal of the -1 case in the configure_input switch
2017-02-03 14:56:55 -05:00
MerryMage e2815408fd arm_dynarmic: Update memory interface 2017-02-03 17:32:51 +00:00
MerryMage 2b36d4c9d7 arm_dynarmic: CP15 support 2017-02-03 17:32:47 +00:00
wwylele 6dc1d6e568 ShaderJIT: add 16 dummy bytes at the bottom of the stack 2017-02-03 14:53:38 +02:00
mailwl a53714acd3 GSP_GPU::StoreDataCache stubbed (#2428) 2017-02-02 23:07:44 -08:00
noah the goodra a0874d9b64 removed the possibly uneeded cast on values.gdbstub_port
as far as i could tell this cast is unneeded because [GDBStub::SetServerPort](https://github.com/citra-emu/citra/blob/master/src/core/gdbstub/gdbstub.cpp#L897) takes a u16 and [values.gdbstub_port](https://github.com/citra-emu/citra/blob/master/src/core/settings.h#L116) is already a u16
2017-01-31 11:44:23 -06:00
noah the goodra 6c41d87a9d removal of the -1 case in the configure_input switch
this case is unneeded because no enumeration value can possibly correspond to it
2017-01-31 09:55:56 -06:00
mailwl d0bf7df5ba HLE/Applets: Stub Mint (eShop) Applet (#2463)
This allows Phoenix Wright - Dual Destinies to boot.
2017-01-31 01:16:58 -08:00
Weiyi Wang 0b9c59ff22 Common/x64: remove legacy emitter and abi (#2504)
These are not used any more since we moved shader JIT to xbyak.
2017-01-31 01:06:42 -08:00
Merry f7e96dc068 shader_jit_x64_compiler: esi and edi should be persistent (#2500) 2017-01-31 00:38:31 -08:00
noah the goodra a2d0e2d807 file_util: Fixed implicit type conversion warning (#2503) 2017-01-30 20:08:00 -08:00
mailwl 0b0c5672c8 Core: update Kernel Config Memory to latest version (11.2) 2017-01-30 11:29:00 +03:00
Jake Merdich ff28080091 Support looping HLE audio (#2422)
* Support looping HLE audio
* DSP: Fix dirty bit clears, handle nonmonotonically incrementing IDs
* DSP: Add start offset support
2017-01-29 23:52:25 -08:00
Yuri Kunde Schlesner 1410aa1824 Merge pull request #2368 from wwylele/camera-2
CAM: build the service framework with a dummy implementation
2017-01-29 22:16:39 -08:00
Yuri Kunde Schlesner a925473995 Merge pull request #2429 from wwylele/auto-language-fix
CFG: move language override to the boot process
2017-01-29 22:14:35 -08:00
Yuri Kunde Schlesner 37a4ea046d VideoCore: Make PrimitiveAssembler const-correct 2017-01-29 21:31:38 -08:00
Yuri Kunde Schlesner dcdffabfe6 VideoCore: Extract swrast-specific data from OutputVertex 2017-01-29 21:31:38 -08:00
Yuri Kunde Schlesner 8ed9f9d49f VideoCore/Shader: Clean up OutputVertex::FromAttributeBuffer
This also fixes a long-standing but neverthless harmless memory
corruption bug, whech the padding of the OutputVertex struct would get
corrupted by unused attributes.
2017-01-29 21:31:38 -08:00
Yuri Kunde Schlesner d36ec905b1 Common: Optimize BitSet iterator 2017-01-29 21:31:38 -08:00
Yuri Kunde Schlesner 92bf5c88e6 VideoCore: Split shader output writing from semantic loading 2017-01-29 21:31:37 -08:00
Yuri Kunde Schlesner 335df895b9 VideoCore: Consistently use shader configuration to load attributes 2017-01-29 21:31:37 -08:00
Yuri Kunde Schlesner fccb28d2e9 VideoCore: Use correct register for immediate mode attribute count 2017-01-29 21:31:36 -08:00
Yuri Kunde Schlesner ab6954e942 VideoCore: Rename some types to more accurate names 2017-01-29 21:31:36 -08:00
Yuri Kunde Schlesner bbc7844021 VideoCore: Change misleading register names
A few registers had names such as "count" or "number" when they actually
contained the maximum (that is, count - 1). This can easily lead to hard
to notice off by one errors.
2017-01-29 21:31:36 -08:00
Kloen eee37b857b video_core: gl_rasterizer_cache.cpp removed unused type alias 2017-01-30 05:18:28 +01:00
Kloen 6a3a3964b0 video_core: gl_rasterizer.cpp removed unused type alias 2017-01-30 05:16:48 +01:00
Yuri Kunde Schlesner 5bb6753f2e Merge pull request #2494 from Kloen/killing-warnings-2-final-mix
core: inline CPU, 132 warnings fixed on GCC
2017-01-29 15:40:50 -08:00
Yuri Kunde Schlesner f111cd66ce Merge pull request #2492 from Kloen/killing-warnings-HD1.5ReMIX
Fix OSX build warnings about unhandled enumeration values.
2017-01-29 15:38:49 -08:00
Yuri Kunde Schlesner 1016e31fc7 Merge pull request #2493 from Kloen/killing-warnings-final-mix
video_core: silence unused-local-typedef boost related warnings on GCC
2017-01-29 15:35:59 -08:00
Kloen b3a0b1489b core: inline CPU, 132 warnings fixed on GCC 2017-01-30 00:12:07 +01:00
Kloen 28da285031 citra: add missing control paths for ResultStatus on rom load. Fix warning about unhandled enumeration values on OSX 2017-01-29 22:02:01 +01:00
Kloen 2ca3beb9d3 core: fix err_f.cpp warning about unhandled enumeration value on OSX 2017-01-29 22:01:19 +01:00
Kloen f352a741d3 core: fix savedata_archive.cpp warnings about unhandled enumeration values on OSX 2017-01-29 21:50:25 +01:00
Kloen c4f9cd3559 core: fix archive_sdmc.cpp warnings about unhandled enumeration value on OSX 2017-01-29 21:49:36 +01:00
Kloen f14a53abd0 core: fix archive_extsavedata.cpp warning on OSX 2017-01-29 21:48:40 +01:00
Kloen 4652d70572 video_core: silence unused-local-typedef boost related warning on GCC 2017-01-29 21:24:24 +01:00
Kloen ff7d68d743 core: emu_window.cpp, fix conversion warnings from float to s16 on MSVC 2017-01-29 16:39:31 +01:00
Kloen 818b1730a9 common: add <cstddef> to hash.h 2017-01-28 15:30:18 +01:00
Kloen 2fa0971ceb common: switch ComputeHash64 len param to size_t instead of int, fix warning on MSVC on dsp_dsp.cpp 2017-01-28 14:47:14 +01:00
noah the goodra 3545b144f1 fixed the override warning
```
In file included from citra/src/audio_core/sink_details.cpp:11:
citra/src/./audio_core/sdl2_sink.h:25:10: warning: 'SetDevice' overrides a member function but is not marked 'override' [-Winconsistent-missing-override]
    void SetDevice(int device_id);
         ^
citra/src/./audio_core/sink.h:39:18: note: overridden virtual function is here
    virtual void SetDevice(int device_id) = 0;
                 ^
```
2017-01-27 14:24:14 -06:00
Yuri Kunde Schlesner bf14f4be22 Merge pull request #2346 from yuriks/shader-refactor2
More shader refactoring
2017-01-27 14:29:10 -03:00
Kloen Lansfiel f852369986 SDL: Select audio device (#2403)
* Initial Commit

Added Device logic to Sinks
Started on UI for selecting devices

Removed redundant import

* Audio Core: Complete Device Switching

Complete the device switching implementation by allowing the output
device to be loaded, changed and saved through the configurations menu.

Worked with the Sink abstraction and tuned the "Device Selection"
configuration so that the Device List is automatically populated when
the Sink is changed.
This hopefully addresses the concerns and recommendations mentioned in
the comments of the PR.

* Clean original implementation.

* Refactor GetSinkDetails
2017-01-25 22:33:26 -05:00
Yuri Kunde Schlesner 0e9081b973 VideoCore/Shader: Move entry_point to SetupBatch 2017-01-25 18:53:25 -08:00
Yuri Kunde Schlesner 0f64274145 VideoCore/Shader: Move per-batch ShaderEngine state into ShaderSetup 2017-01-25 18:53:25 -08:00
Yuri Kunde Schlesner 6fa3687afc Shader: Remove OutputRegisters struct 2017-01-25 18:53:25 -08:00
Yuri Kunde Schlesner 9ea5eacf91 Shader: Initialize conditional_code in interpreter
This doesn't belong in LoadInputVertex because it also happens for
non-VS invocations. Since it's not used by the JIT it seems adequate to
initialize it in the interpreter which is the only thing that cares
about them.
2017-01-25 18:53:24 -08:00
Yuri Kunde Schlesner 1a2acc3baa Shader: Don't read ShaderSetup from global state 2017-01-25 18:53:24 -08:00
Yuri Kunde Schlesner fa4ac279a7 shader_jit_x64: Don't read program from global state 2017-01-25 18:53:24 -08:00
Yuri Kunde Schlesner ade7ed7c5f VideoCore/Shader: Move ProduceDebugInfo to InterpreterEngine 2017-01-25 18:53:24 -08:00
Yuri Kunde Schlesner a9b7752b9d Debugger: Always use interpreter for shader debugging 2017-01-25 18:53:24 -08:00
Yuri Kunde Schlesner 114d6b2f97 VideoCore/Shader: Split interpreter and JIT into separate ShaderEngines 2017-01-25 18:53:24 -08:00
Yuri Kunde Schlesner 8eefc62833 VideoCore/Shader: Rename shader_jit_x64{ => _compiler}.{cpp,h} 2017-01-25 18:53:23 -08:00
Yuri Kunde Schlesner dd4a1672a7 VideoCore/Shader: Split shader uniform state and shader engine
Currently there's only a single dummy implementation, which will be
split in a following commit.
2017-01-25 18:53:23 -08:00
Yuri Kunde Schlesner bd82cffd0b VideoCore/Shader: Add constness to methods 2017-01-25 18:53:23 -08:00
Yuri Kunde Schlesner 1e1f939817 VideoCore/Shader: Use only entry_point as ShaderSetup param
This removes all implicit dependency of ShaderState on global PICA
state.
2017-01-25 18:53:23 -08:00
Yuri Kunde Schlesner e3caf669b0 VideoCore/Shader: Use self instead of g_state.vs in ShaderSetup 2017-01-25 18:53:23 -08:00
Yuri Kunde Schlesner 34d581f2dc VideoCore/Shader: Extract input vertex loading code into function 2017-01-25 18:53:20 -08:00
Yuri Kunde Schlesner 3feb3ce283 Merge pull request #2434 from mailwl/nfc-amiibo
Service/NFC: stub some functions
2017-01-25 23:47:56 -03:00
Kloen 5cc94c17f6 video_core: fix shader.cpp signed / unsigned warning 2017-01-23 16:53:31 +01:00
Kloen 753fea5d65 video_core: gl_rasterizer float to int warning 2017-01-23 16:53:30 +01:00
Kloen b6063d9a93 video_core: fix gl_rasterizer warning on MSVC 2017-01-23 16:53:30 +01:00
Kloen 095f7c83fc core: fix mic_u warnings on MSVC 2017-01-23 16:53:05 +01:00
Kloen abc5c134a3 Removed unused and outdated external qhexedit 2017-01-22 18:46:48 +01:00
Kloen 380c165339 citra-qt: Removed unused and unimplemented ramview files. 2017-01-22 18:42:15 +01:00
wwylele 2c7676d371 HID: reset acceleroeter and gyroscope index in Init 2017-01-20 23:33:50 +02:00
wwylele 0045ea662f CFG: override language setting on boot 2017-01-19 10:28:35 +02:00
Thomas Farr bb1f277db1
loader: Add support for 3DSX special relocation types, fixes citra-emu/citra#2449
As per devkitPro/3dstools@47bea18
2017-01-19 01:34:58 +13:00
wwylele 47960b0659 CoreTiming: use named constant for ARM11 clock rate 2017-01-16 09:59:16 +02:00
wwylele 3c333c53f1 HID: manages updating itself using correct ticks 2017-01-16 09:51:44 +02:00
mailwl efe7e245b2 Service/NFC: stub some functions
Tested on: Mini-Mario & Friends - amiibo Challenge
2017-01-14 16:15:16 +03:00
mailwl b458d7447c GSP::WriteHWRegsWithMask: fix register mask 2017-01-14 13:37:04 +03:00
bunnei ba271f6569 Merge pull request #2423 from Kloen/floats-should-be-float
SDL2: Config, fix double to float warning
2017-01-13 12:04:27 -05:00
bunnei 1d088c637c Merge pull request #2424 from Kloen/qt-ui-warnings-really
Qt: Fix UI related warnings and bonus ui file format
2017-01-12 10:15:12 -05:00
bunnei 7ddfd3054d Merge pull request #2425 from Subv/cleanup_todos
Implement some TODOs in the code.
2017-01-12 10:14:30 -05:00
bunnei 597a7c615c Merge pull request #2308 from mailwl/ac-i
Service/AC: add ac:i service
2017-01-12 10:12:46 -05:00
Subv 1ddff14511 Threads: Check the process' resource limit for the max allowed priority when creating a thread and remove the priority clamping code. 2017-01-11 16:38:05 -05:00
Subv f2f2572fed Thread: Added priority range checking to svcSetThreadPriority and removed priority clamping code from Thread::SetPriority. 2017-01-11 16:38:04 -05:00
Subv 5ddc2e09b1 Y2R: Use the proper error code when GetStandardCoefficient receives an invalid value. 2017-01-11 16:38:03 -05:00
Kloen 8d48798f1c QT: Fix ui file format 2017-01-11 13:52:26 +01:00
Kloen 551fe3dd69 QT: Fix some UI related warnings 2017-01-11 13:52:01 +01:00
Kloen a851aa4cf1 SDL2: Config.cpp fix double to float warning 2017-01-11 13:32:02 +01:00
wwylele cf3a272332 CAM: implement basic camera functions with a blank camera 2017-01-11 11:46:44 +02:00
bunnei 84d72fd92f Merge pull request #2397 from Subv/pulse
Kernel: Implemented Pulse event and timers.
2017-01-10 10:45:00 -05:00
bunnei 9fc8ead842 Merge pull request #2384 from bunnei/internal-res-option
config: Add option for specifying screen resolution scale factor.
2017-01-08 12:25:12 -05:00
bunnei 7cfe3ef046 Merge pull request #1951 from wwylele/motion-sensor
Emulate motion sensor in frontend
2017-01-07 12:39:20 -05:00
bunnei 22ad9094e6 config: Add option for specifying screen resolution scale factor. 2017-01-07 03:23:22 -05:00
bunnei b5eac78b43 Merge pull request #2410 from Subv/sleepthread
Don't yield execution in SleepThread(0) if there are no available threads to run
2017-01-06 22:01:33 -05:00
bunnei 59f4f1d7ff Merge pull request #2396 from Subv/sema_acquire
Kernel/Semaphore: Fixed a regression in semaphore waits.
2017-01-06 22:00:12 -05:00
Hyper f0199a17f6 Kernel: Fix SharedMemory objects always returning error when addr = 0 (#2404)
Closes #2400
2017-01-06 08:21:22 -05:00
bunnei 1c792389e6 Merge pull request #2408 from Subv/priority_boosting
Kernel: Removed the priority boost code for starved threads.
2017-01-06 00:40:39 -05:00
Subv fc2266130b Kernel: Don't attempt to yield execution in SleepThread(0) if there are no available threads to run.
With this we avoid an useless temporary deschedule of the current thread.
2017-01-05 19:11:34 -05:00
Subv 5e2a8ebabf Kernel: Remove some unused functions. 2017-01-05 13:17:06 -05:00
Subv 933df2606a Kernel: Removed the priority boost code for starved threads.
After hwtesting and reverse engineering the kernel, it was found that the CTROS scheduler performs no priority boosting for threads like this, although some other forms of scheduling priority-starved threads might take place.

For example, it was found that hardware interrupts might cause low-priority threads to run if the CPU is preempted in the middle of an SVC handler that deschedules the current (high priority) thread before scheduling it again.
2017-01-05 13:12:39 -05:00
Subv e52ca85711 Kernel: Implemented Pulse event and timers.
Closes #1904
2017-01-05 13:06:17 -05:00
Subv 4251eb26ec Kernel/Semaphore: Fixed a regression in semaphore waits.
The regression was caused by a missing check in #2260.

The new behavior is consistent with the real kernel.
2017-01-05 13:00:05 -05:00
Sebastian Valle f20d872643 Merge pull request #2393 from Subv/synch
Kernel: Mutex priority inheritance and synchronization improvements.
2017-01-05 12:55:01 -05:00
Subv dda4ec93be Kernel: Add some asserts to enforce the invariants in the scheduler. 2017-01-05 09:40:18 -05:00
Subv 7f1dca8cd2 Kernel: Remove a thread from all of its waiting objects' waiting_threads list when it is awoken.
This fixes a potential bug where threads would not get removed from said list if they awoke after waiting with WaitSynchronizationN with wait_all = false
2017-01-05 09:40:15 -05:00
Subv fd95b6ee26 Kernel: Remove Thread::wait_objects_index and use wait_objects to hold all the objects that a thread is waiting on. 2017-01-05 09:40:14 -05:00
Subv cef5f45de2 Kernel: Use different thread statuses when a thread calls WaitSynchronization1 and WaitSynchronizationN with wait_all = true.
This commit removes the overly general THREADSTATUS_WAIT_SYNCH and replaces it with two more granular statuses:

THREADSTATUS_WAIT_SYNCH_ANY when a thread waits on objects via WaitSynchronization1 or WaitSynchronizationN with wait_all = false.

THREADSTATUS_WAIT_SYNCH_ALL when a thread waits on objects via WaitSynchronizationN with wait_all = true.
2017-01-04 15:58:50 -05:00
Subv d3ff5b91e1 Kernel/Mutex: Propagate thread priority changes to other threads inheriting the priority via mutexes 2017-01-04 15:58:48 -05:00
Subv b6a0355568 Kernel/Mutex: Update a mutex priority when a thread stops waiting on it. 2017-01-04 15:58:47 -05:00
Subv 7abf185390 Kernel/Mutex: Implemented priority inheritance.
The implementation is based on reverse engineering of the 3DS's kernel.

A mutex holder's priority will be temporarily boosted to the best priority among any threads that want to acquire any of its held mutexes.
When the holder releases the mutex, it's priority will be boosted to the best priority among the threads that want to acquire any of its remaining held mutexes.
2017-01-04 15:58:46 -05:00
Subv e6a7723f2f Kernel: Object ShouldWait and Acquire calls now take a thread as a parameter.
This will be useful when implementing mutex priority inheritance.
2017-01-04 15:58:45 -05:00
Subv 38a90882a4 Kernel/Synch: Do not attempt a reschedule on every syscall.
Not all syscalls should cause reschedules, this commit attempts to remedy that, however, it still does not cover all cases.
2017-01-04 15:58:44 -05:00
Jonathan Hao c18cb1b192 Fix some warnings (#2399) 2017-01-04 13:48:29 -03:00
Yuri Kunde Schlesner e2de82543b Merge pull request #2382 from mailwl/nfc
Service/NFC: stub GetTagInRangeEvent
2017-01-03 12:56:02 -03:00
Lectem ee6e88fdb5 fix comments alignment 2016-12-30 15:55:42 +01:00
Sebastian Valle f7dd8d5e81 Merge pull request #2386 from bunnei/fix-bg-color
config: SDL: Move background color setting to correct section.
2016-12-30 09:51:56 -05:00
mailwl f2985f7080 Service/NFC: stub GetTagInRangeEvent
Fix Fatal Error in Mini-Mario & Friends - amiibo Challenge
2016-12-30 09:40:54 +03:00
mailwl c6f4b93f2e Service/AC: add ac:i service 2016-12-30 09:20:11 +03:00
bunnei 02b4b2ed6e config: SDL: Move background color setting to correct section. 2016-12-30 00:35:38 -05:00
bunnei f556d6ee90 Merge pull request #2240 from wwylele/auto-region
Config: auto-select region and language
2016-12-29 22:09:01 -05:00
wwylele d7d40b3c56 Frontend: make motion sensor interfaced thread-safe 2016-12-29 21:18:36 +02:00
bunnei 2f746e9946 Merge pull request #2367 from JayFoxRox/lighting-lut-quickfix
Lighting LUT Quickfix
2016-12-29 13:41:51 -05:00
wwylele f927beb5e2 Core: remove unused hle.cpp 2016-12-27 10:27:48 +02:00
Lectem f91c51467a move Pop methods out of class body 2016-12-26 14:42:06 +01:00
Lectem 8baae9d982 IPC helpers example 2016-12-26 14:07:29 +01:00
Lectem 8f2b642415 IPC helpers 2016-12-26 14:07:29 +01:00
wwylele bcf9d20d57 Frontend: emulate motion sensor 2016-12-26 10:52:16 +02:00
wwylele 6479f63091 Common: add Quaternion 2016-12-26 10:41:26 +02:00
wwylele 2e6d8e1321 vector math: add implementation of Length and Normalize 2016-12-26 10:41:26 +02:00
wwylele 55f5d0f777 MathUtil: add PI constant 2016-12-26 10:41:26 +02:00
wwylele 2a069e76a5 Common::Event: add WaitUntil 2016-12-26 10:41:26 +02:00
Jannik Vogel 6ed4206f87 Minor cleanup in GLSL code 2016-12-25 21:38:10 +01:00
Jannik Vogel 88f409aec9 Offset lighting LUT samples correctly 2016-12-25 21:37:26 +01:00
wwylele fe2ed4bf72 Core: reset cpu_core in Shutdown to make IsPoweredOn work properly 2016-12-24 20:55:38 +02:00
bunnei 51dd13b8a0 Merge pull request #2369 from MerryMage/core-frontend
core: Move emu_window and key_map into core
2016-12-23 17:35:35 -05:00
Yuri Kunde Schlesner 56e4066f4f Merge pull request #2370 from wwylele/where-is-my-shared-font
file_util: fix missing sysdata path
2016-12-23 12:42:40 -08:00
wwylele 488b7a4041 file_util: fix missing sysdata path 2016-12-23 22:19:14 +02:00
MerryMage 64f98f4d0f core: Move emu_window and key_map into core
* Removes circular dependences (common should not depend on core)
2016-12-23 13:42:39 +00:00
mailwl 069a88dad7 Service/NWM: add nwm services 2016-12-22 22:51:27 +03:00
bunnei 76890672a0 Merge pull request #2366 from MerryMage/MemoryReadCode
arm_dynarmic: Provide MemoryReadCode callback
2016-12-22 14:25:15 -05:00
bunnei aa47af7fb6 Merge pull request #2343 from bunnei/core-cleanup
Core: Top-level consolidate & misc cleanup
2016-12-22 11:47:44 -05:00
MerryMage f8cf87ce34 arm_dynarmic: Provide MemoryReadCode callback
Change of interface in dynarmic 36082087ded632079b16d24137fdd0c450ce82ea
2016-12-22 16:07:14 +00:00
bunnei 17d740299a Merge pull request #2285 from mailwl/csnd-format
csnd:SND: Reformat source code
2016-12-22 00:47:50 -05:00
bunnei 8b1e269e58 ThreadContext: Move from "core" to "arm_interface". 2016-12-22 00:27:49 -05:00
bunnei e26fbfd1d7 core: Replace "AppCore" nomenclature with just "CPU". 2016-12-22 00:27:46 -05:00
bunnei 7623957f80 Merge pull request #2361 from lioncash/disasm
disassembler: Remove mutable specifier from breakpoints member variable
2016-12-22 00:15:06 -05:00
bunnei 5ac5cbeab7 Address clang-format issues. 2016-12-21 23:48:14 -05:00
bunnei 4fc8b8229e core: Remove HLE module, consolidate code & various cleanups. 2016-12-21 23:48:13 -05:00
bunnei 232ef55c1a core: Consolidate core and system state, remove system module & cleanups. 2016-12-21 23:29:13 -05:00
bunnei 707cc66362 file_util: Remove unused paths. 2016-12-21 23:29:12 -05:00
bunnei 198b6c9bdd core: Consolidate top-level system state into a singleton. 2016-12-21 23:29:04 -05:00
bunnei 81e22ae8c7 loader: Remove duplicate docstrings. 2016-12-21 23:27:50 -05:00
Lioncash 8309d0dade citra-qt: Move graphics debugging code into its own folder
Keeps all graphics debugging stuff from cluttering up the root debugger
folder
2016-12-21 17:19:21 -05:00
Lioncash f2c307557a disassembler: Remove mutable specifier from breakpoints member variable
Breakpoints has been const correct with regards to what the
DisassmblerModel needs for quite a while now.
2016-12-21 14:12:41 -05:00
bunnei 29564d73bd Merge pull request #2319 from yuriks/profile-scopes
VideoCore: Make profiling scope more representative
2016-12-21 13:33:49 -05:00
bunnei c4491352b3 Merge pull request #2357 from lioncash/ui
citra-qt: Move bits of constructor behavior to named functions
2016-12-21 13:33:16 -05:00
Lioncash cc1f2c131b citra-qt: Move bits of constructor behavior to named functions
Makes the initialization process a tad easier to grok,
since the constructor isn't just a glob of random unrelated behaviors.
2016-12-19 15:12:28 -05:00
Albin Bernhardsson ddec9cb369 Use GL_TRUE when setting color_mask 2016-12-19 19:06:35 +01:00
bunnei 3a1eaf2efc Merge pull request #2318 from yuriks/trace-opt
VideoCore: Inline IsPicaTracing
2016-12-18 21:15:24 -05:00
bunnei dac86b61ee Merge pull request #2351 from CaptV0rt3x/master
Fixed game_list focus issue.
2016-12-18 16:12:21 -05:00
bunnei 4c45611a2b Merge pull request #2347 from citra-emu/revert-2321-flush-pages
Revert "Memory: Always flush whole pages from surface cache"
2016-12-18 16:11:26 -05:00
CaptV0rt3x 393a0f99da line fixup for travis ci 2016-12-19 00:52:54 +05:30
Vamsi Krishna 77f4743199 screen swap - Hotkey mapping 2016-12-19 00:49:57 +05:30
Vamsi Krishna 0db22eadd5 Fixed GPLv2 license text in the start. 2016-12-19 00:06:27 +05:30
Vamsi Krishna 27217c621b Fixed game_list focusing issue.
added line render_window->setFocus();
2016-12-18 16:13:51 +05:30
bunnei 4798b1d04d Revert "Memory: Always flush whole pages from surface cache" 2016-12-17 19:13:33 -05:00
wwylele 5728e42634 Thread: remove the thread from the thread list when exiting 2016-12-17 19:23:52 +02:00
Yuri Kunde Schlesner 2ca548bbe5 Merge pull request #2335 from yuriks/shader-refactor
Misc. Shader refactors
2016-12-16 20:45:57 -08:00
bunnei d30d6f81aa Merge pull request #2303 from freiro/citra-qt_missing_sdl2_dll
Copy SDL2.dll when compiling citra-qt with msvc
2016-12-16 11:35:55 -05:00
bunnei ca5a8966ac Merge pull request #2337 from lioncash/gdb
gdbstub: const correctness changes
2016-12-16 11:32:33 -05:00
Merry acc83a1c32 Merge pull request #2322 from MerryMage/ctx-mnu
game_list: Add a context menu with "Open Save Location"  option
2016-12-16 15:08:04 +00:00
wwylele 4c9b80cee3 Kernel: remove object's waiting thread if it is dead 2016-12-16 12:33:18 +02:00
Lioncash 38a964735f gdbstub: const correctness changes
Also uses size_t as the length indicator type, as is common with buffers.
2016-12-16 04:06:26 -05:00
Yuri Kunde Schlesner c135317de1 VideoCore/Shader: Extract DebugData out from UnitState 2016-12-16 00:16:25 -08:00
Yuri Kunde Schlesner 6e7e767645 Remove unnecessary cast 2016-12-16 00:15:55 -08:00
Yuri Kunde Schlesner b5e3599704 VideoCore/Shader: Extract evaluate_condition lambda to function scope 2016-12-16 00:15:51 -08:00
Yuri Kunde Schlesner 960578f4e1 VideoCore/Shader: Extract call lambda up a scope and remove unused param 2016-12-15 23:08:05 -08:00
Yuri Kunde Schlesner e4e962bc7c VideoCore/Shader: Remove dynamic control flow in (Get)UniformOffset 2016-12-15 23:08:05 -08:00
Yuri Kunde Schlesner d27cb1dedc VideoCore/Shader: Move DebugData to a separate file 2016-12-15 23:08:05 -08:00
bunnei cda7210fad Merge pull request #2260 from Subv/scheduling
Threading: Reworked the way our scheduler works.
2016-12-16 00:41:22 -05:00
bunnei a89471621b Merge pull request #2316 from endrift/macos-gcc
Common: Fix gcc build on macOS
2016-12-16 00:40:40 -05:00
Yuri Kunde Schlesner 2427a5e976 Merge pull request #2328 from wwylele/fix-trace
Fix debug build from #2249
2016-12-15 21:06:12 -08:00
Yuri Kunde Schlesner 7524a55133 Merge pull request #2332 from lioncash/gdb
gdbstub: Remove global variable from public interface
2016-12-15 21:05:20 -08:00
Yuri Kunde Schlesner 63e8174caa Merge pull request #2320 from mailwl/cecd-update
Service/CECD: Add cecd:ndm service
2016-12-15 21:01:51 -08:00
bunnei 9dc43d3720 Merge pull request #2331 from lioncash/trunc
hid: Get rid of a double -> float truncation warning
2016-12-15 17:45:24 -05:00
wwylele a7cd452ea1 FS: fix debug build from #2249 2016-12-16 00:22:36 +02:00
Lioncash ba20dd9b61 gdbstub: Remove global variable from public interface
Currently, this is only ever queried, so adding a function to check if the
server is enabled is more sensible.

If directly modifying this externally is ever desirable, it should be done
by adding a function to the interface, rather than exposing implementation
details directly.
2016-12-15 16:37:22 -05:00
Sebastian Valle 3e4cc6b3d2 Merge pull request #2330 from lioncash/pragma
core: Add missing #pragma once directives where applicable
2016-12-15 16:06:43 -05:00
Lioncash 3faa675d6b hid: Get rid of a double -> float truncation warning
float literals need to have the 'f' prefix.
2016-12-15 15:52:15 -05:00
Lioncash 2f3c1bdfb4 core: Add missing #pragma once directives where applicable 2016-12-15 15:40:51 -05:00
Lioncash d467b5ce4f act: Fix docstring typo
These aren't the AM services.
2016-12-15 14:51:45 -05:00
Yuri Kunde Schlesner 1abb98202c Merge pull request #2325 from yuriks/fix-index
shader_jit_x64: Use LOOPCOUNT_REG as a 64-bit reg when indexing
2016-12-15 11:19:24 -08:00
bunnei bdb6956879 Merge pull request #2314 from mailwl/account
Service/ACT: move ACT services to folder
2016-12-15 13:51:29 -05:00
MerryMage 5a4e1b469d main: Open folder when open save folder location context menu is clicked 2016-12-15 18:43:11 +00:00
MerryMage f50dcc88bf game_list: Implement context menu for items in list
* Add a context menu with a "Open Save Data Location" action
2016-12-15 18:43:10 +00:00
MerryMage 351b5d23f4 loader: Implement ReadProgramId 2016-12-15 18:42:38 +00:00
Yuri Kunde Schlesner fb9e856b91 shader_jit_x64: Use LOOPCOUNT_REG as a 64-bit reg when indexing 2016-12-15 10:02:42 -08:00
MerryMage 40b0ea1086 archive_source_sd_savedata: Add static method to get a specific save data path 2016-12-15 09:59:41 +00:00
Yuri Kunde Schlesner f2b9be9bd3 Memory: Always flush whole pages from surface cache
This prevents individual writes touching a cached page, but which don't
overlap the surface, from constantly hitting the surface cache lookup.
2016-12-14 23:46:59 -08:00
mailwl 7f27be1521 Service/CECD: Add cecd:ndm service 2016-12-15 09:52:40 +03:00
Yuri Kunde Schlesner ac9f937477 VideoCore: Make profiling scope more representative 2016-12-14 22:52:09 -08:00
Yuri Kunde Schlesner 945f554b84 VideoCore: Inline IsPicaTracing
Speeds up ALBW main menu slightly (~3%)
2016-12-14 22:06:40 -08:00
Yuri Kunde Schlesner f00ada3363 VideoCore: Eliminate an unnecessary copy in the drawcall loop 2016-12-14 21:00:29 -08:00
Yuri Kunde Schlesner bde54333df Merge pull request #2309 from yuriks/shader-jit-xbyak
Convert shader JIT to Xbyak
2016-12-14 20:44:30 -08:00
Yuri Kunde Schlesner 905fc92ce1 Merge pull request #2249 from Subv/sessions_v3
Kernel/IPC: Use Ports and Sessions as the fundamental building block of Inter Process Communication.
2016-12-14 20:35:33 -08:00
Yuri Kunde Schlesner 5ff3206207 shader_jit_x64: Use Reg32 for LOOP* registers, eliminating casts 2016-12-14 20:06:09 -08:00
Yuri Kunde Schlesner f4e98ecf3f VideoCore: Convert x64 shader JIT to use Xbyak for assembly 2016-12-14 20:06:08 -08:00
Subv 016307ae65 Fixed the codestyle to match our clang-format rules. 2016-12-14 12:45:36 -05:00
Subv 5b1edc6ae7 Fixed the codestyle to match our clang-format rules. 2016-12-14 12:35:01 -05:00
mailwl 5dea1faedd Service/ACT: move ACT services to folder 2016-12-14 09:05:46 +03:00
freiro b7b2627b37 Modularized Qt and SDL file copying
Now cmake relies on two submodules to copy the libraries in the proper folders
2016-12-13 21:05:00 +01:00
Jeffrey Pfau fb952c399e Common: Fix gcc build on macOS 2016-12-13 10:20:33 -08:00
JamePeng ac2ed18a3b Minor amendment of GSP_GPU::ImportDisplayCaptureInfo code 2016-12-13 17:01:53 +08:00
Yuri Kunde Schlesner 7eeb6d9608 Merge pull request #2312 from lioncash/guard
time_stretch: Add missing #pragma once directive
2016-12-12 22:21:09 -08:00
Lioncash efcab1e918 time_stretch: Add missing #pragma once directive 2016-12-12 19:16:46 -05:00
mailwl 1238e48c58 csnd:SND reformat source code 2016-12-12 21:19:36 +03:00
Sebastian Valle 0f28ed9ce8 Merge pull request #2275 from jbeich/pthread
Unbreak QT-only build after 75ee2f8c67
2016-12-11 14:45:35 -05:00
Sebastian Valle 2589c30cbe Merge pull request #2267 from JayFoxRox/fix-mingw-cc
Support mingw cross-compilation
2016-12-11 14:44:21 -05:00
mailwl e53cd12c42 APT::GetStartupArgument: force clear startup argument 2016-12-11 22:36:12 +03:00
freiro 031fc3a460 Modularization of copy_msvc_libraries cmake funct
Created a new folder in Citra's root called CMakeModules that should
contain cmake functions used by the various CMakeLists.txt.
2016-12-11 15:36:34 +01:00
Lioncash d0e4d1182b citra-qt: Make constructors explicit where applicable 2016-12-11 14:18:06 +00:00
freiro 942f70951d Removed redundant Qt check and other fixes
This removes a redundant check and moves part of the code to a separate
function.
2016-12-11 15:10:21 +01:00
Lioncash 327b23e4ce citra-qt: Add missing #pragma once directives 2016-12-11 12:12:03 +00:00
Lioncash 3bbd35dde9 game_list: Make slots private functions
The new Qt event syntax allows for regular member functions to be used in
connect(), so explicitly indicating slots isn't necessary.
2016-12-11 11:45:50 +00:00
Lioncash 7402001787 game_list: Make the constructor explicit 2016-12-11 11:45:50 +00:00
Lioncash db33d7668e game_list: Make the AddEntry argument a const reference
appendRow takes a QList by const reference, so it doesn't need to be
modifiable.
2016-12-11 11:45:50 +00:00
Lioncash aa05d36823 game_list: Replace 0 literals with nullptr 2016-12-11 11:45:50 +00:00
Lioncash dd4582f85d game_list: Use QT5's new event connection syntax
Makes for more compact code in most places.
2016-12-11 11:45:50 +00:00
Lioncash fd3d56740e game_list: Pass the parent constructor argument to the QWidget base class
If the control was ever passed an explicit parent, a potential memory leak
would happen, as the game list wouldn't be freed.

However, in our case, the game list was placed within a layout, which
automatically performs reparenting, avoiding this issue.
2016-12-11 11:45:50 +00:00
freiro 143bc8713d [MSVC] Copy SDL2.dll to build folder
CMake now copies SDL2.dll when compiling citra with citra-qt as a target
on MSVC.
2016-12-11 12:22:37 +01:00
Yuri Kunde Schlesner 926e18d25c Merge pull request #2300 from lioncash/qt
graphics_cmdlist: Minor changes
2016-12-11 01:42:43 -08:00
Lioncash 4e7092881f graphics_cmdlists: Get rid of variable shadowing 2016-12-11 04:33:24 -05:00
Emmanuel Gil Peyrot 643e590b5c Core: Add a forgotten #include <cstring> for memcpy. 2016-12-11 01:20:45 +00:00
Lioncash 1e5644935d graphics_cmdlists: Get rid of an unused variable 2016-12-10 20:01:27 -05:00
Lioncash f1ee7e4e0e graphics_cmdlists: Make LoadTexture and TextureInfoWidget src arguments const 2016-12-10 20:01:22 -05:00
Lioncash dcb8113347 graphics_cmdlists: Make LoadImage internally linked
Puts the TextureInfoWidget definition in the anonymous namespace as well,
as it's only used in the translation unit as well.
2016-12-10 20:00:40 -05:00
Lioncash 963aedd8cc Add all services to the Service namespace
Previously there was a split where some of the services were in the
Service namespace and others were not.
2016-12-11 00:07:27 +00:00
MerryMage a2d474386c configure_input: Modernize and cleanup input configuration tab
* Removed use of raw QTimer* pointer.
* Update to use type-safe QObject::connect.
* getKeyName can be a static local function.
* Prefer to use function arguments instead of member variables.
* Store Qt::Key instead of converting string back into keycode.
2016-12-10 23:30:28 +00:00
Subv 406907d570 Properly remove a thread from its wait_objects' waitlist when it is awoken by a timeout. 2016-12-10 13:29:31 -05:00
Yuri Kunde Schlesner 42edd7911e Merge pull request #2296 from MerryMage/auto_is_auto
audio_core: SelectSink should default to auto if sink_id is invalid
2016-12-09 20:34:10 -08:00
MerryMage cef0f5b5a7 audio_core: SelectSink should default to auto if sink_id is invalid 2016-12-10 01:26:22 +00:00
bunnei 6edb024d38 Merge pull request #2291 from lioncash/svc
service: Add the cfg:nor service
2016-12-09 14:15:20 -05:00
Subv ebbb55ec8f Moved the HLE command buffer translation task to ServerSession instead of the HLE handler superclass. 2016-12-09 12:52:12 -05:00
Subv deb83c9fc5 Kernel/IPC: Small codestyle cleanup 2016-12-09 12:39:12 -05:00
Subv 17b29d8865 WaitSynch: Removed unused variables and reduced SharedPtr copies.
Define a variable with the value of the sync timeout error code.

Use a boost::flat_map instead of an unordered_map to hold the equivalence of objects and wait indices in a WaitSynchN call.
2016-12-09 12:23:09 -05:00
Lioncash a2d69adad1 service: Add cfg:nor service 2016-12-09 05:07:41 -05:00
Yuri Kunde Schlesner a5cd925a95 Merge pull request #2292 from lioncash/bool
ptm: Use boolean instead of integral value
2016-12-09 01:43:57 -08:00
Lioncash 934b8ffcf8 ptm: Use boolean instead of integral value
The third parameter of Write is actually a bool type, not an int.
2016-12-09 04:04:28 -05:00
Lioncash 823d58ac9b service: Drop '_Interface' from cfg service names 2016-12-09 01:08:35 -05:00
Yuri Kunde Schlesner 18bf4acb9b Merge pull request #2287 from lioncash/svc
service: Minor PTM changes
2016-12-08 19:34:32 -08:00
Sebastian Valle 998390ac1a Merge pull request #2280 from Subv/citrace_size
Fixed the gpu command list size when creating CiTraces.
2016-12-08 15:45:53 -05:00
Subv 5719467add Fixed the gpu command list size when creating CiTraces. 2016-12-08 15:21:02 -05:00
Subv 386112da32 Added a framework for partially handling Session disconnections.
Further implementation will happen in a future commit.

Fixes a regression.
2016-12-08 15:01:10 -05:00
Subv f9bcf89510 Use std::move where appropriate. 2016-12-08 11:06:19 -05:00
Lioncash 007815647c service: Add the ptm:s service
3dbrew documents this as being the exact same as ptm:sysm
2016-12-08 06:14:55 -05:00
Lioncash 56656b75ab service: Add common ptm:u commands to other ptm services
3dbrew indicates that all services have access to these commands
except for ptm:sets.
2016-12-08 06:13:10 -05:00
Lioncash cd778cf991 service: Drop '_Interface' in ptm service class names
Inheriting from Service::Interface makes this obvious.
2016-12-08 06:13:04 -05:00
Lioncash 41c03f481a service: Add ptm::gets and ptm::sets services 2016-12-08 05:43:08 -05:00
Yuri Kunde Schlesner 1840685ee8 Merge pull request #2286 from lioncash/svc
service: Add mvd and qtm services
2016-12-08 01:49:45 -08:00
Yuri Kunde Schlesner 6ad2a7aeb2 Merge pull request #2274 from degasus/master
Drop framebuffer completeness check.
2016-12-08 01:36:42 -08:00
Lioncash 2061d2014d service: Add mvd and qtm services
Adds the two New3DS-only modules.

3dbrew was used for command information.
2016-12-08 04:34:03 -05:00
Yuri Kunde Schlesner d098d941d7 Merge pull request #2284 from lioncash/svc
service: Add nfc services
2016-12-08 00:34:09 -08:00
Yuri Kunde Schlesner 63d3dd5262 Merge pull request #2277 from lioncash/explicit
file_sys: Make a few single-argument constructors explicit
2016-12-08 00:29:38 -08:00
Lioncash e8a960f6a1 service: Add nfc services
3dbrew was used for the command information.
2016-12-08 03:24:41 -05:00
Yuri Kunde Schlesner 43558dc40a Merge pull request #2283 from lioncash/svc
service: Update function tables
2016-12-07 22:45:12 -08:00
Yuri Kunde Schlesner bc48e2bda6 Merge pull request #2281 from lioncash/applet
applet: minor interface changes
2016-12-07 22:36:40 -08:00
Lioncash a09602d6f6 ssl_c: Update function table
Updated based off information from 3dbrew
2016-12-08 00:57:53 -05:00
Lioncash ab900f8a25 ptm: Update ptm_sysm function table
Updated based off information from 3dbrew.
2016-12-08 00:57:53 -05:00
Lioncash c67dae54b9 pm_app: Update function table
Updated based off information from 3dbrew.
2016-12-08 00:57:45 -05:00
Lioncash 9f2ad62084 nwm_uds: Update function table
Updated based off information from 3dbrew.
2016-12-08 00:56:47 -05:00
Lioncash 4a150a8f3c nim: Update function tables
Updated based off information from 3dbrew.
2016-12-08 00:56:47 -05:00
Lioncash c4bcd5c4ac http_c: Update function table
Updated based off information from 3dbrew.
2016-12-08 00:56:47 -05:00
Lioncash 65d94857c3 gsp_lcd: Update function table
Updated based off information from 3dbrew.
2016-12-08 00:56:47 -05:00
Lioncash 006e6a7f4a fs_user: Update function table
Updated based off information from 3dbrew.
2016-12-08 00:56:46 -05:00
Lioncash 093aa35c87 dlp_srvr: Update function table 2016-12-08 00:56:46 -05:00
Lioncash 733c8890aa cfg: Update function tables
Updated based off information from 3dbrew
2016-12-08 00:56:46 -05:00
Lioncash 0229983ff2 cecd_u: Update function table
Updated based off information from 3dbrew.
2016-12-08 00:56:46 -05:00
Lioncash 4ebdb7e3e1 boss_p: Update function table 2016-12-08 00:56:45 -05:00
Lioncash 74b3f0faa7 act: Update function tables
Updated based off information from 3dbrew.
2016-12-08 00:56:39 -05:00
Lioncash 258694996f apt: Update apt function tables
Updated based off information from 3dbrew.
2016-12-07 22:53:10 -05:00
Lioncash 26ea6b9546 Update AM service function tables
Updated based off information from 3dbrew.
2016-12-07 20:55:59 -05:00
Lioncash 5e9f1ec096 file_sys: Make a few single-argument constructors explicit
Prevents implicit conversions.
2016-12-07 17:26:56 -05:00
Lioncash f1709b8b59 applet: Move common IsRunning underlying variable to the Applet class
Gets rid of basic duplication.
2016-12-07 17:13:46 -05:00
Lioncash 6f71fb2954 applet: Make virtual destructor defaulted 2016-12-07 17:04:14 -05:00
Lioncash d3f4fd1777 applet: Make constructor protected
Considering the class is abstract, there's no need to make the constructor
public.
2016-12-07 16:50:32 -05:00
Markus Wick d0d49bb951 OpenGL: Drop framebuffer completeness check.
This OpenGL call synchronize the worker thread of the nvidia blob.
It can be verified on linux with the __GL_THREADED_OPTIMIZATIONS=1 environment variable.
Those errors should not happen on tested drivers.
It was used as a workaround for https://bugs.freedesktop.org/show_bug.cgi?id=94148
2016-12-07 22:09:13 +01:00
wwylele 84e78790ab Config: auto-select region and language 2016-12-07 20:52:42 +02:00
Jan Beich 774d3112af tests: add missing libcore dependency after 75ee2f8c67
$ (cmake -DENABLE_SDL2:BOOL=false /path/to/citra; gmake)
[...]
[ 85%] Linking CXX executable tests
../common/libcommon.a(microprofile.cpp.o): In function `MicroProfileThreadStart(pthread**, void* (*)(void*))':
src/common/microprofile.cpp:(.text+0x41): undefined reference to `pthread_create'
c++: error: linker command failed with exit code 1 (use -v to see invocation)
2016-12-07 18:30:49 +00:00
bunnei 8d529a5cda Merge pull request #2232 from wwylele/other-save
FS: implement archives for other game save data
2016-12-07 10:17:02 -05:00
Subv 7cde5b83bc Use boost remove_erase_if instead of the erase-remove idiom 2016-12-06 19:31:53 -05:00
Subv 1f286b72a1 Improved the algorithm for GetHighestPriorityReadyThread. 2016-12-06 19:15:32 -05:00
emmauss c4e4fa53d9 Implement Frame rate limiter (#2223)
* implement frame limiter

* fixes
2016-12-06 14:33:19 -05:00
Jannik Vogel fc4591fa49 ASSERT that shader was linked successfully 2016-12-05 21:11:24 +01:00
Jannik Vogel 4088afe23c Report shader uniform block size in case of mismatch 2016-12-05 21:11:24 +01:00
Jannik Vogel 0edc986861 Print broken shader code to log 2016-12-05 21:11:24 +01:00
Subv c93c5a72bb Return an error code when connecting to a saturated port.
The error code was taken from the 3DS kernel.
2016-12-05 13:59:57 -05:00
Subv 61a2fe8c3b HLE: Use a member variable instead of a virtual function to retrieve the max number of sessions that can be connected to an HLE service at the same time. 2016-12-05 13:44:41 -05:00
Jannik Vogel 0aee903ada gdbstub: Remove unused include 2016-12-05 19:09:16 +01:00
Jannik Vogel d2c39bdb29 Unify Windows ICON resource name 2016-12-05 19:09:16 +01:00
Jannik Vogel 45d941d62e Support mingw cross-compile 2016-12-05 19:09:16 +01:00
Subv 00f0c77570 Split SessionRequestHandler::HandleSyncRequest into HandleSyncRequest, TranslateRequest and HandleSyncRequestImpl.
HandleSyncRequest now takes care of calling the command buffer translate function before actually invoking the command handler for HLE services.
2016-12-05 12:05:00 -05:00
Subv 29d809b6e1 Kernel: Remove the Redirection handle type. 2016-12-05 11:13:22 -05:00
Subv dd8887c8cf KServerPorts now have an HLE handler "template", which is inherited by all ServerSessions created from it. 2016-12-05 11:02:08 -05:00
Subv bdad00c73f Threading: Added some utility functions and const correctness. 2016-12-04 09:58:36 -05:00
Yuri Kunde Schlesner efc8179747 GSP: Downgrade log severity of SetAxiConfigQoSMode
This function doesn't need to do anything for HLE and some games call it
quite often, spamming up the logs.
2016-12-04 06:14:27 -08:00
Yuri Kunde Schlesner 8a1f96011d OpenGL: Non-zero stride only makes sense for linear buffers 2016-12-04 06:14:27 -08:00
Yuri Kunde Schlesner 2600633b89 OpenGL: Ensure framebuffer binding is restored if completion check fails 2016-12-04 06:14:27 -08:00
Yuri Kunde Schlesner ba7f213655 OpenGL: Fix DisplayTransfer accel when input width != output width
Fixes #2246, #2261
2016-12-04 05:21:57 -08:00
Yuri Kunde Schlesner 4f0f88bc6a Merge pull request #2259 from JayFoxRox/fix-fallback
shader_jit: Fix non-SSE4.1 path where FLR would not truncate
2016-12-03 22:11:39 -08:00
Subv 8634b8cb83 Threading: Reworked the way our scheduler works.
Threads will now be awakened when the objects they're waiting on are signaled, instead of repeating the WaitSynchronization call every now and then.

The scheduler is now called once after every SVC call, and once after a thread is awakened from sleep by its timeout callback.

This new implementation is based off reverse-engineering of the real kernel.

See https://gist.github.com/Subv/02f29bd9f1e5deb7aceea1e8f019c8f4 for a more detailed description of how the real kernel handles rescheduling.
2016-12-03 22:38:14 -05:00
Jannik Vogel 2d8097eecc shader_jit: Fix non-SSE4.1 path where FLR would not truncate 2016-12-04 04:26:33 +01:00
Yuri Kunde Schlesner 4d5e42240c clang-format: Fix coding style 2016-12-03 01:32:46 -08:00
Subv 2ce61344d6 Declare empty ServerSession and ClientSession constructors as default. 2016-12-02 22:58:02 -05:00
Jannik Vogel e2cb7d7833 shader_jit: Load LOOPCOUNT_REG and LOOPINC 4 bit left-shifted 2016-12-02 04:33:15 +01:00
Subv ed210c32b3 Threads do not wait for the server endpoint to call AcceptSession before returning from a ConnectToPort or GetServiceHandle call. 2016-12-01 10:47:06 -05:00
Jannik Vogel 8efeb6ee2b Remove unused version.h 2016-12-01 16:38:46 +01:00
Subv 2eceee3a4c Fixed the rebase mistakes. 2016-11-30 23:28:31 -05:00
Subv 009b15b3aa A bit of a redesign.
Sessions and Ports are now detached from each other.
HLE services are handled by means of a SessionRequestHandler class, Interface now inherits from this class.
The File and Directory classes are no longer kernel objects, but SessionRequestHandlers instead, bound to a ServerSession when requested.
File::OpenLinkFile now creates a new session pair and binds the File instance to it.
2016-11-30 23:12:35 -05:00
Subv c5e7e0fa26 IPC/HLE: Associate the ClientSessions with their parent port's HLE interface if it exists.
Pass the triggering ServerSession to the HLE command handler to differentiate which session caused the request.
2016-11-30 23:04:00 -05:00
Subv c19afd2118 Kernel/HLE: Service::Interface no longer inherits from any Kernel object, and is now its own standalone class.
Interface is now used by aggregation in ClientPort, to forward service commands to their HLE implementation if needed.
2016-11-30 23:03:59 -05:00
Subv 0a33d915f8 fixup! Kernel/IPC: Use Ports and Sessions as the fundamental building block of Inter Process Communication. 2016-11-30 23:02:06 -05:00
Subv 073653e858 Kernel/IPC: Use Ports and Sessions as the fundamental building block of Inter Process Communication.
All handles obtained via srv::GetServiceHandle or svcConnectToPort are references to ClientSessions.
Service modules will wait on the counterpart of those ClientSessions (Called ServerSessions) using svcReplyAndReceive or svcWaitSynchronization[1|N], and will be awoken when a SyncRequest is performed.

HLE Interfaces are now ClientPorts which override the HandleSyncRequest virtual member function to perform command handling immediately.
2016-11-30 23:02:05 -05:00
Yuri Kunde Schlesner 68c00ee771 Merge pull request #2228 from freiro/winver_fix
Move WINVER definition to cmake and a bit of cleanup
2016-11-30 15:47:08 -08:00
freiro 0c22e52f52 WINVER definition moved to CMake and cleanup 2016-11-30 15:47:09 +01:00
Subv e3e4f27447 ClangFormat: Fixed the clang-format errors 2016-11-30 09:37:37 -05:00
mailwl 5b136aa211 Set client SDK version to Service APIs 2016-11-30 09:51:14 +03:00
Subv aea9a91100 Build: Fixed a few warnings. 2016-11-29 16:51:53 -05:00
wwylele 589b642790 FileSys: Implement OtherSaveData 2016-11-29 23:50:00 +02:00
wwylele b25f19ac26 FS: add missing MediaType 2016-11-29 23:50:00 +02:00
wwylele 5af117e00c FileSys: abstract SD save data archive source 2016-11-29 23:50:00 +02:00
Yuri Kunde Schlesner 3174bfd50c Merge pull request #2196 from Subv/system_mode
Kernel/Loader: Grab the system mode from the NCCH ExHeader.
2016-11-27 17:04:11 -08:00
Yuri Kunde Schlesner e279a6955e Merge pull request #2222 from linkmauve/die-frameskip-die
Remove the broken frame_skip option
2016-11-27 16:01:45 -08:00
Sebastian Valle 4ba5acdaff Merge pull request #2132 from wwylele/fix-fs-err
Correct FS error codes & add path boundary checks
2016-11-27 18:56:56 -05:00
Subv d171409f29 Kernel/Loader: Grab the system mode from the NCCH ExHeader.
3dsx and elf files default to system mode 2 (96MB allocated to the application).

This allows Home Menu to boot without modifications.
Closes #1849
2016-11-27 18:03:48 -05:00
Emmanuel Gil Peyrot 0820c99462 GPU: Remove the broken frame_skip option.
Fixes #1960.
2016-11-27 21:19:56 +00:00
Subv 4623415026 RasterizerGL: Use GL_TRUE and 0xFF in the stencil and depth masks instead of simply true and -1 2016-11-27 13:09:11 -05:00
Subv 743b0e71d9 Rasterizer/Memfill: Set the correct stencil write mask when clearing the stencil buffer. 2016-11-27 12:16:10 -05:00
Sebastian Valle d3b7f57b2b Merge pull request #2168 from mailwl/mic
MIC_U: Stub service funcions
2016-11-27 00:19:33 -05:00
Yuri Kunde Schlesner a0b30189e5 Merge pull request #2185 from freiro/local_folder
Change "user" folder default location to AppData/Roaming/ on Windows systems
2016-11-26 14:07:43 -08:00
freiro 593ec7fa74 Move to AppData/Roaming/Citra/ 2016-11-26 22:57:36 +01:00
MerryMage 27be446049 dynarmic: Add ticks based on ticks executed, not ticks requested 2016-11-26 20:32:33 +00:00
freiro 972b289c78 Removed /user/ from path 2016-11-26 01:00:52 +01:00
mailwl ec15e485c9 Output parameters to log 2016-11-25 09:37:20 +03:00
mailwl d4cadf11fc MIC_U: Stub service funcions 2016-11-25 09:37:19 +03:00
James Rowe bbe57a66ca Expose page table to dynarmic for optimized reads and writes to the JIT 2016-11-24 20:41:18 -07:00
freiro 79317b63d9 Switch to AppData/Roaming 2016-11-24 16:42:31 +01:00
jphalimi 82210ab480 Cache Vertices instead of Output registers (#2165)
This patch brings +3% performance improvement on average. It removes
ToVertex() as an important hotspot of the emulator.
2016-11-23 23:10:34 -05:00
pippo2931 0c9c97e5ea Bravely Default/Second stuck #1822 (#2188)
* Bravely Default/Second stuck #1822
CancelLibraryApplet stub

* Log parameter.

* Taking care of comments

* Sync with 3DBrew

* White space ?

* lower case
2016-11-23 22:57:56 -05:00
Yuri Kunde Schlesner ef421696e3 Merge pull request #2186 from wwylele/config9
cfg: add config block 0x00090000
2016-11-23 18:51:01 -08:00
Yuri Kunde Schlesner fefa645ec7 Merge pull request #1654 from JamePeng/errdisp
Rework the code of err:f service!
2016-11-23 17:43:02 -08:00
wwylele 75affa13f7 Fix format error from #2195 2016-11-22 20:17:28 +02:00
freiro 5dd31f204a Improve verbosity of audio errors with SDL_GetError() 2016-11-22 17:28:11 +01:00
bunnei 2de470c9b2 Merge pull request #2195 from Subv/factor_check
GPU/CiTrace: Avoid calling GetTextures() when not necessary.
2016-11-19 22:21:11 -05:00
bunnei f1798c1db6 Merge pull request #2193 from Subv/pulse_events
Kernel/Events: Log an error when trying to create Pulse events and timers
2016-11-19 22:19:45 -05:00
Subv 1323ab2f5f Kernel/Loader: Grab the system mode from the NCCH ExHeader.
3dsx and elf files default to system mode 2 (96MB allocated to the application).

This allows Home Menu to boot without modifications.
Closes #1849
2016-11-19 20:40:04 -05:00
Sebastian Valle 6c8857d2bb Merge pull request #2192 from Subv/applet_enums
APT/Applets: Renamed the members of the SignalType enum.
2016-11-19 20:30:26 -05:00
Subv 050e9be15b GPU/CiTrace: Avoid calling GetTextures() when not necessary. 2016-11-19 19:27:00 -05:00
James Rowe f68f37b520 Merge pull request #2194 from jroweboy/extremely-minor-clangformat-change
Minor formatting change
2016-11-19 13:51:14 -07:00
James Rowe 19acec351c Minor formatting change 2016-11-19 13:35:07 -07:00
Subv 4ab8692475 Kernel/Events: Log an error when trying to create Pulse events and timers.
Related to #1904
2016-11-19 14:00:08 -05:00
Subv d7ab4fd53d APT/Applets: Renamed the members of the SignalType enum.
Names now make sense and match 3dbrew.
2016-11-19 13:42:07 -05:00
wwylele 282195b450 tests: add a work-around for macOS linking error 2016-11-19 18:55:35 +02:00
wwylele d7d6975af0 FileSys: rename SaveDataCheck archive to NCCH archive
According to the observation from game and 3dbrew "Used for accessing general NCCH data"
2016-11-19 18:55:35 +02:00
wwylele f775a3781b FileSys: remove unused DiskArchive
All "subclasses" of DiskArchive are splitted out. This class is useless
2016-11-19 18:55:34 +02:00
wwylele 5c6e13a171 PTM & CFG: use the correct path and error code according to the new FileSys policy 2016-11-19 18:55:34 +02:00
wwylele 0647f86649 FileSys: w->rw permission lift only happens in SDMC archive 2016-11-19 18:55:34 +02:00
wwylele 0987783699 FileSys: add SDMCWriteOnlyArchive 2016-11-19 18:55:34 +02:00
wwylele 93aa14e345 FileSys: add SDMCArchive
Now DiskArchive only serves for SDMC, then it should be just a "SDMCArchive"
2016-11-19 18:24:37 +02:00
wwylele a879984c06 FileSys: add ExtSaveDataArchive
ExtSaveData is more similar to SaveData, so let it be a subclass of SaveData
2016-11-19 18:24:37 +02:00
wwylele 7166fdc490 FileSys: add SaveDataArchive
The error checking of SaveDataArchive is completely different from DiskArchive, so it has to be a new class instead of a subclass of DiskArchive.
2016-11-19 17:17:19 +02:00