Archive

Archive for the ‘Sid Player’ Category

The return of the Hybrid Sid Player Firmware update v2.00

May 12th, 2024 No comments

The return of the Hybrid Sid Player by xAD/Nightfall

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

Changelog:

v2.00 – 11/5/2024

Added:

  • Added a new parameter in the configuration file (config.ini).
    • Now you can also choose the FPGASid as well as the ARMSID for SID auto switching.

Below is an excerpt from the “config.ini” file.

# FPGASid/Armsid Auto Switching (0:Disabled – 1:Socket #1 – 2:Socket #2) – default: 0
# When you use this mode the other socket it does not activate automatically.
FPGASID_SOCKET=0

  • Implemented auto switching for the FPGASid.

When choosing this mode the FPGASid must be installed ONLY in one of the two sockets,  you must also choose which socket to use for the FPGASid by editing the configuration file.

When configuring auto switching for the FPGASid during boot the SID Player is displayed the message “FPGASid Socket #” followed by the socket number where the FPGASid was configured in the configuration file.  This message is intended only to inform you that the configuration has been correctly activated.

*** Please read if you want to use the FPGASid in Auto Switching mode ***

The status LED indicating the SID that is used to play the song will remain fixed on the socket where the FPGASid was installed, therefore it will not change between Socket #1 and Socket #2.

The display of the SID model from the music track being played will consequently be displayed Only on the display.

The ‘sidSet’ mode will work exactly as before, the only difference is that if no SID is installed in the other Socket no sound will be played :-D while if a SID model 6581 or 8580 is installed you will be able to compare the fidelity of the FPGASid by switching between the two SIDs (obviously better if the same model).

The configuration of the model of the Sid with which to play the piece of music in the configuration file although working in this case it is to be considered Virtual because we would no longer have a change of state between Sockets for each SID model, therefore i decided to assign a static numbering to the SID.

  • Write 1 for the SID 8580 model
  • Write 2 for the SID 6581 model

For files in DMP format (conversion from RSID to RAW) playback is automatically forced with the 8580 SID of the FPGASid.

Jumpers to configure if the FPGASid is installed:

  • Filter capacitors (JP4/JP5 or JP6/JP7): Does not matter.
  • SID voltage 9v/12v (JP2 or JP3): Does not matter.
  • Resistor 1k (JP10 or JP15): Better to remove.

Updated:

  • Slightly fixed timing for SID song playback. Unnoticeable problem :-D

Fixed:

  • Config.ini Parser BUG. The “ARMSID_SOCKET” parameter was not read correctly.

NOTE: The SID Player currently only supports the FPGASID for SID auto switching.

My SID Player plays SID tunes with the SIDKick-pico

January 28th, 2024 No comments

I wanted to try the SIDKick pico also with my SID Player, everything is ok, it works as well as i expected.

The green LED just below the SID Socket indicates that the SIDKick is playing.

Video:

SIDKick-Pico by Frenetic

January 27th, 2024 2 comments

SIDKick pico by Frenetic is a microcontroller-based C64 SID replacement. Analog inputs for paddles and mice are available just as for the original SID.

SIDKick pico uses firmware similar to its “big brother” SIDKick. However, the pico variant is based on the Raspberry Pi Pico board that uses the RP2040 microcontroller which is much cheaper and has better availability than the Teensy that is used by the normal SIDKick.

Technical features:

  • Dual 6581 and/or 8580 emulation based on reSID 0.16 (optional: extension for digi-playing techniques).
  • 2nd-SID address at $d400, $d420, $d500, $d420 + $d500 simultaneously, $de00, $df00 ($d500 is not available on the C128), or any address when an external chip select signal is used (e.g. on Ultimate 64 boards).
  • Paddle/Mouse support.
  • Built-in configuration menu (launch with “SYS 54301″/”SYS 54333″, also from C128-mode).
  • Sound output via PWM (mono) through the C64/C128 mainboard, or in stereo using a PCM5102A-DAC-board.
  • Flashing RGB-LED (WS2812) on GPIO 23 (installed on some Pico-clones)

My personal opinion:

My personal opinion as an inveterate purist is that no emulation or implementation will have the sound performance of the native SID (6581/8580).

