| |
Raistlin
Registered: Mar 2007 Posts: 757 |
SIDBlaster
A little early perhaps to put here on CSDb as a full release .. but for anyone interested, here's a new tool from me:-
https://github.com/RobertTroughton/SIDBlaster
I have big plans with this.. main features right now (may be buggy!) are:-
- ability to add simple players to SIDs <-- later on of course this will allow full visualisers, SID information and more
- relocation of SIDs. The process used for this is very different to other relocators that I've seen. I essentially do a 10mins emulation of the CPU, running through the SID, checking what's data, what's code, what's read from, what's written to, etc... detecting indirect reads, and where the vectors for those come from ... dealing with "backups" of those vectors and all that nastiness. It's far from perfect .. but it works already with many SIDs and I'll look at other SIDs to see how easy those will be to fixup.
Next tasks:-
- exposing more information to players/visualisers
- allowing import of information/defines from txt files to pass to the visualisers
- adding an "insanity check" to the relocator - so I'll do 10mins' emulation of the SID before and after relocation, recording all the $d4xx writes and making sure they tally up.
Much more to be done ... feedback is of course welcome.
Windows/Ubuntu/Mac releases are there .. though I've only tested Windows - hopefully the others "just work"?? |
|
... 20 posts hidden. Click here to view all posts.... |
| |
Burglar
Registered: Dec 2004 Posts: 1137 |
@raistlin, cheers for the explanation, will follow this project :) |
| |
Stone
Registered: Oct 2006 Posts: 176 |
Quoting Raistlin
It's a fun project to work on so I'm definitely going to push ahead and see if I can get the relocation working solidly.
I Hope you do one of your write-ups on this one too. It's always interesting. |
| |
Raistlin
Registered: Mar 2007 Posts: 757 |
Quoting StoneI Hope you do one of your write-ups on this one too. It's always interesting.
Well, now that you mention it..!
https://c64demo.com/welcome-to-sidblaster/
And, also, while I'm here .. I added some new features today - WIP and subject to massive change - to make it easier to verify relocation work etc. It's not 100% yet but it works well enough for now.
https://github.com/RobertTroughton/SIDBlaster
PS. I will still change the name of the tool .. maybe .. but probably as I get to v1.0. |
| |
Raistlin
Registered: Mar 2007 Posts: 757 |
Quote: RSID are not supported, it's not told anywhere, add in the readme a warning at least. Trying to relocate \MUSICIANS\T\Turbocracker_87\Crockets_Theme.sid the message is a bit vague
SIDBlaster.exe -relocate=$1000 Crockets_Theme.sid Crockets_1000.sid
Not a valid SID file!
[2025-05-05 16:50:52] [ERROR] Failed to load file: Crockets_Theme.sid
other than that, if the exe needs java to run kickass, I'm outta here. I won't install java to test if further
Hey Ian,
I've added detection for RSID on the head version now and will put in a later release .. but .. I don't suppose you can give example SIDs for the various other versions, could you..? If they exist in HVSC - maybe everything's already updated to the latest PSID version?
I might come back to RSID if there's any way to emulate it - but it sounds like it would be tricky? |
| |
iAN CooG
Registered: May 2002 Posts: 3235 |
"RSID files require a true C64 environment and cannot be emulated by SIDBlaster."
Very well, now it's clear why the sid gets refused =) Before it seemed it was either in the wrong path or something else.
I tried a RSID to see if this new tool would support them, but apparently no tool so far emulates them to be able to relocate them.
I really don't understand what you mean by:
"I don't suppose you can give example SIDs for the various other versions, could you..? If they exist in HVSC - maybe everything's already updated to the latest PSID version?"
Which other versions? Other PSID header version?
*_2SID.sid (version 3)
f.e. HVSC\MUSICIANS\A\A-Man\Phat_Frog_2SID.sid
*_3SID.sid (version 4)
f.e. HVSC\MUSICIANS\C\Chiummo_Gaetano\Arcade_Memories_3SID.sid |
| |
Raistlin
Registered: Mar 2007 Posts: 757 |
Thanks Ian, that's perfect. Both the _2sid and _3sid files seem to work (on the current head version at least). Interestingly, I couldn't load the _3sid file in SidPlayerW so wasn't able to audibly test it that way - but that's fine, my tool will do a before/after verify anyway so should be all good. |
| |
Raistlin
Registered: Mar 2007 Posts: 757 |
SIDwinder is the NEW SIDBlaster :-)
https://github.com/RobertTroughton/SIDwinder
And we're back to v0.1.0.
It's worth looking at for the visualiser stuff now. I use a new (to me, anyway) technique for grabbing hold of the SID registers that means that audio playback should be PERFECT.
Basically, SIDwinder determines what memory address the SID will change in the Play() calls .. usually there's around 100 of these - but of course some players will be better or worse than others. Anyway, it then generates C64 code that can save and restore all those values.
With that, the SID Play() function can be called twice!
1) save data that might change in Play()
2) Play() <-- this is a "perfect" play call, no mods - nothing that will affect the audio at all
3) restore data
4) disable ROM
5) call Play() again
6) copy ghost bytes from $d400-d418
7) enable ROM
Due to the save in (1) and restore in (3), the 2nd Play() call is exactly like the 1st - but giving us access to the SID write values.
Try it out..! Just grab the binaries and:-
SIDwinder.exe -player=RaistlinBars input.sid output.prg
and that's it - it'll package it all up and crunch it for you. |
| |
Gordian
Registered: May 2022 Posts: 98 |
I thought it will be SIDBuster;) |
| |
iAN CooG
Registered: May 2002 Posts: 3235 |
SIDwinder is a native sid composing program, use some search before naming your tool after existing programs, but beware, you only have one life left =)
https://csdb.dk/search/?seinsel=all&search=SIDwinder&Go.x=0&Go... |
| |
TheRyk
Registered: Mar 2009 Posts: 2466 |
Well, then:
Quoting Gordian... it will be SIDBuster;)
...seems free :D
(at least as Tool Name) |
Previous - 1 | 2 | 3 | 4 - Next |