Commit message (Collapse) | Author | Files | Lines | ||
---|---|---|---|---|---|
2018-09-15 | Port #4182 from Citra: "Prefix all size_t with std::" | fearlessTobi | 1 | -7/+7 | |
2018-09-07 | core: Migrate current_process pointer to the kernel | Lioncash | 1 | -4/+7 | |
Given we now have the kernel as a class, it doesn't make sense to keep the current process pointer within the System class, as processes are related to the kernel. This also gets rid of a subtle case where memory wouldn't be freed on core shutdown, as the current_process pointer would never be reset, causing the pointed to contents to continue to live. | |||||
2018-09-06 | core/core: Remove unnecessary sm/controller include | Lioncash | 1 | -1/+0 | |
The only reason this include was necessary, was because the constructor wasn't defaulted in the cpp file and the compiler would inline it wherever it was used. However, given Controller is forward declared, all those inlined constructors would see an incomplete type, causing a compilation failure. So, we just place the constructor in the cpp file, where it can see the complete type definition, allowing us to remove this include. | |||||
2018-09-04 | core: Use a raw pointer in GetGPUDebugContext. | Markus Wick | 1 | -2/+2 | |
This helper is called very often. The memory ownership shall not be transfered, so just return the raw pointer. | |||||
2018-09-02 | vfs_real: Forward declare IOFile | Lioncash | 1 | -2/+3 | |
Eliminates the need to rebuild some source files if the file_util header ever changes. This also uncovered some indirect inclusions, which have also been fixed. | |||||
2018-08-31 | core/core: Replace includes with forward declarations where applicable | Lioncash | 1 | -4/+15 | |
The follow-up to e2457418dae19b889b2ad85255bb95d4cd0e4bff, which replaces most of the includes in the core header with forward declarations. This makes it so that if any of the headers the core header was previously including change, then no one will need to rebuild the bulk of the core, due to core.h being quite a prevalent inclusion. This should make turnaround for changes much faster for developers. | |||||
2018-08-31 | core: Make the main System class use the PImpl idiom | Lioncash | 1 | -174/+341 | |
core.h is kind of a massive header in terms what it includes within itself. It includes VFS utilities, kernel headers, file_sys header, ARM-related headers, etc. This means that changing anything in the headers included by core.h essentially requires you to rebuild almost all of core. Instead, we can modify the System class to use the PImpl idiom, which allows us to move all of those headers to the cpp file and forward declare the bulk of the types that would otherwise be included, reducing compile times. This change specifically only performs the PImpl portion. | |||||
2018-08-29 | kernel: Eliminate kernel global state | Lioncash | 1 | -4/+12 | |
As means to pave the way for getting rid of global state within core, This eliminates kernel global state by removing all globals. Instead this introduces a KernelCore class which acts as a kernel instance. This instance lives in the System class, which keeps its lifetime contained to the lifetime of the System class. This also forces the kernel types to actually interact with the main kernel instance itself instead of having transient kernel state placed all over several translation units, keeping everything together. It also has a nice consequence of making dependencies much more explicit. This also makes our initialization a tad bit more correct. Previously we were creating a kernel process before the actual kernel was initialized, which doesn't really make much sense. The KernelCore class itself follows the PImpl idiom, which allows keeping all the implementation details sealed away from everything else, which forces the use of the exposed API and allows us to avoid any unnecessary inclusions within the main kernel header. | |||||
2018-08-24 | core: Remove always true conditionals in Load() | Lioncash | 1 | -7/+4 | |
These conditions are always true, since the outer conditional already checks for these conditions. | |||||
2018-08-12 | qt: Add 'Install to NAND' option to menu | Zach Hilman | 1 | -0/+1 | |
Prompts for title type on NCA files. | |||||
2018-08-12 | loader: Join 0* files in directory if filename is 00 | Zach Hilman | 1 | -1/+33 | |
i.e. Load the concatenated 00+01 if 01 exists as well. Needed for split NAND NCAs. | |||||
2018-08-12 | core: Namespace EmuWindow | Lioncash | 1 | -2/+2 | |
Gets the class out of the global namespace. | |||||
2018-08-10 | loader: Add more descriptive errors | Zach Hilman | 1 | -22/+4 | |
Full list of new errors and descriptions in core/loader/loader.h | |||||
2018-08-09 | core: Port core to VfsFilesystem for file access | Zach Hilman | 1 | -2/+6 | |
2018-08-07 | GDBStub works with both Unicorn and Dynarmic now (#941) | Hedges | 1 | -1/+4 | |
* GDBStub works with both Unicorn and Dynarmic now * Tidy up | |||||
2018-08-04 | renderer_base: Make Rasterizer() return the rasterizer by reference | Lioncash | 1 | -1/+1 | |
All calling code assumes that the rasterizer will be in a valid state, which is a totally fine assumption. The only way the rasterizer wouldn't be is if initialization is done incorrectly or fails, which is checked against in System::Init(). | |||||
2018-08-04 | video_core: Eliminate the g_renderer global variable | Lioncash | 1 | -3/+6 | |
We move the initialization of the renderer to the core class, while keeping the creation of it and any other specifics in video_core. This way we can ensure that the renderer is initialized and doesn't give unfettered access to the renderer. This also makes dependencies on types more explicit. For example, the GPU class doesn't need to depend on the existence of a renderer, it only needs to care about whether or not it has a rasterizer, but since it was accessing the global variable, it was also making the renderer a part of its dependency chain. By adjusting the interface, we can get rid of this dependency. | |||||
2018-08-03 | core/memory: Get rid of 3DS leftovers | Lioncash | 1 | -3/+3 | |
Removes leftover code from citra that isn't needed. | |||||
2018-08-02 | hw: Remove unused files | Lioncash | 1 | -3/+0 | |
None of these files are used in any meaningful way. They're just leftovers from citra. Also has the benefit of getting rid of an unused global variable. | |||||
2018-08-02 | kernel: Move object class to its own source files | Lioncash | 1 | -1/+0 | |
General moving to keep kernel object types separate from the direct kernel code. Also essentially a preliminary cleanup before eliminating global kernel state in the kernel code. | |||||
2018-08-02 | video_core: Make global EmuWindow instance part of the base renderer class | Lioncash | 1 | -2/+2 | |
Makes the global a member of the RendererBase class. We also change this to be a reference. Passing any form of null pointer to these functions is incorrect entirely, especially given the code itself assumes that the pointer would always be in a valid state. This also makes it easier to follow the lifecycle of instances being used, as we explicitly interact the renderer with the rasterizer, rather than it just operating on a global pointer. | |||||
2018-08-01 | Use more descriptive error codes and messages | Zach Hilman | 1 | -4/+8 | |
2018-07-31 | audio_core: Move to audout_u impl. | bunnei | 1 | -2/+0 | |
- This is necessary so streams are created on the same thread. | |||||
2018-07-28 | core: Add AudioCore to global state. | bunnei | 1 | -0/+2 | |
2018-07-22 | Implement exclusive monitor | MerryMage | 1 | -1/+2 | |
2018-07-19 | Virtual Filesystem 2: Electric Boogaloo (#676) | Zach Hilman | 1 | -1/+2 | |
* Virtual Filesystem * Fix delete bug and documentate * Review fixes + other stuff * Fix puyo regression | |||||
2018-07-19 | core: Make System's default constructor private | Lioncash | 1 | -0/+2 | |
This makes it a compilation error to construct additional instances of the System class directly, preventing accidental wasteful constructions over and over. | |||||
2018-07-19 | core: Don't construct instance of Core::System, just to access its live instance | Lioncash | 1 | -1/+1 | |
This would result in a lot of allocations and related object construction, just to toss it all away immediately after the call. These are definitely not intentional, and it was intended that all of these should have been accessing the static function GetInstance() through the name itself, not constructed instances. | |||||
2018-07-08 | Revert "Virtual Filesystem (#597)" | bunnei | 1 | -2/+1 | |
This reverts commit 77c684c1140f6bf3fb7d4560d06d2efb1a2ee5e2. | |||||
2018-07-06 | Virtual Filesystem (#597) | Zach Hilman | 1 | -1/+2 | |
* Add VfsFile and VfsDirectory classes * Finish abstract Vfs classes * Implement RealVfsFile (computer fs backend) * Finish RealVfsFile and RealVfsDirectory * Finished OffsetVfsFile * More changes * Fix import paths * Major refactor * Remove double const * Use experimental/filesystem or filesystem depending on compiler * Port partition_filesystem * More changes * More Overhaul * FSP_SRV fixes * Fixes and testing * Try to get filesystem to compile * Filesystem on linux * Remove std::filesystem and document/test * Compile fixes * Missing include * Bug fixes * Fixes * Rename v_file and v_dir * clang-format fix * Rename NGLOG_* to LOG_* * Most review changes * Fix TODO * Guess 'main' to be Directory by filename | |||||
2018-07-03 | Update clang format | James Rowe | 1 | -2/+2 | |
2018-07-03 | Rename logging macro back to LOG_* | James Rowe | 1 | -7/+7 | |
2018-05-11 | core: Run all CPU cores separately, even in single-thread mode. | bunnei | 1 | -6/+20 | |
2018-05-11 | threading: Reschedule only on cores that are necessary. | bunnei | 1 | -0/+5 | |
2018-05-11 | core: Add a configuration setting for use_multi_core. | bunnei | 1 | -6/+26 | |
2018-05-11 | core: Support session close with multicore. | bunnei | 1 | -4/+11 | |
2018-05-11 | core: Create a thread for each CPU core, keep in lock-step with a barrier. | bunnei | 1 | -5/+25 | |
2018-05-11 | core: Move common CPU core things to its own class. | bunnei | 1 | -48/+9 | |
2018-04-26 | core: Replace remaining old non-generic logger usages with fmt-capable equivalents | Lioncash | 1 | -11/+11 | |
LOG_GENERIC usages will be amended in a follow-up to keep API changes separate from interface changes, as it will require removing a parameter from the relevant function in the VMManager class. | |||||
2018-04-21 | core: Relocate g_service_manager to the System class | Lioncash | 1 | -6/+22 | |
Converts the service manager from a global into an instance-based variable. | |||||
2018-04-06 | core, main.h: Abort on 32Bit ROMs (#309) | N00byKing | 1 | -0/+4 | |
* core, main.h: Abort on 32Bit ROMs * main.cpp: Fix Grammar | |||||
2018-03-27 | config: Use simplified checkbox (from Citra) for CPU JIT. | bunnei | 1 | -7/+3 | |
2018-03-19 | Clang Fixes | N00byKing | 1 | -1/+2 | |
2018-03-19 | More Warning cleanups | N00byKing | 1 | -1/+1 | |
2018-03-19 | Clean Warnings (?) | N00byKing | 1 | -1/+1 | |
2018-03-14 | core: Move process creation out of global state. | bunnei | 1 | -1/+3 | |
2018-02-25 | Implements citra-emu/citra#3184 | N00byKing | 1 | -4/+8 | |
2018-02-21 | core: Fix scheduler-shutdown related crash | MerryMage | 1 | -5/+9 | |
2018-02-19 | scheduler: Cleanup based on PR feedback. | bunnei | 1 | -1/+1 | |
2018-02-18 | kernel: Use Scheduler class for threading. | bunnei | 1 | -1/+2 | |
2018-02-18 | core: Use shared_ptr for cpu_core. | bunnei | 1 | -3/+3 | |
2018-02-12 | Make a GPU class in VideoCore to contain the GPU state. | Subv | 1 | -0/+2 | |
Also moved the GPU MemoryManager class to video_core since it makes more sense for it to be there. | |||||
2018-01-20 | Port citra #3352 to yuzu (#103) | River City Ransomware | 1 | -0/+7 | |
* Port citra #3352 to yuzu This change allows non x86_64 architectures to compile yuzu by skipping the building of dynarmic * Fixed clang-format errors * fixes more clang-format errors | |||||
2018-01-17 | Update core.cpp | N00byKing | 1 | -1/+0 | |
2018-01-13 | Remove gpu debugger and get yuzu qt to compile | James Rowe | 1 | -8/+0 | |
2018-01-12 | configuration: Add cpu_core configuration option | MerryMage | 1 | -2/+10 | |
2018-01-12 | arm_dynarmic: Implement core | MerryMage | 1 | -1/+3 | |
2018-01-09 | CoreTiming: Reworked CoreTiming (cherry-picked from Citra #3119) | B3n30 | 1 | -0/+1 | |
* CoreTiming: New CoreTiming; Add Test for CoreTiming | |||||
2018-01-04 | unicorn: Use for arm interface on Windows. | bunnei | 1 | -8/+1 | |
2018-01-03 | arm: Remove SkyEye/Dyncom code that is ARMv6-only. | bunnei | 1 | -3/+2 | |
2017-10-23 | logging: Rename category "Core_ARM11" to "Core_ARM". | bunnei | 1 | -1/+1 | |
2017-09-27 | Loaders: Don't automatically set the current process every time we load an application. | Subv | 1 | -2/+4 | |
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-10 | Kernel/Memory: Give each Process its own page table. | Subv | 1 | -1/+0 | |
The loader is in charge of setting the newly created process's page table as the main one during the loading process. | |||||
2017-08-19 | Added missing parts in libnetwork (#2838) | B3n30 | 1 | -0/+5 | |
* Network: Set and send the game information over enet Added Callbacks for RoomMember and GetMemberList to Room in preparation for web_services. | |||||
2017-07-18 | telemetry: Log performance, configuration, and system data. | bunnei | 1 | -0/+10 | |
2017-06-03 | Addressed Bunnei's review comments, and made some other tweaks: | TheKoopaKingdom | 1 | -6/+5 | |
- 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-03 | Created a whitelist of system archives to prevent false positives creating dialogs. | TheKoopaKingdom | 1 | -4/+2 | |
2017-06-03 | Made some changes from review comments: | TheKoopaKingdom | 1 | -9/+13 | |
- 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-03 | Added system for handling core errors in citra-qt. | TheKoopaKingdom | 1 | -6/+18 | |
2017-05-25 | core: Keep track of telemetry for the current emulation session. | bunnei | 1 | -0/+3 | |
2017-05-10 | Kernel: Map special regions according to ExHeader | Yuri Kunde Schlesner | 1 | -2/+3 | |
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-02-27 | Core: Make PerfStats internally locked | Yuri Kunde Schlesner | 1 | -3/+2 | |
More ergonomic to use and will be required for upcoming changes. | |||||
2017-02-27 | Add performance statistics to status bar | Yuri Kunde Schlesner | 1 | -0/+9 | |
2017-02-11 | core: Free AppLoader on shutdown to release file (#2558) | Yuri Kunde Schlesner | 1 | -9/+2 | |
Fixes #2455 | |||||
2016-12-24 | Core: reset cpu_core in Shutdown to make IsPoweredOn work properly | wwylele | 1 | -0/+1 | |
2016-12-22 | core: Replace "AppCore" nomenclature with just "CPU". | bunnei | 1 | -7/+7 | |
2016-12-22 | Address clang-format issues. | bunnei | 1 | -3/+3 | |
2016-12-22 | core: Remove HLE module, consolidate code & various cleanups. | bunnei | 1 | -7/+19 | |
2016-12-22 | core: Consolidate core and system state, remove system module & cleanups. | bunnei | 1 | -25/+87 | |
2016-12-15 | gdbstub: Remove global variable from public interface | Lioncash | 1 | -1/+1 | |
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-09-21 | Use negative priorities to avoid special-casing the self-include | Yuri Kunde Schlesner | 1 | -1/+1 | |
2016-09-21 | Remove empty newlines in #include blocks. | Emmanuel Gil Peyrot | 1 | -3/+1 | |
This makes clang-format useful on those. Also add a bunch of forgotten transitive includes, which otherwise prevented compilation. | |||||
2016-09-19 | Manually tweak source formatting and then re-run clang-format | Yuri Kunde Schlesner | 1 | -2/+1 | |
2016-09-18 | Sources: Run clang-format on everything. | Emmanuel Gil Peyrot | 1 | -2/+3 | |
2016-09-15 | core: Add configuration option for CPU JIT. | bunnei | 1 | -7/+12 | |
2016-05-06 | HLE: Rename RescheduleIsPending to IsReschedulePending. | bunnei | 1 | -1/+1 | |
2016-04-05 | Common: Remove Common::make_unique, use std::make_unique | MerryMage | 1 | -3/+2 | |
2016-03-21 | hle: Get rid of global access to g_reschedule | Lioncash | 1 | -1/+1 | |
This shouldn't be directly exposed if there's already a partial API that operates on it. We can just provide the rest of that API. | |||||
2016-03-08 | Improve error report from Init() functions | LittleWhite | 1 | -2/+1 | |
Add error popup when citra initialization failed | |||||
2015-12-30 | core: Use unique_ptr for holding the interpreter instances | Lioncash | 1 | -6/+9 | |
2015-10-04 | Implement gdbstub | polaris- | 1 | -0/+17 | |
2015-09-20 | Implement gdbstub | polaris- | 1 | -0/+17 | |
2015-06-28 | Core: Cleanup core includes. | Emmanuel Gil Peyrot | 1 | -3/+0 | |
2015-05-15 | Memmap: Re-organize memory function in two files | Yuri Kunde Schlesner | 1 | -1/+0 | |
memory.cpp/h contains definitions related to acessing memory and configuring the address space mem_map.cpp/h contains higher-level definitions related to configuring the address space accoording to the kernel and allocating memory. | |||||
2015-05-12 | Thread: Remove the idle thread | Yuri Kunde Schlesner | 1 | -2/+2 | |
Instead just use nullptr to represent no thread is active. | |||||
2015-05-11 | Core/Memory: Give every emulated thread it's own TLS area. | Subv | 1 | -4/+0 | |
The TLS area for thread T with id Ti is located at TLS_AREA_VADDR + (Ti - 1) * 0x200. This allows some games like Mario Kart 7 to continue further. | |||||
2015-05-09 | Memory: Re-organize and rename memory area address constants | Yuri Kunde Schlesner | 1 | -1/+1 | |
2015-05-07 | Common: Remove common.h | Yuri Kunde Schlesner | 1 | -0/+1 | |
2015-04-06 | core: Migrate 3DS-specific CP15 register setting into Init | Lioncash | 1 | -0/+5 | |
2015-02-13 | dyncom: Switch the app and system cores into the correct mode at initialization | Lioncash | 1 | -5/+4 | |
2015-02-01 | arm: Adios armemu | Lioncash | 1 | -12/+2 | |
2015-01-09 | Thread: Reduce use of Handles and move some funcs to inside the class. | Yuri Kunde Schlesner | 1 | -1/+1 | |
2015-01-09 | Move ThreadContext to core/core.h and deal with the fallout | Yuri Kunde Schlesner | 1 | -0/+1 | |
2015-01-09 | Core: Fixed a crash and removed some unused variables. | Subv | 1 | -6/+0 | |
ARM_Disasm only has static methods, so there's no need to have an instance of it. | |||||
2015-01-08 | Threads: Use a dummy idle thread when no other are ready. | Subv | 1 | -1/+12 | |
This thread will not actually execute instructions, it will only advance the timing/events and try to yield immediately to the next ready thread, if there aren't any ready threads then it will be rescheduled and start its job again. | |||||
2015-01-03 | Core: Change default CPU to dyncom. | bunnei | 1 | -2/+2 | |
2014-12-21 | License change | purpasmart96 | 1 | -1/+1 | |
2014-12-13 | Convert old logging calls to new logging macros | Yuri Kunde Schlesner | 1 | -2/+2 | |
2014-11-19 | Add static to some variables | Lioncash | 1 | -7/+7 | |
2014-10-28 | Use configuration files to enable or disable the new dyncom interpreter. | archshift | 1 | -3/+14 | |
2014-09-09 | core: Prune redundant includes | archshift | 1 | -6/+0 | |
2014-08-31 | Core: Refactor core to use only one function for execution. | bunnei | 1 | -18/+8 | |
Core: Cleaned up comment to be more readable. Citra: Changed loop to be more readable. | |||||
2014-08-06 | GSP: Implements preliminary command synchronization via GPU interrupts. | bunnei | 1 | -8/+12 | |
Core: Added a comment to explain the logic for the RunLoop iterations. | |||||
2014-06-13 | HLE: Updated all uses of NULL to nullptr (to be C++11 compliant) | bunnei | 1 | -4/+4 | |
2014-06-13 | Core: Cleaned up SingleStep(), updated default LCD refresh to assume each instruction is ~3 cycles | bunnei | 1 | -11/+12 | |
2014-06-13 | Core: Changed HW update/thread reschedule to occur more frequently (assume each instruction is ~3 cycles) | bunnei | 1 | -2/+2 | |
2014-06-05 | hle: added a hokey way to force a thread reschedule during CPU single step mode (as used by the debugger) | bunnei | 1 | -1/+2 | |
2014-05-30 | core: changed time delay before kernel reschedule to "approximate" a screen refresh | bunnei | 1 | -3/+12 | |
2014-05-23 | core: added Kernel::Reschedule() call to check for thread changes, shortened delay time to 100 instructions | bunnei | 1 | -1/+6 | |
2014-05-17 | updated how we call ARM core to make things much faster | bunnei | 1 | -3/+6 | |
2014-04-11 | cleaned up some logging messages | bunnei | 1 | -20/+2 | |
2014-04-11 | added initial modules for setting up SysCall HLE | bunnei | 1 | -0/+18 | |
2014-04-09 | fixed project includes to use new directory structure | bunnei | 1 | -6/+8 | |
2014-04-09 | got rid of 'src' folders in each sub-project | bunnei | 1 | -0/+0 | |
2014-04-09 | fixed some license headers that I missed | bunnei | 1 | -23/+3 | |
2014-04-05 | added g_app_core->Step and HW::Update to Core::SingleStep to be consistent with other changes made | bunnei | 1 | -1/+5 | |
2014-04-05 | - added an interface layer for ARM cores | bunnei | 1 | -76/+11 | |
- cleaned up core.cpp a bit | |||||
2014-04-04 | added some commented out ARMulator functions | bunnei | 1 | -20/+3 | |
2014-04-04 | Add Core::GetState() for debugger | Mathieu Vaillancourt | 1 | -0/+5 | |
2014-04-01 | added very hackish ARMulator core initialization and CPU stepping | bunnei | 1 | -6/+97 | |
2013-10-03 | moved some core functions over to system module | ShizZy | 1 | -4/+2 | |
2013-10-02 | added a message option to Core::Halt function | ShizZy | 1 | -1/+1 | |
2013-09-27 | added system.h to project | ShizZy | 1 | -3/+15 | |
2013-09-19 | added log msg to core | ShizZy | 1 | -0/+2 | |
2013-09-14 | renamed project to 'citrus' | ShizZy | 1 | -1/+1 | |
2013-09-08 | updated common paths | ShizZy | 1 | -0/+2 | |
2013-09-06 | added core and mem_map files to the project | ShizZy | 1 | -2/+46 | |
2013-09-05 | added missing files | ShizZy | 1 | -0/+2 | |