[Boards: 3 / a / aco / adv / an / asp / b / biz / c / cgl / ck / cm / co / d / diy / e / fa / fit / g / gd / gif / h / hc / his / hm / hr / i / ic / int / jp / k / lgbt / lit / m / mlp / mu / n / news / o / out / p / po / pol / qa / r / r9k / s / s4s / sci / soc / sp / t / tg / toy / trash / trv / tv / u / v / vg / vp / vr / w / wg / wsg / wsr / x / y ] [Home]
4chanarchives logo
tl;dr: I want (to write) a ROM manager that allows you to keep
Images are sometimes not shown due to bandwidth/network limitations. Refreshing the page usually helps.

You are currently reading a thread in /vr/ - Retro Games

Thread replies: 37
Thread images: 3
File: video-game-collection.jpg (292 KB, 1023x574) Image search: [Google]
video-game-collection.jpg
292 KB, 1023x574
tl;dr: I want (to write) a ROM manager that allows you to keep one set of unique files and let you rename between different sets conventions (GoodSets, No-Intro, etc) and give you stats about how complete is your set in each of these collections.

This one is for the digital retro gaming collection enthusiasts (ROM hoarders).

When it comes to playing old games in emulators and etc, people tend to approach it in several different ways.
Some folks just search for their game, get the ROM and play.
Lots of other folks likes to grab the entire game collections (No-Intro, ReDump, GoodSets, etc..). I'm one of those, but since I moved from GoodSets to No-Intro for my consoles collection, I missed some application that could deal with people who collects two different collections for the same 'set' of games.

The scenario is: if I want to grab the complete GoodSNES collection and also get the complete No-Intro SNES collection, I'll need to grab two separate torrents and will end up with lots of duplicate (and probably differently-named) files.

How come no one ever thought of writing an app to manage ROM collections taking that into account? You point the app to some folders and it can show you how many files you're missing from GoodSNES, how many from No-Intro, and so, and also offer you the option to rename the files among the different naming patterns used by each collection.

I'm thinking of writing such app, I'm pinging to see if it's a common need.

I would write it such that renaming, for example, wouldn't even touch the files itself, maybe use symlinks in the OS level so you can treat the folders as if you really had duplicate files.
>>
It will probably have low demand, but if people realize how useful it is it could become one of those apps that everyone recommends to someone who wants to get into emulation and take off from there. I don't personally need it since I have a lot of GoodSets full of games I'll never play anyway, and if I'm missing a game I'll probably download it individually, but it could definitely be useful.

Are you gonna make one that works with every cartridge-based console?
>>
Yes, the idea was to support the whole set of systems with popular collections out there, pretty much like all the popular ROM managers does (by using DATs with set information or something like that). It would definitely be open source, also.

I also have lots and lots of games I will never play, but the idea struck me when I wen into the HyperSpin world (a very beautiful-to-look-at emulation front-end) and realized they tend to create their HyperSpin's XML out of No-Intro collections - and I was always a GoodSets guy, so I started collecting the No-intro sets from scratch, even though I had most files with different naming convention.

Another nice feature to have would be to generate XMLs for front-ends such as HyperSpin, and assigning the media files to all games that relate (for example, the Super Mario World cartridge box would display for all the SMW variations in the goodsets that relate).

Maybe you're right, I should do it to resolve this need of mine and maybe publish it and see if it gets traction.
>>
>>3111179
>How come no one ever
Because most people download complete sets and know exactly what they have. No one cares what a few kids who download muhrio games one by one need.
>>
>>3111179
ROMs are fucking awful.
>>
>>3113583
You're missing the point entirely. This has nothing to do with people who downloads games one by one, but people who download more than one collection for the same system.

There are a variety of reasons one would want to do that. In my case, I started with GoodSets but needed to get the No-Intro sets to use Hyperspin.

Even for the sake of contributing to the collection scene, damn. One with a full GoodSet can probably seed a No-Intro set with little or no extra download at all, by just renaming the set file sto the proper convention.
>>
>>3113585
pls elaborate, hater
>>
>>3111179
>I would write it such that renaming, for example, wouldn't even touch the files itself, maybe use symlinks in the OS level so you can treat the folders as if you really had duplicate files.


humm if your algorithm were to duplicate files and keep track of filenames and hashes and could then delete duplicates at any time, and re-duplicate whenever you want to copy any of those sets to a media, or seed for a few hours

that way your program could be an optional GUI for an universal script able to run on ARM/x86 droid/ios/nix/macos/win
>>
bump ?
>>
>>3115317
Great idea, I thought of writing it as a script so it would be more universal, and maybe write the GUI in Java or any other universal system that provide an easy to use launcher.

About duplication: my idea was not to keep duplicates at all, but instead use symlinks to point to the actual files. So if you want to collect both the GoodSet and No-Intro sets for your SNES collection, you could have a folder with the complete No-Intro set (actual files, occupying space in the disk), and another for the GoodSNES set (with symlinks named according to the GoodSNES convention, but pointing to the actual files in the other folder - saving space and avoiding duplication).

