GideonZ / 1541ultimate

Official GIT archive of 1541 ultimate II sources
GNU General Public License v3.0
181 stars 46 forks source link

Ultimate 64 Elite: FPGASID observations #105

Closed markusC64 closed 4 years ago

markusC64 commented 5 years ago

If you switch the FPGASID via ConfiGuru from 6581 to 8580 and also flash the change of the config, the FPGASID will be deactivated after the next power cycle.

The reason is obvious, but from the point of view of the user that is not best.

Perhaps you should add andi's fpgasid detection code to the u64.cc file.

If you only change the FPGASID between 6581 and 8580, then the configuration setting of the U64 is not updated. I'm not sure if that has side effects on the autoconfiguration of the sid player choosing the wrong sid type.

GideonZ commented 5 years ago

Hi Markus,

The plan to include FPGASID in the detection is there. I would even like to include a configuration menu ala ConfigGuru in the U64. The latter is not too much work.

Best regards, Gideon

On Thu, Aug 15, 2019 at 7:55 PM markusC64 notifications@github.com wrote:

If I switch the FPGASID via ConfiGuru from 6581 to 8580 and also flash the change of the config, the FPGASID will be deactivated after the next power cycle.

The reason is obvious, but from the point of view of the user that is not best.

Perhaps you should add andi's fpgasid detection code to the u64.cc file.

If I only change the FPGASID between 6581 and 8580, then the configuration setting of the U64 is not updated. I'm not sure if that has side effects on the autoconfiguration of the sid player choosing the wrong sid type.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/GideonZ/1541ultimate/issues/105?email_source=notifications&email_token=ACUFDSIEWRWGTYC2NEKUZZ3QEWKBTA5CNFSM4IMANRZ2YY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4HFPQPHQ, or mute the thread https://github.com/notifications/unsubscribe-auth/ACUFDSNDKRJLUYEG7OIZXXLQEWKBTANCNFSM4IMANRZQ .

MichaelTroelsen commented 5 years ago

If you want to include detection for other "new" SIDs like ARMsid and SwinSid Ultimate. I have created a tool for doing sid detection https://csdb.dk/release/?id=176909 and also youtube video explaining how it was done.

GideonZ commented 5 years ago

That's great! If you can share the 'C' source code, it would be even better. :-)

On Fri, Aug 16, 2019 at 11:23 AM MichaelTroelsen notifications@github.com wrote:

If you want to include detection for other "new" SIDs like ARMsid and SwinSid Ultimate. I have created a tool for doing sid detection https://csdb.dk/release/?id=176909 and also youtube video explaining how it was done.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/GideonZ/1541ultimate/issues/105?email_source=notifications&email_token=ACUFDSPMEWSFAYUWCILFOWTQEZWYDA5CNFSM4IMANRZ2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD4OEPRQ#issuecomment-521947078, or mute the thread https://github.com/notifications/unsubscribe-auth/ACUFDSN5ZNIV2IN6GJ7I5FDQEZWYDANCNFSM4IMANRZQ .

MichaelTroelsen commented 5 years ago

Hi Gedion, I do not have the C source, since I developed the SidDectect in assembly. I can however explain the methods and I have also attached the documentation.

It would a nice feature, if you could make the Ultisids information available to the C64 by using the SwinSid/ArmSid method.

It would be a nice feature to do SID detection in the SID player so it would show system as Ultisid, FPGASid, SSU, ARMSID, 6581, 8580.

I have the c64 assembler source code, but it is a right mess. I learned how to program 6502 while doing the project and the code should be re-implemented. I have attached it in the zip.

Siddect: https://csdb.dk/release/?id=176909 Youtube: https://www.youtube.com/watch?v=q3ssYPXpFZk&t=319s

/Michael aka FunFun of Triangle 3532

FPGASID.

You send the “magic cookie” to the SID.

SIDaddr[25]=129;
SIDaddr[26]=101;
SIDaddr[30]=128;
if ((SIDaddr[25]== 29)||( SIDaddr[26]=='245')) { // found }
if ((SIDaddr[31]== 63){ // 8580 } else { //6581 }
[FPGASID_Register_description.pdf](https://github.com/GideonZ/1541ultimate/files/3512947/FPGASID_Register_description.pdf)
[SwinSID_Ultimate_Manual.txt](https://github.com/GideonZ/1541ultimate/files/3512948/SwinSID_Ultimate_Manual.txt)

[SwinSID_Ultimate_Manual.txt](https://github.com/GideonZ/1541ultimate/files/3512950/SwinSID_Ultimate_Manual.txt)

[Gedion.zip](https://github.com/GideonZ/1541ultimate/files/3512952/Gedion.zip)

http://www.fpgasid.de/configuru Configuration program: https://drive.google.com/file/d/1VY9Zb7XNq4zcPrg4YLuH5FABnve1tjeG/view?usp=sharing Documentation: FPGASID_Register_description.pdf

SwinSid Ultimate.

You send the value “SID” to the chip and read the values.

SIDaddr[29]=0;
SIDaddr[29]=0;
SIDaddr[29]=0;
delay(10);
SIDaddr[31]='d';
SIDaddr[30]='i';
SIDaddr[29]='s';
if ((SIDaddr[27]=='s')||( SIDaddr[28]=='w')) { // found }

Configuration program: https://csdb.dk/release/?id=149816 sourcecode: https://github.com/LeifBloomquist/SwinSIDUltimateConfigurator Documentation: SwinSID_Ultimate_Manual.txt

ARMSID and ARM2SID.

You send the value “SID” to the chip and read the values.

SIDaddr[29]=0;
SIDaddr[29]=0;
SIDaddr[29]=0;
delay(10);
SIDaddr[31]='d';
SIDaddr[30]='i';
SIDaddr[29]='s';
if ((SIDaddr[27]=='N')||( SIDaddr[28]=='O')) { // found }

//ARM2SID testing => if answer to command "SII" is L or R then it's ARM2SID otherwise it's ARMSID http://dzi.n.cz/8bit/armsid/index_en.php http://dzi.n.cz/8bit/arm2sid/index.php Sourcecode: testc32.c Configuration program: https://www.retrocomp.cz/produkt?id=20

MichaelTroelsen commented 5 years ago

File containing files referenced in above post. Gedion.zip

GideonZ commented 5 years ago

@MichaelTroelsen: Thank you for the document!

FPGASID detection and configuration is now fully implemented. FPGASID can now be configured run-time, while a SID is playing.

Detection of other ARM based SIDs is also supported, but the configuration of these is not. In fact, it is not clear whether the configuration of ARM(2)SID is equal to that of SwinSid Ultimate. i.e. can the filters be set in the same way?

markusC64 commented 5 years ago

Well, the source code of the armsid configuration tool is availble here: http://dzi.n.cz/8bit/armsid/imgs/asid_t20.c

mlukasek commented 5 years ago

Yes, ARMSID/ARM2SID configuration is definitely different from SwinSID.

MichaelTroelsen commented 5 years ago

Can wait for the release of the new version.

The testc32.c include in the ZIP file is the configurator for ARM2SID/ARMSID. The configuration options is not the same for ARMSID and SSU. SSU only allows switch between 6581 vs 8580. While ARMSID/ARM2SID include selection of many different filters.

GideonZ commented 4 years ago

Implemented.