Emulation Request

want to talk about MESS/model b/beebem/b-em/electrem/elkulator? do it here!
User avatar
billcarr2005
Posts: 1239
Joined: Fri Sep 09, 2005 3:01 pm
Location: UK
Contact:

Re: Emulation Request

Post by billcarr2005 » Wed Dec 05, 2012 1:27 am

Some Tynesoft disks, protected by A.J. PRESTON, there are also references
SEKUREX PROTECTION SYSTEMS '88. NOW THERE ARE NO LIMITS.THIS PROTECTION SYSTEM(S) REACHES THE PARTS OF THE BBC THAT NO OTHER PROTECTION SYSTEM CAN!

SEKUREX PROTECTION SYSTEMS WILL SOON BE AVAILIABLE ON THE 520ST WITH AN AMAZING 100% INCOPYABLE FORMAT.

A sector is written as being &200 bytes in the track ID, but with a data CRC error. Reading &100 bytes for that sector, the same as the others in the track gives no error.
Attachments
TYNESOFT FSD.zip
Winter Olympiad 88
Indoor Sports
Boulder Dash
Saigon
(200.58 KiB) Downloaded 139 times

User avatar
Pernod
Posts: 1302
Joined: Fri Jun 08, 2012 10:01 pm
Location: Croydon, UK
Contact:

Re: Emulation Request

Post by Pernod » Sun Dec 09, 2012 7:25 pm

This is an excellent step for BBC floppy preservation and would really like to see this new format succeed and be accepted as the official standard for archiving protected discs. The fdi format is far too bulky and wasteful for this purpose, and not suitable for writing back to disc.
What are the current limitations of fsd? I guess in theory if a disc was copyable, using Enigma, Disk Duplicator 3, etc., then it should be archivable with fsd, correct?
Could an emulator (potentially) convert fdi to fsd?
- Nigel

BBC Model B, ATPL Sidewise, Acorn Speech, 2xWatford Floppy Drives, AMX Mouse, Viglen case, BeebZIF, etc.

User avatar
billcarr2005
Posts: 1239
Joined: Fri Sep 09, 2005 3:01 pm
Location: UK
Contact:

Re: Emulation Request

Post by billcarr2005 » Wed Dec 12, 2012 9:23 am

A current limitation is in the reading of sectors with bad lengths. I copied the read code from Enigma Disc Imager which reads the sectors again at different lengths if it encounters a data CRC error. Some disks take advantage of this and have deliberate CRC errors to make the program read the wrong lengths. Luckily it's usually easy enough to notice the sector being used for protection from the report created.
I think FDI has it's limitations too. Some disks refuse to load completely for some reason.
I've managed to create an FSD of disc duplicator 3 from a sector dump I made before the disk crumbled. So long as the sector can be read, and the sector ids recorded, then in theory a FSD can be made. I don't see any reason why FDIs can't be converted. I have a fairly large collection of disks I'd be happy to archive :-)
I'm happy to share the disc8271.CPP I've butchered to add FSD support, if anybody can improve the coding ;-)

User avatar
billcarr2005
Posts: 1239
Joined: Fri Sep 09, 2005 3:01 pm
Location: UK
Contact:

Re: Emulation Request

Post by billcarr2005 » Fri Jan 11, 2013 10:44 am

The Acornsoft games protected by Jez / Argonaut. Rewrote / tidied / made the code more logical. Seems it was relying on the error result of an unformatted sector, which the source had set on 0x1E instead of 0x18!
Hopper, Carousel, Crazy Tracer, Kingdom of Hamil, Starship Command and Missile Base.

EXILE can have the disc sound enabled now, so must've fixed something else along the way.
The Music System isn't able to read FE81 to get the last disk read error code, and also trips up on a timer check.
Attachments
FSDBeebEM.zip
Updated (again)
(529.13 KiB) Downloaded 144 times
Acornsoft-JEZ.zip
(70.07 KiB) Downloaded 133 times

