Login
Back to forumReply to this topicGo to last reply

Posted By

Mad
on 2020-05-27
13:18:48
 SD2IEC Fast Irq Loader (possible?)

Hi!

Many people choose an SD2IEC above a proper disc drive emulation.

The thing for coders today is, that many of these coders rely on fast IRQ loaders like Krills Loader, Bitfire, Spindle and many many others. These IRQ Loaders don't support the SD2IEC.

That is really some rather big problem if you do disc games or demos nowadays. I for myself don't support Kernal loading any more (since doing the game Pets Rescue). The loading the Kernal way was much too slow (factor 20 or something) and Bitfire yielded a much better outcome, we could load withing "milliseconds" from 1541 and 1551 it even supports some saving to disc. So that is a perfect match for us when developing our games.

So here is my question:

Do you think there may be a fast IRQ Loader possible for the SD2IEC? Or is there an alternative that may be used which doesn't do SEI/CLI stuff and is fast as well?

I really want to support the SD2IEC, even if it is a fallback solution to our normal loader (Bitfire) and an entirely other disc format, since many people choose the SD2IEC as their standard setup. Maybe this problem spawned for many other people (demo making or game making) as well at some point in their development. I would be happy if there are people out there which may answer this question. Or have some clarifying notes on that. I don't own a SD2IEC and know nothing about it.

Edit: I do remember Sizs IoLibV3. But I have no clue how fast it is and how to test that in an emulator environment (e.g. Yape). And there is BSZs SJLoad (JiffyDos) Port SJL264_Light with sourcecode provided on it's homepage_en, which accesses ROM and does SEI/CLI but should be reasonably fast. There seems to be also C64s ELoad which does sei SEI/CLI, too, no clue how fast it is. Cadaver using ELoad.. On C64 there is also DreamLoad, which is an IRQ Loader but no clue how fast.. And More C64Options

Cheers and have a good day!


Posted By

Chronos
on 2020-05-27
15:51:14
 Re: SD2IEC Fast Irq Loader (possible?)

I strongly recommend two things: 1., buy sd2iec (its cheap and handy and very good solution against aging floppies) 2., ask siz, because we got some experience on siz’s iolib when we made Uncertain Future. 2.1., test Uncertain Future on sd card

Posted By

Mad
on 2020-05-28
00:36:57
 Re: SD2IEC Fast Irq Loader (possible?)

Thanx Chronos!

Much appreciated.. Both points are great..

If siz could be helping that would be great.

About the IOLib, I remember siz saying that the SD2IEC support is not a fast one. That's why I somehow hesitate to try it. If the SD2IEC support is much slower than Bitfire on a 1541 it makes no sense for our current project .. But I don't know how fast it is, I somehow never got some valid statement about that in connection with the SD2IEC, if I remember right.
I already prepared the files needed and perhaps give the IOLib a try later on.

Nice that you did Uncertain Future with the IOLib. A Very impressive one!

