Commit Graph

1573 Commits

Author SHA1 Message Date
Arisotura b84155e891 I'm a derp 2021-08-27 16:45:26 +02:00
WaluigiWare64 34af921322 ROM Info dialog - Only read 128 characters from each title
Titles should be zero-terminated, but this is for additional safety
2021-08-27 13:54:55 +01:00
Arisotura 36672a4089 use NDSHeader struct, and expand it with the DSi shit 2021-08-26 18:59:07 +02:00
Nadia Holmquist Pedersen 7395d6a6c0 Allow picking .dmg files as SD image 2021-08-26 18:55:49 +02:00
Arisotura b40ff12a60 fix capitalization of DSiWare. heh 2021-08-25 12:31:20 +02:00
Arisotura 235da420c8
having fun with fatfs (#1189)
* patch TSC coords in DSi mode
* DSiware importer and shit
2021-08-24 17:46:20 +02:00
2jun0 346e8c0b87
Fix a touchless issue in hybrid layout (#1182)
In the previous commit, there was a touchless error on the hybrid screen.
This commit fix a touchless issue in hybrid layout.
2021-08-24 17:40:35 +02:00
Nadia Holmquist Pedersen 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
Nadia Holmquist Pedersen 6ad0e8d61a macOS: Allow opening ROMs with melonDS from Finder. 2021-08-23 10:27:03 +02:00
RSDuck 883fceb6ce use std::swap 🔃 2021-08-21 01:54:45 +02:00
Nadia Holmquist Pedersen 415ab22f3a fark 2021-08-17 01:01:15 +02:00
Nadia Holmquist Pedersen 2aeb452dfb SPU: Do clamping after applying SOUNDBIAS 2021-08-17 01:01:15 +02:00
Nadia Holmquist Pedersen 418b351986 SPU: Emulate SOUNDBIAS and 10-bit degrade 2021-08-17 01:01:15 +02:00
Arisotura d5a20ad3c8 tidbits 2021-08-08 15:45:44 +02:00
Arisotura 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
Arisotura bba14b2bb0 fix pissfucking touchscreen (again) 2021-08-08 14:45:16 +02:00
Arisotura 2df6b4fdc3
Audio interpolation (#1176)
add audio interpolation (emulation improvement)
2021-08-08 14:27:57 +02:00
RSDuck b28a9e4d24 JIT: don't lengthen blocks on a skipped SVC
SVC would need special handling because of the bank switching
2021-08-04 14:58:41 +02:00
RSDuck f900792dc0 addition to last commit 2021-08-04 14:35:54 +02:00
RSDuck f792d3e6a1 handle changed VCount+threaded rasteriser more gracefully 2021-08-04 14:21:45 +02:00
Nadia Holmquist Pedersen 996bfe8436 Make limit framerate default instead of audio sync 2021-08-04 00:53:47 +02:00
DesperateProgrammer 85c2a76774
Fix for https://github.com/Arisotura/melonDS/issues/1169 (#1171)
* Fix for https://github.com/Arisotura/melonDS/issues/1169
LoadNAND was storing the stage 2 bootloader, while NWRAM access was disabled by Bit25 of SCFG_EXT putting the stage 2 into old shared WRAM, while executing it later with the bit enabled and fetching from an empty NWRAM.

* Fixed bug, where access to the NWRAM Bank A used the wrong page mask for write access

* Remove spaces before comma

Co-authored-by: Tim Seidel <t.seidel@kts-systeme.de>
Co-authored-by: RSDuck <RSDuck@users.noreply.github.com>
2021-08-02 22:15:33 +02:00
RSDuck 946eb7a834 fix pause when inactive 2021-08-02 20:41:43 +02:00
gal20 1bda85383f Fix for #1119 'Add "frame step" hotkey' 2021-07-30 18:16:26 +02:00
Arisotura aaa97c9242 only open microphone when actually needed. fixes #1165 2021-07-29 01:19:03 +02:00
RSDuck 9ee2017443 don't add constant cycles if they're 0 2021-07-24 17:07:08 +02:00
RSDuck 6944fdbe78 add support for JIT profiling with VTune 2021-07-24 16:20:03 +02:00
RSDuck c9b918d305 fix last commit for aarch64 2021-07-24 04:45:33 +02:00
RSDuck c2152c8f74 JIT: fix ldm with writeback loading rn 2021-07-24 04:35:45 +02:00
WaluigiWare64 8513900892 ARM64 macOS JIT - fix warnings + some cleanup 2021-07-23 14:07:23 +01:00
DesperateProgrammer b1c2665c39
NWRAM & Direct Boot (#1149)
* SCFG_BIOS now selects between NDS and DSi BIOS
Allowing experimental direct boot.

* - making NWRAM Priorities work as in the HW
- fixed loading DSi stage2 Bootloader when in direct boot (should not be loaded) and might interfere with the image loaded into the (N)WRAM previously

* NWRAM and SCFG Registers are now write-guarded by the corresponding SCFG_EXT7/9 Bits

* removed debugging remainder

* Moved NDSHeader dependent SCFG initialization into the new DSi::SetupDirectBoot function called from NDS::SetupDirectBoot when ConsoleType is DSi

* removed redundant SCFG_BIOS bit checks

* Set of changes from RSDuck's review

* removed a forgotten comment

* - removed the guarded debug outputs for NWRAM
- NWRAM writes to bank and window registers now apply their write masks.
- added comment on an existing TODO within the code describing, why this is OK
- fixed initial NWRAM bank reset just accessing set A

* NWRAM not mapped to 03... range if bit25 in SCFG_EXT is cleared

* removed NWRAM write block on cleared bit25 in SCFG_EXT

* changed type of iterator for MapNWRAM_x functions from s8 to int

* - reduced calculations/comparisons on NWRAM write operations
- changed u8 to unsigned int for an iterator MapNWRAM_x

Co-authored-by: Tim Seidel <t.seidel@kts-systeme.de>
2021-07-23 12:21:54 +02:00
Arisotura cd4ef575ee NDSCart: correctly restrict reading the DSi region on DSi carts 2021-07-22 21:37:34 +02:00
Arisotura ab48461dc5 Merge branch 'master' of https://github.com/Arisotura/melonDS 2021-07-20 19:30:47 +02:00
Arisotura 740071e427 oopsies 2021-07-20 19:30:29 +02:00
RSDuck fdb6d226fd enable undo savestate load in the gui 2021-07-17 23:30:57 +02:00
Arisotura 98072d82bf shut up DSi-IO warnings 2021-07-17 18:26:56 +02:00
DesperateProgrammer 3a9e07c0b1
Fallback to backup DSi Footer in NAND Image (#1154)
* - added fallback to DSi footer copy at 000FF800h if reading footer at end of file failed. See https://problemkaputt.de/gbatek.htm#dsisdmmcimages
- changed output of ConsoleID to use PRIx64 to be consistent with all other tools working with the consoleID (readability/cosmetic improvement)

* Remove extra space

Co-authored-by: Tim Seidel <t.seidel@kts-systeme.de>
Co-authored-by: RSDuck <RSDuck@users.noreply.github.com>
2021-07-13 15:01:42 +02:00
WaluigiWare64 e5240a688c
Add ROM Header struct and ROM info dialog (#1095) 2021-07-02 16:42:54 +00:00
RSDuck 5a071c4c29 some tiny A64 optimisations 2021-06-30 00:41:04 +02:00
RSDuck aa430608e7 support allocating more registers for aarch64 JIT
also some minor fixes for the x64 JIT as well
2021-06-29 22:25:43 +02:00
RSDuck dd53b01f76 only recalculate GBA slot timing if necessary 2021-06-27 00:45:21 +02:00
Arisotura dd2b86d026 add missing default return value. fixes #1105 2021-06-20 02:23:45 +02:00
Arisotura 5b9f972625 UI: detect and save when window is maximized, and restore it as such. fixes #1135 2021-06-20 02:21:48 +02:00
WaluigiWare64 f94b784c4d Use printf format macro here 2021-06-07 20:51:51 +01:00
RSDuck 1793abcfb4 don't printf from exception handler
it was handy for debugging, but it's dangerous
2021-06-07 19:02:09 +02:00
purringChaos e3b4350f44
Add PoroCYon's DSP code. (#1123)
* Add PoroCYon's DSP code.

* Remove some teakra iles that we dont need.

* make some requested changes.

* move DataMemoryOffset into namespace.

* use deault param.

* ad the switch change

* <Generic> forget about the default parameter
2021-06-06 18:27:26 +02:00
cat 2494058a71
Add "frame step" hotkey and function (#1119) 2021-06-05 21:10:37 +02:00
Nadia Holmquist Pedersen 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
RSDuck 21f5477450 PRIu64 requires inttypes.h to be included 2021-06-05 03:34:39 +02:00
Pedro f74387a8c1
Implement NO$GBA debug registers. (#1110)
* Implement NO$GBA debug registers.

NO$GBA comes with 4 debug registers that allow a ROM to print text to
the emulator terminal and 2 other status registers, one with the name of the
emulator and the other with the clock cycles count. This commit
implements them for the ARMv5 processor.

Some small things to note:
 - `NocashPrint` was changed and now it takes an address to _the string_ instead of the flags before it (those
don't do anything anyways).
 - The "Emulation ID" register contains the string "melonDS " followed by version, _not_ "NO$GBA"

* Fix styling issue and improve comment regarding NO$GBA message flags
2021-05-27 12:15:16 +02:00
RSDuck e48e45db76 frontend: handle tablet and touch events
fixes #654 and #548
2021-05-24 20:23:06 +02:00
RSDuck 9181ab19c7 GPU3D soft: prevent out of bounds read 2021-05-24 19:41:24 +02:00
RSDuck f271bdf325 fix #906 2021-05-24 18:29:12 +02:00
WaluigiWare64 e02bbcb3ac Use printf macro for u64 2021-05-16 17:17:57 +01:00
Raphaël Zumer 4a39a84216
Propagate common ImportSRAM return value from NAND cartridge function (#1104) 2021-05-16 18:15:34 +02:00
Raphaël Zumer eb7bedfc79
Remove outdated frontend solar sensor code (#1102) 2021-05-16 17:18:24 +02:00
RSDuck 509107fb59 set instead of or stencil buffer for left edges 2021-05-08 00:12:48 +02:00
Arisotura 6f91bcc39f use shitfucking stupid linebreaks so that our text files don't like stupid compact blobs in Notepad
(really, fuck Notepad)
2021-05-06 00:40:11 +02:00
Arisotura d3c298bbe4 ASSFUCKING STUPID SHITPILE.
fixes #1044

(also add separator for cleaner menu)
2021-05-06 00:33:50 +02:00
Arisotura 50721719d2 GBACart: simulate open-bus decay roughly. fixes #1093 2021-05-04 12:58:59 +02:00
Arisotura b7d5a7db75 don't attempt to parse lines that failed to fetch 2021-05-03 17:02:38 +02:00
Arisotura 41cd092a15 NDSCart: enforce WR bit.
Bad Apple demo will break, because its NitroFS driver is broken. it needs a DLDI argv structure to exist in order to use its DLDI driver instead.
2021-05-03 14:58:45 +02:00
WaluigiWare64 2ff065e5ea Fix some compiler warnings 2021-05-03 13:40:44 +01:00
Arisotura cc36f55b8c Merge branch 'master' of https://github.com/Arisotura/melonDS 2021-05-02 21:19:12 +02:00
Arisotura e2e7f65f9f revised DLDI driver that uses the hardware somewhat more correctly 2021-05-02 21:18:52 +02:00
Nadia Holmquist Pedersen 464897ea87 Explicitly include ${SDL2_PREFIX}/include
this only accidentally worked before
2021-05-02 16:42:04 +02:00
Nadia Holmquist Pedersen d6036f9225 macOS-related CMake cleanups
* Remove useless explicitly specified link/include directories
* Don't pass -s or -pie to the linker as they aren't needed
2021-05-02 16:32:27 +02:00
Nadia Holmquist Pedersen b0e97b229e Fix minimum Darwin version for targeting 10.15 2021-05-02 14:34:44 +02:00
Arisotura 03bfbd2be7 fix touchscreen code in non-hybrid layout mode, fixes #1087
(also what the fuck is that code)
2021-05-01 19:09:01 +02:00
Arisotura 33a1bd3ac3 er, oops 2021-05-01 15:06:08 +02:00
Arisotura f219318292 Over the Hedge uses a tiny EEPROM, too.
fixes #899
2021-05-01 12:12:28 +02:00
Arisotura 18b1f79b44 Spider-Man 3 uses a tiny EEPROM, not a regular one 2021-04-30 22:59:50 +02:00
Arisotura 25ab02c650 fix another bad entry 2021-04-30 21:06:03 +02:00
Arisotura 414c608678 add ROMlist entry for Power Rangers Go-Busters (Korea) 2021-04-30 20:40:57 +02:00
Arisotura da9024e2b7 er, all cart types might want to have teh B8 command 2021-04-30 17:34:41 +02:00
Arisotura c2f37d44ce cart: ensure each set of commands can only be run in the correct command mode.
fixes #1083 (there was a chance an encrypted KEY1 command could be interpreted as something else and fuck things up)
2021-04-30 17:29:04 +02:00
Arisotura 5e648a8db3 fill most gaps in ROM list 2021-04-30 03:01:52 +02:00
Arisotura 8a5078abe3 support savemem for Face Training (NAND, atleast 32MB, likely 64MB) 2021-04-30 01:13:35 +02:00
Nadia Holmquist Pedersen 0a718adc77 Fix macOS right modifier detection.
Turns out my system was affected by a bug with modifier remapping in
macOS causing some of my left/right modifiers to be swapped. This commit
fixes them to be the correct values.
2021-04-29 19:45:41 +02:00
RSDuck 0a3a2ad009 fix aarch64 build with gcc 11 2021-04-29 15:15:16 +02:00
RSDuck eae42fb9f8 request repaint instead of update after each frame 2021-04-29 15:13:53 +02:00
Nadia Holmquist Pedersen cffffa887e macOS: Assign "Preferences..." to emu settings without also removing it from the config menu 2021-04-27 15:11:15 +02:00
Tatsh 5a9063089c
Savestate: use Platform::OpenLocalFile (#1026) 2021-04-26 23:21:58 +02:00
Arisotura 6691c6903b asfdasdas you'd better not give me shit now 2021-04-26 16:43:25 +02:00
Arisotura a2c12f7e66 fix some more case sensitive shito 2021-04-26 15:50:02 +02:00
Arisotura 1afb8bfa46 that game is actually a tiny EEPROM 2021-04-26 15:30:00 +02:00
Arisotura bf4052bc3d more of the same (actually fix the bug I was having) 2021-04-26 15:25:45 +02:00
Arisotura 4a5d5116a1 make extension checks case-insensitive 2021-04-26 15:20:28 +02:00
Arisotura 7ab19f157d add ROM entry for Clueless Fashion (#1050) 2021-04-26 13:23:29 +02:00
Arisotura 55a129e1a2 make sure to axe the GBA slot in DSi mode. (EXMEMCNT bit7 still applies to it, tho) 2021-04-25 13:13:16 +02:00
Arisotura f8bb1aa98d 'aight 2021-04-25 11:54:08 +02:00
Arisotura 18497d396d add more Mac crap. hoping the weird characters made it through. 2021-04-25 11:53:29 +02:00
Arisotura 185c97f4ef try to cover right-mod keys under MacOS I guess 2021-04-25 11:34:56 +02:00
Arisotura 9d9865d256 hopefully remove shitty hack 2021-04-25 11:09:16 +02:00
Nadia Holmquist Pedersen a860c5fbd3 Actually use the new script... 2021-04-25 03:55:01 +02:00
Nadia Holmquist Pedersen bc4a156a4d More 10.14 fixes also make the version check in cmakelists actually work 2021-04-25 03:51:04 +02:00
Arisotura 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
Nadia Holmquist Pedersen 0834fc1533
Add support for building with Qt6 (#865)
Co-authored-by: WaluigiWare64 <68647953+WaluigiWare64@users.noreply.github.com>
2021-04-24 13:30:10 +00:00
Nadia Holmquist Pedersen 796ef95862
Improve macOS bundling (#1067)
* Improve macOS bundling
* Bundle libs for macOS CI
* Add MACOS_BUILD_DMG CMake option and make the CI upload the DMG so we don't lose executable permissions.
* Manually copy plugins if macdeployqt doesn't
* Ad-hoc codesign the app
2021-04-21 23:50:32 +02:00
Nadia Holmquist Pedersen 06e2193c04 Fix up menu roles a bit 2021-04-19 09:18:50 +02:00