summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-06-19DSPLLE: Don't log when DIRQ is set to 0Pokechu22
No interrupt is generated in this case. The homebrew liband uCode writes zero fairly frequently, so logging it results in spam.
2022-06-18Merge pull request #10764 from shepgoba/masterAdmiral H. Curtiss
Rename FPS_REFRESH_INTERVAL in VideoCommon/FPSCounter
2022-06-17Rename FPS_REFRESH_INTERVAL in VideoCommon/FPSCounterBraxton Anderson
2022-06-17VideoCommon:ShaderCache: Add const to some local variablesTellowKrinkle
2022-06-17Merge pull request #10729 from Pokechu22/libusb-error-wrapAdmiral H. Curtiss
Improve libusb error logging
2022-06-17Merge pull request #10520 from AdmiralCurtiss/resource-pack-init-crashAdmiral H. Curtiss
ResourcePack: Avoid crashes on invalid packs during Init().
2022-06-17Merge pull request #10759 from shuffle2/arm64-updatePierre Bourdon
updater: use new platform id for win-arm64
2022-06-17ResourcePack: Avoid crashes on invalid packs during Init().Admiral H. Curtiss
2022-06-16VideoCommon: Fix SSBO layout and remove associated "bug"TellowKrinkle
2022-06-16updater: use new platform id for win-arm64Shawn Hoffman
2022-06-16DSPHLE: More accurately handle initialization behaviorPokechu22
This improves timing, but does not fix Datel titles.
2022-06-16DSPLLE: More accurately handle initialization behaviorPokechu22
2022-06-16DSPLLE: Fix debug logging in ReadMailboxLowPokechu22
The # option means that 0x is prepended already, so the old code resulted in 0x0xDEADBEEF instead of the intended 0xDEADBEEF. WriteMailboxLow was already correct.
2022-06-16DSPLLE: Rename cr to control_regPokechu22
Before, there were two distinct fields called cr and r.cr, which is needlessly confusing (see the comment in DSPCore.h).
2022-06-16VideoCommon: Name ubershadersTellowKrinkle
2022-06-16VideoCommon: Reduce duplicates of non-palette-requiring texture decode shadersTellowKrinkle
2022-06-15Merge pull request #10748 from tellowkrinkle/SDL22FunJosJuice
InputCommon: SDL 2.0.22 init crash workaround
2022-06-15Merge pull request #10756 from AdmiralCurtiss/qt-memcard-change-hotfixAdmiral H. Curtiss
Qt/GameCubePane: Fix swapping memory cards mid-emulation.
2022-06-15Qt/GameCubePane: Fix swapping memory cards mid-emulation.Admiral H. Curtiss
2022-06-14VideoCommon: Don't add garbage to shader uids in debug buildsTellowKrinkle
There wasn't anything stopping compilers from doing it in release builds either, but most optimizations would make the padding zero
2022-06-14InputCommon: SDL 2.0.22 init crash workaroundTellowKrinkle
See https://github.com/libsdl-org/SDL/pull/5598
2022-06-14Merge pull request #10743 from tellowkrinkle/LargeBlockRVZJMC47
Fix creation of rvz with > 2mb chunk size
2022-06-14Merge pull request #10742 from tellowkrinkle/XcodeJMC47
Improve incremental build time for Xcode projects
2022-06-14UnitTests: Remove unused include from DSPAssemblyTestPokechu22
2022-06-14UnitTests: Fix license for HermesBinary.cppPokechu22
This is an assembled version of HermesText.cpp, so the same license applies to it.
2022-06-14UnitTests: Edit wait_for_dsp_mail in HermesText to match HermesBinaryPokechu22
I don't know what happened here, unfortunately. The version of dsp_mixer.s added to libogc on Nov 14, 2008 in https://github.com/devkitPro/libogc/commit/c76d8b851fafc11b0a5debc0b40842929d5a5825 uses andcf and jlz here, and the version we have matches the one from Feb 5, 2009 in https://github.com/devkitPro/libogc/commit/ae5c3a5fb5aa4ccf1e1374b6e4f6be1aac118693 exactly (prior to the fixes in my previous commit). I can't see any reason why wait_for_dsp_mail would be changed like this. ANDCF and ANDF were previously swapped and JNE/JEQ/JZR/JNZ became JNZ/JZ/JLNZ/JLZ on Apr 3, 2009 in 7c4e6542533f7cef929ce86117b156c714820618, corresponding to a change Hermes made on Nov 10, 2008 in https://github.com/devkitPro/gamecube-tools/commit/2cea6d99ad518c963e24c3e28834473ff5312e69. But these predate the test being added. The only other information I can find is that ASNDLIB 1.0 released on November 11, 2008, at https://web.archive.org/web/20120326145022/http://www.entuwii.net/foro/viewtopic.php?f=6&t=87 (but there aren't any surviving links from there).
2022-06-14UnitTests: Update DSP test text for old renamesPokechu22
This change makes assembling DSPTestText match DSPTestBinary, though HermesText doesn't yet match HermesBinary. The test data was originally added on April 18, 2009 in e7e4ef4481d1c5dcce6463414d815843ae15b8e2. Then, set16 and set40 were swapped on April 22, 2009 89178f411cf1e8ef61b005197545618e53a0d4e8, which updated the DSPSpy version of dsp_code, but not the version in DSPTool used for testing. So, when the test was made, the assembled data matched the text, but a few days after it no longer did. Similarly, on Jul 7, 2009 in 1654c582ab9a6323a31802c4b241c0cffc9d3bca the conditional instructions were adjusted, and 0x1706 was changed from JRL to JRNC and 0x0297 was changed from JGE to JC. For what it's worth, devkitPro made the same changes on May 31, 2010 in https://github.com/devkitPro/gamecube-tools/commit/8a65c85c9b4748ed3dab3c0c85aeb0df95d58cfb and updated their version of the asnd ucode (which is this ucode) on June 11, 2011 in https://github.com/devkitpro/libogc/commit/b1b8ecab3af3745c8df0b401abd512bdf5fcc011 (though this update also includes other feature changes). Note that at the time, they didn't reassemble the ucode unless they made changes to it; the assembled was stored in the repo until https://github.com/devkitPro/libogc/compare/bfb705fe1607a3031d18b65d603975b68a1cffd4~...d20f9bdcfb43260c6c759f4fb98d724931443f93. This fixes the following failures with Hermes: !! 0015 : 8e00 vs 8f00 - set16 vs set40 !! 016f : 8e00 vs 8f00 - set16 vs set40 and with Hermes: !! 0014 : 8e00 vs 8f00 - set16 vs set40 !! 0063 : 8e00 vs 8f00 - set16 vs set40 !! 019b : 1706 vs 1701 - jrnc $AR0 vs jrl $AR0 !! 01bf : 0297 vs 0290 - jc 0x01dc vs jge 0x01dc !! 01d2 : 0297 vs 0290 - jc 0x01dc vs jge 0x01dc Hermes has the remaining failures: !! 027b : 03c0 vs 03a0 - andcf $AC1.M, #0x8000 vs andf $AC1.M, #0x8000 !! 027d : 029d vs 0294 - jlz 0x027a vs jnz 0x027a
2022-06-14UnitTests: Add tests for assembling DSP code to expected binaryPokechu22
We already have the data for this, so this seems like a useful thing to do. However, neither of the new tests currently pass...
2022-06-14DSPDisassembler: Fix disassembly of LSR and ASRPokechu22
Before, both 1441 and 147f would disassemble as `lsr $acc0, #1`, when the second should be `lsr $acc0, #-1`, and both 14c1 and 14ff would be `asr $acc0, #1` when the second should be `asr $acc0, #-1`. I'm not entirely sure whether the minus signs actually make sense here, but this change is consistent with the assembler so that's an improvement at least. devkitPro previously changed the formatting to not require negative signs for lsr and asr; this is probably something we should do in the future: https://github.com/devkitPro/gamecube-tools/commit/8a65c85c9b4748ed3dab3c0c85aeb0df95d58cfb This fixes the HermesText and HermesBinary tests (HermesText already wrote `lsr $ACC0, #-5`, so this is consistent with what it used before.)
2022-06-14UnitTests: Fail DSPAssemblyTest if the assembled code doesn't match the ↵Pokechu22
expected result This reveals that both HermesText and HermesBinary fail. HermesBinary would have failed on master, too, if this had been implemented.
2022-06-14DSPCodeUtil: Include the PC and hex in the "Extra code words" sectionPokechu22
It's included in the section before, so it's helpful to supply here too.
2022-06-14DSPCodeUtil: Give better output when comparing instructions with large ↵Pokechu22
immediates
2022-06-14DSPDisassembler: Fix out-of-bounds read when the last word is an instruction ↵Pokechu22
with a large immediate For instance, ending with 0x009e (which you can do with CW 0x009e) indicates a LRI $ac0.m instruction, but there is no immediate value to load, so before whatever garbage in memory existed after the end of the file was used. The bounds-checking also previously assumed that IRAM or IROM was being used, both of which were exactly 0x1000 long.
2022-06-14DSPTool: Exit with status 1 if binary comparison failsPokechu22
2022-06-14DSPCodeUtil: Use fmt::print instead of logging in DSP::ComparePokechu22
2022-06-14UnitTests: Use fmt::print in DSPAssemblyTestPokechu22
2022-06-14UnitTests: Use fmt::print in PageFaultTestPokechu22
2022-06-14UnitTests: Fix typo in DSPAssemblyTestPokechu22
2022-06-14UnitTests: Use hermes.s as part of an actual testPokechu22
Before, the file just existed as the source code for HermesBinary.cpp, but we can test that things assemble correctly too (compare DSPTestBinary.cpp and DSPTestText.cpp). A bit of jank is needed due to MSVC limitations (see https://docs.microsoft.com/en-us/cpp/error-messages/compiler-errors-1/compiler-error-c2026?view=msvc-170).
2022-06-14DSPTool: Remove moved files from VS project filePokechu22
These were moved into UnitTests in #5449.
2022-06-14Add post-processing option that can do Integer Scaling.TryTwo
2022-06-14VideoCommon: Don't pass State by inoutTellowKrinkle
Spirv-cross's MSL codegen makes the amazing choice of compiling calls to inout functions as `State temp = s; call_function(temp); s = temp`. Not all Metal backends handle this mess well. In particular, it causes register spills on Intel, losing about 5% in performance.
2022-06-14VideoCommon: Fix Intel GPUs on Metal/Vulkan locking up in ubershadersTellowKrinkle
2022-06-13Merge pull request #10587 from AdmiralCurtiss/memcard-path-unifyJMC47
Raw Memory Card Path handling unification and consistency fixes.
2022-06-13Merge pull request #10735 from CasualPokePlayer/audio_dump_volume_fixJMC47
Have audio dumps apply volume
2022-06-13Merge pull request #10737 from Tilka/alignasJosJuice
Common: replace std::aligned_storage_t with alignas
2022-06-13WiimoteEmu: Expose IMU pointing accelerometer weight setting.Jordan Woyak
2022-06-13Common: replace std::aligned_storage_t with alignasTillmann Karras
C++23 deprecates std::aligned_storage_t while alignas works since C++11. This fixes issue 12925.
2022-06-12Merge pull request #10733 from shuffle2/wsl-lintMai
lint: use git.exe if the source resides on v9fs
2022-06-12JitArm64: Remove redundant line in the EmitBackpatchRoutine commentJosJuice
All stores clobber X0, so that stores clobber X0 when emitting_routine is true is nothing special.