Jump to content
IGNORED

6MB Cartridge - DIY options?


phoboz

Recommended Posts

13 minutes ago, Zerosquare said:

The largest EEPROM which is a drop-in replacement is indeed the 93LC86, which stores 2 kilobytes. Larger EEPROMs are not available with a Microwire interface, which is what the Jaguar carts were designed for.

 

Using a SPI EEPROM instead would allow much larger sizes, but requires a bit of extra logic on the cart. But now that you mention it, it would be possible to make a very small PCB with the SPI EEPROM and the logic, that could be soldered where the original EEPROM normally is. That would allow upgrading existing cartridge PCBs.

 

I wouldn't rely on it to store game code or data, though -- the data path is only 1-bit wide, and it's slow to access.

 

Too bad one can't toggle between both.  Use the SPI for configuration/boolean flags for the game.  Or, maybe advanced developers could modify their engine to stream SPI data as needed into RAM in the background.

Link to comment
Share on other sites

17 minutes ago, Zerosquare said:

The largest EEPROM which is a drop-in replacement is indeed the 93LC86, which stores 2 kilobytes. Larger EEPROMs are not available with a Microwire interface, which is what the Jaguar carts were designed for.

If the game is stored on flash, then there is plenty of space. One can protect the game sectors and use some to store what ever one wants. Modern flashes can be erased 100,000 times.

And a flash write algo is very easy.

  • Like 2
Link to comment
Share on other sites

18 minutes ago, 42bs said:

If the game is stored on flash, then there is plenty of space. One can protect the game sectors and use some to store what ever one wants. Modern flashes can be erased 100,000 times.

And a flash write algo is very easy.

Yes, you can do that. But there's the risk that a bug could cause an erase/write to the wrong sector and corrupt your game code or data. Whereas with a separate EEPROM for saves, you can write-protect the Flash and be 100% sure that won't happen. I believe it's a choice each developer should make themselves.

 

18 minutes ago, 42bs said:

SPI must be bit-banged, so no 'in the background'.