User avatar
billcarr2005
Posts: 1239
Joined: Fri Sep 09, 2005 3:01 pm
Location: UK
Contact:

Re: Emulation Request

Post by billcarr2005 » Fri Jan 11, 2013 9:03 pm

Mini Office II
Turns out the disk i initially imaged was corrupted on two sectors.
I've still not been able to find a disk which has data on track 42!
Attachments
003 Mini Office II.zip
(93.93 KiB) Downloaded 131 times

User avatar
CMcDougall
Posts: 6250
Joined: Wed Feb 02, 2005 3:13 pm
Location: Shadow in a Valley of Scotland
Contact:

Re: Emulation Request

Post by CMcDougall » Wed Jan 23, 2013 12:18 am

Bill, i tried the above file FSDBeebEM.zip in my beebEm414 folder, loaded one of your files, but when *. or *EXEC !boot, i get Err :?

If you want a loan of these discs to archive (if not knackered already) and not to sell on eBay for £300+, let me know, i can grab them next weekend :)

All Beeb B DFS 51/4" :

Go : ASoft, Acheton :ASoft,
Karate Combat : SSoft (double step)

a copy of Exile, but i could not get it to copy with ADI rom

Phantom Combat : Doc Soft, now this was given to me by a school mate, as it did not work on his 8271FDC and would not copy with ADI rom. BUT i have another copied version that does copy with ADI rom :?

a copy of Hyper Sports

Not protected (if i mind ) & original \/
Sporting Triangles : CDS
007 the living daylights : Exasoft

Col :wink:
ImageImageImage

User avatar
billcarr2005
Posts: 1239
Joined: Fri Sep 09, 2005 3:01 pm
Location: UK
Contact:

Re: Emulation Request

Post by billcarr2005 » Wed Jan 23, 2013 9:40 am

