| |
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.... |
| |
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. |
| |
LordCrass
Registered: Apr 2023 Posts: 8 |
It's because of the disk ID bytes at drive memory $12/$13. A shortcut is given to execute an FDC read job, which at some point compares on-disk ID to what is expected, but what is expected hasn't been set and is just $00, so error 29 Disk ID Mismatch occurs. |
| |
tlr
Registered: Sep 2003 Posts: 1780 |
Quote: It's because of the disk ID bytes at drive memory $12/$13. A shortcut is given to execute an FDC read job, which at some point compares on-disk ID to what is expected, but what is expected hasn't been set and is just $00, so error 29 Disk ID Mismatch occurs.
Interesting! So how does this work on regular load? It still uses FDC read jobs so who sets up $12/$13?
There is the BAM flag at $1c which indicates we are not initialized so I guess that is involved somehow? |
| |
tlr
Registered: Sep 2003 Posts: 1780 |
Quote: Interesting! So how does this work on regular load? It still uses FDC read jobs so who sets up $12/$13?
There is the BAM flag at $1c which indicates we are not initialized so I guess that is involved somehow?
To answer my own question: The id always gets set up when doing a SEEK ($b0).
A regular load seems to always do initialize in the beginning of the directory search, but for loaders that do not use this a SEEK is sufficient.
That job code handling is done by the $45 check at $f3ec. |
Previous - 1 | 2 | 3 | 4 - Next |