The Polygons of Another World: Super Nintendo
fabiensanglard.net
fabiensanglard.net
The SNES supports SlowROM and FastROM but, interestingly, its internal memory is "SlowRAM". This seems like it would significantly bottleneck the system's performance. I guess "FastRAM" was just too expensive.
Another World uses SlowROM, so almost everything in the system is slow. It's a clever trick to use the DMA registers as a tiny amount of "FastRAM" and run code from there.
Something similar has been done on the Game Boy Advance - it's faster to run code out of Video RAM than directly from ROM or (the majority of) normal RAM.
how much this actually was, I don’t know. Burger Becky mentioned begging her boss to use Fast ROM when interplay made RPM Racing but was also denied.
The trade offs of 1991!
Edit: of course Nintendo wasn’t as cost constrained. It was never an even playing field for 3rd parties
Instead of fancy locked cache or other cache tricks, the PS1 and PS2 also had scratchpads that ran at full speed. 1K for PS1 / 16KB for PS2. Very useful.
So basically every 12 bytes, you get 4 bytes that are no longer usable before the next 12 bytes.
I haven't actually looked at this game's code, but it's certainly clever if the author found a way to avoid having to perform unconditional jumps in there that would sacrifice most of the gains in performance.
430B 3D -- -- -- -- cmp eax dead32 # only affects flags
4310 xx dowhatever
See, eg: http://www.muppetlabs.com/~breadbox/software/tiny/revisit.ht... , where it's used to skip over a mandatory header field.It should cost about the performance gain from two of the effective instructions.
$4317 mvn src,dest
$431a rts
Each of `src` and `dest` is either $7e or $7f, so this code performs a RAM-to-RAM memcpy.I guess it's easy to judge this 25 years later with all we know now. That was a very cool idea to have implemented back then! Putting the mvn there would definitely be a boost compared to having the mvn be in a slow ROM area (6 master clock cycles per byte transferred.)
She also did the 3DO and Apple IIgs ports
Correct me if I’m wrong, but isn’t it more a 65C816 than a 6502? Granted, the 65C816 was a better 6502, but IIRC, it’s closer to the former than the 6502.
It has the same 24-bit address space as the early IBM 360 mainframes, the 80286 and a handful of other systems. It's much less cramped than the 16-bit environment of the 6502, the PDP-11, etc.
It's easy to underestimate the 6052 because other chips (the 68k) series are better on paper. However, interrupt handling is fast and DMA efficient so it is a good match to the family computer role.
Apple thought that the Apple ][ would be rapidly out of date so it rushed ahead with the failed Apple ///, the Lisa, Macintosh, etc. They did not realize the ][ was going to last as long as it did, otherwise they would have prioritized the Apple 2gs -- rather than the Mac which had two near-death experiences before the company became the leader in mobile.
-join Nvidia "the way it's meant to be played!" "marketing program" receiving ton of $, in return drop DirectX 10.1 support making the game 20% slower on ATI/AMD https://techreport.com/news/14707/ubisoft-comments-on-assass...
-join Nvidia "the way it's meant to be played!" "marketing program" receiving ton of $, in return tesselate the SHIT out of everything, go deeper than pixel count, and dont forget to tesselate ocean under the level https://techreport.com/review/21404/crysis-2-tessellation-to... ~30% drop on AMD hardware!
-partner with Nvidia to get your game bundled, in return implementing GameWorks slowing down ATI/AMD users by up to 50% https://arstechnica.com/gaming/2015/05/amd-says-nvidias-game... https://blogs.nvidia.com/blog/2015/03/10/the-witcher-3/
This is industry today.
The SNES has a completely separate audio subsystem, with 8 16bit PCM channels, with its own CPU and RAM purely dedicated to sound generation.
That's… not English she's speaking there. I think it was something containing 「日本語をわかりますか」 but would have to check the video again.
Edit: Typo.
EDIT. I suspect Burger also did the 3do port, by the way.
Unsure about the 3DO port, probably not. I am juggling pet projects right now. If I ever look at an other version I would go first for the GBA since the author sent me the source code and it will be easier to look at.
Maybe someone else will do the 3DO analysis? With an emulator it is not hard to look at how it works.