Re: 7 days, 7 (new) beeper engines

Thanks folks smile

Just trying to figure out how to get started in this area, without too much hassle, hehe.
(I don't have any of my old hardware here in Switzerland, it's all in Ireland)

Beepola is interesting, but Windows-only, hmm.


Re: 7 days, 7 (new) beeper engines

A lot of engines (including the ones from 7d7e) can be used on *nix, too - just get Milkytracker for XM tracking, and Fuse as Speccy emulator.
Also, 1tracker can be compiled on *nix, but that takes quite a bit of fiddeling.

Re: 7 days, 7 (new) beeper engines

beepola is working quite ok with Wine


Re: 7 days, 7 (new) beeper engines

Fixed some bugs in the quattropic XM converter. Also, as the C++ converter seems reasonably stable now, I've ditched the old Perl-based one entirely. Please re-download at … p?raw=true.

Re: 7 days, 7 (new) beeper engines

Cheers utz  smile

I'll give it a try when I've got some time.

Btw, does this convertor work with .xm files created with Open MTP or does it have to be milkytracker?


Re: 7 days, 7 (new) beeper engines

In theory™ all XM files using XM version 1.04 should work. It seems however that OpenMPT is somehow messing with the format, haven't quite been able to figure out what's going on though. If you like, send me a few test XMs created with OpenMPT, and I'll do my best to adapt the converter(s).


Re: 7 days, 7 (new) beeper engines

Fixed yet another bug in the quattropic XM converter, and made a new Windows build that might actually work on Windows, unlike the last one yikes


Re: 7 days, 7 (new) beeper engines

And a new Win build for this one, too. Download address as above.

34 (edited by garvalf 2016-01-17 22:39:19)

Re: 7 days, 7 (new) beeper engines

