* Memory: Rework FCRAM management entirely
Disables a lot of functionality... but I didn't want to commit too much to this commit
Also reworks virtual memory management somewhat (but needs more work)
* Accurately handle MemoryState for virtual memory
Previously all non-free blocks were marked as Reserved
* Memory: Consolidate state and permission changes
Can now use a single function to change either state, permissions, or both
Also merge vmem blocks that have the same state and permissions
* Memory: Fix double reset for FCRAM manager
Fix minor bug with permission tracking
* Memory: Implement Protect operation in ControlMemory
* Memory: Implement Unmap in ControlMemory
Also do a sanity check to make sure the memory region is free for linear allocations
* Memory: Make TLS only 0x200 bytes for each thread
Also move TLS to Base region
* RO: Unmap CROs when unloaded
Thanks @noumidev
* Kernel: Return used app memory for Commit ResourceLimit
Not quite correct, but nothing to be done until process management is improved
Also remove the stack limit for CXIs (thanks amogus)
* Kernel: Report used app memory for GetProcessInfo 2
Not really correct, but it should be accurate for applications at least
* Formatting changes
* Initial fastmem support
* PCSX2 fastmem depression
* Move away from PCSX2 fastmem
* Add enum_flag_ops.hpp
* Finally building on Windows
* Almost got a PoC
* Fix arm64 builds
* This somehow works
* This also works...
* Properly fix fastmem
* Add free region manager
* Update boost
* Add ScopeExit
* Comment out asserts on Linux/Mac/Android
* Comment out ASSERT_MSG asserts too
* Fix derp
* Attempt to fix Android
* Disable fastmem on Android
* Fix Android again maybe pt 2
* android pls
* AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
* AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
* Update host_memory.cpp
* Properly reset memory arena on reset
* Proper ashmem code for Android
* more
* Add temporary Android buildjet script for faster prototype builds
* Fix fastmem (again)
* Clean up shared memory
* Remove Android BuildJet runner
* a
* Revert "a"
This reverts commit 5443ad6f2a794c19c9b1a1567ca1c7f58eed78cd.
* Re-add ELF support
* Re-add 3DSX support
* GetSystemInfo, GetProcessInfo: Memory sizes should be in bytes
* Update Boost
* Update metal-cpp
* Fix metal renderer compilation
* Fix fastmem mapping
* Clean up fastmem code
* Fix oopsie again
* Emulator: Reorder struct
* Kernel types: Cleanup
* Cleanup
* More cleanup
* Make invalid mprotects warn instead of panicking
* Add setting for toggling fastmem
* More cleanup
* Properly initialize BSS to zeroes
* Remove unused code
* Formatting
* Cleanup
* Memory/CRO: Workaround for Pokemon XY
* NCSD loader: Fix BSS (again)
* NCSD loader: Fix BSS (again) (again)
* More memory fixes
* Memory: Remove unused code
* FS: Warn on unimplemented functions instead of panic
* Update software_keyboard.cpp
* Libretro: Add fastmem option
* FRD: Stub SaveLocalAccountData
---------
Co-authored-by: PSI-Rockin <PSI-Rockin@users.noreply.github.com>
* Initialize catch-2 based unit tests
* Add nihstro submodule
Enabled only during testing to help with assembling shaders in-code.
* Implement `ADD` instruction unit-test
* Add arithmetic/logical instruction unit tests
* Add embedded catch2 submodule
Will use the host catch2 if available.
* Ignore `.cache` folder
* Add `AlberCore` build-target
Separate the AlberCore from its frontends. Allowing two front-ends to interface
with the same core implementation. This also allows for the core to interface
better with unit-testing.
* Modularize SDL/Qt frontend
Separates all QT/SDL build files and options into the frontend-build-target
* Fix optional OpenGL enablement
Software renderer requires OpenGL, so AlberCore requries OpenGL.
The QT frontend currently requires OpenGL due to `ScreenWidget`
* Fix Android build
* Fix LTO linking
* Fix windows build
`LoadLibrary` is a preprocessor that will use either `LoadLibraryW` or
`LoadLibraryA` depending on if `UNICODE` is defined or not.
In this case we are using an ASCII string literal and and can explicitly
specify the usage of `LoadLibraryA` with an ASCII literal.
* Bonk
* Bonk
---------
Co-authored-by: wheremyfoodat <44909372+wheremyfoodat@users.noreply.github.com>
* Implement audio output
* Semi-proper audio output
* Add audio enable and vsync settings
* Add audio enable and vsync settings
* Optimize audio output a bit
* Make max ring buffer timeout smaller
* Make max ring buffer timeout smaller
* Revert to spinlocking for audio sync
* Sleep emulator thread if too many samples queued
* Fix Teakra submodule breaking
* Don't start audio device too soon
* Fix IWYU errors
* Fix compilation errors on GCC/Clang
* Ignore std::hardware_destructive_interference_size on Android NDK
* Fix more IWYU errors