Jump to content
IGNORED

Flash ROM Cart


ralphb

Recommended Posts

UPDATE: With beta testing completed, the project has now been published. Please refer to post 72 for the release.



Since January I've been working on a new project: the Flash ROM Cart. As the name suggests, the cart allows playing ROM images stored on an SD card on an unexpanded TI 99/4A.




The cart works with individual ROM banks, e.g. from RPK archives, or single non-inverted images. In the video I'm inverting an inverted image to get a non-inverted one. (For some reason the screen capture comes out quite blurry, but fullscreen is OK.) The current board uses a 32K RAM chip, so images are limited to that size. No GROMs, sorry.


I'm using an ATmega 8515 to read data from the SD card and fill the SRAM chip. Bank switching uses the well-known design by Jon, this time with a 377, as those are still commonly available. The 377 is also used for one-way communication from the TI to the cart, i.e., the image selection.


post-35214-0-95329500-1458478167_thumb.jpg


Alas, those parts alone won't do. In order for the microcontroller to access the RAM, the RAM needs to be isolated from the TI 99 bus. I thus added three 541 chips that will take the entire cart "offline" when the ATmega is active. This makes it unlikely to fit into a regular TI cart case, but I couldn't come up with a simpler design without resorting to SMD parts.


As you can see, this is a prototype. This even started on a breadboard with an Arduino, but I soon grew out of that. I'll do a layout and get proper boards made next. Once I have that I'll publish everything up on GitHub so that other people can get their hands on it.
Edited by ralphb
  • Like 24
Link to comment
Share on other sites

Ralphb is there chance to make some guide to build this board at home. Something like Tapuino (http://sweetlilmre.blogspot.hr/2015/03/building-tapuino-r2.html or https://github.com/sweetlilmre/tapuino). It was easy to build and program Tapuino at home. Can you try put this instructions on Github? I see there is possibility to put this inside TI99/4a.

Link to comment
Share on other sites

Very nice! Good to see these projects!

(especially when nano-PEBs are not available any more)

 

 

(Just for my own understanding to understand if I need this):

It is different than a nano-PEB correct? (no RS232, no Disk-drive support to load images?)

 

Does it require 5V adapter (or it makes use of the internal 5V)

What if a Speech Synthesizer is connected (as 5V does not pass through?)

 

Would there be a benefit to use the Flash rom card compared to

the Programmable UberGrom cartridge (or 2048K Games 1 cartridge)

and nano-PEB (32K Memory)?

 

Once the product is ready, also a housing around it would be nice?

(not like nano-PEB....no components protection)

Link to comment
Share on other sites

A custom cartridge case would need to be designed for it. Probably the cheapest long-term solution would be to 3D-print a few as test objects and then make a set of molds for further cases. They'd still be a bit expensive, but they'd be a lot less than the $75 it would cost for a set of high-quality prints commercially (somewhat less if Toucan can do some high-quality test prints for us).

  • Like 2
Link to comment
Share on other sites

From the video it looks like you're generating a standard TI menu from all the images loaded onto the SD card. How does that work if one of the images contains multiple menu entries by itself? Are you limited to 8 entries/images? You seem to be pressing some switch on the cart/card when changing games, how does that work?

Link to comment
Share on other sites

Thanks! To answer the questions:

 

Ralphb is there chance to make some guide to build this board at home.

 

Yes, that's my plan. Right now I don't even have readable schematics, so the software alone won't do you any good. But I hope to have everything up on GitHub soon.

 

(Just for my own understanding to understand if I need this): It is different than a nano-PEB correct? (no RS232, no Disk-drive support to load images?)

Does it require 5V adapter (or it makes use of the internal 5V)

Would there be a benefit to use the Flash rom card compared to the Programmable UberGrom cartridge (or 2048K Games 1 cartridge) and nano-PEB (32K Memory)?

 

Yes, it's like a 512K ROM board ("red board"), but you can change the games simply by swapping the SD card. No reprogramming or the like necessary. The ROM boards still have their uses, though, because they don't have a load time for the images. The UberGrom is entirely different, and still the only way to run GROM-based programs.

 

Power is drawn from the TI, so no external power supply.

 

The NanoPEB or the CF7+ is a disk and memory replacement. They (or an original PEB) are still highly recommended. Note that a standalone cartridge program can use only 256 bytes of RAM. Disk-based games programs rely on the 32K RAM expansion of the PEB. (But some modern carts, like JSW from Rasmus, also rely on the 32K RAM expansion.)

 

How is the SD card formatted?

 

It's plain FAT16 or FAT32, i.e., out-of-the-box SD or SDHC cards, but no SDXC cards. No special program for transferring the images to the card required.

 

From the video it looks like you're generating a standard TI menu from all the images loaded onto the SD card. How does that work if one of the images contains multiple menu entries by itself? Are you limited to 8 entries/images? You seem to be pressing some switch on the cart/card when changing games, how does that work?

 

Yes, you're right. If an image has multiple entries, I include them all in the menu. Right now I set an artificial upper limit of 8 entries, but I plan to add a ninth entry "MORE ..." that will take you to a multi-cart like menu selection with the remaining entries. It's not really meant to support 8 GB cards full of images, although there's no real limit other than the limited 0.5K RAM inside the ATmega 8515 to store all the filenames.

 

The button pressed is the RESET button. Since the cart cannot detect when I reset the console by FCTN-=, I need to reload the menu, or you'll get the menu of the previously selected card. In the end my reset button should also reset the console, but I didn't have the right kind of push button lying around, so I have to reset the console manually. Note that I want the cart to work with unmodified images, so I'm not sure one can do better than that.

  • Like 7
Link to comment
Share on other sites

Wow, your hitting all the hot points... true drag & drop to load, no additional programs required, using an image format already supported, even it's own reset button.

Are you at the designing a PCB stage yet?

 

Once completed this will become a popular piece of hardware as it conforms to the basic wants of all demographics, that being intuitive use and no need to read a manual to use. It follows the K.I.S.S. doctrine.

Link to comment
Share on other sites

Awesome!

 

The current board uses a 32K RAM chip, so images are limited to that size.

 

How difficult would it be to include more RAM (e.g. the 512k needed to run Alex Kidd :) )? This would be an ideal way for me to test my game on real iron if it had the memory!

