Jump to content
IGNORED

Converting A8 to 5200 ... what steps are needed?


Tickled_Pink
 Share

Recommended Posts

As I don't have a 5200, although I've always wanted one, I have never really peeked in this subforum. But the conversations on here have been pretty interesting and have got me thinking about trying a conversion of an A8 title. I'll probably start with something simple that didn't involve bank switching on the A8.

 

I've been trying to gather as much information as I can. Something I need clarifying is the cartridge ROM and the 16K RAM area. It seems that the 5200 is effectively a 64K system as that's the accessible memory address range. Is the 16K RAM area completely empty or does it hold any shadow registers for the OS? It's quite a considerable amount of RAM for a cartridge based system, certainly for back then. And I'm assuming that the cartridge program's start address is always $4000 or is there a header that's decoded by the OS to determine where the program start is?

Link to comment
Share on other sites

The first 16K is RAM. Some locations are used by the BIOS, but far fewer than on the A8.

 

The next 32K is cartridge area.

 

The top 16K is kind of a scattered mess with fairly loose decoding of GTIA and POKEY. ANTIC does its own decoding and is always in a fixed location. The BIOS is at the top.

 

So, it's pretty much a 48K system at most.

 

http://www.atarihq.com/danb/a5200.shtml

 

http://www.atarimuseum.com/videogames/consoles/5200/conv_to_5200.html

  • Like 2
Link to comment
Share on other sites

On top of this the (joystick) controllers are going to give you some fun.

But mostly the replacement mappings between A8 keys (e.g. console and anything else you need, e.g. break for pause) and the STICK/STRIG values can be lifted between ports.

Same applies to the A8 Vblank (immediate and deferred) handling.

 

PM me and I can drop over some examples and advise if you've a specific title you're attempting.

Link to comment
Share on other sites

On top of this the (joystick) controllers are going to give you some fun.

But mostly the replacement mappings between A8 keys (e.g. console and anything else you need, e.g. break for pause) and the STICK/STRIG values can be lifted between ports.

Same applies to the A8 Vblank (immediate and deferred) handling.

 

PM me and I can drop over some examples and advise if you've a specific title you're attempting.

 

I realise that I would need to write a joystick handler that branched off from the main code whenever a joystick read was being initiated.

 

Something I'm playing around with at the minute is a disassembler that'll support A8/5200 code and do some of the conversion work for me. Of course, for it to work effectively, the A8/5200 code would have to be well written. Going to take a while as I'll have to work on it for no more than an hour or so each night. Discovered last night that Visual Studio and .NET can be a pain to work with when trying to locate and read files. Took me the best part of an hour to get it to read the Asteroid.bin 5200 binary and provide a HEX readout. Even then I had to cheat to get around permissions problems.

 

So any help would be appreciated.

Link to comment
Share on other sites

An easy one to start with would be an A8 cart which runs on a 16K machine. That way in your disassembly you need only identify what is code and what is data. You generally don't have to worry about working out what the data is, because even if it contains (RAM or ROM) addresses you can keep the footprint the same on the 5200 (as it was on the A8) and those addresses won't change.

 

If the program uses any OS services then you will need to provide them, e.g. the count down timers seem to be used quite a lot. You can generally provide just the cut-down functionality required, e.g. typically you can replace a CIOV call to open a screen with a routine to set up the specific display required.

 

One obscure difference is the 5200 BIOS takes slightly longer to reach a DLI routine than the A8 OS. If you see DLI glitching then you need to make the DLI routine more efficient or move the WSYNC forward a bit.

 

As ever Altirra does an amazing job of emulating the 5200, the only place you may see differences with real h/w tends to be controller related.

 

 

Link to comment
Share on other sites

Some good info there. I was just thinking a couple of days ago that I shouldn't have sold my copy of The Complete and Essential Map a few years ago. The second volume had a complete XL OS listing ... complete with a couple of scribbles when my niece managed to get hold of it when she was little.

 

The game I've decided to have a crack at is Boulders & Bombs. It's an 8K cart and a game I used to own (yeah, I've sold far too much over the years). I remember some frustration with the stick rotation not always coming off so think it would probably work better in the 5200 if rewritten with analogue sticks in mind.

 

I'm a slow worker, so it's going to take some time.

Edited by Tickled_Pink
  • Like 1
Link to comment
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.
Note: Your post will require moderator approval before it will be visible.

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

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...