| View previous topic :: View next topic |
| Author |
Message |
Über Groupie


Joined: 15 Feb 2008 Age: 36 Posts: 300 Location: Barcelona, Spain Compiler: Kickassembler
|
Posted: Thu Nov 17, 2011 10:49 pm Post subject: Help with Flashy loaders for discs |
|
|
Hi!
I've made a "flashy" loader (supported with kernal routines) for the spanish recent new game MKII (click to find it on CSDB), and I am not 100% happy with the results (specially on the real C64).
I know that on disc we can do little to make cooler effects as the tape loaders, because diferent timings of this two different peripherals, but I think it could be improved a little. A good example of what I need to achieve can be seen in the recent Psytronik's release, in Sheephoids disc loader.
In my routine I've implemented this logic: "inc $d020, load a byte from disc, then dec $d020" without waiting any precise raster beam, because I don't know what precise raster line I must wait or what is the correct algorithm to achieve a cooler effect.I've tried waiting certain raster lines but it's still ugly... Perhaps should I use interrupts to time it correcly?
I'm not a 1541 expert (It's crazy to manage all the programming aspects of a game!) and I need help from disc loader experts!
Many thanks. _________________ |
|
| Back to top |
|
 |
Über Groupie


Joined: 15 Feb 2008 Age: 36 Posts: 300 Location: Barcelona, Spain Compiler: Kickassembler
|
Posted: Fri Nov 25, 2011 12:27 pm Post subject: |
|
|
Hi ? Nobody knows nothing about ?  _________________ |
|
| Back to top |
|
 |
Immortal Grandmaster of C64

Joined: 13 Oct 2004 Posts: 4697
|
Posted: Fri Nov 25, 2011 12:45 pm Post subject: |
|
|
what exactly do you want to do anyway?
i wouldnt do serial/byte-get based loading as you describe, as that is very slow. better hook the "stop" vector, and then do some flickering there.
other than that, for more advanced effects, you probably want to use some irq loader - then you can do whatever you want while loading. _________________ |
|
| Back to top |
|
 |
Über Groupie


Joined: 15 Feb 2008 Age: 36 Posts: 300 Location: Barcelona, Spain Compiler: Kickassembler
|
Posted: Fri Nov 25, 2011 1:05 pm Post subject: |
|
|
| groepaz wrote: | what exactly do you want to do anyway?
|
As I said, I want to improve my routine of the MKII disc loader to be seen as cool as the Sheephoid one regarding the flashy lines...
| groepaz wrote: |
i wouldnt do serial/byte-get based loading as you describe, as that is very slow. better hook the "stop" vector, and then do some flickering there.
|
Yes I know it will be slow, but for small program sizes it won't be a problem.
By the way: What's the "stop" vector?
Now I'm mainly focused to achieve a good timed flash lines effect, later maybe I'll improve it with better fast loading and that...
| groepaz wrote: |
other than that, for more advanced effects, you probably want to use some irq loader - then you can do whatever you want while loading. |
I know I can use many irq fast loaders (that one by Cadaver for example), I tried it, but are a little complex to work with them and I haven't a lot of time to explore big chunks of code of another person, or to read 1541 tech books... (I will do that some day! but not now)
Thanks for your answer Groepaz, it is very appreciated! _________________
|
|
| Back to top |
|
 |
Immortal Grandmaster of C64

Joined: 13 Oct 2004 Posts: 4697
|
Posted: Fri Nov 25, 2011 1:16 pm Post subject: |
|
|
| Quote: | | Apart some people use turbo disc loaders that hook in kernal routines like FC cart does, |
NO! thats the point. using serial byte get (instead of LOAD) means that most fastloaders will be bypassed and you will use the standard slow kernal routines. (from the popular fastloaders, only jiffy dos accelerates byte-get)
| Quote: | | By the way: What's the "hook" vector? |
the stop vector at $0328 ... you can point it to your own routine which does d020 flickering (or whatever), and then you can use LOAD instead of byte-get. and THEN automagically fastloaders like the one from AR or FC will work. _________________
|
|
| Back to top |
|
 |
Über Groupie


Joined: 15 Feb 2008 Age: 36 Posts: 300 Location: Barcelona, Spain Compiler: Kickassembler
|
Posted: Fri Nov 25, 2011 1:41 pm Post subject: |
|
|
You are telling me to use the LOAD kernal routine to call a load of a file, and before that, hook a flashy routine touching ISTOP vector to point to this routine....
So the ISTOP routine will be called in correct timing while kernal LOAD ($F49E) is executing, flashing the lines...
Isn't it ? _________________ |
|
| Back to top |
|
 |
Immortal Grandmaster of C64

Joined: 13 Oct 2004 Posts: 4697
|
Posted: Fri Nov 25, 2011 1:57 pm Post subject: |
|
|
it will be called every once a while, yes. there is no "correct timing" at this point  _________________ |
|
| Back to top |
|
 |
Über Groupie


Joined: 15 Feb 2008 Age: 36 Posts: 300 Location: Barcelona, Spain Compiler: Kickassembler
|
Posted: Fri Nov 25, 2011 2:01 pm Post subject: |
|
|
cool, not correct but it will be called with some degree of order...
Thanks friend, I'll try it soon! _________________ |
|
| Back to top |
|
 |
Lemon64 Donator!


Joined: 08 Jan 2004 Age: 37 Posts: 887 Location: United Kingdom Fave game: Turrican II
|
|
| Back to top |
|
 |
Über Groupie


Joined: 15 Feb 2008 Age: 36 Posts: 300 Location: Barcelona, Spain Compiler: Kickassembler
|
Posted: Sat Nov 26, 2011 11:25 am Post subject: |
|
|
 we are working on it ! _________________ |
|
| Back to top |
|
 |
Groupie

Joined: 11 Jun 2007 Posts: 169
|
Posted: Sun Nov 27, 2011 6:02 am Post subject: |
|
|
I think Sheepoid used one of my loaders. Berzerk Redux also used a disc loader.
You can get the source from http://www.wellytop.com/C64.html |
|
| Back to top |
|
 |
Über Groupie


Joined: 15 Feb 2008 Age: 36 Posts: 300 Location: Barcelona, Spain Compiler: Kickassembler
|
Posted: Sun Nov 27, 2011 3:38 pm Post subject: |
|
|
Thanks Martin!  I will take a look too... That's a cool & interesting pile of sources.
I have just enjoyed some games on berkerk's redux (pretty funny, I love that samples) "Intruder, Intruder ... Destroy the humanoid" _________________ |
|
| Back to top |
|
 |
|