Der Ocean-Loader...

  • Servus, ich kenn jetzt nur den Kassettenlader der Firebird-Spiele, sowas wie Booty oder Harvey Headbanger oder Spiky Harold, die nach dem laden des Titelbildes dann Musik gespielt haben. Was ich da auch noch richtig geil fand, war die laderoutine, die die Blöcke angezeigt hat, wenn da was falsch gelesen war, konnte man genau wieder zurückspulen. war echt sinnig damals bei meinem alten Kasetterekoreder am 6128.
    Servus
    Tolkin

  • Wenn Du Harvey Headbanger meinst, das hab ich im ADATE-Archiv auf meiner Seite...
    Dort sind eigentlich die üblichen CDT's drauf, die ADATE halt so hatte...
    Schau Dich halt mal um dort... (Spiele können nur registrierte User downloaden, wegen Traffic-Übersichtlichkeit)
    Vielleicht findest Du ja noch das ein oder andere CDT, welches nützlich sein könnte...

  • Während ein Block geladen wird müssen die Interrupts doch gesperrt sein damit dem CPC nix auskommt? Aber zwischen den Blöcken, da könnte an der Tonausgabe was gemacht werden. Und wenn die Blöcke schön kurz gehalten sind, dann könnte das eine Melodie geben.


    Die Speichermethode des Betriebssystems mit dem 2 KB-Blöcken können wir da aber vergessen.


    Viel Spaß wünscht
    AlMaSys

  • @Devilmarkus: Danke, dann werde ich auch mal in meinem ADATE Mirror nachschlagen, den hab ich hier naemlich auch noch auf der Platte liegen :).


    @AMSi: Beim Demo Midline Process klappts ja auch. Waehrend der Film da abgespielt wird, wird ja auch die Musik wiedergegeben. AFAIK wurden die Diskettenroutinen auch als Assembler-Bibliothek von dem Demo freigegeben, sodass man die Laderoutinen auch in eigenen Programmen benutzen koennte.

  • Quote from "Villain"

    ...scheint ja irgendwie ne Berühmtheit zu sein, weil er zumindest am C64 beim Laden von Tape noch Musik abspielte. An mir ging die Tape-Ära komplett vorüber, daher die Frage: gab es am CPC während der Ladephase von Ocean-Games auch irgendwelche Besonderheiten?


    I have some knowledge of cassette loaders.


    The C64 had loading music because the loader was *all* interrupt driven. The data-bytes were read by the serial chip (CIA), and this would give an interrupt for every byte read, the CPU would then store this to memory. This interrupt was nmi so had the highest priority. The music was played using standard interrupts which were lower priority.


    This method is not possible with the CPC because you must use the CPU to time the duration of the pulses that make the data-bits. The CPU times the duration of each pulse of the square wave, then it makes the decision if the pulse makes a 1 or 0 bit; which is defined by a threshold duration in the loader.


    So how did they make loading music with Harvey Headbanger or Thrust on the CPC?


    The sound data was mixed with the game data on the cassette. The loader would read a control byte and this would tell it if the next bytes were for the music player or program data.


    So the loader was also the music player.


    Very clever!


    This type of cassette is difficult for me to transfer to cdt because the pulse timings are strange, I need to analyse the pulses more.
    It is possible for me to transfer some of the data-bits, but not all.


    The firebird counter loader (small blocks which you can rewind) did not play music and it was not possible to play music with this loader.


    I think the Speedlock is the best loader because it is the most stable.


    This is a bit of a impossible question: Does anybody have the source code to the Speedlock loaders? I would love to make a CPC game for cassette and use this loader!

  • Mhh... soweit ich weiss, laufen die Tape-Sachen beim C64 nicht über die CIA, sondern direkt in den 6510 (Adresse 0/1 ist da glaub ich der entsprechende Port). Ich kenne mich zwar nicht wirklich mit den CPC-Ladern aus, aber ich kann mir nicht vorstellen, das die Musik-Daten direkt in den Datenstrom eingebettet wurden. Was ich mir eher vorstellen kann, ist, das die Musik komplett eingeladen wird und quasi "nebenbei" abgespielt wird. Dazu braucht man auch nicht unbedingt einen Interrupt. Wenn man die Aufzeichnungsgeschwindigkeit runter setzt (und das wird wohl der Fall sein) hat man sicherlich genug Zeit, z. B. ein Byte von Kassette zu holen und noch ein paar Noten zu trällern (die müssen ja auch nicht xxx mal pro Sek. gespielt werden).


    :?: