electrotrains Posted January 27, 2018 Share Posted January 27, 2018 Hi All, Some of you may know me from the Atari 8-bit forum - I've designed a couple of open-source multi-carts for the Atari 8-bit (the UnoCart and UltimateCart). The Atari 8-bit was my childhood home computer, but I picked up a 2600 jr on ebay at xmas, since I fondly remembered playing Combat on a friend's Atari VCS after school. However I thought it would be nice to play some other games and try some of the more recent homebrew creations, and so... Over the last couple of weeks, I've been busy building a version of the UnoCart for the Atari 2600 - The UnoCart-2600. The video below shows it in action (code from a week or so ago - I've renamed it since then!) Like the UnoCart, this is something you can build yourself with minimal soldering. It just requires an off-the-shelf STM32F4-DISCOVERY board, an SD-card breakout board, and a breakout board for the Atari 2600 cartridge slot. Everything can be hooked up with jumper wires. The source code, firmware, breakout-PCB design and (very rough) building instructions are on a new github page for the project: https://github.com/robinhedwards/UnoCart-2600 The cartridge successfully auto-detects and emulates pretty much all the ROM dumps available on AtariMania (with the exception of Pitfall II, since I'm not emulating the DSP stuff). So far, this has just been tested on my Atari 2600 jr - would anybody else be interested in building one and helping me find any remaining bugs in the cartridge emulation? I've got a few cartridge breakout PCBs spare, since that is the only part that is hard to obtain. PM me if interested? Robin 23 1 Quote Link to comment Share on other sites More sharing options...
+ls650 Posted January 27, 2018 Share Posted January 27, 2018 That's cool! Quote Link to comment Share on other sites More sharing options...
SS Posted January 27, 2018 Share Posted January 27, 2018 Very interesting. Are you thinking about making it Melody Board compatible? Quote Link to comment Share on other sites More sharing options...
electrotrains Posted January 27, 2018 Author Share Posted January 27, 2018 (edited) Very interesting. Are you thinking about making it Melody Board compatible? I'm not 100% sure of the details of the Melody board, but the UnoCart-2600 supports all the standard bankswitching methods so should be generally compatible with games designed for the melody I would guess. However, it doesn't support any of the DPC or DPC+ stuff though (which as far as I know is not open source) though I guess could maybe be reverse engineered from the Stella source code? Robin Edited January 27, 2018 by electrotrains Quote Link to comment Share on other sites More sharing options...
electrotrains Posted January 28, 2018 Author Share Posted January 28, 2018 I've started to write up the documentation for the project, but thought it would be useful to post a list of all the cartridge types emulated by the current firmware. I've tested at least one example of all the cartridge types below, but if anybody has anything unusual or hard to find, I'd appreciate a copy. The cartridge uses the detection signatures from Stella to auto-detect the types below from a .BIN, .ROM or .A26 file. Supported Cartridge Types 2K 4K F8 (8K) F8 SC (8K+128 bytes RAM) F6 (16K) F6 SC (16K+128 bytes RAM) F4 (32K) F4 SC (32K+128 bytes RAM) FE (Activision 8K) 3F (Tigervision, up to 64K ROM) 3E (up to 64K ROM, up to 32K RAM) E0 (Parker Bros, 8K) 0840 (8K) CV (CommaVid, 2K + 1K RAM) EF (64K) EF SC (64K+128 bytes RAM) F0 (64K) FA (CBS RAM Plus, 12K + 256 bytes RAM) E7 (M-Network, 16K + 2K RAM) Cartridge types not supported - Activision DSP used by Pitfall 2. Quote Link to comment Share on other sites More sharing options...
Coolcrab Posted January 28, 2018 Share Posted January 28, 2018 Very cool! Got a picture of the board/cart? Quote Link to comment Share on other sites More sharing options...
electrotrains Posted January 28, 2018 Author Share Posted January 28, 2018 Very cool! Got a picture of the board/cart? There's a picture on the github page, which I'll be keeping updated with progress: https://github.com/robinhedwards/UnoCart-2600 I've designed a proper self-contained cartridge PCB too, waiting for them to arrive in the post. Quote Link to comment Share on other sites More sharing options...
SS Posted January 28, 2018 Share Posted January 28, 2018 What if the UNO cannot determine the cartridge type from the file? Like maybe a previously undumped game or new homebrew? Will it "guess" or will it crash? Quote Link to comment Share on other sites More sharing options...
electrotrains Posted January 28, 2018 Author Share Posted January 28, 2018 Well, it will have much the same reaction as Stella would to a new homebrew, since they are using much the same code. But most of the "signatures" in Stella are to do with the actual bankswitch instructions, rather than say checksums of a bunch of ROMs. So in general, Stella will guess right, even if its a new title. However, I've put in an override mechanism by file extension, so if you rename something to CART.F8, then it will always use F8 bankswitching, rather than the auto-detected type. Robin 2 Quote Link to comment Share on other sites More sharing options...
+stephena Posted January 28, 2018 Share Posted January 28, 2018 However, I've put in an override mechanism by file extension, so if you rename something to CART.F8, then it will always use F8 bankswitching, rather than the auto-detected type. This change is actually coming to Stella too; I just haven't gotten around to it yet. 3 Quote Link to comment Share on other sites More sharing options...
RamrodHare Posted January 29, 2018 Share Posted January 29, 2018 This is interesting. My question is, How does this compare to the Harmony Encore, as far as cost? I can see this being a fun project to build, but cost would be a major factor. The Harmony Encore comes ready to use, where this requires some work. If you could create the same thing for the 7800, That would indeed be VERY interesting. 3 Quote Link to comment Share on other sites More sharing options...
CPUWIZ Posted January 29, 2018 Share Posted January 29, 2018 Cool, where is the source? 1 Quote Link to comment Share on other sites More sharing options...
RamrodHare Posted January 29, 2018 Share Posted January 29, 2018 Cool, where is the source? https://github.com/robinhedwards/UnoCart-2600/tree/master/source 2 Quote Link to comment Share on other sites More sharing options...
electrotrains Posted January 29, 2018 Author Share Posted January 29, 2018 This is interesting. My question is, How does this compare to the Harmony Encore, as far as cost? I can see this being a fun project to build, but cost would be a major factor. The Harmony Encore comes ready to use, where this requires some work. If you could create the same thing for the 7800, That would indeed be VERY interesting. The STM32F407 DISCO board is available in the UK for about £15. A SD card breakout board is about £5. The only other thing needed is the 2600 breakout board - I got a bunch made for £10. So the total cost of the hardware is about £30 (probably about $35). But its more about the fun of building something, and having access to the source code so you can change it or improve it. Robin 3 Quote Link to comment Share on other sites More sharing options...
RamrodHare Posted January 29, 2018 Share Posted January 29, 2018 So the total cost of the hardware is about £30 (probably about $35). It's closer to $43, but that's still not that expensive, unless these same pasts can't be sourced in other parts of the world. Shipping would quickly become cost prohibitive. Still, I'm really happy that you've created this. As I mentioned before, if you ever decide to make a version for the 7800, I'm sure there will be a lot of us building them! Quote Link to comment Share on other sites More sharing options...
alex_79 Posted January 29, 2018 Share Posted January 29, 2018 Cool project! I have an Harmony cart, but I also like diy projects like this and I might give it a try in the future. Thanks for sharing! The STM32F407 DISCO board is available in the UK for about £15. A SD card breakout board is about £5. The only other thing needed is the 2600 breakout board - I got a bunch made for £10. So the total cost of the hardware is about £30 (probably about $35). You could just remove the rom chip from a common game and use that as the breakout board. Quote Link to comment Share on other sites More sharing options...
towmater Posted January 29, 2018 Share Posted January 29, 2018 Do you think an STMF3 would suffice? And... (I know I'm pushing it) what would it take to make this 7800 compatible? Quote Link to comment Share on other sites More sharing options...
electrotrains Posted January 29, 2018 Author Share Posted January 29, 2018 (edited) Do you think an STMF3 would suffice? And... (I know I'm pushing it) what would it take to make this 7800 compatible? An STMF3 would probably suffice for the 2600, however you'd need a chip with enough RAM, which pushes you up the range a bit. I'm supporting up to 32k of cartridge RAM, though as far as I know only the boulderdash demo uses 16k, and nothing uses 32k yet. The STM32F4 could support up to 128k RAM maybe more, if I shifted the ROM storage over to the internal flash (its also running from RAM at the moment). Mainly, I used a STM32F4 because I was already familiar with it (having used it for the Atari 8-bit, where a STM32F3 would almost certainly not do). Plus, you can buy a STM32F407 from ebay for less than £4, which makes producing this as a stand-alone cartridge pretty cost effective anyway. EDIT - oops forgot to answer the question about the 7800.... The 7800 wasn't really a thing in the UK - I don't remember ever seeing one anyway, and I've only been developing mulit-carts for systems that I have some connection with. Having said that, if somebody in PAL land wants to donate me a 7800, I could see what I could do! Robin Edited January 29, 2018 by electrotrains 3 Quote Link to comment Share on other sites More sharing options...
electrotrains Posted January 29, 2018 Author Share Posted January 29, 2018 Actually, reading up a bit more on the 7800, it seems I'd need to emulate pokey for it to be a decent multi-cart. The probably means I'd want to use an FPGA, rather than a MCU, so I'd probably base a 7800 multi-cart on my Ultimate Cart design, rather than the UnoCart. I've already tried using foft's VHDL pokey in the Ultimate Cart, and it works very well - see: https://atariage.com/forums/topic/250996-easter-holiday-project-dual-pokeys-on-an-ultimate-cart/ But FPGA carts are a lot of work - the Ultimate Cart took over my life for several months, so I think I'll probably leave this one for someone else (though happy to help out along the way). Robin Quote Link to comment Share on other sites More sharing options...
electrotrains Posted February 1, 2018 Author Share Posted February 1, 2018 Hi all, My PCBs arrived this lunchtime, so I took the afternoon off to solder the bits on and see if the design worked. Happy to say it does . So I can enjoy playing games on the 2600 without worrying the kids are going to knock one of the wires off the development/breakout board version. I've got some spare PCBs (HASL coated, so not for long term use - HASL isn't very durable for edge connections), which I can build up into cartridges, if anybody is interested in helping me test and doesn't mind covering the cost of the board/parts (about £15). Next step - a nice 3d printed shell... Robin 2 Quote Link to comment Share on other sites More sharing options...
electrotrains Posted February 1, 2018 Author Share Posted February 1, 2018 some more pics 6 Quote Link to comment Share on other sites More sharing options...
DirtyHairy Posted February 2, 2018 Share Posted February 2, 2018 (edited) This is a very cool project! Regarding DPC: Kevin Horton's breakdown of bankswitch schemes is pretty much all that is needed, but I also took a look at Stella's source for some edge cases.The source of my implementation in 6502.ts is here if you need another reference As for DPC+ and CDF, there is indeed nothing out there detailed enough for emulation out there other than Stella's source and my implementation (which is modeled after Stella's). The 6502.ts versions are here (CDF) and here (DPC+); my modified version of Thumbulator (the ARM core) is available here. However, those don't cover everything; in particular, interrupt driven audio is committed in the emulation (as the emulated ARM core runs in zero 6502 time), but Spiceware or cd-w could certainly fill you in on those I feel the itch of getting a board and start toying with the firmware and cartridge emulation myself, but I realistically don't have any time left However, if you have questions, feel free to drop me a line. Edited February 2, 2018 by DirtyHairy 3 Quote Link to comment Share on other sites More sharing options...
Mr SQL Posted February 2, 2018 Share Posted February 2, 2018 Awesome project! Do you plan to add support for SuperCharger format? The Harmony supports the binaries but not loading them from tape or ipod like the previous multicarts did. I think that would be a great feature to add to a multicart; fun to browse games using your phone as a wired remote. 1 Quote Link to comment Share on other sites More sharing options...
Thomas Jentzsch Posted February 11, 2018 Share Posted February 11, 2018 (edited) I am late to the party, but this looks like a really cool piece of hardware. I especially like that the menu is not flickering, is that 6507 code running? And what are your plans for navigating through lots and lots of games? Edited February 11, 2018 by Thomas Jentzsch 1 Quote Link to comment Share on other sites More sharing options...
electrotrains Posted February 11, 2018 Author Share Posted February 11, 2018 Hi Thomas, Thanks! But the menu is flickering though, its just my TV + camera does a good job of masking it. Joystick up/down moves up and down, left/right pages forwards and back, and of course you can use directories to help arrange things. I love your conversion of Thrust by the way, it is probably my favorite title I played while testing the cart and I'm definitely planning to return to it - I'm sure it is way better than either the ZX Spectrum or Atari 8-bit versions from back in the day. Robin Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.