Džinova 8-bitová stránka
What is it ?:
- A new replacement of the MOS6581 and MOS8580 used in the Commodore C64. It is minimalistic (in simplicity of circuit and use, not in function and power).
- Real "plug & play" solution. Just insert instead of the original SID into the slot and it's done.
- It determines (through supply voltages) which chip it replaces and starts the appropriate emulation (it can be changed later in software).
- No need to switch the PAL / NTSC version, the circuit uses directly the clock from the computer bus, always synchronous with the C64.
- It also emulates analog inputs (joysticks, mouse, etc. - POTX and POTY inputs)
- Analog output is sufficiently buffered, it is not necessary to change anything on the computer board for proper operation.
- Output sampling frequency is 1/16th bus clock of C64 (approx. 62kHz), real 12bit D/A converter, no pwm.
- Filters completely transferred to digital form, emulated by float point arithmetic.
- Significantly lower noise level and less interference from the power supply than the original :)
- Lower power consumption than the original.
- Firmware update possible inside the C64.
What is inside ?:
- A few resistors, capacitors, one stabilizer, one opamp and a processor. That's all, parts only from one side.
- The only programmable circuit is the STM32F410, ARM Cortex M4 with HW float point arithmetic at 100MHz.
- Analogue output amplified via the AD8515 opamp.
- Stabilizer for the 3.3V processor, the processor itself has 5V tolerance inputs.
- Schematic in PDF here:
- Actual FW 2.6 from 23.10.2018 here.
- Here is the same FW but inside an update without reading the registers during the update (especially useful if you have a problem with ARMSID detection) "blind" FW 2.6 update.
- Or both updates and configuration program zipped here.
- For the update, just upload to the C64, run it and follow the instructions.
- Emulates all waveforms, and even "samples" (at least some of them, Ghostbusters laugh, Chimera screams at you).
- Full support of analog filters (LowPass, BandPass, HighPass, combination, Q quality control).
- Emulation of OSC3 and ENV3 registers (little delay, approximately 16 clocks of the C64 bus).
- Joysticks and mice work.
New features in FW 2.6:
- Optimization for speed again (approx. 10ns more faster response to read registers, faster processing of writing registers).
New features in FW 2.5:
- Again faster interrupt (approx. 10ns more faster response to read registers).
New features in FW 2.4:
- Further optimization of the interrupt (approx. 20ns faster response to read registers).
New features in FW 2.3:
- A part of source code (interrupt routine) has been rewritten in assembler and manually optimized.
- It makes a possibility to control the bus only through the CS signal (no need for O2 clock synchronization, so it can run on systems with a different CPU than MOS6502 now).
- Low frequency limit and filter strength settings and saving settings to permanent flash memory.
- New version of the tester and configuration program is here.
- Multiple ARMSIDs detection added to the program (addresses D400h, D420h and D500h). If there are two or more ARMSIDs than a choice is shown before the first screen:
- If only one ARMSID is detected, the choice is omitted and the first screen is started immediately.
- The first screen from the configuration program:
- It is possible to change the emulated chip MOS6581 or MOS8580 or leave it on the automatic according to the supply voltage (set when the power is turned on).
- In this new version, we can save the settings permanently (into flash memory) to continue with this settings even after next power on.
- New features - low frequency limit and filter strength - are located on a new screen accessible by pressing the E key:
- The filter strength for MOS6581 corresponds with measurements published here.
- For MOS6581 the strength of the filter can be decreased or increased totally in fifteen steps (-7 to +7), the lower frequency limit can be set to 150,215 and 310Hz, for MOS8580 and center frequency settings the filter can be tuned from 3kHz to 12kHz in seven steps (cca 1/3 octave/step) and the lowest frequency tuning in seven steps from 30 to 330Hz. An example of other than default settings is here (controlled by cursor keys):
- This configuration can be saved (by key S) to the RAM of ARMSID, so it can hold it to the next switch off only:
- Or we can save it (by key P) permanently (to the flash memory) to hold the configuration after the power off:
- A source code of the configuration program written in C is here.