Col, i've already imaged my Acornsoft games (just missing JCB Digger!)
My Superior Software games are patiently sitting in a pile, since there isn't so much protection on the discs for me to get excited about! :P
I think i've got the 3, or 4?, different copies of Exile, although i've only FSD'd V1 at the moment.
I found 2 original Phantom Combats last night. One images and works fine [label says BBC SERIES], as it is a standard 40 track disc with some deleted data.
The other disc doesn't work on my BBC either [label says BBC 'B' 32K], since it's attempting to run *W1S LOGO, when LOGO doesn't exist. It seems tracks 1 through 8 might've been formatted at some stage :(

I'd be interested in checking the one which wouldn't copy with ADI, or if you've got a BBC, an UPURS cable and around 6 minutes of your time, you could try it yourself! :)

I've got the other games you mentioned too, have got to around the 200+ disk images created mark :wink:

Fortress is an oddball format. The Level 9 adventures are good too, had to give Lords of Time a water bath before i could image it! :D
I found The Sentinel , protected by Rob Northen/ACP to be an early example (1986) of different sector sizes per track.

I've found that it's usually best to close FSDBeebEM between loading disc images, since i don't think it's freeing the correct amount of memory, since the disc images aren't all the same size, still need to tweak that. Which game was it that didn't work? Some catalogues are messed up because control codes that would usually prevent the display are stripped, although it seems to only affect Watford DFS. The colour disappears on DD3 catalogue too.
Thanks for giving it a go!

User avatar
CMcDougall
Posts: 6250
Joined: Wed Feb 02, 2005 3:13 pm
Location: Shadow in a Valley of Scotland
Contact:

Re: Emulation Request

Post by CMcDougall » Thu Jan 24, 2013 12:51 pm

The other disc doesn't work on my BBC either [label says BBC 'B' 32K], since it's attempting to run *W1S LOGO, when LOGO doesn't exist.
thats the one! but it works on my beeb 1770FDC fine. (well, did 20+yrs ago!)

aint got round to an UPURS cable....as yet, was very tempted before xmas, but time just evaporates at weekends/holidays (but not during working week :sad: )

will try FSDBeebEM on my main PC winXP as just very lazy at moment with this laptop win7, then it will probably work! :D
Thanks for giving it a go!

of course mate, always into giving things a go :wink:
ImageImageImage

User avatar
billcarr2005
Posts: 1239
Joined: Fri Sep 09, 2005 3:01 pm
Location: UK
Contact:

Re: Emulation Request

Post by billcarr2005 » Thu Jan 24, 2013 4:41 pm

CMcDougall wrote: will try FSDBeebEM on my main PC winXP as just very lazy at moment with this laptop win7, then it will probably work! :D
I'm compiling it on Microsoft Visual Studio 2012 Express and running in on my laptop, Windows 7 x64 without any problems, except the obvious ones :D

User avatar
Pernod
Posts: 1302
Joined: Fri Jun 08, 2012 10:01 pm
Location: Croydon, UK
Contact:

Re: Emulation Request

Post by Pernod » Fri Feb 01, 2013 6:56 pm

What's the latest on the exellent FSDBeebEm? Could really do with a few bug fixes. I'm getting disc errors when I load a fsd in 0 and a ssd in 1, Drive fault 53. I can't deprotect the Topoogika discs without a blank disc in 1.
- Nigel

BBC Model B, ATPL Sidewise, Acorn Speech, 2xWatford Floppy Drives, AMX Mouse, Viglen case, BeebZIF, etc.

User avatar
billcarr2005
Posts: 1239
Joined: Fri Sep 09, 2005 3:01 pm
Location: UK
Contact:

Re: Emulation Request

Post by billcarr2005 » Fri Feb 01, 2013 8:11 pm

Since i've only been butchering the disc8271.cpp to get FSDs working, unfortunately SSDs are a little broken. I've been constantly altering & modifying the code as new disks are imaged which consequently show the places where the emulation code falls short.
I emailed Mike Wyatt at the end of November to ask whether FSD support could be slipped into the main code, and got a reply towards the end of last year saying he might have the chance to look at it in a month or two, so i'm hopeful it should happen. I've now got around 200 different games imaged, and anybody who wants to is welcome to take a look at the code i've cobbled together!

User avatar
Pernod
Posts: 1302
Joined: Fri Jun 08, 2012 10:01 pm
Location: Croydon, UK
Contact:

Re: Emulation Request

Post by Pernod » Fri Feb 01, 2013 8:43 pm

billcarr2005 wrote:I emailed Mike Wyatt at the end of November to ask whether FSD support could be slipped into the main code, and got a reply towards the end of last year saying he might have the chance to look at it in a month or two, so i'm hopeful it should happen. I've now got around 200 different games imaged, and anybody who wants to is welcome to take a look at the code i've cobbled together!
Ok thanks, hope to see it officially supported soon as it's a huge improvement over fdi. Unfortunately my C++ skills are limited so won't be of much use there.
- Nigel

BBC Model B, ATPL Sidewise, Acorn Speech, 2xWatford Floppy Drives, AMX Mouse, Viglen case, BeebZIF, etc.

User avatar
billcarr2005
Posts: 1239
Joined: Fri Sep 09, 2005 3:01 pm
Location: UK
Contact:

Re: Emulation Request

Post by billcarr2005 » Fri Feb 01, 2013 11:06 pm

Check your PM!
When you've seen the mess i've made in the code, you'll discover that my C++ skills aren't up to much either :D

User avatar
richardtoohey
Posts: 3590
Joined: Thu Dec 29, 2011 5:13 am
Location: Tauranga, New Zealand
Contact:

Re: Emulation Request

Post by richardtoohey » Sat Feb 02, 2013 1:32 am

Can I see the latest code, too, please?

Don't think I'll do much useful with it but would like to see what you are up to.

My tinkering has been limited to older Unix code-base.

Thanks.

BBCB+64K
Posts: 221
Joined: Mon Mar 22, 2010 9:51 pm
Location: North Norfolk
Contact:

Re: Emulation Request

Post by BBCB+64K » Mon Feb 04, 2013 7:06 pm

@bill,

Is it possible to patch the 1770 module in BeebEm so that the B+ and Master can load and run FSD images?

Steve
My current setup...

BBC B+ 128k with external DataCentre with 2GB CF Card, 64MB ARM7TDMI Co-Processor and BeebOPL.

User avatar
billcarr2005
Posts: 1239
Joined: Fri Sep 09, 2005 3:01 pm
Location: UK
Contact:

Re: Emulation Request

Post by billcarr2005 » Mon Feb 04, 2013 8:06 pm

BBCB+64K wrote:@bill,

Is it possible to patch the 1770 module in BeebEm so that the B+ and Master can load and run FSD images?

Steve
Yes, it should certainly be possible... I've imaged Dr Who and the Mines of Terror - Master Version, so it would be nice to get that working and Stryker's Run too. I know they're already available, but it's good to have them in the original state.
I'm currently figuring out how to emulate a Data CRC error which will modify a sector's contents at the read stage, required for Sherston titles.
Initially, i just wanted to check that the format was workable under emulation, and i think i've achieved that. :)
Red Arrows didn't work, but i've since discovered that the error is due to an emulation fault not linked to the disc.

BBCB+64K
Posts: 221
Joined: Mon Mar 22, 2010 9:51 pm
Location: North Norfolk
Contact:

Re: Emulation Request

Post by BBCB+64K » Mon Feb 04, 2013 8:36 pm

billcarr2005 wrote:Yes, it should certainly be possible... I've imaged Dr Who and the Mines of Terror - Master Version, so it would be nice to get that working and Stryker's Run too. I know they're already available, but it's good to have them in the original state.
I'm currently figuring out how to emulate a Data CRC error which will modify a sector's contents at the read stage, required for Sherston titles.
Initially, i just wanted to check that the format was workable under emulation, and i think i've achieved that. :)
Red Arrows didn't work, but i've since discovered that the error is due to an emulation fault not linked to the disc.
That's good to know :) One other question I wanted to ask you is that would it be possible to write the FSD images back to disk on a 1770 FDC based BBC?

Steve
My current setup...

BBC B+ 128k with external DataCentre with 2GB CF Card, 64MB ARM7TDMI Co-Processor and BeebOPL.

User avatar
billcarr2005
Posts: 1239
Joined: Fri Sep 09, 2005 3:01 pm
Location: UK
Contact:

Re: Emulation Request

Post by billcarr2005 » Wed Feb 06, 2013 2:04 am

BBCB+64K wrote: That's good to know :) One other question I wanted to ask you is that would it be possible to write the FSD images back to disk on a 1770 FDC based BBC?

Steve
Yes, in theory it should certainly be possible, for most of the images at least...

User avatar
danielj
Posts: 6597
Joined: Thu Oct 02, 2008 4:51 pm
Location: Manchester
Contact:

Re: Emulation Request

Post by danielj » Mon Apr 22, 2013 8:30 am

Hello,
I think I'm about ready to (try) to support generation of FSDs from raw kryoflux dumps...

Question:
For the physical sector size, where do you consider the end of a sector to be? For example (and I don't know if this occurs in any beeb copy protection, but it certainly does on the FM formatted section of the Zarch archimedes disc), sectors within sectors etc...?

Also, is there a way of divining the error code that will be reported with the sector? Is it usually just "unformatted" or "crc mismatch"?

d.

User avatar
sweh
Posts: 1962
Joined: Sat Mar 10, 2012 12:05 pm
Location: New York, New York
Contact:

Re: Emulation Request

Post by sweh » Mon Apr 22, 2013 4:31 pm

FWIW, Bill and I were chatting via PM about FSD... this is as close as I got to documenting the format

Code: Select all

Header:
=======
Identifier: "FSD"  string literal 3 bytes
   Creator:        5 bytes; date of creation/author
     Title:        Character string (unlimited length; may contain any but null)
 Title_End: 0x00   byte literal 1 byte
    Num_Tr: xx     1 byte, number of tracks

For each track
==============
   track_num: 1 byte
     num_sec: 1 byte (00 == unformated)
    readable: 1 byte (00 == unreadable, ff ==readable)

   If readable:
     For each sector
     ===============
           Track_ID: 1 byte
        Head_number: 1 byte
          Sector_ID: 1 byte
      reported_size: 1 byte (2^{7+x}; 0 ==>128, 1 ==> 256, 2==>512, 3==>1024 etc)
          real_size: 1 byte (2^{7+x})
         error_code: 1 byte (0==No Error, &20==Deleted Data; &0E = Data CRC Error)
               data: <real_size> bytes
   Note that error_code matches the OSWORD &7F result byte

   If unreadable:
           Track_ID: 1 byte
        Head_number: 1 byte
          Sector_ID: 1 byte
      reported_size: 1 byte

Decoding of the "creator" 5 byte field:
=======================================
   (byte1 byte2 byte3 byte4 byte5)

       Date_DD = (byte1 AND &F8)/8
       Date_MM = (byte3 AND &0F)
     Date_YYYY = (byte1 AND &07)*256+byte2
    Creator_ID = (byte3 AND &F0)/16
   Release_num = ((byte5 AND &C0)/64)*256 + byte4
Rgds
Stephen

User avatar
danielj
Posts: 6597
Joined: Thu Oct 02, 2008 4:51 pm
Location: Manchester
Contact:

Re: Emulation Request

Post by danielj » Mon Apr 22, 2013 4:40 pm

That's brilliant, I should be able to run with that.

d.

User avatar
danielj
Posts: 6597
Joined: Thu Oct 02, 2008 4:51 pm
Location: Manchester
Contact:

Re: Emulation Request

Post by danielj » Sat Jun 01, 2013 5:07 pm

Hello hello,

Beeb-protection-scheme-gurus :D

Have you come across any instances of nested sectors?

d.

User avatar
billcarr2005
Posts: 1239
Joined: Fri Sep 09, 2005 3:01 pm
Location: UK
Contact:

Re: Emulation Request

Post by billcarr2005 » Sat Jun 01, 2013 8:42 pm

That would be a smaller sector inside a larger, eg 128 bytes inside 256 bytes?
The 8271 can under / over read each sector to make use of this idea. I think Disc Duplicator III reads the same sector with 128 / 256 / 512 / 1024 bytes in the osword &7F control block so that it can compare the error code difference (the incorrect size reads give a Data CRC)
To answer your question, i've not come across any nested sectors, i don't think :)

User avatar
danielj
Posts: 6597
Joined: Thu Oct 02, 2008 4:51 pm
Location: Manchester
Contact:

Re: Emulation Request

Post by danielj » Sat Jun 01, 2013 9:07 pm

billcarr2005 wrote:That would be a smaller sector inside a larger, eg 128 bytes inside 256 bytes?
The 8271 can under / over read each sector to make use of this idea. I think Disc Duplicator III reads the same sector with 128 / 256 / 512 / 1024 bytes in the osword &7F control block so that it can compare the error code difference (the incorrect size reads give a Data CRC)
To answer your question, i've not come across any nested sectors, i don't think :)
That sort of deal. For example, on Zarch (archimedes, obviously) you have a split MFM/FM formatted track, the FM sectors are numbered 250, 251, 252 and 253 with lengths of 512 bytes - 250 is complete, 251 is too, and then 253 ends after about 300 bytes of data. 252 actually starts within 251 and is also complete - right down to a valid CRC - and encompasses the gap region between 251 and 253 and 253's headers...

