Jump to content
IGNORED

DIY 2600+ flash cart with a Raspberry Pico


karri

Recommended Posts

karri: there are better multi-cart options for the real A2600 such as the Unocart.

 

btw these are the extra gpio locations. I left the parts there and just moved so I don't lose them.

pico_extra_gpio.jpg

Edited by fordav1
added pic
  • Like 1
Link to comment
Share on other sites

Quick update: I added a multiplexor chip and now I can read the two hex switches using only 4 GPIO pins. With this change there are now 5 GPIO pins free for 'other' stuff. One is a stock GPIO pin (GP28) and the others are extra IO not normally exposed. With 5 GPIO pins available the 7800 additions are possible with help from someone doing the programming work.

I tested the multiplexor reading the hex switches on an Arduino and it works but to make it happen on a pico will require someone with *actual* programming skills ;)

There is also a possibility to trigger the multiplexor read using the tact button so instead of resetting the pico every time to force a reload, the pico sits there doing nothing other than monitoring the multiplexor and when the read button is pressed the pico springs into action and loads the rom after reading the current state of the switches. On the Arduino the whole process takes less than 300 milliseconds so it should be instant on a pico. Again, this is more complicated than my programming skills allow so it will require external programming.

 

Edit: btw, the pico works fine with the parts shown in the previous post pic removed/moved.

 

2600-pico_rotated+multiplexor_atariage.j

 

 

Edited by fordav1
added clarification about pico working status
Link to comment
Share on other sites

How do you plan to keep log of the 256 games on the cart? Personally I like sometings smaller like a thumbwheel with 8..10 positions. Then I have a chance to memorize where my favourites are.

Link to comment
Share on other sites

I was just going to rotate the switches and play whatever game comes up (aka russian roulette hehe!). I would have them written down on paper too like this...

bank#, game#, game name.

Yes an i2c OLED is ideal. SPI is not possible, requires too many pins. The GPIO will need to be shuffled to free up i2c pins. I have 5 GPIO pins spare and the i2c will take 2 GPIO (SDA/SCL). I don't think 3 GPIO is enough to support 7800 games but there may be a way to share GPIO between selecting the game and outputting the data to the 2600+ using more multiplexors or a 244/245 treating 8 GPIO pins like a bus, isolating the 2600+ from the pico while in selection mode and then switching to another 'bus' for the 2600+ when the 'go' button is pressed. Two buttons requires two more GPIO. A better option is a rotary encoder with built-in push-button which requires 3 GPIO but is nicer than tact buttons. The button acts as the go button and then the pico switches the 2600+ bus in after putting the game on the bus. If any of those ideas are implimented then 4 GPIO will be freed up by removing the rotary hex switches and it can have software selection of games. The rotary encoder has a button built in so any game can be selected with rotary knob, button pressed and that triggers the pico to switch buses, put the game on the 2600+ databus ready for the 2600+ to suck it down. These are just ideas off the top of my head. Either way it still requires coding etc. The guy seems to have fallen off the side of the planet so this updated version is essentially not going to happen unless someone wants to work with me on the software side. Or someone takes those ideas and adds it to their project. So far I haven't seen a peep out of anyone.

Or forget all the sharing tricks and move the project to a STM32F407VGT6 which has 100 pins and over 80 GPIO pins, then basically there are no limits.

Doing something this complex on a pico is pushing it beyond what it can feasibly offer. The STM32 in 100 pin package version can easily handle a 2600 and 7800 all-in-one cart. More ROM will be avaiable too since a smd flashROM can be added such as a TSOP48 parallel ROM (for example 29LV160/29LV320 etc). The STM32 can pull any of the flashROM pins high/low as required to enable any 4k bank and emulate any bank switching mode and emulate the DPC and a Pokey.

  • Like 1
Link to comment
Share on other sites

 

On 6/22/2024 at 9:09 AM, fordav1 said:

The guy seems to have fallen off the side of the planet so this updated version is essentially not going to happen unless someone wants to work with me on the software side.

 

Sorry for missing some of the action here.  I didn't fall off the planet, instead I fell down a flight of stairs and kinda messed myself up.  I'm getting older and I bounce less now.  As such I've been out of action for a while, hence why I've been quiet.  

 

Anyways, I'll soon be ready to tackle the software side.  My thought here is to clearly define usage and capacity

  • target the 2600+
  • stick with the Pico. 

The 2600+ is a glorified dumper.  This means we don't need to worry about RAM or other cartridge enhancements (at least for now).   The Pico is readily available, low cost, good performance and has a well documented API.  All of this makes programming much easier.    As mentioned, there are already very good multi-carts for real 2600 hardware. 

 

Ability to serve 7800 games would be nice.  If we divide operations into a 'game-select / setup portion' and then ROM emulation, then we can definitely share GPIO for multiple purposes.  When the PICO starts up, the software read the switches/dips/rotaries on as many GPIO pins as needed.  Once that is complete, then you use the pins in ROM emulation mode for the address and databus and you keep one button/switch to reboot the Pico when you want to change games.  This works on the 2600+, because the cart dumper just keeps retrying read the cart.  You don't need external power and slow start up times can handled. 

 

Now that I'm somewhat back on feet I'll get to that email I was promising to write and get some momentum going again. 

 

Again, sorry for the radio silence, sometimes life gets in the way (or a hard floor!).

  • Like 5
Link to comment
Share on other sites

  • 2 weeks later...
On 6/26/2024 at 12:45 PM, astroguy said:

Sorry for missing some of the action here.  I didn't fall off the planet, instead I fell down a flight of stairs and kinda messed myself up.  I'm getting older and I bounce less now.  As such I've been out of action for a while, hence why I've been quiet.

How are you doing now? Falling when you're over 40 is never fun, I have done it a few times myself.

Link to comment
Share on other sites

I was playing around with the multiplexor chip as it has different modes and wiring. It normally uses 4 pins to set it up. I managed to get it to read the state of the two hex switches with only 3 gpio pins. The other logic chip pin that was being set by the pico is now just tied to ground. So one gpio has been saved and can be used elsewhere. 

@astroguy when you are ready contact me directly and we can work this out and get something produced that will amaze the community :)

Link to comment
Share on other sites

  • 4 weeks later...
On 8/10/2024 at 6:46 AM, karri said:

The new Raspberry Pico 2 is up for pre-orders. It has higher clock speed and doubles the RAM. Which means that a lot of new homebrews for the 7800 should be playable. I just pre-ordered a few Pico 2's.

Yeah, I remember reading about the Pico 2. I feel like we could make an ARM 2600 cart with it tbh since it's more higher-end than the previous model. I mean, maybe Atari should consider investing in the Raspberry Pi microchips...?

Link to comment
Share on other sites

  • 2 weeks later...
Just now, MarcinJ said:

If it works for you, it would be great if you could share how to build a working cartridge. 

I will be in the woods for the week-end. No computers. But hopefully I have time to test the Pico 2. If you want to build a working cartridge you can download everything from my github site:

karrika/Otaku-flash: A single game flash card for Atari 2600, Atari 7800 and Atari 2600+ (github.com)

 

It contains the KiCad model of the cart.
- the scematics
- the PCB layout and wiring

 

The software for different games.

 

And the STL models for printing the cartridge by yourself.

 

A single PCB weighs just 20g. So the most popular way is to buy 2 sets of PCB's + passive components. Then I can send the stuff cheap as a letter (below 50g).

 

You can probably buy Pico's locally cheaper than having me to send them over the pond.

Link to comment
Share on other sites

  • 2 weeks 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...