Commit Graph

99 Commits

Author SHA1 Message Date
6b431a6664 Allow bundling libraries on macOS (#1013) 2021-03-21 15:32:23 +00:00
2502c8d212 Add NetBSD support (#985)
Note - This will require PaX MPROTECT to be disabled for melonDS by running:
paxctl +m melonDS
2021-02-03 16:14:53 +00:00
9994d3a644 Add FreeBSD support (#939)
* 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
2021-01-22 19:20:32 +01:00
1e4c0c9d72 Polish up archive support (#930)
* Fix directory path when extracting from archive

* Don't create new dir in execution dir of melonds
* Create it beside the archive instead

Signed-off-by: Madhav Kanbur <abcdjdj@gmail.com>

* ArchiveUtil : Use QT functions for I/O

* Make it more platform independent, cleaner

* Fixes permission related crash on linux

Signed-off-by: Madhav Kanbur <abcdjdj@gmail.com>

* NDSCart : Abstract out common code in LoadROM()

Signed-off-by: Madhav Kanbur <abcdjdj@gmail.com>

* Extract nds roms to memory

* Some stuff is still broken in the frontend

Signed-off-by: Madhav Kanbur <abcdjdj@gmail.com>

* GBACart : Abstract out common code in LoadROM()

Signed-off-by: Madhav Kanbur <abcdjdj@gmail.com>

* Extract gba roms to memory

Signed-off-by: Madhav Kanbur <abcdjdj@gmail.com>

* Integrate archive support with recent files

Signed-off-by: Madhav Kanbur <abcdjdj@gmail.com>

* onClickRecentFile : Pause emu thread conditionally

* Don't pause at start of the function
* If user opens an archive and hits cancel, it won't pause

Signed-off-by: Madhav Kanbur <abcdjdj@gmail.com>

* Handle Resets when loading from archives

* Ask user to pick the rom(s) again (i.e. GBA & NDS)
when there are multiple files in the archive(s)

* Directly load if only 1 file

Signed-off-by: Madhav Kanbur <abcdjdj@gmail.com>

* Archive support for drag-n-drop

* Also recent files support for drag-n-drop

Signed-off-by: Madhav Kanbur <abcdjdj@gmail.com>

* main : Allocate rombuffer objects on stack

* Less messy, decreases chances of memory leaks

* Underlying implementation of qbytearray uses heap (hopefully?)

Signed-off-by: Madhav Kanbur <abcdjdj@gmail.com>

* GetSavestateName : Archive support

* Construct ssname from srampath (since rompath has archive name)

NOTE: In general, archive name != rom file name !!!!!!!!!!

Signed-off-by: Madhav Kanbur <abcdjdj@gmail.com>

* Add srl and dsi as "direct-load" formats

* Direct-load = anything not in an archive

Signed-off-by: Madhav Kanbur <abcdjdj@gmail.com>

* Don't use static functions

Signed-off-by: Madhav Kanbur <abcdjdj@gmail.com>

* Remove QT stuff from Util_ROM

* Also, during reset, directly load file from archive (no rom picker)

Signed-off-by: Madhav Kanbur <abcdjdj@gmail.com>

* Remove QT includes from FrontendUtil.h

Signed-off-by: Madhav Kanbur <abcdjdj@gmail.com>

* Util_ROM/LoadROM() : Use SetupDSiNAND()

Signed-off-by: Madhav Kanbur <abcdjdj@gmail.com>

* Util_ROM/Reset() : Use strrchr()

Signed-off-by: Madhav Kanbur <abcdjdj@gmail.com>

* Util_ROM : Put Archive stuff behind ifdefs

Signed-off-by: Madhav Kanbur <abcdjdj@gmail.com>

* main: Set parent widget for archive dialog boxes

Signed-off-by: Madhav Kanbur <abcdjdj@gmail.com>

* Revert "Util_ROM/Reset() : Use strrchr()"

This reverts commit c8af6f066f.
2021-01-22 11:22:32 +01:00
bf0ea26596 Add option to hide mouse on inactivity (#955)
Also allow user to specify how long to wait before hiding
2021-01-21 19:48:25 +01:00
e8f06b8ac1 Define melonDS version in CMake
Prevents having to update multiple files (melon.rc, melon.plist, version.h) when a new version is released.
2021-01-19 11:39:25 +00:00
8a1f3d8ce2 Properly fix macOS finding libarchive
(i hope)
2021-01-05 16:22:07 +00:00
6c91157495 Fix libarchive being found on macOS
properly this time
2021-01-04 10:31:57 +00:00
78419dbce1 Allow pkg-config to find libarchive on macOS
macOS already provides the libarchive libraries, so Homebrew doesn't link it.
However, macOS does not provide the headers.
2020-12-19 18:17:06 +00:00
df190b0400 Merge branch 'master' into feature/zip-support 2020-12-19 17:43:53 +00:00
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
8d70d0926c Merge branch 'master' into feature/zip-support 2020-10-23 00:39:29 +01:00
a8851a51f1 Switch to libarchive 2020-10-22 23:41:26 +01:00
0bd53a34ef lay base for the actual dialog
also make EmuSettingsDialog properly modal
2020-08-11 17:38:29 +02:00
240175f274 Update CMakeLists.txt 2020-08-06 14:39:42 +01:00
6d71f9c832 Merge branch 'master' into feature/zip-support 2020-08-05 15:06:15 +01:00
7e5eafe345 Statically link libzip 2020-08-05 14:50:18 +01:00
6a682a8ef0 Link iconv instead of ${Iconv_LIBRARIES} because idk Windows 2020-07-26 22:26:50 +02:00
a1f939e0cb use FindIconv and link it on all platforms when not built in 2020-07-26 22:16:53 +02:00
173e3b037c Link iconv for Windows static builds 2020-07-26 22:08:57 +02:00
b4ad35948d Merge remote-tracking branch 'upstream/slirp' into slirp-merge 2020-07-26 21:41:09 +02:00
c32da212f1 make it possible to static-link libslirp 2020-06-21 15:44:56 +02:00
200c494a55 get this little experiment started
for now all it does is crash
2020-06-04 15:15:09 +02:00
21f1856da2 Fix indentation 2020-06-03 14:54:36 +02:00
6e0425d34e Add missing threads dependency 2020-06-03 14:40:50 +02:00
f9f366e296 Merge remote-tracking branch 'remotes/upstream/master' into feature/qt-platform
# Conflicts:
#	src/frontend/qt_sdl/CMakeLists.txt
#	src/frontend/qt_sdl/Platform.cpp
#	src/frontend/qt_sdl/main.cpp
2020-06-03 13:54:28 +02:00
b27ed541bb blarg 2020-05-30 00:38:31 +02:00
d3dd7bd988 get rid of console in release builds 2020-05-29 21:19:18 +02:00
935f121025 * add options for static linking
* make the vsync checkbox and shit work to some extent (they don't actually function tho)
2020-05-29 21:03:46 +02:00
590ab2ac2b fix things 2020-05-28 22:37:37 +02:00
79d4183ccd re-add OSD system 2020-05-28 18:11:41 +02:00
695839bb0e lay base for video settings dialog 2020-05-28 12:32:50 +02:00
4e34359a80 get the GL shit going 2020-05-25 03:12:09 +02:00
8f9369beeb add screen layout system 2020-05-21 18:43:07 +02:00
f79583bf16 add actual blow-into-mic sample that actually works 2020-05-21 02:33:48 +02:00
108647e033 * add audio settings dialog
* attempt at betterer mic noise that doesn't work worth a damn
2020-05-21 01:39:41 +02:00
700b1a8b9d add window icon 2020-05-20 03:01:09 +02:00
34506ff2bb actually complete the input config dialog 2020-05-19 20:48:52 +02:00
19566178ba begin adding input dialog 2020-05-17 18:33:03 +02:00
2afa70b817 miserable little attempt at adding a dialog 2020-05-17 02:37:23 +02:00
6cfe4faa56 Use Qt abstractions for file I/O and threading on both Windows and Linux. 2020-05-06 03:22:30 +02:00
ffe20c1236 Use Qt abstractions instead of glib's for paths on Linux 2020-05-06 02:39:50 +02:00
aa4344e249 add audio output. HARK HARK HARK 2020-05-02 20:25:39 +02:00
d6efb03248 HARK HARK HARK 2020-04-27 20:59:11 +02:00
d9c55a4f1f fix dumb include path shit. 2020-04-27 15:59:52 +02:00
690f9f3874 get some of the shit going, I guess
atleast the emuthread is going and we have its control system down

and other fun shit, too
2020-04-27 12:06:44 +02:00
439ca1b2b5 get a Qt window showing up. 'tis a start, I guess. 2020-04-25 20:43:09 +02:00
0bdafb6295 finally get this going, I guess 2020-04-25 19:31:19 +02:00
d58c9d4b53 blarg 2020-04-25 18:56:39 +02:00