RetroArch icon indicating copy to clipboard operation
RetroArch copied to clipboard

Adding cheat codes is now too overcomplicated

Open inactive123 opened this issue 6 years ago • 46 comments

@RetroSven I only noticed this when a user alerted me to this -

adding cheatcodes is now way too overcomplicated I'm afraid to say. Maybe with some alterations we can reduce the barrier to entry here.

  1. Where is the cheat passes option? This made adding new cheats easy. Why is it gone all of a sudden? I don't like this at all.
  2. There is 'Add Cheat to Bottom/Add Cheat To Top'. These are the ONLY options to adding new cheats as opposed to the cheat passes option. This all needs to be made way less cluttered. Not sure of how to do it but there has to be a way to make this less cluttered.
  3. There is only 'Delete All Cheats', and this doesn't even refresh the list. So if you select it, you can still see the cheats you added.

Your average enduser has no idea how to add cheatcodes now. Can we make this more accessible yet still have all the additional functionality for the poweruser? I liked how things were before vs. this at least when it came to adding cheatcodes - this feels way too overcomplicated with how I have to add a cheat to the bottom or the top.

inactive123 avatar Sep 13 '18 20:09 inactive123

Also, there is zero documentation for this on the Libretro docs. Users have no idea how to even add cheat codes to begin with.

inactive123 avatar Sep 13 '18 20:09 inactive123

Old way to add new cheats - highlight "cheat passes", press right however many times you want to add new codes

New way to add new cheats - highlight either "add new code to top" or "add new code to bottom", press enter however many times you want to add new codes

I do not see how one is more or less complicated than the other.

Picture yourself as a new user who has never used RA before. What would be more intuitive to you? A menu option that says "Add new code to top" or something called "cheat passes?" I can tell you that shortly before I started making submissions to RA, I had never before used it and I had no idea what "cheat passes" meant. Even now that I know what function it serves, I still don't understand what "passes" has to do with the number of cheats in the list.

RetroSven avatar Sep 13 '18 21:09 RetroSven

The passes thing was kinda non-sensical (it was reused from the shaders dialog) I see no problem with the new gui except this:

image

This is... too much for a noob imho. Before it was like... type a few numbers in hex, done.

Now you need to really understand what you're doing. Other than that, I hate title case in all the labels 🤣

image

Like this but I guess it's all over the GUI so not much can be done about it, for some reason it bugs me here.

andres-asm avatar Sep 13 '18 21:09 andres-asm

OK, let's forget about the passes thing, but can we please discuss how we can make some of this easier and less intimidating to use for the average enduser? Any thoughts there? Because it does seem overwhelming at first. Any thoughts there @radius @RetroSven ? Perhaps more submenus?

inactive123 avatar Sep 13 '18 21:09 inactive123

Well maybe there could be... two modes to enter cheats Simple would prompt for the user right away

Advanced would show this whole thing I guess.

andres-asm avatar Sep 13 '18 21:09 andres-asm

Yeah - the Advanced mode could be what it is right now, and 'Simple' would be something far more simplified.

inactive123 avatar Sep 13 '18 21:09 inactive123

Do any cores use passes for Cheats? In most cases, the ordering seems irrelevant.

RobLoach avatar Sep 13 '18 22:09 RobLoach

@RobLoach correct the index number is irrelevant

@twinaphex @fr500 how about we simply change the default handler to the emu-managed (e.g. create a new code, select it, and change the handler type to see what I mean)

RetroSven avatar Sep 13 '18 22:09 RetroSven

oh and @fr500 I'm unclear what you mean by title case - are you talking about the capitalization of the menu items?

RetroSven avatar Sep 13 '18 22:09 RetroSven

My suggestions on the user interface are annotated below, with an overall goal to simplify the user interface...

cheatui

