Commit Graph

2152 Commits

Author SHA1 Message Date
RSDuck b80d5a04f3 lay base for multiple GPU2D backends 2020-12-06 17:40:16 +01:00
RSDuck 473205cab7 fix non static LTO windows build 2020-12-05 21:10:00 +01:00
RSDuck 40899940b5 fix #838 2020-12-05 12:25:49 +01:00
Arisotura c572996426
Merge pull request #837 from Arisotura/dsi_camera
merge DSi camera branch
2020-12-04 18:32:35 +01:00
Arisotura 129018a662 Merge remote-tracking branch 'remotes/origin/master' into dsi_camera 2020-12-04 18:28:15 +01:00
Arisotura 6aad429383 misc. shito 2020-12-04 18:26:48 +01:00
RSDuck 42e083960e always cap FPS to 1000 2020-12-04 00:00:35 +01:00
RSDuck 906521e7e9 fix 4-bit affine sprites 2020-12-03 14:52:36 +01:00
WaluigiWare64 07423492c4
Use AF_LINK and net/if_dl.h on all non-Linux systems (#835) 2020-12-01 23:01:57 +01:00
webgeek1234 298b958e2a
Rename jit linkage asm files (#836)
An extension of lower case s indicates to not run the
preprocessor while upper case S does. These files have defines.
2020-12-01 19:48:46 +01:00
RSDuck 6e8bac3909 Merge vram dirty tracking
Squashed commit of the following:

commit b463a05d4b909372f0cd1ad91caa0c77a25e5901
Author: RSDuck <rsduck@users.noreply.github.com>
Date:   Mon Nov 30 01:55:35 2020 +0100

    minor fix

commit ce73cebbdf5da243d7ebade82d8799ded9cd6b28
Author: RSDuck <rsduck@users.noreply.github.com>
Date:   Mon Nov 30 00:43:08 2020 +0100

    fix dirty flags of BG/OBJ mappings not being reset

commit fc5d73a6178e3adc444398bdd23de8314b5ca8f8
Author: RSDuck <rsduck@users.noreply.github.com>
Date:   Mon Nov 30 00:11:13 2020 +0100

    use flat vram for gpu2d everywhere

commit 34ee9fe2bf04fcfa2a5a1c8d78d70007e606f1a2
Author: RSDuck <rsduck@users.noreply.github.com>
Date:   Sat Nov 28 19:10:34 2020 +0100

    mark VRAM dirty for display capture

commit e8778fa2f429c6df0eece19d6a5ee83ae23a0cf4
Author: RSDuck <rsduck@users.noreply.github.com>
Date:   Sat Nov 28 18:59:31 2020 +0100

    use flat VRAM for textures and texpals
    also skip rendering if nothing changed and a bunch of fixes

commit 53f2041e2e1a28b35702a2ed51de885c36689f71
Author: RSDuck <rsduck@users.noreply.github.com>
Date:   Fri Nov 27 18:29:56 2020 +0100

    use vram dirty tracking for extpals
    also preparations to take this further

commit 4cdfa329e95aed26d3b21319c8fd86a04abf20f7
Author: RSDuck <rsduck@users.noreply.github.com>
Date:   Mon Nov 16 23:32:22 2020 +0100

    VRAM dirty tracking
2020-11-30 19:49:18 +01:00
Filippo Scognamiglio acb272ed78
Use ashmem instead of memfd_create on Android. (#816)
* Use ashmem instead of memfd_create on Android.

* Fix code styling issues.

* fix small mistake in merge commit

Co-authored-by: RSDuck <RSDuck@users.noreply.github.com>
2020-11-30 15:33:43 +01:00
WaluigiWare64 7da4550eea
Add support for macOS (#771)
* 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
2020-11-29 17:11:33 +01:00
Nadia Holmquist Pedersen 14be591ab8
Override CMAKE_AR/CMAKE_RANLIB, fixes flatpak builds, also use lld with clang if found (#828)
* Override CMAKE_AR/CMAKE_RANLIB, fixes flatpak builds, also use lld with clang if found

* Ensure we build with -fPIC/-pie for LTO builds
2020-11-28 17:12:44 +01:00
RSDuck 1ff4a1564f fix DSi mode with interpreter
I'm so stupid
2020-11-26 00:04:19 +01:00
Nadia Holmquist Pedersen ddf9a5ac27
CMake build fixups (#825)
* CMake build fixups

* Correctly set C/C++ standard
* Specify CXX in project() to get things set up right, also causes it to
link using the C++ compiler which is necessary for LTO builds with Clang
to work right
* Remove Fedora/flatpak build workaround, no longer needed with C++ standard set
* Link libm explicitly if we need to
* Specify -fuse-linker-plugin when building with LTO just in case

* Restore CMAKE_{C,CXX}_STANDRD, oops

* Use C++17
2020-11-23 21:57:36 +01:00
WaluigiWare64 f11d53c69c
Add radio buttons to switch between Direct and Indirect Mode (#822) 2020-11-22 15:31:29 +01:00
WaluigiWare64 a1cf1967ac
Fix fullscreen toggle with joysticks (#821) 2020-11-22 13:00:18 +01:00
RSDuck 50cdfd0137 fix edge indices count 2020-11-19 17:46:21 +01:00
RSDuck 690eed9e26 GPU2D: don't an indirect call in tight loops 2020-11-16 18:33:58 +01:00
RSDuck 842379c410 harmless DMA micro optimisation 2020-11-16 17:22:34 +01:00
RSDuck 1085cc14a4 prevent use after free 2020-11-16 17:03:24 +01:00
RSDuck 21dbca9543 use proper index buffers 2020-11-16 15:58:23 +01:00
Raphaël Zumer 550241dbad
Fix GBA file drag-and-drop when the system is off (#817) 2020-11-15 16:15:09 +01:00
RSDuck 05b94eff66 make audio output thread safe(r?) 2020-11-15 15:29:38 +01:00
Nadia Holmquist Pedersen 1b0a24a9bd
Fix LTO builds with Clang (#815) 2020-11-14 13:29:47 +01:00
RSDuck d697f9e0d2 make fastmem work again 2020-11-13 15:20:53 +01:00
WaluigiWare64 fbc7648d1a
Fix Ubuntu AArch64 CI - round 3 (#811) 2020-11-11 18:29:25 +01:00
RSDuck 62e3f41f20 delay savefile flush to the end of the frame 2020-11-11 13:38:05 +01:00
RSDuck 2720df9650 make platform objects typesafer and add mutex 2020-11-09 21:52:35 +01:00
RSDuck 052079afeb fix Windows 2020-11-09 20:56:31 +01:00
RSDuck ae9694ef8b do what Nadia said 2020-11-09 20:50:29 +01:00
RSDuck 78839f862e JIT fixes
- fix fastmem problems on linux
- small fix memory leak
- SlowWrite functions always take in a 32-bit variable so that the C compiler knows that the values aren't necessary zero extended
- a few other stylistic things
- handle SIGBUS as well (for macos)
2020-11-09 20:43:31 +01:00
Nadia Holmquist Pedersen ec232a9365
Fix building the Qt frontend with LTO (#802)
* Remove unnecessary -fno-pic/-no-pie, fixes LTO builds

* restore -no-pie because GNOME is derpy
2020-11-06 12:03:02 +01:00
RSDuck ad7791f726 better framelimiter for reference: https://github.com/citra-emu/citra/blob/master/src/core/perf_stats.cpp#L129 2020-11-02 20:13:22 +01:00
Filippo Scognamiglio fbca47381b
Fix a couple of wrong cpp function pointers. (#785) 2020-10-31 17:53:01 +01:00
Filippo Scognamiglio 45ea1fa990
Fix compilation issues on pedantic cpp compilers. (#783)
* Fix compilation issues on pedantic cpp compilers.

* Avoid using fullblown static function.
2020-10-31 17:40:05 +01:00
RSDuck 9ac60a840a SPU: work with scalars instead of arrays 2020-10-31 13:48:02 +01:00
WaluigiWare64 e46a408972
Remove unused gtk dependency from README (#788) 2020-10-30 21:42:09 +01:00
Arisotura 93664e7611
Merge pull request #798 from Hypnotron/master
Added 8/16-bit IPCFIFOSEND writes
2020-10-29 21:25:41 +01:00
Hypnotron 05e274a1f6 Added 8/16-bit IPCFIFOSEND writes 2020-10-29 16:09:25 -04:00
RSDuck c03d83b7be remove qt_sdl dependency from frontend util 2020-10-28 19:45:50 +01:00
Arisotura d2cd3eadbe fix to timers (ZXDS no longer runs slow as shit) 2020-10-27 05:03:17 +01:00
Arisotura 81964a0f89 make things function atleast somewhat
no pciture is being actually sent yet
2020-10-26 21:54:08 +01:00
Arisotura c0c1c2e1c2 camera: remember PLL config 2020-10-26 21:16:20 +01:00
Arisotura fc922ffb14 Merge branch 'master' into dsi_camera
# Conflicts:
#	src/DSi_I2C.cpp
2020-10-26 20:47:30 +01:00
Arisotura 49a96f41da I2C: silence logging for devices A0/E0 (mysterious alternate cameras) 2020-10-26 20:34:54 +01:00
Arisotura 2f15bcf93b betterer battery level 2020-10-26 17:55:25 +01:00
Arisotura af0a9e92c4 make unlaunch'd NANDs work 2020-10-25 18:25:09 +01:00
Arisotura 9fdc1de6fe add a few missing 32bit I/O accesses (IPC, SPI) 2020-10-25 18:14:40 +01:00