Home > Projects / Repairs, Sid Player, Various > How was born the project The Return of the Hybrid SID Player?

How was born the project The Return of the Hybrid SID Player?

The Return of the Hybrid SID Player

In this post i will briefly try to summarize the history of the project “The Return of the Hybrid SID Player”.

I have always had the monkey to build a standalone SID Player that was not completely emulated, yes, i am a Purist of SID music and SID sound CHIP (6581/8580).

In recent years i have tried several SID Players and in the last period i have focused on Bakisha’s SID emulator (based on STM32F407VET6 MCU which i love) upgrading it by adding an ILI9341 OLED display and some information and sound light on the screen.

Using the same project, but this time using the STM32F401CCU6 MCU, i have added the possibility to run with a Real external SID (thank you Bakisha for the precious support).

Unfortunately the Player had remained in an embryonic stage, at least compared to what i had in mind and to the expectations that i believe should be had from a software of that type.

After searching on the net (to avoid wasting time reinventing the wheel) i found the Hybrid Sid Player project by Markus Gritsch, published on the Dangerousprototypes forum and released between 2011 – 2015.

Markus’s project included, in addition to the emulation of the SID also the use of a real external SID, an OLED display, a File Browser with the possibility of using a Rotary Encoder and VU-METER, SID Digi in PSID format (pre HVSC #50), and SID with multi Tunes, as well as a proprietary file format called DMP, which also allowed you to listen (after a simple conversion) the SID files in the new RSID format.

Unfortunately the CUI32 DEV Board on which the Player was developed has not been available from many years, so to assemble the project i have used the Olimex DEV Board PIC32-T795, based on the same MCU Microchip PIC32MX795F512H.

The Return of the Hybrid SID Player

Everything ran pretty much immediately, but unfortunately some important features were missing. I thought of contacting Markus to find out if he was willing to continue with the project, but unfortunately he was no longer interested and, by the way, surprised that the source would also compile with the latest Microchip’s new MPLAB X IDE.

At that point i couldn’t help but slowly start reading and understanding the source code he wrote to add several features (which you can read in the changelog below).

Once i reached a good stability of the firmware i said to myself: now we need to do the PCB! i can’t keep everything on the breadboard, as it is definitely not recommended to work with Analog audio signals on a Breadboard, especially if you are a sound and SID purist!

Alone, however, i would never have been able to carry out such a project, i absolutely needed a hand. So i decided to contact Gianluca Renzi of RetroBit Lab, a person with an excellent experience in Electronics, PCB design and Programming. He liked my idea right away, and he took the project to heart by drawing the wiring diagram from scratch, taking care of the choice of components and taking care of some critical power supply sections. I am not going to list all the tests we have done but i guarantee you that they have been many!

Meticulous and paranoid both i and Gianluca, probably i’m more Paranoid than Gianluca :D, after several months, we were able to give birth to the prototype of the PCB that you can see below.

Currently there is no the PCB and the relative assembly of components, test its operation and in case of problems, apply some flying fixes, correct the wiring diagram and consequently the PCB.

The last step will be to write a short documentation and release everything on GITHUB, so that anyone can have the opportunity to build their own SID Player and, important note, to add features to the software, fix bugs or, why not, also rewrite everything from scratch! The PCB allows it and has been designed to be dynamic and adapt to the imagination and needs of the programmer.

Gallery:

Video:

…more video here.

Changelog:

The return of the Hybrid Sid Player by xAD/Nightfall & Gianluca Renzi (RetroBitLab)

Based on the Project and Hardware Schematic by Markus Gritsch released in the years 2011-2015 on the forum dangerousprototypes. Thanks Markus.

v1.03 – 01/04/2021

Updated:

- Reset Timer when the MODE key is pressed for the following modes: SEQUENTIAL – RANDOM – INTRO.
- Replaced the code for the EEPROM emulator with a real EEPROM 24LC256 (BitBang/I2c Mode). No more Timing Problem.

Added:

- Serial Debug via UART1 (RD3).
  The firmware will be released in two differents versions, one with the Debug enabled and one without.
- Splash Screen Logo.
- New fourth choice for the button MODE, it’s called The INTRO mode. (i like it!)
  It will play the first 15 seconds of the SID and then automatically select a new one at Random.
  If you like the SID you are listening to just press the MODE button to switch to Manual MODE and the SID will not change.
  This option remindful the old MP3 players that had the INTRO option to listen the first 30 seconds of the music track.
 
Fixed:

- Missing INCLUDE to remove the error “unable to resolve the symbol… tolower()” but MPLABX compile the code anyway :D
- The label of the SID Model Version in case the sid have subsongs is too large, fixed with a workaround. I am realizing now this OLED screen is too small :-D

Various:

- Cleaned up a bit the code with some unused functions.

v1.02 – 04/03/2021

Updated:

- Changed connection of Buttons [Previous|Next] (RB0 & RB1) because are conflict with the ICSP (thanks Gianluca Renzi [Te lo avevo detto! :D]) to RB3 and RB4,
  RB2 is already used by the MODE button.

Fixed:

- Reset timer when the playing MODE is changed.
- SID Model Version displayed accidentally when the playing MODE is changed.
- Pseudo Random.
- *DMP (Dump) Custom File Format Broken in the previous version v1.01.

* The DMP is a custom file of the original RSID format after a conversion.
  More information here: http://dangerousprototypes.com/forum/index.php?topic=2197.msg41618#msg41618

Various:

- Optimizing code.

v1.01 – 23/02/2021

Added:

- Button MODE for choose how to play the song: MANUAL – SEQUENTIAL – RANDOM.
  Since can’t implement songlenghts, the song changes every 2 minutes.

v1.0 – 09/02/2021

Updated:

- Adjusted Brightness when is used a OLED Display 1.3″
- 2 Secs wait time for the SpashScreen.
- Modified Splash Screen.

Added:

- Button for Next SID in the same folder and it start from the first one when reach the last one.
- Button for Previous SID in the same folder and it start from the last one when reach the first one.
- SID Model Version when Playing a SID, displayed the firsten 3 seconds and then show again the play icon .

Todo:

- Draw a Circuit Diagram with some enhancements and make a Prototype PCB and share the project for all. *This is NOT a commercial project*

- Update the FATFS Library by ChaN
– http://elm-chan.org/fsw/ff/00index_e.html

- Add Illegal Opcodes to the 6502/6510 Emulator and also Optimizing the CPU Emulator.
– https://www.oric.org/ftp/ceo/ceomag/downloads///ebooks/nomoresecretsnmos6510.pdf
– http://www.oxyron.de/html/opcodes02.html

- SID Playlist.
- Realtime Switching 6581/8580 if ARMSID is used.
- Use the Button MODE to open an advanced setup menu.
- Loading files error handling.

- Add Firmware Upgrade via USB Pen Drive.
– https://www.eeweb.com/wp-content/uploads/articles-app-notes-files-pic32-bootloader-1335647102.pdf

  1. Martin Pasta
    May 1st, 2021 at 00:52 | #1

    Hi there,

    Nice job ;-). I’ve been playing with the original project for some time now. I was able to compile the code only in mplab 8 and struggling a bit with dual boot. I need to always burn dualboot first with erasing everything and then burn hybrid sid and netsid sequentially (it’s bit annoying). Would you mind to share the x ide project that I could play with it? Also do you have some hints for keeping the sound quality as best as possible? I am on prototype board so it’s bit difficult as the wiring is bit messy. I’ve managed to keep digital lines mainly separated from audio and 5V and 9V for 8580. Also I am using separate LDOs for those voltages and using TL072 as amp. I suspect that display is adding some high pitch noise to the sound so thinking about switching it off instead of dimming after some timeout period.

    Regards,
    Martin.

  2. May 1st, 2021 at 10:50 | #2

    Hi Martin,

    The schematic/pcb and sources will be made public on github as soon as i have the final prototype for the latest checks and implementations and a help for the software part is welcome to improve it.

    Last night i added a couple of illegal opcodes for the 6502/6510 cpu emulator, some tunes use them, others instead block completely, they are very few and i have to debug and understand why it happens.

    In my opinion i should completely replace the current CPU emulator and replace it and partially remove the SID emulator which i am not interested in, i want to use only the real SID.

    This fucking OLED generates a lot of noise, i have fixed it 99% with a RLC filter.

    d.

    https://electronics.stackexchange.com/questions/441907/filtering-out-oled-electrical-noise
    https://www.eevblog.com/forum/projects/oled-audible-noise/

  3. Martin Pasta
    May 1st, 2021 at 22:03 | #3

    Thanks for hint with OLED, i’ll give it a try. Looking forward for schema/code and future progress.

    Take care.

  4. John de Rooij
    September 30th, 2021 at 23:56 | #5

    hI mARTIN,
    iS tHIS pROJECT aLREADY aVAIL 4 dIy?

    nEED 2 bUILD THIS!

    aWESOME!

  5. Martin
    October 10th, 2021 at 11:31 | #6

    Hi,

    How is it going with your project? Is the latest version of the software source code available somewhere or is it still not published?

    Regards,
    Martin.

  6. October 10th, 2021 at 12:56 | #7

    @Martin

    Hi Martin,

    Before releasing the sources i have to implement some functionality that are available only in the PCB.

    I await the PCB and after the implementations if everything is ok, i will release the sources on github.

    Here the changelog of the changelog :D

    https://www.nightfallcrew.com/category/today/projects_repairs/sid-player-projects_repairs/

*