Annotations

  • "Load Cheat File (Replace)"
    • Rename to "Load Cheat File"
  • "Load Cheat File (Append)"
    • Rename to "Append Cheat File"
    • Make it only visible when "Show Advanced Settings"
  • "Reload Game-Specific Cheats"
    • Make it only visible when "Show Advanced Settings"
  • "Add New Code to Top"
    • Remove this entry, and default to adding to the bottom
  • "Add New Code to Bottom"
    • Rename to "Add New Code"
  • "Auto-Apply Cheats During Game Load
    • Make it only visible when "Show Advanced Settings"
    • Keep defaulted to FALSE
  • "Apply After Toggle
    • Default this to TRUE
    • Make it only visible when "Show Advanced Settings"
  • "Apply Changes"
    • Make it only visible when "Show Advanced Settings"... Cheats would be applied on toggle.
  • "Cheat #num: desc"
    • The "Cheat " prefix is implied, so remove the prefix
    • Rename to #. Description
    • For example.... 7. Gray And Blue

RobLoach avatar Sep 13 '18 22:09 RobLoach

@RobLoach the cheat index is irrelevant for the emu-handled cheats, but for the new RA-handled cheats they are potentially used because there are options to do things like "run next cheat if [...]" which will look at the next cheat in the list. Therefore, add to top and bottom are both separately useful.

Also, I'm not sure that load/replace should be the default as opposed to load/append. I think the latter is used more and is potentially less accidentally destructive.

I don't plan on making any changes until there is consensus among all the interested parties as to what exactly needs to change.

Regarding the originating comment about the general complaints - I don't give much weight to their comments because they are essentially complaining about two things. 1) that "cheat passes" has been replacing with more meaningful "add cheat to top/bottom" options and 2) "Delete All Cheats" - which they say does not work, but they are not reading the output message. There is a safeguard to prevent casual/accidental selection of the option. A message appears saying that they must press right five times. This person is apparently of the class of folk who just don't like change in general.

Let's not get immediately swayed by a potentially vocal minority. If there are more comments like the original one will you please post the forum or link to the source? I'd like to read them. Bear in mind you generally don't hear from people when they like things - they're more likely to voice complaints. So hearing more complaints than thanks doesn't necessarily mean that the majority of people don't like something.

Adding @daninthemix as well since I'm sure he has an opinion on the matter

Also - wrt adding new codes in general - this seems like it would (or should) be a very uncommon activity. If someone is manually keying in a cheat code, we should find out what their source is and import all of those codes into the internal RA cheat database. People should just be pulling codes from there instead of manually entering them.

RetroSven avatar Sep 14 '18 14:09 RetroSven

I can only speak as a Windows user, but I never, and would never directly edit cheats in Retroarch. for native emu cheats I build the text file and replace or append it (both options need to be readily accessible IMO), and if I were to use the new Retroarch cheats it would be from searching for codes and then adding them. You need to get input from users on other platforms I guess, who can't so easily just edit and then load a text file.

daninthemix avatar Sep 15 '18 10:09 daninthemix

@daninthemix where are you sourcing your cheats to build your text files and why do you need to edit a text file at all? Can't you load your cheats from the RA database and just enable/use the ones you want? I want to understand better because it sounds like whatever you're doing could possibly be done via the UI if it's common enough.

RetroSven avatar Sep 15 '18 13:09 RetroSven

Typically from gamehacking.org as you can tick the codes you want and then download them in libretro format. Of course, as is always the case many codes don't work, so you end up hunting down codes elsewhere (or just grabbing different codes from the same place) and pasting them into the file (or making a new file and appending, since you added that feature). Or I just find I need additional codes as I proceed through a game, etc.

I have played through dozens of games in Retroarch with cheats, in different cores, and have never entered a code manually nor seen any reason to do so.

daninthemix avatar Sep 15 '18 13:09 daninthemix

Got started on some of my suggestions from https://github.com/libretro/RetroArch/issues/7212#issuecomment-421174838 over at this Pull Request.

RobLoach avatar Sep 15 '18 13:09 RobLoach

As noted above, I think the default should be load/append rather than load/replace. I think the more common activity is to want to append.

We may need to come up with a better way to manage the visibility of settings. Hiding all kinds of useful functionality under the notion of them being "advanced" doesn't seem 100% correct to me. When I was new to RA, I only found out about "advanced mode" by essentially drilling down into every menu/submenu item because I was curious. It's doubtful the average end-user even knows an "advanced settings" toggle even exists unless they are seeking some specific functionality and end up googling for it. So they miss out on lots of interesting/useful features in the product because they're hidden by default. It's also problematic when all the "advanced" settings reside under one roof. If someone wants some of the advanced features hidden and others visible, there's no way to do that. If the intention is to avoid clutter, then it should really be at the user's discretion on a more granular basis.

