Commit graph

256 commits

Author SHA1 Message Date
bunnei
ec14ffe1cd GSP: Implements preliminary command synchronization via GPU interrupts.
Core: Added a comment to explain the logic for the RunLoop iterations.
2014-08-05 23:57:53 -04:00
bunnei
2542350b85 AddressArbiter: Removed unnecessary HLE::Reschedule. 2014-08-05 23:54:28 -04:00
bunnei
60078baab1 AddressArbiter: Fixed bug with break statements missing from case statements. 2014-08-05 23:54:27 -04:00
bunnei
1b247b8031 SRV: Updated GetProcSemaphore to create an event instead of a mutex. 2014-08-05 23:54:27 -04:00
bunnei
4d4607041b SVC: Removed ArbitrateAddress log message that spams to much. 2014-08-05 23:53:58 -04:00
bunnei
7a1f813be1 Kernel: Updated Event and Mutex to specify handle that they are blocking for. 2014-08-05 20:14:51 -04:00
bunnei
81fa804b3c FS: Fix port name (old port name was based on an unaligned memory read). 2014-08-05 19:58:33 -04:00
Tony Wasserka
afcb250b31 Fix a few warnings.
Templates shouldn't be marked as inline if they aren't defined in the header.
2014-07-23 00:44:31 +02:00
Tony Wasserka
4b141791ed GSP: Add a few comments. 2014-07-23 00:44:31 +02:00
Tony Wasserka
9b0d0c81a0 GSP: Clean up GX command processing a lot and treat command id as a u8 rather than a u32.
Anonymous structs are not standard C++, hence don't use them.
2014-07-23 00:44:31 +02:00
Tony Wasserka
75775e9ef4 GPU: Make use of RegisterSet. 2014-07-23 00:33:08 +02:00
Tony Wasserka
baf0aa04f5 GPU: Emulate memory fills. 2014-07-23 00:33:08 +02:00
Tony Wasserka
ec9511e1db GSP: HLE GXCommandId::SET_DISPLAY_TRANSFER and GXCommandId::SET_TEXTURE_COPY. 2014-07-23 00:33:08 +02:00
Tony Wasserka
cb8f49b7ea GSP: Implement ReadHWRegs and WriteHWRegs properly. 2014-07-23 00:33:05 +02:00
bunnei
3eb89f3e98 Kernel: Added preliminary support for address arbiters.
AddressArbiter: Added documentation comment, fixed whitespace issue.

AddressArbiter: Fixed incorrect comment, reordered if-statement to be more clear.

SVC: Removed trailing whitespace.
2014-07-08 18:46:38 -04:00
bunnei
ba840d3200 Thread: Added functions to resume threads from address arbitration.
Thread: Cleaned up arbitrate address functions.

Thread: Cleaned up ArbitrateAllThreads function.
2014-07-08 18:46:15 -04:00
bunnei
59f2750482 function_wrappers: Fixed incorrect wrapper, added another. 2014-07-07 22:13:40 -04:00
bunnei
7ff92c36ed SharedMemory: Updated MapSharedMemory to use an enum for permissions.
- Also added some safety checks to MapSharedMemory.
2014-07-05 10:24:54 -04:00
bunnei
7b7a435094 GSP: Fixed to use real shared memory object, various cleanups.
- Previously, used a hard-coded shared memory handle of 0x10002000 (as used by libctru homebrew)

GSP: Added name for shared memory.

GSP: Cleaned up assertion message.
2014-07-05 10:24:52 -04:00
bunnei
e547128185 Kernel: Added support for shared memory objects.
SharedMemory: Added optional name field for tracking known objects.
2014-07-05 01:21:05 -04:00
bunnei
542700ccb7 Archive: Added Init/Shutdown methods to reset kernel archive state. 2014-07-04 20:37:51 -04:00
bunnei
17a6148f9d FileSys: Added preliminary support for applications reading the RomFS archive.
Archive: Fixed brace ugliness for neobrain :)

FS: Commented out unused local variables to prevent warnings.

