| |
mankeli
Registered: Oct 2010 Posts: 131 |
Spindle and Sparkle demos not launching
Can someone explain why demos using Sparkle or Spindle loaders can't be run from 1541U by selecting the launch file and using "mount & run"?
You got to use "Run Disk" for the whole image. 99.9999% of the C64 demos can be launched with mount & run, and somehow this only seems affect those aforementioned loaders. |
|
| |
Monte Carlos
Registered: Jun 2004 Posts: 358 |
Can only suspect some timing issue... |
| |
TheRyk
Registered: Mar 2009 Posts: 2202 |
Is it 1541U or U II + issue or both?
Do you have the latest firmware upate?
Did you contact 1541U developers via bug report/ticket?
Normally they are eager to know about such issues and try to fix them via firmware update, at least that was the case with EasyFlash emulation. |
| |
tlr
Registered: Sep 2003 Posts: 1768 |
To simplify checking, could you link a few examples? and please indicate which 1541u/u2/+ ver/fw ver |
| |
Count Zero
Registered: Jan 2003 Posts: 1909 |
Naming it "1541U" sounds like my very early version which had a network port still? VERY incompatible :) Will try with that. |
| |
chatGPZ
Registered: Dec 2001 Posts: 11326 |
The 1541 needs a bit to reset. My guess would be that the boot program tries to communicate with the drive before the drive finished reset. |
| |
Martin Piper
Registered: Nov 2007 Posts: 705 |
Quote: Can someone explain why demos using Sparkle or Spindle loaders can't be run from 1541U by selecting the launch file and using "mount & run"?
You got to use "Run Disk" for the whole image. 99.9999% of the C64 demos can be launched with mount & run, and somehow this only seems affect those aforementioned loaders.
Wasn't it because the loader assumes the turbo code is in a particular place in drive memory (in one of the read buffers) after being loaded by the C64 and just calls that directly from the C64 side?
Normally, when the C64 loads something (like a turbo loader) from disk it would send some of that data back as the drive code to the drive, but I seem to remember some turbo loaders would not send the drive code from the C64 back to the drive, instead they would just assume the last loaded code was still in the drive buffer.
So if you're just mounting the disk image and running the prg by injection, not running the prg by loading it from the emulated disk drive, then the disk drive will not have the code in its internal buffer. So the C64 cannot call that code. |
| |
Burglar
Registered: Dec 2004 Posts: 1079 |
I just checked Martin's theory on No Bounds and it is not the case. It simply embeds the drivecode bootstrapping with M-E and short embedded code that reads the relevant sectors to drivemem. This is a pretty common method. |
| |
Martin Piper
Registered: Nov 2007 Posts: 705 |
Quote: I just checked Martin's theory on No Bounds and it is not the case. It simply embeds the drivecode bootstrapping with M-E and short embedded code that reads the relevant sectors to drivemem. This is a pretty common method.
I remember now, it was the transwarp example that issues a M-E with the partial just loaded file in the read buffer: Transwarp V0.84 |
| |
mankeli
Registered: Oct 2010 Posts: 131 |
This seems to happen on later 1541 ultimates as well, iirc maybe even on the U64. I'll check later tonight. |