Giter VIP home page Giter VIP logo

steam-rom-manager's People

Contributors

acuteaura avatar apalatn avatar beatlegeuse avatar brianblakely avatar bsinky avatar carjem avatar cbartondock avatar chibichoko avatar danik1601 avatar danmossa avatar dependabot[bot] avatar dozennn avatar dragoondorise avatar eskay993 avatar frogthefrog avatar godsbane avatar immersion95 avatar jessetg avatar karojen avatar kencinder avatar klepp0906 avatar lexarvn avatar maykin-99 avatar nabilfreeman avatar onemorebyte avatar rawdatafeel avatar tlt21 avatar undarkaido avatar viplmad avatar xav83 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

steam-rom-manager's Issues

Multiple ROMs with same name across different emulators

I think I ran into a bug last night. When a game is made, sometimes that game appears on different consoles at the same time. So what we have is multiple roms with the same exact title name but on different emulators. When SRM compiles the App List it only chooses one of those roms to include in the list. For example, I have the roms for both NBA hangtime on SNES and N64. When I build the App List it only uses one of those roms to compile in the list. The end result is only one of the roms being presenting in steam when it builds the Shortcut File.
Thanks!

Generate Applist Error on empty ROM folder

So I discovered if you have multiple parsers, if the last parser/s have an empty rom folder (or find nothing in them/filter all the results out), nothing bad happens and the other parsers run just fine.

However, if any parser that has an empty folder (or finds no files) has a working parser after it, it will stop parsing completely and produce the following error.

"Executing parsers.
Fatal error occurred. See event log for details.
TypeError: Cannot read property 'files' of undefined"

Intermittent "No images available" from ConsoleGrid.com

