SID Konvertieren

Es gibt 11 Antworten in diesem Thema, welches 2.633 mal aufgerufen wurde. Der letzte Beitrag (8. April 2006 um 21:57) ist von hmi_visu.

  • Hi...

    Kann man SID Tunes konvertieren und wieder in
    Intros, Demos verwenden?

  • Ja, z.B. mit Sidplay lassen sich die Sid's mit Speichern unter -> C64 .dat files sichern, das sind die reinen C64 Daten der Musik.

  • hab ich schon probiert, und zwar mit StĂĽcken von JCH
    wo die Init bei $1000 liegt und die play-routine bei $1003.
    Funktionierte leider nicht. Hab mir dann das Ganze im Text-Editor
    angesehen, und mir fiel auf, daĂź die ' .dat' am Anfang 2 Byte MĂĽll stehen hat.
    Hab das Ganze dann um 2 Byte gekĂĽrzt, brachte jedoch auch keine abhilfe.

  • das sollte schon gehen... also mit sidplay als .dat speichern :) die zwei byte "mĂĽll" sind offensichtlich die ladeadresse die du weglassen musst wenn du den tune zb per incbin in irgendeinem crossassembler einbindest.

  • hmmm... kenne zwar den sidplay nicht, aber die ersten 2 bytes werden vermutlich die ladeadresse sein (00, 10). und die braucht ein c64 prg file ja um zu wissen, wo es hingeladen werden soll.

    was verstehst du unter "es funktionier nicht" ?.
    stille? falsche töne? absturz?

    hast du beim init auch ein lda Bitte melde dich an, um diesen Link zu sehen. gemacht?
    und die playroutine "richtig" in eine irq-routine eingebaut?

  • Also:

    Benutze Relaunch mit ACME als crosscompiler und hab noch NIE damit
    gearbeitet, deshalb hier mein Code:

    !to "test.prg"

    *= $1000
    !bin "sample\tr_test\Beatbassie.bin"

    *= $0900

    jsr $e544
    lda#0
    sta $d020
    sta$d021
    jsr $1000
    lda#$18
    sta$D018
    SEI
    LDA #<INIT
    LDX #>INIT
    STA $0314
    STX $0315
    LDA #$00
    STA $D012
    LDA #$7F
    STA $DC0D
    LDA #$01
    STA $D01A
    CLI
    loop JMP loop
    INIT LDA #$01
    STA $D019
    jsr $1003
    JMP $EA81

    Wenn ich die orginal konvertierte '.dat' vom Sidplay einbinde, dann crashed die
    Routine.
    Lösche ich die ersten 2 Bytes dann spielt die Routine Music, jedoch völligen Quatsch.

  • 1) lade mal vorm init auch in x/y eine 0 (einige player wollen die songnummer nicht im akku)
    2) versuchs auch mal mit nem andren tune

    ansonsten sehe ich da jetzt nix offensichtlich falsches

  • also, deine routine ist ok (sofern sie wirklich nicht noch was anderes macht, was du hier im code nicht geschrieben hast... z.b. noch zeropage-addressen wenden, usw..)

    dem init reicht auch ein lda #$00.

    entweder:


    - ist der sid tune schon defekt
    - der sidplay konvertiert es falsch (schneide doch einfach selber die ersten $7c bytes weg...dann hast du das original prg.)
    - der assembler verkackt das alles (hab noch nie mit assembler programmiert).

    also, entweder holst du die mal den sid-tune aus einer anderen quelle.
    oder testest den konvertierten tune mit code, den du in einem monitor schreibst.

  • Also:

    So läufts:

    Da der Konverter des Sid-Plays noch diese 2 Bytes am Anfang hat, muĂź man
    den Offset des Sounds 2 Bytes davor legen:

    *= $0ffe
    !bin "sample\tr_test\Beatbassie.bin"

    Danach ganz normal initialisieren (hier: $1000) und spielen (hier: $1003).

    Warum diese 2 Bytes da sind, bzw nicht gelöscht werden können, weiß ich auch nicht.

    Trotzdem auf jedenfall

    vielen Dank an Euch

  • hae????
    wie lauten diese ominösen 2 bytes denn?

    denn das sollten ja eigentlich die ladeadresse $1000 sein (also 00 10).

    vielleicht solltest du im assembler anstelle von

    !bin

    irgend was anderen machen (!prg vielleicht.. kenne die befehle des ass ja nicht).
    schau mal nach dem "laden" des tunes in den speicher, ob die 2 bytes auf $0ffe
    liegen (hmmm...sollten sie warscheinlich bei einem *=$0ffe).
    sollte ja aber auch möglich sein, "normale" files wie bitmaps oder so, OHNE die ladeadresse in den speicher zu laden.

  • Ueblicherweise ist das die Ladeadresse.

    !bin"mucke.prg",,2

    Damit werden die ersten 2 Bytes geskipped.

    Acme hat eine Anleitung. :rtfm:

    Michael

    If we're evil or divine - we're the last in line. - Ronnie James Dio (1984) -
    Bitte melde dich an, um diesen Link zu sehen. | Bitte melde dich an, um diesen Link zu sehen. |

    Einmal editiert, zuletzt von cbmhardware (8. April 2006 um 17:47)

  • hab hier andere musiken, die schon im *bin format waren .
    Die werden auch erst ab $1000 geladen (bei JCH) und die funktionieren auch ganz
    normal.
    es geht lediglich um die zurĂĽckkonvertierten StĂĽcken mit dem Sidplay.
    Probiert es doch mal.