Git Product home page Git Product logo

ammister's People

Contributors

city41 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

Watchers

 avatar  avatar  avatar

Forkers

limi matijaerceg

ammister's Issues

Bulk add preview, straggling game left behind

Repro:

  1. open up bulk add
  2. choose manufacturer: capcom
  3. choose manufacturer: SNK

expected: all games in preview are made by SNK
actual: Ghouls n Ghosts is hanging out with the SNK games

  1. keep changing manufacturer, GnG never goes away

image

Failing to download a file should not end the entire update

Today if a file fails to download, this causes the entire update to error out and abort.

Instead, note the file failed, keep going, and report all failures at the end.

This is especially helpful for archive.org, who's servers can come and go at times.

Bulk add: rotation is incorrectly filtering

Seems rotation in bulk add is totally broken in 0.18.0

@Eduardolicious said

 in .18 and still having issues with the new database and incorrectly selecting the filters. i.e. ROTATION = HORIZONTAL still giving tons of vertical results like arkanoid, space invaders, etc, while still also getting some horizontal titles like street fighter etc

changing to ROTATION != VERTICAL giving seemingly different results as well

Moon Patrol is reported as vertical, but it is a horizontal game

Due to Moon Patrol having cropped screenshots, AMMiSTer concludes it is a vertical game.

The short term fix is probably just whip up new screenshots. The long term fix is have a better source of truth on game metadata. Possibly there is a mame db/api out there somewhere that can be used?

Bulk Add Modal: dont force user to type for enumerated values

Today to do a bulk add for say a manufacturer, the user has to type in the name, such as "capcom". This is true of manufacturer, category, series, platform, controls and special controls.

Make them dropdowns instead, gathering all the values from the catalog.

Finish the missing game resolver

The missing game resolver works, but is very raw.

  • Clean up the styling
  • give the option to auto choose games that have only one potential replacement
  • Only ask to resolve games once, if they are in the plan repeatedly
  • drag from catalog for resolution

Setting: decide which dbs to update from

In the settings panel, list out the four dbs and allow the user to toggle each one on/off.

Note: later improvement will be to allow the user to add their own dbs.

Three missing roms

These games show missing rom, as of sync just now:

Nova 2001
Pac-Man Plus
Magical Pumpkin:Puroland de Daibouken

Some issues and random things

Using Windows 11 Build 22621.1105 for all of this testing so far:

  • Catalog --> Open Folder doesn't open the folder before the build catalog is made. So I don't know where the files are going to go.
  • Can't cancel the build catalog action without closing the whole application.
  • File --> Save Plan As... doesn't give response to the user saying that they need to build their catalog/create plan first in order to save it.
  • I just downloaded the latest release, did File --> New Plan, and it tells me to "Please update first" in the msg box that pops up. Might be a misattributed response for the user since I think it means that I need to build the catalog first?
  • The initial catalog build for the MRAs feels very slow, is there a way to speed it up by multiple downloads in parallel like 4-8 at a time? Just curious, I have no familiarity with anything you built this with, only electron as a user.
  • For some reason, if I name a folder Favorites under my new plan, it renames it to favorites (lowercase f) when I click off of it, but when I go to rename again, it shows capital F. So I think the display of this is showing a bug:
    image
    image
  • You might benefit from using the arcade organizer's reference DB for the metadata as there are plenty of MRA's that are outdated. @Toryalai1 has done an excellent job making a large spreadsheet of everything used in the arcade organizer script here --> https://github.com/Toryalai1/MiSTer_ArcadeDatabase/blob/main/ArcadeDatabase_CSV/ArcadeDatabase230110.csv. An example of the benefit of using his DB instead is looking at 1941, 1942, and the 1943 games and seeing how Jotego's MRA's currently don't have the category matching the typical format used by arcade-italia and mame xml's.

MRA file name changes can cause exports to fail

