Jump to content
Geoff Oltmans

ADAMEm/SDL 1.8 released

Recommended Posts

I'm not sure if these are the latest and greatest, but hope they help anyway.

 

Maybe one day a new full-fledged ADAM emulator with easy to use GUI (something along the lines of BlueMSX) that is compatible with multiple Operating Systems will see the light of day, but I'm not holding my breath. Until then, "Virtual ADAM with ADAMem" does the job nicely and I'll make sure to hold onto a couple older Windows machines to insure always having the emulation option available. It does save a lot of wear and tear on my real ADAMs by being able to work with disk images in the emulator and then transfer to a real ADAM disk when completed.

 

 

ADAMEm SDL v1.8 - Source Code.zip

ADAMEm SDL v1.8 OS-X.zip

ADAMem SDL v1.8 OS-X - SDL-1.2.14.zip

ADAMEm SDL v1.8 Win32.zip

  • Like 3

Share this post


Link to post
Share on other sites

Sorry for being distant with this stuff... I'll answer questions if I can that come up. I don't frequent AtariAge as much as I probably should.

 

Most of the command line options for ADAMEm/SDL are exactly the same as regular ADAMEm. You can see these completions with the -help switch. Where they differ is where I've worked to extend the abilities beyond what the basic ADAMEm already does. This includes the -scale2x option, support for MicroInnovation IDE emulation, by specifying a hard disk file via -harddisk <filename> and a expansion ROM for bootstrapping the hard disk -exprom <romfile>. I also added some additional "dummy" emulation to allow the SEQuel program to run where it probes for a MIDIMite interface. The scale2x uses a readily available library, and the IDE emulation was borrowed from the BlueMSX project. I don't think either of those inclusions are against any sort of licensing based on the source code comments. The sound emulation is completely my own creation that works with the SDL library. I'd say it's about 95%, but as a couple of folks have mentioned there are some differences... particularly with games that use digitized speech. I have yet to figure out just what the hell is wrong with that, but that's the last hurdle there I think. Probably if the digitized sound worked right then the other issues would most likely be resolved too (here's hoping). ;)

 

The OS X version I've got the starts of a GUI that's usable for selecting disk images, some preferences, etc. That is of course by no means complete.

 

I was somewhat discouraged to continue doing anything with it for the past few months in part because I've never gotten approval from Marcel de Kogel for my modifications, and also I figured that some of the additional modifications that would be necessary to improve the GUI (at least as far as OS X is concerned and probably Win32 as well) would require ripping up a chunk of the original code. Most changes I've made up to this point dovetail nicely with Marcel's original code (which is well thought out). Anyways, several of the source files say "Please, notify me, if you make any changes to this file." I would be dishonest if I said that I had been dogged in my determination to get Marcel's blessing. I emailed him two or three times back in 2006 when I first started working on the code and never heard back. Should probably try again now. ;) I would be more enthusiastic about working on it with his approval.

Share this post


Link to post
Share on other sites

Hmmm... need a beta tester for the OSX GUI? :)

 

I wouldn't worry too much about approval from Marcel... he's moved on from this hobby (BTW, I think he's living in California now, not the Netherlands). If you've asked for approval but didn't hear back its either lack of interest on his behalf, or he's changed email addresses.

Share this post


Link to post
Share on other sites

Yeah Geoff, just do what you want. No one's heard from Marcel in years, and I can't imagine why he'd mind you doing these kinds of upgrades to AdamEm. At the very least, you can include a disclaimer in your docs that specifies that you tried to get Marcel's approval but you couldn't reach him. The rest of the universe isn't going to care. :)

  • Like 2

Share this post


Link to post
Share on other sites

Hmmm... need a beta tester for the OSX GUI? :)

 

I wouldn't worry too much about approval from Marcel... he's moved on from this hobby (BTW, I think he's living in California now, not the Netherlands). If you've asked for approval but didn't hear back its either lack of interest on his behalf, or he's changed email addresses.

 

Feel free to download the attachments in NIADs post and have at it. At this point the GUI is kind of sort of tacked on to the command line program... in fact if you launch the program from a Command line prompt in OS X you can specify all the usual command line options in there.

 

 

Yeah Geoff, just do what you want. No one's heard from Marcel in years, and I can't imagine why he'd mind you doing these kinds of upgrades to AdamEm. At the very least, you can include a disclaimer in your docs that specifies that you tried to get Marcel's approval but you couldn't reach him. The rest of the universe isn't going to care. :)

 

Perhaps y'all are right. ;)

I've been told he's moved on on a few occasions. I just tried again last night and the email address on the distribution page bounced from the server. I saw he was on LinkedIn and Twitter. I tweeted to him, and his last tweet was Apr 30, so maybe he'll respond.

Share this post


Link to post
Share on other sites