I'm guessing that's a bit crazier than anything anyone tried with the beeb discs?

d.

User avatar
billcarr2005
Posts: 1239
Joined: Fri Sep 09, 2005 3:01 pm
Location: UK
Contact:

Re: Emulation Request

Post by billcarr2005 » Sat Jun 01, 2013 9:29 pm

Some of the Tynesoft discs made use of the gap region between the sectors to store a message that wouldn't get copied over using copying programs.
Then the protection scheme would over read the 256 byte sector, or in the case of making it 1770 compatible actually have the sector ID saying it was 512 bytes long. I guess that's the closest it came to it!

Code: Select all

Tr.#  No.S  Sec.# Tr.ID Head# SecID IDsiz REsiz Error

27    0A    00    27    00    00    0200  0100  OK
            01    27    00    01    0200  0100  OK
            02    27    00    02    0200  0100  OK
            03    27    00    03    0200  0200  Data CRC error
            04    27    00    04    0200  0100  OK
            05    27    00    05    0200  0100  OK
            06    27    00    06    0200  0100  OK
            07    27    00    07    0200  0100  OK
            08    27    00    08    0200  0100  OK
            09    27    00    09    0200  0100  OK
Last edited by billcarr2005 on Sat Jun 01, 2013 9:32 pm, edited 1 time in total.

