Jump to content
IGNORED

Atari 2600 "BigCart"


Astal4

Recommended Posts

Hello everyone! I decided to re-join AtariAge since I started to work on a new cartridge, I've dubbed it the "BigCart", it's a low BOM of around $12 in small quantities, only gets cheaper with more, it has 128KB ROM, 16KB RAM, and 1KB on-board serial EEPROM for saves, I'm thinking about the memory mapping which would be preferred for this, and theoretically the capacity of the cartridge is able to be expanded out further from 128K. It uses an SST39 NOR flash, which is able to be reprogrammed easily by most ROM programmers, and the EEPROM is rated for 4 million cycles, there is no microcontroller on board this cartridge, the logic is implemented in an ATF1504AS, theoretically the mapping could be changed with an update to the PLD firmware as there is no "hard" logic on the board. It's still in early testing as I have not even got the produced testing boards yet, but was wondering if anyone would be interested in something like this. Thanks everyone!

  • Like 4
  • Thanks 1
Link to comment
Share on other sites

Also wanted to add, the reason I'm using a CPLD is because logic is able to be added as wanted, and the ATF1504AS is more easily available than STM32 and most ARM MCUs at this point, along with wanting to have a good Verilog project 😜

 

Thanks everyone. I am probably going to use F4 bank switching.

  • Like 1
Link to comment
Share on other sites

  • 2 weeks later...
On 9/15/2022 at 1:43 AM, Astal4 said:

Hello everyone! I decided to re-join AtariAge since I started to work on a new cartridge, I've dubbed it the "BigCart", it's a low BOM of around $12 in small quantities, only gets cheaper with more, it has 128KB ROM, 16KB RAM, and 1KB on-board serial EEPROM for saves, I'm thinking about the memory mapping which would be preferred for this, and theoretically the capacity of the cartridge is able to be expanded out further from 128K. It uses an SST39 NOR flash, which is able to be reprogrammed easily by most ROM programmers, and the EEPROM is rated for 4 million cycles, there is no microcontroller on board this cartridge, the logic is implemented in an ATF1504AS, theoretically the mapping could be changed with an update to the PLD firmware as there is no "hard" logic on the board. It's still in early testing as I have not even got the produced testing boards yet, but was wondering if anyone would be interested in something like this. Thanks everyone!

 

Hi Astal4, 

Funny I just started similar project with the same objectives and same devices, only I'm using VHDL instead of Verilog. I just started with the Intellivision version, but switched to atari 2600 because it's easier and the bank switching pretty straightforward. 

My plan was to have an option to connect a microcontroller  to program the whole cart through USB or Bluetooth, but still thinking.

If you want to exchange some idea, I'm available for discussions 🙂 

 

Thanks

 

Federico

 

 

 

Link to comment
Share on other sites

12 hours ago, HappyCactus said:

 

 

My plan was to have an option to connect a microcontroller  to program the whole cart through USB or Bluetooth, but still thinking.

If you want to exchange some idea, I'm available for discussions 🙂 

 

 

 

 

I forgot to mention that the hardware and firmware will probably be under FOSS and CC licenses. 

 

 

Link to comment
Share on other sites

0S3ERvM5yV6enplyiakl6zLQKFJNwSGSb-gaSB6btq_LFAGtjpZSRzpAQfrk9zf-NC20jFCLt0LGfW83YmEZ2gdMoXUBNTbmOacA78tuoYmWFK-Rn1UpffVahnKYjJjc4Bh64fuVPgRoe9BqcP08pooEyZT_xdDqwjTgsOIIai6Pg1cw_6PA6NyGIdbHCBTdV9otoQbukB04u7I2kRfbtuqi88nrdGVXbTMGSfViO-mRo7ykdGcob9Ar-sqgRCogiuOBOhX-u_Mov_5uqFKU6l3Vbk2EvZqi6pet_LsnC2nmn3M6gOwOpqHaitwWeY3lnqshM4AEGY0wTGoTF8v4j-4WeHFOrVJXi3PBdF89ORf1KXD3eJIotJV0OCuF5nHgTmAqKaN7q3YjjcKRFUMcG8GEpIece6jm95fI2x1CnbVveyM3u0Wev7dY8xhXvuqiMKNfFc7vUN-uApVWGLZdecwAxqyAMzhDINw7Vhv6l8KDuiaRDNQw79fGW-NsiEE6AwOWi3HSDEOWMFemTZhj38VOvJYkYqbky2b4UYWPvxoHCNrkHDXdygbivlu6gqdHOo0CfrLBkvqND5zOvlmi7uaE0LGDsrVuZC7qPOwn5C47VP_5nx265lhDKgeX8K2Gt8-HmxDS3dgavo_9lYXmsk-G3YWVNmePNgjD11-Ssmg1E0RRXbCxsFPHAcM5CY6L06Ca4oSTSdpr744_o6MxgrKVbGRqRhYQSpSVybUN47bKxUJIS1_9VM1h26MhV_CNhB9AJit2TqZPM1WfzQANSNbatrdz8jriy0XTQsl_rCglbkvqgEU28_KWFNZE4BAqDz06Mg=w699-h932-no?authuser=0

