Citra threading Git (2014/06/12) is compiled. Citra is an experimental open-source Nintendo 3DS emulator/debugger written in C++. At this time, it only emulates a very small subset of 3DS hardware, and therefore is only useful for booting/debugging very simple homebrew demos. Citra is licensed under the GPLv2. Refer to the license.txt file included.
Citra threading Git Changelog:
* Merge branch 'master' of https://github.com/bunnei/citra
* Merge remote-tracking branch 'upstream/master'
* Kernel: Removed unintended #pragma
* Merge remote-tracking branch 'upstream/master'
* Thread: Added include of algorithm header to fix Linux build.
* Merge remote-tracking branch 'upstream/master'
* Event: Added include of algorithm header to fix Linux build.
* Merge branch 'bunnei-threading'
* Log: Removed unnecessary logging flag that just caused warnings.
* Merge branch 'threading' of https://github.com/bunnei/citra into bunnei-threading
Conflicts:
src/core/hle/function_wrappers.h
src/core/hle/service/gsp.cpp
* Kernel: Added freeing of kernel objects on emulator shutdown.
* Event: Updated several log messages to be assertions.
* HLE: Moved "PARAM" and "RETURN" macros to function_wrappers.h (this is only module where they are needed).
* SVC: Renamed all function wrapper templates to Wrap, moved to HLE namespace.
* Thread: Renamed occurrences of "t" to "thread" to improve readability.
* Thread: Cleaned up VerifyWait, fixed issue where nullptr msg could unnecessarily be logged.
* HLE: Removed usnused EatCycles function.
* SVC: Cleaned up function wrappers to pass in correct argument types.
* Thread: Moved position of * in arguments.
* Thread: Updated VerifyWait to be more readable (but functionally the same).
* SVC: Moved declaration of "wait" variable in SendSyncRequest for improved readability.
* HLE: Updated all uses of NULL to nullptr (to be C++11 compliant)
* Kernel: Updated various kernel function "name" arguments to be const references.
* HLE: Updated various handle debug assertions to be more clear.
* Mutex: Moved ReleaseMutex iterator declaration to be inside while loop.
* Kernel: Updated several member functions to be const
* Core: Cleaned up SingleStep(), updated default LCD refresh to assume each instruction is ~3 cycles
* Core: Changed HW update/thread reschedule to occur more frequently (assume each instruction is ~3 cycles)
* Thread: Fixed bug with ResetThread where cpu_registers[15] was being incorrectly set
* Kernel: Made SyncRequest not pure virtual, with a default implementation of error (as this is not required for all kernel objects)
* 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
* qt: updated disassembler to show 2X as many instructions
* hle: added a hokey way to force a thread reschedule during CPU single step mode (as used by the debugger)
* arm: fixed a bug where ARM_Interpreter::ExecuteInstructions was actually executing one more instruction than expected
* kernel: changed current default thread priority back to 0x30 - I think this is more correct
* arm: fixed bug in how thread context switch occurs with SkyEye
* service: added a error log messages for unimplemented WaitSynchronization
* arm: reverting a change made with cb0663de - this has to have been a typo!
* svc: added optional name field to Event and Mutex (used for debugging)
* kernel: moved position of * for GetTypeName and GetName
* coprocessor: reenabled debug log
* svc: updated WaitSynchronizationN to properly use first pointer argument
* svc: changed DuplicateHandle log message from "error" to "debug"
* svc: added GetThreadPriority and SetThreadPriority, added (incomplete) DuplicateHandle support
* kernel: changed main thread priority to default, updated Kernel::Reschedule to use PrepareReschedule
* arm: added option to prepare CPU core (while mid-instruction) for thread reschedule
* svc: cleaned up function_wrappers, updated various SVCs to make use of pointer arguments
* log: updated MAX_LOGLEVEL to use correct log level enum type
* log: updated GenericLog __attribute__ for newly added parameter
* svc: added missing function wrapper for SleepThread
* gsp: always pass through synchronization barrier for commands
* svc: updated waitSychronization to not overwrite handle on return, added stub for SleepThread (does nothing)
* thread: updated Reschedule to sit at a synchronization barrier when no other threads are ready for execution
* event: added a hackish ability to set an event as "locked" to its current state, cleaned up some comments
* hle: added stubbed service for ndm_u
* service: cleaned up log messages
* service: removed PT_A from, as this was just an alias for APT_U
* srv: fix to log unimplemented service (instead of crash)
* mutex: fixed typo in ReleaseMutex
* hle: cleaned up log messages
* svc: updated OutputDebugString to use OS_LOG
* arm: removed unnecessary code when calling SVC from skyeye
* log: fixed to not print twice, enabled coloring, added OS print logging as its own type
* core: changed time delay before kernel reschedule to "approximate" a screen refresh
* svc: changed unimplemented SVC log messages from "debug" messages to "error" messages
* 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
* event: added support for ClearEvent, fixed a bug with CreateEvent, fixed some comments
* service: added additional hack to return success on unimplemented service calls
* srv: changed a NOTICE_LOG to DEBUG_LOG
* svc: added ArbitrationType enumeration
* apt: added stubbed function for InquireNotification
* hle: properly cast 64-bit function wrapper parameters to (u64)
* hle: removed PARAM64 macro (this was incorrect), made several bug fixes accordingly for decoding U64 function parameters
* lcd: moved kFrameTicks to lcd.h for use in other modules
* service: changed interface to return 0 (no error) when a service method is unimplemented - hack to make apps boot further
* APT_U: added stubbed function for APT_U::Enable, fixed some log messages to be more consistent
* mutex: added preliminary SyncRequest/WaitSynchronization, added some comments/assertions
* svc: implemented WaitSynchronization1, WaitSynchronizationN, and CreateEvent
* APT_U: added event creation to Initialize method
* event: fixed typos and updated CMakeLists
* event: added SetEventLocked method to change status an events lock
* kernel: added event module to support creation of CTR "Event" objects
* mutex: removed docstring comment that is no longer relevant
* mutex: added additional docstrings
* kernel: added WaitSynchronization method to Kernel::Object
* kernel: updated SyncRequest to take boolean thread wait result as a parameter
* svc: added some assertions
* service: Renamed Sync to SyncRequest
* kernel: added enum for known CurrentThread and CurrentProcess handles
* srv: added a real mutex for GetProcSemaphore (instead of stubbed)
* svc: changed SendSyncRequest to use Kernel::Object SyncRequest (instead of just service Interface class)
* kernel: add a SyncRequest method to KernelObject for use with svcSendSyncRequest
* svc: added stub for DuplicateHandle SVC call
* GPU debugger: Const correctness and build fix.
* Removed definition of MAX_PATH, this is already defined in common_paths.h.
* Merge pull request #15 from archshift/nonosx-fixes
#if's out OSX-specific GL changes on other platforms
* Preprocessor: #if's out OSX-specific GL changes on other platforms
* Common: Removed duplicate "LONG" and "MAX_PATH" definitions.
* Merge pull request #1 from neobrain/master
Cleanup GPU headers and add a GPU debugger with command list parsing capability.
* Pica: Use some template magic to define register structures efficiently.
* Further refine GPU command list debugging.
* Refine command list debugging functionality and its qt interface.
* citra-qt: Add command list view.
* GPU debugger: Add functionality to inspect command lists.
* video core: added PICA definitions file.
* GPU: Cleanup register definitions.
* Rename LCD to GPU.
* citra-qt: Add GX command history viewer.
* Add initial graphics debugger interface.
* GSP: Define more GX commands.
* Pica: Add command list registers.
* Update CONTRIBUTING.md
- removed variable naming starting with "_"
- removed "Always break, even after a return" from case statements
* Merge pull request #8 from archshift/patch-1
Added CONTRIBUTING.md with contents from Coding Style
* CONTRIBUTING: Fix some examples, escape underscores
* Added CONTRIBUTING.md with contents from Coding Style, updated README link
* Merge pull request #5 from Antidote/master
* Remove -fpermissive
* * Remove -fpermissive
* Merge pull request #12 from Disruption/stomas/bugfix/wrong-field-reference
Added 'this' reference to num_instructions field so it's properly updated
* Added 'this' reference to num_instructions field so it's properly updated,as before the method was affecting the local method parameter rather than the class field
* Merge pull request #9 from bunnei/master
Add initial kernel HLE, includes thread creation and context switching
* Common: Removed definition of MAX_PATH, this is already defined in common_paths.h.
Download: Citra threading Git (2014/06/12) x86
Source: Here
2014-06-12
That changelog is huge, awesome!
ReplyDeleteGood news
ReplyDelete