C2NEmu progress!

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] <virtual serial port> <file>

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🙂

C2NEmu: first assembled prototype

C2NEmu: first assembled prototype

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🙂

This entry was posted in Retrocomputing, Technical and tagged , , , , , , , . Bookmark the permalink.

2 Responses to C2NEmu progress!

  1. nmtcard says:

    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

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s