Jump to content
Pioneer4x4

Extra ram, batari Basic, and hardware

Recommended Posts

I want to get back to making something I tried years ago, but I needed more ram. I only care about running it on real hardware, and for someone to make their own/or sell whatever I want to limit the actual hardware needed. Obviously the Harmony is the way to go, but...

This is something I think I asked back in 2011 or so when I was active on here. Can you use batari Basic for a supercharger type rom/bin, and get access to extra ram that way? I have 2 superchargers, one modified one not, in addition to my Harmony cart.

Share this post


Link to post
Share on other sites

Yes. You get 128 bytes of extra RAM, or less if you use some of it to increase the resolution of the playfield. In the "worst" case, you will still get 48 extra variables with a high-resolution playfield, See the Superchip RAM section of the bB reference for details. Seaweed Assault is one released game that uses this; there may also be others.

Share this post


Link to post
Share on other sites

Yes. You get 128 bytes of extra RAM, or less if you use some of it to increase the resolution of the playfield. In the "worst" case, you will still get 48 extra variables with a high-resolution playfield, See the Superchip RAM section of the bB reference for details. Seaweed Assault is one released game that uses this; there may also be others.

 

I was asking about "Supercharger" (6k, all ram) not "Superchip" if they are compatible with each other I didn't know that.

Share this post


Link to post
Share on other sites

I think you can "sort of" use Supercharger RAM with bB. Apparently any 4K ROM that doesn't access data in the last few bytes of ROM should work on a Supercharger. (FFF8/FFF9 are SC hotspots)

 

So create a 4K bB ROM, reserve a bunch of "ROM" bytes with a DATA statement, and you should be able to read/write to them like an array. (or assign individual DIM variables to those ROM locations.

 

That's the theory, anyway.

 

For the above to work as a Harmony or emulation bin, I believe you'd need to stick proper supercharger headers in it. That would be a bit more involved. [edit - looks like the "makewav" utility can convert a 4k bin to a supercharger bin]

  • Like 1

Share this post


Link to post
Share on other sites

Hmm, trippy. This might be handy for a game with little static data but lots of dynamic content, like a roguelike with a random level generator.

Maybe the Harmony would detect it properly if the file is given the .AR extension. Might be worth a try. :)

Share this post


Link to post
Share on other sites

I'm guessing just renaming the extension won't work, since it seems SC users use makewav to generate the sound files, and that converts between 4k and SC.

 

It looks like I was wrong about makewav being able to generate a binary instead of a wav. I though that was the case with it's "-r" raw flag, but apparently that's for raw audio. So I guess it would need to be modified to output binaries, for use with Harmony or Stella.

 

[edit - I don't think we need anything for write support. I recall reading SC uses some kind of "automagic" read/write detection. It probably doesn't work with all address modes, though]

Share this post


Link to post
Share on other sites

There was an option added into makewav let me dig deeper from WAY back.

 

I remember, totally unrelated. I was working on using a GameBoy as a "file server" for the Atari 2600 using a modified supercharger. I wanted to store games on a programmable GameBoy cart, and have it play back the audio to the Supercharger. I believe that he added that -r option so that I could have the info to send and then just write a simple tone generator for the GameBoy, and the games would be stored in fairly small bit of data, less than the actual sound files.

Share this post


Link to post
Share on other sites

As far as I can tell this is as far as batari got with Supercharger support:

http://atariage.com/forums/topic/108859-supercharger-banking-with-bb/

 

Thanks, I do remember that thread. I need to figure out what I actually require. Then go from there. Think of it like my Non-Tendo R.O.B. project, more of a proof of concept but will be pretty dang cool if it works.

  • Like 1

Share this post


Link to post
Share on other sites

 

Thanks, I do remember that thread. I need to figure out what I actually require. Then go from there. Think of it like my Non-Tendo R.O.B. project, more of a proof of concept but will be pretty dang cool if it works.

 

If you do go down the rabbit hole I wouldn't mind a function to induce additional tape loads on the Supercharger. That way we could have batari BASIC games that run on both sides of the tape.. 6k + 6k :)

Share this post


Link to post
Share on other sites

Sooo, assuming that Supercharger is out, and I need it, what is the cheapest way to make carts with extra ram?

