1

(20 replies, posted in Sinclair)

It may sound crazy, but if the game is simple, you can use a beeper engine that uses IM2 interrupt mode (like Special FX or Plip Plop) and run the game on interrupt.
Be warned that both the sound quality and game speed will be lower. This is why this must be a simple game.

2

(4 replies, posted in General Discussion)

Thanks for your reviews smile
The mixing of the original songs was a mistake. The left channel of the AY was connected to the right speaker and vice versa. That's why the AY drums go from right to left.
In the .mp3 versions I swapped the channels, but the ZX versions are not corrected yet.

3

(13 replies, posted in Sinclair)

In the SFX engine patterns bit 7 set (>=128) is a drum or a special command. The drums 1-5 in the music data are numbered 129-133.
When changing the drum numbers to higher, the engine is working normally. I have tried 134-137, what are drums 6-9.
But we must remember to define the extra drums here:

               DEFB  $21                   ; LD HL,nn
PERC_PATT:     DEFW  $0000                 ; Address of the percussion data
               LD    A,(HL)
               INC   HL
               LD    C,(HL)
               INC   HL
               LD    (PERC_PATT),HL        ; Point PERC_PATT at next datum
               AND   $7F
               CALL  JUMP_PERC_ADDR
               DEFW  DRUM00               
               DEFW  DRUM01               
               DEFW  DRUM02               
               DEFW  DRUM03               
               DEFW  DRUM04               
               DEFW  DRUM05               
            DEFW  DRUM06
        DEFW  DRUM07
        DEFW  DRUM08
        DEFW  DRUM09

How many "drums" can be used, I haven't tested yet, maybe up to 255, but the bit 7 is responsible also for such commands like sustain change, end of pattern.
Numbers > 128 in the note patterns have a different meaning than the same numbers in the drum patterns.

4

(13 replies, posted in Sinclair)

I think it's not the way with drums. For the full octave there should be 12 drums. If we want to extend the range, change waveforms, use all 3 AY channels, the number of drums should be unlimited.

I talked some time ago via fb chat with Chris (if this is the same person as FrankT), he said that AY emulation is not implemented in Beepola, but it is possible.

The best would be as you did it in your engine prototype, at least 1 byte for each AY channel in the tracker data. I'm not good enough to code it.
Or if we want it simpler, one AY channel and one more byte in the tracker data, that defines the AY note and calls the AY player before playing the beeper note.

5

(13 replies, posted in Sinclair)

Utz, I'm impressed with your work.

I've done two modifications of Special FX engine.
In the first one I used the drum routine to play the AY basses as a third independent channel, but...
I wanted the music to be editable in Beepola, so the limit was 4 bass notes + AY mute.
I chose notes D, F, A and A# as the best synchronized and hard-wired them to drums 1-4.
Drum 5 is used as AY mute.

In the Beepola SFX editor you can use more drums, but only drums 1 to 5 are exported to asm music data.
You can use other notes, but the values of DRM patterns must be changed manually in a text editor
or if you want to use 4 different notes, simply change them in the asm for drums 1-4
The values in the DRM patterns are 129 - 132 for drums 1-4, 133 for AY mute, they are exported automatically.
The drums 6+ use higher values 134+
The test is the pattern 4. Notes E, F#, G, B are used as drums 6-9.

The original beeper drums may be added to the music, but carefully. When the AY note is changed, a drum is released.
That's why there are only beeper drums 1 and 3 arranged.
Separation of beeper drums and AY bass is possible, but it would require re-writing the engine, to store the data for drums and AY bass in separate columns or use bits of the tracker notation (if any bits are free).

The zip contains a Beepola tracker file, a ZX tape and assembly of the engine and music data.
The tape runs with USR 60000 (or RANDOMIZE USR 60000 on ZX48), This is only a short example to see that almost everything may be edited in Beepola.
Compile Beepola music as data only .asm, remove the ORG at the beginning and re-assembly with the DoomBass.