This evening I finally decided to implement support for the IDX file format in my C2NEmu PC client for TAP playback:
C2NEmu play utility, rel 1.3 - (C) 2016 Luigi Di Fraia Communicates with a C2NEmu device to play TAP files Usage: c2nemu-play.exe [options] Options: -i <index file> -p <position in index file (default is 0)> Examples: c2nemu-play.exe COM9 Vendetta.tap
I myself contributed to the IDX file format (initial contributors were SLC and Gideon), which is pretty simple to understand: it allows a host system such as a Commodore 64 to have quasi-random access to data stored in TAP files, which are sequential in nature, being tape dumps.
An example should do wonders. Continue reading 🙂
For testing purposes I joined together (it’s not a simple append operation if you want to do it properly!) two TAP files, “Silkworm” and “The Great Gianna Sisters”, into a single file, joinedtape.tap. I then defined an IDX file, joinedtape.idx, with the following contents:
# This is a comment 0x14 Silkworm 0x8306a The Great Gianna Sisters ; This is a comment too ' This is another one too
I subsequently ran the C2NEmu client with the following options:
c2nemu-play.exe -i joinedtape.idx -p 1 COM3 joinedtape.tap
The result of the above is that C2NEmu started playback of the TAP file at file offset 0x8306a (“-p 1”), which is where “The Great Gianna Sisters” starts:
C2NEmu play utility, rel 1.3 - (C) 2016 Luigi Di Fraia Communicates with a C2NEmu device to play TAP files 00000020 (hex: 00000014): Silkworm >> 00536682 (hex: 0008306a): The Great Gianna Sisters Buffer time=3:42 Success condition received from COM3
The above is just an example, of course, but as SLC rightly pointed out users might want to think of a game such as one of Epyx’s “Games” with multiple events that one can enable individually. Users would be able to skip the section of the TAP file that loads non-active events and jump straight to useful sections!
Not only that: by scripting multiple invocations of the client application, the tape loading experience on a Commodore 64/VIC20/etc. could improve significantly for those who are nostalgic enough to seek this sort of experience 🙂
Pretty neat!
Good to know about this IDX file format. It could become quite useful for multi load and compilation tapes.
On a related note, after hearing about the PICO-8 fantasy console and it’s ‘virtual’ cartridges, I thought if this concept could be used in a new revision of the c64 TAP format.
In PICO-8 cartridges all game data including cover labels, preview screens, all sorts of game info and instructions are stored in a single PNG file. This way you can have all the entire game related content inside a file that can be used by emulators, frontend managers and so on.
Anyway at this moment it’s just food for thought….
Cheers
Definitely something interesting that deserves some further investigation. Thanks for the heads up!
Pingback: The origin of the IDX format supported by DC2N5-LC, Ultimate-64, etc | Luigi Di Fraia's e-Footsteps