Pokechu22
4ea9287a09
CommandProcessor: Move unknown opcode log message before the panic alert
...
This way, the extra information is already in the log by the time the panic alert appears, which is slightly more convenient for debugging.
2022-02-13 14:15:54 -08:00
Pokechu22
97482a61c6
CommandProcessor: Ignore unknown opcode for 0x3f
2022-02-12 23:38:20 -08:00
Pokechu22
68cdceb4be
CommandProcessor: Log PC and LR on unknown opcodes
2022-02-12 23:38:20 -08:00
Pokechu22
095803d1e9
CommandProcessor: Move contents of second unknown opcode panic alert to the log
...
This way, the information is always available, and users don't have to deal with a wall of meaningless information.
2022-02-12 23:38:19 -08:00
Pokechu22
1c74867c71
GPFifo: Make s_gather_pipe size new constant GATHER_PIPE_EXTRA_SIZE
2022-02-12 23:38:19 -08:00
Pokechu22
55f8aa9921
VideoCommon/Fifo: Use GPFifo::GATHER_PIPE_SIZE instead of magic 32
2022-02-12 23:38:19 -08:00
Pokechu22
9ffe9d3dc1
CommandProcessor: Remove redundant GATHER_PIPE_SIZE constant
2022-02-12 16:17:03 -08:00
Pokechu22
ce52ea35ec
Jit: Replace magic 32 with GPFifo::GATHER_PIPE_SIZE
2022-02-12 16:14:05 -08:00
Pokechu22
444f6fd0cb
Treat alpha as 0 if alpha is 1 for blending
...
This removes the white box in fortune street again, without causing Mario Kart Wii to regress.
2022-02-08 15:15:15 -08:00
Pokechu22
0327e6acb4
Use the same logic for lerp bias for color and alpha
...
It doesn't make sense for alpha to add the bias ONLY when dividing by 2, while color doesn't apply the bias for divide by 2 only; hardware testing indicates that alpha should have the bias.
This fixes the menus in Mario Kart Wii (https://bugs.dolphin-emu.org/issues/11909 ) but reintroduces the white rectangle in Fortune Street.
This reverts commit 5aaa5141ed (and several other matching changes elsewhere).
2022-02-08 15:15:15 -08:00
Pokechu22
b4c7f2b1e8
Merge pull request #10444 from OatmealDome/mac-ogl-crash
...
OGLMain: Set default value for bSupportsSettingObjectNames
2022-02-08 13:54:43 -08:00
Pokechu22
4aeef95746
Fix copy filter clamping when EFB VRAM copies are disabled
2022-01-29 12:23:32 -08:00
Pokechu22
cc9ed4815d
UberShaderPixel: Fix typo in fog calculation
2022-01-26 20:23:35 -08:00
Pokechu22
ab5e71abf3
Merge pull request #10387 from Pokechu22/geometry-shader-always-write-layer
...
GeometryShaderGen: Write the layer for every vertex
2022-01-26 13:37:40 -08:00
Pokechu22
25c547e9e5
Fix incorrect copy filter clamping
...
We need to clamp to the center of pixels, or else things end up working out incorrectly. This also fixes an off-by-1 for the bottom line.
2022-01-25 19:53:25 -08:00
Pokechu22
e741d4783a
TextureConverterShaderGen: Add missing newline
2022-01-25 13:22:56 -08:00
Pokechu22
8d7eff2a8a
VideoCommon: Move logging/seen check for unknown opcodes into CommandProcessor
...
That way, they're in the same place the panic alerts are generated.
2022-01-22 22:04:15 -08:00
Pokechu22
79b2185117
OpcodeDecoding: Don't raise panic alerts for unknown opcodes 0x01-0x07
...
A pop-up is no longer generated for the Wiggler capsule in Mario Party 5 (https://bugs.dolphin-emu.org/issues/8104 ).
2022-01-22 16:49:19 -08:00
Pokechu22
6420845fcb
GeometryShaderGen: Write the layer for every vertex
...
At least in GLSL, after calling EmitVertex() the value of all 'out' variables (including gl_Layer and ps) becomes undefined. On OpenGL it seems like they were unchanged, but on Vulkan they became 0, resulting in bad rendering.
Fixes https://bugs.dolphin-emu.org/issues/12001
2022-01-22 12:16:48 -08:00
Pokechu22
78bcc6173f
Merge pull request #10378 from Pokechu22/fifoplayer-LoadSettings
...
FifoPlayer: Add missing call to LoadSettings()
2022-01-17 14:24:18 -08:00
Pokechu22
75cdcd5ac2
FifoPlayer: Add missing call to LoadSettings()
...
This resulted in the loop checkbox appearing unchecked, even though loop was enabled.
2022-01-17 11:00:13 -08:00
Pokechu22
43e146a1d5
GameList: Convert file extensions to lowercase
...
This means that dol/elf files with upercase extensions (e.g. BOOT.DOL) are properly detected.
2022-01-16 17:00:16 -08:00
Pokechu22
6e5f4125e3
Use Common::ToLower and Common::ToUpper
2022-01-16 17:00:12 -08:00
Pokechu22
aaec64501a
Create Common::ToLower and Common::ToUpper
2022-01-16 16:56:53 -08:00
Pokechu22
ad9e8d97a9
CMakeLists: Replace tab characters with spaces
...
This commit only touches CMakeLists in Source and the main one; it doesn't touch them in Externals.
2022-01-16 15:20:40 -08:00
Pokechu22
b7ac11080e
Merge pull request #10364 from Pokechu22/exi-device-refactor
...
Create enum classes for EXI devices and slots
2022-01-16 15:10:55 -08:00
Pokechu22
65788290f6
Raise a panic alert if a movie is recorded with memcards but no memcards are inserted
2022-01-16 14:21:33 -08:00
Pokechu22
19ef936e27
Use Slot in GameCubePane
2022-01-16 14:21:33 -08:00
Pokechu22
9109258b85
Use Slot in GCMemcardManager
2022-01-16 14:21:32 -08:00
Pokechu22
777bb4d82c
Use Slot in EXI devices
2022-01-16 14:21:28 -08:00
Pokechu22
7935e614d1
CMakeLists: Change DiscIO dependency from common to core
...
DiscIO depends on some IOS functions and other functions, which are in Core and not Common. This results in link errors if using DiscIO on its own (which is why DolphinTool had a listed dependency on videocommon; videocommon has a dependency on core so adding that made things build).
2022-01-16 13:29:51 -08:00
Pokechu22
3f0b23ed2b
Create Slot enum class for EXI slots
2022-01-14 20:24:53 -08:00
Pokechu22
fefde0481d
Use EnumFormatter to generate names for EXI devices
...
This simplifies the code in GameCubePane, and allows us to use the EXIDeviceType enum in error messages.
2022-01-14 20:24:53 -08:00
Pokechu22
d354163fbe
Replace TEXIDevices with an enum class
2022-01-14 20:24:53 -08:00
Pokechu22
fd04f4f32d
Replace use of of unsigned char* with fmt
...
Using unsigned char* or signed char* results in a deprecation warning, which is treated as an error. It needs to be casted to regular char* for it to work.
2022-01-13 11:11:08 -08:00
Pokechu22
29d6dd609c
Fix non-constexpr format strings
2022-01-13 11:11:08 -08:00
Pokechu22
18cf8ac767
Create EnumFormatter for WD Command enums
2022-01-13 11:11:08 -08:00
Pokechu22
1a92699455
Cast to int for enums that are not formattable
2022-01-13 11:11:08 -08:00
Pokechu22
5465775d11
Fix ambiguous uses of format_to
...
At least in MSVC (which is not restricted from targetting C++20), these can be resolved to either std::format_to or fmt::format_to (though I'm not sure why the std one is available). We want the latter.
2022-01-13 11:11:08 -08:00
Pokechu22
ac46b91673
Make all fmt::formatter constructors constexpr
2022-01-13 11:11:08 -08:00
Pokechu22
78e43a4404
Make all custom fmt::formatter's format functions const
...
fmt 8.0.0 requires this.
2022-01-13 11:11:08 -08:00
Pokechu22
cc592ab814
Use fmt::runtime in FmtFormatT
...
This format string is by definition dynamic and can't be checked at compile time. There are other similar strings in the log handler and in asserts, but they use vformat and thus don't need fmt::runtime. We might be able to do a similar thing where the untranslated string is compile-time checked, but FmtFormatT is used in so few places that I don't want to handle that in this PR.
2022-01-13 11:11:08 -08:00
Pokechu22
0cc211d1ef
Use fmt::format_string
2022-01-13 11:11:08 -08:00
Pokechu22
ff8965c40b
Replace uses of undocumented/deprecated fmt::format_to overload
...
This was deprecated in fmt 8.0.0.
2022-01-13 11:11:08 -08:00
Pokechu22
54cf8d030c
Add fmt/xchar includes where wstring is used
2022-01-13 11:11:08 -08:00
Pokechu22
cb662509f2
CMake: Bump fmt version requirement to 8.0
...
We will be using fmt::runtime, which was added in fmt 8.0.0.
2022-01-13 11:11:01 -08:00
Pokechu22
1a2e88cbf3
Externals: Update fmt to 8.1.1
2022-01-13 11:11:01 -08:00
Pokechu22
fc0d958e26
PixelShaderGen: Fix invalid use of int3(0)
...
This syntax is allowed by GLSL, but HLSL doesn't allow it. This meant that games using R8 comparisons in equal mode would produce shaders that failed to compile. Super Mario Galaxy's water levels were affected by this.
2022-01-12 21:50:34 -08:00
Pokechu22
ca9bf3174f
Use HRWrap in remaining locations
...
Note that D3DCommon can't use DX11HRWrap or DX12HRWrap since it's shared between them.
2022-01-09 12:44:55 -08:00
Pokechu22
1b32e6dae2
VideoBackends/D3D12: Include HRESULT in error messages
2022-01-09 12:44:53 -08:00
Pokechu22
23cdb5c576
VideoBackends/D3D11: Include HRESULT in error messages
2022-01-09 12:44:15 -08:00
Pokechu22
140c8217f6
Common: Create HRWrap
...
HRWrap now allows HRESULT to be formatted, giving useful information beyond "it failed" or a hex code that isn't obvious to most users. This commit does not add any uses of it, though.
2022-01-09 12:44:15 -08:00
Pokechu22
c296c34e00
Common/MsgHandler: Use caller's file and line number in log messages
...
This will assist with finding the source of a panic alert based on logs; before, Common\MsgHandler.cpp:113 (or similar) was always used.
2022-01-09 12:44:14 -08:00
Pokechu22
f55571ee5d
Common/MsgHandler: Fix PanicAlertFmtT not actually being translated
2022-01-09 12:44:14 -08:00
Pokechu22
2a5016c2f8
Common/MsgHandler: Remove use of lambda, as it breaks __func__
...
Specifically, this meant that __func__ in macros (namely ASSERT) would always be evaluate to "operator ()".
2022-01-09 12:44:14 -08:00
Pokechu22
558de04cfc
Common/Assert: Actually use the ASSERT_MSG's log type parameter
...
Since it was unused, nonexistent values were used in a few places. I've replaced them.
2022-01-09 12:44:14 -08:00
Pokechu22
bab3ff0157
Common/MsgHandler: Remove non-format variants of PanicAlert
...
They're no longer used.
2022-01-09 12:44:14 -08:00
Pokechu22
82acfa6a46
VideoBackends/D3D: Eliminate CHECK in favor of ASSERT_MSG
2022-01-09 12:44:13 -08:00
Pokechu22
161c627466
Treewide: Remove unused inclusions of <cinttypes>
...
Most of these became unneeded when fmt was introduced.
2022-01-09 12:43:11 -08:00
Pokechu22
44e93e91d7
Common/Assert: Switch to fmt
2022-01-09 12:43:11 -08:00
Pokechu22
1c0ca09e6f
Common/Assert: Include the condition and function in the message
2022-01-09 12:43:11 -08:00
Pokechu22
36d605715d
Merge pull request #10359 from PEmu2/links
...
Update some contributing doc links
2022-01-09 12:40:52 -08:00
Pokechu22
29df17d422
FifoPlayer: Allow changing loop option at runtime
...
This option has always existed since it's used by FifoCI, but now it can be changed at runtime. Looping is something that should almost always be on, but it can be useful to turn it off when frame-dumping is enabled so that hundreds of copies of the same frame aren't created. Before, turning it off required restarting Dolphin.
2022-01-06 19:08:16 -08:00
Pokechu22
575062a612
FifoPlayer: Store early memory updates option in the config
...
Now, early memory updates is persisted across runs, and can be toggled before starting a fifolog.
2022-01-06 19:02:13 -08:00
Pokechu22
8e2b06906b
Create EnumMap natvis
2022-01-02 15:36:47 -08:00
Pokechu22
b96297f2ee
Improve BitField natvis
...
Now, enums are properly displayed, and BitFieldArray is also displayed nicely. Signed values also work correctly, and 1-bit fields are not treated as bools unless the bitfield is explicitly marked as a bool.
2022-01-02 14:39:34 -08:00
Pokechu22
3d5b46615c
NetPlayClient: Use fmt::join for MD5Sum
2022-01-01 11:52:53 -08:00
Pokechu22
301bc49efe
Common: Remove MD5.h
...
It uses DiscIO, and Common shouldn't depend on DiscIO. Instead, put this code in NetPlayClient.cpp.
2022-01-01 11:52:53 -08:00
Pokechu22
afd02b79a5
VideoCommon: Add names for textures and shaders
2022-01-01 11:38:56 -08:00
Pokechu22
0c19f895d3
Replace remaining uses of zlib crc32 with Common/Hash.h
2022-01-01 10:36:38 -08:00
Pokechu22
2652aed85c
Common: Merge CRC32.h into Hash.h
...
This makes it easier to find the relevant functions.
2022-01-01 10:36:38 -08:00
Pokechu22
a1fe1a24c7
Contributing.md: Mention Visual Studio formatting key combo
2021-12-27 12:26:38 -08:00
Pokechu22
1cd148d4c5
GeomeryShaderGen: Set gl_ClipDistance on Vulkan as well as OpenGL
...
Fixes https://bugs.dolphin-emu.org/issues/12548
2021-12-23 17:56:21 -08:00
Pokechu22
de7c78ef3d
ControllerEmu: Hide the cursor if the input gate is disabled
2021-12-23 15:22:35 -08:00
Pokechu22
86f2b39d66
FifoPlayer: Wait after clearing the screen
...
If we don't wait, then the copy will be performed at a later time, which may overwrite memory updates.
2021-12-23 12:35:18 -08:00
Pokechu22
d981944d7c
FifoPlayer: Fix uninitialized variable warnings in ClearEfb
...
The actual values don't matter since we overwrite all of the relevant fields, but other bits were not initialized (e.g. the top 12 bits of X10Y10), so the warning was semi-valid.
2021-12-23 12:35:18 -08:00
Pokechu22
85025612bc
LightingShaderGen: Make s_lighting_struct not inline
...
This generated warnings on the freebsd builder.
2021-12-22 15:17:52 -08:00
Pokechu22
254f39cf78
GameSettings: Add patch for black screen effects in Pokémon Battle Revolution
2021-12-20 11:34:05 -08:00
Pokechu22
fd2324e40a
Fifo analyzer: Rename mipmap filter to half scale for EFB copies
...
The field itself is named half_scale, and it can be used for things unrelated to mipmaps, so reflecting that name in the fifo analyzer helps.
2021-12-20 11:34:05 -08:00
Pokechu22
2f6953efb6
TextureConverterShaderGen: Set alpha to 1 on intensity formats if EFB lacks alpha
...
We were already doing this for non-intensity formats, but it seems like the same applies to intensity formats.
2021-12-20 11:34:05 -08:00
Pokechu22
ffa512f5e7
DolphinTool: Remove direct dependency on core
...
Videocommon also depends on core, which resulted in linking errors (though I'm not sure why). Ideally, dolphintool woudln't depend on videocommon... but some stuff in core does.
2021-12-18 15:24:29 -08:00
Pokechu22
e7d5f8ad5c
TextureCacheBase: Re-wrap GetTexture comment
2021-12-18 15:21:48 -08:00
Pokechu22
f4f4dbbc63
Switch to the Play / Record tab when fifo playback stops
2021-12-18 15:21:48 -08:00
Pokechu22
d1cc539476
BPMemory: Correct spelling of MaxAniso
2021-12-18 15:21:48 -08:00
Pokechu22
f0f12ac8d7
Fifo analyzer: Decode floats in primitive data
2021-12-18 15:21:48 -08:00
Pokechu22
27cb704466
Eliminate VarType for ComponentFormat
2021-12-18 15:21:48 -08:00
Pokechu22
1a964891f8
VertexLoader_Color: Use Common::swap24
2021-12-18 15:21:48 -08:00
Pokechu22
95e0f833f9
Fifo analyzer: Display equations for color/alpha combiners
2021-12-18 15:21:48 -08:00
Pokechu22
0afe318b55
OpcodeDecoding: Make s_is_fifo_error_seen static
2021-12-18 15:21:48 -08:00
Pokechu22
d039b1bc0d
VideoCommon: Move VertexLoaderManager logic out of CPState
2021-12-18 15:21:48 -08:00
Pokechu22
e4605fa399
Fifo analyzer: Create a new object for each EFB copy
...
Previously, EFB copies would be in the middle of other objects, as objects were only split on primitive data. A distinct object for each EFB copy makes them easier to spot, but does also mean there are more objects that do nothing when disabled (as disabling an object only skips primitive data, and there is no primitive data for EFB copies).
2021-12-18 15:21:48 -08:00
Pokechu22
d84d695fdf
Remove DataReader from LoadXFReg
2021-12-18 15:21:48 -08:00
Pokechu22
b5fd35f951
Refactor OpcodeDecoding and FIFO analyzer to use callbacks
2021-12-18 15:21:36 -08:00
Pokechu22
0441826206
Fix wrapping in FifoPlayer comment
2021-12-18 12:51:56 -08:00
Pokechu22
d5cfac71d0
Refactor object listing code
...
This also adds the commands after the last primitive data but before the next frame as a unique object; this is mainly just the XFB copy. It's nice to have these visible, though disabling the object does nothing since only primitive data is disabled and there is no primitive data in this case.
2021-12-18 12:51:56 -08:00
Pokechu22
1914087998
Create and use CPArray enum class
2021-12-18 12:51:56 -08:00
Pokechu22
3aaeb2b9ef
Convert OpcodeDecoder::Opcode and OpcodeDecoder::Primitive to enum class
2021-12-18 12:51:56 -08:00
Pokechu22
3fc12431c5
Remove parameters to SWVertexLoader::SetFormat
...
They haven't been used since efbe5bc4b6 .
2021-12-18 12:51:56 -08:00
Pokechu22
205ab23d80
GeometryShaderGen: Convert to EnumMap
2021-12-18 12:51:55 -08:00
Pokechu22
f53dc6564f
UberShaderPixel: Convert to EnumMap
2021-12-18 12:51:55 -08:00