Link to comment
Share on other sites

The button pressed is the RESET button. Since the cart cannot detect when I reset the console by FCTN-=, I need to reload the menu, or you'll get the menu of the previously selected card. In the end my reset button should also reset the console, but I didn't have the right kind of push button lying around, so I have to reset the console manually. Note that I want the cart to work with unmodified images, so I'm not sure one can do better than that.

 

Would this be solved by what Ksarul and Marc Hull did for the other new cart that was announced yesterday? As explained here: http://atariage.com/forums/topic/250533-new-rom-cart-eliminates-start-up-issues/?p=3473132

Link to comment
Share on other sites

Are you at the designing a PCB stage yet?

 

I'm currently at the schematics stage ... Layout will be challenging because we have two busses criss-crossing all over the board.

 

How difficult would it be to include more RAM (e.g. the 512k needed to run Alex Kidd :) )? This would be an ideal way for me to test my game on real iron if it had the memory!

 

Well, somewhat difficult. :) One of my early designs used a 512K SRAM chip and loaded everything up front, then the menu would simply select the corresponding bank. That wasn't very straightforward at all, and loading times are short, so I went for "load on demand" instead.

 

You can still increase capacity beyond 32K with the current design, but the ATmega 8515 has only one pin left for addressing the RAM. This by itself would not be so much of a problem, though. In fact, I have an alternative design that uses a more regular ATmega 328 instead of the bulky but wimpy 8515. To compensate for the lack of pins I'd add two 590 8-bit counters that address the RAM sequentially -- the software is written not to use random access. But as the size requirements for 328 + 2x 590 vs. 8515 are about the same, I went for the 8515 because that would mean less wires. So you could use that approach to address the ATmega pin shortage.

 

But the bus switch also has no free pins left. You need to switch the bank selector as well, as the 377 has no output enable. So to answer your question: A higher capacity would require two additional chips on the board, making it even larger. At this point I'd rather leave it as it is.

 

Would this [soft reset] be solved by what Ksarul and Marc Hull did for the other new cart that was announced yesterday? As explained here: http://atariage.com/forums/topic/250533-new-rom-cart-eliminates-start-up-issues/?p=3473132

 

Yes, that idea is pure genius -- kudos! That free pin mentioned above should be just right for this task ... I'll have to try this out on the weekend. This would also eliminate the need for the reset button, unless you like to have a hardware reset button anyway.

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

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