* DSP: Implement Pipe 2
Pipe 2 is a DSP pipe that is used to initialize both the DSP hardware (the
application signals to the DSP to initialize) and the application (the DSP
provides the memory location of structures in the shared memory region).
* AudioCore: Implement codecs (DecodeADPCM, DecodePCM8, DecodePCM16)
* DSP Pipes: Implement as FIFO
* AudioCore: File structure
* AudioCore: More structure
* AudioCore: Buffer management
* DSP/Source: Reorganise Source's AdvanceFrame.
* Audio Output
* lolidk
* huh?
* interp
* More interp stuff
* oops
* Zero State
* Don't mix Source frame if it's not enabled
* DSP: Forgot to zero a buffer, adjusted thread synchronisation, adjusted format spec for buffers
* asdf
* Get it to compile and tweak stretching a bit.
* revert stretch test
* deleted accidental partial catch submodule commit
* new audio stretching algorithm
* update .gitmodule
* fix OS X build
* remove getopt from rubberband
* #include <stddef> to audio_core.h
* typo
* -framework Accelerate
* OptionTransientsSmooth -> OptionTransientsCrisp
* tweak stretch tempo smoothing coefficient. also switch back to smooth.
* tweak mroe
* remove printf
* sola
* #include <cmath>
* VERY QUICK MERGE TO GET IT WORKING DOESN'T ACTIVATE AUDIO FILTERS
* Reminder to self
* fix comparison
* common/thread: Correct code style
* Thread: Make Barrier reusable
* fix threading synchonisation code
* add profiling code
* print error to console when audio clips
* fix metallic sound
* reduce logspam
* ARM/Decoder: Initial implementation
* JitX64: Implement register allocator
* JitX64: Initial implementation of JitX64 compiler
* JitX64: Add accessors for ARMul_State::exclusive_tag and ARMul_State::exclusive_state
* JitX64: Implement ARM_Jit
ARM_Jit is the ARM_Interface for the x64 recompiler.
* tests: Infrastructure for unit tests
* dyncom: Implement Arm_DynCom::ClearCache()
* tests/JitX64: Fuzz ARM data processing instructions
* JitX64: Implement ARM_Jit::ClearCache()
* JitX64: Implement ADC_imm
* JitX64: Implement immediate data processing instructions
* fixup! Arm/ArmDecoder: Address comments regarding the arm decoder and check versions of all arm instructions
* fixup! Builds on OS X now
* fixup! Fix bugs in thumb decoder & have it use boost::optional
* JitX64/RegAlloc: Improve documentation and improve method names
* tests/JitX64: Improve tests
* tests/JitX64: Add tests for testing data processing instructions with Rd=R15
* fixup! JitX64/RegAlloc: Rename member functions to (Lock|Bind)ArmFor(Read|ReadWrite|Write).
* fixup! Addressed comments regarding JitX64::JitX64
* fixup! tests/JitX64: Address comments
* tests/JitX64: Initial thumb tests
* Common: Add MathUtil::SignExtend
* ARM_Disasm: Disassemble BLX
* JitX64: Implement branch instructions
* JitX64: Implement 32-bit thumb BL(X) instruction
* JitX64: Data Processing: Implement shift-by-immediate (_reg) instructions
* JitX64: Data Processing: Implement shift-by-register (_rsr) instructions
* x64 ABI: Be explicit about Gen:: namespace
* MMIO: UnmapRegion
* JitX64: Implement load/store instructions
* JitX64: Implement load and store multiple
* JitX64: Implement SETEND
* tests/JitX64: Improve thumb instruction test coverage
* fixup! Fix non-MSVC builds
* JitX64: Load/Store: Add UNPREDICTABLE ASSERTs, correct LDR R15 behavior
* tests/JitX64: Fix thumb tests
* JitX64: Implement synchronisation instructions
* JitX64: Implement exception-generating instructions
* ARM_Jit: ClearCache upon construct
* ARM/Decoder: Fill out more instructions
* JitX64: Removed old page table code
* fixup! ARM/Decoder: Various fixes
* Use C++14 std::integer_sequence.
* Split ArmDecoder::Instruction into ArmInstruction and ThumbInstruction
* Make Cond, Register, ShiftType and SignExtendRotation enum classes.
* ThumbMatcher is no longer allocated on the heap.
* JitX64::CondManager now uses Cond instead of SkyEye's ConditionCode.
* Add utility functions IsArmRegValid and MakeArmRegList.
* fixup! ARM/Decoder: Misc fixes
* fixup! Common: Move SignExtend and bits into BitUtil
* fixup! arm_dyncom_interpreter
* fixup! JitState: Should be final and should have initial values
* fixup! Make JitX64::CondManager::CurrentCond() const
* fixup! JitX64: Move thumb_BLX_* variables below ArmDecoder::Visitor functions
* fixup! RegAlloc: Simplify code
* fixup! MMIO: UnmapRegion
* fixup! Tests/JitX64: Use std::generate_n and factor pass-testing into DoesBehaviorMatch
* fixup! JitX64::LocationDescriptorHash: Use static_cast
* fixup! JitX64: Default values for primitive members
* fixup! JitX64: Add const to relevant member functions, add initialisers to members of CondManager
* fixup! Jit: Remove unnecessary headers
* fixup! RunJittedCode: Remove C-style casts
* fixup! Common: Common::make_unique -> std::make_unique
* fixup! BitUtils
* fixup! JitX64: reinterpret_cast<const void* const> -> reinterpret_cast<const void*>
* fixup! static -> inline in headers, moved instruction/helper/load_store.h function bodies into .cpp file
* fixup! Move public interface of JitX64 class to the top
* fixup! Rename JitX64::UpdateFlags* so flag names are in order (N, Z, C, V)
* fixup! BitUtil: Correct error messages, independent impl of Bit, correct SignExtend logic
* DSP: Implement Pipe 2
Pipe 2 is a DSP pipe that is used to initialize both the DSP hardware (the
application signals to the DSP to initialize) and the application (the DSP
provides the memory location of structures in the shared memory region).
* AudioCore: Implement codecs (DecodeADPCM, DecodePCM8, DecodePCM16)
* DSP Pipes: Implement as FIFO
* AudioCore: File structure
* AudioCore: More structure
* AudioCore: Buffer management
* DSP/Source: Reorganise Source's AdvanceFrame.
* Audio Output
* lolidk
* huh?
* interp
* More interp stuff
* oops
* Zero State
* Don't mix Source frame if it's not enabled
* DSP: Forgot to zero a buffer, adjusted thread synchronisation, adjusted format spec for buffers
* asdf
* Get it to compile and tweak stretching a bit.
* revert stretch test
* deleted accidental partial catch submodule commit
* new audio stretching algorithm
* update .gitmodule
* fix OS X build
* remove getopt from rubberband
* #include <stddef> to audio_core.h
* typo
* -framework Accelerate
* OptionTransientsSmooth -> OptionTransientsCrisp
* tweak stretch tempo smoothing coefficient. also switch back to smooth.
* tweak mroe
* remove printf
* sola
* #include <cmath>
* VERY QUICK MERGE TO GET IT WORKING DOESN'T ACTIVATE AUDIO FILTERS
* Reminder to self
* fix comparison
* common/thread: Correct code style
* Thread: Make Barrier reusable
* fix threading synchonisation code
* add profiling code
* print error to console when audio clips
* fix metallic sound
* reduce logspam
citra: Remove GLFW, Add SDL2
FindSDL2: Do not CACHE SDL2_* variables if library is not found
EmuWindow_SDL2: Set minimal client area at initialisation time
EmuWindow_SDL2: Corrections
EmuWindow_SDL2: Fix no decorations on startup on OS X
cmake: windows_copy_files
The main advantage of switching to glad from glLoadGen is that, apart
from being actively maintained, it supports a customizable entrypoint
loader function, which makes it possible to also support OpenGL ES.
INTERFACE doesn't define the symbol when compiling the library itself.
PUBLIC should be used when the definition is needed both by the library
and by the users.
Involves making asserts use printf instead of the log functions (log functions are asynchronous and, as such, the log won't be printed in time)
As such, the log type argument was removed (printf obviously can't use it, and it's made obsolete by the file and line printing)
Also removed some GEKKO cruft.
The triangle clipper was allocating its temporary input, output and work
buffers using a std::vector. Since this is a hot path, it's desirable to
use stack allocation instead.
Several cleanups to the buildsystem:
- Do better factoring of common libs between platforms.
- Add support to building on Windows.
- Remove Qt4 support.
- Re-sort file lists and add missing headers.
This should fix the GL loading errors that occur in some drivers due to
the use of deprecated functions by GLEW. Side benefits are more accurate
auto-completion (deprecated function and symbols don't exist) and faster
pointer loading (less entrypoints to load). In addition it removes an
external library depency, simplifying the build system a bit and
eliminating one set of binary libraries for Windows.