Skip to main content
Topic: Hybrid SID Player (Read 82499 times) previous topic - next topic

Re: Hybrid SID Player

Reply #60
@Zytryx: If you are still interrested to get this working, I have an idea what might be the problem: My build uses an SSD1308 which needs an external charge pump to provide the OLED driving voltage.  The SSD1306 you use can also be driven with an external OLED voltage, but it also has an internal charge pump, which, in case it is the sole provider of the driving voltage, must be enabled with a command (viewtopic.php?f=56&t=2609&p=25069&hilit=+oled#p44009).

I think sending this command to the SSD1308 has no effect, so I will try to add it to my firmware to make it also work with SSD1306 displays.  If you can compile the firmware yourself, the change you have to make is adding this command to the oled_config() function in oled.c.

Re: Hybrid SID Player

Reply #61

I added the commands to activate the built-in charge pump of the SSD1306 display to the firmware.  Here you can see it working with a 1.3 inch SSD1306 display I had lying around:

Please find the archive which contains the updated firmware together with a precompiled binary attached.

Have fun,

Re: Hybrid SID Player

Reply #62
I'm a little confused about getting Acid64 to play to the network. I see that you've written some sort of driver for that -- but there appears to be very little documentation on this (unless I missed something obvious).

I'm building an ESP8266 based player, which is connected to the network wirelessly, I want to implement the server directly on the ESP's micro but I can't figure out how to tell Acid to simply use 192.168.x.x:6581 as an output device. Can you please point me in the correct direction?


Re: Hybrid SID Player

Reply #63

currently ACID 64 does not allow configuring host and port. It just uses localhost:6581, which works for jsiddevice.exe and also the Python script I use to send the network data to the serial port for my hardware player.

Some time ago I suggested to Wilfred Bos that it would probably make sense to make the host and port configurable. Maybe you tell him about your project, and that you would need them being configurable. I found him being very helpful and nice.


P.S.: And post back about your progress implementing it on an ESP8266 :)

Re: Hybrid SID Player

Reply #64
Looks like I missed something in the protocol. So from what I understand if localhost:6502 is open, Acid64 will send out some sort of discovery packet which you reply to and then it knows there is a SID chip there to send the data to?

I'll have to look at your Python app more closely as I've been looking at all kinds of projects to try to figure that part out and I guess I missed it in every one. D'oh!

And yeah, I also emailed Wilfred and he was incredibly helpful with a very long email back to me (but I still didn't get this one part figured out, hehe). I think that having the IP:PORT as a configuration option would be really nice in order to avoid running a local proxy.

I will certainly post again. Right now the plan is ESP8266 + mcp23017 i2c i/o expander (16 gpio) + SID + LM386 preamp. I want to build the firmware work with both Acid64 and also the route that one other project I saw took, which was to use py65 to emulate the 6502 and then send register information over (just for the learning/fun of it)...

I'll start a thread when I get a bit further because I don't want to hijack this one!  Thanks for the help.

Re: Hybrid SID Player

Reply #65
Hi Markus,

I found this project just recently and I knew immediately that I need to build one for myself. It's an amazing project ;-).
I have bought UBW32 and SSD1306 SPI version. Works like a charm! I needed to create reset circuit (RC delay) for the display. Connecting the reset to the ground didn't work for me. Also should someone try to connect module version of rotary encoder, it usually contains pull up resistors there. Those needs to be removed for working with UBW32. Also there are couple of leds and buttons on UBW32 which I removed just for sure that they are not intervene with port E. It would still most likely work if you don't touch buttons, but just for sure.

Burning the code into UBW32 was bit painful probably because original software is probably created in MPLAB IDE 8 I guess?
I have tried to compile it in MPLAB X IDE on my Mac but it wasn't successful. In the end I just burned latest hex file with PicKit 3 (cheaper clone) and MPLAB X IDE 'pre-built' project type. Also my first attempt was to bur it with PicKitPlus 3.2 stand alone sw but it didn't work because it doesn't support PIC32MX795F512L.

I own both SID 6581 and 8580. What I have noticed is that software emulation sounds really nice and player works perfect with 8580. With 6581 there seems to be some notes/sounds missing or diminished. Not sure what problem could be. When I've tried to play the same 6581 in my C64 with SidPlayer it was OK. It can be heard for example in International Karate + from about 00:30 sec of playing. Do you by any chance have a clue what could be the problem. I actually also tried even another 6581 with similar results.

Anyway I am very happy with the player.

PS: I haven't tried ACID 64 version yet. I am using HybridSID mode.