Automate archives and state for fs-uae
Project description
This little utility is a wrapper on great FS-UAE emulator, to perform some actions, like uncompressing archived files (CD ROMs images, filesystems), launch the emulator and archive emulator save state.
As an example, if there is a collection of CD³² game files and one want to provide configuration for each game, but want to keep ISO images with corresponding files in archive (due to size of those images) than FS-UAE Wrapper is a way to achieve this.
The reason behind writing this wrapper is a need for having a portable set of games/systems where there would be a way for storing the state of either entire filesystem or just console state (in case of CD³²) and keeping size small, preferably in a archive file vs a bunch of files.
Requirements
Python (2 or 3)
fs-uae (obviously :)
Also, there should be archivers programs available for compress/decompress archives. Fs-uae-wrapper supports several types of archives:
lzx - decompress only
rar - if only unrar is available, than only decompression is supported
tar, also compressed with:
bzip2
gzip
xz
There are several archive types which are supported, ranging from tar (compressed with gzip, bzip2 and xz), 7z, rar, zip. lha and lzx. All of those formats should have corresponding decompressors available in the system, otherwise archive extraction will fail.
Installation
Just perform (preferably in virtualenv) a command:
$ pip install fs-uae-wrapper
Usage
After installation you should be able to access new command fs-uae-wrapper, and its invocation is identical like fs-uae binary:
$ fs-uae-wrapper [fs-uae-config-file] [parameters]
There is special option for passing wrapping module, which might be placed directly in fs-uae configuration or passed as an option:
[config]
...
wrapper = cd32
...
or
$ fs-uae-wrapper --wrapper=cd32
In this case there would several things happen. First, Config.fs-uae would be searched, read and there would be wrapper option searched. If found, specific module will be loaded and depending on the module, there would be performed specific tasks before fs-uae is launched and after it.
Assumption is, that configuration file are written in portable way, so the are saved as relative configuration file (hence the name Config.fs-uae, even if the are named differently. If certain wrapper is specified, it will create temporary directory and place the configuration file there as Config.fs-uae.
If no wrapper option would be passed either as an config option or command line argument, all command line options will be passed to the fs-uae executable as-is.
Modules
Currently, three wrapper modules are available:
plain
cd32
archive
plain
Options used:
None
Plain module is kind of dummy or failsafe if you will, since all it do is run fs-uae with provided configuration and command line options. It will be chosen in case when there is no wrapper option provided neither via the configuration file nor command line parameter.
cd32
Options used:
wrapper (required) with cd32 as an value
wrapper_archive (required) path to the archive with CD32 iso/cue/wav
wrapper_archiver (conditionally required) archiver to use for storage save state
wrapper_gui_msg (optional) if set to “1”, will display a graphical message during extracting files
wrapper_save_state (optional) if set to “1”, will load/archive save state directory, defined as $CONFIG/[save-state-dir-name] using provided wrapper_archiver archiver. If this option is enabled, wrapper_archiver will be required.
Let’s see some sample config for a game, which is saved as ChaosEngine.fs-uae:
1[config]
2wrapper = cd32
3wrapper_archive = ChaosEngine.7z
4wrapper_archiver = 7z
5wrapper_gui_msg = 1
67
amiga_model = CD32
8title = The Chaos Engine CD32
910
cdrom_drive_0 = Chaos Engine, The (1994)(Renegade)(M4)[!][CDD3445].cue
1112
save_states_dir = $CONFIG/fs-uae-save/
1314
joystick_port_1_mode = cd32 gamepad
15platform = cd32
Next, the invocation of the wrapper would be as follows:
$ fs-uae-wrapper ChaosEngine.fs-uae
Now, there several thing will happen:
Config file will be read, and wrapper module will be find (because we already put it on line 2)
New temporary directory will be created
Archive with game assists will be extracted in that directory
Configuration file will be copied into that directory, and renamed to Config.fs-uae
If wrapper_save_state is set, and there is saved state archive, it also would be extracted there
fs-uae will be launched inside that directory
Next, after fs-uae quit, there will:
Optionally create archive containing save state with name like the configuration file with additional _save suffix. In this example it would be ChaosEngine_save.7z.
Wipe out temporary directory
archive
Options used:
wrapper (required) with archive as an value
wrapper_archive (required) path to the archive with assets (usually means whole system directories, floppies or hard disk images)
wrapper_archiver (conditionally required) archiver to use for storage save state
wrapper_gui_msg (optional) if set to “1”, will display a graphical message during extracting files
wrapper_persist_data (optional) if set to “1”, will compress (possibly changed) data, replacing original archive
wrapper_save_state (optional) if set to “1”, will archive save state directory, defined as $CONFIG/[save-state-dir-name] using provided wrapper_archiver archiver. If this option is enabled, wrapper_archiver will be required.
Example configuration:
1[config]
2wrapper = archive
3wrapper_archive = Workbench_3.1.tar.bz2
4wrapper_archiver = lha
5wrapper_gui_msg = 1
6wrapper_persist_data = 1
7wrapper_save_state = 1
8...
And execution is as usual:
$ fs-uae-wrapper Workbench.fs-uae
This module will do several steps (similar as with cd32 wrapper):
create temporary directory
extract provided in configuration archive
extract save state (if wrapper_save_state is set to 1 and archive with save exists)
copy configuration under name Config.fs-uae
run the fs-uae emulator
optionally create archive with save state (if save state directory place is not a global one)
optionally create new archive under the same name as the original one and replace it with original one.
This module is quite useful in two use cases. First is a usual work with Workbench, where there is a need to keep changes of filesystem. Second is the opposite - if there is a need to test some software, but not necessary keep it in a Workbench, than it will act as a temporary copy of the system, so that next time fs-uae will be run, there will be no files of tested software cluttering around.
License
This work is licensed on 3-clause BSD license. See LICENSE file for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file fs-uae-wrapper-0.5.tar.gz
.
File metadata
- Download URL: fs-uae-wrapper-0.5.tar.gz
- Upload date:
- Size: 11.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0582d5f9f6782cb5af86579cbba5499970838c292ce8ba30e11bd830df6b6f57 |
|
MD5 | d91af06405199b64f24c6a005b978982 |
|
BLAKE2b-256 | 363784f731980d370eec34a22d96685360d7a7894161271784df354ea4df407b |