Commit Graph

2276 Commits

Author SHA1 Message Date
Jaklyy
4f3b99f5c4 fix another crash + bug w/ scanline delay 2023-12-25 15:26:48 -05:00
Jaklyy
ee3e38aed3 fix bottom scanline bugging out
use a method of tracking progress through rendering that's less prone to me messing it up
2023-12-25 13:10:32 -05:00
Jaklyy
f239d0cf0d fix a crash and scanlines being incorrectly partially read 2023-12-24 20:27:24 -05:00
Jaklyy
fb5b2c299c new feature: crashes 2023-12-24 17:39:33 -05:00
Jaklyy
c05c79321a it works again! 2023-12-23 22:24:09 -05:00
Jaklyy
bf26b6817d partially rendering 2023-12-23 21:26:49 -05:00
Jaklyy
78da2846e6 wip - rewrite 3 - scheduler edition 2023-12-23 00:38:39 -05:00
Jaklyy
a338ef1c8a Merge remote-tracking branch 'upstream/master' into RDLines 2023-12-21 18:14:39 -05:00
RSDuck
084747abc5 Reset DS object directly after creation 2023-12-21 22:15:12 +01:00
RSDuck
ed650f2b46 call Reset on 3D renderer object 2023-12-21 21:43:57 +01:00
Jaklyy
6cee0a7ad7 no idea how that one slipped in 2023-12-20 23:15:07 -05:00
Jaklyy
8cc42490de fix build but also sw renderer crashes now 2023-12-20 21:54:03 -05:00
Jaklyy
4c2e03af53 Merge branch 'master' of https://github.com/melonDS-emu/melonDS into RDLines 2023-12-20 20:55:35 -05:00
Nadia Holmquist Pedersen
fd3c349735 Check Q_OS_UNIX define instead 2023-12-20 21:38:55 +01:00
Daniel Simon
6c6318b63b Fix generic icon when using Wayland 2023-12-20 21:38:55 +01:00
Jesse Talavera
01f8ad009e
Wrap the EnableJIT initialization in an #ifdef (#1922) 2023-12-20 14:25:49 +01:00
Jaklyy
1054011c90 wip 2023-12-19 22:52:54 -05:00
Jesse Talavera
4b4239de62
Set NDS::EnableJIT in the constructor (#1921) 2023-12-19 15:15:35 +01:00
Jesse Talavera
1bec2a9293
Fix an incorrect use of std::move (#1919)
- When I adapted `GBACart::ParseROM` to use `unique_ptr` instead of a plain pointer, I forgot to remove the code that copied the SRAM data
- That code was made unnecessary because of the move
2023-12-16 00:05:43 +01:00
Jesse Talavera
eedb0ba478
Add a call to std::move that I missed (#1917) 2023-12-15 20:52:35 +01:00
Jesse Talavera
e1821d0023
Simplify the SRAM's representation in NDSCartArgs (#1914)
* Simplify the SRAM's representation in  `NDSCartArgs`

- I overthought this one.
- I could've just checked `args && args->SRAM`, but then some other poor bastard might make this mistake.
- Don't mix `pair`, `optional`, and `unique_ptr` all at once, kids.

* Fix a `nullptr` read
2023-12-15 14:56:10 +01:00
Jesse Talavera
24c402af51
Fix detection of native NDS ARM BIOS images (#1910)
* Fix detection of native NDS ARM BIOS images

- Instead of checking for built-in BIOS images, now the altered methods check for native ones
- The CRC32 must match exactly; patched BIOS images will result in `false`

* Encapsulate `NDS::ARM9BIOS` and `ARM7BIOS`

- Also compute the checksum only when setting the BIOS
2023-12-15 14:54:41 +01:00
Jesse Talavera
c867a7f1c0
Make the initial 3D renderer configurable via NDSArgs (#1913)
* Allow 3D renderers to be created without passing `GPU` to the constructor

* Make the initial 3D renderer configurable via `NDSArgs`

* Fix a compiler error
2023-12-15 14:53:31 +01:00
Adrian Siekierka
6f47c9ed4c
Support emulating R4 Revolution/M3DS Simply cartridges. (#1854)
* Support emulating R4 Revolution/M3DS Simply cartridges.

* NDSCartR4: Write state information to savestate file.

* NDSCart: Use strncmp instead of strcmp for R4 detection.

* NDSCartR4: stylistic improvements

* NDSCartR4: rudimentary Ace3DS support

* NDSCartR4: fix boot when firmware enabled

* NDSCartR4: Fix for namespace changes

---------

Co-authored-by: RSDuck <RSDuck@users.noreply.github.com>
2023-12-15 08:19:53 +01:00
Jaklyy
2217a34d39 misc improvements 2023-12-14 23:00:12 -05:00
Jaklyy
a46316d71f improved timings for the first 50 scanlines 2023-12-14 15:18:39 -05:00
Jesse Talavera
9bfc9c08ff
Sprinkle const around where appropriate (#1909)
* Sprinkle `const` around where appropriate

- This will make it easier to use `NDS` objects in `const` contexts (e.g. `const` parameters or methods)

* Remove the `const` qualifier on `DSi_DSP::DSPRead16`

- MMIO reads can be non-pure, so this may not be `const` in the future
2023-12-12 11:07:22 +01:00
Jaklyy
24eecec50f implement first draft of improved timing structure 2023-12-12 00:01:26 -05:00
Jaklyy
2cba2e783a
fix default emu settings tab (#1912) 2023-12-12 00:04:04 +01:00
Nadia Holmquist Pedersen
81219a9f5d Fix some conflicts with windows.h in some configurations
Fixes build in the MSYS2 Clang/ClangARM64 environments.
2023-12-11 10:59:05 +01:00
Jaklyy
0d6a8e0fb9 ok this one actually works 2023-12-10 19:22:30 -05:00
Jaklyy
2bf033e0bc optimize per pixel timing counting 2023-12-10 18:51:00 -05:00
Jaklyy
785fab024f dont use templates
bigger code <<< slower code
2023-12-10 13:03:54 -05:00
Jaklyy
63a39b130e refactor framebuffers to be more similar to hw
allows for emulation of niche scanline glitches
2023-12-10 12:18:46 -05:00
Jaklyy
c45d3320d0 tentative timings for "empty" polys scanlines, fix swapped polys breaking 2023-12-09 15:56:36 -05:00
Jaklyy
92ca04e479 i forgot i changed those-- oops
no wonder edge marking was broken
how did this even still work
2023-12-09 10:58:23 -05:00
Jaklyy
447cd50422 holds true when slopes are vertical and y > 50 2023-12-09 08:54:13 -05:00
Jaklyy
8e2c9cbff6 wip initial draft 2023-12-09 08:54:13 -05:00
RSDuck
082310d5d5 hopefully reset all GPU3D attributes properly 2023-12-08 23:42:08 +01:00
Nadia Holmquist Pedersen
6949100446 Fix GBA<->DS comm not working when using FreeBIOS
Thanks CasualPokePlayer for pointing this out
2023-12-08 18:34:38 +01:00
Nadia Holmquist Pedersen
5ef35a4ccf Don't try to poke at the header on deinit if MPQueue is nullptr 2023-12-08 17:39:56 +01:00
Nadia Holmquist Pedersen
890a66c0eb I'm sick of this interfering with debugging 2023-12-08 17:27:06 +01:00
Jesse Talavera-Greenberg
5dac65f52e Fix some minor instances of undefined behavior 2023-12-08 17:19:00 +01:00
Jesse Talavera-Greenberg
bbecab6cb0 Correctly use the refactored JitEnableWrite 2023-12-08 17:19:00 +01:00
Jesse Talavera-Greenberg
72d4eba477 Rearrange some #includes 2023-12-08 17:19:00 +01:00
Jesse Talavera-Greenberg
7cef13031f Add some headers that were transitively included by the JIT 2023-12-08 17:19:00 +01:00
Jesse Talavera-Greenberg
399a6af91c Move some constants to MemConstants.h 2023-12-08 17:19:00 +01:00
Jesse Talavera-Greenberg
53e5aa6298 Exclude JIT-related declarations more aggressively 2023-12-08 17:19:00 +01:00
Jesse Talavera-Greenberg
733769303c Add override to the ARM64 JIT's destructor 2023-12-08 17:19:00 +01:00
Jesse Talavera-Greenberg
582a421447 Don't set the JIT args if the JIT is off 2023-12-08 17:19:00 +01:00