How about a menu navigation mode where users can hide/unhide whatever options they want on any screen? Or just assigning some menu keybinds for things like "hide this menu option" and "unhide all menu options on this page"? Then if people feel the menus are too cluttered or they decide they'll never use a particular menu item, they can just hide it themselves. By default, everything is visible.

RetroSven avatar Sep 15 '18 17:09 RetroSven

I'm just a mere user but the cheat situation was untouched for years until RetroSven came along and added a bunch of QOL features we'd been asking for for a very long time, like auto-saving + loading the cheat state for each game (an obvious feature and one that only came into being about a month ago), and apply-on-toggle, etc.

I, too, feel like the cheat interface is now cluttered - but all those options are useful and I use them, so what are you going to do?

daninthemix avatar Sep 15 '18 18:09 daninthemix

I also don't think just hiding everything behind 'Advanced' is really a good strategy. I disagreed with various things that were moved to 'Advanced' settings before.

How about a menu navigation mode where users can hide/unhide whatever options they want on any screen? Or just assigning some menu keybinds for things like "hide this menu option" and "unhide all menu options on this page"? Then if people feel the menus are too cluttered or they decide they'll never use a particular menu item, they can just hide it themselves. By default, everything is visible.

image

Yuo can acccess this by going to User Interface -> Views. This right now allows you to hide certain categories. However, this still wouldn't help with individual settings/menu entries.

So how are we going to make this work?

inactive123 avatar Sep 15 '18 18:09 inactive123

Change value of "show advanced settings" to off, then remove the advanced setting toggle. Advanced setting functionality will still work, however. Remove the "advanced setting" flag from every menu item that has it. This will result in every menu option being visible.

Add two key/button bindings - one to hide a menu option (which would simply flag it as an advanced feature and, since the advanced settings functionality is still enabled, this will hide the menu item). Another key/button binding will clear the advanced setting flag on all of the menu items on the current menu. This will make everything visible on the current menu.

Then we'd need to have a generic way to track/save these settings, but only save the setting for menu items that have been manually hidden. I.e. no need to clutter up the cfg file with lots of menu items that are visible.

RetroSven avatar Sep 15 '18 20:09 RetroSven

@RetroSven this is a great idea. With one button, just hide menu options we don't want. Simple.

daninthemix avatar Sep 16 '18 12:09 daninthemix

I also don't think just hiding everything behind 'Advanced' is really a good strategy.

While hiding settings is generally the wrong way of fixing the problem, it does ease the interface for users who are new to RetroArch. Similar to Kodi's Basic/Standard/Advanced/Expert settings switch. I enable Advanced Settings when configuring RetroArch initially, and then I hide the advanced settings afterwards, to ease and simplify the interface.

Change value of "show advanced settings" to off, then remove the advanced setting toggle.

I'm likely misunderstanding what you're proposing, but getting rid of Advanced Settings, and requiring the user to know the keybind to show/hide individual menu items seems more complicated.

We're talking about simplifying the cheat code interface, not just hiding settings. The real problem that we're trying to solve is that the cheat UI is overwhelming to new users.

RobLoach avatar Sep 16 '18 19:09 RobLoach

We're talking about simplifying the cheat code interface, not just hiding settings.

Your recent pull request simply hid a bunch of settings under the "Advanced setting" section, though, so I'm unclear why you think this is any different. It's essentially the same thing, just a different way of implementing and allows far more granularity so that everyone has the option to show only the options they want to see as opposed to us making decisions about what we think the user may or may not want to see.

Personally, I want to always see the "Start or Continue" option, but I never want to see either of the "Load" options because I find it more enjoyable to search for them myself. There's no way to anticipate all the permutations of desires that the end-users will want, so instead of a hard-coded set of options flagged as "advanced" (which likely doesn't exactly meet anyone's needs/desires), we open it up and put the power in the user's hands.

RetroSven avatar Sep 17 '18 12:09 RetroSven