I can accept as a good implementation the FPGASid and ARMSid where the developers have done a really good job.

SIDKick defends itself well and is low cost, furthermore it’s Open Source, also has a nice feature that i appreciated a lot, it has integrated configuration software that can be run with a simple SYS in both C64 and 128 modes.

So my final opinion is most people will never notice any difference, but i assure you that the differences are there, so i recommend it to everyone unless you are a SID purist.

Note:

The audio output and emulation improves if you use the PCM5102A-DAC add-on card, in my test i chose not to use it because i wanted to show you a plug’n'play without too many cables, jacks and patches. Maybe it was better to include this additional module directly on the SIDKick PCB? probably yes.

The KIT was purchased from restore-store.de, fast shipping and impeccable service.

Gallery of the shipping box:

Gallery:

Video:

source: c64-wiki.com github.com/frntc/SIDKick-pico restore-store.de

The return of the Hybrid Sid Player Firmware update v1.22

February 24th, 2023 1 comment

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

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

Changelog:

v1.22 – 6/2/2023

Note:

  • From this release the new versions will be developed and tested on the v2 prototype PCB and no longer on the Breadboard prototype.

Added:

  • Software implementation of the new audio Switcher.
  • Added a new value (0: Nothing) to the DEFAULT_SID_SOCKET in the configuration file (config.ini).

  # Choose the default SID Socket on bootup (0: Nothing – 1:Socket #1 – 2:Socket #2) – default: 1
  DEFAULT_SID_SOCKET=1

  • Added control via MCU of the power-up led. It might come in handy for future implementations.

Updated:

  • Updated label on the oled display for the “sid switch” mode, now “sidSet” is written and not just “sid”
  • Updated boot screen with the text “sorting files…” if the folder contains too many files (max 800).

Fixed:

  • The encoder cannot be used for manual SID SWITCH mode in case the SID tune played is multitunes because the encoder is used to select the songs, so although the “sidset” option will be displayed on the display in this  specific case the selection of the sid socket will not working.
  • Logic for the switch of the Socket SID with which to play the song and the consequent LED.
  • Default SID Socket if nothing is specified in the config file (config.ini)
  • Manual “sid switch” mode, the SID that was played with this mode would stop after 2 minutes and start over.

The return of the Hybrid Sid Player Firmware update v1.21

September 29th, 2022 1 comment

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

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

Changelog:

v1.21 – 29/9/2022

Added:

  • A new MODE has been added and can be used with the MODE key while you are in TUNEINFO screen.

This mode allows to change the SID model in realtime while the music is playing.

Example:

If a SID music is played with the SID 8580 positioned on SOCKET #1 by choosing the ‘sid’ mode you can with the encoder turning it to the Right or Left choose the SOCKET #2 where for example where is installed a SID 6581. The led placed under the Socket will show the sid you have chosen.
 
An apparently useless option which, however, can be used to experiment the differences in reproduction of the piece of music with two different SID models or choose the most appropriate sid model if the SID not specified the SID to be used.
 
So in summary we have these choice with the mode key while you are in TUNEINFO screen.

- Single Play
- Sequential Play
- Random Play
- Intro Play
- Sid Switch

Updated:

  • Source code description.

Fixed:

  • Missing the default value of the startSong in the SID Header if this value is missing. The SidPlayer sets 255 and try to play it.

I only found one SID with this strange configuration : Hammer Down by Sean Connoly.  Fixed by setting it to the default value : 1.

  • The player freezes while browsing file system folders with many *.sid files.

This happens when the driver scan the file system and immediately after is done the bubble sort routine that takes about 700ms for 512 entries and more for the max entries (800) in one single directory and during this time the sid player freezes.
 
To avoid hearing the annoying last note played repeatedly for this amount of time, i have forced the player to pause and remove it as soon as the contents of the new directory will be displayed.
 
Obviously if you had chosen to pause the song voluntarily with the appropriate button, it will not resume playing after the new directory is displayed.

The return of the Hybrid Sid Player Firmware update v1.20

July 31st, 2022 No comments

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

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

Changelog:

v1.20 – 30/7/2022

Added:

  • Combo buttons to go up of one directory.

