This article has multiple issues. Please help improve it or discuss these issues on the talk page . (Learn how and when to remove these messages)
|
Second Reality (originally titled Unreal ][ - The 2nd Reality) is an IBM PC compatible demo created by the Finnish group Future Crew. It debuted at the Assembly 1993 demoparty on 30 July 1993, [1] where it was entered into the PC demo competition, and finished in first place with its demonstration of 2D and 3D computer graphics rendering. [2] The demo was released to the public in October 1993.
It is considered to be one of the best demos created during the early 1990s on the PC; in 1999 Slashdot voted it one of the "Top 10 Hacks of All Time". [3] Its source code was released in a GitHub repository as public domain software using the Unlicense [4] on the 20th anniversary of the release in August 2013. [5]
Second Reality consists of many effects that were popular in demos at the time, such as real time 3D graphics, scaling and warping of images, and Moiré patterns. Notably, it is also synced to the background music, which was uncommon at the time of its release.
The demo can be started with command line arguments 2-5 to start from different parts of the demo. Furthermore, starting the demo with argument "u" will show an effect with stars moving towards the screen.
Analysis of the source code also disproved speculation that Second Reality uses its own memory manager that accesses the MMU directly; it uses standard DOS memory management functions. [6]
Second Reality was designed to run on an Intel 80486 (although it can run on 80386 machines) PC with a Gravis Ultrasound or a Sound Blaster Pro (or register-compatible clone). In the original version which was released, the demo had a bug which caused a slow down. A patch was later released to rectify this problem. [7]
There were many legends about Second Reality using an elaborated memory manager via the MMU but there is no trace of this in the engine. Memory management is actually delegated to DOS : The engine starts by deallocating all the RAM and then distribute it on demand. The only fancy trick is the ability to allocated RAM from the end of the heap: This is done using the return value of DOS malloc when too much RAM is requested.