Latest progress and testing

When testing the latest versions on Hatari in TT High I did not manage to get any sound at all. This was a bit odd as I remembered EPSS had been working on the TT before. Also GemTwo tested on his real TT and it was exactly the same result, some flashing colours and no sound and even the MID file was just stuck at 0 when pressing play.

After some digging in the code, I found an check that was done if the DMA buffer had been overrun. When it was detected as overrun, it flashed the colours and try to reset the sound by stopping and starting it. This was the routine that was triggered all the time on the TT.

Trying to turn off the check at least got the MID file running when pressing play but still no sound at all.

I found some other code examples that was included in the EPSS Registered version that I managed to get sound with though, so not all hope is lost. But it sounded quite bad like it was playing the buffer two times and things like that so something is definitely not right here. At least that was on the Hatari. I might try this on a real TT to see if I get the same result.

But I think I recall the history of the development a bit here: When I first started coding on the EPSS I used my TT. And I designed it to utilize the feature that a Timer A interrupt was triggered when the Sound DMA buffer reach the end. This worked fine as far as I can remember. Then we wanted to use the EPSS in our Unit Seventeen demos. It was not really very demo-friendly to have a separate Timer A that was running so I tried to rewrite it to be able to run on the VBL without any Time A triggering end of sound buffer.

This was a bit difficult as we then have to ensure that the size of the play buffer was equal to how much could be played in the VBL. I Don’t think we ever solved this perfect and it might be some artifacts from then that now makes the EPSS not work on the TT. At least that is my theory for now.

We might release it anyway as it stands now, as it at least will be STe and Falcon compatible.

I might look to try to use Timer A for using the EPSS freestanding as a PRG or ACC for those that might want to use it on TT or possibly other environments where you run it on the VBL and then have a set of sound drivers that would be Time A enabled. But that approach might not work with linking it with Cubase with MROS, if they maybe use Timer A for their own purposes…


First member post

Membership area is now in place.

If you are registered on the site you should be able to follow the progress of EPSS here.

So a little background to where we are now:

As GemTwo wrote in the announcements on Facebook, he and I (copson) have been trying to revive the EPSS as we started to buy back some of our old Atari computers.

Last time anything was done to it was probably around 1994 but fortunately I had saved the image of the hard disk I then used so I have every bit of source code left.

It was around springtime 2017 we got together and started looking at everything again and managed to get everything up an running pretty quick.

We then wanted to start create some new sound patches (SPI) to be used with EPSS. We soon realized it was not really possible to try to find some sample, then convert it to some Atari readable format and then move it over to the Atari and then use it to build the patch. It took ages and we didn’t get hardly anywhere.

This is where we came up with the idea of being able to create the patches in an environment where all sounds were, i.e. directly on the PC. So I started making a simple tool for that, EPSSSPICreator I called it. You can find a link to it on the Download page. It is put up public on GitHub with source so feel free to give it a test run. It runs in simple Windows .Net.

It was tested a bit and then used to create some test patches that worked well on EPSS running on Atari and in the Hatari emulator as well.

Testing some standard .MID files crashed out completely though. It was because when I implemented the old .MID file parser I never really had any documentation of the format so I reversed engineered test files I did on Cubase saved as .MID.

Nowadays it is easy to find a proper MIDI file specification so I started to debug EPSS and it was because we never supported what is called “Running status” on the MIDI messages. This is used to compress a MIDI stream to send multiple messages to the same device without having to repeat the initial bytes that address the correct device. So it would save maybe 1-2 bytes per MIDI message, important optimizations in the 90s! It was possible to “fix” those files in Cubase by loading them and turning off the “Running status” flag and saving them.

But as a first exercise to try to get back into the code and the 58k assembler, I update my .MID file parser I EPSS to cope with those messages as well so it now reads many more .MID files without having to convert them in Cubase!

Another minor thing I also adjusted was to cope with 4 numbered years. The SPI contains dates and I only outputted those with two numbers, 95 etc so when loading SPI files with years over 1999, the output failed and the characters got out of bound. So an old classic year 2000 bug was fixed as well!

Then GemTwo came up with the idea to release EPSS public and that is why I created this site to have an area to gather everything related to that.

So this is the current state of EPSS 1.03 the 20th of January 2018:

  • .MID file parser copes with running status.
  • SPI file dates includes year 2000 fix
  • Copyright messages and texts in the program are updated to contain current information

I could put up the compiled version as a 1.03Beta for testing if we get enough interest. Let me know by commenting to this post in that case.