The new feature working when you are in FILE BROWSING display mode and by holding down the button MODE and at the same time press the button of the ENCODER you can go up of one directory.

This mode is very useful if you have a list of many files or directory and would like to easily go up of one directory, currently you should scroll at the beginning or at the end of the list and then click on the double dot to go back, really boring.

Updated:

  • Modified the way for the horizontal scroll of the sid filenames list.

I was not very convinced by the system that i have made for scroll the filenames horizontally, so i changed the mode, in my opinion much nicer.

By holding down the MODE key when you are in FILE BROWSING display mode you can move the entire screen with the filenames list left and right using the same encoder that is used to scroll the filenames list up and down.

Moreover the horizontal screen position is maintained also after the switching of the display mode or if you go up of one or more directory.

The return of the Hybrid Sid Player Firmware update v1.19

May 23rd, 2022 No comments

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

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

Changelog:

v1.19 – 22/5/2022

Added:

  • Added the horizontal scroll of the sid filenames list.
    • The maximum allowed length of the sid file including extension is 48 characters, the small oled can display a maximum of 20 characters, so this feature is useful with very long file names. The function is activated with the MODE key when you are in browsing files mode, once the 48 characters are reached, the scroll resets and repositions the display of the file from the beginning until the next pressing of the MODE key.

Updated:

  • Added a new parameter to the configuration file (config.ini).
    • Choose the default SID Socket on bootup. This configuration is not mandatory.

Below is an excerpt from the “config.ini” file.

# Choose the default SID Socket on bootup (1:Socket #1 – 2:Socket #2) – default: 1
DEFAULT_SID_SOCKET=1

Fixed:

  • Wrong emulation for the NOP opcode. %-)
    • I noticed this problem with a SID made by Hermit of Samar Productions, SIDRIP Alliance, Singular that uses a SID Player written by him. SID Tune: MSK Cover-XF End (https://csdb.dk/release/?id=214247)  This SID Player uses several illegal opcodes and i immediately thought of an emulation problem of these illegal opcodes, instead it was the NOP opcode that had problems. I point out that i listen at random 7XX favorite songs at least 1 hour a day and i never noticed any problems. :-D  Anyway, Fixed.
  • Max entries per directory.

The Return of the HybridSID Player rev v2.0 (Bloody Version)

April 23rd, 2022 No comments
The Return of the HybridSID Player JLCPCB rev v2.0

The PCB of our SID Player rev v2.0 is finally here.

Missing only the assembly and testing.

Gallery:

Note:

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

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

The Return of the HybridSID Player PCB rev v2.0

February 18th, 2022 No comments

The Return of the HybridSID Player PCB rev v2.0 by Xad/Nightfall & Gianluca Renzi (RetroBit Lab). Based on the Project and Hardware Schematic by Markus Gritsch released in the years 2011-2015 on the forum dangerousprototypes. Thanks Markus.

After the first revision of the PCB we are realized that there were some design problems and consequently of a correct functioning.

Below is a brief description of the fixes and improvements that have been made for the new one version of the SID Player PCB.

PCB rev v2.0 St.Valentine’s day version:

  • OLED did not turn off when the power switch was off.
  • Wrong pinout of the ALPS switch and consequently the PCB could not be powered via the USB power supply/power bank.
  • Removed Zener diode.
  • Added two new jumpers to select (AB – BA) for the rotary encoder.
  • Rotary Encoder 20 steps, the previous one was wrong.
  • Removed circuit for the switch of the two LEDs to visualize what SID is used for playing the song.
  • Remapped the two SID LED switches on two MCU pins (RB15 – LED SOCKET # 1, RB12 – LED SOCKET # 2)
  • Removed the possibility of using OLED 0.96″
  • Aligned OLED 1.3 “on the line of the ZIF Socket.
  • Moved reset signal that was used by OLED 0.96 on free pins connector.
  • Fixed the holes for the OLED 1.3 “
  • Remapped the following pins (RD5 – SID_RW, RD6 – SID2_CS, RB9 – KEY_FFWD, RB10 – KEY_PAUSE) to free 5v tolerant pins.
  • Added two new pull-up resistors for PAUSE and FFWD key.
  • Redesigned the entire amplifier stage for the headphone output using TPA6111A2 and NE5532.
  • PCB tracks optimization.
  • Facilitated the CPU DEBUG by creating a “frame” where each PAD corresponds to a pin of the MCU.

The return of the Hybrid Sid Player Firmware update v1.18

January 31st, 2022 No comments

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

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

Changelog:

v1.18 – 28/1/2022

Fixed:

  • When you are in Manual mode of playing SID the timeout timer wrongly are also increased into a variable but this timer works only for the modes: auto/random/intro.
  • Wrong STATIC variable for the debug via serial. the serial debug don’t works correctly in some part of the code. %-)
  • Wrong variable for the Timeout check if the time is longer then 99 seconds. %-)

