Jaklyy
9cf065e54f
idk
2024-10-09 17:47:08 -04:00
Jaklyy
6e30cf3bfb
functional write buffer prototype
2024-10-09 17:46:50 -04:00
Nadia Holmquist Pedersen
216b8e045d
fix audio interpolation setting range
2024-10-07 11:28:58 +02:00
RSDuck
30441fed24
do not restore fullscreen state from saved geometry
2024-10-06 19:00:54 +02:00
RSDuck
aa443c8846
fix #2083 and minor cleanup
2024-10-06 17:33:03 +02:00
RSDuck
f13c70d028
fix blow noise input
...
(microphone input takes signed values)
2024-10-01 19:52:10 +02:00
Jaklyy
286de74666
Merge branch 'less-ambitious-timing-rework' into chemical-x
2024-09-29 22:43:38 -04:00
Jaklyy
c62f0f1244
Merge branch 'interpreter-fixes' into less-ambitious-timing-rework
2024-09-29 22:42:40 -04:00
Jaklyy
19e0b18d15
Merge remote-tracking branch 'upstream/master' into interpreter-fixes
2024-09-29 22:41:52 -04:00
Jakly
e9446fa9dc
implement 3 configurable and toggleable framerate targets ( #2159 )
...
This pr allows for configuring the framerate target and adds support for two other framerate targets, a "fastforward" and "slowmo" target which can be enabled via either a toggle or holding a button.
this allows for supporting a more accurate framerate target and allows for users to slow down the speed of gameplay if they so desire
2024-09-29 09:30:13 +02:00
Jaklyy
a11208ec6d
oops
2024-09-24 21:02:17 -04:00
Jaklyy
3065141ed7
probably not faster
2024-09-24 17:04:52 -04:00
RSDuck
2eb6d44c2c
prevent use after free through focusOutEvent when window is closed
2024-09-24 20:08:07 +02:00
Jaklyy
e1d4fbef75
i can't reproduce this anymore
2024-09-24 09:47:32 -04:00
Jaklyy
7fb18b1155
clean up code
2024-09-23 20:03:58 -04:00
Jaklyy
3b73f21bb7
str r15 is incremented by +2/+4 oop
2024-09-23 16:12:23 -04:00
Jaklyy
8af790beee
ldm/str with empty rlist
2024-09-23 15:00:35 -04:00
Jaklyy
7b0d71dbbe
Revert T bit changing support for arm7
...
i cannot comprehend what is happening currently
2024-09-22 19:57:33 -04:00
Jaklyy
8d451dff48
misaligned pc..........
2024-09-20 23:47:40 -04:00
Jaklyy
157e9c5b04
reimplement changing t bit with arm7
...
kinda slow though?
2024-09-20 13:37:58 -04:00
Jaklyy
7afa805afc
slightly better code
2024-09-20 05:37:51 -04:00
Jaklyy
c133814713
some day i will remember to test before pushing
2024-09-20 04:39:16 -04:00
Jaklyy
45f87a1c8d
prevent t bit changes without pipeline flush on arm7
...
idk what's happening fully and its gonna be slow to emulate most likely
we'll figure this out later
2024-09-19 21:02:54 -04:00
Jaklyy
6ebabde392
implement changing thumb bit. and bkpt ig
...
probably wrong
2024-09-19 04:37:01 -04:00
CasualPokePlayer
2179ca2a41
Set the correct save type for Puzzler World USA ( #2156 )
...
Fixes #1804
2024-09-18 20:58:55 +02:00
Jaklyy
89e8549a55
implement comparison instrs w/ rd == 15
2024-09-17 21:01:02 -04:00
Jaklyy
e5654ec541
r15 mrc mrs
2024-09-16 17:50:09 -04:00
Jaklyy
e2f3dd1e6f
clarify
2024-09-16 14:34:03 -04:00
Jaklyy
ac8c942565
sat add/sub also fail to jump
2024-09-16 13:17:38 -04:00
Jaklyy
3b9a9e4eb3
multiply instructions can't write to r15
2024-09-16 10:23:15 -04:00
RSDuck
7ac2eb2d71
attempt at fixing Windows build
2024-09-15 07:38:28 +02:00
RSDuck
a3d696121e
rework gdb packet parsing
...
it should be a bit more robust now
2024-09-15 07:30:53 +02:00
Jaklyy
f2a02abd16
Merge branch 'interpreter-fixes' into less-ambitious-timing-rework
2024-09-13 13:51:12 -04:00
Jaklyy
a0d71135a1
very minor optimization attempt
2024-09-13 07:33:18 -04:00
Jaklyy
c5ac682f04
improve data abort handling further
2024-09-12 18:25:54 -04:00
RSDuck
74f479ce6d
gdb stub config setup fixes
2024-09-11 14:41:22 +02:00
Jakly
f719438a6e
Improve calculation of light colors ( #1967 )
...
* maintain precision until all lights are calculated
fixes lugia on the soul silver title screen
* small optimization
* small note
* small cleanup/notes
shouldn't need to check that every time, since the variable shouldn't be able to overflow
* hw doesn't cap difflevel at 255
Should it cap at all?
Can vtx colors overflow...?
* diffuse level appears to be shifted right by 9
fixes some minor inaccuracies
* improve specular lighting a little
* small improvement to diffuse lighting
fixes a few off by ones
- finding by azusa
* small tweaks
* handle overflows of diffuse lighting properly
-credits to azusa once more
* attempt at improving specular lighting calcs
still far from correct, but its a start.
fixes: https://github.com/melonDS-emu/melonDS/issues/1545
* meh
* improve specular lighting further
* add notes
* theory: add half vec instead of subt 1
* implement azusa's specular lighting algorithm
* fix minor edge case with spec lighting
* give proper credit in comments
* fix some bugs/misc tweaks
* more quirky overflow/underflow handling
* fix a spec lighting edgecase
remove some redundant parentheses
* fix an edge case with light vector calcs
* spec recip uses a different calc for light dir?
also remove a check that shouldn't be mathematically possible to trigger
* nvm that thing i thought couldn't trigger was required
also move reciprocal calc into the light vector calc function since i might as well now ig
* replace a bunch of stuff with much *much* simpler algorithms
* misc cleanup
PARENTHESES WOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
* leave a note abt shininess table's default value being incorrect
2024-09-10 16:13:51 +02:00
Jaklyy
cacaf0ec7c
make it work
2024-09-08 12:05:10 -04:00
Jaklyy
53cc0378b1
Merge branch 'pr/1955' into chemical-x
2024-09-08 11:41:11 -04:00
Jaklyy
bd1d1c5c5e
fix thumb "no fetches"
2024-09-08 11:10:31 -04:00
Jaklyy
41db7b9df6
fix main ram adding cycles twice if code and memory region are the same
2024-09-07 13:45:33 -04:00
Nadia Holmquist Pedersen
268c4f14c1
vcpkg: support building on Linux
2024-09-06 22:50:12 +02:00
Jaklyy
ceb5a9febe
draw (most of) the rest of the owl
2024-09-06 03:59:59 -04:00
Jaklyy
299713e412
basic arm9 set up
2024-09-05 09:13:46 -04:00
Jaklyy
7cfc4b5849
ARM7: vram is 32 bit?
2024-09-02 07:35:49 -04:00
Jaklyy
2d081a6e02
improve arm7 timings
2024-09-01 18:03:32 -04:00
Jaklyy
f0bd2b9051
Merge remote-tracking branch 'upstream/master' into interpreter-fixes
2024-08-30 19:33:16 -04:00
Jaklyy
0003821738
apparently i never tested this
2024-08-28 22:04:22 -04:00
Jaklyy
685c4828a2
try not forgetting about stores lol
2024-08-28 13:45:46 -04:00
Jaklyy
be290da23c
de-duplicate swp(b)
2024-08-27 17:23:18 -04:00
Jaklyy
a9aad74539
implement user mode load/stores
2024-08-26 20:43:27 -04:00
Jaklyy
f692e7391a
the docs lied to me (again)
2024-08-26 19:48:42 -04:00
Jaklyy
40e8e8e7bd
rework single load/stores to use a shared instruction
2024-08-24 11:46:23 -04:00
Alex
4f6498c99c
Fix "Ejected GBA cart" not adding a newline ( #2140 )
2024-08-21 13:39:34 +02:00
Jesse Talavera
824eb370e4
Fix the build when the JIT is disabled ( #2139 )
2024-08-19 15:21:34 +02:00
Arisotura
0e6235a7c4
LAN: remember player name and max players setting
2024-08-15 13:34:27 +02:00
Arisotura
5b986d3111
wifi: add hack to facilitate multiplayer connections (extend post-beacon interval when connection is being initiated)
2024-08-14 16:47:08 +02:00
Nadia Holmquist Pedersen
c6cab9ed41
mac-libs.rb: Make bundling a bit smarter
...
* Resolve symlinks to avoid including the same thing twice (like
version-numered dylib symlinks)
* Look in all Qt prefix paths for plugins - the package may not
necessarily have the same path
* reduce install_name_tool invocations to make it a bit faster
* change dylib IDs to remove original source path
2024-08-13 07:53:09 +02:00
Nadia Holmquist Pedersen
5598065985
Netplay.cpp should not include main.h, also fix a format warning
2024-08-11 03:14:14 +02:00
Arisotura
8d31875902
Backport LAN ( #2131 )
...
backport the old LAN feature to the modern melonDS codebase.
2024-08-10 23:20:50 +02:00
Nadia Holmquist Pedersen
ec71b15505
Add a Nix flake ( #2097 )
...
Adds a Nix flake, allowing easy building and running of melonDS using the Nix package manager, as well as potentially very stable and reproducible CI in the future.
2024-08-08 05:36:06 +02:00
Nadia Holmquist Pedersen
53c58bd777
fix potential issue with glib shim min/max defines
2024-08-07 17:49:29 +02:00
Nadia Holmquist Pedersen
4359bccfcb
fix the slirp shit some more
2024-08-07 17:45:56 +02:00
Nadia Holmquist Pedersen
b47563e888
Apply FixInterfaceIncludes to the slirp package again to work around
...
package inconsistencies
2024-08-07 17:28:25 +02:00
Nadia Holmquist Pedersen
a174901412
fix building with system libslirp
2024-08-07 17:24:07 +02:00
Nadia Holmquist Pedersen
8423dae6ff
Add "Open melonDS directory" menu option
2024-08-07 15:53:58 +02:00
Jaklyy
332a39dbaf
fix JIT being borked
2024-08-05 16:14:17 -04:00
Jaklyy
a85b2bfb56
tweak when irqs are triggered and fix prefetch aborts
...
also ig add some comments next to the svc funcs so that someone searching for "swi" can find them easier
2024-08-05 14:57:17 -04:00
Jaklyy
eedd2806f9
Reapply "Improve accuracy of prefetch aborts"
...
This reverts commit 0dc619d615
.
2024-08-05 12:37:42 -04:00
Jaklyy
0dc619d615
Revert "Improve accuracy of prefetch aborts"
...
This reverts commit 587958e678
.
2024-08-05 11:41:25 -04:00
Jaklyy
587958e678
Improve accuracy of prefetch aborts
...
comes with a small-ish performance hit
2024-08-04 23:31:20 -04:00
Jaklyy
fe69cfac7d
Merge remote-tracking branch 'upstream/master' into interpreter-fixes
2024-08-04 21:28:32 -04:00
RSDuck
dd386d12a9
use templates to only execute GDB stub related code if enabled
2024-08-05 03:23:49 +02:00
Jaklyy
346ac1380f
forgot to remove a thingy when removing timing reworks
2024-08-04 15:21:23 -04:00
Jaklyy
ab2a8f128f
revert timing tweaks, finish thumb interwork code
2024-08-04 14:54:36 -04:00
Jaklyy
4b703d24b5
improve msr timings for arm9
2024-08-03 16:22:14 -04:00
Jaklyy
2e421e29e3
cache should be disabled when pu is disabled
2024-08-03 16:21:17 -04:00
Jaklyy
3c936d84b3
improve mrs, mrc timings
2024-08-03 16:20:50 -04:00
pants64DS
76c2723f5c
Fix console output on Windows ( #2122 )
...
Co-authored-by: pants64DS <pants64DS@users.noreply.github.com>
2024-08-02 02:21:37 +02:00
CasualPokePlayer
757a608b6e
Fix a few compiler warnings ( #2063 )
2024-08-01 23:26:46 +02:00
Jakly
54e87c915f
fix a couple polygons ( #1920 )
...
hw prioritizes the earlier vertex instead of leftmost
2024-08-01 22:55:00 +02:00
Jakly
12be06beb6
fix gdb stub causing the emulator to hang on undefined instructions ( #2054 )
...
* dont hang on undefined instruction
* Add spaces
---------
Co-authored-by: Kemal Afzal <RSDuck@users.noreply.github.com>
2024-08-01 22:48:52 +02:00
Jakly
161bd9d3d2
Default zero dot display register to the 24 bit integer limit ( #1968 )
...
* 0 dot disp defaults to the 24 bit integer limit
* useless correction
it goes through the reset function to set the variable on boot anyway but why not have the initialized state be correct too
2024-08-01 22:46:05 +02:00
Jakly
d0a7239f15
fix some bugs with compressed texture look up ( #2051 )
2024-08-01 22:44:04 +02:00
Jakly
29c67f2140
implement 16 bit r/w IF and DISPCAPCNT ( #2061 )
2024-08-01 22:41:21 +02:00
Jesse Talavera
327ce45124
Refactor network implementations to be more reusable and less buggy ( #2107 )
...
encapsulate network interfaces
2024-08-01 22:02:45 +02:00
Jesse Talavera
c6bf5d5181
Allow `AREngine` to be used independently of `ARCodeFile` ( #2108 )
...
* Make `EmuInstance::cheatFile` use a `unique_ptr`
- Fixes a memory leak, as the cheat file wasn't cleaned up in the destructor
* Split `AREngine` and `ARCodeFile` apart
- Suitable for frontends that have their own way of storing cheats
- Store the cheats in `AREngine` in a `std::vector`
- Apparently cheats are _supposed_ to be executed each frame; I didn't understand this until recently
2024-08-01 22:01:00 +02:00
Nadia Holmquist Pedersen
f3f6a6a194
Fix building on i686 Linux
...
I doubt anyone actually cares about support for it but hey may as well?
2024-08-01 21:57:32 +02:00
pants64DS
37c0320cbe
Fix an inaccuracy with the No$gba debug registers 04fffa14 and 04fffa18 ( #2119 )
...
Writing to either of the two registers would print one newline too many
Co-authored-by: pants64DS <pants64DS@users.noreply.github.com>
2024-07-31 01:13:06 +02:00
RSDuck
b778fbaad1
attempt at correct utf8 decoding for toml config file path
2024-07-30 17:48:41 +02:00
Nadia Holmquist Pedersen
01c2d65f07
Explicitly include QModernWindowsStylePlugin in static builds
...
I hope this'll make it look right.
2024-07-30 03:10:01 +02:00
RSDuck
12563fb636
use platform file functions for savestates and NAND importing file check
...
should fix character encoding issues on Windows
2024-07-29 00:15:19 +02:00
Nadia Holmquist Pedersen
d31eabb6fa
Don't disable firmware settings controls when override external firmware
...
settings is disabled
2024-07-27 16:56:29 +02:00
Jesse Talavera
837a582087
Expose some fields of `DSi_BPTWL` needed to support direct boot ( #2103 )
...
expose boot flag
2024-07-21 17:23:19 +02:00
Jesse Talavera
821f5f5f29
Allow frontends to use different headers for OpenGL declarations ( #2102 )
2024-07-21 17:02:31 +02:00
BueniaDev
9b828c2cde
Implement Rumble Pak support. ( #2101 )
2024-07-21 17:01:30 +02:00
Jaklyy
7cd50e7b56
fix some multiply timings
2024-07-19 17:56:43 -04:00
Jaklyy
13578a3cc9
Revert "improve timings for S variants of multiply instructions on arm9"
...
This reverts commit 789ef21c70
.
2024-07-19 17:52:28 -04:00
Jaklyy
36f4f2c5d3
Revert "improve timings further"
...
This reverts commit 764ee9ea1a
.
2024-07-19 17:52:26 -04:00
Jaklyy
4f6db5a173
Merge remote-tracking branch 'upstream/master' into jump-after-writeback
2024-07-17 21:42:21 -04:00
Nadia Holmquist Pedersen
5eadd67df6
EmuInstance: Use GetLocalFilePath to get the wfcsettings path
...
Fixes the file being created in the current working directory.
2024-07-17 15:44:47 +02:00
Nadia Holmquist Pedersen
4b17de7e8c
Fix annoying Qt touch event deprecations for real this time
2024-07-15 14:37:37 +02:00
Nadia Holmquist Pedersen
71f4d7b222
deviceType doesn't exist in Qt5 apparently
2024-07-15 14:04:40 +02:00
Nadia Holmquist Pedersen
6d2ad2a3f0
Ignore touch events originating from trackpads
...
Fixes multi-finger gestures causing spurious touch screen presses
Also fix some deprecations when we're at it anyway
2024-07-15 13:57:21 +02:00
Arisotura
2031f491f0
fix some Qt6 bugs (buttonClicked -> idClicked)
2024-07-15 13:00:40 +02:00
Arisotura
d92c9fcd90
do not immediately create a core when creating an EmuInstance. fixes some nasty potential bugs. watch out for bugs this may introduce though...
2024-07-15 12:57:18 +02:00
Jesse Talavera
94ba7c1594
Split networking code into its own target ( #2091 )
2024-07-14 17:03:21 +02:00
Jaklyy
764ee9ea1a
improve timings further
2024-07-13 09:35:12 -04:00
Jaklyy
789ef21c70
improve timings for S variants of multiply instructions on arm9
...
behavior seems to be a quirk of the way they made the interlock cycle mandatory
2024-07-12 23:11:46 -04:00
Jaklyy
4fcd52ed16
someday i will learn to test things before pushing them
2024-07-11 20:19:25 -04:00
Jaklyy
038ffa3a35
revert the *entire* interlock implemention
...
too slow, not accurate enough.
we need to do a *lot* more research into the specifics of how this works with all the various aspects of the cpu's timings before we can make a good implementation
2024-07-11 20:08:35 -04:00
Jaklyy
1fdac1d489
...why am i checking for dtcm?
2024-07-11 16:18:55 -04:00
CasualPokePlayer
a812a43bda
Fix various issues with firmware generation ( #2058 )
2024-07-11 15:55:06 +02:00
OverdueWeevil2
a82b5758bc
Update EmuInstance.cpp ( #2090 )
2024-07-11 13:48:27 +02:00
Jaklyy
e2be0b4f93
actually no it was not more correct
...
undo previous commit because actually code cycles *do* matter
2024-07-07 15:42:10 -04:00
Nadia Holmquist Pedersen
b55eb431bd
ensure that we actually link the OpenGL library on macOS
2024-07-07 13:45:45 +02:00
Nadia Holmquist Pedersen
1302cbdd64
frontend: Restore linear interpolation for audio output resampling
...
Also, do it smarter this time. This seems to have gone missing with the
doublemelon merge.
2024-07-07 08:19:49 +02:00
Jaklyy
383750692e
doesn't really matter but idk it's more correct?
2024-07-06 12:38:39 -04:00
Jaklyy
0f02c0bbba
disable interlock emulation again again
...
our understanding of how it works is just too incomplete to be worth implementing yet
2024-07-06 12:14:35 -04:00
Jaklyy
ea429a1b8d
improve interlock emulation
...
add cycles to the instruction execution time rather than the timestamp directly.
2024-07-04 12:58:58 -04:00
Jaklyy
bd1665c1d3
minor timing tweaks
2024-07-04 12:41:09 -04:00
Jaklyy
a549977eb0
fix clz for realsies
2024-07-04 11:04:38 -04:00
Antonio Niño Díaz
25b5ac91bd
Fix horizontal mosaic on sprites ( #2084 )
...
The code itself is correct, but the variable being read is the Y mosaic
coordinate, not the X coordinate.
2024-07-04 00:24:29 +02:00
Jaklyy
0060958fed
Merge remote-tracking branch 'upstream/master' into jump-after-writeback
2024-07-03 15:26:58 -04:00
RSDuck
613569a2ab
append newline to nocash logging
...
makes behaviour consistent with no$gba
2024-07-02 19:09:32 +02:00
Nadia Holmquist Pedersen
4e3592f2d4
Fix loading GBA carts
...
UpdateConsole forgot to reinsert it when messing with the NDS.
2024-07-02 08:18:44 +02:00
Nadia Holmquist Pedersen
f2611680ca
EmuInstance: check consoleType from NDS rather than the instance's when
...
updating console, fixes crash on console type switch
EmuInstance::consoleType is already updated, so the check for whether we
should recreate the NDS to switch console type never succeeds.
2024-07-02 06:23:21 +02:00
Jaklyy
88e5584b5f
fix clz r15
2024-06-27 15:33:24 -04:00
Jaklyy
c5b035a973
SWP and SWPB use the same behavior as STR on the ARM9
2024-06-25 11:20:01 -04:00
Jaklyy
541e1e6388
proper timings for ldr/str
2024-06-25 09:08:11 -04:00
Jaklyy
dbe00e72dd
improve stm timings
...
need to verify if they apply to all store instructions
2024-06-24 22:50:04 -04:00
Jaklyy
109bbed3d0
improve ldm timings
...
I believe this also applies to other loads as well, but currently untested.
2024-06-24 20:22:38 -04:00
Jaklyy
3583d8222f
disable interlock emulation, needs more research
2024-06-24 16:17:04 -04:00
Jaklyy
f1b71fe5a9
implement configurable vram bus width
...
not implemented for direct boot
2024-06-24 16:15:04 -04:00
Nadia Holmquist Pedersen
db20771ef3
slirp: Add -fvisibility=hidden to glib stub
...
On Linux, our stubbed glib functions were conflicting with the ones from
real glib, which gets used by Qt when we're running on a GTK-based
desktop. Avoid a crash by not exposing them.
2024-06-24 05:25:00 +02:00
Jaklyy
e6ba4075b9
correct interlocked reg for umlal
2024-06-18 11:12:05 -04:00
Nadia Holmquist Pedersen
cbb0f4b872
Tell the compiler that we want wrapping signed arithmetic
...
The core relies on this and without -fwrapv there will be rendering
issues on some targets. Thanks CasualPokePlayer for noticing this.
2024-06-18 15:51:08 +02:00
Arisotura
e234385c20
OpenGL: add support for changing BG0HOFS midframe. fixes #2072
2024-06-18 13:11:42 +02:00
Jaklyy
c5258d6377
verify interlocks for alu and load/store
...
remove some checks for interlock that im pretty sure can't trigger
2024-06-17 18:07:53 -04:00
Arisotura
626d2379bc
* fix default for audio volume
...
* add default bools for battery settings
2024-06-17 14:51:32 +02:00
Jaklyy
a9e2c7e047
implement two regs i missed
2024-06-16 23:24:20 -04:00
Jaklyy
f00f1f6ca4
im smart
2024-06-16 20:50:42 -04:00
Jaklyy
5b37ca70d1
implement correct/guess interlocks for remaining instructions
2024-06-16 20:47:01 -04:00
Jaklyy
debaaa0425
fix performance regression for disabling interlock emulation path
2024-06-15 21:16:12 -04:00
Jaklyy
449557624d
don't do interlocks for the arm7
2024-06-15 18:37:31 -04:00
Jaklyy
a973c0bf5b
initial implementation of interlock cycles
2024-06-15 16:07:36 -04:00
Nadia Holmquist Pedersen
eb2bd73c7d
ensure teakra is always static linked even in dynamically linked builds
2024-06-15 21:31:23 +02:00
Arisotura
ae44ba2475
blarg
2024-06-15 21:01:27 +02:00
Arisotura
649462ff5c
fix more bugs and crap
2024-06-15 20:57:26 +02:00
Arisotura
890dc4f228
fix other bugs with these regexes
2024-06-15 19:23:18 +02:00
Arisotura
d449888405
fix up the regexes in Config.cpp
2024-06-15 19:10:28 +02:00
Arisotura
ccc5c955e9
fix one potential crash bug
2024-06-15 17:42:26 +02:00
Arisotura
8fc403cdad
update copyright headers
2024-06-15 17:01:19 +02:00
Arisotura
25a7b1ca1d
merge doublemelon ( #2067 )
...
non-exhaustive (but exhausting) list of changes:
* base laid for multiple window support, but will likely require more work to work correctly
* encapsulation of frontend state for proper multi-instance support
* (JIT still needs a fix for the NDS::Current workaround but we can get there later)
* new, more flexible configuration system
2024-06-15 13:52:47 +02:00
Jaklyy
aa1217af0a
track interlock cycles for the ALU
2024-06-14 11:47:42 -04:00
Jaklyy
5a174a2ce3
track interlock cycles for load instructions
2024-06-14 00:51:55 -04:00
Jaklyy
42218106b0
verify writable msr bits
2024-06-11 10:30:30 -04:00
Jaklyy
048b0b8878
swp/swpb jumps work on the arm 7?
2024-06-10 18:03:56 -04:00
Jaklyy
3ddccde5b9
verified
...
also remove no longer needed variable
2024-06-10 13:23:18 -04:00
Jaklyy
ca04710deb
ldrd is just ldm
2024-06-09 22:31:10 -04:00
Jaklyy
ae0824fdd3
it all makes sense now...
2024-06-09 19:10:43 -04:00
Jaklyy
b90d5c2320
what the actual F*** is going on
2024-06-09 12:18:31 -04:00
Jaklyy
be60c68aeb
more weirdness
2024-06-09 07:25:42 -04:00
Jaklyy
b846c6f100
remove out of date comments
2024-06-08 22:17:07 -04:00
Jaklyy
849d4e51ac
imma be real, i have no idea what is going on here
2024-06-08 22:12:44 -04:00
Jaklyy
659763f903
clarification
2024-06-08 16:15:02 -04:00
CasualPokePlayer
8e9b88d01d
Actually generate DownscaleFramebuffer ( #2059 )
2024-06-08 20:48:42 +02:00
Jaklyy
3699768ac9
most cpsr bits can't actually be updated (or at least can't be read?)
2024-06-08 14:01:54 -04:00
Jaklyy
5f97dfc1ab
fix bits fixed to 0 for pu region sizing being set
2024-06-08 10:53:22 -04:00
Jaklyy
8191f92bb6
mcr is also affected
2024-06-08 10:42:19 -04:00
Jaklyy
0c887202e7
fix some more instructions?
2024-06-08 10:40:23 -04:00
Jaklyy
73507621f5
idk why it took me two tries to get these instructions to work properly
2024-06-07 23:50:31 -04:00
Jaklyy
2b0ed459e1
fully implement r15 stores being +12 of addr
2024-06-07 23:46:49 -04:00
Jaklyy
bd3611b51d
unaligned registers with strd/ldrd raise an exception
2024-06-07 20:43:02 -04:00
Jaklyy
8bc7e4591c
thumb ldmia/pop data aborts
2024-06-06 19:05:28 -04:00
Jaklyy
d6cd189455
rework data abort handling for ldm/stm; implement thumb stmia+push
2024-06-06 18:58:43 -04:00
Jaklyy
13ae96b4e3
simple thumb instructions (untested but probably right)
2024-06-05 14:32:12 -04:00
Jaklyy
7c3108e20f
handle swp instruction aborts
2024-06-05 14:31:44 -04:00
Jaklyy
1871c48849
fix double data aborts with strd
2024-06-05 10:28:51 -04:00
Jaklyy
317a8c61e5
data abort handling for (almost) all (arm) instructions
...
full list: strb, ldrb, strh, ldrd, strd, ldrh, ldrsb, ldrsh
2024-06-05 00:14:14 -04:00
Jaklyy
1e8194e367
fix ldr and str
2024-06-04 19:06:54 -04:00
Jaklyy
c2a57b79a0
fix stmd(a/b) writeback
2024-06-02 22:41:01 -04:00
Jaklyy
5e760a1536
slightly cleaner code
2024-06-02 19:34:29 -04:00
Jaklyy
b5c1ee33fb
implement stm
2024-06-02 10:33:29 -04:00
Jaklyy
63d4b78733
improve implementation
2024-06-02 10:13:50 -04:00
Jaklyy
960f063eaa
improve data aborts for ldm
2024-06-02 00:11:01 -04:00
Jaklyy
065573f316
fix writebacks overwriting registers swapped with spsr
...
fixes gbarunner3
2024-05-31 18:09:45 -04:00
Nadia Holmquist Pedersen
a72b79a55a
that needs to be public actually
2024-05-15 19:43:34 +02:00
Nadia Holmquist Pedersen
cfc49eb286
Revert slirp dynamic/static check, and make it not use dllimport/export
...
when building statically
2024-05-15 19:37:14 +02:00
Nadia Holmquist Pedersen
d21bc64cb3
MinGW build portability fixes
...
AKA you can build melonDS for Windows on Fedora now
2024-05-15 18:57:49 +02:00
Nadia Holmquist Pedersen
a2406e3c0e
Vendored libslirp ( #2045 )
...
Add vendored libslirp into the repo with a shim to remove its dependency on glib.
2024-05-15 18:00:55 +02:00
Nadia Holmquist Pedersen
5ab8161a21
Prevent turning on compute renderer on macOS
2024-05-14 11:39:06 +02:00
RSDuck
442661747e
add assert to make sure all shaders were compiled
2024-05-14 04:09:20 +02:00
RSDuck
5df83c97c7
bump up compute shader renderer tile amount factor to 16
...
also why did I think DS could render 4096 polygons? Use that extra bit for larger work offset
2024-05-13 19:15:48 +02:00
RSDuck
347f4a79fd
Fix division by zero
2024-05-13 17:23:05 +02:00
RSDuck
043244a56d
Compute shader renderer ( #2041 )
...
* nothing works yet
* don't double buffer 3D framebuffers for the GL Renderer
looks like leftovers from when 3D+2D composition was done in the frontend
* oops
* it works!
* implement display capture for compute renderer
it's actually just all stolen from the regular OpenGL renderer
* fix bad indirect call
* handle cleanup properly
* add hires rendering to the compute shader renderer
* fix UB
also misc changes to use more unsigned multiplication
also fix framebuffer resize
* correct edge filling behaviour when AA is disabled
* fix full color textures
* fix edge marking (polygon id is 6-bit not 5)
also make the code a bit nicer
* take all edge cases into account for XMin/XMax calculation
* use hires coordinate again
* stop using fixed size buffers based on scale factor in shaders
this makes shader compile times tolerable on Wintel
- beginning of the shader cache
- increase size of tile idx in workdesc to 20 bits
* apparently & is not defined on bvec4
why does this even compile on Intel and Nvidia?
* put the texture cache into it's own file
* add compute shader renderer properly to the GUI
also add option to toggle using high resolution vertex coordinates
* unbind sampler object in compute shader renderer
* fix GetRangedBitMask for 64 bit aligned 64 bits
pretty embarassing
* convert NonStupidBitfield.h back to LF only new lines
* actually adapt to latest changes
* fix stupid merge
* actually make compute shader renderer work with newest changes
* show progress on shader compilation
* remove merge leftover
2024-05-13 17:17:39 +02:00
Nadia Holmquist Pedersen
c85a2103bb
Allow adding a suffix to the displayed melonDS version
2024-05-11 22:40:45 +02:00
Nadia Holmquist Pedersen
35cea5e1d7
Fix zstd ROM loading issues
...
* fix use-after-free of inContent
* don't try to free the DStream twice
2024-05-04 18:16:24 +02:00
Jakly
6112aa120a
Pu region sizing/bounds fix ( #2024 )
...
* fix the pu region's end point overflowing
According to gericom it cannot overflow at all
* set a minimum and a better maximum for the pu region size
* fix pu logging
* PU regions with a size of 31 always take up the entire address space
also tweak some logging a little more
* start is actually force aligned by size, oops
* small tweaks
* hopefully more clear code
* math is for nerds
2024-05-02 17:44:59 +02:00
RealAstolfo
84474105e2
ssize_t is not defined in stddef.h ( #1999 )
...
i had to add sys/types.h and patch my gentoo ebuilds for a successful compilation.
2024-04-18 13:40:38 +02:00
Rayyan Ansari
5a852cb00d
ROMManager: optimise ROMIcon function
...
Precompute all 16 5-bit RGB palette colours into 8-bit RGBA to avoid
repeated and superfluous calculation within the nested loop at the
point of index lookup.
A speedup was observed, from ~7ms, to a consistent 1ms
(i.e. now practically instantaneous) through timing with
std::chrono::high_resolution_clock.
Also improve comprehensibility, by using meaningful names, where
appropriate, for loop counter variables.
2024-04-16 23:39:22 +01:00
Arisotura
95adc87f6d
wifi: try ignoring MP frames if not engaging in MP comm
2024-04-13 12:17:16 +02:00
Arisotura
8feeee6103
Input: only check joystick input if a joystick actually exists
2024-04-12 20:02:16 +02:00
Arisotura
d99c571f94
FATStorage: make sure to always properly unmount the volume (fixes evil bug)
2024-04-12 19:43:02 +02:00
Arisotura
111dc7a563
wifi improvements:
...
* implement channels
* rework power-down support, fixing bugs
* fix bug when W_BeaconInterval is zero
* fix potential missing IRQs when writing to W_IE
2024-04-12 17:28:51 +02:00
Arisotura
0b87dd5fa6
fix touchscreen bug on Wayland
2024-04-09 12:54:31 +02:00
Arisotura
968bd26d85
fix generation of instance-unique MAC address when using an external firmware
2024-04-09 11:38:38 +02:00
Jesse Talavera
31a7f53282
Fix a crash when using DSi mode in debug builds on macOS ( #1976 )
...
Store the BIOS images in `NDSArgs`/`DSiArgs` through pointers, not directly
- This will make it easier to keep such objects on the stack
2024-03-13 14:55:20 +01:00
RSDuck
ea1755bed0
call Start again NDS object after Reset
...
fixes issue where game doesn't properly start after changing settings
2024-03-12 09:23:20 +01:00
RSDuck
5fdd285c9a
fix aarch64 build
2024-03-12 08:41:42 +01:00
RSDuck
18d1df606f
fix #1959
...
Use QT again for opening file so that we don't depend on locale
2024-03-12 08:35:56 +01:00
Nadia Holmquist Pedersen
b117bb8f58
that should be 0x8000
2024-03-08 16:59:31 +01:00
Nadia Holmquist Pedersen
faf3c0f2e0
Add Gaussian (SNES) audio interpolation
...
Probably not a good choice for most DS games unless you really want a
very soft sound, but it could be fun if you wanted to run lolSnes in
melonDS :p
2024-03-08 16:36:00 +01:00
Nadia Holmquist Pedersen
e227902cec
Util_Audio: use basic linear interpolation
...
Should remove the artifacts caused by the previous nearest
resampling. May be worth replacing with something better in the
future, but this is an improvement for now.
2024-03-03 16:58:59 +01:00
Nadia Holmquist Pedersen
67ca4997e2
Release all keyboard keys on focus loss ( fixes #1987 )
2024-02-25 14:25:50 +01:00
Nadia Holmquist Pedersen
21e2a876ec
build teakra's test_generator.cpp only if building its unit tests is
...
enabled
speeds up builds a bit
2024-02-24 01:47:04 +01:00
λP.(P izzy)
9430502b16
fix malloc on OpenBSD targets ( #1979 )
2024-02-20 03:33:39 +01:00
Jaklyy
a8429af131
dont make a save file on launching a game ( #1974 )
...
avoids the issue of saves being created for roms that dont use save files.
2024-02-13 20:17:29 +01:00
DesperateProgrammer
9ad2ff3675
Merge branch 'melonDS-emu:master' into mem9_timings
2024-02-13 09:54:53 +01:00
Luca D'Amico
646ed3cb32
Add Haiku (BeOS-like OS) support ( #1858 )
2024-02-07 23:15:30 +01:00
Jaklyy
5ffa642980
Check for write permissions for some key files ( #1972 )
...
* check if an nds save file can be opened for writing
also add the ability to open a file in append mode
* fix multi-instance saves
also move the check for file writability into a separate function (probably uneeded?)
* implement check for gba roms
* move rom load error messages into the functions
also finish gba slot (oops)
* improve error string
* check write perms before saving path settings
* fix memory leak
* check for writability of firmware/nand/sds
* add secondary checks for nand/firmware
* add check for config file being writable
* Return the file write error as a QString to avoid the invalid char*
causing a garbled error message.
Qt wants it as QString either way.
2024-02-07 23:04:36 +01:00
Nadia Holmquist Pedersen
a7575ec7b3
Allow the user to choose the UI theme
...
Mainly useful for those who want dark mode on Windows.
2024-02-07 20:20:54 +01:00
DesperateProgrammer
b2d196cd64
Formatting corrections
...
Removed premature optimization and replaced them with [[(un)likely]]
2024-02-07 08:10:27 +01:00
DesperateProgrammer
01bb5f1fe2
Enabled Overlapping region fix again
2024-02-06 11:17:23 +01:00
DesperateProgrammer
4164687bd2
Fixed an issue with caclulating DTCM/ITCM masks after addr was declared constant
...
Encapsuled the cache features in #if to disable the features via compile flags
2024-02-06 10:18:53 +01:00
DesperateProgrammer
a8306f2aa0
Removed some debug remains
...
Updated documenting comments for the DCacheClear* methods
2024-02-06 08:29:01 +01:00
DesperateProgrammer
129a3e0535
Added write-back ability in addition to write-through for the data cache
2024-02-06 08:19:05 +01:00
DesperateProgrammer
97aabe0f4f
Merge branch 'melonDS-emu:master' into mem9_timings
2024-02-05 12:41:41 +01:00
DesperateProgrammer
4b20c1bc0f
Added more documenting comments
...
Replaced mogic values with named constants
Added const specifier to some argument and subsequent calls
2024-02-05 12:30:39 +01:00
DesperateProgrammer
d5a351aefe
Added more documenting comments
2024-02-04 13:56:03 +01:00
DesperateProgrammer
b1637e25a4
Added more function documenting comments
...
Added const properties to the CP15Write/Read functions
2024-02-04 12:48:06 +01:00
DesperateProgrammer
2a385b5277
Cleaned up some more magic numbers
...
Fixed a bug causing overlapping protection regions priority not taken into account, when access permission or cachability bits were changed only on the least priority overlap
2024-02-04 12:31:57 +01:00
DesperateProgrammer
f9a831e446
Removed Thumb Check on CP15 Access restriction as MCR/MRC are not present in thumb
2024-02-03 16:20:40 +01:00
DesperateProgrammer
02d6fbacf6
Added several doxygen-style comments for documentation
2024-02-02 14:43:23 +01:00
Jesse Talavera
d48e5f2da0
Fix DSiWare detection ( #1969 )
...
- According to GBATek, all DSiWare games have a high title ID of 0x00030004
- Some homebrew apps set the Unitcode bits to DSi mode to enable support of DSi features
2024-02-01 14:36:35 +01:00
DesperateProgrammer
c0075404fd
Included the I/DCache Streaming disable bits in cache lookup
2024-02-01 13:25:07 +01:00
DesperateProgrammer
9fa814b68e
Added check of op1 in MCR/MRC
...
Fixed Cache Debug registers were accessible, when op1 != 3 in MCR/MRC instructions
Added BIST Test Status register and its cache linefill disable bits
2024-02-01 13:15:03 +01:00
DesperateProgrammer
81c9434116
Added CP15 Trace Process ID
2024-02-01 12:01:16 +01:00
DesperateProgrammer
c8204a8c63
Further clean up, removal of magic numbers from CP15.cpp
...
Split the cp15 constants into CP15_Constants.h instead from MemConstants.
2024-02-01 08:36:52 +01:00
DesperateProgrammer
06ea3f68ec
Cleaned up and fastened up
2024-01-31 12:20:41 +01:00
Nadia Holmquist Pedersen
7dd4152d67
Add MaxFPS setting
2024-01-26 13:06:32 +01:00
DesperateProgrammer
1dc15a0d07
Simplified set selection adjustment for the cache lock down
2024-01-26 10:09:10 +01:00
DesperateProgrammer
caa90dd5ac
Changed DCache Random Cache-Line selection to a double Galoise LFSR
2024-01-26 09:21:08 +01:00
DesperateProgrammer
a0f4eb691b
Fixed Typo and missing file on the cache type constants
2024-01-25 12:12:31 +01:00
DesperateProgrammer
cd60c13ea1
Replaced Magic numbers in CP15 cache type register
2024-01-25 12:09:17 +01:00
DesperateProgrammer
6959d6f2b0
Added privilege checks for reading & writing CP15 cache registers
2024-01-25 11:52:37 +01:00
DesperateProgrammer
8a0ad8ac3f
Added permission checks to CP15 Cache register write operations
2024-01-25 11:44:26 +01:00
DesperateProgrammer
3c94802704
Removed magic number from Cache Fill timings.
2024-01-25 11:05:58 +01:00
DesperateProgrammer
bf0767b4f3
Added CP15 prefetch routine
2024-01-25 10:48:04 +01:00
DesperateProgrammer
028b674352
Merge branch 'melonDS-emu:master' into mem9_timings
2024-01-25 10:24:05 +01:00