Commit Graph

226 Commits

Author SHA1 Message Date
2af8e65f23 we prolly don't need to init SDL video, given we don't use it 2022-03-06 10:49:05 +01:00
2c21787f33 fix typo in enum for screen sizing (#1377) 2022-02-25 20:28:21 +01:00
550db94a87 Use enum for screen sizing 2022-02-25 16:35:21 +01:00
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
03b5c48088 lower window update rate if rendering too fast 2022-02-14 00:27:00 +01:00
dff8980a27 Merge branch 'master' of github.com:Arisotura/melonDS 2022-01-09 02:16:03 +01:00
35cc79787d update copyright headers 2022-01-09 02:15:50 +01:00
0a8f3c9344 Make the message when SDL2 fails to init more descriptive 2022-01-08 19:35:21 +01:00
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
dfb2111a00 Fix screen scaling
The screen gap wasn't multiplied by the scaling factor, causing the result to be too low
Additionally, results of division should be rounded up
2022-01-05 21:03:13 +02:00
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
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
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
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
19ddaee13b finally decouple Config from the core. baahhahahahah 2021-11-18 01:17:51 +01:00
d378b0252f Generate a simple non-bootable firmware when not provided. (v2) (#1175)
* Generate a simple non-bootable firmware when not provided.

* Expose Username and Language into settings dialog.

* Add firmware overrides for more settings. Also make override optionals when a firmware is provided.

* Refactor firmware settings into separate dialog.

* use usernameLength instead of u16Username.length() (#3)

* Fix curly braces code-style.

* LoadUserSettingsFromConfig: convert from UTF-8 to UTF-16 via wstring_convert

* Fix firmware username capitalization.

* cleanup firmware backup logic

* Put brace where it should be

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

Co-authored-by: Filippo Scognamiglio <flscogna@gmail.com>
Co-authored-by: kyandora <71771686+kyandora@users.noreply.github.com>
Co-authored-by: Filippo Scognamiglio <filippo.scognamiglio@felgo.com>
Co-authored-by: RSDuck <RSDuck@users.noreply.github.com>
Co-authored-by: Rayyan Ansari <68647953+RayyanAnsari@users.noreply.github.com>
2021-10-02 20:16:27 +02:00
796d603332 Redesign the Input dialog (#1226) 2021-09-30 17:23:25 +00:00
235da420c8 having fun with fatfs (#1189)
* patch TSC coords in DSi mode
* DSiware importer and shit
2021-08-24 17:46:20 +02:00
0d37a0a5fc Call emuPause before loading a ROM so we don't crash if one is already loaded 2021-08-23 10:45:18 +02:00
6ad0e8d61a macOS: Allow opening ROMs with melonDS from Finder. 2021-08-23 10:27:03 +02:00
418b351986 SPU: Emulate SOUNDBIAS and 10-bit degrade 2021-08-17 01:01:15 +02:00
d5a20ad3c8 tidbits 2021-08-08 15:45:44 +02:00
c7325469c2 factor duplicate code in micLoadWav(). also add support for all sorts of WAV formats SDL can support. 2021-08-08 15:32:29 +02:00
bba14b2bb0 fix pissfucking touchscreen (again) 2021-08-08 14:45:16 +02:00
2df6b4fdc3 Audio interpolation (#1176)
add audio interpolation (emulation improvement)
2021-08-08 14:27:57 +02:00
aaa97c9242 only open microphone when actually needed. fixes #1165 2021-07-29 01:19:03 +02:00
ab48461dc5 Merge branch 'master' of https://github.com/Arisotura/melonDS 2021-07-20 19:30:47 +02:00
740071e427 oopsies 2021-07-20 19:30:29 +02:00
fdb6d226fd enable undo savestate load in the gui 2021-07-17 23:30:57 +02:00
e5240a688c Add ROM Header struct and ROM info dialog (#1095) 2021-07-02 16:42:54 +00:00
5b9f972625 UI: detect and save when window is maximized, and restore it as such. fixes #1135 2021-06-20 02:21:48 +02:00
cat
2494058a71 Add "frame step" hotkey and function (#1119) 2021-06-05 21:10:37 +02:00
af36d10023 Explicitly set NoRole on the setup cheats option so Qt on mac will stop stealing it 2021-06-05 14:47:51 +02:00
e48e45db76 frontend: handle tablet and touch events
fixes #654 and #548
2021-05-24 20:23:06 +02:00
eb7bedfc79 Remove outdated frontend solar sensor code (#1102) 2021-05-16 17:18:24 +02:00
d3c298bbe4 ASSFUCKING STUPID SHITPILE.
fixes #1044

(also add separator for cleaner menu)
2021-05-06 00:33:50 +02:00
eae42fb9f8 request repaint instead of update after each frame 2021-04-29 15:13:53 +02:00
cffffa887e macOS: Assign "Preferences..." to emu settings without also removing it from the config menu 2021-04-27 15:11:15 +02:00
a2c12f7e66 fix some more case sensitive shito 2021-04-26 15:50:02 +02:00
bf4052bc3d more of the same (actually fix the bug I was having) 2021-04-26 15:25:45 +02:00
1846a71265 Cart refactor (#1073)
complete cart-interface refactor, will make this code a lot easier to deal with
2021-04-25 00:48:02 +02:00
06e2193c04 Fix up menu roles a bit 2021-04-19 09:18:50 +02:00
284a9b73b0 keep recent filenames from being absurdly long in the menu 2021-03-27 01:54:55 +01:00
436b3c4c1d update copyright year and add missing GPL headers 2021-03-12 20:07:40 +01:00
97643586fa Fix OpenGL display scaling on high DPI (#1011)
* Fix OpenGL display scaling on high DPI

* Scale the OSD too

* Fix indent
2021-02-22 18:17:48 +01:00
0aa0ae6c69 fix #1010 2021-02-22 02:38:21 +01:00
712919ec41 Remove unneeded OpenGL loading function code (#1006) 2021-02-17 20:53:07 +00:00
64c6654d94 use syncs instead of glFinish 2021-02-16 15:00:23 +01:00
d63f7977f8 Remove code duplication in onChangeScreenSize (#968) 2021-02-09 23:42:31 +01:00
a7029aebae Allow for a more modular renderer backends (#990)
* Draft GPU3D renderer modularization

* Update sources C++ standard to C++17

The top-level `CMakeLists.txt` is already using the C++17 standard.

* Move GLCompositor into class type

Some other misc fixes to push towards better modularity

* Make renderer-implementation types move-only

These types are going to be holding onto handles
of GPU-side resources and shouldn't ever be copied around.

* Fix OSX: Remove 'register' storage class specifier

`register` has been removed in C++17...
But this keyword hasn't done anything in years anyways.

OSX builds consider this "warning" an error and it
stops the whole build.

* Add RestartFrame to Renderer3D interface

* Move Accelerated property to Renderer3D interface

There are points in the code base where we do:
`renderer != 0` to know if we are feeding
an openGL renderer. Rather than that we can instead just have this be
a property of the renderer itself.
With this pattern a renderer can just say how it wants its data to come
in rather than have everyone know that they're talking to an OpenGL
renderer.

* Remove Accelerated flag from GPU

* Move 2D_Soft interface in separate header

Also make the current 2D engine an "owned" unique_ptr.

* Update alignment attribute to standard alignas

Uses standardized `alignas` rather than compiler-specific
attributes.

https://en.cppreference.com/w/cpp/language/alignas

* Fix Clang: alignas specifier

Alignment must be specified before the array to align the entire array.

https://en.cppreference.com/w/cpp/language/alignas

* Converted Renderer3D Accelerated to variable

This flag is checked a lot during scanline rasterization. So rather
than having an expensive vtable-lookup call during mainline rendering
code, it is now a public constant bool type that is written to only once
during Renderer3D initialization.
2021-02-09 23:38:51 +01:00