Commit Graph

64 Commits

Author SHA1 Message Date
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
65be1840f0 change JIT branch optimisations default to 1
branch linking is dead
2020-10-15 05:59:45 +02:00
0d845c9e69 Random minor fixes (#757)
* Fix incorrect/questionable assert() usage

Originally reported by https://lgtm.com/projects/g/Arisotura/melonDS/?mode=tree&ruleFocus=2159000700,
but also includes a bunch of other fixes.

* Fix some `printf` warnings

Rule https://lgtm.com/projects/g/Arisotura/melonDS/?mode=tree&ruleFocus=2160310550

* Remove useless check

It is never passed thanks to `if (num_in < 1) {...; return}` before
Rule https://lgtm.com/projects/g/Arisotura/melonDS/?mode=tree&ruleFocus=2154840804

* Add missing header guard, rename other to avoid conflicts

Rule https://lgtm.com/projects/g/Arisotura/melonDS/?mode=tree&ruleFocus=2163210746

* Make DSi_SDDevice destructor virtual

Rule https://lgtm.com/projects/g/Arisotura/melonDS/?mode=tree&ruleFocus=2158670642

* Use thread-safe localtime_r, assign `time` result directly

Rule https://lgtm.com/projects/g/Arisotura/melonDS/?mode=tree&ruleFocus=2154840805

* Fix MinGW build

It needs _POSIX_THREAD_SAFE_FUNCTIONS to export `localtime_r`
2020-10-01 13:44:09 +02:00
5431c469c3 actually add DLDI. bahahahhh 2020-09-03 20:28:07 +02:00
4be68aafe0 make SD support actually be a thing 2020-08-25 00:34:57 +02:00
e7025abcdc * fix build error
* make betterer polygon splitting an option
* add GL_LEQUAL depth test for 'equal' mode, might help
2020-08-24 19:32:07 +02:00
abccc44eec make MAC randomization optional 2020-08-24 19:19:41 +02:00
f8d1d08e9c (finally) build the goddamn cheat interface 2020-08-15 00:14:05 +02:00
c5381d2911 reconcile DSi and JIT, fastmem for x64 and Windows 2020-06-30 23:50:41 +02:00
e335a8ca76 first steps in bringing over the JIT refactor/fastmem 2020-06-16 12:11:19 +02:00
e7d076403d Merge branch 'generic_jit' of https://github.com/Arisotura/melonDS into generic_jit 2020-06-16 12:06:42 +02:00
6d217e1010 fix build with JIT disabled and set default JIT maxblock size to 32 2020-06-16 11:59:09 +02:00
1c07932b40 implement block linking + some refactoring
currently only supported for x64
2020-06-16 11:59:06 +02:00
d1d96d2236 fix config key for jit literal optimisations 2020-06-16 11:57:46 +02:00
441869a105 integrate changes from ARM64 backend and more
- better handle LDM/STM in reg alloc
- unify Halted and IRQ in anticipation for branch inlining
- literal optimisations can be disabled in gui
- jit blocks follow simple returns
- fix idle loop detection
- break jit blocks on IRQ (fixes saving in Pokemon White)
2020-06-16 11:57:45 +02:00
40b88ab05a new block cache and much more...
- more reliable code invalidation detection
- blocks aren't stopped at any branch, but are being followed
if possible to get larger blocks
- idle loop recognition
- optimised literal loads, load/store cycle counting
 and loads/stores from constant addresses
2020-06-16 11:56:36 +02:00
86f2be7260 jit: add compile option 2020-06-16 11:54:03 +02:00
d13d625f73 jit: make everything configurable 2020-06-16 11:53:21 +02:00
d7b846619b add DSi-mode settings 2020-06-01 19:11:44 +02:00
920ff9778d blarg 2020-05-19 15:11:34 +02:00
17d30e91f0 actually hook this up 2020-05-17 04:37:44 +02:00
47b44a6be8 fix build with JIT disabled and set default JIT maxblock size to 32 2020-04-26 16:27:26 +02:00
3787bab1f6 implement block linking + some refactoring
currently only supported for x64
2020-04-26 13:05:17 +02:00
803c61e126 fix config key for jit literal optimisations 2020-04-26 13:05:06 +02:00
81f38c14be integrate changes from ARM64 backend and more
- better handle LDM/STM in reg alloc
- unify Halted and IRQ in anticipation for branch inlining
- literal optimisations can be disabled in gui
- jit blocks follow simple returns
- fix idle loop detection
- break jit blocks on IRQ (fixes saving in Pokemon White)
2020-04-26 13:05:05 +02:00
a687be9879 new block cache and much more...
- more reliable code invalidation detection
- blocks aren't stopped at any branch, but are being followed
if possible to get larger blocks
- idle loop recognition
- optimised literal loads, load/store cycle counting
 and loads/stores from constant addresses
2020-04-26 13:05:03 +02:00
411fb57c07 jit: add compile option 2020-04-26 13:03:06 +02:00
9d76d63af5 jit: make everything configurable 2020-04-26 13:03:03 +02:00
83f8e11bc1 update copyright years 2020-02-14 20:18:08 +01:00
711fda469e stop fast-forward hotkeys from getting lost every damn time 2019-06-12 01:39:12 +02:00
db396e992b welp.
progress
2019-05-21 22:28:46 +02:00
939a376389 add relevant config entries 2019-05-12 04:40:44 +02:00
60a728283e * remove EmuDirectory from the core
* rework OpenLocalFile(), make the code more elegant, also fixes #352
2019-03-27 13:54:33 +01:00
f08b87b41f * move melon_fopen_local() to Platform.cpp
* make it require that the file already exist (hopefully fixing config saving bug)
* finally axe melon_fopen.cpp
2019-03-27 13:34:26 +01:00
6d7e80b677 move melon_fopen() to Platform.cpp
melon_fopen_local() will need fixoring
2019-03-27 04:23:03 +01:00
5941d57236 extra safety for the case of an empty platform config file 2019-03-26 15:11:32 +01:00
4de4631c15 move platform specific config to platform specif ffile ayyyyyyyyyyygfghj;,gnxbf 2019-03-15 00:58:29 +01:00
f9822cdd44 save LAN settings 2019-02-21 03:06:37 +01:00
b0efde8bf7 also, update copyright name 2019-01-22 15:58:29 +01:00
62704aee31 * make savestate SRAM reloc disabled by default (confusing behavior)
* add config entry for keeping track of whether the main window is maximized
2018-12-30 00:44:07 +01:00
59c715475d fix oversight regarding hotkey joystick buttons. also prevent triggering the lid command a billion times in a row with a joystick button. 2018-12-16 14:41:46 +01:00
7fb1c0518c Merge pull request #285 from abcdjdj/limit_fps
Add option to limit framerate from UI
2018-12-15 00:38:35 +01:00
2077642a92 libui/GTK: remember directory in which the latest loaded ROM was, point file picker to it. behavior under Windows will likely stay unchanged as the Windows file picker already does that. 2018-12-14 22:03:34 +01:00
5efb162302 actually save shit 2018-12-14 04:25:39 +01:00
ff1e21733d add hotkey config values.
duplicate DlgInputConfig so that it can also do hotkey config.
also prevent from opening those config dialogs a billion times.
2018-12-14 03:32:40 +01:00
40f3f91368 move config-file seeking code to its own thing.
look also into the same directory as melonDS. make it the preferred place for storing melonDS.ini.
rewrite WinMain() wrapper.
2018-12-11 21:34:05 +01:00
78c767b693 Add option to limit framerate from UI
Signed-off-by: Madhav Kanbur <abcdjdj@gmail.com>
2018-11-21 11:11:02 +05:30
658856b256 fix implementation of CoTaskMemRealloc, as it can decide to move the buffer elsewhere, we have to account for that 2018-10-27 14:44:39 +02:00
a4339daade oops! don't hardcode a 9 2018-10-27 13:51:40 +02:00
f4890137c0 fix configfile loading under Windows, for when it checks AppData
by making it actually, you know, build the complete file path

hopefully that fixes that crash bug, but I couldn't reproduce it after touching the code some. heisenbugs are lots of fun
2018-10-27 13:50:29 +02:00