| |
Raistlin
Registered: Mar 2007 Posts: 771 |
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"?? |
|
... 23 posts hidden. Click here to view all posts.... |
| |
Raistlin
Registered: Mar 2007 Posts: 771 |
Quote: I'd like to suggest SIDIan :P
Well, I’ve found with my companies (Coconut Lizard and Dino Sloth) that the best way to avoid clashes is to just create names that are so daft nobody could ever have used them before.
So… Happy Valley SID Chunker should be good. HVSC for short as that’s a bit of a mouthful. |
| |
Flotsam
Registered: Jan 2004 Posts: 85 |
Quoting RaistlinSIDwinder is the NEW SIDBlaster :-)
OK, I just called off my team of copyright lawyers, but I'll keep an eye on this thread just in case...
SID Blasters |
| |
Bansai
Registered: Feb 2023 Posts: 54 |
Quoting RaistlinSIDwinder is the NEW SIDBlaster :-)
https://github.com/RobertTroughton/SIDwinder
And we're back to v0.1.0.
Reading through the docs: quick note, but the $ notation for hex might blow up some shells for $A000-$FFFF as the following alphabetic character might be interpreted as a shell variable. |
| |
Burglar
Registered: Dec 2004 Posts: 1137 |
Quote: Quoting RaistlinSIDwinder is the NEW SIDBlaster :-)
https://github.com/RobertTroughton/SIDwinder
And we're back to v0.1.0.
Reading through the docs: quick note, but the $ notation for hex might blow up some shells for $A000-$FFFF as the following alphabetic character might be interpreted as a shell variable.
looks like 0xa000 notation is already supported and decimal too :) |
| |
Bansai
Registered: Feb 2023 Posts: 54 |
Quoting Burglarlooks like 0xa000 notation is already supported and decimal too :) Awesome, thanks! |
| |
Raistlin
Registered: Mar 2007 Posts: 771 |
I've just submitted a new version, v0.2.5, which will automatically pickup SIDs that have existing shadow registers. It's rare - because SID write orders matter a lot.
In my test set of SIDs, there was actually only Stinsen's Diagonality tune that used shadow registers at all - here:-
.C:31f0 20 03 10 JSR $1003
.C:31f3 A2 18 LDX #$18
.C:31f5 B5 E0 LDA $E0,X
.C:31f7 9D 00 D4 STA $D400,X
.C:31fa CA DEX
.C:31fb 10 F8 BPL $31F5
.C:31fd 60 RTS
But anyway! For now, until I can get bytewise relocation working (where I can inject shadow-register writes that match the SID register writes - where the CPU timing differences would be negligible), this offers an option for those who want to have such as a 4x+ SID with a working visualiser. GoatTracker has an option to use shadow registers - maybe other players too... but maybe the change to the audio quality stops this from being useful? |
| |
Bansai
Registered: Feb 2023 Posts: 54 |
Quoting RaistlinI've just submitted a new version, v0.2.5, which will automatically pickup SIDs that have existing shadow registers. It's rare - because SID write orders matter a lot.
Isn't having shadow registers one mechanism where one can hijack voices for sound effects? From Lieblich's Transformers:
L_JMP_0F17_0ADA
L_JSR_0F17_0BB9
;------------------------------
LDY #$06
LDA L_D_EXTRA_VOICE_ENABLE
BNE L_BRS_0F4C_0F1C
;------------------------------
L_BRS_0F1E_0F31
;------------------------------
LDA L_SID_V1A,Y
STA $D400,Y ; Voice 1: Frequency Control - Low-Byte
LDA L_SID_V2A,Y
STA $D407,Y ; Voice 2: Frequency Control - Low-Byte
LDA L_SID_V3AB,Y
STA $D40E,Y ; Voice 3: Frequency Control - Low-Byte
DEY
BPL L_BRS_0F1E_0F31
LDA L_SID_D415A
STA $D415 ; Filter Cutoff Frequency: Low-Nybble
LDA L_SID_D416A
STA $D416 ; Filter Cutoff Frequency: High-Byte
LDA L_SID_D417A
STA $D417 ; Filter Resonance Control / Voice Input Control
LDA L_SID_D418A
STA $D418 ; Select Filter Mode and Volume
RTS
;------------------------------
L_BRS_0F4C_0F1C
L_BRS_0F4C_0F5F
;------------------------------
LDA L_SID_V1B,Y
STA $D400,Y ; Voice 1: Frequency Control - Low-Byte
LDA L_SID_V2B,Y
STA $D407,Y ; Voice 2: Frequency Control - Low-Byte
LDA L_SID_V3AB,Y
STA $D40E,Y ; Voice 3: Frequency Control - Low-Byte
DEY
BPL L_BRS_0F4C_0F5F
LDA L_SID_D417B
STA $D417 ; Filter Resonance Control / Voice Input Control
LDA L_SID_D418B
STA $D418 ; Select Filter Mode and Volume
LDA L_SID_D415B
STA $D415 ; Filter Cutoff Frequency: Low-Nybble
LDA L_SID_D416B
STA $D416 ; Filter Cutoff Frequency: High-Byte
RTS
|
Previous - 1 | 2 | 3 | 4 - Next |