| |
mankeli
Registered: Oct 2010 Posts: 135 |
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. |
|
... 22 posts hidden. Click here to view all posts.... |
| |
Martin Piper
Registered: Nov 2007 Posts: 706 |
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: 1082 |
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: 706 |
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: 135 |
This seems to happen on later 1541 ultimates as well, iirc maybe even on the U64. I'll check later tonight. |
| |
mankeli
Registered: Oct 2010 Posts: 135 |
This happens on U64 too. (Ultimate 64 Elite V1.43 - 3.11) Aerial Core for example doesn't work with mount & run, it needs run disk. |
| |
Burglar
Registered: Dec 2004 Posts: 1082 |
why use the graphical interface, why not control the 1541u via tcp?
maybe check ugo 0.1 or Ucodenet (20200408). u can also do seamless disk swapping that way. |
| |
The Sarge
Registered: Aug 2002 Posts: 47 |
If you want, you can use Assembly64. It has an inbuilt "Flip Disk Player" that takes care of this for you. Multi-disk demos are started with this feature, and you don't even have to swap disks; it does this for you automatically.
The Flip Disk Player has been adjusted in most of the popular demos mitigating this problem with Ultimates right now.
https://assembly64.hackerswithstyle.se/assembly/download.html |
| |
tlr
Registered: Sep 2003 Posts: 1780 |
maybe it is due to the drive not being 'I' initialized, which more or less happens when loading something?
EDIT: could be tested by loading the first file, then power cycling the drive before doing "RUN". |
| |
chatGPZ
Registered: Dec 2001 Posts: 11327 |
Quote:maybe it is due to the drive not being 'I' initialized, which more or less happens when loading something?
good one. i remember this case was tricky to fix in chameleon :) |
| |
mankeli
Registered: Oct 2010 Posts: 135 |
Yeah, this works:
LOAD"*",8,1
RUN
But this doesn't:
LOAD"*",8,1
*drive reset*
RUN
So it's indeed the loader depending on some state on the drive. Funny, since atleast Spindle works with the Action Replay fast loader. |
Previous - 1 | 2 | 3 | 4 - Next |