Support for Atari ST floppy disk file format
mithrendal opened this issue · 6 comments
If EmuTOS kickstart rom replacement is installed in vAmiga kickstart rom socket
vAmiga looks and feels like an Atari ST 🤓
Here vAmiga on iPad via (vAmigaWeb)
Tried to throw some .ST disks on it failed…
It does not accept these Atari floppy disks … it seems so.
for example this disk
More findings:
- Everything works fine if vAmiga is compiled with debug option
ALIGN_HEAD = 1
. This option causes the disk head to be repositioned at the beginning of a track whenever the head moves. In reality, the head will be somewhere in the middle of a track as the head can step any time.
Bottom line: EmuTOS may (unintentionally) expect a specific disk layout, i.e., it seems to depend on two consecutive tracks to be aligned in a certain way.
Even more findings...
- The game works fine if the track size is increased... (e.g., to 14668)
void
FloppyDisk::init(Diameter dia, Density den)
{
diameter = dia;
density = den;
u32 trackLength = 0;
if (dia == INCH_35 && den == DENSITY_DD) trackLength = 12668;
if (dia == INCH_35 && den == DENSITY_HD) trackLength = 24636;
if (dia == INCH_525 && den == DENSITY_DD) trackLength = 12668;
if (trackLength == 0 || FORCE_DISK_INVALID_LAYOUT) {
throw VAError(ERROR_DISK_INVALID_LAYOUT);
}
// REMOVE ASAP
trackLength = 14668;
for (isize i = 0; i < 168; i++) length.track[i] = trackLength;
clearDisk();
}
Hi, is this the way to have a new emulator ?
VirtualSt ?
If this could be possible it would be nice !
A new VirtualST emulator would be a great idea! There are no good ST emulators for Mac, and there would be a good way to improve knowledge for TOS.
If "convert" VAmiga to VirtualST could be not too complex it would be fine to run a ST with blitter and 1MB ram emulated !
Atari hardware should be less than Amiga "multi-cpu" or something like.
Bye
I have too much on my plate to write an ST emulator myself (besides, I never had an ST, thus lacking the necessary passion for the device). What might come is an Atari 2600 emulator at some point in time (just for fun), but also not in the short term.