mk79 wrote: ↑Sun Jan 29, 2023 10:27 pm
Cristian wrote: ↑Sun Jan 29, 2023 8:13 pmThe program does not run with Minerva Rom (both with Qemulator and with real QL).
Minerva derives the location of the system variables from the SSP, which the code moves to another location. Switching to the original SSP before a TRAP might fix this, but yeah, this code doesn't look like it's meant to play well with other environments. Still pretty cool (though I have only heard the QemuLator version for now, too lazy to power up a real QL
)
This is interesting to know, but I am indeed an elephant in a porcelain closet; I just want to get it to work on my QL machine+emulator. Indeed, I do move the stackpointer to an absolute address once I relocate the code. In the end this is just a means to an end to make tracks to be used in demos. The UI looks bad and has very limited userfriendlyness; but it works
.
spkr wrote: ↑Sun Jan 29, 2023 9:26 pmIm not sure what you mean by this. Would you please elaborate? I found that ALL Emulators do not match the sound of the actual Sinclair QL. Im therefor not sure if you're mentioning something about FUQL or about the emulator.
mk79 wrote: ↑Sun Jan 29, 2023 10:27 pm
Not for lack of trying... emulating the IPC sound is amazingly difficult, IIRC the IPC code even relies on uninitialized registers.
Correct. What I do sometimes, is `split up' the QL sound command over different VBLANKS (simply because sending commands to the IPC too fast locks the system, and poll-waiting for the IPC to become availabile over the course of a complete sound command may take UP TO 70%). By splitting out the sound command into several bytes per frame, this wait delay is sliced to manageable size. However, this does also mean that the sound command effects, such as random and pitch etc, are only altered once the command is received. This is not emulated on correctly. Furthermore the sound emulation on Qemulator for windows and osx have different implementations, where Qemulator relies on the DirectX sound driver; in case this one is buffered, it has the tendency to miss notes when notes are entered subsequently in QL. Similarly, on the actual QL, rapidly successing notes may not be heard at all.
The after-market IPC rom changes this behaviour slightly.
JobOne was so kind to provide me with a hermes chip. The results were interesting to compare. What I compared was:
- hermes vs stock ipc rom
- sound command issues in 1 VBLANK, or spread over multiple (in my case 4 VBLANK).
hear for yourself:
- hermes.zip
- zip file containing 4 recorded sound recordings from real hardware, different rom and sound driver implementations
- (6.51 MiB) Downloaded 30 times