mickelson / attract

A graphical front-end for command line emulators that hides the underlying operating system and is intended to be controlled with a joystick or gamepad.
http://attractmode.org
GNU General Public License v3.0
397 stars 115 forks source link

Request: "Search" ability for large lists #62

Closed ghost closed 9 years ago

ghost commented 10 years ago

I'm aware of the ability to filter lists. However, it would be nice to be able to search within these lists to find what titles more easily. For instance, if I have a list of, say, 200 beat 'em ups, it would be much easier to search for "Ninja Turtles" than to scroll through the list to find it.

flukejones commented 10 years ago

I wonder if we could reuse filters for this. It could be something like a temporary filter, brought up by a mapped button, and works with the current displayed list.

But not everyone is going to have a keyboard hooked up, so perhaps we could have a choice of a present list of words or enter your own.

I can't help but think "letter skip" would negate nearly all of this though.

mickelson commented 10 years ago

yes I'm not sure the best way to do this for users who don't have a keyboard hooked up.

liquid8d commented 10 years ago

Perhaps if the ability to apply custom filters is available through .nut files, a plugin could be created that could display a nice search interface that would apply a text filter.

flukejones commented 10 years ago

I was also thinking about this for a while.

One way would be to have a gui which perhaps lets you scroll through the letters, then press a button to move to the next space, a bit like entering highscores.

Which led me to thinking, perhaps it would be like a temporary filter. Search by any category. And also make me wonder about filters in general.

How hard/easy would it be to add the ability to combine two filters, or apply a filter over a filter over a filter etc? Let's say I had filters such as Shooters, Vertical, Horizontal, 1 Player, 2 Player. I could start with filter "Shooters", then apply "1 Player" and either Vertical or Horizontal.

One thing that does seem to be missing from filters, is an "or" operator. Example, Category containing Shooter "or" Fighter.

------ Original Message ------ From: "liquid8d" notifications@github.com To: "mickelson/attract" attract@noreply.github.com Cc: "Luke Jones" v8motorhead@gmail.com Sent: 5/06/2014 4:10:44 p.m. Subject: Re: [attract] Request: "Search" ability for large lists (#62)

Perhaps if the ability to apply custom filters is available through .nut files, a plugin could be created that could display a nice search interface that would apply a text filter.

— Reply to this email directly or view it on GitHub.

rogalian commented 10 years ago

I think we're moving towards that with the tagging system.

If we could scroll through available options in the filter creation "contains" field for tags (populate it with all the available entries) then we'd have a way of building filters without needing a keyboard.

Extend this practice to fields found in the romlists as well. Everything except name, title and emulator - use it on every field that might contain repetitive information.

What I'd suggest further to this (and I'm not hugely comfortable with it since it makes the ROMlist and all the current sexy filtering methods kind of redundant, and probably make creating filters quite a bit longer): how about instead of the ROMlist being populated with the metadata when it's generated, it simply contains all the unique information about the available games and all the metadata is pulled into auto generated tag files?

I.e: a tag file for each manufacturer (split on / for multiples), a tag file for each word found in catver.ini, a tag file for each year, a tag file for joystick / gun, a tag file for each sub control type (2-way, 4-way), etc etc

I think it would be easier for most people to understand an includes only method of filtering than the regex method. But still leave some fancy bits available on the tags so that they can be more readable (so we could do a "198." to get all the 80s in one line, or a 2-way|4-way|8-way for joystick)

flukejones commented 10 years ago

It would be wise to keep rom metadata as is, I think.

Perhaps a better way to say or explain it, is have a single tag file of some sort, which can be populated with search keywords, external to AttractMode. Unless a good algorithm for collecting strings occurring more than 2 or 3 times, larger than 3-4 characters, is easy to do. btw, I'm speaking more about title searching.

Hmm... Thinking about it, using the above, and combing with something like tag files for each metadata field, which in turn contain each unique identifier (eg, 1P, 2P alt, Shooter, Maze, Capcom etc), and then being able to scroll through these in the filters applicable field.. Is a great idea.

------ Original Message ------ From: "rogalian" notifications@github.com To: "mickelson/attract" attract@noreply.github.com Cc: "Luke Jones" v8motorhead@gmail.com Sent: 9/06/2014 9:47:31 p.m. Subject: Re: [attract] Request: "Search" ability for large lists (#62)

I think we're moving towards that with the tagging system.

If we could scroll through available options in the filter creation "contains" field for tags (populate it with all the available entries) then we'd have a way of building filters without needing a keyboard.

Extend this practice to fields found in the romlists as well. Everything except name, title and emulator - use it on every field that might contain repetitive information.

What I'd suggest further to this (and I'm not hugely comfortable with it since it makes the ROMlist and all the current sexy filtering methods kind of redundant, and probably make creating filters quite a bit longer): how about instead of the ROMlist being populated with the metadata when it's generated, it simply contains all the unique information about the available games and all the metadata is pulled into auto generated tag files?

I.e: a tag file for each manufacturer (split on / for multiples), a tag file for each word found in catver.ini, a tag file for each year, a tag file for joystick / gun, a tag file for each sub control type (2-way, 4-way), etc etc

I think it would be easier for most people to understand an includes only method of filtering than the regex method. But still leave some fancy bits available on the tags so that they can be more readable (so we could do a "198." to get all the 80s in one line, or a 2-way|4-way|8-way for joystick)

— Reply to this email directly or view it on GitHub.

rogalian commented 10 years ago

Kinda ties in with some thoughts I've had regarding history.dat processing. Parse that file for all the adjectives and build tag files based on these. On 9 Jun 2014 22:10, "Luke Jones" notifications@github.com wrote:

It would be wise to keep rom metadata as is, I think.

Perhaps a better way to say or explain it, is have a single tag file of some sort, which can be populated with search keywords, external to AttractMode. Unless a good algorithm for collecting strings occurring more than 2 or 3 times, larger than 3-4 characters, is easy to do. btw, I'm speaking more about title searching.

Hmm... Thinking about it, using the above, and combing with something like tag files for each metadata field, which in turn contain each unique identifier (eg, 1P, 2P alt, Shooter, Maze, Capcom etc), and then being able to scroll through these in the filters applicable field.. Is a great idea.

------ Original Message ------ From: "rogalian" notifications@github.com To: "mickelson/attract" attract@noreply.github.com Cc: "Luke Jones" v8motorhead@gmail.com Sent: 9/06/2014 9:47:31 p.m. Subject: Re: [attract] Request: "Search" ability for large lists (#62)

I think we're moving towards that with the tagging system.

If we could scroll through available options in the filter creation "contains" field for tags (populate it with all the available entries) then we'd have a way of building filters without needing a keyboard.

Extend this practice to fields found in the romlists as well. Everything except name, title and emulator - use it on every field that might contain repetitive information.

What I'd suggest further to this (and I'm not hugely comfortable with it since it makes the ROMlist and all the current sexy filtering methods kind of redundant, and probably make creating filters quite a bit longer): how about instead of the ROMlist being populated with the metadata when it's generated, it simply contains all the unique information about the available games and all the metadata is pulled into auto generated tag files?

I.e: a tag file for each manufacturer (split on / for multiples), a tag file for each word found in catver.ini, a tag file for each year, a tag file for joystick / gun, a tag file for each sub control type (2-way, 4-way), etc etc

I think it would be easier for most people to understand an includes only method of filtering than the regex method. But still leave some fancy bits available on the tags so that they can be more readable (so we could do a "198." to get all the 80s in one line, or a 2-way|4-way|8-way for joystick)

Reply to this email directly or view it on GitHub.

Reply to this email directly or view it on GitHub https://github.com/mickelson/attract/issues/62#issuecomment-45544670.

mickelson commented 9 years ago

I'm going to close this issue in light of Issue #120 which requests a search plugin