Jump to content

Recommended Posts

Posted (edited)

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.

 

PS

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

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites
Posted (edited)

@kevtris:

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.

 

 

PS

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

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...