* nothing works yet
* don't double buffer 3D framebuffers for the GL Renderer
looks like leftovers from when 3D+2D composition was done in the frontend
* oops
* it works!
* implement display capture for compute renderer
it's actually just all stolen from the regular OpenGL renderer
* fix bad indirect call
* handle cleanup properly
* add hires rendering to the compute shader renderer
* fix UB
also misc changes to use more unsigned multiplication
also fix framebuffer resize
* correct edge filling behaviour when AA is disabled
* fix full color textures
* fix edge marking (polygon id is 6-bit not 5)
also make the code a bit nicer
* take all edge cases into account for XMin/XMax calculation
* use hires coordinate again
* stop using fixed size buffers based on scale factor in shaders
this makes shader compile times tolerable on Wintel
- beginning of the shader cache
- increase size of tile idx in workdesc to 20 bits
* apparently & is not defined on bvec4
why does this even compile on Intel and Nvidia?
* put the texture cache into it's own file
* add compute shader renderer properly to the GUI
also add option to toggle using high resolution vertex coordinates
* unbind sampler object in compute shader renderer
* fix GetRangedBitMask for 64 bit aligned 64 bits
pretty embarassing
* convert NonStupidBitfield.h back to LF only new lines
* actually adapt to latest changes
* fix stupid merge
* actually make compute shader renderer work with newest changes
* show progress on shader compilation
* remove merge leftover
* First crack at refactoring NDS and DSi into objects
- Remove all global/`static` variables in `NDS` and related classes
- Rely more on virtual dispatch when we need to pick methods at runtime
- Pass `NDS&` or `DSi&` to its constituent components where necessary
- Introduce some headers or move some definitions to break `#include` cycles
* Refactor the frontend to accommodate the core's changes
* Move up `SchedList`'s declaration
- Move it to before the components are initialized so the `map`s inside are initialized
- Fields in C++ are initialized in the order they're declared
* Fix a crash when allocating memory
* Fix JIT-free builds
* Fix GDB-free builds
* Fix Linux builds
- Explicitly qualify some member types in NDS, since they share the same name as their classes
* Remove an unnecessary template argument
- This was causing the build to fail on macOS
* Fix ARM and Android builds
* Rename `Constants.h` to `MemConstants.h`
* Add `NDS::IsRunning()`
* Use an `#include` guard instead of `#pragma once`
* Reorganize namespaces
- Most types are now moved into the `melonDS` namespace
- Only good chance to do this for a while, since a big refactor is next
* Fix the build
* Refactor GPU3D to be an object
- Who has two thumbs and is the sworn enemy of global state? This guy!
* Refactor GPU itself to be an object
- Wow, it's used in a lot of places
- Also introduce a new `Melon` namespace for a few classes
- I expect other classes will be moved into `Melon` over time
* Change signature of Renderer3D::SetRenderSettings
- Make it noexcept, and its argument const
* Remove some stray whitespace
* Add Platform::Log and Platform::LogLevel
* Replace most printf calls with Platform::Log calls
* Move a brace down
* Move some log entries to one Log call
- Some implementations of Log may assume a full line
* Log the MAC address as LogLevel::Info
also including:
* getting rid of shitty strings
* all new, cleaner ROM handling code
* base for DSi savestates
* GBA slot addons (for now, memory cart)
* immediately clear AES busy flag when the block count is zero (occurs when loading DSi cart games)
* implement NDMA start modes that have an old-DMA equivalent (except for GXFIFO mode)
now it boots DSi carts!