User avatar
SarahWalker
Posts: 1109
Joined: Fri Jan 14, 2005 3:56 pm
Contact:

Re: Emulation Request

Post by SarahWalker » Sat Jun 01, 2013 9:31 pm

Most Superior Master Compact games have a Zarch-like split FM/MFM track. I don't know if it uses nested sectors, but I wouldn't be surprised if it did.

User avatar
billcarr2005
Posts: 1239
Joined: Fri Sep 09, 2005 3:01 pm
Location: UK
Contact:

Re: Emulation Request

Post by billcarr2005 » Wed Oct 30, 2013 3:08 pm

Newest build of FSD-BeebEM
Last edited by billcarr2005 on Sun Nov 03, 2013 3:35 pm, edited 1 time in total.

User avatar
Pernod
Posts: 1302
Joined: Fri Jun 08, 2012 10:01 pm
Location: Croydon, UK
Contact:

Re: Emulation Request

Post by Pernod » Thu Oct 31, 2013 5:51 am

billcarr2005 wrote:Newest build of FSD-BeebEM
Thanks, what's changed? It's significantly larger than the previous version I had.
- Nigel

BBC Model B, ATPL Sidewise, Acorn Speech, 2xWatford Floppy Drives, AMX Mouse, Viglen case, BeebZIF, etc.