Your recent pull request simply hid a bunch of settings under the "Advanced setting" section

Correct, and it was a first step. There is more that we'd need to do. Mostly wanted to get some feedback on it initially.... Would be good to get a curate what we'll do here.

"Star or Continue" could stick on, makes sense to me. Updated the branch with that: https://github.com/libretro/RetroArch/pull/7222 :+1:

RobLoach avatar Sep 17 '18 13:09 RobLoach

Actually, the new Cheat System Feature is pretty good. I was able to create tons of Cheats for FBA. However, there is a Issue I would like to address, if possible here. If I need to create a new Issue, let me know. But here is the Issue: For some Games under the FBA (Current Build), when you try to Start Cheat Search, it does not start. when you go to the Add numbered amount Results to the List, it shows 0 instead of a numbered amount. The Games are listed under my Github Page. https://github.com/Smoker1/RetroArch-174-and-above-Cheats

Smoker1 avatar Sep 22 '18 23:09 Smoker1

@Smoker1 ideally the issue should go in the fb core repo, but I believe I've fixed this - you can either wait until this gets merged:

https://github.com/libretro/fbalpha/pull/241

or you can pull from my fork of fbalpha to try it

RetroSven avatar Sep 23 '18 15:09 RetroSven

I won't merge this in its current state, and i don't see why you would need things like cps video ram for cheat search. @Smoker1's issue is most likely related to the fact he is trying to search cheat on non cps1/cps2/cps3/neogeo games, only those 4 systems got their ram hooked to the retro_get_memory_data/retro_get_memory_size thing.

barbudreadmon avatar Sep 23 '18 16:09 barbudreadmon

I don't think I'm quite a noob at this program, but I cannot figure out the cheats now either.

I go to Quick Menu -> Cheats -> Add New Code to Bottom -> Select "Check #0" -> Now what?

There is no "code" option, unless I change "Handler" to "Emulator" but I have no idea what that means, and clicking on "Code" then doesn't do anything, I cannot figure out how to use this "Code" option at all.

If we're supposed to use the "RetroArch" handler, where does the code go? What's the difference between these handlers?

If we're supposed to be setting both "memory address" and "value" now, that is not acceptable... approximately 0% of casual users have idea any what part of a code is what, and they shouldn't have to.

Also when I tried to delete all cheats I got a message "Press right five times to delete all cheats". What? That is unacceptable. And touch users don't have a right button. "Delete All Codes" should just refresh the menu by itself so all the current cheats are gone.

Over the past few days I have been getting many, many questions from users on discord/etc. on how to use cheats now, and I simply cannot help them because I cannot even figure it out myself.

ghost avatar Sep 23 '18 16:09 ghost

@barbudreadmon @Smoker1 let's please keep this side-conversation in the referenced fba pull request

RetroSven avatar Sep 23 '18 16:09 RetroSven

@bparker06 what is the link to the discord channel in question?

I suggest you ask these people what they were doing in the past. All of the previous functionality is still there. If they add a new code and change the handler to "Emulator" that's the exact same screen as they had before. The "Code" option has always been there - before I made any changes whatsoever. If people are complaining about how to use it, then that has nothing to do with the enhancements I've made related to cheat code searching.

The press-right-five-times thing is a safety measure to prevent accidental clicking. If you've been working for hours on a new set of cheat codes and accidentally click that menu item, all your work is gone.

It should be extraordinarily rare for anyone to manually enter data into the code, memory, value fields. People should either being loading codes from the database or searching for new codes (which will automatically populate the memory/value fields). If anyone is trying to enter code data, then we need to find out why they think they need to do that. If it's because they can't find the code in the RA cheat database, then we should find out where their code was obtained from and update the RA cheat database.

RetroSven avatar Sep 23 '18 16:09 RetroSven

I think possibly the reason why there are so many more questions about cheat codes is because the updates were prominently mentioned in the release notes. Most of the people with questions are probably first-time users of the cheat system. The ones complaining about what to enter for "code" are definitely first-timers. They just have general questions about cheats in general, not necessarily specifically related to any of the new things I added.

RetroSven avatar Sep 23 '18 17:09 RetroSven