Commit Graph

2341 Commits

Author SHA1 Message Date
Jaklyy d88b46e6d9 rework and fix bursts 2024-10-27 14:30:29 -04:00
Arisotura 12b207d915 remember which windows are opened 2024-10-27 18:49:17 +01:00
Arisotura e42829ea81 pause emu during file select prompts 2024-10-27 17:21:41 +01:00
Arisotura 238c552599 limit to 4 windows, and disable 'new window' menu item when that amount is reached 2024-10-27 16:26:29 +01:00
Arisotura d79d45a117 properly sync up menus between windows of a same instance 2024-10-27 16:21:09 +01:00
Arisotura 94955aee81 fix another OpenGL bug (when closing secondary window) 2024-10-27 14:51:11 +01:00
Arisotura f2dce621ce proof all dialogs against use-after-free when closing main window while a dialog is open 2024-10-27 14:24:59 +01:00
Arisotura a61754bb58 fix possible crash when closing window while video settings dialog is open 2024-10-27 13:53:12 +01:00
Arisotura 6d345cc1ea correctly propagate video settings changes to all windows 2024-10-27 13:43:26 +01:00
Arisotura e576538268 synchronize pause/unpause across all instances 2024-10-27 11:21:30 +01:00
Arisotura e6f0d77aa0 fix freeze when starting new emu instance while using OpenGL 2024-10-27 10:17:59 +01:00
Arisotura 24ca1a5fdb lay base for keeping config in sync across multiple instances 2024-10-27 10:02:57 +01:00
Gess1t 2bf0eb7ead
Handle failure of OpenGL context creation (#2172) 2024-10-27 09:20:51 +01:00
Arisotura 2d561a60c8 fix Qt5 compatibility (sdffdf) 2024-10-27 09:16:46 +01:00
Arisotura 4ae4397547 properly update display type across all windows
(remind me to also propagate changes across instances)
2024-10-27 02:42:27 +02:00
Arisotura b2ae4c7dc5 lay base for a window with no menubar 2024-10-27 02:07:33 +02:00
Arisotura 881a740cab start actually implementing multi-window feature, still rough around the edges
fix crash when closing main window if sub windows are involved

fix OpenGL context handling, still need to fix when changing display type
2024-10-27 01:14:29 +02:00
Jaklyy ca674b6372 "fix" icache linefill disable timings 2024-10-26 18:42:31 -04:00
Citrodata f375099613
Update EmuThread.h (#2171)
* Update EmuThread.h

Add missing include QVariant. This fixes and error when building on Arch.

* Update AboutDialog.cpp
2024-10-26 23:03:36 +02:00
Jaklyy ba904b4d81 redo cache streaming disable implementation 2024-10-26 11:24:15 -04:00
Jaklyy e1f22bd511 writing back dirty cache lines should be done in one burst if both halves are dirty 2024-10-25 23:58:18 -04:00
Jaklyy e783e778eb fix an oopsie
3-2 (unsigned) equals "oh no"
2024-10-25 19:35:58 -04:00
Jaklyy ebb63dcdb2 implement dcache streaming 2024-10-25 18:53:22 -04:00
Jaklyy d31f652fc8 implement icache streaming 2024-10-25 18:15:54 -04:00
Arisotura 1d284f6f1e as promised, reroute dropEvent() through EmuThread 2024-10-25 16:16:23 +02:00
Arisotura fc3c7440d1 fix that crash 2024-10-25 12:33:04 +02:00
Arisotura 979f1ed615 same shit with Import Savefile 2024-10-25 10:52:47 +02:00
Nadia Holmquist Pedersen 8b6628b070 Work around Qt windows11 theme menu bar padding 2024-10-25 01:15:59 +02:00
Nadia Holmquist Pedersen 287f6642fc
Add an About dialog with build info (#2138)
add About dialog
2024-10-24 22:05:30 +02:00
Arisotura 75e6856af4 route savestate stuff through EmuThread 2024-10-24 19:27:45 +02:00
Arisotura 3fc065d72d fix ROM preloading to also go through EmuThread 2024-10-24 17:48:34 +02:00
Arisotura 1787235e09 fix more shit
now it doesn't shit itself on startup if the BIOS paths are wrong
2024-10-24 17:20:14 +02:00
Arisotura 13b4cea171 move screen layout/etc options to new View menu 2024-10-24 16:08:04 +02:00
Arisotura 1666049531 fix shit 2024-10-24 14:00:11 +02:00
Arisotura 6d3ea6a485 fix bug with the GBA addon menu (and make it a proper list so we don't have to hardcode the length all over) 2024-10-24 13:49:43 +02:00
Arisotura 079341f102 take this a bit further 2024-10-24 11:44:21 +02:00
Arisotura 82f38f0b7a start moving ROM/firmware loading to the emuthread to avoid cursed bugs 2024-10-24 00:27:05 +02:00
Arisotura 1428bfb2cf fix one of the cursed bugs 2024-10-23 20:33:31 +02:00
Arisotura d68b58f37e fix DSi wifi hang 2024-10-23 14:55:02 +02:00
Arisotura b993ec10cd remove "Test" menu item 2024-10-23 11:57:37 +02:00
kaitou e5501e555f
fix: set default mode to 24 hours (#2166) 2024-10-22 20:13:55 +02:00
Jaklyy 54dd4e5913 git hates me 2024-10-21 13:15:15 -04:00
Jaklyy e93381dfa4 Merge branch 'less-ambitious-timing-rework' into chemical-x 2024-10-21 12:31:54 -04:00
Jaklyy af09e37d53 attempt at twl timings
also rework main ram's early finish handling
2024-10-21 11:38:26 -04:00
Jaklyy 744f5c9fcd small fixes 2024-10-19 16:51:40 -04:00
Jaklyy a32d59774e Merge branch 'less-ambitious-timing-rework' into chemical-x 2024-10-19 12:35:39 -04:00
Jaklyy e254ac3240 fix ldrd/strd itcm timings 2024-10-19 12:35:27 -04:00
Jaklyy 8fff17f03f fix resets 2024-10-19 11:01:16 -04:00
Jaklyy d4216309a2 hdfg 2024-10-19 11:00:51 -04:00
Jaklyy 051b236839 Merge branch 'less-ambitious-timing-rework' into chemical-x 2024-10-18 21:10:39 -04:00
Jaklyy e33d19cf14 fix a few misc things? 2024-10-18 21:08:56 -04:00
Jaklyy 9ed4c66592 add support for 1 reg ldm/stm a9 timings and fix a bug 2024-10-18 17:56:56 -04:00
Jaklyy 8ff0946b8a mrc causes interlocks 2024-10-18 17:10:00 -04:00
Jaklyy 0e6d3fd834 fix bad logical leaps 2024-10-18 16:32:02 -04:00
Jaklyy cc031cd4b8 Merge branch 'less-ambitious-timing-rework' into chemical-x 2024-10-18 15:01:14 -04:00
Jaklyy e2a810147f re-add interlocks
breaks gcc debug builds for ??? reason
2024-10-18 15:00:55 -04:00
Jaklyy 68e8ff41eb this barely makes a difference in practice but it's less inefficient 2024-10-17 10:08:11 -04:00
Jaklyy ffb24e7088 wrong bitshift 2024-10-16 22:42:24 -04:00
Jaklyy 26a6e887ad aarch64 neon impl take one
fingers crossed it compiles!
2024-10-16 22:26:56 -04:00
Jaklyy d7212643f1 move arm9 code fetches into the cycle add routine
setting up for re-adding interlocks
2024-10-16 12:21:48 -04:00
Jaklyy 9f2b097e96 Merge branch 'less-ambitious-timing-rework' into chemical-x 2024-10-15 22:36:29 -04:00
Jaklyy 52ddaa73cf fix resets 2024-10-15 22:36:21 -04:00
Jaklyy 21763ceed3 reduce memtimings lut granularity 2024-10-15 21:20:10 -04:00
Jaklyy c605c93d8e still dumb 2024-10-15 21:08:46 -04:00
Jaklyy 3fcdc45029 Merge branch 'less-ambitious-timing-rework' into chemical-x 2024-10-15 21:08:13 -04:00
Jaklyy c00b188c05 im dumb 2024-10-15 21:08:07 -04:00
Jaklyy 460fd45aed remove some old code 2024-10-15 20:27:09 -04:00
Jaklyy bb2727b786 Merge branch 'less-ambitious-timing-rework' into chemical-x 2024-10-15 20:25:16 -04:00
Jaklyy 05c153e9ab Merge branch 'interpreter-fixes' into less-ambitious-timing-rework 2024-10-15 20:23:14 -04:00
Jaklyy 5f003eb967 fix builds with jit disabled 2024-10-15 20:23:03 -04:00
Jaklyy d476593eec add notes 2024-10-15 12:40:35 -04:00
Jaklyy d8d2fcd94a more optimizations 2024-10-14 23:43:11 -04:00
Jaklyy 263dd20ec3 nvmnvmnvm 2024-10-14 22:48:25 -04:00
Jaklyy ca7d938bb1 update for new write buffer implementation 2024-10-14 20:18:23 -04:00
Jaklyy 9f3ebeafa7 Merge branch 'less-ambitious-timing-rework' into chemical-x 2024-10-14 20:16:58 -04:00
Jaklyy 026719acef improve timing model 2024-10-14 20:15:03 -04:00
Jaklyy f74c21d110 Merge branch 'less-ambitious-timing-rework' into chemical-x 2024-10-13 20:07:04 -04:00
Jaklyy 801f43dfc5 reimplement codemem
i dont feel like i actually had a good reason for disabling this...
2024-10-13 20:06:39 -04:00
Jaklyy 1afefdce1d use sse for set lookups 2024-10-13 08:39:07 -04:00
Jaklyy 206fc94d68 Merge branch 'interpreter-fixes' into less-ambitious-timing-rework 2024-10-12 14:35:28 -04:00
Jaklyy e0e78a2bc8 make empty r-list instructions a bit nicer
pass bools as a single u8 instead and combine thumb and restore cpsr flags since they're mutually exclusive
2024-10-12 11:10:06 -04:00
Jaklyy a8722d8c56 tcms shouldn't be cacheable 2024-10-11 02:47:41 -04:00
Jaklyy 6b8671d80a Merge branch 'less-ambitious-timing-rework' into chemical-x 2024-10-11 02:05:44 -04:00
Jaklyy 9f6cbd8e84 implement drain write buffer cache command 2024-10-10 23:24:20 -04:00
Jaklyy 3d246ddf73 tcms just aren't bufferable 2024-10-10 22:54:33 -04:00
Jaklyy 34bba2589e tcm (and cache?) reads dont trigger write buffer drains
additionally drains are triggered even in no cache + no buffer regions despite documentation not specifying such
2024-10-10 20:52:47 -04:00
Jaklyy 5c120f45ee Merge branch 'interpreter-fixes' into less-ambitious-timing-rework 2024-10-10 20:34:00 -04:00
Jaklyy 787d0c9afc mrc r15 updates flags
also my prior implementation made mrc w/ r15 raise an exception by accident
oops!
2024-10-10 11:09:07 -04:00
Jaklyy 93dce82b07 implement cmp with "rd == 15" on arm9
cmp and friends with bits 12-15 set to 1 borrow characteristics from their legacy 26 bit p variants
thumb version does nothing of note
2024-10-10 10:48:17 -04:00
Jaklyy 3870216fd0 correction: 2024-10-10 03:53:51 -04:00
Jaklyy 53b38c363f ok no it didn't lie to me 2024-10-10 03:32:53 -04:00
Jaklyy e25dca0030 writing to the write buffer has a 1 cycle delay before it can be done again 2024-10-10 03:14:01 -04:00
Jaklyy 633572e5cc Merge branch 'less-ambitious-timing-rework' into chemical-x 2024-10-10 02:20:17 -04:00
Jaklyy 2c3ef9f903 writing to the write buffer seems to require bus cycle alignment 2024-10-10 02:20:02 -04:00
Jaklyy 60234a96b8 im dumb 2024-10-09 18:10:02 -04:00
Jaklyy 0638c41220 Merge branch 'less-ambitious-timing-rework' into chemical-x 2024-10-09 18:06:23 -04:00
Jaklyy 746f6edb0a should addr writes to the fifo take 1 cycle? probably? 2024-10-09 18:06:17 -04:00
Jaklyy f2bc0fae4d cache imp 2024-10-09 18:05:26 -04:00
Jaklyy 225bd50e13 Merge branch 'less-ambitious-timing-rework' into chemical-x 2024-10-09 17:56:10 -04:00
Jaklyy 35c382acab jit 2024-10-09 17:51:00 -04:00
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