User avatar
billcarr2005
Posts: 1239
Joined: Fri Sep 09, 2005 3:01 pm
Location: UK
Contact:

Re: Emulation Request

Post by billcarr2005 » Sun Nov 03, 2013 3:35 pm

It was larger because i just zipped up the debug version i'd built.
This new one has been created using the release compilation, so must compress it as it's created.
I've fixed the errors with Tynesoft games having deliberate CRC errors. They have 512 byte sector length in the sector ID (to make themselves 1770 compatible), 512 byte in the actual size (because that's the data, storing the overread) but should actually be reported as 256 bytes in length, without an error, since if a Data CRC error is found, BeebEM changes some bytes (which was needed to get Sherston Software titles working)
I think everything should work now... if not, it's likely to require slightly (ie. 1 byte) rejigged FSDs to run smoothly :)
Last edited by billcarr2005 on Sat Jan 25, 2014 12:27 pm, edited 1 time in total.

User avatar
danielj
Posts: 6597
Joined: Thu Oct 02, 2008 4:51 pm
Location: Manchester
Contact:

Re: Emulation Request

Post by danielj » Sun Nov 03, 2013 8:08 pm

Just for interest, the kryoflux guys (basically the SPSS) are in the process of implementing "scripted writing" which essentially means that if we have accurate kryoflux dumps of beeb stuff, it will be possible to write the scripts to "re-master" the discs exactly as they were originally -> we can preserve precious original copies and have easily duplicatable, un-hacked, working backups.

d.

Post Reply