Updated:

  • Freed and remapped to another destination the MCU pins of PAUSE and FFWD buttons to use them with the CS for the SID #2 and R/W because we needed 2 MCU pins 5v tolerant and there aren’t many left :/
  • Described some parts of the source code.
  • Added new parameters to the configuration file (config.ini).
    • Playback timeout in seconds of the .SID files for AUTO/RANDOM and INTRO modes.
    • Configure the best baudrate for the debug via Serial.
    • Disable or Enable the visualization of the VU-METER for the 3 sid voices.

Below is an excerpt from the “config.ini” file.

# Serial Debug Baudrate – default: 115200
SERIAL_BAUDRATE=115200
# Set the Timeout in Seconds for the AUTO/RANDOM playing mode – default: 2 minutes
AUTORND_TIMEOUT=120
# Set the Timeout in Seconds for the INTRO playing mode – default: 15 seconds
INTRO_TIMEOUT=15
# Write 0 if you want to disable the visualization of the vu-meter for the 3 x sid voices.
# Default: 1
SID_VUMETER=1

The return of the Hybrid Sid Player Firmware update v1.17

January 5th, 2022 No comments

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

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

Changelog:

v1.17 – 31/12/2021

Added:

  • Change visualization status of the LED for Socket #1 and Socket #2 available on the Olimex Development Board and the SID Player PCB.
  • A configuration file (config.ini) for some important settings of the SID Player. The file will be loaded during the boot and must be present in the ROOT of the filesystem of the USB key.If the file is not found, the player will configure itself with the default values. Thanks to Gianluca Renzi (RetroBit Lab) for his lite INI file parser.

Below is an excerpt from the “config.ini” file.

# Select the Sid model for the Tune played by the SID Player on the Socket #1 or Socket #2.
# Specify the socket which you want to play the sid tunes (example for SID_8580_SOCKET write
# the number 2 if you want it to be played with the SID 8580 installed on socket #2)
# This configuration makes the use very dynamic for everyone. – default: socket #1,#1,#2,#2
TUNE_UNKNOWN_SOCKET=1
TUNE_6581_SOCKET=1
TUNE_8580_SOCKET=2
TUNE_BOTH_SOCKET=2
# Use Armsid with Auto Switching (0:Disabled – 1:Socket #1 – 2:Socket #2) – default: 0
# Note: When you use the auto detection and switching of the SID model with the ARMSID this can be
# used only in one of the two sockets, the other socket is completely ignored and can remain empty.
ARMSID_SOCKET=0
# Brightness of the OLED. (0 … 255) – default: 127
OLED_BRIGHTNESS=127
# Brightness of the OLED in IDLE mode. (0 … 255) – default: 10
OLED_BRIGHTNESS_IDLE=10
# Enable the serial DEBUG. (1 Enable | 0 Disabled) – default: 0
SERIAL_DEBUG=0

The return of the Hybrid Sid Player Firmware update v1.16

November 29th, 2021 No comments

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

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

Changelog:

v1.16 – 29/11/2021

Updated:

  • Illegal/undocumented opcodes to the CPU Emulator:
    • LAE (LAS/LAR) Combinations of STA/TXS and LDA/TSX.
    • ANE (XAA) Combination of an immediate and an implied command.
    • All 6502/6510 instructions have been implemented.
  • Increased the maximum number of files per directory from 512 max to 800 max.
  • Improved delay routine for read/write eeprom via I2c bitbang, it should now be compatible with all levels of the XC32 compiler code optimization.
  • Replaced and splitted the Splash Screen Logo during the boot. Thanks to Federico di dato for the Retrobit LAB logo.