(This idea is useless if it can't run on real hardware.)

Edited by Pioneer4x4

Share this post


Link to post
Share on other sites

Sooo, assuming that Supercharger is out, and I need it, what is the cheapest way to make carts with extra ram?

(This idea is useless if it can't run on real hardware.)

 

How much RAM do you need?

 

For CBS RAM and SuperCharger games Al can put them on a Melody board, and a few vendors manufacture Sara chip games scavenging chips from old cartridges (in theory this could be done with CBS RAM chips too but no one has).

Answers to some other questions on this thread -

SuperCharger BASIC is cross compatible with Atari Flashback BASIC, but the latter only has 256 bytes of extra RAM instead of 6K.

 

Yes you add/offset 128 or 256 bytes for the read and the write with memory schemes like the SuperChip or CBS RAM (what Flashback BASIC uses), however the SuperCharger uses a more complicated scheme with additional instructions.

 

You would have to code the RAM access protocols in inline assembly in bB unless someone adds handlers to the BASIC.

 

SuperCharger BASIC and Atari Flashback BASIC are array based for writing simple code like this:

 

data TestArrayA 5,10,20

data TestArrayB 7,12,22

TestArrayA(1)=TestArrayB(2):TestArrayA(2)=TestArrayA(3)*5

 

The virtualworld can be addressed as a double dimensioned array of 2000 bits or a one dimensional array of 256 bytes even in Atari Flashback BASIC (the CBS RAM), but any additional RAM arrays turn to ROM except for the playfield and player color arrays (those overlap sections of the virtualworld in Flashback BASIC).

 

Unless you need a lot of extra RAM most games will cross compile. An extreme example is the 800 variable program linked above, it had to be revised to use the virtualworld array and has a shorter playback time using just 256 bytes under Flashback BASIC:

 

http://atariage.com/forums/topic/266238-sequencer-with-record-and-playback/?hl=%2Bjamout

Share this post


Link to post
Share on other sites

 

I was asking about "Supercharger" (6k, all ram) not "Superchip" if they are compatible with each other I didn't know that.

Wait so progamming with Superchip is not the same as programming a Supercharger?

Share this post


Link to post
Share on other sites

OK, thanks all. I will have to think through and see how much ram I need I remember needing to store/read the state of approximately 250 items in one of 3 states so without advanced math that is 512 bytes, but I could simplify it greatly for proof of concept, then worry about making it fun/usable.

Share this post


Link to post
Share on other sites

Wait so progamming with Superchip is not the same as programming a Supercharger?

I assume not, Supercharger has 6K of ram in it. (when modified) is just straight 4k normally addressable and won't back switch. But for actual supercharger programs, they can use more ram on the cart than any other style, I think they can use most of the 6K as actual ram, but I really don't know. And sorry guys, I can handle bBasic OK, and just getting the routine added for keypad controller was a bit for me. I don't understand any of the "inline code" assembly code, type of stuff.

I guess if I can make it work as a CBS RAM on my Harmony, then I can look into it being functional on harmony carts. But I will also look into supercharger basic, that may be just the ticket. I guess I really need to learn more, and also define my needs/wants more.

BUT, first I need to get proof of concept working (I can do that in standard 4K no problem), post a video, then see if anyone really cares.

Thanks again everyone.

Share this post


Link to post
Share on other sites

I just read through the files in the Virtual World Basic, and it looks VERY promising. The scrolling split screen display is almost made to order. Can you output to the Controller Ports with it? Like I did with bBasic to read keyboard controllers, or when I controlled 3D goggles. I think it was with the SWCHA command?

Share this post


Link to post
Share on other sites

I just read through the files in the Virtual World Basic, and it looks VERY promising. The scrolling split screen display is almost made to order. Can you output to the Controller Ports with it? Like I did with bBasic to read keyboard controllers, or when I controlled 3D goggles. I think it was with the SWCHA command?

 

Yes, SWCHA is available to BASIC.

 

The SuperCharger and CBS RAM versions will both work on the Harmony cart or a Melody cart, but if you need 512 extra bytes of RAM only the SuperCharger version can accommodate that; if you can fit the proof of concept in 256 extra bytes of RAM you could compile it to either version.

Share this post


Link to post
Share on other sites

Yes, SWCHA is available to BASIC.

 

The SuperCharger and CBS RAM versions will both work on the Harmony cart or a Melody cart, but if you need 512 extra bytes of RAM only the SuperCharger version can accommodate that; if you can fit the proof of concept in 256 extra bytes of RAM you could compile it to either version.

Excellent. This may be what I have been looking for then.

Share this post


Link to post
Share on other sites

Now that I re-read your question.. I think Supercharger support is a red herring.

 

You might want to stick to SARA / SuperChip RAM and use a Savekey for world data and save game info:

 

SaveKey Info:

http://atariage.com/forums/topic/176797-bb-atarivox-support-part-1-the-atarivox-eeprom/

 

SARA RAM:

http://www.randomterrain.com/atari-2600-memories-batari-basic-commands.html#superchipram

Share this post


Link to post
Share on other sites

OK, screw it. To make this simple, I'm starting a new thread with my actual idea, all comments and suggestions can go in there. I will put a link into after this, please reply in that thread. It will be called "Head to Head Battleship with 2 consoles"

 

http://atariage.com/forums/topic/288508-head-to-head-battleship-with-2-consoles/

Edited by Pioneer4x4
  • Like 2

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