FamiCom CrossFire-an NES with two PPUs

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

Moderator: Moderators

User avatar
Fodelao
Posts: 6
Joined: Thu May 05, 2022 11:07 pm

Re: FamiCom CrossFire-an NES with two PPUs

Post by Fodelao »

It seems to me that what you are trying to do is the same as what has already been done by NEC with the pc engine. Supergrafx, as far as I know, is, roughly speaking, exactly that. It is a pc engine with the addition of a previous identical PPU, that is, supergrafx is a pc engine with 2 PPUs.
One improvement I would like to see in a nes would be the speed increase, as I think a lot of games were much better if they had extra speed. This is noticeable if you play super mario bros 3 from nes and right after super mario world from snes. You'll notice that SMW is much faster and more fluid, although SMB3 itself is more fluid than the vast majority of nes games.
Equally, a faster and more fluid kirby's adventure would be a much better game too.
So I have the following question: would a considerable increase in speed and fluidity in games be possible merely with the addition of PPU or would a more powerful CPU be needed?
And also adding another CPU? Have you considered adding another CPU as well? Would this be possible to do without compromising compatibility with legacy nes/famicom games?
I ask this because, in the example of supergrafx, the graphical improvements of this by adding another PPU in relation to the pc engine are almost imperceptible to the less attentive player. That is, in this case of supergrafx the addition of another PPU was not worth the effort because the few games created for the console do not bring any improvement that justifies their creation.
Andy18650
Posts: 43
Joined: Sat Mar 26, 2022 9:58 pm

Re: FamiCom CrossFire-an NES with two PPUs

Post by Andy18650 »

aquasnake wrote: Mon May 09, 2022 8:27 am I just don't suggest you do 4K(2K or even less) PRG bank switching mode. Of course, you can try it if you think my suggestion makes you feel more challenging
I never planned to do less-than-8K PRG banking. The reason is... 8K banking can be done with just one 74LS670 chip. It is just so convenient! However, I'm having trouble about whether to implement 1K or 2K CHR banking.
Andy18650
Posts: 43
Joined: Sat Mar 26, 2022 9:58 pm

Re: FamiCom CrossFire-an NES with two PPUs

Post by Andy18650 »

Fodelao wrote: Wed May 11, 2022 3:30 pm It seems to me that what you are trying to do is the same as what has already been done by NEC with the pc engine. Supergrafx, as far as I know, is, roughly speaking, exactly that. It is a pc engine with the addition of a previous identical PPU, that is, supergrafx is a pc engine with 2 PPUs.
Everyone is talking about this project being identical to SuperGrafx or even the SNES. However, I just think that this is exactly the reason why such projects never went forward far besides being talking about once every several year. There are some differences, though. The SNES's two PPUs are not identical and work more like a 'chipset' to create a render pipeline (I think the reason that there are two PPUs is just die size limit). The Supergrafx use a seperate PPU to mix the output of two PPUs while the FCCF use 2c02's built-in 'daisy chain' feature.
Besides, even if NEC or Nintendo did use the same 'daisy chain PPU' mechanism as FCCF, I still think FCCF is worth making. Because the 2c02 has the 'daisy chain' feature and it just doesn't feel right to me that NONE of the millions of units produced used it! The world is lucky to see the answer of 'what if the PC Engine has 2 PPUs?' And I believe that it deserves an answer to 'What if famicom/NES has 2 PPUs?'
I'm neither expecting nor aiming for a major performance boost (SFC/SNES is the choice if you want that). What I wish to see is a 'finer' FC/NES with a few improvements such as being able to use the promary PPU to display large objects while the second displays a background, allowing better-looking boss fights. (Nearly all 'huge boss' fights on FC/NES has black background since the playfield is used for the boss object). True parallax scrolling should also be easily achievable, too.
Andy18650
Posts: 43
Joined: Sat Mar 26, 2022 9:58 pm

Re: FamiCom CrossFire-an NES with two PPUs

Post by Andy18650 »

Fodelao wrote: Wed May 11, 2022 3:30 pm One improvement I would like to see in a nes would be the speed increase, as I think a lot of games were much better if they had extra speed. This is noticeable if you play super mario bros 3 from nes and right after super mario world from snes. You'll notice that SMW is much faster and more fluid, although SMB3 itself is more fluid than the vast majority of nes games.
I agree. A faster CPU does increase the performance. However, overclocking the C/APU on the NES is next to impossible since it is tied to the master clock that is tied to... well, everything. Plus overclocking (maybe even underclocking) the C/APU may result in instabilities since the chip is not designed to run at any other clock speeds, unlike a standard 6502.
Fodelao wrote: Wed May 11, 2022 3:30 pm Would this be possible to do without compromising compatibility with legacy nes/famicom games?
From my experience, I would not say it is impossible... But I would say it is extremely hard since you would need to live-switch between two 20+MHz clock signals while following all timing restrictions. Running the whole system just under the higher clock speed is a big no since it will make games run much faster and even render some of them unplayable. (This is before the common prectice of using a hardware timer for synchronizing the gameplay)

