Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Soundfehler in der angehängen Demo. #143

Closed
ThKattanek opened this issue Nov 24, 2018 · 7 comments
Closed

Soundfehler in der angehängen Demo. #143

ThKattanek opened this issue Nov 24, 2018 · 7 comments
Assignees
Labels

Comments

@ThKattanek
Copy link
Owner

In dieser Demo wird im ersten Abschnitt der Sound nicht richtig wiedergegeben Soundcapture liegt im zip als ogg mit bei.

_smooth sounds.zip

screenshot_20181124_231330

@ThKattanek
Copy link
Owner Author

Hier das selbe !
uk_team+4.prg.zip

@ThKattanek
Copy link
Owner Author

in uk_team intro wird die Soundroutiene an $6608 mittels JSR $F02C einmal pro Frame aufgerufen !

@ThKattanek
Copy link
Owner Author

Fehler liegt irgendwo in der OSCOutput Funktion oder im direkten Zusammenhang mit dieser.

@ThKattanek
Copy link
Owner Author

Sieht doch nicht so aus als ob das von der OscOutput Funktion her rühert. Es wird als WAVE Parameter immer 0 gesendet.

@ThKattanek
Copy link
Owner Author

OK. Nach weiteren suchen, bin ich jetzt auf diese Codezeilen gestoßen. Je nach Voice ist X = $00,$07,$0E. Der LDA holt die Wellenform ohne KeyBit, und der INC erhöht um 1 und setzt eigtl. das KeyBit. Aber Normal geht das ja nicht da das lesen aus dem SID immer 0 zurück gibt. Hier muss ich jetzt ansetzen.

LDA $F68F,X
STA $D404,X
INC $D404,X

@ThKattanek
Copy link
Owner Author

Habe nun ein kleines Assembler Programm geschrieben, welches auf Original HW läuft auf Emu64 nicht.

!to "sound_test.prg",cbm
*= $801
!word (+), 10
!text $9e, "2061", 0

  • !word 0

;START

lda #$0f
sta $d418

lda #$14
sta $d401

lda #$f0
sta $d406

lda #$10
sta $d404
inc $d404

rts

@ThKattanek ThKattanek added the bug label Nov 25, 2018
@ThKattanek ThKattanek self-assigned this Nov 25, 2018
@ThKattanek
Copy link
Owner Author

Fehler gefunden!
Der Fehler lag beim lesen eines SID Registers. Bei einem ReadOnly Register wird immer der zuletzt im SID geschriebener Wert zurückgegeben. Dabei muss das Schreib- und Leseregister nicht gleich sein. Der Letzte Schreibwert wird für ca. 2000 - 4000 Zyklen behalten bevor er wieder auf 0 fällt.

Hier ein kleines Testprogramm.
sound_test.txt

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant