Commit Graph

1688 Commits

Author SHA1 Message Date
Nadia Holmquist Pedersen f85925fcd6 Add 3DS 16:10 aspect ratio and refactor GUI aspect ratio code 2022-05-23 16:59:50 +02:00
Nadia Holmquist Pedersen 94b33c924e
Modernize CMake build system (#1434)
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
2022-05-21 19:54:55 +02:00
Nadia Holmquist Pedersen 4cc34121b0 Update teakra (fixes #1441) 2022-05-13 20:31:24 +02:00
Nadia Holmquist Pedersen ed2121d7ec Accomodate top/bottom only lzyout when setting screen size 2022-04-20 15:50:01 +02:00
Arisotura 529a690089 fix potential issues with 32bit GPU writes 2022-04-10 15:11:30 +02:00
Arisotura 0294bcb5f2 add support for the mainRAM mirror at 0x0C000000 in DSi mode, makes SM64DSi work correctly 2022-04-10 14:54:40 +02:00
Arisotura b572d8cd70 add support for GXFIFO NDMA 2022-04-10 02:15:49 +02:00
Arisotura 0feed13cc4 close gaps in VRAM mapping 2022-04-09 19:40:35 +02:00
Arisotura 86f725f2f2 master brightness has different biases (are you serious, Nintendo)
also add all these biases to the OpenGL compositor
2022-04-08 01:08:19 +02:00
Arisotura f6a55354fa remove some cruft 2022-04-08 00:34:07 +02:00
Arisotura 879695070a make blending/fade accurate too (not quite sure about the 3D one) 2022-04-01 13:57:28 +02:00
Arisotura 1dfcf2010a Merge branch 'master' of github.com:Arisotura/melonDS 2022-04-01 12:54:58 +02:00
Arisotura d296f2832c make display-capture blending accurate to hardware 2022-04-01 12:54:47 +02:00
Nadia Holmquist Pedersen 02b859ad9d Disable firmware overrides UI when override checkbox isn't checked 2022-03-28 00:55:18 +02:00
Arisotura 5ca8728cbf save WFC settings when using default firmware. fixes #1401, also fixes #1336 2022-03-22 23:21:45 +01:00
Arisotura 599deeb2b8 default firmware: in DSi mode, emulate more compatible DWM-W015 instead of DWM-W024 2022-03-20 18:13:32 +01:00
Arisotura 709a5980ed FreeBIOS: add VRAM-compliant LZ77 decompressor. fixes #1353 2022-03-14 19:42:30 +01:00
Arisotura 3756f3cb1f make invalid SPI memory commands return 0xFF. fixes #1366 (Dementium II checks the results of RDSR, RDID and cmd 00 to determine what kind of backup memory is present) 2022-03-14 18:08:29 +01:00
Arisotura 5415f8a746 what. 2022-03-14 11:51:10 +01:00
Arisotura d8f87df2b7 DISPCAPCNT is writable at any time 2022-03-14 01:09:07 +01:00
Arisotura fb7bea06f8 fix some gaps in the SPI/cart implementations 2022-03-14 00:27:03 +01:00
Arisotura f7fa0dda50 * support patching multiple DLDI interfaces
* fix the DLDI size entry
fixes the Smash demo
2022-03-12 21:52:29 +01:00
Arisotura cce9de5ee1 BLARG 2022-03-08 14:42:02 +01:00
Arisotura fe96944fc0 insert wacky commit message 2022-03-08 12:03:16 +01:00
Arisotura 2eec033c72 save battery levels to config 2022-03-07 21:08:54 +01:00
Arisotura 532b1c967a fix up the power management dialog 2022-03-07 21:08:54 +01:00
Arisotura 9394dde67a fix copyright headers 2022-03-07 21:08:54 +01:00
Rayyan Ansari 2569c67a13 Add support for changing the DS and DSi battery level
The DS battery level is configured via the SPI Power Management Device,
and the DSi's is configured via the I2C BPTWL. Add support for changing
these registers and add the "Power Management" dialog in the UI.
2022-03-07 21:08:54 +01:00
Pk11 c3adf6f606
Improve DSiWare save creation (#1375) 2022-03-07 21:08:29 +01:00
2jun0 c66df57256
Implement MainRAM management dialog😁 (#1248)
* Implement MainRAM management dialog

* Modify RAMInfoDialog

- use emuThread to avoid a race condition.
- replace RAMUpdateThread to QTimer

Co-Authored-By: RSDuck <RSDuck@users.noreply.github.com>

* Update src/frontend/qt_sdl/RAMInfoDialog.cpp

small typo

Co-authored-by: Rayyan Ansari <68647953+RayyanAnsari@users.noreply.github.com>

* Update src/frontend/qt_sdl/RAMInfoDialog.h

small typo

Co-authored-by: Rayyan Ansari <68647953+RayyanAnsari@users.noreply.github.com>

* typo errors in RAMInfoDialog

Rrevious->Previous

* add new line to the end of the file

Co-authored-by: Rayyan Ansari <rayyan@ansari.sh>

* enable raminfo when cart is inserted

* Modify that only the 'value' item can be edited in RAMinfoDialog

* fix: function name incorrect error

* fix: function name incorrect error2

* fix: wrong way to get ram value

Co-authored-by: RSDuck <RSDuck@users.noreply.github.com>
Co-authored-by: Rayyan Ansari <68647953+RayyanAnsari@users.noreply.github.com>
Co-authored-by: Rayyan Ansari <rayyan@ansari.sh>
2022-03-06 22:33:11 +01:00
Nadia Holmquist Pedersen 088d49b9cb macOS: Use Qt 6 by default 2022-03-06 20:12:20 +01:00
Nadia Holmquist Pedersen b1565ec87a macOS: Bump minimum version to 10.15 2022-03-06 20:06:11 +01:00
Arisotura 2af8e65f23 we prolly don't need to init SDL video, given we don't use it 2022-03-06 10:49:05 +01:00
Arisotura ef7dfb8872 fix the GBA cart save shito, I guess 2022-03-04 20:54:45 +01:00
Rayyan Ansari f4f6f6dfc5
InputConfig: change Group Box titles to Labels
On GNOME, the Group Box's titles don't align with the text in the buttons.
This commit removes the Group Box titles and instead uses Labels to fix this.
2022-03-04 17:52:49 +00:00
Brankale 2c21787f33
fix typo in enum for screen sizing (#1377) 2022-02-25 20:28:21 +01:00
RSDuck 550db94a87 Use enum for screen sizing 2022-02-25 16:35:21 +01:00
ZackWeinstein e3ad78e84f
Allowing Swap screens hotkey to swap between displaying only top screen and only bottom screen. (#1283) 2022-02-25 15:58:31 +01:00
RSDuck bb67e186df comment out debug printfs 2022-02-25 14:35:45 +01:00
RSDuck 0a1fb5ae50 Wifi power saving, hopefully enough! 2022-02-25 14:25:19 +01:00
RSDuck 03b5c48088 lower window update rate if rendering too fast 2022-02-14 00:27:00 +01:00
Arisotura 0761fe736f add support for zero-address in AR codes 3-A 2022-01-28 20:56:08 +01:00
Arisotura 915edd777e hopefully fix #1349 2022-01-24 12:16:39 +01:00
Nadia Holmquist Pedersen 2bda2f127b nifi: Set SO_REUSEPORT on BSD and macOS to prevent creation of socket failing 2022-01-12 20:40:39 +01:00
Arisotura dff8980a27 Merge branch 'master' of github.com:Arisotura/melonDS 2022-01-09 02:16:03 +01:00
Arisotura 35cc79787d update copyright headers 2022-01-09 02:15:50 +01:00
Nadia Holmquist Pedersen 0a8f3c9344 Make the message when SDL2 fails to init more descriptive 2022-01-08 19:35:21 +01:00
Arisotura 10d7831917 can we, please, FINALLY, be done with this stupid issue 2022-01-08 12:53:06 +01:00
Arisotura 5c719a774f fdsfdfdgdfgfgdfg 2022-01-08 12:18:24 +01:00
Arisotura 80564ba947 explicitly eject the cart before a load with reset, preventing a spurious cart-eject IRQ on startup
also fix possible KEY1 issues when using internal BIOS
2022-01-08 11:20:21 +01:00
Arisotura e665e25bd3
Custom path support (#1333)
also including:
* getting rid of shitty strings
* all new, cleaner ROM handling code
* base for DSi savestates
* GBA slot addons (for now, memory cart)
2022-01-07 14:00:43 +01:00
Charlene Campbell c4cd9da674 don't link rt when oglrenderer disabled on apple 2021-12-29 18:28:27 +01:00
Nadia Holmquist Pedersen f39eeeb9dd
title import: create all title/ subdirectories 2021-12-18 02:56:27 +01:00
Nadia Holmquist Pedersen 203cf5164b Create ticket subdirectory if missing during title import 2021-12-16 06:33:32 +01:00
Nadia Holmquist Pedersen f1c9b42b45 ScreenPanelNative: Don't try to render the framebuffer if the emulator is not actually active.
This fixes an issue where the window draws with a gray background in macOS, and is see-through on Wayland-based desktops.
2021-12-09 01:57:02 +01:00
Nadia Holmquist Pedersen 14c6bba21f Manually center the window after setting its size on macOS
Qt's default window positioning is somewhat unreliable, and since we
don't currently remember the window position, let's at least make sure
that it's properly centered on open.
2021-12-09 01:21:06 +01:00
andrigamerita 151610eb6c
Treat SDL_INIT_JOYSTICK fail as non-critical (#1277)
Treating the fail of SDL_INIT_JOYSTICK as non-critical, because on some systems that SDL feature can for some reason fail. This leads to the emulator closing with a critical error, even though it would work perfectly fine with just a keyboard.
2021-12-01 13:52:58 +01:00
Arisotura 3300cc8f15 really, Arisotura? 2021-11-28 13:36:00 +01:00
Arisotura 44757a8323 SPU: block reads from ARM7 BIOS region. fixes #1267 (and prolly whatever other stupid game tries to play sound from NULL) 2021-11-25 16:49:43 +01:00
Arisotura c04e43702c SPU: correctly read negative ADPCM initial values. fixes #1261 2021-11-23 18:47:54 +01:00
Arisotura 97e599f90f what. 2021-11-22 18:59:49 +01:00
Arisotura e24a4e5e97 ensure shit doesn't asplode atleast until this code is redone 2021-11-21 16:12:07 +01:00
Arisotura 333b1247d9 remove remains of SDIOFile 2021-11-21 16:05:48 +01:00
Arisotura 73d7bada87 add valid wifi data to the default firmware 2021-11-20 13:22:20 +01:00
Arisotura 8100b6da6b ASGYHFDUHDIUIHSJODHSIJDHSIYGDHSJKDSDSDSDSD 2021-11-20 12:16:59 +01:00
Arisotura 7a0286a43d make firmware settings override also apply in DSi mode 2021-11-20 12:09:13 +01:00
Arisotura 593eb7c81c hopefully fix Qt6 2021-11-19 17:03:45 +01:00
Arisotura 1472a0ec4b move 'randomize MAC' setting to firmware settings, and add setting for changing the MAC.
make things overall betterer.
2021-11-19 13:31:14 +01:00
Arisotura 1fc775d964 better suited entry method for the firmware birthday 2021-11-18 20:24:37 +01:00
Arisotura 08eda46706 fix potential crash with firmware dialog (when closing dialog via X and opening it again) 2021-11-18 18:25:19 +01:00
Arisotura f73df85d1c make external-BIOS toggle also explicitly control external firmware
make things a tad more consistent and explicit
2021-11-18 18:17:48 +01:00
Arisotura 19ddaee13b finally decouple Config from the core. baahhahahahah 2021-11-18 01:17:51 +01:00
Arisotura 65c2a844ac oops 2021-11-17 23:23:22 +01:00
Arisotura e8bae0e146 what 2021-11-17 23:09:42 +01:00
RSDuck 3be26f456b prevent out of bounds write 2021-11-17 22:59:28 +01:00
Arisotura d5b248bb86 decouple more config shit from the core. bahahah 2021-11-17 21:44:49 +01:00
Arisotura 13afaa0303 remove some more shitty strings 2021-11-17 20:57:30 +01:00
Arisotura 5bb8f4c922 * remove more Config dependencies from the core
* also use less shitty strings
2021-11-17 20:42:11 +01:00
Arisotura 69715043ca blfdlkgdfgdf 2021-11-17 18:41:59 +01:00
Arisotura c1dcd585be decouple JIT from Config. bahahahahah 2021-11-17 18:15:50 +01:00
Arisotura 53dfcfb18a nicerer firmware color picker
also consistency aaaaaaaaaa
2021-11-17 14:53:46 +01:00
Arisotura c6d1977448 UI consistency!!!! 2021-11-10 23:59:54 +01:00
Arisotura 3fad5dcbbb make the firmware dialog consistent with the rest of the UI 2021-11-08 20:57:26 +01:00
RSDuck c233d99211 dtcm not dtcb 2021-10-29 12:09:00 +02:00
RSDuck 6c2ea93173 get rid of DTCMSize 2021-10-29 01:35:47 +02:00
Arisotura 635a47014f fix more bugs in the DLDI machine 2021-10-29 01:33:37 +02:00
Arisotura cca5615748 add the PU checks. bahahahah 2021-10-29 00:36:55 +02:00
Arisotura ead8d1b629 more UTF8 shenanigans huh 2021-10-28 23:51:25 +02:00
Arisotura 8b59c73c01 also don't try to save if there's no folder to sync to 2021-10-28 23:48:20 +02:00
Arisotura d25102a9c8 don't explode if the folder-sync path points to a non-existing folder 2021-10-28 23:45:14 +02:00
Arisotura c532059cd3 oops! 2021-10-28 22:45:23 +02:00
Arisotura 15a66b1be1 more accurate DTCM check 2021-10-28 22:41:42 +02:00
Arisotura 43daa1c7d2 blarg 2021-10-28 21:24:39 +02:00
Arisotura e121953c9a more complete (and accurate) CP15 setup for direct boot 2021-10-28 21:15:12 +02:00
Arisotura bfe50e41b4 MCR/MRC aren't available in user mode 2021-10-28 19:47:26 +02:00
Arisotura 9d82826cdb fix some gaps in CPU modes
* non-defined CPU modes are actually possible
* bit4 of all PSRs is forced to one (modes 00-0F aren't possible)
* modes 14/15/16 and 18/19/1A share a SPSR with modes 17 and 1B respectively (but they don't share the register banks)
* modes 10 and 1C/1D/1E don't have a SPSR (MRS returns the CPSR always)
2021-10-28 19:45:32 +02:00
Arisotura ae489d9e03 zarg 2021-10-28 18:55:22 +02:00
Arisotura ff3f661bb5
DLDI/SD folder-sync apparatus (#1251)
guess we can finally have DLDI that isn't obtuse
2021-10-28 18:47:13 +02:00
scurest a8613af2bd
InputConfigDialog: more DRY (#1238) 2021-10-10 22:51:08 +02:00
Nadia Holmquist Pedersen a9fc0adf96
Move resources to res/ directory (#1204)
* Move resources to res/ directory and update CMake scripts accordingly

Co-authored-by: Rayyan Ansari <68647953+RayyanAnsari@users.noreply.github.com>
2021-10-03 09:37:33 +00:00