So why didn't Nintendo use dual-ported video RAM?

Discuss hardware-related topics, such as development cartridges, CopyNES, PowerPak, EPROMs, or whatever.

Moderators: B00daW, Moderators

psycopathicteen
Posts: 3001
Joined: Wed May 19, 2010 6:12 pm

So why didn't Nintendo use dual-ported video RAM?

Post by psycopathicteen »

http://en.wikipedia.org/wiki/Dual-ported_RAM

It is a RAM chip that could be read by the VDP/PPU while being written to by the CPU at the same time.

Were these too expensive, or did they only come in PC compatible pinouts?
Drag
Posts: 1350
Joined: Mon Sep 27, 2004 2:57 pm
Contact:

Post by Drag »

It'd probably be too expensive, and I imagine you'd have a lot of pins to deal with. The technology also may not have existed at the time, but this is just my speculation.
User avatar
qbradq
Posts: 952
Joined: Wed Oct 15, 2008 11:50 am

Post by qbradq »

Dual-ported SRAMs are still quite expensive, BTW.
psycopathicteen
Posts: 3001
Joined: Wed May 19, 2010 6:12 pm

Post by psycopathicteen »

If VRAM was cheap enough, they could've designed an entire VDP by stringing a bunch of VRAMs together.

pixel counter > tile map address
tile map data > tile pattern address
tile pattern data > color address
color data > output
User avatar
clueless
Posts: 496
Joined: Sun Sep 07, 2008 7:27 am
Location: Seatlle, WA, USA

Post by clueless »

Assuming that you are writing a contiguous set of tiles (especially vertically), it is faster to allow the PPU to auto-increment the destination address. If you had direct access to the VRAM, updating rows and columns of tiles would generally be slower.

We gain this optimization at the expense of being able to efficiently access the VRAM randomly.
User avatar
qbradq
Posts: 952
Joined: Wed Oct 15, 2008 11:50 am

Post by qbradq »

Let's also not forget that we can use DP-SRAM for NES projects today. They would need to be placed on the cart, and the mapper would have to support mapping the secondary port of the VRAM into the CPU address space.
User avatar
Dwedit
Posts: 4470
Joined: Fri Nov 19, 2004 7:35 pm
Contact:

Post by Dwedit »

Didn't the Amiga just run its RAM at twice the speed of the CPU? Then the support hardware (video, sound, etc) could access memory every other clock cycle. No need for dual porting there, or even separate memory.
Here come the fortune cookies! Here come the fortune cookies! They're wearing paper hats!
tepples
Posts: 22345
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Post by tepples »

Dwedit wrote:Didn't the Amiga just run its RAM at twice the speed of the CPU?
Yeah, and so do the Apple II and C64. But these systems also have far less color definition than the NES, which needs to access video memory at 2.7 MHz to keep the pixel pipe fed.

A mapper that maps, say, a 1 KB window of VRAM into CPU address space would need a lot of pins, on the order of MMC5, so that it can control all of the VRAM's address lines and insert the writes between the PPU's reads.
User avatar
MottZilla
Posts: 2835
Joined: Wed Dec 06, 2006 8:18 pm

Post by MottZilla »

Pure and simple, it would have cost too much. You might as well ask why didn't they put a 68000 cpu in the NES as it is the same answer. It may be so that the technology didn't exist at the time either but assuming it did then cost would have been the reason for sure.
Drag
Posts: 1350
Joined: Mon Sep 27, 2004 2:57 pm
Contact:

Post by Drag »

MottZilla wrote:Pure and simple, it would have cost too much. You might as well ask why didn't they put a 68000 cpu in the NES as it is the same answer. It may be so that the technology didn't exist at the time either but assuming it did then cost would have been the reason for sure.
You know, now that you say that, I've always wondered why they used a 6502 instead of a z80, especially seeing as how their arcade games used them. :P
tepples
Posts: 22345
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Post by tepples »

Let me hazard a guess: A Z80 would have made it too obvious that Nintendo was homaging the ColecoVision :P

But more likely, a 6502 core takes far less space on the CPU die than a Z80 core, and the space they saved let them put the APU on the same die.
User avatar
Bregalad
Posts: 8036
Joined: Fri Nov 12, 2004 2:49 pm
Location: Caen, France

Post by Bregalad »

I think the MMC5 has internal dual-ported SRAM for ExRAM.

Also I think that even if you have dual ported SRAM, there is issues if you try to acess the same adress from both sides at the same time.

The C64 have that "even-odd acess cylces" method to simulate random accessible VRAM, but then the CPU runs at about 0.9 MHz, almost half of the NES, which is really bad.
Last edited by Bregalad on Tue Apr 05, 2011 3:51 am, edited 1 time in total.
Useless, lumbering half-wits don't scare us.
User avatar
Jeroen
Posts: 1048
Joined: Tue Jul 03, 2007 1:49 pm

Post by Jeroen »

MottZilla wrote:Pure and simple, it would have cost too much. You might as well ask why didn't they put a 68000 cpu in the NES as it is the same answer. It may be so that the technology didn't exist at the time either but assuming it did then cost would have been the reason for sure.
Don't forget that the Famicom was originally built to play stuff like "Popeye" (japanese launch title) And was never intended to do the stuff people eventually made it do.
socram8888

Post by socram8888 »

MottZilla wrote:Pure and simple, it would have cost too much. You might as well ask why didn't they put a 68000 cpu in the NES as it is the same answer. It may be so that the technology didn't exist at the time either but assuming it did then cost would have been the reason for sure.
The 68000 did exist at the time. My old book about Microcomputers from 1976 already talks about it

But it don't mention the price :/
tepples
Posts: 22345
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Post by tepples »

The Apple Lisa computer had a 68000 CPU clocked at 5 MHz and came out six months before the Famicom.
Post Reply