From PS4 to 1.44 MB Floppy: Porting Retro City Rampage to MS-DOS [video]
I love writing code for old PCs. A couple of years ago i wrote a 3D maze engine in C that i wanted to run in the original IBM PC i was building (here is a video from running on a 286 <a href="https://www.youtube.com/watch?v=tfbQIvRYph4" rel="nofollow">https://www.youtube.com/watch?v=tfbQIvRYph4</a> with turbo turned off, i also managed to make it run in the IBM PC but that was some months later after i built it and didn't took a video). The renderer basically rasterizes sideways trapezoids in a column edge (top bottom) array and then draws it (the height also acts as an one dimensional depth buffer). It took me a while to make it run in interactive speeds, originally needing several seconds to draw each frame. I tried a bunch of methods and i ended up generating machine code for drawing 4 columns (CGA packs 4 pixels in one byte) for different heights in one go with a small post step to fix (clear/draw) the few individual pixels for each column in the batch and keeping the height and colors for the previous frame so that only changed columns are being drawn. I wanted to make some sort of turn-based dungeon crawler, although it would be a sci-fi one set on the moon :-P. I moved since then and my IBM PC is still in boxes since i do not have much space available (and i might move again soon so i don't want to unbox it because i had some professionals package it to avoid any damages).<p>I also made a small "hunt the wumpus"-ish game for CGA too <a href="http://runtimeterror.com/games/cgacave/" rel="nofollow">http://runtimeterror.com/games/cgacave/</a> - this time the shots are from my IBM PC and not the 286. Also as a bonus a small program i wrote in Delphi 1.0 in Windows 3.1 to create the tiles :-). I've actually done a bunch of stuff in Delphi 1.0 because is a nice middle road between retro and modern (considering that i do a lot of "serious" stuff in Lazarus anyway). Last year i wrote a 3D editor for Windows 3.1 on it (<a href="http://i.imgur.com/eG34QXV.png" rel="nofollow">http://i.imgur.com/eG34QXV.png</a> and <a href="http://i.imgur.com/BZz6f9l.png" rel="nofollow">http://i.imgur.com/BZz6f9l.png</a> the second one took a 486 laptop i have here some hours to render :-P).<p>I have a bunch of other stuff on my YouTube channel, most are random things i'm working on but i also have a few retrocoding works like another 3D maze in VB1 <a href="https://www.youtube.com/watch?v=CxhXjkogahs" rel="nofollow">https://www.youtube.com/watch?v=CxhXjkogahs</a> (i extended that a bit later <a href="http://imgur.com/gJXwCoj" rel="nofollow">http://imgur.com/gJXwCoj</a> but got bored after a while) and an ultima-like engine <a href="https://www.youtube.com/watch?v=vXRjdbUjZX0" rel="nofollow">https://www.youtube.com/watch?v=vXRjdbUjZX0</a> (this one has its own scripting language, image editor and map editor too - you can see them here <a href="https://www.youtube.com/watch?v=W70_G9LeByE" rel="nofollow">https://www.youtube.com/watch?v=W70_G9LeByE</a>) which i've managed to run in my 286 too with an IBM CGA monitor (the 286 has an EGA compatible graphic card with a CGA compatibility mode... sadly it is 16bit ISA and it doesn't work on the IBM PC because i'd like to have an IBM EGA card - and an IBM EGA monitor, but those are <i>very</i> rare and even more expensive).<p>Bonus photos from my IBM PC (without the monitor, i took those before i finished building it):<p><a href="http://i.imgur.com/506cuFP.jpg" rel="nofollow">http://i.imgur.com/506cuFP.jpg</a><p><a href="http://i.imgur.com/4tEvp24.jpg" rel="nofollow">http://i.imgur.com/4tEvp24.jpg</a><p><a href="http://i.imgur.com/8bz9IdR.jpg" rel="nofollow">http://i.imgur.com/8bz9IdR.jpg</a><p>Also i have and collect a bunch of old development software (mainly from ebay), including Borland C++ 5, C++ Builder 1, Visual Basic 4, Visual Basic 5, Klik&Play (including the manual), Delphi 2, JBuilder and some other things i forget. I usually image those to play around in VMs and keep the disks on my shelf.<p>Interestingly enough i found a couple of those actually useful (specifically Borland C++ 5 and C++ Builder) and i'm now using for beyond just playing around (mainly Borland C++ 5 because the IDE is lightning fast for compiling C code). Also i wrote a few patches for old games with C++ Builder which made it deal because of the small executable size and being able to design the window visually :-).