the name SIDBlaster is already used
I'm wondering about the relocating bit, I'm a huge fan of lft's Sidreloc V1.0, which hasn't failed me yet. So, why a new tool?
I wonder if this could be taken a step further to map out the execution path from the routine call to each sid write and perhaps figure out a way to squeeze more cycles or bytes out of the routines.
RSID are not supported, it's not told anywhere, add in the readme a warning at least.
My thought exactly. I actually own one. :) https://cbmretro.fi/product/sidblaster-usb-nano/
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
e.g because of self-modifying code where only the low-byte is changed in the vector
this sounds similar to what I did in SIDdecompiler V0.8
Quoting BurglarI'm wondering about the relocating bit, I'm a huge fan of lft's Sidreloc V1.0, which hasn't failed me yet. So, why a new tool? So, long-term, if I can get more SIDs to be -fully- relocatable, to the point where the generated ASM can be hand-edited without problems.. then that opens up a truckload of options. Optimisation. Direct hooks for visualisers. Etc etc.
957 L_D_0EFD_TEST 958 .ifne L_D_0EFD_TEST-$0EFD 959 L_D_0EFD_RELO_PATCH ; L_ARPTAB_LO data were abused to provide filtering enables, and we need these constants, otherwise the code isn't relocatable 960 ; $11 gives low pass filtering, bad values will write 1 to bit 7 of $d418 turning off voice 3 961 .byte $11,$14,$17,$1A,$1D 962 .endif 963 .ifeq L_D_0EFD_TEST-$0EFD 964 L_D_0EFD_RELO_PATCH 965 .endif 966 967 L_ARPTAB_LO ; from 60-7D block command, writes into EFFTAB[0] table! 968 0efd 11 14 17 1a .byte <L_ARP_037,<L_ARP_03A,<L_ARP_035,<L_ARP_03C,<L_ARP_0180 0f01 1d 969 L_ARPTAB_HI 970 0f02 0f 0f 0f 0f .byte >L_ARP_037,>L_ARP_03A,>L_ARP_035,>L_ARP_03C,>L_ARP_0180 0f06 0f 971 L_ARPTAB_LEN 972 0f07 03 03 03 03 .byte $03,$03,$03,$03,$03 0f0b 03 973 L_ARPTAB_RPT 974 0f0c 00 00 00 00 .byte $00,$00,$00,$00,$00 0f10 00 975 976 L_ARP_037 977 0f11 00 03 07 .byte $00,$03,$07 978 L_ARP_03A 979 0f14 00 03 0a .byte $00,$03,$0A 980 L_ARP_035 981 0f17 00 03 05 .byte $00,$03,$05 982 L_ARP_03C 983 0f1a 00 03 0c .byte $00,$03,$0C 984 L_ARP_0180 985 0f1d 00 18 00 .byte $00,$18,$00 986
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.