I third that opinion of not worrying about getting approval from Marcel especially since you have taken the necessary steps to try and contact him and you will, without a doubt, credit him everywhere in the documentation and other files for the original development of ADAMem. Heck, seeing as ADAMem is just about the only worthwhile ADAM emulator (M.E.S.S. does a nice job, but no where near as good as ADAMem), pretty much everyone knows that Marcel developed it and he would probably love to hear that someone has picked up where he left off to correct bugs and add new features.

Share this post


Link to post
Share on other sites

Lately I've been disassembling the Coleco CP/M 2.2 BIOS in hopes of upgrading the BIOS to support CP/M 3.0 Plus. The emulator would be useful in that project if I could get the step mode working in it. It already has support for this, but I believe it is compiled out by default.

Share this post


Link to post
Share on other sites

Lately I've been disassembling the Coleco CP/M 2.2 BIOS in hopes of upgrading the BIOS to support CP/M 3.0 Plus. The emulator would be useful in that project if I could get the step mode working in it. It already has support for this, but I believe it is compiled out by default.

Wasn't the only difference support for banked RAM? Not sure if that's accurate but that implies just a few more bios calls and a compatible RAM memory map.

Share this post


Link to post
Share on other sites

Wasn't the only difference support for banked RAM? Not sure if that's accurate but that implies just a few more bios calls and a compatible RAM memory map.

 

You can run it in banked or non-banked mode. The BIOS is different for both. I'd like to be able to run the banked version obviously, but I'm not sure that the bank switching scheme used by the ADAM will lend itself well to it, at least not without some additional hardware. Mainly two issues. First, the bank switching scheme employed by the ADAM allows you to swap in/out two 32kB pages for the lower and upper banks. I think CP/M 3.0 expects that the common bank pretty much stays put, and contains pretty much nothing more than the BIOS/BDOS and its working memory (and this is not going to be 32kB). The second is that the upper/lower banks aren't completely arbitrary. So for instance with the Coleco RAM expander, the upper 32kB can be swapped for the upper bank of built-in RAM, or the upper bank of expansion RAM, but not the lower bank of expansion RAM. There may be ways around some of this (such as copying the common bits of the system into all the lower banks, but the working data structs might be a problem). Aside from the nicety of being able to run a bank-switched CP/M, there would at least be a maintainable and extensible BIOS, something I'm not sure really exists today with the likes of TDOS or the original CP/M BIOS. So, if you wanted to create some new piece of hardware and add support in the OS for it (disk drives, 80 column VDP, etc) you could. There are some other improvements to CP/M 3 as well, most of them are superficial.

Share this post


Link to post
Share on other sites

 

You can run it in banked or non-banked mode. The BIOS is different for both. I'd like to be able to run the banked version obviously, but I'm not sure that the bank switching scheme used by the ADAM will lend itself well to it, at least not without some additional hardware. Mainly two issues. First, the bank switching scheme employed by the ADAM allows you to swap in/out two 32kB pages for the lower and upper banks. I think CP/M 3.0 expects that the common bank pretty much stays put, and contains pretty much nothing more than the BIOS/BDOS and its working memory (and this is not going to be 32kB). The second is that the upper/lower banks aren't completely arbitrary. So for instance with the Coleco RAM expander, the upper 32kB can be swapped for the upper bank of built-in RAM, or the upper bank of expansion RAM, but not the lower bank of expansion RAM. There may be ways around some of this (such as copying the common bits of the system into all the lower banks, but the working data structs might be a problem). Aside from the nicety of being able to run a bank-switched CP/M, there would at least be a maintainable and extensible BIOS, something I'm not sure really exists today with the likes of TDOS or the original CP/M BIOS. So, if you wanted to create some new piece of hardware and add support in the OS for it (disk drives, 80 column VDP, etc) you could. There are some other improvements to CP/M 3 as well, most of them are superficial.

Odds are, the OS expects 8K or 16K RAM banks at the top RAM.

Share this post


Link to post
Share on other sites

Geoff, love your work on the OS X ADAM emulator! Hoping this crash report could be of help with your development endeavors. This is what I get on 10.9.3 Mavericks...

Process:         Adamem [6770]
Path:            /Applications/Games/*/Adamem.app/Contents/MacOS/Adamem
Identifier:      com.geoffoltmans.Adamem
Version:         ???
Code Type:       X86 (Native)
Parent Process:  launchd [134]
Responsible:     Adamem [6770]
User ID:         501

Date/Time:       2014-06-02 10:29:40.786 -0700
OS Version:      Mac OS X 10.9.3 (13D65)
Report Version:  11
Anonymous UUID:  C088F1CE-3C43-E661-D668-CD2157E9B506

Sleep/Wake UUID: F75D6442-49AD-457F-930D-613A329566CB

Crashed Thread:  0

Exception Type:  EXC_BREAKPOINT (SIGTRAP)
Exception Codes: 0x0000000000000002, 0x0000000000000000

Application Specific Information:
dyld: launch, loading dependent libraries

Dyld Error Message:
  Library not loaded: @executable_path/../Frameworks/SDL.framework/Versions/A/SDL
  Referenced from: /Applications/Games/*/Adamem.app/Contents/MacOS/Adamem
  Reason: image not found

