New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Debugger: MemoryWidget: add float and integer input types. Add input preview. #10528
Debugger: MemoryWidget: add float and integer input types. Add input preview. #10528
Conversation
|
Something is broken here in the hex view if you have leading zeroes and go over 16 characters. Spaces in the input box also seem to parse as leading zeroes. |
|
Seems like an improvement other than that though! |
Thanks for finding these edge cases! Spaces are now removed unless using ascii. |
|
Squash the fixup and I'm okay with this. |
|
Apologies for the conflicts, hope that's not too bad to fix. |
0ced546
to
2b4b172
Compare
|
np, I should probably look at this one more time later to make sure I didn't break anything. |
2b4b172
to
d4d7f30
Compare
|
When using Input Type == Hex and Data Type == ASCII, it pads the entered hex value to multiples of 4 bytes. While it's not exactly clear what the padding should be in that case, I think no padding (same as Data Type == U8) makes more sense for that. (For Data Type == Float, the 4 byte padding makes sense to keep, IMO, since floats are 4 bytes long.) |
|
Ohh, you're right. I didn't consider that case. |
d4d7f30
to
4833afc
Compare
4833afc
to
489a583
Compare
| hex_string = QStringLiteral("%1").arg(hex_out, padding, hex, QLatin1Char('0')).toUpper(); | ||
| } | ||
| } | ||
| else if (m_input_integer->isChecked()) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I really think the logic is overkill. What about using a dropdown menu with the proper input type (u8, s8, u16, s16, u32, s32, u64, s64, float, double, hex, ascii, ...)?
Moreover, I think the m_type_* members are misused. IIRC, they were only used to specify the representation of the memory view, not the input type. This use would be counterintuitive.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
6 different options for something that can be done with 1 option and some logic seems like overkill to me. Is it really unreasonable to expect someone to choose u8 view if they want to input a u8? The view doesn't determine type, only padding/length ( I guess you could call that type tho).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I find this actually pretty intuitive for integers and floats, though ymmv of course. For a hex string, less so, maybe that one should never be padded?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
6 different options for something that can be done with 1 option and some logic seems like overkill to me.
"Can be done with 1 option" and tons of branching is IMHO clearly overkill. On top of that, checking the first character each time to see if its signed or not is redundant and way harder to read.
The same goes for the padding heuristic which is everywhere. Whereas knowing the exact type gives you the appropriate padding without having to compute it.
Is it really unreasonable to expect someone to choose u8 view if they want to input a u8? The view doesn't determine type, only padding/length ( I guess you could call that type tho).
Yes it is, if it was not for the hex string preview, I don't think many people would have understood it. Especially, since there is an ASCII type and a float type in both group. So that's extremely confusing.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
How would you turn -20 from a QString into an 8 bit hexadecimal and a 16 bit hexadecimal QString? I'm more than happy to improve upon it, with a bit of guidance.
My basic goal is adding integer + float. Allowing the option to input 1 -> 00000001. Add a spaced out preview to easily see what you're inputting and how many bytes it is.
Should input and view be combined into one thing? Is there any time that'd be annoying?
I could also make it so if input size > intended size it defaults to string of bytes instead of continued padding.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
How would you turn -20 from a QString into an 8 bit hexadecimal and a 16 bit hexadecimal QString? I'm more than happy to improve upon it, with a bit of guidance.
A QComboBox can be used with the proper input type (u8, s8, u16, s16, u32, s32, u64, s64, float, double, hex, ascii, ...). Sticking to radio button sounds like a bad design choice to me. With the QComboBox index, the validation/preview can be simplified and will boil down to a switch and an enum class like this and picking the right QString method (toShort, toInt, ...).
For instance:
switch (combo_id)
{
case InputComboId::S16:
{
short value = input_text.toShort(&good, 10);
if (good)
hex_string = QStringLiteral("%1").arg(value, 4, 16, QLatin1Char('0')).toUpper();
break;
}
case InputComboId::S32:
{
int value = input_text.toInt(&good, 10);
if (good)
hex_string = QStringLiteral("%1").arg(value, 8, 16, QLatin1Char('0')).toUpper();
break;
}
// Etc. (...)
}Should input and view be combined into one thing? Is there any time that'd be annoying?
I could also make it so if input size > intended size it defaults to string of bytes instead of continued padding.
I think changing the view behaviour is out of scope of the PR.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That code doesn't give the correct output and the fix is the same padding convolution that's trying to be avoided.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I thought that it would have behaved like libfmt's format or printf but I was wrong.
Here is an alternative using libfmt sprintf:
case InputComboId::S16:
{
short value = input_text.toShort(&good, 10);
if (good)
hex_string = QString::fromStdString(fmt::sprintf("%04hX", value));
break;
}Using fmt::format follows python's format and doesn't print the intended number:
// Code testing
short value = -42;
qDebug() << QStringLiteral("%1").arg(value, 4, 16, QLatin1Char('0')).toUpper();
qDebug() << QString::fromStdString(fmt::format("{:04X}", value));
// You'll need to use printf specifiers and length modifiers here
qDebug() << QString::fromStdString(fmt::sprintf("%04hX", value));There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you! I knew fmt was incorrect, but didn't know about fmt sprintf.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I didn't find a simpler method for float than BitCast, but everything else seems improved.
One problem I have with making 12 different input types, is all the red you will see if you go out of range. With just the integer type, at least you see an output and can adjust it rather than just getting hit with an invalid s8/s16/u8/whatever input that's out of range.
80e2abe
to
ad85548
Compare
|
Reimplemented original behavior for long hex strings. You can use any length hex, but hex must have whole bytes when using a long hex string. |
ad85548
to
16c8253
Compare
a61806d
to
72cc5bd
Compare
|
I improved the logic thanks to fmt::sprintf being pointed out. The remaining convoluted line is for a string of u16's being padded with zeroes. Do we want to allow a string of u16 or to just let it fall back to u8's? I could add 3 extra radio buttons for input length, to divorce it from the view type. |
|
As explained in my previous comment, I really think the input type's radio buttons are a very bad design choice and it should be switched to a Using the view's data type doesn't sound fine to me since it's inconsistent with the input type's radio buttons and incoherent like |
|
The only implementations I can think up involving a QComboBox with s8, s16, s32, u8, u16, u32, hex string, float, double, ascii would feel clunky to actually use. Also, if you input a "-2" s8 while looking at "12345678" in a U32 data view, do you expect to get 000000FE or 123456FE? Connecting the data view to input length avoids the question. QString doesn't have a direct s8/signed char conversion that I know of, so I think you still need to check it as an int for size/sign. Wouldn't it be more accurate to rename view data type to byte lengths rather than U's, regardless? |
What do you feel clunky about it? Using radio buttons is as much clunky if not clunkier especially if it's tight to other radio buttons of the view format (no hex editor I've used so far have this behaviour). Using a combo box is straightforward and explicit about what it will be doing (i.e. set a value of a specific data type at the specified address+offset). BTW, I think there is a misconception with your approach between padding/alignment and endianness. Using big-endian is fine as it's what the Wii/GC are using but magically deducing a "padding" for the radio button
I'm strongly opposed to connect it to the data view. I don't think people expect implicit stuff to happen like padding based on type and alignment. What would make the most sense is when you input "-2" (no matter what the view type is, even ASCII or Float), it writes "-2" at the specified address+offset, that's all. The answer would (in big endian):
I think using // For s8
short value = input_text.toShort(&good, 10);
good &= std::numeric_limits<signed char>::min() <= value && value <= std::numeric_limits<signed char>::max() |
|
Sorry, I use the old WX style inputs in my personal builds, so I guess it was confusing for me to mention. Integers were an afterthought for this PR, because we can't even view things as integers. So heavily focusing on integers is weird for me. Your checkbox idea is good, since we already use it and it's consistent with other programs. |
6decd9d
to
dafdda2
Compare
|
I can't say I've ever seen any UI element like that, and I question how often one actually needs octal (I never do), but yeah, I suppose this works. @sepalani thoughts on this? |
|
Yeah looking at it again, just using the checkbox would be better It should only be active for unsigned right? With the setup you can still prepend 0 for octal. |
|
Technically there's nothing wrong with writing a signed -1 as 0xffffffff or whatever. It doesn't encode differently if it's signed, but I see no reason to not allow it. |
|
Hmm toShort(&good, 0) sees 0xffff as outside the limits of a signed short. It judges it as an unsigned. Not sure of a simple fix. |
fb75e00
to
1932249
Compare
|
Alright, played around with this a bit. There's a few minor weird quirks (eg. octal with prefixed 0 works on unsigned but not on signed, if you're in hex mode you can't prefix a 0x manually, hex byte string doesn't allow spaces but int/float does) but I'd be fine with just merging this as-is and tweaking the details later, because this is still a massive improvement over the previous state. Depends on how much you still want to work on this here. |
|
Oh, one thing that you should probably fix though: If you enter a long Hex Byte String (eg. |
|
I fixed everything except octal for signed, because it needs to work with hexadecimal too, and doesn't. My solutions to getting signed to work with hex would backslide into messy code. Like changing the signed enum to unsigned when validating or using a different switch set just for hex. I still need to merge the commits. I will wait awhile longer to see if anyone else has anything more for me. |
1932249
to
8ee3835
Compare
I'm fine with the combo box, or the checkbox for hex. The checkbox for hex feels less awkward and I haven't needed the use for octal yet.
That's the intended behaviour, 0xFFFF (aka 65535) is an invalid signed short (s16) but a valid unsigned short (u16, see |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Beside these nitpicks I'm fine with the current state of this PR.
| search_type_group->addButton(m_find_hex); | ||
| auto* input_layout = new QHBoxLayout; | ||
| m_data_edit = new QLineEdit; | ||
| m_base_check = new QCheckBox(tr("Hex")); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Parse as Hex to be consistent with the Cheat Search feature.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I wanted to allow as much space for the input box as possible. I could put it on the same line as the input combobox?
|
Thanks for the great suggestions. Should it be InputID or InputId for the enum? |
|
|
|
std::isprint(c, std::locale::classic()); Do I need to check this when processing ascii? I just noticed it in memoryviewwidget. Otherwise, ascii auto-trusts any input. |
8ee3835
to
1998b18
Compare
|
I don't think that's necessary, if the user enters a non-printable character in the textbox they can probably deal with the aftermath. |
|
Can you squish the commits now? I think we're finally done here. |
…w. Change input logic. Use combobox for options.
1998b18
to
ed96b8e
Compare
commit 4c080b8 Merge: e0afcb3 a7111e3 Author: Admiral H. Curtiss <pikachu025@gmail.com> Date: Sat Apr 23 22:23:31 2022 +0200 Merge pull request dolphin-emu#10578 from TryTwo/PR_MemoryWidget_Dual_Views Debugger MemoryWidget: Add dual views commit e0afcb3 Merge: cb5e967 b5a7ae5 Author: JosJuice <josjuice@gmail.com> Date: Sat Apr 23 22:04:10 2022 +0200 Merge pull request dolphin-emu#10540 from nyanpasu64/fix-gcadapter-atomics Remove atomic usage and fix mutex locking in GCAdapter code commit cb5e967 Merge: 8b5a61b 235f729 Author: Admiral H. Curtiss <pikachu025@gmail.com> Date: Sat Apr 23 21:07:35 2022 +0200 Merge pull request dolphin-emu#10596 from richarm4/patch-3 Added space in comment commit 235f729 Author: Matthew Richards-Wells <91291346+richarm4@users.noreply.github.com> Date: Wed Apr 20 12:49:17 2022 -0700 GameSettings: Add missing space in comment. commit 8b5a61b Merge: 19c71db 12cd81b Author: Admiral H. Curtiss <pikachu025@gmail.com> Date: Sat Apr 23 20:32:47 2022 +0200 Merge pull request dolphin-emu#10599 from shuffle2/libusb Libusb fixups commit 19c71db Merge: 69ca38d f5f5262 Author: Mai M <mathew1800@gmail.com> Date: Sat Apr 23 06:10:20 2022 -0400 Merge pull request dolphin-emu#10597 from Simonx22/fix-ingame-menu-design Android: Fix in game menu rippleColor and colorEdgeEffect commit a7111e3 Author: TryTwo <taolas@gmail.com> Date: Sun Apr 17 00:47:05 2022 -0700 Dual View any size. commit 69ca38d Merge: 56bb965 6eb9111 Author: JosJuice <josjuice@gmail.com> Date: Sat Apr 23 10:25:48 2022 +0200 Merge pull request dolphin-emu#10600 from t895/modern-card Android: Modernize game card commit 56bb965 Merge: 2e01dc0 7840798 Author: JMC47 <JMC4789@gmail.com> Date: Fri Apr 22 23:24:22 2022 -0400 Merge pull request dolphin-emu#10584 from Pokechu22/emboss-single-normal-v2 VideoCommon: Handle emboss texgen with only a single normal commit 6eb9111 Author: Charles Lombardo <clombardo169@gmail.com> Date: Fri Apr 22 12:56:58 2022 -0400 Modernize game card +Remove background on card +Increase max # of lines for game title +Root layout is now a linear layout with the card view rounding the corners on the box art commit 7840798 Author: Pokechu22 <Pokechu022@gmail.com> Date: Tue Apr 19 17:46:20 2022 -0700 VideoCommon: Add comment explaining why only the first normal gets normalized Co-authored-by: Scott Mansell <phiren@gmail.com> commit 2a5c77f Author: Pokechu22 <Pokechu022@gmail.com> Date: Wed Apr 13 22:03:34 2022 -0700 VideoCommon: Handle emboss texgen with only a single normal Fixes a large number of effects in Rogue Squadron 2 and 3. commit 39b2854 Author: Pokechu22 <Pokechu022@gmail.com> Date: Thu Apr 14 12:01:57 2022 -0700 VertexLoader: Convert count register to remaining register This more accurately represents what's going on, and also ends at 0 instead of 1, making some indexing operations easier. This also changes it so that position_matrix_index_cache actually starts from index 0 instead of index 1. commit 97d0ff5 Author: Pokechu22 <Pokechu022@gmail.com> Date: Wed Apr 13 16:12:53 2022 -0700 Convert vertex loader position cache to std::array commit f722bdf Author: Pokechu22 <Pokechu022@gmail.com> Date: Wed Apr 13 20:57:38 2022 -0700 VertexLoaderX64: Refactor so that zfreeze is only in one place (Specifically, the copy for VertexLoaderManager::position_cache. The position matrix index happens elsewhere, and the float path still has special logic to copy to scratch3.) commit 6f1350a Author: Pokechu22 <Pokechu022@gmail.com> Date: Wed Apr 13 17:03:53 2022 -0700 VertexLoaderARM64: Fix z-freeze position matrix index Before, it would always write to index 0 (which is unused). Now it writes to the correct index. commit 04fdadd Author: Pokechu22 <Pokechu022@gmail.com> Date: Fri Apr 22 12:50:44 2022 -0700 VideoCommon: Rename norm0/norm1/norm2 to normal/tangent/binormal commit 88134a6 Author: Pokechu22 <Pokechu022@gmail.com> Date: Tue Dec 28 13:01:57 2021 -0800 VertexShaderGen: Simplify normal calculation This is a readability change; there should be no functional or performance differences. commit 12cd81b Author: Shawn Hoffman <godisgovernment@gmail.com> Date: Fri Apr 22 08:58:38 2022 -0700 GCAdapter: don't call libusb_detach_kernel_driver on apple commit 5cd3cf9 Author: Shawn Hoffman <godisgovernment@gmail.com> Date: Fri Apr 22 08:48:28 2022 -0700 GCAdapter: fix retval check of libusb_detach_kernel_driver commit 978c908 Author: Shawn Hoffman <godisgovernment@gmail.com> Date: Fri Apr 22 07:37:56 2022 -0700 GCAdapter: move libusb context teardown last commit 1c9dfb7 Author: Shawn Hoffman <godisgovernment@gmail.com> Date: Fri Apr 22 07:36:56 2022 -0700 GCAdapter: some macro cleanup commit f52d948 Author: Shawn Hoffman <godisgovernment@gmail.com> Date: Fri Apr 22 07:12:09 2022 -0700 GCAdapter: set read/write thread names commit 0a07c76 Author: Shawn Hoffman <godisgovernment@gmail.com> Date: Fri Apr 22 07:07:20 2022 -0700 update libusb submodule to latest commit af930bc Author: Shawn Hoffman <godisgovernment@gmail.com> Date: Fri Apr 22 07:05:41 2022 -0700 make libusb submodule shallow commit 2e01dc0 Merge: 3172199 ef760ee Author: Mai M <mathew1800@gmail.com> Date: Thu Apr 21 17:32:13 2022 -0400 Merge pull request dolphin-emu#10592 from AdmiralCurtiss/pointerwrap-protections Common/PointerWrap: Prevent reads/writes past the end of the buffer. commit 3172199 Merge: 902e45b 70507c2 Author: Admiral H. Curtiss <pikachu025@gmail.com> Date: Thu Apr 21 18:50:08 2022 +0200 Merge pull request dolphin-emu#10577 from shuffle2/libusb update libusb to v1.0.26 commit f5f5262 Author: Simonx22 <simon@oatmealdome.me> Date: Wed Apr 20 16:22:06 2022 -0400 Android: Fix in game menu rippleColor and colorEdgeEffect commit 902e45b Merge: 3ed9d5a c925f10 Author: Mai M <mathew1800@gmail.com> Date: Wed Apr 20 06:22:17 2022 -0400 Merge pull request dolphin-emu#10595 from richarm4/patch-1 Minor text capitalization commit c925f10 Author: Matthew Richards-Wells <91291346+richarm4@users.noreply.github.com> Date: Wed Apr 20 02:07:31 2022 -0700 Minor text capitalization Changed "$Swords/Shields/boots/tunics" to "$Swords/Shields/Boots/Tunics" for consistent capitalization in the line. commit ef760ee Author: Admiral H. Curtiss <pikachu025@gmail.com> Date: Mon Apr 18 04:13:25 2022 +0200 Common/PointerWrap: Prevent reads/writes past the end of the buffer. commit 70507c2 Author: Shawn Hoffman <godisgovernment@gmail.com> Date: Mon Apr 11 06:04:20 2022 -0700 update to libusb v1.0.26 moves libusb from vendored to submodule commit 853cf4f Author: Admiral H. Curtiss <pikachu025@gmail.com> Date: Mon Apr 18 03:41:14 2022 +0200 Common/PointerWrap: Hide internals. commit 3ed9d5a Merge: 0ec3f3a 342af65 Author: Mai M <mathew1800@gmail.com> Date: Sun Apr 17 05:43:06 2022 -0400 Merge pull request dolphin-emu#10589 from JosJuice/android-more-init-checks Android: Use AfterDirectoryInitializationRunner more comprehensively commit cc22f1a Author: TryTwo <taolas@gmail.com> Date: Wed Apr 6 22:50:05 2022 -0700 MemoryWidget add dual views for two separate column types. Force first column to be Hex32. commit 342af65 Author: JosJuice <josjuice@gmail.com> Date: Sat Apr 16 15:04:29 2022 +0200 Android: Use AfterDirectoryInitializationRunner more comprehensively Should fix the crash reported in https://bugs.dolphin-emu.org/issues/12885 commit 0ec3f3a Merge: 0a4805c a2aecc3 Author: Admiral H. Curtiss <pikachu025@gmail.com> Date: Sat Apr 16 14:35:29 2022 +0200 Merge pull request dolphin-emu#10563 from TryTwo/PR_MemoryWidget_Display_Types Debugger MemoryWidget: More display types, use combo box for options commit a2aecc3 Author: TryTwo <taolas@gmail.com> Date: Wed Apr 6 02:36:09 2022 -0700 Debugger MemoryWidget: More display types, use combo box for display options. Add alignment and riw length options. commit 0a4805c Merge: c5c4169 5c687fc Author: Admiral H. Curtiss <pikachu025@gmail.com> Date: Sat Apr 16 03:42:55 2022 +0200 Merge pull request dolphin-emu#10582 from AdmiralCurtiss/fmt-float Common/StringUtil: Use simpler formatting for floats and doubles. commit c5c4169 Merge: 36678dc 59f299d Author: Scott Mansell <phiren@gmail.com> Date: Fri Apr 15 11:12:49 2022 +1200 Merge pull request dolphin-emu#10255 from Pokechu22/sw-zfreeze Software: Fix zfreeze with CullMode::All commit 36678dc Merge: 3fdc6cb 9994363 Author: Scott Mansell <phiren@gmail.com> Date: Fri Apr 15 10:43:59 2022 +1200 Merge pull request dolphin-emu#10585 from Pokechu22/apple-m1-unit-tests-f-string Apple M1: Fix "Building and running unit tests" message commit 9994363 Author: Pokechu22 <Pokechu022@gmail.com> Date: Thu Apr 14 15:34:52 2022 -0700 Apple M1: Fix "Building and running unit tests" message For {arch} to be converted, the string needs to be an f-string. commit 3fdc6cb Merge: edbb0f4 c95c43b Author: Admiral H. Curtiss <pikachu025@gmail.com> Date: Wed Apr 13 12:18:41 2022 +0200 Merge pull request dolphin-emu#10486 from ttttcrngyblflpp/negative-axis-scaling Make pos/neg analog axes symmetrical commit 5c687fc Author: Admiral H. Curtiss <pikachu025@gmail.com> Date: Tue Apr 12 23:35:19 2022 +0200 Common/StringUtil: Use simpler formatting for floats and doubles. commit edbb0f4 Merge: 62cc7cc ef8e461 Author: JosJuice <josjuice@gmail.com> Date: Tue Apr 12 21:40:31 2022 +0200 Merge pull request dolphin-emu#10581 from shuffle2/win-pch windows: buildfix if pch not used commit ef8e461 Author: Shawn Hoffman <godisgovernment@gmail.com> Date: Tue Apr 12 12:27:28 2022 -0700 windows: buildfix if pch not used commit 62cc7cc Merge: 2f90a2c 8466d43 Author: Admiral H. Curtiss <pikachu025@gmail.com> Date: Tue Apr 12 10:35:56 2022 +0200 Merge pull request dolphin-emu#10579 from shuffle2/mbedtls-build cmake: fix build of mbedtls from Externals commit 8466d43 Author: Shawn Hoffman <godisgovernment@gmail.com> Date: Mon Apr 11 03:55:47 2022 -0700 cmake: fix build of mbedtls from Externals commit 2f90a2c Merge: 1f4df1d c5b0b92 Author: Admiral H. Curtiss <pikachu025@gmail.com> Date: Mon Apr 11 04:09:02 2022 +0200 Merge pull request dolphin-emu#10574 from EternityShack/master MemoryWidget: Load Files to Memory commit c5b0b92 Author: EternityShack <powmert323@gmail.com> Date: Sun Apr 10 21:02:33 2022 -0500 MemoryWidget: Load Files to Memory commit 1f4df1d Merge: 41a831d abffa93 Author: Pokechu22 <pokechu022@gmail.com> Date: Sun Apr 10 12:51:17 2022 -0700 Merge pull request dolphin-emu#10576 from JosJuice/moltenvk-curlies MoltenVK: Fix pixel shader typo commit abffa93 Author: JosJuice <josjuice@gmail.com> Date: Sun Apr 10 20:51:20 2022 +0200 MoltenVK: Fix pixel shader typo commit 41a831d Author: JosJuice <josjuice@gmail.com> Date: Sun Apr 10 19:44:17 2022 +0200 Translation resources sync with Transifex commit e932a1b Merge: d7709d4 3382408 Author: Mai M <mathew1800@gmail.com> Date: Sat Apr 9 14:19:39 2022 -0400 Merge pull request dolphin-emu#10571 from AdmiralCurtiss/ffmpeg-custom-pix-fmt VideoCommon/FrameDump: Allow user to specify a pixel format. commit 59f299d Author: Pokechu22 <Pokechu022@gmail.com> Date: Mon Nov 29 17:51:02 2021 -0800 Software: Fix zfreeze with CullMode::All commit 164e0f7 Author: Pokechu22 <Pokechu022@gmail.com> Date: Tue Nov 30 22:33:31 2021 -0800 Software: Store offset in Slope This is needed since we need a separate offset for zfreeze to work correctly. It also makes the code a bit less jank. commit 3a742e9 Author: Pokechu22 <Pokechu022@gmail.com> Date: Tue Nov 30 17:51:43 2021 -0800 Software: Remove config to disable ZComploc and ZFreeze These aren't particularly useful, and make the code a bit more confusing. If for some reason someone wants to test what happens when these functions are disabled, it's easier to just edit the code that implements them. They aren't exposed in the UI, so one would need to restart Dolphin to do it anyways. commit d7709d4 Merge: 91192ef 4e9a314 Author: Pokechu22 <pokechu022@gmail.com> Date: Fri Apr 8 19:17:35 2022 -0700 Merge pull request dolphin-emu#10398 from Pokechu22/viewport-rounding Round viewport coordinates when vertex rounding is enabled commit 4e9a314 Author: Pokechu22 <Pokechu022@gmail.com> Date: Wed Jan 26 12:09:00 2022 -0800 Round viewport coordinates when vertex rounding is enabled This should fix https://bugs.dolphin-emu.org/issues/9105 commit dbb857b Author: Pokechu22 <Pokechu022@gmail.com> Date: Wed Jan 26 19:11:11 2022 -0800 VertexShaderManager: Use g_ActiveConfig.UseVertexRounding() commit f6ab317 Author: Pokechu22 <Pokechu022@gmail.com> Date: Wed Jan 26 15:48:12 2022 -0800 Fix typo (GFX_HACK_VERTEX_ROUDING -> GFX_HACK_VERTEX_ROUNDING) commit 91192ef Merge: f92b7f4 5516d46 Author: Mai M <mathew1800@gmail.com> Date: Fri Apr 8 21:24:59 2022 -0400 Merge pull request dolphin-emu#10573 from AdmiralCurtiss/pr10472 DolphinQt/HacksWidget: Re-enable texture accuracy slider if it was disabled because of a custom value. commit 5516d46 Author: 3t13nn3 <etiennepenault1997@gmail.com> Date: Wed Feb 23 16:59:21 2022 +0100 DolphinQt/HacksWidget: Re-enable texture accuracy slider if it was disabled because of a custom value. Fixes https://bugs.dolphin-emu.org/issues/12771 commit f92b7f4 Merge: e3106e8 2e1f890 Author: Mai M <mathew1800@gmail.com> Date: Fri Apr 8 20:53:52 2022 -0400 Merge pull request dolphin-emu#10508 from JosJuice/android-pointer-down Android: Only use getActionIndex for ACTION_POINTER_DOWN/ACTION_POINTER_UP commit e3106e8 Merge: 417531f da12ff0 Author: Mai M <mathew1800@gmail.com> Date: Fri Apr 8 20:53:25 2022 -0400 Merge pull request dolphin-emu#10503 from JosJuice/android-directoryinitialization-thread Android: Actually use a thread for DirectoryInitialization commit 417531f Merge: 004e834 d8a5a88 Author: Mai M <mathew1800@gmail.com> Date: Fri Apr 8 20:52:25 2022 -0400 Merge pull request dolphin-emu#10545 from OatmealDome/mbedtls-2.28.0 Externals: Update mbedtls to 2.28.0 commit 004e834 Merge: d4e4b56 db4d81b Author: Mai M <mathew1800@gmail.com> Date: Fri Apr 8 20:51:36 2022 -0400 Merge pull request dolphin-emu#10558 from shuffle2/lang windows: simplify handling of gettext commit d4e4b56 Merge: dcf27b9 4120870 Author: Mai M <mathew1800@gmail.com> Date: Fri Apr 8 20:50:12 2022 -0400 Merge pull request dolphin-emu#10562 from JosJuice/android-double-tap-get Android: Fix displaying the current value of double tap setting commit dcf27b9 Merge: 120208a df214af Author: Mai M <mathew1800@gmail.com> Date: Fri Apr 8 20:47:57 2022 -0400 Merge pull request dolphin-emu#10572 from AdmiralCurtiss/ffmpeg-log-va-list VideoCommon/FrameDump: Fix log messages with arguments. commit df214af Author: Admiral H. Curtiss <pikachu025@gmail.com> Date: Sat Apr 9 01:42:02 2022 +0200 VideoCommon/FrameDump: Fix log messages with arguments. commit 36134ab Author: Admiral H. Curtiss <pikachu025@gmail.com> Date: Sat Apr 9 01:41:40 2022 +0200 Common/LogManager: Add generic printf-style log function that takes a va_list instead of va_args. commit 3382408 Author: Admiral H. Curtiss <pikachu025@gmail.com> Date: Sat Apr 9 00:45:49 2022 +0200 VideoCommon/FrameDump: Allow user to specify a pixel format. commit 120208a Merge: 23508ca fbc9bf2 Author: Pokechu22 <pokechu022@gmail.com> Date: Fri Apr 8 14:35:03 2022 -0700 Merge pull request dolphin-emu#10543 from Minty-Meeo/initmmio-combine Combine InitMMIO and InitMMIOWii commit 23508ca Merge: 0c7f992 53cf78d Author: Admiral H. Curtiss <pikachu025@gmail.com> Date: Fri Apr 8 05:28:22 2022 +0200 Merge pull request dolphin-emu#7675 from TryTwo/Debugger_Code_Features Debugger: Get target memory in load/store instructions commit 0c7f992 Merge: e021940 5fda8ee Author: Admiral H. Curtiss <pikachu025@gmail.com> Date: Fri Apr 8 03:37:08 2022 +0200 Merge pull request dolphin-emu#10565 from AdmiralCurtiss/wgi-win7 Core/WGInput: Dynamically load winrt function addresses. commit 5fda8ee Author: Admiral H. Curtiss <pikachu025@gmail.com> Date: Thu Apr 7 06:34:39 2022 +0200 Core/WGInput: Dynamically load winrt function addresses. commit e021940 Merge: 7a33659 af316f7 Author: JMC47 <JMC4789@gmail.com> Date: Thu Apr 7 17:01:56 2022 -0400 Merge pull request dolphin-emu#10412 from Pokechu22/sw-efb-peek-alpha Software: Implement pixel engine alpha read mode commit 7a33659 Merge: 6a326a9 bbb64ff Author: JosJuice <josjuice@gmail.com> Date: Thu Apr 7 21:00:24 2022 +0200 Merge pull request dolphin-emu#10485 from JosJuice/real-ocol0-logic-ops Shadergen: Use real_ocol0 workaround for shader logic ops commit 6a326a9 Merge: 17b17e3 1ad7aac Author: JosJuice <josjuice@gmail.com> Date: Thu Apr 7 20:59:17 2022 +0200 Merge pull request dolphin-emu#10544 from AdmiralCurtiss/default-font-size-workaround Qt: Set font size for default debug font. commit 17b17e3 Merge: a8654e2 bed9175 Author: JosJuice <josjuice@gmail.com> Date: Thu Apr 7 20:58:22 2022 +0200 Merge pull request dolphin-emu#10552 from Gamer64ytb/display-cutout Android: Implement expand display cutout option. commit a8654e2 Merge: e3ca3e7 57733dd Author: JosJuice <josjuice@gmail.com> Date: Thu Apr 7 20:58:09 2022 +0200 Merge pull request dolphin-emu#10560 from JosJuice/android-wii-disc-update Android: Implement installing system update from disc image commit e3ca3e7 Merge: 38bf282 6e83e36 Author: JosJuice <josjuice@gmail.com> Date: Thu Apr 7 20:57:55 2022 +0200 Merge pull request dolphin-emu#10568 from Pokechu22/msbuild-WGInput msbuild: Move WGInput to DolphinLib.props commit 6e83e36 Author: Pokechu22 <Pokechu022@gmail.com> Date: Thu Apr 7 11:37:12 2022 -0700 msbuild: Move WGInput to DolphinLib.props It was accidentally put into the main DolphinLib.vcxproj in dolphin-emu#7614. commit 38bf282 Merge: 368342c 5b658e7 Author: Admiral H. Curtiss <pikachu025@gmail.com> Date: Thu Apr 7 14:41:01 2022 +0200 Merge pull request dolphin-emu#10567 from sepalani/fix-float-preview MemoryWidget: Fix preview of zero as float/double commit 5b658e7 Author: Sepalani <sepalani@hotmail.fr> Date: Thu Apr 7 11:55:23 2022 +0400 MemoryWidget: Fix preview of zero as float/double commit 368342c Merge: 242cd4c ed96b8e Author: Admiral H. Curtiss <pikachu025@gmail.com> Date: Thu Apr 7 02:13:21 2022 +0200 Merge pull request dolphin-emu#10528 from TryTwo/PR_Debugger_Memory_Input_Types Debugger: MemoryWidget: add float and integer input types. Add input preview. commit ed96b8e Author: TryTwo <taolas@gmail.com> Date: Wed Apr 6 16:20:55 2022 -0700 Debugger MemoryWidget: add float and integer inputs. Add input preview. Change input logic. Use combobox for options. commit 242cd4c Merge: 085c86a c8d953d Author: Admiral H. Curtiss <pikachu025@gmail.com> Date: Wed Apr 6 14:38:25 2022 +0200 Merge pull request dolphin-emu#10555 from Dentomologist/fix_manual_update_check_when_autoupdate_disabled Updater: Fix manual update check when autoupdate is disabled commit 4120870 Author: JosJuice <josjuice@gmail.com> Date: Tue Apr 5 19:08:58 2022 +0200 Android: Remove nonsense code from double tap setting dialog The currentValue variable doesn't use InputOverlay.OVERLAY_ constants, it uses NativeLibrary.ButtonType constants. Sigh, why do enums have to be so bad on Android that Google recommends against using them :( Anyway, simply not doing anything is a reasonable option here. What happens then is that if the currently selected button is invalid for the current controller, none of the available options in the dialog will be pre-selected. commit cdff426 Author: JosJuice <josjuice@gmail.com> Date: Tue Apr 5 18:58:29 2022 +0200 Android: Fix displaying the current value of double tap setting commit 085c86a Merge: a4445fa 566dfc1 Author: Admiral H. Curtiss <pikachu025@gmail.com> Date: Tue Apr 5 01:14:43 2022 +0200 Merge pull request dolphin-emu#7614 from jordan-woyak/windows-gaming-input InputCommon: Add Windows.Gaming.Input to ControllerInterface. commit 566dfc1 Author: Jordan Woyak <jordan.woyak@gmail.com> Date: Wed Mar 2 15:40:20 2022 -0600 ControllerInterface: Update sort priorities. commit 076a262 Author: Jordan Woyak <jordan.woyak@gmail.com> Date: Tue Oct 20 11:30:15 2020 -0500 InputCommon: Add Windows.Gaming.Input to ControllerInterface. commit bed9175 Author: Gamer64ytb <76565986+Gamer64ytb@users.noreply.github.com> Date: Sat Apr 2 17:58:18 2022 +0200 Android: Implement expand display cutout option. Some ROMs don't have fullscreen feature, for example Pixel Experience, so have a option for that is better. Also you don't need put the app on fullscreen anymore with that. commit 57733dd Author: JosJuice <josjuice@gmail.com> Date: Sun Apr 3 11:04:40 2022 +0200 Android: Implement installing system update from disc image commit d8a5a88 Author: OatmealDome <julian@oatmealdome.me> Date: Sat Apr 2 19:30:22 2022 -0400 Externals: Update mbedtls to 2.28.0 commit a4445fa Merge: 113fdc9 818f6c8 Author: Admiral H. Curtiss <pikachu025@gmail.com> Date: Sun Apr 3 01:22:39 2022 +0200 Merge pull request dolphin-emu#10557 from shuffle2/msvc-secure-scl msbuild: don't explicitly set _SECURE_SCL commit 818f6c8 Author: Shawn Hoffman <godisgovernment@gmail.com> Date: Sat Apr 2 15:22:27 2022 -0700 msbuild: don't explicitly set _SECURE_SCL commit db4d81b Author: Shawn Hoffman <godisgovernment@gmail.com> Date: Sat Apr 2 15:22:02 2022 -0700 windows: simplify handling of gettext fixes binplace on first build commit c8d953d Author: Dentomologist <dentomologist@gmail.com> Date: Sat Apr 2 11:52:51 2022 -0700 Updater: Fix manual update check when autoupdate is disabled commit 113fdc9 Merge: c028f96 1942629 Author: Admiral H. Curtiss <pikachu025@gmail.com> Date: Sat Apr 2 15:17:15 2022 +0200 Merge pull request dolphin-emu#10534 from AdmiralCurtiss/more-cheat-search-qol DolphinQt: More Cheat Search QoL commit c028f96 Merge: 25c173c e6ed77b Author: Admiral H. Curtiss <pikachu025@gmail.com> Date: Sat Apr 2 14:57:39 2022 +0200 Merge pull request dolphin-emu#10550 from shuffle2/cpp-conform msvc: enable conformant __cplusplus macro commit e6ed77b Author: Shawn Hoffman <godisgovernment@gmail.com> Date: Sat Apr 2 02:07:41 2022 -0700 msvc: enable conformant __cplusplus macro commit 25c173c Merge: 4957b2e 88a1acd Author: Admiral H. Curtiss <pikachu025@gmail.com> Date: Sat Apr 2 05:42:33 2022 +0200 Merge pull request dolphin-emu#8732 from dreamsyntax/debugger-function-differencing Qt/Debugger CodeWidget: Record and find specific functions by differencing commit 1942629 Author: Admiral H. Curtiss <pikachu025@gmail.com> Date: Fri Mar 25 09:48:16 2022 +0100 DolphinQt/CheatSearchWidget: Drop whitespace when parsing integers and floats from the user. commit 7f2fed0 Author: Admiral H. Curtiss <pikachu025@gmail.com> Date: Fri Mar 25 09:40:24 2022 +0100 DolphinQt/CheatsManager: Don't leak closed cheat search tabs. commit 48c4ebe Author: Admiral H. Curtiss <pikachu025@gmail.com> Date: Fri Mar 25 09:33:17 2022 +0100 DolphinQt/CheatSearchWidget: Remember state of Hex checkboxes across sessions. commit 1ad7aac Author: Admiral H. Curtiss <pikachu025@gmail.com> Date: Thu Mar 31 05:28:39 2022 +0200 Qt: Set font size for default debug font. commit 4957b2e Merge: cc3f820 4fad2c2 Author: Admiral H. Curtiss <pikachu025@gmail.com> Date: Thu Mar 31 05:24:00 2022 +0200 Merge pull request dolphin-emu#10530 from shuffle2/win-ffmpeg windows: move ffmpeg bins to submodule commit cc3f820 Merge: 0204b11 8f85e38 Author: Admiral H. Curtiss <pikachu025@gmail.com> Date: Wed Mar 30 22:53:05 2022 +0200 Merge pull request dolphin-emu#10542 from TryTwo/PR_MemoryViewWidget_Spacing Debugger MemoryViewWidget: fixed, tighter spacing commit 4fad2c2 Author: Shawn Hoffman <godisgovernment@gmail.com> Date: Wed Mar 23 12:26:22 2022 -0700 framedump: enable compat with utvideo codec commit decaea8 Author: Shawn Hoffman <godisgovernment@gmail.com> Date: Thu Mar 24 04:47:43 2022 -0700 FrameDump: improve debug logging commit 09432ef Author: Shawn Hoffman <godisgovernment@gmail.com> Date: Wed Mar 23 12:24:35 2022 -0700 windows: move ffmpeg bins to submodule udpate ffmpeg to b1cbeabf5e4b3234e895a58bafa371bfb792baf0 enable ffmpeg on arm64 commit af316f7 Author: Pokechu22 <Pokechu022@gmail.com> Date: Sat Jan 29 13:53:54 2022 -0800 Software: Implement pixel engine alpha read mode commit 8882eb0 Author: Pokechu22 <Pokechu022@gmail.com> Date: Sat Jan 29 13:28:17 2022 -0800 PixelEngine: Convert to BitField and enum class commit 45b8ebe Author: Pokechu22 <Pokechu022@gmail.com> Date: Sat Jan 29 13:02:05 2022 -0800 PixelEngine: Remove old comment This comment was added in 76d24f2 (the link was updated in 5799824, but both are dead now). An archived version is at https://web.archive.org/web/20090830050441/http://developer.nvidia.com/object/General_FAQ.html#t6 but it's about the number of available texture units, which doesn't seem relevant to PixelEngine. commit 8f85e38 Author: TryTwo <taolas@gmail.com> Date: Mon Mar 28 16:08:31 2022 -0700 Debugger MemoryViewWidget: fixed, tighter spacing commit fbc9bf2 Author: Minty-Meeo <45425365+Minty-Meeo@users.noreply.github.com> Date: Tue Mar 29 01:16:41 2022 -0500 Combine InitMMIO and InitMMIOWii commit 0204b11 Merge: c08a23b 8a0c681 Author: JosJuice <josjuice@gmail.com> Date: Mon Mar 28 17:55:48 2022 +0200 Merge pull request dolphin-emu#10541 from t895/list-fix Android: Fix games list padding commit 8a0c681 Author: Charles Lombardo <clombardo169@gmail.com> Date: Mon Mar 28 09:42:43 2022 -0400 Android: Fix games list padding Use clipToPadding="false" to prevent top white bar when scrolling commit b5a7ae5 Author: nyanpasu64 <nyanpasu64@tuta.io> Date: Sun Mar 27 22:37:43 2022 -0700 Fix locking the wrong mutex in GCAdapter_Android.cpp ResetRumble() I am not confident there are no race conditions between s_write_mutex, s_controller_write_payload_size, and s_controller_write_payload. But this code should be safer than before. commit 7616027 Author: nyanpasu64 <nyanpasu64@tuta.io> Date: Sun Mar 27 22:27:44 2022 -0700 Remove unnecessary atomic usage in GCAdapter_Android.cpp s_controller_write_payload_size needs to remain an atomic because Read() loads and stores without holding a mutex, Output() stores while holding s_write_mutex, and ResetRumble() stores while holding s_read_mutex! I'm pretty sure this code is wrong, specifically ResetRumble(). commit 871b01a Author: nyanpasu64 <nyanpasu64@tuta.io> Date: Sun Mar 27 22:25:40 2022 -0700 Remove unnecessary atomic usage in GCAdapter.cpp You can safely read or write non-atomic integers on multiple threads, as long as every thread reading or writing it holds the same mutex while doing so (here, s_mutex). Removing the atomic accesses makes the code faster, but the actual performance difference is probably negligible. commit 88a1acd Author: dreamsyntax <dreamsyntax@gmail.com> Date: Wed Apr 8 18:12:23 2020 -0700 implement CodeDiffTool Feature Add Diff button to CodeWidget Add Code Diff Tool window for recording and differencing functions. Allows finding specific functions based on when they run. commit 53cf78d Author: TryTwo <taolas@gmail.com> Date: Thu Mar 17 12:53:38 2022 -0700 Gekko constistancy changes. Add context item to codeview to show or copy a load/store target memory address from instructions at or near PC when paused. commit 2e1f890 Author: JosJuice <josjuice@gmail.com> Date: Sat Mar 12 21:05:59 2022 +0100 Android: Only use getActionIndex for ACTION_POINTER_DOWN/ACTION_POINTER_UP According to the documentation, getActionIndex should only be used with ACTION_POINTER_DOWN and ACTION_POINTER_UP. We've had a few crashes reported in the Play Console regarding invalid pointer indices for getY, and I'm hoping this will help with that. commit da12ff0 Author: JosJuice <josjuice@gmail.com> Date: Tue Mar 8 22:29:07 2022 +0100 Android: Actually use a thread for DirectoryInitialization `((Runnable) () -> init(context)).run()` is just a more complicated way of writing `init(context)`, and doesn't on its own launch a thread. commit bbb64ff Author: JosJuice <josjuice@gmail.com> Date: Sun Feb 27 16:48:28 2022 +0100 Shadergen: Use real_ocol0 workaround for shader logic ops Previously we were using this workaround when using framebuffer fetch to emulate dual source blending, but it seems like we also need to use it when using framebuffer fetch to emulate logic ops, otherwise some Adreno devices get a crash when compiling OpenGL ES ubershaders. Using the workaround in specialized shaders doesn't seem to be necessary, but I've made the same change there for consistency. This gets us closer to fixing https://bugs.dolphin-emu.org/issues/12791 but doesn't actually fix it. commit c95c43b Author: Tony Gong <gr8tony@hotmail.com> Date: Sun Feb 27 09:58:21 2022 -0800 Make pos/neg analog axes symmetrical Currently, the axes for the main and C sticks range from 0-255, with 128 being the mid-point; but this isn't symmetrical: the negative axis has 128 values not including 0, while the positive axis has 127 values not including 0. Normalizing so that the range is 1-255 makes the positive and negative axes symmetrical. The inability to yield 0 shouldn't be an issue as a real GC controller cannot yield it anyway.

Data preview has automatic spacing per byte.
Float is only for singles.
Integer can accept both unsigned and signed numbers up to 4 bytes.
Hex is right aligned and based on the view type. Leading zeroes are always filled automatically.
View-based input:
Fixed a bug where an empty address offset would throw an error.
Loses the ability for infinite length hex string input, but still has it for ascii. Hex max length is 8 bytes. I could go back and redo it if people actually slam massive hex strings in there.
Not sure if anyone is against right-aligned. For me, when inputting 4 byte numbers, I'm either filling all 4 bytes or just operating on the right hand side, like inputting "1e" -> 00 00 00 1E. Also, inputting just one digit when needed is more comfortable "1" -> 01. Plus the input preview clearly shows what will be entered.
/edit Given that more and more types may be added, converted to a combo list. Made types more explicit.
