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.
FamiCom CrossFire-an NES with two PPUs
Moderator: Moderators
Re: FamiCom CrossFire-an NES with two PPUs
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.
Re: FamiCom CrossFire-an NES with two 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.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.
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.
Re: FamiCom CrossFire-an NES with two PPUs
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 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.
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.
Re: FamiCom CrossFire-an NES with two PPUs
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".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.
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.
Re: FamiCom CrossFire-an NES with two PPUs
Hi-Def NES has the ability to overclock the CPU.
Re: FamiCom CrossFire-an NES with two PPUs
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.