<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">Rafael Martins - RCSID</title><id>https://rafaelmartins.com/series/rcsid/</id><updated>2026-02-19T23:26:12Z</updated><link href="https://rafaelmartins.com/series/rcsid/"/><link href="https://rafaelmartins.com/series/rcsid/atom.xml" rel="self"/><author><name>Rafael G. Martins</name><email>rafael@rafaelmartins.eng.br</email></author><entry><title type="text">RC2024/10 Report #5</title><id>https://rafaelmartins.com/series/rcsid/rc2024-report-05/</id><updated>2024-10-31T15:48:51Z</updated><published>2024-10-31T15:48:51Z</published><link href="https://rafaelmartins.com/series/rcsid/rc2024-report-05/"/><author><name>Rafael G. Martins</name><email>rafael@rafaelmartins.eng.br</email></author><content type="html">&lt;p&gt;Hello friends! This is my fifth &lt;a href="https://www.retrochallenge.org/"&gt;Retro Challenge&lt;/a&gt; &lt;a href="https://www.retrochallenge.org/p/entrants-list-202410.html"&gt;RC2024/10&lt;/a&gt; report.&lt;/p&gt;
&lt;p&gt;Today is the last day of the challenge, and unfortunately, I could not get something presentable as the result. I got some progress running &lt;code&gt;reSID&lt;/code&gt; on the &lt;a href="https://electro-smith.com/products/pod"&gt;Daisy Pod&lt;/a&gt; I presented in the previous report, but it is not something I'd be really proud of.&lt;/p&gt;
&lt;p&gt;The retro challenge is over, but the project is not! I'll keep researching this topic and working on the project, now without a specific timeframe and towards the original goal of running it on smaller STM32G4 microcontrollers, even if that would require a full rewrite of &lt;code&gt;reSID&lt;/code&gt; in &lt;code&gt;C&lt;/code&gt; and lots of weird hacks to reduce the size of the wave tables.&lt;/p&gt;
&lt;p&gt;That's it for now, but it is not the end!&lt;/p&gt;
&lt;p&gt;Stay tuned!&lt;/p&gt;</content></entry><entry><title type="text">RC2024/10 Report #4</title><id>https://rafaelmartins.com/series/rcsid/rc2024-report-04/</id><updated>2026-02-19T23:26:12Z</updated><published>2024-10-20T15:28:06Z</published><link href="https://rafaelmartins.com/series/rcsid/rc2024-report-04/"/><author><name>Rafael G. Martins</name><email>rafael@rafaelmartins.eng.br</email></author><content type="html">&lt;p&gt;Hello friends! This is my fourth &lt;a href="https://www.retrochallenge.org/"&gt;Retro Challenge&lt;/a&gt; &lt;a href="https://www.retrochallenge.org/p/entrants-list-202410.html"&gt;RC2024/10&lt;/a&gt; report.&lt;/p&gt;
&lt;p&gt;Given the problems described in past reports, I took the decision regarding which platform to use during prototyping.&lt;/p&gt;
&lt;p&gt;Searching through my development boards, I found a &lt;a href="https://electro-smith.com/products/pod"&gt;Daisy Pod&lt;/a&gt; that is basically a breakout board for the &lt;a href="https://electro-smith.com/products/daisy-seed"&gt;Daisy Seed&lt;/a&gt;. It includes a single core STM32H7, which is more powerful than the STM32G4 series I plan to use, but should be OK for a working prototype. The board also includes an external codec, which is something I was not willing to use, but I may give a try.&lt;/p&gt;
&lt;figure&gt;
&lt;img src="/series/rcsid/rc2024-report-04_dev-setup.jpg" alt="Development Setup"&gt;
&lt;figcaption&gt;&lt;p&gt;Development Setup&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;I'm not a big fan of the &lt;a href="https://electro-smith.com/"&gt;Daisy platform&lt;/a&gt;, due to both the technical (the noise level is kinda high, at least in my unit) and political reasons (the &lt;a href="https://forum.electro-smith.com/t/please-provide-schematic-for-daisy-seed-rev-7/4746/48"&gt;platform is not truly open hardware&lt;/a&gt;, and they use the official &lt;a href="https://github.com/electro-smith/libDaisy/tree/bd13385/Middlewares/ST"&gt;ST USB middleware&lt;/a&gt;, which &lt;a href="https://github.com/STMicroelectronics/stm32-mw-usb-device/blob/7b5e6886d2f11ad15d2b46364e8a96984358f639/LICENSE.md"&gt;is not open source&lt;/a&gt;). Let's see how far I can go until these issues bother me enough.&lt;/p&gt;
&lt;p&gt;That's it for now!&lt;/p&gt;
&lt;p&gt;Stay tuned!&lt;/p&gt;</content></entry><entry><title type="text">RC2024/10 Report #3</title><id>https://rafaelmartins.com/series/rcsid/rc2024-report-03/</id><updated>2024-10-18T22:39:23Z</updated><published>2024-10-18T22:39:23Z</published><link href="https://rafaelmartins.com/series/rcsid/rc2024-report-03/"/><author><name>Rafael G. Martins</name><email>rafael@rafaelmartins.eng.br</email></author><content type="html">&lt;p&gt;Hello friends! This is my third &lt;a href="https://www.retrochallenge.org/"&gt;Retro Challenge&lt;/a&gt; &lt;a href="https://www.retrochallenge.org/p/entrants-list-202410.html"&gt;RC2024/10&lt;/a&gt; report.&lt;/p&gt;
&lt;p&gt;Following up on the problems I described in the &lt;a href="/series/rcsid/rc2024-report-02/"&gt;second report&lt;/a&gt;, I’ve decided to downgrade from VICE's fork of &lt;code&gt;reSID&lt;/code&gt; to the upstream &lt;code&gt;reSID-0.16&lt;/code&gt;, which seems to work much better for the microcontrollers, but requires more memory (both &lt;code&gt;FLASH&lt;/code&gt; and &lt;code&gt;RAM&lt;/code&gt;) than the microcontroller I'm trying to compile to (&lt;a href="https://www.st.com/en/microcontrollers-microprocessors/stm32g431kb.html"&gt;STM32G431KBT6&lt;/a&gt;) have.&lt;/p&gt;
&lt;p&gt;I'm currently trying to order some beefier &lt;a href="https://www.st.com/en/microcontrollers-microprocessors/stm32g4-series.html"&gt;STM32G4&lt;/a&gt; microcontrollers or NUCLEO boards, then I will probably start experimenting with some Raspberry Pi Pico 2 devboards I have meanwhile, as the delivery will take a few days.&lt;/p&gt;
&lt;p&gt;That's it for now!&lt;/p&gt;
&lt;p&gt;Stay tuned!&lt;/p&gt;</content></entry><entry><title type="text">RC2024/10 Report #2</title><id>https://rafaelmartins.com/series/rcsid/rc2024-report-02/</id><updated>2024-10-10T23:37:00Z</updated><published>2024-10-10T23:37:00Z</published><link href="https://rafaelmartins.com/series/rcsid/rc2024-report-02/"/><author><name>Rafael G. Martins</name><email>rafael@rafaelmartins.eng.br</email></author><content type="html">&lt;p&gt;Hello friends! This is my second &lt;a href="https://www.retrochallenge.org/"&gt;Retro Challenge&lt;/a&gt; &lt;a href="https://www.retrochallenge.org/p/entrants-list-202410.html"&gt;RC2024/10&lt;/a&gt; report.&lt;/p&gt;
&lt;p&gt;Unfortunately, things are not going as expected. I ported the reSID codebase imported from the VICE emulator to build with CMake, but due to being a &lt;code&gt;C++&lt;/code&gt; library, it is not very compatible with the bare metal environment I usually develop my STM32 projects on.&lt;/p&gt;
&lt;p&gt;I am currently exploring the options I have for patching the library or using one of the other forks of reSID that could be more compatible with embedded environments. Actually, it is not that reSID is not compatible with embedded environments; it is not compatible with the way I develop such projects, and with the entry-level microcontrollers I like to use.&lt;/p&gt;
&lt;p&gt;I’ll be back soon with a decision on how to proceed!&lt;/p&gt;
&lt;p&gt;Stay tuned!&lt;/p&gt;</content></entry><entry><title type="text">RC2024/10 Report #1</title><id>https://rafaelmartins.com/series/rcsid/rc2024-report-01/</id><updated>2024-10-04T22:19:00Z</updated><published>2024-10-04T22:19:00Z</published><link href="https://rafaelmartins.com/series/rcsid/rc2024-report-01/"/><author><name>Rafael G. Martins</name><email>rafael@rafaelmartins.eng.br</email></author><content type="html">&lt;p&gt;Hello friends! After following the &lt;a href="https://www.retrochallenge.org/"&gt;Retro Challenge&lt;/a&gt; for a few years, I decided to take part in this year’s edition (&lt;a href="https://www.retrochallenge.org/p/entrants-list-202410.html"&gt;RC2024/10&lt;/a&gt;)!&lt;/p&gt;
&lt;p&gt;This post is an introduction to the project and also my first progress report. Please subscribe to this blog series’ &lt;a href="https://rafaelmartins.com/series/rcsid/atom.xml"&gt;Atom feed&lt;/a&gt; to receive the next reports.&lt;/p&gt;
&lt;h2 id="project-introductionidea"&gt;Project Introduction/Idea&lt;/h2&gt;
&lt;p&gt;As a fan of synthesizers, my idea is to implement a “high-fidelity” &lt;a href="https://www.c64-wiki.com/wiki/SID"&gt;SID&lt;/a&gt; (MOS6581 and MOS8580 chips, popularly used as “sound card” for Commodore home computers) replacement using a modern &lt;a href="https://www.st.com/en/microcontrollers-microprocessors/stm32g4-series.html"&gt;STM32G4&lt;/a&gt; microcontroller, based on &lt;code&gt;reSID&lt;/code&gt; (the SID emulator used by &lt;a href="https://vice-emu.sourceforge.io/"&gt;&lt;code&gt;VICE&lt;/code&gt;—the Versatile Commodore Emulator&lt;/a&gt;). Please note that in this context, “high fidelity” means &amp;quot;as computationally precise as possible&amp;quot; and not “something that sounds exactly the same as the original chip”! &lt;code&gt;:-)&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;I named the project &lt;code&gt;RCSID&lt;/code&gt;, and a Git repository (pretty much empty) is already available: &lt;a href="https://github.com/rafaelmartins/rcsid"&gt;https://github.com/rafaelmartins/rcsid&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I don’t know yet if I’ll be implementing a &lt;code&gt;DIP&lt;/code&gt;-like replacement for actual chips in Commodore home computers or just implement the “engine” to be used standalone in new projects, but if time permits, I may create a &lt;a href="https://rc2014.co.uk/"&gt;RC2014&lt;/a&gt; sound module similar to &lt;a href="https://rc2014.co.uk/modules/sid-ulator-sound-module/"&gt;SID-Ulator&lt;/a&gt; using this device.&lt;/p&gt;
&lt;p&gt;There’s nothing 100% new here, but I’m taking this as an opportunity to learn more about these chips!&lt;/p&gt;
&lt;h2 id="current-status"&gt;Current status&lt;/h2&gt;
&lt;p&gt;I started the work by looking at the &lt;code&gt;reSID&lt;/code&gt; codebase, and the current state of it is not very “promising.” There are several different forks of the codebase, and apparently each fork is based on a different state of the original code. Even the &lt;a href="https://github.com/daglem/reSID"&gt;“official” git repository maintained by the original author&lt;/a&gt; claims to be incomplete, and suggests using the &lt;code&gt;VICE&lt;/code&gt; fork as the base for new projects, and so I did. However, the &lt;code&gt;VICE&lt;/code&gt; fork also &lt;a href="https://github.com/VICE-Team/svn-mirror/blob/main/vice/src/resid/README.VICE"&gt;suggests using the “original version” for new projects&lt;/a&gt;. Sounds pretty much like a “chicken and egg” problem…&lt;/p&gt;
&lt;p&gt;My Git repository contains the &lt;code&gt;reSID&lt;/code&gt; code from &lt;code&gt;VICE&lt;/code&gt;, which as far as I can tell, is &lt;code&gt;reSID-1.0pre2&lt;/code&gt;with a lot of patches from their community. So far, so good…&lt;/p&gt;
&lt;p&gt;While I wrote this post, I’m porting the &lt;code&gt;reSID&lt;/code&gt; codebase to build using &lt;a href="https://cmake.org/"&gt;CMake&lt;/a&gt; instead of autotools, since I already have &lt;a href="https://github.com/rafaelmartins/cmake-cmsis-stm32"&gt;some&lt;/a&gt; &lt;a href="https://github.com/rafaelmartins/cmsis-stm32"&gt;infrastructure&lt;/a&gt; to develop STM32 projects using CMake.&lt;/p&gt;
&lt;p&gt;In parallel, I’m investigating which one is the best &lt;code&gt;STM32G4&lt;/code&gt; microcontroller for the task, based on the I/O requirements. Since I have some &lt;a href="https://www.st.com/en/microcontrollers-microprocessors/stm32g431kb.html"&gt;&lt;code&gt;STM32G431KBT6&lt;/code&gt;&lt;/a&gt; (as well as some NUCLEO boards based on it, for another project) at home, I’ll try to fit the project on that as much as possible, at least for starters. &lt;code&gt;:-)&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Stay tuned!&lt;/p&gt;</content></entry></feed>