@Manel46 and @ericb59 I am using very similar code, I guess it is all derived from the same source.
@ericb59 in the original ayFX code there are a few missing bits, I saw in AGD they made some improvements:
https://github.com/jltursan/AGD-MSX-Suite/tree/master/Suite%...
when the song ends, it forces a mute. I think that is probably the bug you see.
Yep, indeed, it has some differences; but mostly related to some tidy-ups of the code. About the mute, I remember having the continuous tone problem so I simply muted and it worked fine enough for the AGD engine.
The most important thing to keep in mind is that the first repository (z80stsoftware) has a buggy version corrected in the theNestruo repo. Some tracks simply freeze the replayer.
Is Vortex Tracker II dead ?!
(...)
Where can the program be found?
Try also: https://github.com/oisee/vti
The most important thing to keep in mind is that the first repository (z80stsoftware) has a buggy version corrected in the theNestruo repo. Some tracks simply freeze the replayer.
I must clarify that z80stsoftware version is correct (there is no bug in his code) :)
The bug appeared when I translated the code to tniASM syntax becuase the line LD HL,((SPCCOMS+$DF20) % 65536) was assembled as LD HL,(nn) instead of the intended LD HL,nn... But that was entirely my fault!
thank you
It helped me a lot
Is Vortex Tracker II dead ?!
(...)
Where can the program be found?
Try also: https://github.com/oisee/vti
The most important thing to keep in mind is that the first repository (z80stsoftware) has a buggy version corrected in the theNestruo repo. Some tracks simply freeze the replayer.
I must clarify that z80stsoftware version is correct (there is no bug in his code) :)
The bug appeared when I translated the code to tniASM syntax becuase the line LD HL,((SPCCOMS+$DF20) % 65536) was assembled as LD HL,(nn) instead of the intended LD HL,nn... But that was entirely my fault!
Indeed there's something wrong with this version...or maybe I've forced an error due my misuse, of course ;). As it was my first option I checked it a lot with several PT3 files and found an strange error playing some of them, the player totally freezes. I tested all the players I've been able to find and compile, none of the succeded and looking for more info, I found your repo and checked and compared, noticed you comment about Pazo's help and tried...and it worked great with all files!. Can't remember the exact details tho, I remember that versions are very close to each other, not too much difference.
Yup, that was the problem I was suffering too (freezing, reboots...) But the culprit is not the code but a combination of the code *and* the assembler used.
This line...
LD HL,((SPCCOMS+$DF20) % 65536) ; Adapted from original Speccy version (saves 6 bytes)
...when assembled with AsMSX, it assembles to LD HL, nn
(21 nn nn
), and that's correct.
As I'm a TniASM user, and TniASM doesn't recognize % but MOD, I modified the file to follow TniASM syntax, but made a mistake. The modified version assembled to LD HL, (nn)
(2A nn nn
), which is incorrect and causes the bug. The "fix" was simply declaring the computed value outside (as an EQU) to prevent the assembler to assemble to LD HL, (nn)
instead of LD HL, nn
.
So that line is a little bit ambiguous, and depending on assembler, can be parsed as either LD HL, (nn)
or LD HL, nn
. Using the proper syntax for each particular assembler (or removing the ambiguity, as my "fix" does) is enough to solve the bug
Oh, well, my memory is fuzzy about this; but I can remember fixing some assembler labels pseudo-code to make it run in sjasm, most probably in your code as it came from TniASM. Anyway, the freezes happen using my sjAsm and the original AsMSX code, not the one from your repo.
If I can find enough spare time I'll try to check some of the tests that I think still survive in my HDD and were used to check the several replayers tested, all of them with the bug when playing a specific file.
EDIT: At least I've quickly found the conflicting module: hugoboss.pt3. Indeed there's something bad with it as AY Player reports that it has a bad file structure.
EDIT2: ...and now I see he fix you're talking about :
LD HL,SPCCOMS.HL_VALUE ... .HL_VALUE: equ (SPCCOMS+$DF20) MOD 65536
So indeed, it was mostly an assembler problem with the original code, seems that also sjAsm doesn't parse the expression as expected by the programmer.
@Eric
Did you succeed on fixing this ?
I have indeed the issue as well in fusion for some
Sound fx.
Regards
Yes fixed.
For Fusion-C 1.3
Youhoooo, thanks a lot, I’ll give it a try