...But keeping them here for future use.

archive_romfs: Removed unused #include.
2014-07-04 20:37:45 -04:00
bunnei
82702fedb8 APT: Added stubbed ReceiveParameter and various cleanups.
APT: More cleanups.

APT: Changed SignalType to be type u32.
2014-07-04 14:18:16 -04:00
bunnei
48e39fc992 FS: Added stubbed code to intercept and decode file system service functions.
FS: Added to CMakeLists.txt
2014-06-27 16:58:30 -04:00
bunnei
8b8c8f4c13 Kernel: Added stubbed code to support creation of kernel Archive objects. 2014-06-27 16:58:30 -04:00
bunnei
004df76795 Merge branch 'threading' of https://github.com/bunnei/citra
Conflicts:
	src/core/hle/function_wrappers.h
	src/core/hle/service/gsp.cpp
2014-06-14 12:13:16 -04:00
bunnei
b45a38f557 Kernel: Removed unnecessary "#pragma once". 2014-06-13 09:51:20 -04:00
bunnei
f49ac3a2d7 Kernel: Added freeing of kernel objects on emulator shutdown. 2014-06-13 09:51:19 -04:00
bunnei
83a4ad2885 Event: Updated several log messages to be assertions. 2014-06-13 09:51:18 -04:00
bunnei
edaefe9fa6 HLE: Moved "PARAM" and "RETURN" macros to function_wrappers.h (this is only module where they are needed). 2014-06-13 09:51:18 -04:00
bunnei
8957622d10 SVC: Renamed all function wrapper templates to Wrap, moved to HLE namespace. 2014-06-13 09:51:17 -04:00
bunnei
b62ef4bbd2 Thread: Renamed occurrences of "t" to "thread" to improve readability. 2014-06-13 09:51:17 -04:00
bunnei
5b7cf50a77 Thread: Cleaned up VerifyWait, fixed issue where nullptr msg could unnecessarily be logged. 2014-06-13 09:51:16 -04:00
bunnei
4620e2a741 HLE: Removed usnused EatCycles function. 2014-06-13 09:51:16 -04:00
bunnei
862db811f0 SVC: Cleaned up function wrappers to pass in correct argument types. 2014-06-13 09:51:15 -04:00
bunnei
bfdd874b1f Thread: Moved position of * in arguments. 2014-06-13 09:51:14 -04:00
bunnei
12e2a59565 Thread: Updated VerifyWait to be more readable (but functionally the same). 2014-06-13 09:51:14 -04:00
bunnei
4d6c96b7d8 SVC: Moved declaration of "wait" variable in SendSyncRequest for improved readability. 2014-06-13 09:51:13 -04:00
bunnei
c95972275e HLE: Updated all uses of NULL to nullptr (to be C++11 compliant) 2014-06-13 09:51:13 -04:00
bunnei
5365ca157d Kernel: Updated various kernel function "name" arguments to be const references. 2014-06-13 09:51:12 -04:00
bunnei
d7363322c7 HLE: Updated various handle debug assertions to be more clear. 2014-06-13 09:51:11 -04:00
bunnei
780a443b08 Mutex: Moved ReleaseMutex iterator declaration to be inside while loop. 2014-06-13 09:51:11 -04:00
bunnei
8cac527c94 Kernel: Updated several member functions to be const 2014-06-13 09:51:10 -04:00
bunnei
b774b8b04e Thread: Fixed bug with ResetThread where cpu_registers[15] was being incorrectly set 2014-06-13 09:51:08 -04:00
bunnei
aae9fcf4a4 Kernel: Made SyncRequest not pure virtual, with a default implementation of error (as this is not required for all kernel objects) 2014-06-13 09:51:08 -04:00
bunnei
f5c7c15434 Kernel: Added real support for thread and event blocking
- SVC: Added ExitThread support
- SVC: Added SignalEvent support
- Thread: Added WAITTYPE_EVENT for waiting threads for event signals
- Thread: Added support for blocking on other threads to finish (e.g. Thread::Join)
- Thread: Added debug function for printing current threads ready for execution
- Thread: Removed hack/broken thread ready state code from Kernel::Reschedule
- Mutex: Moved WaitCurrentThread from SVC to Mutex::WaitSynchronization
- Event: Added support for blocking threads on event signalling

