Jump to content
  • entries
    143
  • comments
    451
  • views
    174,012

Chimera Teaser (Part 2)


mos6507

888 views

chimera_transparent.gif

 

Here is another Chimera teaser for you.

 

Ever since the end of the summer, Delicon and I have been hashing out a hardware specification for this cartridge. We knew we didn't want to do audio loads. We wanted to do serial. Serial would be easier to implement. Audio loads would probably have required a more complicated programmable logic chip like what is in the Cuttle Cart. That would be too expensive. With serial, we could use a dedicated microcontroller on the cartridge which had serial built-in. Some microcontrollers have other features as well, like integrated flash memory or other peripheral support.

 

So we started to look at the Philips LPC range of processors. These are ARM7 variants, similar to one of the CPUs that is in the GP2X. For the technically minded, you can look up the datasheets on these.

 

We are currently planning to use the LPC2103.

 

1188_lo.jpg

 

 

 

Here is a block diagram:

 

002aab814.gif

 

Yes, we're talking about strapping a 70mhz 32-bit system-on-chip style processor onto a 1.19mhz 6507.

 

OK, your first reaction to this must be:

 

WHAT.... THE.... F**K????

 

My response:

 

In 1977, a 6507 was cheap.

 

In 2006, this is cheap.

 

By using the ARM, we are able to reduce the custom logic down to two smallish CPLDs and a few support chips.

 

cmp-xc9572.jpg

cmp-xc9572.jpg

 

You'll notice that the ARM has two UARTs. So games will load automatically via serial. One of the UARTs supports hardware flow control. We are planning to provide an efficient way for VCS games to use both UARTs. New kinds of games could now be possible that use the serial ports. For instance, linking consoles via the internet, or interfacing serial mice.

 

Another big features we want to support has another mythical name: Ouroboros. You can probably figure out what it means from this picture:

 



ouroboros-alchemical.gif

 

We'll also provide a lot more than 6K to work with. We're currently planning to use a 128K SRAM chip. You'll probably have 64K for game code, and 64K for Ouroboros data. That's per-load. You'd still be able to overwrite any or all of that memory with each successive random-access load.

 

Also, it would be a tragedy to put a chip like this on the cart and not be able to use it as a true coprocessor.

 

We've spent most of the last few months trying to figure out how we expect to wring the most power out of this chip without incurring a lot of extra cost.

 

We think we have a viable strategy now. We just have to create a proof of concept which we can hopefully demonstrate soon at a convention.

 

I think the end result may be something like the Atari 2600 equivalent of the Sega 32X, a platform on top of a platform. It's more than just extra memory. The processor in the cart is going to be able to do some heavy lifting. When you code for Chimera, you will be writing for two architectures at once that cooperate together, either with built-in library functions that the ARM provides, or maybe even routines custom to your game. This may be a refreshing change for hackers who thought they'd already done it all for the VCS.

 

If you want to just write a single-load Supercharger game, you can do that. But if you want to expand outward, the extra memory and the extra features will be there for you to play with.

 

With every Chimera sold, either the standalone or preloaded homebrew, we add to the total number of users who can play Supercharger games. But also, by making sure that even homebrew games that only need the core Supercharger support have full latent Chimera capability, we are also seeding the new Chimera platform. We hope that this helps encourage Supercharger homebrews in addition to Chimera homebrews that exploit some of the Chimera-specific features.

 

Stay tuned for more details.

 

chimera1-a.jpg

6 Comments


Recommended Comments

Not sure how you're expecting to do the thing cheaper than my 4A50 cart, unless you have someone assembling your stuff for free. My 4A50 cart consists of an XC9536XL CPLD, a 32Kx8 RAM, a 128Kx8 flash, a 14.3818Mhz oscillator, and a 3.3 volt regulator. That's all. Somehow you can use two Xilinx chips that are larger than mine, plus a microprocessor, and still come out cheaper? I'd like to know how you manage that.

Link to comment

How do we manage it? This is a charity project. In the end I expect to lose money on this. So the numbers don't have to add up the way you expect.

 

The standalone Chimera will be packaged and sold directly through me. I expect to break even on these.

 

The embedded carts will be offered wholesale well below cost so that finished homebrew games can be sold at reasonable cost and still allow for some profit-taking, just not by us.

Link to comment