The OS sees both directories as full of independent files, so you can seed any torrent without doing anything - even though under the curtains the files are unique, not wasting twice the space).

Symlinks are fully supported by Linux and OSX, I don't know about Windows though.. they have some equivalent, I think, I don't know if it behaves the same.

Anyway, the user could have an option to actually duplicate files if he wants, for some reason.
>>
Throw this shit up on a public git repository and start mocking up those design docs!

>>3117461
The choice of programming language to use for the project will be determined by the programmer's time, skill level, and the project's requirements. Before you get into that, I'd start working on the design from the bottom up, the data elements.
The data is naturally relational, so maybe starting up an ERD in something like MySQL Workbench or another SQL modeling tool would be the best to go after bootstrapping the project, as you already seem to have an idea around what features you'd like to see for an initial release.

>symlinks in Windows
Let's take a ride to MSDN:
https://msdn.microsoft.com/en-us/library/windows/desktop/aa365680%28v=vs.85%29.aspx
>Symbolic links are available in NTFS starting with Windows Vista.
Great.
From https://msdn.microsoft.com/en-us/library/windows/desktop/aa365460%28v=vs.85%29.aspx
>Keep the following programming considerations in mind when working with symbolic links:
>Symbolic links can point to a non-existent target.
>When creating a symbolic link, the operating system does not check to see if the target exists.
>If an application tries to open a non-existent target, ERROR_FILE_NOT_FOUND is returned.
Awesome. You'd be able to create your duplicates for need by torrent seeding, as long as the hashes match (!). For some ROM sets this will work; i.e. For Dreamcast, TruRip is a superset of TOSEC.
>>
>>3117504
Nice, you're getting me excited, and you're actually helping already, with this digging in MSDN. I've googled a bit more and handling the multiple symlink semantics across systems may be a bit trickier (actually linux and osx seem to talke fine to eachother, but Windows sees symlinks differently). Anyway, doesn't seem like something difficult to get right.

> The choice of programming language to use for the project will be determined by the programmer's time, skill level, and the project's requirements.

Agreed. I'm good with Java, C#, JS, Ruby and Python. I'd say my skill level is pretty good as well, years working with the first three and some fresh experience with Ruby.
The project requirements are quite messy right now, like you said, they exist in my head (and in this conversation) and yeah, good idea to start writing it more formally. Good thing to get feedback though!

>>The data is naturally relational, so maybe starting up an ERD in something like MySQL Workbench

Yeah.. That's something to think about. At first I didn't think of keeping a db at all. I was thinking about loading the DAT (with the crc32 for the roms, etc) into memory and going from there to scan the collection, mark what's missed, etc.. and store minimal information in the db, maybe just a snapshot of the status after the scan?
How does clrmamepro does it? Something to look into..

Keep going! I may kickstart a git repo after this and maybe put a community design document there or something.
>>
>>3117504
>skill level

Forgot to mentioning I'm experienced with software engineering and programming and etc, but never did anything ROM-related. But I've been curious about how MAME, GoodSets, clrmamepro and all the stuff related works since I begun collecting ROMs, so this sounds like the right time to get a hands on experience :)
>>
another thought, an option to have at the end of filename some identifier for this "ROM handler" followed by some internal unique number for that ROM, or perhaps a hash.

this way the program wouldn't need to rehash all files, just the ones that dont have the filename-tag or the ones that do, but aren't set as read-only (some emulator might have changed the file?) and/or dates mismatch with program internal DB
>>3117461
i forgot by elaborate on the duplication

it would make the script/program universal, and then you could add symlink logic for various platforms... but thats just because im guessing that filesystems symlinks are done in all sort of different manners and wouldn't be easily abstracted away with java classes and something else, but im just guessing and im only an amateur programmer.
>>
>>3113679
In that case, no one cares what a few kids who still keep their rom collection on floppies need.
You're missing the point. No one is going to write software only needed by a few sperglets who can't into managing roms.
>>
>>3111179
>hey guys I'm a first year programming student is this a good idea?

Fuck off. What do you want? Recognition?

Just write the fucking thing then if it actually works discuss it.
>>
File: SimpleDB.png (7 KB, 490x346) Image search: [Google]
SimpleDB.png
7 KB, 490x346
>>3117565
Recalculating the checksums would give you the knowledge that your local files are not corrupted or altered. The data structure might look something like pic related.

>Consoles have 1+ Games
====Games can't exist without the Console
========Games have 1+ Metadata entities
====ROMSets are 0+ (could be added later)
========ROMSets have 1+ Metadata entities

Game_Metadata(ID,CatalogNumber,ReleaseInfo) -> ...but don't want to spend all that time cataloguing game data itself
ROMSets_Metadata(ID,ROMFileName,IntegrityData)
>>
>>3118072

Dude, I've written software before because me and my band mates needed it. So what? If it will solve my problem, I'll do it. If it's a common problem that other people may face, even better.
>>
>>3118084
Hahaha oh my.. I'll bite the bait to make you happy, ok?

