From fd13bd864e9baa2f73d7446e0da00a409077a806 Mon Sep 17 00:00:00 2001 From: Irmen de Jong Date: Thu, 9 Jun 2022 23:36:07 +0200 Subject: [PATCH] some notes added to zsound demo player --- examples/cx16/zsound/demoplayer.p8 | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/examples/cx16/zsound/demoplayer.p8 b/examples/cx16/zsound/demoplayer.p8 index a020bfd2f..c11e22258 100644 --- a/examples/cx16/zsound/demoplayer.p8 +++ b/examples/cx16/zsound/demoplayer.p8 @@ -6,9 +6,17 @@ ;; Proof Of Concept ZSM player using a binary blob version of zsound library by ZeroByte relocated to something usable here. +; "issues": +; - prog8 (or rather, 64tass) cannot "link" other assembly object files so we have to incbin a binary blob. +; - zsound player ZP usage is only known after compilation of zsound lib. And then this has to be blocked off in the prog8 program. +; - zsound lib BSS section has to be expanded into real zeros as part of the included binary. +; - zsound binary starts with 2 byte prg header that shifts the jump table 2 bytes (not a big issue but a bit untidy) +; - prog8 always sticks main module at the beginning so can't create a container module to stick zsound in (if you want to load it at the beginning) +; - prog8 always has some bootstrap code after the basic launcher so we can only start loading stuff after that +; - prog8 main has to be set to a fixed address (in this case $0830) to which the special zsound binary has been compiled as well. + main $0830 { -; TODO: don't like to have *main* at a set start address, but otherwise the compiler puts it at the front, overwriting another module that we wanted there zsound_lib: ; this has to be the first statement to make sure it loads at the specified module address $0830 @@ -56,8 +64,6 @@ zsound_lib: } else { txt.print("?song start error\n") } - - ; TODO set Vera back to sane state? } sub end_of_song_cb() {