Fixed:

  • The BRK opcode, opcode that will probably will never used in our case.
  • Missing +2 Machine Cycle Times for the opcodes: BPL,BMI,BVC,BVS,BCC,BCS,BNE,BEQ due to some previous performance improvment of the 6502/6510  emulator code, i was probably drunk, indeed, i’m sure. %-)
  • The clock “|CIA|” was displayed mistakenly when you choose to play a file in DMP format but this is wrong because the DMP file format doesn’t support the information of clock used (VBI/CIA) in the file header.
  • The previous and next button did not work if there are only two files (SID or DMP) available to play in the folder.
  • Incorrect Machine Cycle Times for the NOP opcode, four times instead of two. %-)
  • Sometimes the version number displayed during boot would pop outside from the right side of the oled screen.
  • Wrong Machine Cycle Times for the SLO, SRE(LSE), DCP, RLA, ISC(ISB) Illegal/undocumented opcodes with Indexed-indirect addressing of X,Y-Registers.

The return of the Hybrid Sid Player Firmware update v1.15

September 28th, 2021 No comments

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

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

Changelog:

v1.15 – 26/9/2021

Updated:

  • Slightly improved the CIA timing, now the SID tune “https://hvsc.csdb.dk/MUSICIANS/P/Page_Jason/25_Hurts.sid” and probably some others they sounds fairly well without “clicking/noise/beeping” in some parts of the song. *
  • Slightly improved the VBI timing, now the SID tune “https://hvsc.csdb.dk/MUSICIANS/S/Stinsen/Freeloader.sid” and probably some others they sounds fairly well without  “clicking/noise/beeping” in some parts of the song. *
  • When the (Auto/Random/Intro) MODE is used the brightness of the oled is restored on each change of music until the default timeout is reached.

* I’ll never stop saying we are far away from my personal feeling of absolute perfection but sound ok for 90% of peoples, luckily there aren’t many SID sound purists :-D
Many people still think that a SID played with a SID emulator on a Mobile Phone or PC sounds absolutely identical to the one played with the SID in the original hardware version :-|

Fixed:

The return of the Hybrid Sid Player Firmware update v1.14

August 23rd, 2021 No comments

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

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

Changelog:

v1.14 – 22/8/2021

Added:

  • Illegal/undocumented opcodes to the CPU Emulator:
    • ISC (Combination of two operations with the same addressing mode: INC, followed by SBC)
  • Display emulation clock:
    • I used the same position of the OLED display where the sid Subtunes are displayed (if are present), otherwise if the song doesn’t support subtunes it will displayed in the same position the type of clock speed emulation: |CIA| or |VBI|.

Fixed:

  • DMP files additional information:
    • Display of additional information of the SID when a DMP files is played but there are no additional information to display in the header of the DMP files.
  • CPU timing:
    • Some months ago when i wanted to fix the timing of the 6510 CPU emulator i made an unforgivable huge mistake :-D
  • Random Playing Mode:
    • The load routine try to load a index of a file that don’t exist and everything freeze.
  • File error handling:
    • When an load error occurs and you are in the TUNEINFO mode the player don’t back to the FILE Browsing mode.

The return of the Hybrid Sid Player Firmware update v1.13

August 6th, 2021 No comments

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

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

Changelog:

v1.13 – 3/8/2021

Added:

  • Illegal/undocumented opcodes to the CPU Emulator:
    • RLA (Combination of two operations with the same addressing mode (Sub-instructions: ROL, AND))
  • From an idea of Faber Pixel we have also added other information of the SID file on the small OLED screen (information available in the header of the file).
    • With a frequency approximately of 7 seconds, the Load Range, Init Address and Play Address in hex addresses will be displayed on the screen alternating with the information of the SID Name, Author and Copyright.

Sample:

  • Range: $1000-$2275
  • Init Address: $1000
  • Play Address: $1003

Obviously the displayed address range is the real memory occupation.

Fixed:

  • The visualization of the SID Model of the tune that is playing every 5 seconds alternated between the playback mode icon. (Thanks Gianluca Renzi)
  • Missing the file error handling in the subSong subroutine.