Jump to content


SGM Detection

4 replies to this topic

#1 CharlesMouse OFFLINE  


    Chopper Commander

  • 102 posts

Posted Thu May 2, 2019 11:50 AM

In my brief time as a non-lurker I hope the general impression is "here's a person who likes to fiddle with hardware". With that in mind I have a question:


Is there a standard method for detecting the presence of a SGM?


The reason I ask is my projects are proceeding a pace and it's my hope I'll have my AY board up and running in the not too distant future. With that in mind my ADAM already has 144k and will soon have, I hope, a SGM compatible sound solution so I thought I'd try out a few of the freely available SGM roms...


As expected most work fine, if without sound for the moment. But some flash up a message along the lines of 'SGM module required'. Now when it comes to old hardware like the ADAM I expect either some aspect of a program to be non-functional or a strait-up crash where hardware is missing. When I see such a message I tend to think "hmm, I wonder how the programmer is doing the detecting and so stopping the software from trying?" 


To my knowledge, once I've hopefully got a working AY solution, and especially when I've hopefully got even more RAM that should be me sorted on the hardware front... well, I believe there's a potential lower 8k issue but if that's a problem I can always hack that with the extra RAM I'll have floating about...

...but if there's a specific SGM check and I don't allow for that I'll still be jiggered regardless of my machine's specs.


Am I making sense?


Any thoughts would be appreciated, thanks.



Just to be plain:

-I'm in it for the hardware hacking opportunities so "getting a SGM" isn't what I'm after

-I've no intention of setting up any kind of rival commercial concern. This is for my personal amusement, although I am always keen to share what I've learned for any with similar interests

-Iunderstand that being very new to the Coleco scene I might be unaware of possible past issues that a question like this might raise alarm bells. Feel free to politely set me straight if needed.

Edited by CharlesMouse, Thu May 2, 2019 11:52 AM.

#2 kevtris OFFLINE  



  • 747 posts
  • FPGA Whisperer
  • Location:Flyover, USA

Posted Thu May 2, 2019 3:01 PM

As far as I can tell, here's two ways used to detect it in the games.  The first is checking to see if the extra RAM exists.   The other way is to write to some of the AY registers, and see if you can read back the values you wrote.  Adding the AY should fix detection on everything else.  

#3 CharlesMouse OFFLINE  


    Chopper Commander

  • Topic Starter
  • 102 posts

Posted Thu May 2, 2019 6:04 PM


Many thanks for the encouraging reply. I hoped any detection scheme would be probing the hardware (memory or AY) but between the warning screens on some games and a vague recollection of a photo of a SGM PCB with some custom logic I had concerns that said custom logic might have some built-in detection scheme - that would be something I couldn't replicate.


Thanks again.




For any wondering if I've lost my reason for wanting to hack such features in to my ADAM when there's much easier ways to achieve the same results you're probably right - I'm hardly an expert at this kind at thing but for me it's how I get my fun out of retro systems.

Edited by CharlesMouse, Thu May 2, 2019 6:05 PM.

#4 CrazyBoss OFFLINE  



  • 392 posts
  • Location:Skåne, Sweden

Posted Fri May 3, 2019 2:58 AM

you can test if there is a ay psg present. and you also need to test for if its an adam, by checking the data in memory. Cause you its not safe to enable the sgm memory if its an adam.


to test if there is an ay processor, you can write a value to a register, and read it back.

#5 CharlesMouse OFFLINE  


    Chopper Commander

  • Topic Starter
  • 102 posts

Posted Fri May 3, 2019 4:42 AM

@CrazyBoss: Many thanks for the info. 

0 user(s) are browsing this forum

0 members, 0 guests, 0 anonymous users