If an update causes an MRA to change its file name, and a plan was built with the old file name, the export will fail if the old MRA is no longer present. Even if the old MRA is still present, the newer one should be used.

Add Resolution criteria to Bulk Add

Requesting the ability to filter by resolutions as well, mainly for analog video output users.

It would be great for preparing folders that are compatible with my SD CRT TV, versus just using an HDMI digital display, versus using a 31kHZ CRT, etc

Building the catalog is slow

Can this be sped up?

A big factor is archive.org's servers are not the fastest.

Grabbing mras and cores can probably be sped up with some parallelization.

Startup is now slow due to catalog auditing

Loading a catalog takes ~3 seconds.

This is because calculating a file hash happens synchronously on the main thread. Node offers no way to do this async or on other threads. crypto-async does not work with Electron. Only solution found so far is child processes.

Bulk add preview

When doing a bulk add, below the criteria list the games that would be added if the criteria was followed.

Setting: optimize speed vs optimize space

In the upcoming settings panel, give the user the choice between optimize speed vs optimize space

optimize speed

When exporting, export all cores and roms, regardless of what the plan says. That way from then on, exports will almost entirely be mras, making them much fater

optimize space

What the app does now. Only export exactly what is needed, and delete anything that is not in the plan.

Add ad-hoc cores (ie beta cores)

Allow users to add a core they have locally by choosing the rbf and mra. From there go and get the rom if they want, and add it to the catalog in a new section.

Bonus: every update, if something looks like it is the stable version of this beta core, let the user know

How does downloading of RBFs work?

Discussed in #79

Originally posted by matijaerceg April 16, 2023
All the games in my list show the red icon, and show the rbf as missing. Does ammister not download the core files on catalog update?

A missing game resolver

When an update comes in, sometimes it changes the name of an mra file. Today that mra just comes up as missing if it was used in a plan. Add a feature for the user to resolve this better.

Notification when there are new updates

Allow AMMiSTer to run in the system tray, and check for updates say every two hours or so. If there are some, notify the user. Of course allow the user to turn this off.

[WIndows] copies rbf files every time in speed mode

This looks to be specific to Windows.

Repo:

  1. create a plan with one game in it
  2. set export mode to speed
  3. export to a directory
  4. export to that directory again

expected: the second export should not copy rbf files
actual: rbf files are copied.

[Windows] After making a new plan from existing plan, folder name is not editable

To reproduce:
Open an existing plan
Go go file > new plan
the New Plan folder name can't be clicked to edit
It this didn't repro, make a subfolder in the plan, click file > new plan, proceed, and now the top level folder name will not be editable

repro isn't 100% reliable, but I can definitely get the issue to happen repeatedly

Launch game on MiSTer from AMMiSTer

I think this is possible, but I'm not totally sure. If it is possible, add this in.

If it is possible and feasible, this might be better than the MAME idea.

Open Plan: remember directory

After the user opens plan, remember what directory it was in and use that as the starting directory for future opens and save as's. Every time they move to a new directory, remember the new one.

Look into using the downloader to update all non-arcade stuff

The downloader looks like it can be configured to update everything except arcade games using filters. This looks promising, as AMMiSTer can just stay focused on arcade games (which is what I would prefer), and the Downloader can handle everything else.

If this works out, inform AMMiSTer users how to do this. Maybe even an option in AMMiSTer that can setup the downloader with the filter set.

Can file metadata be used to detect updates?

So far AMMiSTer does not use file metadata in any way. This causes it to copy files needlessly just to be safe (especially MRAs, roms, and non-dated cores).

Can the file's creation/modify time be used? Is this data reliable across all the hops these files go on?

Port to Avalonia

Once the Electron version is fully done and stable, port the app to Avalonia.

Why? Using Electron allowed me to create the app very quickly as it's using stuff I know very well. But Electron is bulky and wasteful. An Avalonia version should be much smaller, use far less resources, probably be faster, and still works on all major OSes.

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.