aboutsummaryrefslogtreecommitdiff
path: root/src/CMakeLists.txt
Commit message (Collapse)AuthorAge
* Modernize CMake build system (#1434)Nadia Holmquist Pedersen2022-05-21
| | | | | | | | | | | These changes modernize the CMake build system to (hopefully) match newer best practices * Library linking is simpler and more automatic because of using imported targets * Multi-configuration builds should be supported (Ninja Multi-Config, Visual Studio, etc. generators) * Clean up build options using cmake_dependent_option * Let CMake do its job in more cases, like finding the math/dl libraries and detecting and enabling LTO support * Remove platform-specific kludges like the Fedora/flatpak LTO workaround and a bunch of Windows stuff * Simplify Windows static builds * Consistent formatting
* Custom path support (#1333)Arisotura2022-01-07
| | | | | | | also including: * getting rid of shitty strings * all new, cleaner ROM handling code * base for DSi savestates * GBA slot addons (for now, memory cart)
* don't link rt when oglrenderer disabled on appleCharlene Campbell2021-12-29
|
* finally decouple Config from the core. baahhahahahahArisotura2021-11-18
|
* DLDI/SD folder-sync apparatus (#1251)Arisotura2021-10-28
| | | guess we can finally have DLDI that isn't obtuse
* Fallback to FreeBIOS when BIOS files are not found. (v2) (#1174)Adrian Siekierka2021-10-02
| | | | | | | | | | | | * Fallback to FreeBIOS when BIOS files are not found. * Add sources of drastic bios files. * Move FreeBIOS/external BIOS choice to configuration option/checkbox. * Fix indentation Co-authored-by: Filippo Scognamiglio <flscogna@gmail.com> Co-authored-by: Filippo Scognamiglio <filippo.scognamiglio@felgo.com>
* DMA timing renovation (#1207)Arisotura2021-08-31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * make timers usable for measurement shito without being assfuckingly unreliable * bürp * Arisotura can you ever clean up your goddamn code also regroup the timer code instead of having it split weirdly * make the set-timing functions a tad less hacky * congrats Arisotura you made an ass-enum * add timing region tables, and separate timings for ARM9 DMA (exempt of 3c penalty) * temp work on DMA timings, not finished also, did you know? 'increment/reload' is also a thing for the source address * begin work * add some of the GBA slot/wifi timings * complete it, I guess * make some progress * getting somewhere * sdsdfs * see, Arisotura, was it that hard? blarg.
* having fun with fatfs (#1189)Arisotura2021-08-24
| | | | * patch TSC coords in DSi mode * DSiware importer and shit
* add support for JIT profiling with VTuneRSDuck2021-07-24
|
* Add PoroCYon's DSP code. (#1123)purringChaos2021-06-06
| | | | | | | | | | | | | | | * Add PoroCYon's DSP code. * Remove some teakra iles that we dont need. * make some requested changes. * move DataMemoryOffset into namespace. * use deault param. * ad the switch change * <Generic> forget about the default parameter
* macOS-related CMake cleanupsNadia Holmquist Pedersen2021-05-02
| | | | | * Remove useless explicitly specified link/include directories * Don't pass -s or -pie to the linker as they aren't needed
* Allow for a more modular renderer backends (#990)Wunk2021-02-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Draft GPU3D renderer modularization * Update sources C++ standard to C++17 The top-level `CMakeLists.txt` is already using the C++17 standard. * Move GLCompositor into class type Some other misc fixes to push towards better modularity * Make renderer-implementation types move-only These types are going to be holding onto handles of GPU-side resources and shouldn't ever be copied around. * Fix OSX: Remove 'register' storage class specifier `register` has been removed in C++17... But this keyword hasn't done anything in years anyways. OSX builds consider this "warning" an error and it stops the whole build. * Add RestartFrame to Renderer3D interface * Move Accelerated property to Renderer3D interface There are points in the code base where we do: `renderer != 0` to know if we are feeding an openGL renderer. Rather than that we can instead just have this be a property of the renderer itself. With this pattern a renderer can just say how it wants its data to come in rather than have everyone know that they're talking to an OpenGL renderer. * Remove Accelerated flag from GPU * Move 2D_Soft interface in separate header Also make the current 2D engine an "owned" unique_ptr. * Update alignment attribute to standard alignas Uses standardized `alignas` rather than compiler-specific attributes. https://en.cppreference.com/w/cpp/language/alignas * Fix Clang: alignas specifier Alignment must be specified before the array to align the entire array. https://en.cppreference.com/w/cpp/language/alignas * Converted Renderer3D Accelerated to variable This flag is checked a lot during scanline rasterization. So rather than having an expensive vtable-lookup call during mainline rendering code, it is now a public constant bool type that is written to only once during Renderer3D initialization.
* Use libepoxy to load in OpenGL functions (#960)WaluigiWare642021-01-26
| | | | | | | | | | | * Use libepoxy to load in OpenGL functions Prevents having to load them in manually * Install libepoxy in the CI * Do not link OpenGL libraries, libepoxy opens them itself * Add libepoxy to build instructions
* Add FreeBSD support (#939)WaluigiWare642021-01-22
| | | | | | | | | | | | | | | | | | | | | | | | | * Add FreeBSD support * Fix indentation * Fix Linux not finding OpenGL * Link POSIX Realtime Extensions library * Link POSIX Realtime Extensions when OpenGL is enabled too * Fail if shm_open memory exists and also check for errors * fix the last commit * (try to) Setup FreeBSD CI * Fix some issues with FreeBSD CI * Make with all cores * Remove FreeBSD CI It doesn't want to work for some reason
* Also include Homebrew on ARM64 Mac location in CMake (#938)WaluigiWare642021-01-11
|
* Improved SRAM performance (#925)Kimmy Andersson2021-01-09
| | | | | | | | | * Offload NDS SRAM writing to separate thread, debounce writes to two seconds after last flush or DeInit. * Fixed printf messages. * Fixes after CR. * Fixed potential portability issue with time_t
* change cmake file as wellRSDuck2020-12-07
|
* lay base for multiple GPU2D backendsRSDuck2020-12-06
|
* Rename jit linkage asm files (#836)webgeek12342020-12-01
| | | | An extension of lower case s indicates to not run the preprocessor while upper case S does. These files have defines.
* Add support for macOS (#771)WaluigiWare642020-11-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * use shm_open() instead of memfd_create() on macOS malloc.h isn't a header on macOS * Change OpenGL headers + create ifdef for DO_PROCLIST macOS seems to already have the OpenGL functions defined, without the ifdef, it gives "ambiguous references" errors. * macOS doesn't have ->gregs in uc_mcontext and it doesn't have REG_RIP either https://github.com/gperftools/gperftools/blob/master/m4/pc_from_ucontext.m4 * use getpid() to make memory file name unique * #ifndef __APPLE__ for AF_PACKET and linux/if_packet.h * Add include and link directories for macOS and link the OpenGL framework * Add macOS CI * Use newly added libslirp package from Homebrew https://github.com/Homebrew/homebrew-core/pull/63412 * Use Apple's Clang instead of GNU GCC on macOS * Add macOS build instructions to README * Try to fix macOS undefined symbol * snprintf doesn't take null terminator into account * Map new memory on macOS for JIT * Only use gcc-ar if using GNU Compiler * re-add fastmem code - whoops! * Fix style issue - use camelCase not snake_case * Set Minimum macOS version * Switch Minimum OS X version to 10.9 * Add macOS libpcap library name * fix memory leak * Fix binding keys in macOS * Allow getting MAC address on macOS melonDS on Linux uses AF_PACKET, which doesn't exist on macOS. Instead, this commit uses AF_LINK on macOS to get the MAC address. * Remove unneeded macOS CI dependencies * Build melonDS app bundle on macOS Now it is no longer required to install the libraries on macOS, they come with the app bundle. * fix macOS CI not being able to find macdeployqt * copy melonDS.app with recursive because it's a folder * Disable fastmem checkbox on macOS * Disable fastmem by default in config * forgot a semicolon * Don't bundle libraries, causes issues on macOS <10.15 * Update README + allow finding version in Finder on macOS * Make sure fastmem checkbox stays uncheckable
* make OpenGL renderer a build optionRSDuck2020-10-01
| | | | mostly meant for the Switch port
* actually add DLDI. bahahahhhArisotura2020-09-03
|
* add AR code file parser and shitArisotura2020-08-13
|
* Make it buildable on aarch64RSDuck2020-07-23
|
* first steps in bringing over the JIT refactor/fastmemRSDuck2020-06-16
|
* Merge branch 'generic_jit' of https://github.com/Arisotura/melonDS into ↵RSDuck2020-06-16
|\ | | | | | | generic_jit
| * fix build with JIT disabled and set default JIT maxblock size to 32RSDuck2020-06-16
| |
| * implement block linking + some refactoringRSDuck2020-06-16
| | | | | | | | currently only supported for x64
| * this mistake was phenomally stupidRSDuck2020-06-16
| |
| * move ARM64 JIT backend hereRSDuck2020-06-16
| |
| * jit: add compile optionRSDuck2020-06-16
| |
| * jit: branch instructionsRSDuck2020-06-16
| |
| * JIT: compilation of word load and storeRSDuck2020-06-16
| |
| * JIT: implemented most ALU instructionsRSDuck2020-06-16
| |
| * JIT: baseRSDuck2020-06-16
| | | | | | | | all instructions are interpreted
| * Merge remote-tracking branch 'remotes/origin/master' into melonDSiArisotura2020-05-30
| |\
| | * embed romlist.binArisotura2020-05-30
| | |
| | * get the OpenGL renderer going.Arisotura2020-05-25
| | | | | | | | | | | | | | | | | | sorta. (also make the blackmagic_II branch obsolete in the process)
| | * add audio output. HARK HARK HARKArisotura2020-05-02
| | |
| | * add a bunch of codeArisotura2020-04-27
| | |
| | * get some of the shit going, I guessArisotura2020-04-27
| | | | | | | | | | | | | | | | | | atleast the emuthread is going and we have its control system down and other fun shit, too
| * | Merge commit '4b57416552ec2fa95216e2b044559f215723bf70' into melonDSiArisotura2020-05-30
| |\|
| * | add DSi shit to cmakelistsStapleButter2019-10-16
| | |
* | | fix build with JIT disabled and set default JIT maxblock size to 32RSDuck2020-04-26
| | |
* | | implement block linking + some refactoringRSDuck2020-04-26
| | | | | | | | | | | | currently only supported for x64
* | | this mistake was phenomally stupidRSDuck2020-04-26
| | |
* | | move ARM64 JIT backend hereRSDuck2020-04-26
| | |
* | | jit: add compile optionRSDuck2020-04-26
| | |
* | | jit: branch instructionsRSDuck2020-04-26
| | |
* | | JIT: compilation of word load and storeRSDuck2020-04-26
| | |