Commit Graph

9873 Commits (653d7a3f0db44c248d0450ade1cd50aaa94bd4d6)
 

Author SHA1 Message Date
Lioncash 232d95b56e core: Relocate CPU core management to its own class
Keeps the CPU-specific behavior from being spread throughout the main
System class. This will also act as the home to contain member functions
that perform operations on all cores. The reason for this being that the
following pattern is sort of prevalent throughout sections of the
codebase:

If clearing the instruction cache for all 4 cores is necessary:

Core::System::GetInstance().ArmInterface(0).ClearInstructionCache();
Core::System::GetInstance().ArmInterface(1).ClearInstructionCache();
Core::System::GetInstance().ArmInterface(2).ClearInstructionCache();
Core::System::GetInstance().ArmInterface(3).ClearInstructionCache();

This is kind of... well, silly to copy around whenever it's needed.
especially when it can be reduced down to a single line.

This change also puts the basics in place to begin "ungrafting" all of the
forwarding member functions from the System class that are used to
access CPU state or invoke CPU-specific behavior. As such, this change
itself makes no changes to the direct external interface of System. This
will be covered by another changeset.
7 years ago
bunnei 033b46253e macro_interpreter: Implement AddWithCarry and SubtractWithBorrow.
- Used by Undertale.
7 years ago
bunnei 5a6dc4d041 audout_u: Add support for multiple IAudioOut streams.
- Used by Undertale.
7 years ago
bunnei 0e6a608245 maxwell_3d: Implement alternate blend equations.
- Used by Undertale.
7 years ago
Lioncash 1bf5a337a5 common/thread: Drop Hungarian notation on SetCurrentThreadName's parameter
This is inconsistent with our coding style.
7 years ago
bunnei b84f4cfb62
Merge pull request #1737 from FernandoS27/layer-copy
Implemented Fast Layered Copy
7 years ago
bunnei f0d3f1b376
Merge pull request #1771 from lioncash/bit-set
common: Remove bit_set.h
7 years ago
bunnei f926559ef4
Merge pull request #1767 from lioncash/handle
kernel/handle_table: Minor changes
7 years ago
Lioncash 93f7677402 common/thread: Make Barrier's 'count' member non-const
While admirable as a means to ensure immutability, this has the
unfortunate downside of making the class non-movable. std::move cannot
actually perform a move operation if the provided operand has const data
members (std::move acts as an operation to "slide" resources out of an
object instance). Given Barrier contains move-only types such as
std::mutex, this can lead to confusing error messages if an object ever
contained a Barrier instance and said object was attempted to be moved.
7 years ago
Lioncash 756e773096 common/thread: Initialize class member variables where applicable
Simplifies the constructor interfaces for Barrier and Event classes.
7 years ago
Lioncash 02602afd10 common/thread: Group non-member functions together
Keeps the non-member interface in one spot instead of split into two
places, making it nicer to locate functions.
7 years ago
Lioncash d6583d68f6 common/thread: Remove SleepCurrentThread()
This is also unused and superceded by standard functionality. The
standard library provides std::this_thread::sleep_for(), which provides
a much more flexible interface, as different time units can be used with
it.
7 years ago
Lioncash 1d555fdd25 common/thread: Remove unused CurrentThreadId()
This is an old function that's no longer necessary. C++11 introduced
proper threading support to the language and a thread ID can be
retrieved via std::this_thread::get_id() if it's ever needed.
7 years ago
Lioncash 8b27e73bd7 common: Remove bit_set.h
This is an analog of BitSet from Dolphin that was introduced to allow
iterating over a set of bits. Given it's currently unused, and given
that std::bitset exists, we can remove this. If it's ever needed in the
future it can be brought back.
7 years ago
Zach Hilman 699900eed0 applets: Add StubApplet
This will log all data it receives, log all calls to its methods and push dummy data into both channels on execution.
7 years ago
ReinUsesLisp 74eb16521f gl_shader_decompiler: Rename internal flag strings 7 years ago
ReinUsesLisp 8a5e6fce07 gl_shader_decompiler: Rename control codes to condition codes 7 years ago
ReinUsesLisp 864cbbaf4c gl_shader_decompiler: Fix register overwriting on texture calls 7 years ago
Lioncash 0e35f1bb18 kernel/handle_table: Move private static functions into the cpp file
These don't depend on class state, and are effectively implementation
details, so they can go into the cpp file .
7 years ago
Lioncash 568bcbc29d kernel/handle_table: Restrict handle table size to 1024 entries
The previous handle table size is a holdover from Citra. The actual
handle table construct on Horizon only allows for a maximum of 1024
entries.
7 years ago
Lioncash f5ce71793e kernel/handle_table: Default destructor in the cpp file
We don't need to potentially inline the teardown logic of all of the
handle instances.
7 years ago
bunnei ec38b4e883
Merge pull request #1753 from FernandoS27/ufbtype
Use default values for unknown framebuffer pixel format
7 years ago
bunnei 61586e8794
Merge pull request #1752 from ReinUsesLisp/unimpl-decompiler
gl_shader_decompiler: Use UNIMPLEMENTED when applicable
7 years ago
FernandoS27 4a6a9b6622 Properly Implemented TXQ Instruction 7 years ago
bunnei d4012a4540
Merge pull request #1742 from lioncash/hle-swkbd
am/applets: Minor cleanup
7 years ago
ReinUsesLisp 642dfeda2a gl_shader_decompiler: Implement BFI_IMM_R 7 years ago
bunnei 7f10db1c20 nvhost_ctrl_gpu: Implement IoctlGetGpuTime.
- Used by Undertale.
7 years ago
bunnei bb175ab430
Merge pull request #1754 from ReinUsesLisp/zero-register
gl_shader_decompiler: Remove UNREACHABLE when setting RZ
7 years ago
bunnei 8cdb48224d
Merge pull request #1758 from lioncash/rect
common/math_util: Minor cleanup
7 years ago
bunnei 81e14c072a
Merge pull request #1759 from lioncash/unused
common: Remove depencency on xbyak
7 years ago
FernandoS27 0368260c99 Removed pre 4.3 ARB extensions 7 years ago
FernandoS27 377c60645c Update OpenGL's backend version from 3.3 to 4.3 7 years ago
FernandoS27 0a9fedfac9 Use default values for unknown framebuffer pixel format 7 years ago
Lioncash 3533d33ff5 common: Remove dependency on xbyak
Xbyak is currently entirely unused. Rather than carting it along, remove
it and get rid of a dependency. If it's ever needed in the future, then
it can be re-added (and likely be more up to date at that point in
time).
7 years ago
ReinUsesLisp d92afc7493 gl_shader_decompiler: Implement R2P_IMM 7 years ago
Lioncash 45211a7a91 common/math_util: Simplify std::make_signed usages to std::make_signed_t
Gets rid of the need to use typename to access the ::type alias.
7 years ago
Lioncash f11173f88c common/math_util: Make Rectangle's constructors constexpr
Allows objects that contain rectangle instances to be constexpr
constructible as well.
7 years ago
Lioncash cc0801745a common/math_util: Remove unnecessary static from PI
const/constexpr variables have internal linkage by default.
7 years ago
Lioncash 74fd0aa2e8 common/math_util: Remove unused IntervalsIntersect() function
This hasn't been used since the project started, so we may as well get
rid of it to keep it from bit rotting.
7 years ago
bunnei 5af4160bf2
Merge pull request #1751 from bunnei/color-mask-fix
maxwell_3d: Initialize rasterizer color mask registers as enabled.
7 years ago
ReinUsesLisp 423a3ed2c8 gl_shader_decompiler: Remove UNREACHABLE when setting RZ 7 years ago
bunnei b55c7bbcf7
Merge pull request #1750 from lioncash/amend
am: Correct build failure
7 years ago
ReinUsesLisp bb893188eb gl_shader_decompiler: Use UNIMPLEMENTED instead of LOG+UNREACHABLE when applicable 7 years ago
bunnei 1a543723ab maxwell_3d: Initialize rasterizer color mask registers as enabled.
- Fixes rendering regression with Sonic Mania.
7 years ago
Lioncash f17e122025 am: Correct build failure
The interface for shared memory was changed, but another commit was
merged that relied on the (previously public) internals of SharedMemory.

This amends that discrepancy.
7 years ago
Zach Hilman 54e74b3572 patch_manager: Show LayeredExeFS patch in add-ons column
The decision was made to name them LayeredExeFS instead of just LayeredFS to differentiate from normal RomFS-based mods. The name may be long/unweildy, but conveys the meaning well.
7 years ago
bunnei aa7e53ab5c
Merge pull request #1734 from lioncash/shared
kernel/shared_memory: Make data members private, plus minor interface changes
7 years ago
bunnei ab292c501c
Merge pull request #1733 from lioncash/ldr
ldr: Clean up error codes
7 years ago
bunnei 67486c0568
Merge pull request #1746 from lioncash/random
kernel/process: Move <random> include to the cpp file
7 years ago
bunnei 1d0604e33c
Merge pull request #1748 from lioncash/assert
common/assert: Make the UNIMPLEMENTED macro properly assert
7 years ago