blargg wrote:Who knows, maybe Nintendo went with the 65816 rather than the 68000 because they had envisioned NES compatibility.
Or developer compatibility.
By using a similar scheme as the NES, all the NES developers would be able to pick up the SNES more quickly. Same for the graphical scheme, which is quite similar.
That's what I thought as well. And probably the biggest reason why the Hudson chose to go with a 65x variant processor for the PC-Engine over a 16bit bus processor (as both the 16bit graphic chips support full 16bit data bus mode processor interface as well).
And the PC Engine has more colors but only one tilemap, and 8KB of RAM, and an 8-bit CPU, besides the fact that nothing was known about the SNES (was it even in active development or just research phases?).
I don't see what that has to do with Sega's decision on CRAM?
Like I said, it's very possible that CRAM memory actually ate up a lot of space on the die. CRAM memory needs to be fast so it's probably SRAM, which is usually implemented using complex gates (e.g. NOR gates), which eat up quite a fair share of transistors and thereby space. VSRAM may be the same too, which may explain why it has its own memory instead of being stored in VRAM (which is a separate chip in the original VDP).
And? By comparison, it's still only bytes, not kilobytes more (or more precisely, bits. I highly doubt CRAM is 16bit wide, but more likely 9bit internally). I highly doubt it would have broke the bank or come anywhere near that, to include another 64 entries of 9bit SRAM on the chip. Giving sprites access to either block and each layer access to either block. No external DAC needed.
Anyway, wasn't this thread originally about which system is easier to program for? Or did I miss something?
Not which is better, but which is easier or more straight forward:
Genesis:
68k;
A very lovely cpu. The instruction set is very powerful in that you don't have to write a lot of small logic. This translated into speed, of course, if it matches to what you need to accomplish. And at other times, it can be slow. But the main point, is that it's very nice. The addressing modes (EA) being the real bread and butter, IMO. Follow very closely with a straight linear address range. No banking or mapping. Pure bliss. I have to say, from the small projects I've done on the 68k - it was like I was on vacation (coming directly off of a 65x project). The downsides were small. Minding your WORD and INT boundaries, small set of address registers (depends on how you code, on the 65x I use a lot of ZP just for address registers - making the 68k feel a little cramped to me in that regard), and unable to create equates for address names (probably just a limitation of the assembler I used). The last one made my code less clear (again, coming from 65x my address regs had corresponding names and even normal zp variables did - ZP being uses a data register VS 68k's use of Dn, by comparison).
VDP;
Everything is straight forward. Nothing felt convoluted or restricted, much. You have a wide range of sprite sizes for any SAT entry. Tilemaps were easy to setup. Tiles and sprites used the same cell format. You're a little restricted as to where to place the tilemap pointers, but no a problem really. The only thing that I disliked, was the convoluted vram address setup for the COMMAND port. Not sure WTF they were thinking there. It was a real pain/chore first time around, getting used to it. Given how powerful the instruct set it, linear address range, powerful addressing mode, etc - makes it perfect for something like a C compiler. But where's the fun in that??? C for these old consoles? Pfft.
Sound;
Didn't really do anything in this department, but reading over the DOCs - the 2612 looks fairly simple to use (interface with, that is).
z80;
Haven't touched it yet. I've done some z80 work in the past, and it is what is it. Can't say that I'm a fan of the z80 ('cause I'm not

), but you're not going to be doing a lot with this little as either way.
SNES:
sPPU;
Very convoluted IMO. Lot of strict limitations too on the layout of things (tiles, sprites, formats, etc). Strange, both convoluted, kind of a mess, and strict about layouts, and yet very powerful and a lot of features.
sCPU;
It's 65x. Like all 65x based/similar processors, you need to learn to cut on teeth on these. In general, the processor itself isn't that hard to learn (IMO), but becoming really proficient is a whole 'nother story. You can really get some speed out of this arch, but the code almost always results in a convoluted mess of near unreadable code to most other coders. One of the reasons I love this processor. The rewards are worth the labor. But for any sort of speed related programming, definitely *not* a beginners processor. C compilers also suck for this arch (and understandably so).
SPC/DSP;
Haven't touched either. Sound registers look straight forward. I like the instruction set of the little processor

I'd honestly take a 7.16mhz version of that little 8bit processor over the funky slow banked '816 as the main console processor, but that's just me
