Commit Graph

2314 Commits

Author SHA1 Message Date
RSDuck 81c284b7cf refactor frontend audio functionality 2023-05-01 02:30:26 +02:00
Nadia Holmquist Pedersen 38b0d21c22
Support loading Zstandard-compressed ROMs (#1667)
This is different from the archive support in that the compressed ROMs
are standalone files, rather than archives, making it possible to use
them exactly as if they were regular ROMs, while saving a bunch of space
on disk. This is supported both for DS and GBA ROMs, though given GBA
ROMs' generally small size it's mostly useful for the former.
2023-04-28 19:19:58 +02:00
RSDuck 4b170b94d5 pointless micro optimisations 2023-04-28 17:05:34 +02:00
Nadia Holmquist Pedersen 3ada5b9bc8 Add the missing extensions we support to the macOS app info
macOS seems to require that we declare the extensions we want to
consider those files to be droppable on the window. Additionally this is
of course needed to show melonDS as a selectable option in the "Open
with" menu and such.

Setting LSHandlerRank to Alternate appears to stop it from suggesting
melonDS as a primary handler for a file type, so we set this for GBA
ROMs and archives as the user would most likely want them always to be
associated with a more relevant app.
2023-04-15 21:02:35 +02:00
RSDuck e8967a937c fix JIT backjump detection
pretty embarrassing to loop variable mixup
2023-04-13 01:49:32 +02:00
RSDuck a864f845e0 fix JIT profiling with VTune 2023-04-13 01:49:32 +02:00
Ed_IT 613280d3b4
DSi power button and volume switch support (#1630)
* Add proper BPTWL interrupts

* Added DSi power button and volume switch hotkeys

* Added hardware reset workaround

* Adjusted syntax to follow guidelines

* Added DSi output volume synchronization

* Fix trivial member function error
2023-04-04 12:31:58 +02:00
DarkOK 350292fb3c
Allow toggling Wayland support (#1654) 2023-04-03 16:02:50 +02:00
RSDuck 41b95b9c8f I'm stupid 2023-03-28 05:29:08 +02:00
RSDuck 5999fddccb comment out JIT debug code 2023-03-28 04:23:36 +02:00
Jesse Talavera-Greenberg b078ca802f
Expose SRAM pointers for frontends that manage save data their own way (#1643)
* Add a clarifying comment

- In case it saves some poor bastard hours of fruitless work

* Expose GBA and NDS save memory

- Add GetSaveMemory and GetSaveMemoryLength functions
- Where unsupported, they return null and zero
2023-03-27 22:36:26 +02:00
Sergio 808292e424
Fixed unhandled error status for LastSep(std::string) (#1645) 2023-03-25 13:15:47 +01:00
Jesse Talavera-Greenberg 79dfb8dc8f
Introduce `Platform::Log` (#1640)
* 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
2023-03-23 18:04:38 +01:00
Gloria 19280cff2d
BIOS/NAND UI changes (#1587)
* Remember the last folder for BIOS files
Add .mmc to the list of NAND filename extensions

* Add .sd file extension for SD images

* Fix UI code according to the review

---------

Co-authored-by: yeah-its-serena <32610623+yeah-its-serena@users.noreply.github.com>
2023-03-20 16:56:14 +01:00
RSDuck 4ba7a2c5e6 tiny refactoring around the input config dialog 2023-03-02 14:41:46 +01:00
RSDuck ca221381e9 gotta blow harder 2023-03-02 08:36:03 +01:00
Nadia Holmquist Pedersen 382155e6fe Add hotkey to toggle screen emphasis
Toggles which screen is emphasized when the screen sizing is set to
emphasize top or bottom. (Closes issue #1565)
2023-02-17 04:33:26 +01:00
UltraHDR 00edeb3c3c Set LSApplicationCategoryType to games
https://developer.apple.com/documentation/bundleresources/information_property_list/lsapplicationcategorytype
Adds it to the games folder in the macOS Launchpad
2023-01-20 12:17:41 +01:00
patata 35f4e504f1
Increase savestate major version (#1567) 2023-01-19 15:11:42 +01:00
patata 105af5cf1a
Update CI badges in readme (#1602)
- See https://github.com/badges/shields/issues/8671
- Change Azure Pipelines macOS badges to the current GitHub Actions
2023-01-19 15:10:27 +01:00
Janfel 3e02d3ff76
Rebase: Make archive detection more robust and add it to the CLI (#1560)
* Rebase/recreate my changes and add MIME support

This commit recreates the changes proposed in #1394 on top of the
current master (b069a2acf1).
This also adds support for determining filetypes using the MIME database
provided by `QMimeDatabase`.

* Move member syntax warning to a more appropriate place

* Deduplicate member syntax warning

* Change warning from "vertical bars" to "|"

* Conform brace placement to coding style

* Fix QFileDialog filter when ArchiveExtensions is empty

* Final cleanup and fixes

- Changes the NDS and GBA ROM MIME-Type constants to QStrings.
- Removes a leftover warning message.
- Uses Type() syntax instead of Type{} syntax for temporaries.

* Explain the origin of the supported archive list

Co-authored-by: Jan Felix Langenbach <insert-penguin@protonmail.com>
2023-01-18 00:49:18 +01:00
RSDuck d83172e595 fix window aspect ratio 2023-01-17 20:00:21 +01:00
RSDuck 8ec8a6ce09 ehhh got that one wrong, now it should be right 2023-01-06 20:17:04 +01:00
RSDuck eadfeec7ab hopefully correct overflow flag for ADC and SBC
also use inline functions instead of macros to make things more neat
2023-01-06 20:11:11 +01:00
RSDuck 86d2e60df7 fix #1593 2023-01-03 18:50:03 +01:00
Rupert Carmichael bd9c614ceb
Wifi: -Wformat warning caused by missing printf argument (#1532) 2022-12-30 21:13:39 +01:00
RSDuck 43d091361e fix #1551 2022-11-25 23:47:36 +01:00
RSDuck 3111431a3f fix #1556 2022-11-14 18:29:44 +01:00
pepper-jelly 5488e0bf3d
prevent screensaver (#1485) 2022-11-11 23:18:28 +01:00
mariomadproductions 88c1371a96
Added LEGO Batman 2 - DC Super Heroes (Canada) (En,Fr) [B6FL] to ROMList (#1422) 2022-11-11 23:08:55 +01:00
Quinn Painter 2256b64fcd
Fix nocash Char Out debug register (#1500)
To match no$gba, this register should output any ASCII character written to it, not print the number as it currently does.
2022-11-11 23:03:17 +01:00
Nadia Holmquist Pedersen b069a2acf1 Clean Windows build instructions
* CMake in MSYS2 now depends on Ninja and uses it by default, use it
  instead of Make as it has much easier to read output when doing
  parallel builds and doesn't need an extra program
* Ninja uses the maximum number of cores by default, so we don't have to
  run nproc --all
* We don't need mesa for its headers anymore
2022-11-09 19:54:35 +01:00
Nadia Holmquist Pedersen 726fde4e8d Explicitly include the build/res directory so windres will find it when
using the CMake Makefile generator
2022-11-09 19:44:07 +01:00
Nadia Holmquist Pedersen 9587d35d1d For some reason this didn't get renamed 2022-11-09 19:02:53 +01:00
Pk11 31a0d7ecd2
Allow import/export of .pub/.prv/.bnr saves (#1558) 2022-11-07 16:03:00 +01:00
Nadia Holmquist Pedersen ca19ea1ce8 Windows resource/manifest fixes
* Report correct Windows architecture for the build in the manifest
* Output processed .rc/.manifest in the CMake binary dir to prevent
  potential issues with the files conflicting if cross compiling melonDS
  on the same Windows machine
* Make the original file name actually make sense
2022-11-06 02:53:51 +01:00
Nadia Holmquist Pedersen 659b7214c7 Use WGL for GL context creation on Windows ARM64 as well.
This may not work, as I'm not sure why the code originally did as it
did. But this at least lets it compile, we'll need someone with a real
Windows ARM device to test this as I only have a VM with no GPU
acceleration.
2022-11-05 22:38:23 +01:00
Nadia Holmquist Pedersen 9a5e884913 JIT: Add bits for Windows ARM64 support 2022-11-05 22:37:27 +01:00
Nadia Holmquist Pedersen c387fb1819 mainWindow may be nullptr when audioMute() is called.
Fixes potential crash on launch when multiplayer audio output is set to only the current window.
2022-11-05 16:57:28 +01:00
Arisotura 430de6b270 BAHAHAHAHAHAJSKASLASJISFS--+|*~+-. 2022-11-03 20:35:21 +01:00
Arisotura 019120ebb8 fix a tidbit with GXFIFO NDMA, I think 2022-11-03 20:22:46 +01:00
Arisotura 4ef2e1f4cc fix up DSi direct boot 2022-10-28 21:31:51 +02:00
patata 561781b954
CLI 2.0: Electric Boogaloo (#1546)
* CLI: begin QT reimplementation

* Add first batch of parameters
* ROM loading (no archives yet)
* --fullscreen
* --boot (non-functional???)

* fix --boot

* archives!

* Add disclaimer that a.zip|b.nds is kind of fucky

* remove shit7 debugging

* Apply requested changes
2022-10-28 12:27:55 +02:00
Arisotura 936011964c comment out semaphore shit in teakra 2022-10-25 00:09:43 +02:00
Nadia Holmquist Pedersen 9e449d902d Make clang shut up about -Wno-error=maybe-uninitialized in teakra 2022-10-23 16:52:18 +02:00
orbea b5017caa33 fatfs: Fix -Wstrict-prototypes + -Wimplicit-function-declaration warnings
This will be required for upcoming gcc and clang versions.

Reference: https://archives.gentoo.org/gentoo-dev/message/dd9f2d3082b8b6f8dfbccb0639e6e240
2022-10-23 16:33:29 +02:00
Arisotura dd74e936ed force-align all read/write accesses. fixes #1540 (unaligned DMA address) 2022-10-22 13:11:57 +02:00
Nadia Holmquist Pedersen b6776bd826 getWindowInfo: handle if the Wayland window handle is null 2022-10-19 00:03:28 +02:00
RSDuck ac3118cbc5
No more context mess (#1531)
* WIP: use Duckstation's context code to directly render into QT Widget from separate thread without two OpenGL contexts

currently only works on Windows

* reenable gay OSD

* add back vsync

* make it atleast a little more thread safe

* linux support

* don't segfault on closing

* reorganise and cleanup build system
it's still not good, but better than before

* macos?

* try to get it working on Ubuntu CI
also update instructions

* let's try this

* ok how about this

* try creating an OGL 4.3 context first
(https://i.kym-cdn.com/photos/images/original/001/264/842/220.png)

* fix Ubuntu

* hm

* try again for Windows

* let's try this

* make the OpenGL renderer work again
that was stupid

* do OGL surface resizing from the mainthread

* Fix small mistake in GL context creation on macOS causing version 3.2 to
be considered invalid

* C stupidness

* cleanup

* don't let the emuthread deinit OGL if there's no OGL

* reset lastScreenWidth/Height when deiniting OpenGL

* disable stencil test while drawing framebuffers

* macOS: Link Cocoa framework explicitly when not building with Qt6

Seems to be needed for the classes used by DuckStation's GL context
code.

* Set ScreenPanelGL's minimum size immediately

Fixes GL context creation for OpenGL display on macOS using the wrong
size as the underlying window was not resized to the correct size by Qt
yet.

* don't emit window updates when OGL display is used

* stuff Arisotura said

Co-authored-by: Nadia Holmquist Pedersen <nadia@nhp.sh>
2022-10-17 22:55:11 +02:00
Arisotura 31ba585d39 more fun DSP fixes
* aac.a thinks it is funny to start DMA by writing to 8184 directly
* implement retd (gross hack!!)
* remove another unimplemented exception (wat)
2022-10-17 20:16:19 +02:00