For certain titles (the Mega-Man Battle Network series and others) images are not scraped consistently from ConsoleGrid.come (And aren't found on SteamGridDB.com).

I reproduced this bug multiple times by simply generating a new list a few times. Occasionally the images would be scraped.

Tested with:
"Final Fantasy IV Advance"
"Dragon Ball - Advanced Adventure"
"Mega-Man Battle Network"
"Pokemon Leaf Green"

Using Online Mode & Greedy Search:

success
Here the image is successfully scraped from ConsoleGrid.com

fail
Here the image is unsuccessfully scraped from ConsoleGrid.com

From the Event Log it appears that the bug is due to a timeout error.

Reduce amount of color variables

Up until now, user could change UI color, however this complicates things on my end by having to define A LOT of color variables. Also, I doubt that color picker is used actively. For this and previous reasons UI color panel will be left available only to developers and all color variables will be generalized. This means that SRM will have a theme from now on.

Using Retrogaming.cloud to match games instead of SteamGridDB

Would it be possible to use Retrogaming.cloud to match games instead of SteamGridDB? Currently you can't add any games to SteamGridDB without contacting the creator while Retro allows any user to create game entries which makes it easier especially if someone has roms that aren't as popular as others. Granted there isn't a ton of quality control yet over excess entries or misspelled entries.

[Enhancement] App List Smart Search Function

@FrogTheFrog After the App List in generated it would be good to have a real time search function for the app list. This would be useful for finding certain games that the user would like to change the grid image on. Currently it can be a chore to find a title in the App List when there is a large ROM library.
Example for Search Field: Super Ma
Example for Results listed real time: Super Mario Bros., Super Mario Bros. 2, Super Mario Bros. 3, Super Mario Bros. World

Saving List Breaks shortcuts.vdf file

Not sure whats wrong with it, but when I try to save my shortcuts using the ROM manager, all Non-Steam Game shortcuts disappear from steam and I have to revert to the backup. I've attached the broken vdf file and original backup.

Corrupt shortcuts.vdf if screenshot was taken

Step to Reproduce

  1. Close Steam
  2. Generate two game entry with steam-rom-manager (SRM), Test Game and Test Gal for example. Set any tag for it, ${Test} for example, then save list.
  3. Open Steam, two new shortcut added to Test category. Open any of them, say, Test Gal, take a screenshot by pressing F12, then exit Steam.
  4. Wait for Steam completely exited. Add prefix New , generate list again, save list.

Expected Result

4 shortcut lies in Test: Test Game, Test Gal with 1 screenshot, New Test Game and New Test Gal.

Actually Result

1 shortcut in Test: Test Gal with 1 screenshot, besides, the shortcuts.vdf is "corrupted", SRM can no longer add/edit it, but Test Gal are still available in Steam library.

Env

  • Platform: Windows 10 x64

  • SRM version: 1.1.3

  • Real Emulator folder: K:\Game\_Emu\WiiU\Cemu

  • Real Game path (including a fake one for testing, basically it's a copy of XCX):

    • K:\Game\_Emu\WiiU\ROMS\Xenoblade Chronicles X (USA) [Loadiine]\code\spaceTravel.rpx
    • K:\Game\_Emu\WiiU\ROMS\test\code\test.rpx
  • SRM config:

    • Type: Glob-Regex
    • Steam category: ${Exotic}
    • Executable: K:\Game\_Emu\WiiU\Cemu\Cemu.exe
    • Roms folder: K:\Game\_Emu\WiiU\ROMS
    • Steam folder: K:\Game\Steam
    • User glob-regex: ${/([^\(]+)/}/code/*.rpx
    • Arguments: -f -g "${filepath}"

Program Hangs

I followed all the steps and downloaded the needed dependencies. After I run this command "E:\emulation\SRM\node_modules\electron\dist\electron.exe E:\emulation\SRM\dist\main.bundle.js" The program launches and it says "Loading App" with a great circle and then it says "Loading Settings" with a green circle, then all I get it the dark gray screen that is on the photo below. Please help with this issue, if its user error then please be patient with my understanding of how your program works. Thanks for your time!

image

Possible bug with steam profile settings

I noticed today that if your steam account is not set to have your user name and password saved on the computer then SRM does not recognize that there is a Steam account on the computer. This may not be a bug at all but I just wanted to let you know about it. If there isnt a fix for it then it should be added to a Tool Tip to have this check box in the picture UNCHECKED. Thanks

image

image

Move image providers from main thread to web workers

Should reduce app stutter and allow to implement more performance inpacting image providers in the future.

Todo list:

  • Split Fuzzy matcher into 2 parts. One for retrieving title list, other for matching.
  • Make a generic provider structure to work on web workers.
  • Add pipes/callbacks for IPC (Inter Process Communication).
  • Fix the worker-loader module error.
  • Rewrite SteamGridDB provider to work with new API.
  • Rewrite retrograming.cloud provider to work with new API.
  • Rewrite consolegrid provider to work with new API.

Use "retrogaming.cloud" as a source for images

Some of my games (such as zelda titles) cannot match due to poorly implemented match functionality in the current image source APIs. Retrogaming.cloud does not have this issue and a nice API, and would make a great addition to this tool!

[Enhancement] Disable Button for Parsers

So that we can have a parser saved even if it's currently inactive, for whatever reason. (Not working, nothing to add, etc)

Ideally, the button would disable the parser from being run until it was enabled again, but the parser would still be saved in the list.

[Enhancement] multi-languages support

It's not necessary but it would be nice, if you want I can translate into French.

Todo list:

  • Create generic language structure with typescript interface for validation
  • Enable string interpolation support for some code sections
  • Rewrite Fuzzy Matcher to use callbacks to transfer information
  • Rewrite parser component into generic form
  • Enable markdown support for some code sections
  • Rewrite instructions in markdown
  • Write SCSS style for markdown
  • Add a way to insert Angular SVG component
  • Add code highlight
  • Rewrite all renderer components to use global language variable
  • Rewrite all renderer services to use global language variable
  • Rewrite all renderer templates to use global language variable
  • Rewrite all renderer libraries to use global language variable
  • Add option to select language

Unsaved parser settings are lost when clicking "Test parser"

  1. Open a previously saved parser
  2. Change settings such as ROMs directory and User's glob
  3. Click the "Test parser" button.
  4. Click back to the parser you were testing. All setting changes are gone.

I would expect the behavior would be to leave the modified settings in place. The primary reason I would ever hit "Test parser" would be to see if my new parser settings work well. I wouldn't want to have to save my parser settings before I got them right.

If you do allow navigating away without losing parsing settings, I can see how this bug report would actually turn into more of an enhancement. A more robust save system which shows each modified parser with a * next to its name so that you are aware it has been edited would then make it apparent that it is not yet saved.

[Enhancement] About screen

I don't see any place in the UI where I can see what version I have. I'm sure I could look at the binaries directly, but in the UI is much nicer. There's a few other helpful things that could be there as well.

  • App version and build number/date
  • Github link to download newer versions
  • Links to help/FAQ
  • Any other relevant links
  • A little self-pimping for the developer
  • Easter egg... you know you want to!

Build: loader-utils version conflict

I get lots of build errors similar to this one:

Module build failed: TypeError: loaderUtils.getOptions is not a function
at Object.module.exports (F:\Users\Danny\Documents\GitHub\steam-rom-manager\node_modules\nested-require-loader\index.js:42:53)
@ ./shared/lang/english/langData.ts 181:28-58
@ ./shared/lang/index.ts
@ ./shared/lib/language-manager.ts
@ ./shared/lib/index.ts
@ ./renderer/components/theme.component.ts
@ ./renderer/components/index.ts
@ ./renderer/app.module.ts
@ ./renderer/app.ts

It seems you have some 3rd party packages which depend on some old versions of loader-utils package. The nested-require-loader is fetching these older versions and it is taking precedence on newer packages that call a new getOptions() function that is required as of version 1.0.0 of loader-utils. I hate dependency hell. ๐Ÿ˜„ I tried forcing the latest version of loader-utils by including it in packages.json, but the old one is still being pulled in anyways. I'm too green with npm package management to figure this out so far.

Removing brackets doesn't remove for some games.

Hello there!

The remove brackets feature is great and does do what it's supposed to however it doesn't remove them from some games. Also would it be possible to exclude removing (Disc 1) brackets? :)

Thanks!

Its posible ignore some files

i have some states in some game folders and some sav files and jpg files there its a way to ignore some format files?

[Enhancement] Version Details

I have had users ask me over the past weeks where the version is in SRM. I tell them that its in the Log and problem solved, but I would like this to be easier for a user to find in a logical place. Could you put the version in a persistent place like in the Settings option as well as the Log?

  • In the Settings option, so that the user can see it in what would be a logical place for a typical user and possibly find it on their own.

  • In the Log, so that it will be posted when they have issues and they post the entire log for tech support.

  • Have the version also show the type of SRM package it is along with the version number? For example, Portable vs Installed. Windows vs Linux? that would help us with troubleshooting because we can just see it in the Log instead of asking more questions. Thanks!

Change layout to grid

Somehow I missed the new css display style - grid. Changing layout to use grid would significantly simplify SRM and would make it easier to add new content.

If you are interested on how it will help, take a look here:
CSS Grid Changes EVERYTHING - Amazing Presentation

TODO memo before 2.1.0 release

Before big push:

  • proofread markdown for ducks and quacks;
  • update changelog;

Before PR:

  • close all milestone issues;
  • update github readme (with mp4 support possibly);
  • move github page to subfolder;
  • play with docker, find out what's wrong with it;
  • make another more technical readme for building stuff.

[Enhancement] Seperate "Rom Directory" With Steam "Start In"

After diving deep into MAME compatibility for SRM. There is one request that I have currently that would make SRM more compatible with MAME. SRM should have a line added to the Parser when Show Advanced Options is turned on. That line should be "Start In". This is the start in directory for steam and is required to start in the MAME home folder as pictured.
image

Then when the above line is utilized then the "ROM Directory" line will just be for looking for the ROM files exclusively and will not have anything to do with altering the "Start In" line for non steam shortcuts.
image

Possibility to change the icons

@FrogTheFrog: There was a possibility in Ice to not only edit the Images for the "Grid view" but also for the icons (instead of the standard emulator icon). This would make especially the standard Desktop List view in steam a lot more appealing. Is it possible to integrate that in your program? Keep up the good work! :)

Certain Titles Cause Fuzzy Title Matching to Hang

As the title says, certain game titles cause the fuzzy title matcher to hang. Specifically, it seems to be an issue with titles that have multiple similar matches, but nothing exact or even close. Titles I've seen cause this are Ratchet & Clank, Fatal Frame, and Destroy All Humans!. The titles list is missing these games, but features multiple sequels to each.

Build error: Cannot find module 'fuzzy'

First time building the project in Windows 10. I get the following error:

ERROR in [at-loader] ./src/renderer/pipes/fuzzy.pipe.ts:2:24
TS2307: Cannot find module 'fuzzy'.

I'm assuming a dependency isn't set up right, but I'm going ahead and posting here quickly in case I don't have time to track it down right away.

If it's relevant, here's the warnings I got in output when I previously ran npm install:

npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN [email protected] requires a peer of webpack@>=0.9 <2 || ^2.1.0-beta || ^2.2.0 but none was installed.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules\7zip-bin-linux):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"linux","arch" :"any"} (current: {"os":"win32","arch":"x64"})
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules\7zip-bin-mac):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch": "any"} (current: {"os":"win32","arch":"x64"})
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch":"any "} (current: {"os":"win32","arch":"x64"})

Build instructions?

Can you please post these? I may assume your app is a docker image, which if so, I know how to build, but including this in your readme would help any others

[Enhancement] Undo on delete

After accidentally deleting a parser I had set up, I think it would be swell to add an undo button after deleting a parser. Just in case.

Default/global user configuration

A seperate user configuration should be made available and made "global". User configuration should have most (not all) of fields that are available in usual user configurations. User then would have to click a switch button near a field title to use value from global configuration.

Easy way to identify ROM from the app list

When an image/title was so far badly matched as to leave you unsure of what ROM it was trying to match, there isn't a quick easy way to identify which ROM you are having the issue with. You can leave that screen and go to the Event Log to try to identify it. Because the ROM path is on the command line shown under the title, then you can hover over the command line and wait about 10-15 seconds for it to scroll to the right far enough to see the name of the file. It'd be much nicer if we could simply get the filename of the ROM shown somewhere on that tile, or perhaps better yet, a hover or right-click display of all the info as would show in the Event Log for that ROM.

SRM has trouble with "+"

@FrogTheFrog I believe there is a possible bug when SRM tries to find a image for a game title. I uploaded a image for a game that has a "+" in its title. The "+" is necessary because it was included in the actual title of the games. One example of this is "Sonic & Knuckles + Sonic the Hedgehog 2" for the Sega Genesis. This is the image for the title http://www.steamgriddb.com/game/Sonic%20&%20Knuckles%20+%20Sonic%20the%20Hedgehog%202/
Here is the properly encoded "+" symbol: http://www.steamgriddb.com/api/grids/?game=Sonic%20%26%20Knuckles%20%2B%20Sonic%20the%20Hedgehog%202&orderby=date&orderdirection=DESC
Here is what SRM is doing: http://www.steamgriddb.com/api/grids/?game=Sonic%20%26%20Knuckles%20+%20Sonic%20the%20Hedgehog%202&fields=author,grid_url

thanks @doZennn for helping me with this issue

Enhance Retrogaming.cloud Integration

It looks like Steam Rom Manager is currently making more requests than necessary when talking to the retrogaming.cloud api?

Currently retrogaming-cloud.worker.ts will make a search request for the title:
/api/v1/game?name=`%${title}%`

Then take every result and make a request to get media:
/api/v1/game/${gameId}/media

At that point it will filter the results by 'name' using the fuzzy logic.
Many search results return 15 results so this expends 16 calls per game to just traverse the list of returned games.

Instead the logic to filter by name should be moved up to the retrieveUrls method.

For instance:
if (listData[i].id !== undefined) promises.push(this.retrieveMediaData(listData[i].id));

Could instead be:
if (listData[i].id !== undefined && listData[i].name && this.proxy.fuzzyMatcher.fuzzyEqual(this.proxy.title, listData[i].name, true, true)) promises.push(this.retrieveMediaData(listData[i].id));

can't generate app list

I can't generate the app list, even when steam is closed, always says
"Please shutdown Steam if it is running when saving, otherwise it might not save correctly."
I'm using the 2.0.0 version

English grammar horrors

There are some nasty grammatical errors in documentation. If you find one, please make a pull request or post some corrections here.

[Question] Trying out the .exe not loading saved data

This is just a dumb question, I am going to try out your .exe for the latest SRM pre-release. When I load it, the parsers that are saved aren't populating. Where does the .exe look for the parser saved file?

Edit: I think i found it under \AppData\Roaming\steam-rom-manager\userData
Is this where I need to dump my old saved data?

Can't open the .exe file, says: "You may not have the appropriate permission to access the item"

Just for the record, I'm that guy on Reddit that asked for a solution on this problem.

I tried multiple tutorials to give the only user present in my PC the "maximum administrator permission" (If it didn't already have it, I didn't get much of the point there) and tried to open multiple releases of SRM, but still I didn't manage to open the .exe file without the error message.

However, when I uninstalled the app through IObit Uninstaller, I noticed that it says: "Steam ROM Manager 2.1.1 (only current user)". Is the "only current user" just purely aesthetic or it has anything to do with how the program handles the permissions by user? Is that possible to revert that so all user (or at least the administrator user) are able to universally modify it?

EDIT: Something that I also found is that this is the only program that places a .exe file on C:\Users\[USERNAME]\AppData\Local (which is more reserved to logs, text files or complimentary files for their respective programs rather than the .exe file itself) while most of the programs that I have are located on C:\Program Files (x86) or C:\Users\[USERNAME]. I'm not sure if that point is relevant on my problem since I tried to extrat the .zip files of the older releases of SRM on those directories and I still received the error message; but I thought that it would be something interesting to point out.

Replaces shortcuts.vdf with new.

This is a problem because it removes all the shortcuts by new ones so if you have non steam games that are not on emulator (kind Uplay) it will remove them.

[Enhancement] Parser to find multiple ROM types

I was setting a up a configuration and I was trying to figure out how to have multiple ROM types in the User's Glob. There are a few different emulators that accept different types of ROM file types. In my ROM library I have multiple ROM types (file types/extension). Do I have to make a different config file for each type of ROM within the same system emulator or can you add the ability to have the parser to look for different ROM file types in a ROM directory. Thanks!
Example:
nickname=Dreamcast
emulator=nulldc
extensions=gdi, cdi
roms directory=E:\emulation\roms\dreamcast

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.