You're right ARTRAG, but I'd like to add that you should never use NLMSX to test sound:
* Fm-Pac emulation is highly inaccurate
* It %#&$ up MML
* It %#&$ up OPL4
* It %#&$ up base frequencies of PSG
* Fm-Pac emulation is highly inaccurate
* It %#&$ up MML
* It %#&$ up OPL4
* It %#&$ up base frequencies of PSG
Well, at least SCC seems that it's not %#&$ up
Agreed with ARTRAG, the best practice is testing with several emus and always ending with a real machine.
This one keeps to my mind a nasty bug that was bothering me until the end. None of the emulators show the same behaviour and run fine the game; but running over MSX1 machines, a weird sprite flickering and corruption ruined it. Once I finally found the bug, it turned out being a illegal VDP register (VDP#9 IIRC) writing on MSX1 machines (only legal on MSX2). Seems pretty innocent; but it totally scrambles the display on real MSX1 machines
Yeah its pretty much required to test on real msx if you want to be sure your program works as intended. I had a nice bug last week, where my game polls the VBLANK status bit for synchronization because I wanted to run the game with interrupts disabled. On emus this worked great (tested on 10 or so emus but on real MSX there is an unfortunate race condition so that if you read SR at the same time the flags are chnaged, the flags are cleared, but not returned to you when you read the register.
I knew by experience that this was a problem with the sprite collision and 5th sprite flags, but it appears to be the same on the vblank flag as well.
on real MSX there is an unfortunate race condition so that if you read SR at the same time the flags are chnaged, the flags are cleared, but not returned to you when you read the register
Can I ask you what was the solution (if any was found)?, seems a tricky problem...
Unfortunately there isn't much todo. What we did was to change our original code:
halt: in a,(VDP_READ_STATUS) and 0x80 jp z,halt
to
halt: ld a,48 halt_loop: dec a jp nz,halt_loop in a,(VDP_READ_STATUS) and 0x80 jp z,halt
i.e. adding about 3 scanlines worth of delay between each status register read. This reduces the chance for the flag to be read and cleared improperly but it doesn't take the problem away. I think the only real solution is to drop this idea and use interrupts instead.
Is Vortex Tracker II dead ?!
The site of the developer has put offline the files!!
http://bulba.at.kz/vortex_e.htm
Where can the program be found?
:-?
Try again, the site & files work for me...
Hi,
has anybody had any success with this combination of music and sfx player?
I am observing the sfx get distorted depending on the effect itself and/or the music being played. I am not sure if this is a limitation or a bug.
I have successfully used this:
https://sites.google.com/site/z80stsoftware/downloads/code
Hello,
For the upcoming Fusion-C v1.3 I integrated The AYFX player ( you talked about : https://github.com/theNestruo/msx-msxlib/tree/master/libext)
with the PT3 player ASM Routine.
Both works well together.
But I noticed a problem, when there is no PT3 music playing, and I play FX sounds, some of them do not cut at their end. So there is a awful sound continuously playing. This does not happen on all FX sounds. I tried to find an answer, but without success.