https://www.youtube.com/watch?v=utrxk5_PeEY
I can't believe this was done in 1991. It looks perfectly modern and is incredibly gorgeous to look at.
The game might look great now, but when it came out it was mind blowing. We'd watch the intro at parties.
I do remember some parts being challenging to time right, but it’s a game… if it was easy it would get boring
In terms of processing power a PC was
far superior to the Amiga and Atari ST
we visited last times. The problem for
gaming was the video which was
extremely slow.
I was going to say, "On what planet was a 4.77 MHz 8088 'far superior' to an 8 MHz 68000?", but then looked up the MIPS-per-MHz figures, and the 8088 was indeed faster. I sure don't remember it that way.(Edit: looks like I was reading the table wrong. The 68000 Dhrystone MIPS score is indeed better by a factor of almost 2x.)
A 33Mhz 486 ran Doom at 7, 11, and 15 fps respectively on three graphics cards.
A 66MHz 486 ran Doom at 8, 13, and 24 fps respectively on the same three cards.
The cards would've been attached with the same bus: 8-bit AT bus at ~10MHz, 16-bit AT bus, and 33MHz VESA local bus. (The 66MHz CPU is "clock doubled" so same equivalence for accessing memory, cache beyond L1, etc).
tl;dr if you had an older graphics card in your PC, it would be the bottleneck and having the CPU run faster may not have helped.
It was an amazing accomplishment because the SNES only had a 3.58 MHz (yes, you read that right) processor, and wasn't afforded the luxury of drawing into a traditional pixel-oriented bitmap (e.g. one byte per pixel).
The code that Rebecca wrote rendered triangles into SNES "chunky planar" format on the fly. The chunks are 8x8 pixel tiles, where the bits of each pixel are spread out across four planes (https://sneslab.net/wiki/Graphics_Format). And all this at 20 FPS, a feat which still boggles me, 30 years on.
I like the comments about how they had to keep optimising because management wanted to save money on the cartridge hardware!
I’ve no doubt it either has already been reposted or will soon be, as apparently ‘tis the season (this is the 2nd or 3rd repost I’ve seen for the series)
As a professional programmer, there's so much to learn nowadays that I wonder how they find the time to invest in time-consuming niche projects which don't lead to directly transferable experience. I also assume that the people (like me) who did play these games are older and busy with other things in life?
Anyway, I think this is awesome that people do that, and it's the spirit of HN. I just wish I had the time...
I did play these games when they were released. And I still find the time to reverse-engineer them :)
Getting the basic game running in shades of gray was relatively little work due to the game being bytecode based (and the great single file example VM implementation from another_js!), but getting the game's 16 colour palette to work with the CGB's 4 colour palettes and still look good is unfortunately a very manual process to work around the limitations of the platform.
Anyway, it is a lot of fun to work on. I'd highly recommend as a hobby project porting it to some other (less constrained) system, or implementing the game's VM in whichever new language you're interested in trying.
[1] https://github.com/cyxx/another_js
There's also a demo of my (private) Another World interpreter compiled to WASM [2]. It bundles the game files of the DOS demo, which means the intro cannot be skipped. My native desktop version supports loading of files from multiple versions of the game (some, like the unofficial GBA version lack support for their music files). Some time in the future I'd like to add support for "uploaded" game files to the WASM version as well.
[1] https://max-m.github.io/aworld/index.html [2] https://max-m.github.io/yaw/index.html
Previous discussion: https://news.ycombinator.com/item?id=21937607