Sarge wrote:That being said, I do wish the SNES had a beefier processor.
The SNES CPU is a really weird compromise. The fact that Nintendo went with a CPU with a 6502 8-bit compatibility mode suggests they were thinking about backwards compatibility. I don't know if they just got late in the game and realized they didn't have time or money to finish implementing backwards compatibility and so were stuck with their CPU choice or if it was never an option and they evaluated the CPU completely on its 16-bit merits.
I'm wanting to say that the 65c816 was chosen both for that reason, and that there was a supply and they had a relationship with the supplier. It was probably also thought that, given the architectural similarities to the NES's chip, that it would be easier for devs to move over to it.
According to some of what I've been reading, it didn't actually make things much easier, if at all. The CPU has a lot of delays on various modes of memory access. And the APU had a completely dissimilar ASM requirement for programming. You can program that CPU in C. There were available compilers. But that would only help really for core program loops. All the graphics code would have to be custom ASM. So basically, when programming for the SNES, you had to use CPU ASM or C, graphics ASM, and audio ASM. But I also know that C compilers back then were pretty inefficient, so better results would always be had from doing ASM directly on the CPU. But stuff like collision detection is stuff they probably wouldn't try to do in C. Collision detection routines are pretty basic code, and should probably have been available in ASM. And it's collision detection that is almost always the culprit for slowdown when there's lots of stuff on-screen.
This was one advantage for the 68000 in the Genesis. It was VERY C friendly. It was designed to be easy for compilers to compile C code for.
Also, I might be talking out of my ass about the 85816. It's not a popular chip and so analysis of its capabilities is unreliable on the internet... Apple chose it for the IIGS so they'd have something to hold them over till the Macintosh was released, and the IIGS was deliberately designed so that it wouldn't be better than the Mac in any way.
I found an article mentioning Lucas Arts using Konami's ZAMN engine for one of their games. I'll try to find where I've heard about games that copied from Gradius 3. If I can't find an internet source, I'll post some disassembled code.
Doing SNES homebrew, something that is a huge limitation that doesn't get brought up a lot is VRAM size and DMA speed. Only 16kB is available for sprite animations, and only 4kB-5kB can be updated per frame.
Also, sprite patterns are arranged in a grid of 32 rows and 16 collumns, and you need to update 2 rows for 16x16 sprites and 4 updates for 32x32 sprites. You can get more sprites in by uploading several sprites at once, but I managed to get up to 4kB of individual 16x16 sprites per frame through a lot of optimisations.
How I got around these limits was I only update sprites when they need animation updates. I keep track of how much gets updated in one frame. If there is more than 4kB a frame, then it updates the sprites animation until next frame. Then it checks to see if there's already a copy of that sprite in VRAM, so that you can have copies of the same enemies and explosions without taking up more space. Then the sprites get stored in vram as a combination of 32x32 and 16x16 sprites cells. I have 24 designated slots for 32x32 and 32 slots for 16x16. The only downside is I haven't implemented anyway for animation frames to share sprite parts, or have copies of the same sprite parts within an animation frame.
Of course, I'm only doing this because I want a lot of smooth animation onscreen at once. Developers probably thought it wasn't a big deal because they thought the CPU wouldn't be able to handle the physics of the sprites anyway.
I don't like Wind Waker nearly as much as I remembered, as I outlined in the review I just posted. That's probably a pretty unpopular opinion, even with myself given how near-perfect the game was to 13 year old ElkinFencer.
Exhuminator wrote:Ecchi lords must unite for great justice.
ElkinFencer10 wrote:I don't like Wind Waker nearly as much as I remembered, as I outlined in the review I just posted. That's probably a pretty unpopular opinion, even with myself given how near-perfect the game was to 13 year old ElkinFencer.
Interesting.
When I played Wind Waker HD a few years ago, I ended up liking it even more than I did when I first played Wind Waker on Gamecube back at launch.