For the quattropic engine I get many glitches when I have some notes both on channel 3 and 4 (slide on ch3 and noise on ch4). If I remove one of those tracks, the glitches disappear so it's a conjunction of the two which are producing them. Maybe it's intentional (I don't really understand how the slide notes should behave btw), anyway it's very cool.


Re: 7 days, 7 (new) beeper engines

Gah! Not again... Yeah, that's a bug in the converter alright. For some reason I just can't get it to output the proper combination of flags and counter values. Ok, I'll look into it in the coming days.

The slides should theoretically behave as you might expect, except that (unlike in the template) they will reset on every row.

Re: 7 days, 7 (new) beeper engines

I'll send you a couple of files with this behavior, if I still have them. I kept some glitches, while I removed some others. I used your last converter from 2015-01-14 I think, I re-downloaded yesterday this one and compared with the cpp code and it was the same … p?raw=true

for the slides, they sound more like bass drums


Re: 7 days, 7 (new) beeper engines

Ah yes, some test files will help to analyze the problem, though at this point I'm considering rewriting the whole converter, as I've patched it like 5 times already without success.

The idea of the slides is indeed to simulate kick drums and toms. However, seems it's not that feasible after all, since their volume is too low. So perhaps I'm gonna add some good old-fashioned click drums after all.


Re: 7 days, 7 (new) beeper engines

Aaaand another attempt at fixing the /§$(/§&$§! quattropic converter. Rewrote the entire mode selection code (the one that sets the row mode flag based on the presence/absence of noise and slides). Who knows, maybe it will actually work for once? Going on previous experience I don't have very high hopes.

Re: 7 days, 7 (new) beeper engines

Hello,I have two questions about the engine quattropic.

At first, it seems to me that your code does not compile: indeed in the file main.asm, one has two different occurences of the routine _skip. One is at line 26 and other one is at line 167. Can you give a hint to correct this problem.

Now, I do not have a Sinclair Spectrum. I have a VG5000 computer (here is a link to see what is this computer So, I try to adapt your code for this computer. What I understood about Spectrum is that the out port for sound is $FE and the useful bit is bit-4. But I do not unserstand the routine

    in a,(#1f)        ;read joystick
maskKempston equ $+1
    and #1f
    ld c,a
    in a,(#fe)        ;read kbd
    or c
    and #1f
    jp nz,exit

What does this routine do? Thanks in advance for any asnwer that you could give me

Re: 7 days, 7 (new) beeper engines

The routine reads keyboard and one of common joystick port to check if there is a key has been pressed, to stop the player. That's common situation in games, music plays until it ends, or a key is pressed.

Re: 7 days, 7 (new) beeper engines


is there a beeper on the VG5000? How is the sound generally produced? I've looked at the "Philips VG5000 Departement Formation Technique (09-84)" manual, it seems it can be rerouted into the tape interface and driven by the z80 cpu.

42 (edited by garvalf 2016-01-23 13:12:21)

Re: 7 days, 7 (new) beeper engines

so, it's working? … amp;t=6895
I've loaded your .k7 into the dcvg5k emulator, how can I run it? I can type "load", or "run", but I don't know how to play the tape (the option is not available)

ok, I found it on the user manual ( ):

cload "VG5000"

much hiss and noise in the emulator, but it's still very good...


Re: 7 days, 7 (new) beeper engines

Hello jeremielapuree,

Very cool that you are porting this routine to VG5000! I'm busy today so I can't check out your work right now, but I will do so as soon as possible.
Is there a version of dcvg5k for regular linux, btw?

The _skip labels are so-called local labels, they are only valid till the next non-local label. Prefixing with an underscore (_) is how pasmo does it, other assemblers will use a different syntax.

You can in fact remove lines 19-26 in main.asm, this code is just there to detect the presence of a Kempston joystick interface. So it's ZX Spectrum specific, you don't need it on VG5000. Then, you can replace the code you listed in your post with a standard keyboard check on your machine.
Hope that helps wink

Re: 7 days, 7 (new) beeper engines

dcvg5k is available there: . It runs fine with wine. I thought it wasn't for linux but there is a sdl version:
I haven't tried it (it might be older)

45 (edited by jeremielapuree 2016-01-23 20:05:37)

Re: 7 days, 7 (new) beeper engines

Hello, thanks a lot for your feedback.
The port for VG5000 is kind of working. The dcvg5k's author released a new version of dcvg5k that improves the sound (see … 95#p112966 ). The quality is quite good.


Re: 7 days, 7 (new) beeper engines

Glad you got it working!

Could you ask Daniel if he would be so kind to release the sources for the new version of dcvg5k, so I can build it on linux? I failed to build the old version btw, because ld can't find the DAsm function in dasmz80.c for some reason.

object/dcvg5kdesass.o: In function `Displaydesass':
dcvg5kdesass.c:(.text+0x26f): undefined reference to `DAsm'
collect2: error: ld returned 1 exit status
makefile:9: recipe for target 'dcvg5k' failed

Btw, on you advised to remove the "exit" section. This isn't such a good idea, because it will cause a stack imbalance if the routine actually exits (eg. if loop is disabled [jump in line 47 enabled] or if you put the keyboard check back in). A better way would be to remove lines 28-29 and 460-461 - these are only necessary because ZX Spectrum BASIC expects a certain value in HL'. You probably don't need to do this on VG5000.

47 (edited by jeremielapuree 2016-01-25 01:52:23)

Re: 7 days, 7 (new) beeper engines

thank you for your support.  I removed the exit routine because in the VG5000 version the key CTRL resets completely the computer. So an infinite loop is not a problem in VG5000

About dcvg5k, on no-windows platform only the old SDL version is available. The  file dasm.c cannot be freely distributed. You can find it at … z80/dasm.c

The new version of dcvg5k is  Windows only. It uses Directx. Fortunately, it works very fine with Wine.

48 (edited by jeremielapuree 2016-01-25 19:23:35)

Re: 7 days, 7 (new) beeper engines

The speed of Z80 in VG5000 is 4MHz instead of 3.5Mhz in Spectrum. So the speed of the melody is faster in VG5000. Do you know what we must change in the code to have exactly the same speed of melody in spectrum and VG5000? … 15#p113027


Re: 7 days, 7 (new) beeper engines

Add 2 nops immediately after every out (#af),a instruction.

Not a wine user (my PC is too old/slow, and I consider it a security risk), so I'll have to try dcvg5k on my win xp box after all hmm Judging from the recording the guy put on soundcloud it sounds good ok though, except that the noise drums seem a bit quiet.

Re: 7 days, 7 (new) beeper engines

I wonder if he didn't recorded the vg5000 from the ambient sound in the room, instead of from the line out. It sounds like recorded "live".