The "Beta 2" cartridge is working with a 4KB ROM, time to add in bank select logic, I think I will be disabling RAM, and the EEPROM Is going to switch from SPI to bit banged I2C to keep the cost down because the SPI driver would need an external clock. "Beta 3" will be up to 512KB ROM and a save EEPROM.

Link to comment
Share on other sites

I've decided what to do for Beta 3, I2C EEPROM, bit banged by CPU, can reduce the data pins to just D0/D1 latched onto I2C CLK and SDA, converts the 4 SPI pins into 2 I2C, and I can put the data pins on the 2 extra SPI pins, effectively freeing 8 pins.

I could then with 8 free pins add RAM back in, 8 banks (3 bits), and then 2 extra bits on the ROM (32 banks total), and with a 256 byte RAM bank size, and 3.5KB ROM bank size, I would get 2KB RAM, 112KB ROM, and then whatever amount of EEPROM I'd throw on, since it's I2C it can be 8TB for all that matters.

Link to comment
Share on other sites

_6CWrjabqhyq9B4nMf3wycwX-kAhfafAv6GahRtdoe8o-3nvW-i-auBeUVQG_MN9qAJLTdqRaBzJRRszrfJVqCxL-vW99-5QYA0prE-UkwSCUo7oMOLDbPp4qHfZ7JrbObkFWeebYQ8WTmYAKStFt9PZWcCcODMnmOl4312jJOIvbFWJJaPU_hBDEFGSb71yvi6Ihhf0Uay9p3Kwnalx7im3_Lo35oAoMJdjizQfSAApARaAnIi6gWbxdoXRbBZV2O9oVk6sREONOY3ICu9nd2lXASDC4y1Kr_DvA2cX0eywPzrLEU8ydIMa2jO9XBjbtD7vmXuTaAXwhG9IWYkLBkD0h_SJeJusOH88scty_qKRpws7Cz2Id_0UJQM1senigcDMiYtmjuKX9wWsvG2fuF1YtYZMla3LCyA4vI02cQZ8wZASIhNiWM_anXgpQ871cpooAVfi7eDW7NwT6Zoqg4bh8ep_ScxaEMxAqzmmImUmt-94dpJLUI8TDuRuOfRQSWlCORGjlz_Hqx3LwQFBZaEGPDB9vSztnDoe6g4MvOATxFtgGz0a9Kfzs_k_GQygZB3-gs37MAHjJuJlI6fZjZ603Ac0bjTFLxK4hCaoJaLtta6RE-Cxxx-KjL0JLGYUx2ld8oNXk92uBxNHYnkBEJoaklOsZNo7b6ZSR1WKRYtcGx91Eu9jf0z8ZBLYd075grNIAygK2NzRTgc3sBKZyIV-XA7ceaKNWCuGAL0nNtehgjG5utV1RcXrlQ-sXuWb_95aCPd1pNGkrCtL0FeB-gvLC2_GufbQxcuanehZPmW59cZxDavSuoMcmzraMckKDiNyyw=w699-h932-no?authuser=0T

 