I'm no first year programmer, been doing it since 2006, I've got a bachelor in CS and I'm the market for 6 years now, doing mostly web. Soon I'll be relocating to Germany to work in one of the top online shopping companies there, because of my proven skills, so shut the fuck up.
What's with you people and all this unprovoked hate?

I could just go and write it, but it's a complex idea that needs to be well done for it to fulfill my needs. If more people also feels there's space for something like this, if they share the same need I have, it can boost the initiative to get off the fucking chair and start coding. Got it now?
>>
>>3118263
stop replying to bait. fuck.

also point of contact for future progress?
>>
>>3118161
Thanks for the idea, it's simple but this GameMetadata thing may help me solve one of the functionalities I want there: to be able to tell which ROM is related to the same game (since most collections have tons of ROM clones). It sounds like there may be a manager that already does something like that, but my take is to do something automatized to help in configuring a front-end like HyperSpin, for example:

the only official DAT for SNES in HyperSpin is based on the No-Intro set. Even if I rename all of the GoodSets files to No-Intro scheme, the game boxes, cartridge pictures, etc, won't show in the front-end, because there's nothing in the metadata XML saying that Metroid (U) can use the same artwork as Metroid (U) (b1) because they are essentially the same game, different rips of the same version.

The relationship may change though, I would relate the RomSet to a Game, maybe a weak (not necessary) relationship.

Thanks again for the input, I'm compiling this in a draft, and this is helping narrow down the requirements.
>>
>emulating
>in 2016
>>
>>3118275
>programming solutions to problems that don't exist.
>>
>>3118280
>vidya
>any year
you nerds need to grow up, fighting games excluded.
>>
>>3118267
b335696 gmail
Yes it's weird, but I use it for this kind of situations. Reach out.
>>
>>3118161
check it out http://pastebin.com/wMLqWD4j
>>
bump,

damn, threads going to last page within a few hours
>>
>>3118246
In the time you've spent posting in this shit thread any coder worth a pitcher or warm spit could have written whatever you need several times over. Even in PHP or VB or whatever script kiddie language you wrote your bands webpage in.
Like the other guy said, just write the fucking thing. You seem more interesting in discussing what a bad ass HTML "programmer" you are than actually doing anything.
>>
>>3121975
>getting called a fucking dumbass amuses me

I'd say you don't belong here, but you're exactly where you need to be faggot.
>>
File: leD6Ho3.png (33 KB, 498x326) Image search: [Google]
leD6Ho3.png
33 KB, 498x326
>>3111179
ClrMamePro can do all this shit
You load a no-intro dat, click rebuild, set the path to goodset roms and wait.t.t.t.t
It also show how many roms you have/miss
>>
>>3122067
>>3122067
I use clrmame right now for all my collections.
It still won't fix the issue of ending up with twice the wasted disk space, as most files are identical. Also, it won't give you a simultaneous report of all collections for a system: like knowing at a glance that you're missing these X roms from this set but you have them in this other one, etc. Using clrmame you work with one set at a time.
>>
>>3122067
Also, if clrmame was open source I'd do a PR with the symlink feature, but it isn't.
>>
>>3122067
Also, if clrmame was open sourced I'd do a PR with the symlink feature, but it isn't.
>>
>>3122104
you will never need "Super Mario Bros 3 (Brazil)(o43)[b]"
No-Intro contains more than you'll ever need
You can keep no-intro and redump, remove all the junk and never watch back
>>
>>3122117
I agree but I have a little bit of a collector in me still, and GoodSets do have a lot of junk but it does contain my brother's hack of SMW, for example :P And stuff like that..

But yeah, for practical, day-to-day, ready-to-play use, No-Intro and ReDump are the best collections to date, I agree.
>>
>>3111179
Bad news, you're autistic.
>>
>>3122104
>twice the wasted disk space
This thread has wasted more disc space than that. kek
Thread replies: 37
Thread images: 3

banner
banner
[Boards: 3 / a / aco / adv / an / asp / b / biz / c / cgl / ck / cm / co / d / diy / e / fa / fit / g / gd / gif / h / hc / his / hm / hr / i / ic / int / jp / k / lgbt / lit / m / mlp / mu / n / news / o / out / p / po / pol / qa / r / r9k / s / s4s / sci / soc / sp / t / tg / toy / trash / trv / tv / u / v / vg / vp / vr / w / wg / wsg / wsr / x / y] [Home]

All trademarks and copyrights on this page are owned by their respective parties. Images uploaded are the responsibility of the Poster. Comments are owned by the Poster.
If a post contains personal/copyrighted/illegal content you can contact me at [email protected] with that post and thread number and it will be removed as soon as possible.
DMCA Content Takedown via dmca.com
All images are hosted on imgur.com, send takedown notices to them.
This is a 4chan archive - all of the content originated from them. If you need IP information for a Poster - you need to contact them. This website shows only archived content.