| Commit message (Collapse) | Author | Files | Lines |
|
Visual Studio has an option to search all files in a solution, so I
did a search in there for "default:" looking for any missing break
statements.
I've left out default statements that return something, and that throw
something, even if via ThrowInvalidType. UNREACHABLE leads towards throw
R_THROW macro leads towards a return
|
|
|
|
|
|
This formats all copyright comments according to SPDX formatting guidelines.
Additionally, this resolves the remaining GPLv2 only licensed files by relicensing them to GPLv2.0-or-later.
|
|
Keeps the implementation hidden from the intended API and lessens the
header dependencies on the interpreter's header.
|
|
fmt now automatically prints the numeric value of an enum class member
by default, so we don't need to use casts any more.
Reduces the line noise a bit.
|
|
Resolves variable shadowing scenarios up to the end of the OpenGL code
to make it nicer to review. The rest will be resolved in a following
commit.
|
|
This was assigning the field to itself, which is a no-op. The size
doesn't change between its initial assignment and this one, so this is a
safe change to make.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
This allows the implementation of these types to change without
requiring a rebuild of everything that includes the macro interpreter
header.
|
|
|
|
|
|
|
|
|
|
This reverts a tested behavior on delay slots not exiting if the exit
flag is set. Currently new tests are required in order to ensure this
behavior.
|
|
It seems instructions marked with the 'exit' flag will not cause an exit when executed within a delay slot.
This was hwtested by fincs.
|
|
We can just use .at(), which essentially does the same thing, but with
less code.
|
|
Given we already ensure nothing can set the zeroth register in
SetRegister(), we don't need to check if the index is zero and special
case it. We can just access the register normally, since it's already
going to be zero.
We can also replace the assertion with .at() to perform the equivalent
behavior inline as part of the API.
|
|
Functions which are suppose to crash on non canary builds usually don't return anything which lead to uninitialized memory being used.
|
|
- More accurate impl., fixes Undertale (among other games).
|
|
- Used by Undertale.
|
|
- Fixes an issue where macros could be skipped.
- Fixes rendering of distant objects in Super Mario Odyssey.
|
|
* get rid of boost::optional
* Remove optional references
* Use std::reference_wrapper for optional references
* Fix clang format
* Fix clang format part 2
* Adressed feedback
* Fix clang format and MacOS build
|
|
The branch target is signed, so multiply by 4 instead of left shifting by 2
|
|
|
|
The Ryujinx macro interpreter and envydis were used as reference.
Macros are programs that are uploaded by the games during boot and can later be called by writing to their method id in a GPU command buffer.
|