Coder Social home page Coder Social logo

Tape Drive Emulation Unreliable about bmc64 HOT 7 OPEN

sean-skt avatar sean-skt commented on August 15, 2024
Tape Drive Emulation Unreliable

from bmc64.

Comments (7)

randyrossi avatar randyrossi commented on August 15, 2024

from bmc64.

rhester72 avatar rhester72 commented on August 15, 2024

Under the [PET] section in vice.ini on your SD card, add the following:

DatasetteTapeWobble=0

Inexplicably, the VICE default for this setting introduces a bit of deliberate random skew to tape loads (and possibly saves?), which deliberately occasionally causes load errors "just like real life".

I'm all for realism and accuracy, but I wouldn't want a virtual head bang on a 1541 to actually wreck the emulated hardware. LOL I have no idea why it was set up this way by the VICE team, but there you have it.

It applies to ANY tape loading on ANY of the VICE systems, so feel free to add it to other sections as needed.

from bmc64.

sean-skt avatar sean-skt commented on August 15, 2024

Under the [PET] section in vice.ini on your SD card, add the following:

DatasetteTapeWobble=0

Thanks rhester72!! That did the trick!

What masochist at VICE thought that this was ACTUALLY a GOOD IDEA to emulate this nonsense?? It has been nothing but a source of frustration!!
I love this BMC64 project, feels really authentic, but I was banging my head against a wall trying to figure out why the hell I couldn't reliably load programs and it was really ruining my experience of this great project!

@randyrossi For the future it might be good idea to have the option that rhester72 suggested as default in vice.ini.
And yes please, if you could let me know what disk drive you were using with PET, that would be awesome. Thanks so much!! :)

from bmc64.

BODYPRINT avatar BODYPRINT commented on August 15, 2024

I don't recall having issues with disk drives. Let me find the drive files I had placed on my sdcard to check. I'm at work right now, so I'll have to do it later tonight. I'll send you the list of files that are expected.

Can you please post this under the previous issue that I posted a few days ago?

from bmc64.

mrdudz avatar mrdudz commented on August 15, 2024

What masochist at VICE thought that this was ACTUALLY a GOOD IDEA to emulate this nonsense?? It has been nothing but a source of frustration!!

That was me. And no, the reason isn't to "deliberately occasionally cause load errors". Tape loaders (and in particular the kernal loader) are very robust against small deviations - and the error that is being introduced is likely smaller than that of a real c2n (and that is no problem either).

The actual reason for doing this was, that people started implementing and testing tape loaders on VICE - and then produced loaders that were relying on the perfect timing of the emulation, rather than taking the imperfect timing of a real c2n into account and compensating for it (like the kernal loader does). For the exact same reason, disk drive wobble has been emulated as well.

(Wobble only applies to reading, not writing, btw - this may or may not be a bug, but it works in practise)

However, in the old VICE release BMC64 is using, the tape-wobble was implemented rather naively and didn't work very well - which is what causes the problem you are seeing. This has been fixed in newer releases, and shouldn't cause any problems like this anymore.

from bmc64.

mrdudz avatar mrdudz commented on August 15, 2024

BMC64 is probably not writing back to the tape file unless you detach it from the tape drive (probably). That's just my guess though.

.tap files are accessed directly, without buffering

from bmc64.

sean-skt avatar sean-skt commented on August 15, 2024

@mrdudz Thank you for the explanation.

So while "DatasetteTapeWobble=0" does remove most of the load error issues, on occasion the emulation will still freeze when finishing loading the program from the .tap file.

from bmc64.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.