city41 / ammister Goto Github PK
View Code? Open in Web Editor NEWArcade game manager for the MiSTer
License: MIT License
Arcade game manager for the MiSTer
License: MIT License
Now that plans have auditing, extract that out into a common place to also audit the catalog. Audit upon launch and re-audit after an 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.
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
Originally posted by matijaerceg April 16, 2023
Would be great to make folders for games that allow more than one player, and especially games that allow 3 or more players.
This db has lots of good metadata on games.
The db contains the hash for mras and rbfs, but when storing the hash, it is actually calculated from local data. This hash should be the one from the db. This is especially important from auditing, as the hash check is not very useful.
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?
I have a test plan that just has all the street fighter games in a subfolder called Fighters. If I export this plan repeatedly without making any changes, every second time I run it, it deletes all the cores/roms/mras, and every other time it adds them back.
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.
The missing game resolver works, but is very raw.
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.
These games show missing rom, as of sync just now:
Nova 2001
Pac-Man Plus
Magical Pumpkin:Puroland de Daibouken
Building the catalog takes a long time, allow it to be canceled cleanly.
Looking at get started guide
https://github.com/city41/AMMiSTer/wiki/Getting-Started#deleting-games
I realize now that my question about the trash can in the discussions
seems to be a bug. Nothing happens when I click the trash can icon.
Using Windows 11 Build 22621.1105 for all of this testing so far:
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: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.
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
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.
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.
Surprisingly, Electron's IPC module blocks the renderer process, even when using it in "async" mode. The solution looks to be using WebSockets.
In the settings panel, give the user the option to download roms or not
When doing a bulk add, below the criteria list the games that would be added if the criteria was followed.
In the upcoming settings panel, give the user the choice between optimize speed vs optimize space
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
What the app does now. Only export exactly what is needed, and delete anything that is not in the plan.
Keep the three most recently opened plans in the file menu for easily re-opening.
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
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?
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.
I added a game to the plan and exported to mister.
Then I added another game to the same plan, and exported to mister again, which caused ammister to re-copy all the rom files to the MiSTer.
Seems like a bug, unless I'm misunderstanding something.
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.
This looks to be specific to Windows.
Repo:
expected: the second export should not copy rbf files
actual: rbf files are copied.
After doing an export on Windows, the export log for it is nowhere to be found. No idea why.
Seems that the other issue #84 where Space Mode was sometimes deleting on export isn't resolved. This is with 0.25.4 on Win10
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
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.
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.
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.
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?
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.
Region is missing as a bulk add criteria. It should be a dropdown, see #14
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.