(Pets Rescue was first an IOLib project but the loading took 10 - 20 times of the Bitfire ones on a 1541, that's why I left that route on Pets Rescue (we even load small portions of data directly in the game, which took several seconds with the IOLib))..

Posted By

MMS
on 2020-05-28
10:00:09
 Re: SD2IEC Fast Irq Loader (possible?)

My 2c:

Why not rely on JiffyDOS? or SJLOAD? (reduced functionality soft-Jiffy)
The SD2IEC is JiffyDOS compatible. It can be identified. It is 100% Kernal compatible.

In the past the first question was in the demos (mainly because of 1551) "do you need fastloader?"

Now you may ask: Do you have Jiffy device?
It could be mIEC, SD2IEC, SD1541/II, then it can use the SJLOAD routine. If the C16/Plus/4 Kernal also modified, even SJLOAD is not required, but it will be quick enough.
Otherwise the great Bitfire for native unmodified machines (majority of the machines, but decreasing percent).

Posted By

siz
on 2020-05-28
14:15:01
 Re: SD2IEC Fast Irq Loader (possible?)

@MMS: JiffyDOS and SJLOAD does not allow interrupts. :/

@Mad: I've created a very simple benchmark to test the loading time of 48k data. I'll do some measurements tomorrow or during the weekend with 1541 serial/parallel, 1551, 1581 and of course SD2IEC.

Posted By

MMS
on 2020-05-29
13:49:50
 Re: SD2IEC Fast Irq Loader (possible?)

OK, sorry, I missed the IRQ part happy

Posted By

Mad
on 2020-05-30
17:02:19
 Re: SD2IEC Fast Irq Loader (possible?)

siz That's great. Would be interessting what these numbers will be!

MMS I should've written that there is only sizs IRQ Loader on Plus/4 which may utilitze the SD2IEC..

Posted By

siz
on 2020-06-01
07:26:02
 Re: SD2IEC Fast Irq Loader (possible?)

Finally I could spend time on testing the loader (in fact I've tested it earlier I just had time to record it). The whole test (about 5 mins) is on YouTube. Sorry, the video is uncut so be patient to see some focusing in the beginning.
Results: (loading 48k, 194 blocks.
1551: 1676 frames (~34 sec)
1541 serial: 1810 frames (~36 sec)
1541 parallel: 1671 frames (~34 sec)
SDIEC: 951 frames (~19 sec)
1581: 1134 frames (~23 sec)

As I already stated: the main concept of the loader was compatibility so speed optimizations can come later (if ever).
These speeds are quite slow if we compare to state-of-the art track loaders (for example Krill's loader claims to have 7k/sec loading speed).

Posted By

Mad
on 2020-06-01
07:55:21
 Re: SD2IEC Fast Irq Loader (possible?)

That's great, thanks siz! I just looked up some web page where there was written that a pure serial 1541 load would take up around 2 min for 48k.

If Krill's loader takes 7 seconds for that, that would mean that Bitfire is in the same range, perhaps a little faster.
And that would mean, that IoLibs SD2IEC performance would be around factor 1/3 of Bitfire.

What's actually great.. Thanks for testing that! That means a raw performance of around 2.5k per second on SD2IEC.. happy

Posted By

Krill
on 2022-04-05
05:16:25
 Re: SD2IEC Fast Irq Loader (possible?)

"for example Krill's loader claims to have 7k/sec loading speed"

That's for C-64, though. Loading on C-16 etc. is somewhat slower due to more badline DMA load.

Anyways, SD2IEC support is being implemented right now* and coming along nicely.
Loads significantly faster than a real drive due to no moving parts.

On real drives, speed differences to Bitfire are small, and your mileage may vary depending on material and choice of cruncher.
Note that the next version will come with three new crunchers (TSCrunch, ZX0-Dali, LZSA2), a saver plug-in and performance optimisations.

Next up for the release after that would finally be native 1551 support. I did ebay one of those years ago. happy

* https://github.com/thierer/sd2iec/tree/krills_loader - Yes, burden of support lies with the emulator, not the driver code. happy

Posted By

siz
on 2022-04-05
07:10:58
 Re: SD2IEC Fast Irq Loader (possible?)

@Krill: you can check out https://github.com/iszell/sd2iec. It has a branch made by our BSz which adds some kind of virtual/expanded 6502 support so you can download your own code to the SD2IEC. BSz also made a techdemo of playing back Bad Apple with digitized sounds using this one.

Posted By

Krill
on 2022-04-05
07:26:39
 Re: SD2IEC Fast Irq Loader (possible?)

Unfortunately, this has no chance of ever going into mainline. And adding explicit SD2IEC is something i keep refraining from, even with standard support for custom code upload. =)

Posted By

MIK
on 2022-04-05
10:27:42
 Re: SD2IEC Fast Irq Loader (possible?)

Loading screens and loading music were invented for slow loading. grin



Back to topReply to this topic


Copyright © Plus/4 World Team, 2001-2024. Support Plus/4 World on Patreon