Binary Images:
0x8fec1000 - 0x8fef3417  dyld (239.4) <FF5ED937-CC28-3FEF-BCAF-750B1CDBAE36> /usr/lib/dyld
0x97dbf000 - 0x97dbffff  com.apple.Cocoa (6.8 - 20) <407DC9E6-BBCE-3D34-9BBB-00C90584FFDF> /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa

Model: MacBookPro10,2, BootROM MBP102.0106.B03, 2 processors, Intel Core i5, 2.5 GHz, 8 GB, SMC 2.6f57

Share this post


Link to post
Share on other sites

Everything is working exceptionally on Mavericks. Thanks Geoff!

 

Aside from that, has anyone figured out how to get Super Game dumps to run on AdamEm, (any flavor)?

Share this post


Link to post
Share on other sites

Everything is working exceptionally on Mavericks. Thanks Geoff!

 

Aside from that, has anyone figured out how to get Super Game dumps to run on AdamEm, (any flavor)?

 

Are you talking about the Super Game Module games or the DDP games?

Share this post


Link to post
Share on other sites

Super Game Module games like the Team Pixelboy releases.

 

I know I can run DDPs and DSK images. No problem there. There is a "cart.cfg" file one can make, but I can't get AdamEm to recognize MegaCart conversions . I was under the impression that most SGM games could also be played using Adam.

Share this post


Link to post
Share on other sites

Super Game Module games like the Team Pixelboy releases.

 

I know I can run DDPs and DSK images. No problem there. There is a "cart.cfg" file one can make, but I can't get AdamEm to recognize MegaCart conversions . I was under the impression that most SGM games could also be played using Adam.

 

I believe that's while using the SGM attached to the ADAM. It has a compatibility mode which disables the SRAM when used with the ADAM (since it already has the RAM internally). The emulator would need some additional work done to support the PSG sound chip. It's certainly possible to do.

  • Like 1

Share this post


Link to post
Share on other sites

I suppose if they aren't using any probing techniques and blindly writing to the PSG registers then the game should theoretically work with no sound. I have no SGM compatible software to test with the emulator right now.

Share this post


Link to post
Share on other sites

I suppose if they aren't using any probing techniques and blindly writing to the PSG registers then the game should theoretically work with no sound. I have no SGM compatible software to test with the emulator right now.

 

Ah yes, I seem to recall that this was documented as such. It seems that no one has been able to play SGM games on AdamEm or BlueMSX then... There is another older thread on this here, but I haven't seen confirmation of the ability to play SGM games in emulation.

Share this post


Link to post
Share on other sites

And now it plays some sound... no amplitude modulation or noise, just square tone, but the frequency of each of the three voices does seem to match up with the William Tell Overture tune that the built-in SN76489 is playing.

Share this post


Link to post
Share on other sites

And now it plays some sound... no amplitude modulation or noise, just square tone, but the frequency of each of the three voices does seem to match up with the William Tell Overture tune that the built-in SN76489 is playing.

So you added SGM support to AdamEm? That's nice, but I'm a little confused. Are you saying that you added the extra sound channels that are offered by the SGM? You should know the sound chip in the SGM is an AY-3-8910 (I think...) not a SN76489.

 

Now does Pac-Man Collection, which uses a MegaCart but does not require the SGM, work with AdamEm? :)

Share this post


Link to post
Share on other sites

So you added SGM support to AdamEm? That's nice, but I'm a little confused. Are you saying that you added the extra sound channels that are offered by the SGM? You should know the sound chip in the SGM is an AY-3-8910 (I think...) not a SN76489.

 

Now does Pac-Man Collection, which uses a MegaCart but does not require the SGM, work with AdamEm? :)

 

Yes, I've added some preliminary support for SGM. Yeah, I knew the thing used the PSG found in the MSX computers. The 8910 and the 76490 are fairly similar in what they do, the biggest difference is in the amplitude modulation (envelope and waveform modes), which I don't have working. However, doing the unmodulated square tone support is very easy, mostly a cut-and-paste job.

 

I'm not familiar with the Pac-Mac Collection. What is the Megacart (he says, googling)?

  • Like 1

Share this post


Link to post
Share on other sites

Oh yeah, I think in the process of looking over the code again I might have figured out what I was doing wrong with the noise channel generation. I'm going to have to figure out how to fix it now.

Share this post


Link to post
Share on other sites

I'm not familiar with the Pac-Mac Collection. What is the Megacart (he says, googling)?

MegaCart = bankswitched cartridge PCB. First 16K of ROM is fixed, second block of 16K is bankswitcheable. Allows for 128K, 256K and 512K cartridges (even 1024K but no one has tested it so far). Pac-Man Collection was the first game to use the MegaCart, many of the more recent Team Pixelboy games use it.

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...