You could potentially achieve that (I'd have to check to be sure) by running the data transfer code in a timer interrupt, or in the idle loop on the DSP. But I very much doubt it'd be fast enough to be useful for anything, and it would waste a lot of bus bandwidth (even without the overhead, you'd be wasting 64-bit bus cycles to transfer just a single bit at a time).

  • Like 1
Link to comment
Share on other sites

45 minutes ago, Zerosquare said:

Yes, you can do that. But there's the risk that a bug could cause an erase/write to the wrong sector and corrupt your game code or data.

Millions of commercial products are out there doing just this. You can protect all relevant sectors. You can even write protect a 'bootsector'. So it is just a matter of 'doing'

 

Link to comment
Share on other sites

1 hour ago, Gemintronic said:

Has anyone attempted a stripped down Skunkboard with "just" the flash and/or EEPROMs on them?  Or, would that still end up being too much for physical releases?

If it had only the Flash memory on them, how would you program it?

Also, IIRC, the Skunkboard uses the CPLD to do 5V/3.3V voltage translation as well.

  • Thanks 1
Link to comment
Share on other sites

11 minutes ago, Zerosquare said:

If it had only the Flash memory on them, how would you program it?

Also, IIRC, the Skunkboard uses the CPLD to do 5V/3.3V voltage translation as well.

 

I have an Uno Cart (Atari 2600) with pins that can connect to a ST-Link 2 USB programmer.  I kinda assumed that a cost reduced Skunkboard would use the same tactic without explaining myself.  But, sounds like that's a no go.

Link to comment
Share on other sites

1 minute ago, Gemintronic said:

I have an Uno board (2600) with pins that can connect to a STM32 something programmer.  I kinda assumed that a cost reduced Skunkboard would use the same tactic without explaining myself.  But, sounds like that's a no go.

You could do that, by adding a separate programming connector and adding voltage translation logic to replace the CPLD. But at this point, you'd have essentially transformed a Skunkboard into a Jagtopus.

 

1 hour ago, 42bs said:

Millions of commercial products are out there doing just this. You can protect all relevant sectors. You can even write protect a 'bootsector'.

But if a product-breaking bug is discovered after release, commercial companies have the financial means to do a product recall and fix it (even if they hate this). For an individual homebrew author, doing so would probably wipe out most or all of the profits.

 

Also, the specifics and granularity of write protection tend to vary between models of Flash memories (top-boot vs bottom boot, etc.). And past experience with the Jagtopus taught me that you can't rely on a specific part number (or even manufacturer) if you don't want your design to be obsolete in 6 months when the memory chips are no longer available. Especially now, with the semiconductor shortage.

 

Again, if you want to use Flash memory for saving instead of the EEPROM, you can do it: the hardware supports it. I'm just pointing out the potential issues.

Link to comment
Share on other sites

25 minutes ago, Zerosquare said:

If it had only the Flash memory on them, how would you program it?

Also, IIRC, the Skunkboard uses the CPLD to do 5V/3.3V voltage translation as well.

I think the connector has all the pins needed, so you might directly program the flash from the Jaguar, though an external programmer would be certainly quicker. Like the pihat for the Lynx flash cards.

 

But your other point about chip shortage is valid, though it applies to most chips. I have a customer who has three designs of the same device just because of the different availability of the chips.

Link to comment
Share on other sites

9 minutes ago, 42bs said:

I think the connector has all the pins needed, so you might directly program the flash from the Jaguar, though an external programmer would be certainly quicker. Like the pihat for the Lynx flash cards.

Yes, you can program thru the cartridge connector, either by using the Jaguar directly (connected to a PC by BJL) or with an external programmer. That's how it's currently done on the Jagtopus.

 

But since getting Jaguar cartridge connectors is getting more and more difficult and expensive, I agree that an additional connector would be useful. I'd have to see how much traces rerouting would be needed to add it.

  • Like 1
Link to comment
Share on other sites

5 minutes ago, Zerosquare said:

But since getting Jaguar cartridge connectors is getting more and more difficult and expensive, I agree that an additional connector would be useful. I'd have to see how much traces rerouting would be needed to add it.

 

I take it places like PCBWay wouldn't work because the Jag connectors are a non-standard thickness or something?

Link to comment
Share on other sites

Since you all will find out soon enough anyway, maybe I will use this thread to mention that AtariAge will soon be releasing Jaguar games on a flash board, including 6MB games. These boards are ready to go and thousands of flash chips are on hand. After Al runs through his supply of existing DIP boards and DIP EPROMs, this board will likely be used for AtariAge Jag homebrews.

 

This is not a Jagtopus or Skunk clone. It's a new board designed from scratch. It's a basic flash board designed solely for AA homebrew releases. Every design element was considered to make it suitable for cartridge releases, and there are no additional parts that add cost. All parts have already been purchased and are on hand so there are no supply chain surprises to come.

 

So if anyone needs a number of programmed boards for a homebrew game release I am sure that can be arranged. These AA-exclusive boards will only be available pre-programmed. Like some past designs, it employs a special programmer that uses a Jag cart connector, and these are expensive and rare so it is not really practical to create programmers for individuals. I also do not want to use up all of the remaining cart connectors, as they should be available so people can continue to repair Jaguars. So there are no plans to sell unprogrammed flash boards. At least, not these basic, cost-reduced boards for AtariAge homebrew use.

 

So there is also a secondary design in progress that would allow for another way to program the boards. Obviously this requires a different board design with additional space on the board that is solely for the alternative programming method. So this board is considerably more complex and thus more costly. This is also a new design and not a derivative of any prior work.

 

The secondary design also has support for SPI EEPROMs as a standard feature as well as support for the normal microwire EEPROMs. SPI support is still being worked on as time permits. It also allows for bankswitched games up to 32MB. Optional bankswitching uses a 4MB fixed bank and 2MB ephemeral bank and is not based on any existing methods, as far as I know.

 

  • Like 4
Link to comment
Share on other sites

1 hour ago, batari said:

Optional bankswitching uses a 4MB fixed bank and 2MB ephemeral bank and is not based on any existing methods, as far as I know.

;)

 

OK, it doesn't really count since I never did finish routing the board:

37042196_Jagtopusv2PCB.thumb.png.79bb2c26600e9d7b255ffc10e92f0c6a.png

 

1 hour ago, batari said:

The secondary design also has support for SPI EEPROMs as a standard feature as well as support for the normal microwire EEPROMs. SPI support is still being worked on as time permits.

You mean something like this?

166805093_I2CEEPROM.thumb.jpg.2bb0770be89b857abdd14744753e4564.jpg

I can confirm, it works fine.

 

EDIT: if you need test source code for the SPI EEPROM, just ask.

Edited by Zerosquare
Link to comment
Share on other sites

8 hours ago, Zerosquare said:

You don't even need to anything, as long as you make sure the default configuration maps the first 6 MB of the Flash memory to the 6 MB address space.

I was thinking a way to do it without soldering down the bank switching components if you only want 6MB. Save $1 a board or something 🙂 So you could do a run of 6MB-only boards and a separate run of 8MB boards using the same PCBs, but just changing how they're populated.

Link to comment
Share on other sites

3 hours ago, Zerosquare said:

Also, IIRC, the Skunkboard uses the CPLD to do 5V/3.3V voltage translation as well.

I had thought all the chips on the Skunkboard were 5v tolerant, but it looks like the data lines on the flash actually aren't, just the address lines, most of which are wired straight through.

Link to comment
Share on other sites

3 hours ago, 42bs said:

Hmm, can't they be programmed from the Jaguar?

While the Jag itself can theoretically produce the write signals to program the a blank cart, the problem is that you would somehow need to get the image you wanted to program into the Jag, and I am not sure how that could be done (easily) without booting with a working cart?

Link to comment
Share on other sites

11 hours ago, Zerosquare said:

;)

 

