| |
AKA :
lft's Loader
Website :
http://www.linusakesson.net/software/spindle/v1.php
Credits :
Download :
Look for downloads on external sites:
Pokefinder.org
User Comment Submitted by Mr.Ammo on 24 November 2019
Removed the dead (external) download link and uploaded the file to CSDb. | User Comment Submitted by MagerValp on 13 May 2013
It's awe-inspiring when someone takes ideas that you've had in the back of your head, and release them as a production ready framework, with a ton of bells and whistles. The memory map and loader profiling has me drooling! | User Comment Submitted by chatGPZ on 10 May 2013
after looking at it a bit more i have to say.... wtf? some things, like the header for each part that contains a jumptable for various standard things, look strikingly similar to what i started doing after reanim8ed... and then abandoned again, because it seemed not flexible enough :) looks tempting though :) | User Comment Submitted by lft on 10 May 2013
Due to a bug in the 6502 emulator I used for profiling, the cycle count I reported was too large. The actual median is 27216 cycles, which corresponds to three sectors passing by rather than four. All the better!
I have also managed to improve the decrunching time to 26077 cycles, but that version is still unreleased. One of the tricks was to crunch backwards, from high to low addresses, in order to avoid a cpy instruction in the copy loop of the decruncher. | User Comment Submitted by lft on 8 May 2013
Cruzer: Spindle doesn't need the CIA timer, it just synchronises it for you at startup. You are free to use it any way you like.
Doynax: Out-of-order decrunching is achieved, like you guessed, by not looking back beyond the previous sector boundary.
I added instrumentation and measured the decrunching time for Shards of Fancy (not the public version, which uses a different cruncher). For decrunching one block (corresponding to, on average, 564 uncompressed bytes), the average number of clock cycles is 31220 (the median is 34141).
This corresponds roughly to four sectors spinning by on the drive side, which is good: Rather than loading two blocks during eight sector time units, we can load one block during seven sector time units. More space left on the disk, and slightly faster loading; win-win!
edit: Corrected the median value. Had accidentally sorted alphabetically. =) | User Comment Submitted by Cruzer on 8 May 2013
Looks damn promising! Will definitely try it out. Just hope it's not too hard use for someone like me who isn't used to makefiles, and that it doesn't restrict the demo effects too much. It sounds a little scary that it occupies a CIA timer, but hopefully it's possible to use it when the loader isn't running, if it's restored afterwards. | User Comment Submitted by Oswald on 8 May 2013
wow, I've never thought that trackmo linking could be automated. Will definitly give it a try if I'll have to link a trackmo myself again. | User Comment Submitted by Krill on 8 May 2013
Interesting, fresh approach to trackmo creation.
I wouldn't call it a loader though, rather a whole demo framework, or trackmo system, or anything else that implies it's doing more than just the loading.
Now, with this new competing product, i need to finally implement all the speed improvements i've had on my list for a while.. | User Comment Submitted by doynax on 8 May 2013
Excellent work!
I haven't taken the time to dig through the source yet but it certainly sounds like you've got a lot of groundbreaking innovations in there.
You mention that it's blazingly fast. Care to give us a hint of what that might mean in practice? Say with the nothing much else going on and typical 50% compressible code/data being loaded.
How did you manage out-of-order decrunching by the way? Is it some sort of static dictionary coding, are matches prevented from referencing previous blocks which might not yet have been loaded, or is it something altogether more clever? | User Comment Submitted by Radiant on 8 May 2013
My spontaneous reaction is that there are a lot of clever features, but also that it is a bit overkill. Extremely well made and thought out though; some of the solutions here are indeed better than in my framework and will inspire some rewrites. :-) | User Comment Submitted by Yogibear on 7 May 2013 User Comment Submitted by TheRyk on 7 May 2013
Thx very much for sharin this, very much appreciated, might give it a try, and hey: one disk side should be enough! :) |
|
|
|
| Search CSDb |
| Navigate | |
|
| Detailed Info | |
|
| Fun Stuff | |
· Goofs (1)
· Hidden Parts · Trivia
|
|
| Forum | |
|
| Support CSDb | |
|
| |
|