The working picture never posted!! AAAAHHH!!!! Well this is the prototype 2, and I overhauled the design for the next revision, I was able to get 64K/1K/2K ROM/RAM/EEPROM to fit in the pin limitations, one of the SPI pins was data in to the CPLD, and that was an input only pin, now that I'm typing this I just realized I could've moved at least 3 of the address pins to input only pins and got 128K/4K/2K.... I will get a working prototype of the full cartridge together and it will be a new thread with an official name. The actual BOM (Quantities of 100) for the final (hopefully) 128K/4K/2K cart will be an estimated $10.1778 USD. I can change the banking schemes however needed for developers as well thanks to all logic being in a CPLD! There's a lot of hotspots on this cartridge's memory map, it's provisionally going to be hotspots of FE00-FEFF for ROM banking, FF00-FF0F for RAM banking, and then FF10 and FF11 being the EEPROM registers (they're only 2 bit because of the new design). The RAM and ROM are separately bankable, so you can be on RAM bank 0 and ROM bank 16 and you will not lose the RAM bank when switching the ROM or ROM bank when switching the RAM, aiming for it to be as flexible as possible.

 

Thanks everyone, and feel free to help me think of some names for a cartridge like this! Something fun, and whatever to name the bank switching method.

Link to comment
Share on other sites

Have you ever considered to use the Raspberry Pi Zero with some level shifters?
It is very accessible and flexible, cheap. And maybe the level shifters are available in DIP too.
This would be a very easy project from the perspective of the hardware.
An advantage is, that there is a version with Wifi available. That might open new possibilities in adding a live atari forum to work on the 2600.
The PIO functionality of the RP2040 could be used for accessing the memory of the RP2040 without disturbing the cpu core with an interrupt.
And with accessing a certain area of the memory we could trigger a "write" command to the RP2040 via an interrupt.
the PIO functionality is mighty enough to handle the bus connection and for network access in the background the second independet CPU core can also be used.
the 2MB onboard flash of the raspberry pi zero is enough to store the software for the RP2040 and a lot of data/games for the atari 2600.
if using the version with the wifi chip, then the memory is more or less unlimited.

what would we need to use this? two 8 bit level shifters for the address bits including the CS signal (which is the highes address bit of the atari if i am correct).

one additional 8 bit level shifter for the data bits.

any comments on that idea?
 

Link to comment
Share on other sites

53 minutes ago, WhyLee commotari.club said:

Have you ever considered to use the Raspberry Pi Zero with some level shifters?
It is very accessible and flexible, cheap. And maybe the level shifters are available in DIP too.
This would be a very easy project from the perspective of the hardware.
An advantage is, that there is a version with Wifi available. That might open new possibilities in adding a live atari forum to work on the 2600.
The PIO functionality of the RP2040 could be used for accessing the memory of the RP2040 without disturbing the cpu core with an interrupt.
And with accessing a certain area of the memory we could trigger a "write" command to the RP2040 via an interrupt.
the PIO functionality is mighty enough to handle the bus connection and for network access in the background the second independet CPU core can also be used.
the 2MB onboard flash of the raspberry pi zero is enough to store the software for the RP2040 and a lot of data/games for the atari 2600.
if using the version with the wifi chip, then the memory is more or less unlimited.

what would we need to use this? two 8 bit level shifters for the address bits including the CS signal (which is the highes address bit of the atari if i am correct).

one additional 8 bit level shifter for the data bits.

any comments on that idea?
 

I thought of using the RaspberryPi for the PlusCart too. But you will need a RTOS and most likely the RasperryPi will not boot fast enough for the 6507, so you will need a solution to keep the 6507 busy until your RTOS is booted.

Link to comment
Share on other sites

On 10/10/2022 at 12:30 PM, Al_Nafuur said:

I thought of using the RaspberryPi for the PlusCart too. But you will need a RTOS and most likely the RasperryPi will not boot fast enough for the 6507, so you will need a solution to keep the 6507 busy until your RTOS is booted.

If the Raspberry cannot boot fast enough, which could be possible, you need to do a reset on the console and that should work.
Yes, RTOS could be used but is not necessary. Can be used without an operating system, or a simple scheduler etc. (this is what i use with my microcontroller projects)

Link to comment
Share on other sites

14 minutes ago, WhyLee commotari.club said:

If the Raspberry cannot boot fast enough, which could be possible, you need to do a reset on the console and that should work.

No, that will not work.

 

14 minutes ago, WhyLee commotari.club said:

Can be used without an operating system,

Yes, but this means a lot of work because you will have to write your own "OS" for the RasPi hardware.

 

14 minutes ago, WhyLee commotari.club said:

or a simple scheduler etc.

replacing the scheduler of an existing RasPi OS?

🤔

might work.

 

Link to comment
Share on other sites

9 minutes ago, Al_Nafuur said:

No, that will not work.

 

Yes, but this means a lot of work because you will have to write your own "OS" for the RasPi hardware.

 

replacing the scheduler of an existing RasPi OS?

🤔

might work.

 

you don't need an OS, you just need the bootloader which is fixed anyway

Edited by WhyLee commotari.club
Link to comment
Share on other sites

On 10/10/2022 at 2:30 AM, WhyLee commotari.club said:

Have you ever considered to use the Raspberry Pi Zero with some level shifters?
It is very accessible and flexible, cheap. And maybe the level shifters are available in DIP too.
This would be a very easy project from the perspective of the hardware.
An advantage is, that there is a version with Wifi available. That might open new possibilities in adding a live atari forum to work on the 2600.
The PIO functionality of the RP2040 could be used for accessing the memory of the RP2040 without disturbing the cpu core with an interrupt.
And with accessing a certain area of the memory we could trigger a "write" command to the RP2040 via an interrupt.
the PIO functionality is mighty enough to handle the bus connection and for network access in the background the second independet CPU core can also be used.
the 2MB onboard flash of the raspberry pi zero is enough to store the software for the RP2040 and a lot of data/games for the atari 2600.
if using the version with the wifi chip, then the memory is more or less unlimited.

what would we need to use this? two 8 bit level shifters for the address bits including the CS signal (which is the highes address bit of the atari if i am correct).

one additional 8 bit level shifter for the data bits.

any comments on that idea?
 

The boot time issue for the Pi along with the lack of availability is part of why I'm not doing this, along with the cost, currently this design is just about $10, an RP2040 + a Zero W would cost $14 for those two alone, for a multicart it could be a good option, but I'm aiming for this to be a production cartridge. Level shifters are also going to be an extra cost which I do not need to worry about with the current design.

  • Like 1
Link to comment
Share on other sites

16 hours ago, Astal4 said:

The boot time issue for the Pi along with the lack of availability is part of why I'm not doing this, along with the cost, currently this design is just about $10, an RP2040 + a Zero W would cost $14 for those two alone, for a multicart it could be a good option, but I'm aiming for this to be a production cartridge. Level shifters are also going to be an extra cost which I do not need to worry about with the current design.

Sorry, I meant the Raspberry Pi Pico W. (not the Pi Zero)
It has already has the RP2040 on it. with the pin headers, it is below 8€ and available again. and you don't need a programmer for it.
with a PCB for the cart and 3 level shifters, the price would be very affordable by many people and they don't need that much knowhow to build it.
maybe i will start KiCad and try to make a version with level shifters in DIP.
can anybody recommend a longer cartridge case where the Pi zero could fit inside easy?


 

Edited by WhyLee commotari.club
Link to comment
Share on other sites

4 hours ago, WhyLee commotari.club said:

Sorry, I meant the Raspberry Pi Pico W. (not the Pi Zero)
It has already has the RP2040 on it. with the pin headers, it is below 8€ and available again. and you don't need a programmer for it.
with a PCB for the cart and 3 level shifters, the price would be very affordable by many people and they don't need that much knowhow to build it.
maybe i will start KiCad and try to make a version with level shifters in DIP.
can anybody recommend a longer cartridge case where the Pi zero could fit inside easy?


 

Even at 8 euros it is more expensive than the current design, and isn't in the scope of this project, although it could be interesting for a 7800 or Jaguar cartridge, online Jaguar gaming would be very interesting. 

  • Like 1
Link to comment
Share on other sites

I'm a very long way from being able to invest money into physical carts, but I am interested in it for my own 2600 game (mainly for the ability to save game data). Also been wondering what goes into designing a custom memory mapper/what the limitations are design wise.

 

Currently my game is coded to use an 3E+ cart. Memory wise it is mapped out sorta like this:

 

Have reserved ~29k bytes of rom for the moment, though I could see that changing quite a bit.

For ram, I need a minimum $100 contiguous bytes per bank, and at the moment I only really need $100 bytes of directly accessible read/write ram at a time.

 

I have 3 $100 byte banks of ram for storing level state, and would only need a few bytes more to save all the state I'd ever need, unless I wanted to implement multiple save files.

I also have another 3 $100 byte banks of ram that among other stuff contains a modifiable kernel.

 

  • Like 1
Link to comment
Share on other sites

  • 2 months later...

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...
  • Recently Browsing   0 members

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