Page 1 of 1

Now that everything is packaged...

Posted: Sat Jan 19, 2019 1:42 pm
by JonAbbott
PackMan isn't available for RO3.11, so I've recently been pondering how to let RO3.11 users download pre-packaged games. The obvious route is to code the GUI and have it download/extract the packages.

That involves either linking to sections of PackMan's code (if allowed and its possible), or coding my own download and extraction routines. As packages are simply ZIP's and one of the things on my list is to implement is ZipFS, I can cover the extraction bit. The only additional bit is interpreting PackMan's structure.

The final bit to cover is non-networked Arc's, which is going to be the majority of them. For this, its possibly just a case of providing direct download links so the packages can be downloaded on another machine and copied a similar way to way MAME packages are distributed.

I'd like to know what the community think, please offer up any ideas.

Re: Now that everything is packaged...

Posted: Sun Jan 20, 2019 11:12 pm
by alanb

I've emailed you directly with (hopefully) the answers to your questions. A summary for here, is that PackMan uses a backend library LibPkg and the file formats of package are detailed in a policy guide. All of these are released using an open source licence so you can use them, or improve them, or base some new thing on them depending on what's best for you.

Re: Now that everything is packaged...

Posted: Thu Jan 31, 2019 11:40 am
by JonAbbott
I think I'm leaning towards:
  • Code a bespoke HTTP transfer routine, or use a light version of CURL if one exists that's ARMv2-v8 compatible
  • Background resumeable streaming from the distribution site to cater for large files, such as CD ISO images
  • Code ZipFS and use that to do the package extraction
  • Removal of the packages once installed, to save disc space
  • A GUI that displays all available games, regardless of them having been installed, which downloads them if required
  • Allow package files to be extracted from a local directory, for non-networked machines
  • Auto-updating of packages and auto-dependency installing