OK, it doesn't really count since I never did finish routing the board:

37042196_Jagtopusv2PCB.thumb.png.79bb2c26600e9d7b255ffc10e92f0c6a.png

 

You mean something like this?

166805093_I2CEEPROM.thumb.jpg.2bb0770be89b857abdd14744753e4564.jpg

I can confirm, it works fine.

 

EDIT: if you need test source code for the SPI EEPROM, just ask.

I would like to see the code, of course. Yes, I wired SPI/microwire like-to-like pins and naturally things like DI and MOSI, DO and MISO did not match up, so there is a separate footprint for each type of EEPROM.

 

Just curious, what is the inverter for? It seems we have slightly different implementations as mine does not use one, so I am guessing the source code would need changes in order to work on mine.

 

Link to comment
Share on other sites

1 hour ago, batari said:

While the Jag itself can theoretically produce the write signals to program the a blank cart, the problem is that you would somehow need to get the image you wanted to program into the Jag, and I am not sure how that could be done (easily) without booting with a working cart?

Swap cards ;-) Or BJL.

Link to comment
Share on other sites

18 hours ago, Zerosquare said:

But since getting Jaguar cartridge connectors is getting more and more difficult and expensive, I agree that an additional connector would be useful. I'd have to see how much traces rerouting would be needed to add it.

I bought a few spares of these some years back just in case I'd ever need to replace them on a Jaguar console or Jagtopus programmer, but I only have about a dozen.

Link to comment
Share on other sites

7 hours ago, batari said:

Just curious, what is the inverter for? It seems we have slightly different implementations as mine does not use one, so I am guessing the source code would need changes in order to work on mine.

The CS pin is active-high for Microwire, but active-low for SPI (and it needs to remain active while you're transferring the command and data bits).

And you can't control the state of the CS signal from the Jaguar directly, you can only trigger a short low pulse on it.

So you need an inverter on this signal to make SPI work.

 

Here's a basic test program:

SPI EEPROM read test.s

It reads the first 64 bytes of the EEPROM and sends them to the serial port at 9,600 bps. I used an EEPROM that was already programmed, so there's no code to write to it, but it shouldn't be difficult to add by following the steps described in the EEPROM datasheet.

 

5 hours ago, 42bs said:

Swap cards ;-) Or BJL.

I wouldn't recommend hot-swapping Jaguar carts :D

And it wouldn't work anyways, unless you modify your Jaguar not to power-off when there's no cartridge.

 

So, BJL, indeed. Or JagCD, if you're crazy and only need to program the cart once (as after it's programmed, the Jaguar will boot from the cart, not the CD).

 

For BJL, I have some software made for the Jagtopus, as well as an USB adapter to connect to modern PCs which don't have parallel ports. There's a high chance that the software would work with your cart, either as-is (the programming commands are the same on most Flash chips) or with minor modifications. It's not really user-friendly, more like a developer tool, but it works. Let me know if you're interested. (We can discuss the details in private if you prefer.)

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