Coder Social home page Coder Social logo

2play / everdrive-packs-lists-database Goto Github PK

View Code? Open in Web Editor NEW

This project forked from frederic-mahe/hardware-target-game-database

1.0 1.0 0.0 49.23 MB

Flash-cart optimized file and folder layouts.

Home Page: http://www.epforums.org/showthread.php?101715-MULTI-ROM-SET-EverDrive-Packs-Release-Thread

License: GNU General Public License v3.0

Python 100.00%

everdrive-packs-lists-database's Introduction

EverDrive-Packs-Lists-Database

The EverDrive Packs Lists Project is an archival research initiave with the goal of allowing users to build real-hardware optimized ROM packs based on suggested file/folder layouts compiled by SmokeMonster.

Because most flash-carts require specific ROMs and fixes, it is a monumental task to compile 100% complete/working setups, and is often beyond the capabilities of any one person. Thousands of hours have been invested in the SmokeMonster DataBases (or SMDBs) of this project with the goal of 100% complete, 100% working real-hardware compatible arrangements of the highest quality ROM dumps. File hierarchies are shared via SMDB text files which contain all of the information needed to identify, sort and rename files.

What's in a SMDB file? A SMDB file generated by the parse_pack script is an archival text record describing exact files (using hash values SHA256, SHA1, MD5 and CRC32) and the location of these files withing a folder hierarchy (folder and file names).

SMDBs are provided for a range of flash-carts. These SMDBs allow users to dump all of their legally acquired ROMs into a single folder (zip files accepted). When the build_pack script is run on that directory, the ROMs will be analyzed (via hash comparisons), renamed and sorted into complete, flash-cart friendly Packs, as described in an SMDB. This allows creators to share file and folder setups without having to share the ROMs themselves.

Tools Included

The build_pack and parse_pack scripts are written in python3. To launch a script, install python if need be, and then open a Windows console or a Linux/Unix terminal.

parse_pack.py For making SMDBs (example command):

"C:\XXX\parse_pack.py" -f "C:\XXX\Folder to be parsed" -o "C:\XXX\SMDB.txt"

-f (or --folder) indicates the target ROM pack

-o (or --output) is the text file that will contain the hash values, filenames, and folder structure

build_pack.py For building a pack based on a pre-made SMDB (example command):

"C:\XXX\build_pack.py" -i "C:\XXX\Folder with unorganized ROMs" -d "C:\XXX\SMDB.txt" -o "C:\XXX\Output folder for rebuilt pack" -m "C:\XXX\Missing.txt"

-i (or --input_folder) is the folder containing the unorganized ROMs

-d (or --database) is the SMDB file describing the way your ROMs are organized

-o (or --output_folder) is the folder in which to build the ROM pack

-m (or --missing) is the text file that will list the ROMs missing in order to reach the 100% mark

Options for advanced users:

--file_strategy {copy,hardlink} changes the way files are copied to the destination folder. The default is to physically duplicate the files (copy). The option hardlink avoids file duplication and saves storage space for pack builders. Please note that when copying to a FAT32 SD card, hardlinks are automatically converted into normal files.

-s (or --skip_existing) avoids overwriting files that already exist in the destination folder.

Depending on your python installation, you may need to begin your command with the location of python.exe (for example, C:\Users\XXX\AppData\Local\Programs\Python\Python36-32\python.exe). More information for pack builders are available in the wiki.

GUI

A graphical user interface is available in @Aleyr's repository for both the build_pack.py and parse_pack.py scripts. If you are having difficulty with the command line options, please consider trying the GUI version.

Requirements

python 3.5 or newer

Linux, MacOS, or Windows

(Linux and MacOS users might need to convert the script and SMDB files first with the command dos2unix)

Coding

Scripts and code by @frederic-mahe, with awesome patches by @eatnumber1, @coughlanio and @Slashbunny.

EverDrive Pack SMDB layouts by @SmokeMonsterPacks.

GUI by @Aleyr.

Similar tools

everdrive-packs-lists-database's People

Contributors

smokemonsterpacks avatar frederic-mahe avatar joeldesantos avatar aleyr avatar eatnumber1 avatar cfillak avatar dvsayson avatar bodgit avatar slashbunny avatar

Stargazers

 avatar

Watchers

James Cloos avatar

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.