Kernel: Added missing algorithm #include for use of std::find on non-Windows platforms.
2014-06-13 09:51:02 -04:00
Tony Wasserka
5d62f5d92a GPU debugger: Add functionality to inspect command lists. 2014-06-12 06:10:51 -04:00
Tony Wasserka
d4530765ce GPU: Cleanup register definitions. 2014-06-12 06:10:50 -04:00
Tony Wasserka
1dfa392824 Rename LCD to GPU. 2014-06-12 06:10:49 -04:00
Tony Wasserka
31666632ca Add initial graphics debugger interface. 2014-06-12 06:10:48 -04:00
Tony Wasserka
82d3260359 GSP: Define more GX commands. 2014-06-12 06:10:48 -04:00
bunnei
174cc9a0ed hle: added a hokey way to force a thread reschedule during CPU single step mode (as used by the debugger) 2014-06-05 00:26:48 -04:00
bunnei
ce1c561278 kernel: changed current default thread priority back to 0x30 - I think this is more correct 2014-06-05 00:20:58 -04:00
bunnei
9ece9da50d arm: fixed bug in how thread context switch occurs with SkyEye 2014-06-05 00:20:11 -04:00
bunnei
870c6146e7 service: added a error log messages for unimplemented WaitSynchronization 2014-06-04 18:50:50 -04:00
bunnei
b78aff8585 svc: added optional name field to Event and Mutex (used for debugging) 2014-06-02 20:38:34 -04:00
bunnei
8c0f02a70c kernel: moved position of * for GetTypeName and GetName 2014-06-02 20:36:58 -04:00
bunnei
2773360f84 coprocessor: reenabled debug log 2014-06-02 20:36:34 -04:00
bunnei
477b0caca4 svc: updated WaitSynchronizationN to properly use first pointer argument 2014-06-02 17:54:07 -04:00
bunnei
4819e9a60f svc: changed DuplicateHandle log message from "error" to "debug" 2014-06-01 22:33:53 -04:00
bunnei
3fb31fbc57 svc: added GetThreadPriority and SetThreadPriority, added (incomplete) DuplicateHandle support 2014-06-01 22:12:54 -04:00
bunnei
10447d1f48 kernel: changed main thread priority to default, updated Kernel::Reschedule to use PrepareReschedule 2014-06-01 21:42:50 -04:00
bunnei
15c7d81706 svc: cleaned up function_wrappers, updated various SVCs to make use of pointer arguments 2014-06-01 20:48:29 -04:00
bunnei
2f55c9e55b svc: added missing function wrapper for SleepThread 2014-06-01 10:41:41 -04:00
bunnei
7dd18a8df9 gsp: always pass through synchronization barrier for commands 2014-06-01 10:41:23 -04:00
bunnei
f2f638492b svc: updated waitSychronization to not overwrite handle on return, added stub for SleepThread (does nothing) 2014-06-01 10:37:19 -04:00
bunnei
ba98e25e97 thread: updated Reschedule to sit at a synchronization barrier when no other threads are ready for execution 2014-06-01 10:35:42 -04:00
bunnei
f7cececc5c event: added a hackish ability to set an event as "locked" to its current state, cleaned up some comments 2014-06-01 10:33:55 -04:00
bunnei
55325dea4c hle: added stubbed service for ndm_u 2014-05-30 00:24:04 -04:00
bunnei
c451ad2835 service: cleaned up log messages 2014-05-30 00:22:39 -04:00
bunnei
2482be13df service: removed PT_A from, as this was just an alias for APT_U 2014-05-30 00:22:25 -04:00
bunnei
007b7edada srv: fix to log unimplemented service (instead of crash) 2014-05-29 23:54:09 -04:00
bunnei
d8a2c8c657 mutex: fixed typo in ReleaseMutex 2014-05-29 23:31:01 -04:00
bunnei
c404d22036 hle: cleaned up log messages 2014-05-29 23:26:58 -04:00
bunnei
b0bad47c0e svc: updated OutputDebugString to use OS_LOG 2014-05-29 23:04:18 -04:00
bunnei
6d267142ad svc: changed unimplemented SVC log messages from "debug" messages to "error" messages 2014-05-29 20:26:27 -04:00
bunnei
58af0da792 svc: added svcClearEvent, stubbed function for svcArbitrateAddress, and various fixes
- force kernel reschedule after svcWaitSynchronization
- fixed some bugs with passing in pointer arguments
- cleaned up some comments and log messages
2014-05-29 20:24:51 -04:00
bunnei
d51c84dde2 event: added support for ClearEvent, fixed a bug with CreateEvent, fixed some comments 2014-05-29 20:00:44 -04:00
bunnei
545e6919ce service: added additional hack to return success on unimplemented service calls 2014-05-29 18:54:59 -04:00
bunnei
b08b3c154f srv: changed a NOTICE_LOG to DEBUG_LOG 2014-05-29 18:53:45 -04:00
bunnei
e7202e5b2d svc: added ArbitrationType enumeration 2014-05-29 18:52:57 -04:00
bunnei
4b4a6de1d8 apt: added stubbed function for InquireNotification 2014-05-28 23:33:24 -04:00
bunnei
c4b5168b45 hle: properly cast 64-bit function wrapper parameters to (u64) 2014-05-28 22:03:10 -04:00
bunnei
9fd5d6c7d8 hle: removed PARAM64 macro (this was incorrect), made several bug fixes accordingly for decoding U64 function parameters 2014-05-28 21:20:00 -04:00
bunnei
70af9d620b service: changed interface to return 0 (no error) when a service method is unimplemented - hack to make apps boot further 2014-05-28 18:39:28 -04:00
bunnei
3972d4ca8b APT_U: added stubbed function for APT_U::Enable, fixed some log messages to be more consistent 2014-05-27 23:56:08 -04:00
bunnei
2ed6652f10 mutex: added preliminary SyncRequest/WaitSynchronization, added some comments/assertions 2014-05-27 22:42:16 -04:00
bunnei
47e781e80a svc: implemented WaitSynchronization1, WaitSynchronizationN, and CreateEvent 2014-05-27 22:41:09 -04:00
bunnei
94b30e8a38 APT_U: added event creation to Initialize method 2014-05-27 22:29:11 -04:00
bunnei
ea8627d536 event: fixed typos and updated CMakeLists 2014-05-27 22:14:38 -04:00
bunnei
beea6f054a event: added SetEventLocked method to change status an events lock 2014-05-27 22:14:00 -04:00
bunnei
fd69fd0325 kernel: added event module to support creation of CTR "Event" objects 2014-05-27 20:16:13 -04:00
bunnei
d493d725ac mutex: removed docstring comment that is no longer relevant 2014-05-26 22:49:11 -04:00
bunnei
93cd5a0691 mutex: added additional docstrings 2014-05-26 22:47:47 -04:00
bunnei
a432dc8f39 kernel: added WaitSynchronization method to Kernel::Object 2014-05-26 22:17:49 -04:00
bunnei
58a3adcdd2 kernel: updated SyncRequest to take boolean thread wait result as a parameter 2014-05-26 22:12:46 -04:00
bunnei
6e51c56fe4 svc: added some assertions 2014-05-26 21:57:10 -04:00
bunnei
16fea415d0 service: Renamed Sync to SyncRequest 2014-05-26 21:56:51 -04:00
bunnei
3d7693f75f kernel: added enum for known CurrentThread and CurrentProcess handles 2014-05-26 21:56:23 -04:00
bunnei
96b2105524 srv: added a real mutex for GetProcSemaphore (instead of stubbed) 2014-05-26 21:55:55 -04:00