The place for codemasters or beginners to talk about programming any language for the Spectrum.
- Posts: 141
- Joined: Sat Nov 25, 2017 10:50 pm
- Location: USA
hikoki wrote: ↑
Thu Jan 11, 2018 12:38 am
AYFX and BeepFX are tools made by Shiru. I think the AYFX player had some issues, see on my post a link to the routine fixed by a zuno forum member.
BTW I modded the AYFX player to play sounds on specific channels instead of the first free channel, and added a simple sustain loop so I could have continuous sounds with an attack and release. The latter feature needs improvement because it's a pain to calculate the sustain and release offsets manually, and they change every time you edit the soundbank. Eventually I want to mod the editor to let you set the sustain and release points graphically. I also got the editor building on the latest free version of C++Builder (RADStudio 10.2).
https://github.com/Threetwosevensixseve ... t-improved
I had problems with AYFX too. I get weird bursts of noise or quiet volume the first effect I play after AY music had been played. I talked to Shiru about it briefly but I never managed to get to the bottom of it. It's entirely possibly I broke it with my mods, but I'm buggered if I can see what the problem is.
I didn't know about the haplo fix, thanks! I will incorporate that to see if it helps.
- Posts: 98
- Joined: Thu Nov 16, 2017 10:54 am
Cheers Robin. I didn't know about your AYFX fork. A Sustain loop and porting Shiru's sources to a free C++ IDE are interesting additions. Let us know if the Haplo fix works for you. Take care of you migraines! (Tip: cycling 40 Km once every 10 days or so and a basketball toy on your door may be of help)
- Posts: 164
- Joined: Thu Nov 16, 2017 3:26 pm
R-Tape wrote: ↑
Thu Jan 11, 2018 7:00 am
The djnz are trying to jump to absolute memory addresses like 06, which from org 50000 is a long way away! Djnz only does 256 byte jumps max.
Yes it uses only 1 byte (256 combinations), but it's signed, so we would expect something like -128 to 127, but in fact it's –126 to +129, due to the length of the instruction (2 bytes), and its relative to the instruction opcode address (first instruction byte).
NOTE: what you write on your ASM code, and what is encoded into the instruction, are different things. The Assembler does some simple math magic (addr-2), to account for the instruction offset.
- Posts: 35
- Joined: Sat Dec 09, 2017 4:09 pm