DSKTOOL - A tool for creating Spectrum +3 game loaders

The place for codemasters or beginners to talk about programming any language for the Spectrum.
Post Reply
User avatar
jorgegv
Microbot
Posts: 112
Joined: Mon Aug 09, 2021 4:50 pm

DSKTOOL - A tool for creating Spectrum +3 game loaders

Post by jorgegv »

Hi guys,

I have been lately creating the +3 disk version of Cesare the Somnambule and due to the really tight that everything was laid out in memory at load time, using +3DOS for loading it was not really an option. So I set up to create my own loader in assembler, talking directly to the Floppy Controller with interrupts disabled.

The result of this is a tool to create a disk loader for games or programs which uses a specialized disk format (not +3DOS) and a couple of small ASM stubs which are provided.

For those interested, here is the document that describes the design.

A short extract from that document:

"The motivation behind DSKTOOL is to allow creating disk versions of ZX games for the Spectrum +3 as easily as TAP versions, and reusing the same game binaries from the TAP version. The easies way to achieve this is to use the disk as a sort of "virtual tape", or VTAPE, in which the game data is stored and read sequentially, the same way as a real tape would be used.

VTAPE is just a way to format the disk and data inside it, and a convention for accessing that data in an easy way from the game loader.

This tool generates the VTAPE disk image file (in standard DSK format) that can be later used to boot the game in +3 emulators, or used as a master for physical media generation.

A loader API is also provided to access the VTAPE disk and load the game data."
Xela
Dizzy
Posts: 50
Joined: Tue Apr 18, 2023 8:17 am

Re: DSKTOOL - A tool for creating Spectrum +3 game loaders

Post by Xela »

Interesting idea with the virtual tape! Will definitely have to try your tool myself =)

p.s. from the readme on github:
disassembling the Robocop 3 disk loader (on which this work is loosely based)
Is there any chance to see this disk version of Robocop 3?
User avatar
jorgegv
Microbot
Posts: 112
Joined: Mon Aug 09, 2021 4:50 pm

Re: DSKTOOL - A tool for creating Spectrum +3 game loaders

Post by jorgegv »

Sorry, it's the disc loader from Robocop, not Robocop 3.

About the game: I did not get it, a contact passed me the disassembled loader as a reference.
Xela
Dizzy
Posts: 50
Joined: Tue Apr 18, 2023 8:17 am

Re: DSKTOOL - A tool for creating Spectrum +3 game loaders

Post by Xela »

jorgegv wrote: Fri Apr 12, 2024 10:08 pm Sorry, it's the disc loader from Robocop, not Robocop 3.

About the game: I did not get it, a contact passed me the disassembled loader as a reference.
Oh, I see. No problem - Robocop (the first one) on dsk is available on the Internet :)
User avatar
jorgegv
Microbot
Posts: 112
Joined: Mon Aug 09, 2021 4:50 pm

Re: DSKTOOL - A tool for creating Spectrum +3 game loaders

Post by jorgegv »

Just a comment for those early birds that have already looked at the code (are there any? :-) ):

I found some problems with Gotek drives that in turn were symptoms of deficient FDC emulation in most emulators: everything worked fine except in Gotek drives, and RetroVirtualMachine and Es.Pectrum emulators. It turned out that those emulators had much more faithful FDC emulation, and showed real errors in my code, which other emulators did not catch.

Those errors have been fixed, just in case someone is using the code I published a couple of days ago. Pull again from the repo for updated code.
Post Reply