Not sure how you're expecting to do the thing cheaper than my 4A50 cart, unless you have someone assembling your stuff for free.

Delicon can assemble surface mount stuff.

 

Anyway, I don't know how I missed this. I think that using an ARM is a great idea - This is my favorite modern architecture.

 

But I wonder - using GPIO and FIQ's, I suspect that you could implement just about any bankswitching scheme in software. Well, at 70 Mhz, you'd need some careful ASM programming and may need to count cycles (hard because of the pipeline) or you could spend a little more and get a faster chip. If your ARM has an MMU, this might help too.

 

Probably all irrelevant now that the design has progressed somewhat.

 

For comparison, the ARM devkit I work with has a 533 Mhz chip (Xscale, but ARM architecture nonetheless.) Well, this chip isn't that cheap, but it is smokin' fast for a chip that uses 1.8 watts. There might be something in between.

Link to comment

Not sure how you're expecting to do the thing cheaper than my 4A50 cart, unless you have someone assembling your stuff for free.

No one has suggested this. I dont think this cart could ever undercut your costs, that is not the purpose. We are offering a SuperCharger replacement that offers some enhanced features. We have two separate project.

 

As far as assembly, I will be assembling the carts. I am fairly efficient when it comes to surface mounting by hand, but I will be switching to a batch assembly for this project. This should reduce my involvement, and allow me to hand off the assembly process to an untrained person fairly easily.

 

Anyway, I don't know how I missed this. I think that using an ARM is a great idea - This is my favorite modern architecture.

 

But I wonder - using GPIO and FIQ's, I suspect that you could implement just about any bankswitching scheme in software. Well, at 70 Mhz, you'd need some careful ASM programming and may need to count cycles (hard because of the pipeline) or you could spend a little more and get a faster chip. If your ARM has an MMU, this might help too.

We tried a design that directly connects the ARM to the address bus of the VCS. We ran into some issue. One is the ARM7 cannot wiggle I/O very fast. Using Philips fast I/O helped a lot, but that leads to another problem. The ARM7 cannot react fast enough to external interrupts. The VCS clock cycle is about 850ns. An FIQ can take that long to react. So I tried a polling method. This was faster, but still only gave the ARM a couple instructions to perform a task. This would be ok if all you want was to just be a bankswitcher. But even this failed sometimes, thats how close the timing was. All this testing was with a 60MHz ARM7. Moving to the 70MHz would have gotten rid of the failures, but still wouldnt be enough to let us add any additional features.

 

For comparison, the ARM devkit I work with has a 533 Mhz chip (Xscale, but ARM architecture nonetheless.) Well, this chip isn't that cheap, but it is smokin' fast for a chip that uses 1.8 watts. There might be something in between.

Sounds like you are using an ARM9. I suggested this as a possible development path, but we decided not to try, mostly because of cost and my lack of experience in designing an ARM9 circuit (I have never done it before, I am sure I could do it, just might take a little bit). I would still like to give this a go at some point in the far future.

 

As far as needing two CPLDs, unfortunately, this is necessary. One CPLD handles SRAM access arbitration between the VCS and ARM, and one handles the SuperCharger bankswitching. The arbitrator allow both the ARM and the VCS to access the SRAM concurrently, a sort of pseudo dual port SRAM access. The SuperCharger banking was unfortunately large than I initially thought, counting off the top pf my head, it uses at least 30 registers. Unfortunately these designs are fairly large and could not be combined into one medium sized CPLD. We could go to one large CPLD, but this costs more than two separate smaller ones. Two separate ones gives us other advantages, which may become more clear as development progresses (maybe dynamic bankswitch changes!).

 

Vern

Link to comment
No one has suggested this. I dont think this cart could ever undercut your costs, that is not the purpose. We are offering a SuperCharger replacement that offers some enhanced features. We have two separate project.

 

As far as assembly, I will be assembling the carts. I am fairly efficient when it comes to surface mounting by hand, but I will be switching to a batch assembly for this project. This should reduce my involvement, and allow me to hand off the assembly process to an untrained person fairly easily.

 

I wasn't implying that you were trying to undercut me. Rather, I was hoping you'd tell me of some wondrous place that can fab and assemble your boards for $2.00 each, so then I could make my carts for $12.00 and sell then for $15. Not that I'd net even minimum wage for my efforts, but I'd have at least a paper profit.

Link to comment
Guest
Add a comment...

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