mirror of
https://github.com/holub/mame
synced 2025-10-05 08:41:31 +03:00
there are 81 track adf files out there, actually I think there can be anything from 1 track to 82 tracks, but we'll cross that bridge when we come to it etc.)
This commit is contained in:
parent
3aa34032cf
commit
d58eef5b12
@ -68,7 +68,7 @@ bool adf_format::supports_save() const
|
||||
int adf_format::identify(io_generic *io, UINT32 form_factor)
|
||||
{
|
||||
UINT64 size = io_generic_size(io);
|
||||
if ((size == 901120) || (size == 1802240))
|
||||
if ((size == 901120) || (size == 912384) || (size == 1802240))
|
||||
{
|
||||
return 50;
|
||||
}
|
||||
@ -79,6 +79,9 @@ bool adf_format::load(io_generic *io, UINT32 form_factor, floppy_image *image)
|
||||
{
|
||||
desc_s sectors[22];
|
||||
UINT8 sectdata[512*22];
|
||||
bool is_hd = false;
|
||||
int tracks = 80;
|
||||
|
||||
for(int i=0; i<22; i++) {
|
||||
sectors[i].data = sectdata + 512*i;
|
||||
sectors[i].size = 512;
|
||||
@ -86,9 +89,25 @@ bool adf_format::load(io_generic *io, UINT32 form_factor, floppy_image *image)
|
||||
}
|
||||
|
||||
UINT64 size = io_generic_size(io);
|
||||
if(size == 901120) {
|
||||
if(size == 901120)
|
||||
{
|
||||
is_hd = false;
|
||||
tracks = 80;
|
||||
}
|
||||
else if (size == 912384)
|
||||
{
|
||||
is_hd = false;
|
||||
tracks = 81;
|
||||
}
|
||||
else
|
||||
{
|
||||
is_hd = true;
|
||||
tracks = 80;
|
||||
}
|
||||
|
||||
if (!is_hd) {
|
||||
image->set_variant(floppy_image::DSDD);
|
||||
for(int track=0; track < 80; track++) {
|
||||
for(int track=0; track < tracks; track++) {
|
||||
for(int side=0; side < 2; side++) {
|
||||
io_generic_read(io, sectdata, (track*2 + side)*512*11, 512*11);
|
||||
generate_track(amiga_11, track, side, sectors, 11, 100000, image);
|
||||
@ -96,7 +115,7 @@ bool adf_format::load(io_generic *io, UINT32 form_factor, floppy_image *image)
|
||||
}
|
||||
} else {
|
||||
image->set_variant(floppy_image::DSHD);
|
||||
for(int track=0; track < 80; track++) {
|
||||
for(int track=0; track < tracks; track++) {
|
||||
for(int side=0; side < 2; side++) {
|
||||
io_generic_read(io, sectdata, (track*2 + side)*512*22, 512*22);
|
||||
generate_track(amiga_22, track, side, sectors, 22, 200000, image);
|
||||
|
Loading…
Reference in New Issue
Block a user