And I want to challenge the idea that the FC/NES is 'bottlenecked' by the CPU speed. Yes I did say that a faster CPU will result in better game performance. However the question is: by how much? The SMW's fluidity can also be attributed to the higher versatility of the SFC/SNES's PPU. The FC/NES already had one of the fastest 6502 core (1.66/1.79MHz) of all 8 bit machines of its time, second to only the 2MHz BBC micro. Plus there are few things like cycle-stealing or DMA to slow the CPU down. Furthermore, from my knowledge it is very hard to perform a kernel (Atari's term for a CPU-driven/heavily CPU-assisted graphics) on a FC/NES, nor does the FC/NES has a CPU-driven DAC for wavetable synthesis like the Tandy Coco. Therefore a faster CPU may not result in better graphics/sound.
The real bottleneck, in my opinion, is the Vblank time, or rather the amount of information that can be moved between CPU memory and PPU memory within that time (i.e. 'VRAM bandwidth'). Increasing the CPU speed (by raising the frequency) is a solution, but a way simpler one is the 'nametable DMA' that I proposed eariler.
lidnariq
Posts: 11432
Joined: Sun Apr 13, 2008 11:12 am

Re: FamiCom CrossFire-an NES with two PPUs

Post by lidnariq »

Andy18650 wrote: Sun May 15, 2022 11:33 pm I agree. A faster CPU does increase the performance. However, overclocking the C/APU on the NES is next to impossible since it is tied to the master clock that is tied to... well, everything. Plus overclocking (maybe even underclocking) the C/APU may result in instabilities since the chip is not designed to run at any other clock speeds, unlike a standard 6502.
Some people have experimented with feeding the 2A03 its own (faster) clock. It's been many years since I read about it, but I think I remember 150% overclocks being a fairly consistent "this is where it stops working".

Come to think of it, the overclock limit might not be the 2A03 but the 2C02's touchy timing. A much more sophisticated clock generator might slow down just access to the PPU and speed up every other access. An interesting project, unrelated to yours, to dig in to some day.

Obviously the music becomes higher pitched when the 2A03 is overclocked.
User avatar
Ben Boldt
Posts: 1149
Joined: Tue Mar 22, 2016 8:27 pm
Location: Minnesota, USA

Re: FamiCom CrossFire-an NES with two PPUs

Post by Ben Boldt »

Hi-Def NES has the ability to overclock the CPU.
User avatar
Fodelao
Posts: 6
Joined: Thu May 05, 2022 11:07 pm

Re: FamiCom CrossFire-an NES with two PPUs

Post by Fodelao »

Ben Boldt wrote: Tue May 17, 2022 8:30 am Hi-Def NES has the ability to overclock the CPU.
Interesting, and what was the result?

Performance has improved dramatically
with the use of this overclock?

I remember seeing an overclocked mega drive once and the console I saw just didn't have any slowdowns (example: there is slowdown on the original console when too many coins appear on the screen in Sonic 2, but not on this overclocked console).

For the rest, the performance had not changed. The changes were not clear, the movement in Streets of Rage 1 remained a stutter as it originally is.

Perhaps the extra fluidity I'd like to see in some nes/famicom games is only possible with a change in programming as well.

For example, it has come to my attention that a South American guy recently optimized the Gradius programming of the SNES and the result was an infinitely superior fluidity and speed in the hack rom he created, as friends of mine who played told me.

Unless mistaken, he achieved this by reprogramming the game to use one of the special chips that were on some SNES cartridges but not present in Gradius.

That is, in the example I mentioned, there were changes in the hardware (the special chip) but it was necessary to change the programming as well.

In this way, I see that increments in games that already exist on new hardware would be possible only with rom hacking, and not in official unmodified games. As for official games, maintaining compatibility is quite a feat.

Am I correct in my reasoning so far?

Finally, I wonder what is the ambition of creating this famicom with 2 PPUs. Just provide superior scrolling and increase the limits of sprites drawn on the screen or is there some big improvement that I didn't see?

I like the idea and am curious.
Post Reply