aboutsummaryrefslogtreecommitdiff
path: root/src/core/core.h
AgeCommit message (Collapse)Author
2018-08-16core: Delete System copy/move constructors and assignment operatorsLioncash
Prevents potentially making copies or doing silly things by accident with the System instance, particularly given our current core is designed (unfortunately) around one instantiable instance. This will prevent the accidental case of: auto instance = System::Instance(); being compiled without warning when it's supposed to be: auto& instance = System::Instance();
2018-08-11core: Namespace EmuWindowLioncash
Gets the class out of the global namespace.
2018-08-09loader: Add more descriptive errorsZach Hilman
Full list of new errors and descriptions in core/loader/loader.h
2018-08-08core: Port core to VfsFilesystem for file accessZach Hilman
2018-08-06GDBStub works with both Unicorn and Dynarmic now (#941)Hedges
* GDBStub works with both Unicorn and Dynarmic now * Tidy up
2018-08-05Merge pull request #912 from lioncash/global-varbunnei
video_core: Eliminate the g_renderer global variable
2018-08-04Merge pull request #849 from DarkLordZach/xcibunnei
XCI and Encrypted NCA Support
2018-08-04video_core: Eliminate the g_renderer global variableLioncash
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-03core/memory: Get rid of 3DS leftoversLioncash
Removes leftover code from citra that isn't needed.
2018-08-03Merge pull request #892 from lioncash/globalbunnei
video_core: Make global EmuWindow instance part of the base renderer …
2018-08-01kernel: Move object class to its own source filesLioncash
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-01video_core: Make global EmuWindow instance part of the base renderer classLioncash
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-01Use more descriptive error codes and messagesZach Hilman
2018-07-30audio_core: Move to audout_u impl.bunnei
- This is necessary so streams are created on the same thread.
2018-07-27core: Add AudioCore to global state.bunnei
2018-07-22Implement exclusive monitorMerryMage
2018-07-18core: Make System's default constructor privateLioncash
This makes it a compilation error to construct additional instances of the System class directly, preventing accidental wasteful constructions over and over.
2018-05-10core: Add several missing docstrings.bunnei
2018-05-10core: Run all CPU cores separately, even in single-thread mode.bunnei
2018-05-10threading: Reschedule only on cores that are necessary.bunnei
2018-05-10core: Add a configuration setting for use_multi_core.bunnei
2018-05-10core: Support session close with multicore.bunnei
2018-05-10core: Implement multicore support.bunnei
2018-05-10core: Create a thread for each CPU core, keep in lock-step with a barrier.bunnei
2018-05-10core: Move common CPU core things to its own class.bunnei
2018-04-20core: Relocate g_service_manager to the System classLioncash
Converts the service manager from a global into an instance-based variable.
2018-04-06core, main.h: Abort on 32Bit ROMs (#309)N00byKing
* core, main.h: Abort on 32Bit ROMs * main.cpp: Fix Grammar
2018-03-24GPU: Make the debug_context variable a member of the frontend instead of a ↵Subv
global.
2018-03-18Merge pull request #193 from N00byKing/3184_2_robotic_boogaloobunnei
Implement Pull #3184 from citra: core/arm: Improve timing accuracy before service calls in JIT (Rebased)
2018-03-14core: Move process creation out of global state.bunnei
2018-02-25Implements citra-emu/citra#3184N00byKing
2018-02-18kernel: Use Scheduler class for threading.bunnei
2018-02-18core: Use shared_ptr for cpu_core.bunnei
2018-02-11Make a GPU class in VideoCore to contain the GPU state.Subv
Also moved the GPU MemoryManager class to video_core since it makes more sense for it to be there.
2018-01-23Correct SpellingN00byKing
2018-01-04core: Increase tight_loop 100x for speed.bunnei
2017-08-03core: Expose AppLoader as a public interface.bunnei
2017-06-02Addressed Bunnei's review comments, and made some other tweaks:TheKoopaKingdom
- 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-02Created a whitelist of system archives to prevent false positives creating ↵TheKoopaKingdom
dialogs.
2017-06-02Optimized messages that were repetitive and added ability for core errors to ↵TheKoopaKingdom
specify more details optionally.
2017-06-02Made some changes from review comments:TheKoopaKingdom
- 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-02Added system for handling core errors in citra-qt.TheKoopaKingdom
2017-05-24core: Keep track of telemetry for the current emulation session.bunnei
2017-02-26Core: Re-write frame limiterYuri Kunde Schlesner
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-26Core: Make PerfStats internally lockedYuri Kunde Schlesner
More ergonomic to use and will be required for upcoming changes.
2017-02-26Add performance statistics to status barYuri Kunde Schlesner
2017-01-30core: inline CPU, 132 warnings fixed on GCCKloen
2016-12-22ThreadContext: Move from "core" to "arm_interface".bunnei
2016-12-22core: Replace "AppCore" nomenclature with just "CPU".bunnei
2016-12-21Address clang-format issues.bunnei