MS-DOS is Cross Platform
May 2, 2023Cross platform programming is a labour of love. It’s also requires a large time investment to get it right, so you should only do it if you really need to. There are many technologies available to help you on that journey; if you are building an application, then you’ll probably take a different path than if you are programming a game, and it’s the latter scenario that I would like to dig into a bit.
Let’s suppose you want to program a small game that doesn’t require easy access to 3D hardware, fancy input devices, or the Internet. Okay, I probably lost most of you right there, but for those that are a tiny bit intrigued, let’s continue.
I have a lot of nostalgia around the MS-DOS platform. It was not the first platform on which I began programming, that honour belongs to the Atari 800 XL, but it was still a lot of fun to use and explore. Compared to desktops nowadays, it is obscenely limited, but back in the 80s/90s it felt quite the opposite. MS-DOS is a 16-bit operating system and native access to memory beyond 640 kilobytes was the stuff of fantasy. Luckily, that limitation was relatively short lived, and you could access heaps of memory (get it?) by leveraging DOS extenders, such as DOS/4G, DOS/32, or CWSDPMI. If they packed the right set of low level features, these run-time utilities were all enabled by your friendly 386 CPU, and allowed the adventurous programmer to enter protected mode and access much more memory. It is worth mentioning that 286 CPUs did support protected mode but they lacked important features, so it was never heavily adopted
Once you jumped the hurdle of available memory, there were other lions that would be programmers needed to tame. They also had cope with performance differences between CPUs (with or without co-processors), sound hardware, hard-drive storage (or lack thereof), video hardware, and input device support. Phew. As a result of all this variability, many MS-DOS compatible games were faced with cross-platform challenges on the same, err, platform.
Unfairly, this wasn’t an issue when faced with game console development. The company promoting a console could always choose to add new hardware, such as steering wheel for racing games or new ways of visualizing content, or even additional performance, but it couldn’t do so in a way that would break existing applications. Note that this isn’t necessarily true for consoles built in the last 20 years. For these machines, the hardware remains compatible, but the software involved could change a lot, which would require game developers to retool their application from time to time. That train of thought is inconvenient right now, so we won’t talk about that messy bit of reality for now.
During the 8- and 16-bit era, game consoles provided a stable environment to build games. This stability lead to lower production costs and faster delivery times. In reality, many companies chose to release their games on several different platforms which dirties the delivery waters a bit. We will sweep these software development complexities under the rug as well since the porting strategies used did not impact their code-base in the same way as cross-platform development would affect their projects today. For example, many companies had distinct implementations for each platform, and code reuse was the exception rather than the rule.
Ironically, given the eccentric nature of MS-DOS in its heyday which lead to all sorts of programming headaches, it’s surprising that using a current incarnation of MS-DOS today produces such a stable environment. All you need is the right level of abstraction. Sure, you could always choose to support MS-DOS and all of its gory hardware configurations, or you could target one configuration and enjoy all of that sweet compatibility. What is this magical solution? Well, this paradise of splendour can be had by leveraging emulators like DOSBox. Yes, the solution to the fragmented environment that is an MS-DOS gaming machine is the venerable DOSBox. It is an excellent way to release your game on dozens of platforms without writing a lick of extra code. Want to run your game on Linux? No problem. What about Mac? No problem. Any console with an open development environment and suitable performance characteristics can (and likely does) support DOSBox, or one the excellent downstream projects like DOSBox-X. This means, your game can run on all of those supported platforms too. Go on, grab some MS-DOS development tools and get coding!
Categories: DOS, Programming, Retro
No Comments »
Retro Computing and Space
April 21, 2023Space is always one your most valuable assets in your home. Sufficient space can allow you to build and manage large projects, showcase large collections, and provide you with a host of entertainment options. Anyone who has a home, be it an apartment, small house, or a large suburban palace, understands how quickly that space can become occupied. I am always fighting this problem. I need to periodically optimize my project space by selling, reorganizing, and discarding household items. My wife and I have a long standing agreement that most of our house is off limits for my own projects. That doesn’t mean we can’t use that space for projects that we both want to build, but it generally means my retro computing hardware, maker equipment, and other toys are confined to the basement. This suits me fine most of the time since our house is fairly spacious. In some cases, however, I need to think outside the box if I want to setup some equipment, or showcase a collection, when space is at a premium.
Enter my fledgling Amiga hobby. Despite owning an Amiga 1000 computer for several years, I have had little opportunity to use it. I have used emulation in place of the real thing, but in the last six months, I have really had an itch to use the real hardware. As is the case for many older computers, the complete machine takes up a lot of space, and that space is currently being used by other machines. Even though I have painstakingly eliminated several pieces of equipment over the years, through attrition or acts of God (freak electrical storms), I am still fighting for each additional foot of space I manage to free up. You can see lots of YouTubers who are single men, or married men with no kids, or simply folks with lots of free space, having numerous machines setup, fully kitted out, and ready to go at a moments notice. I am not in that situation. As a result, I decided to take a different tactic with my Amiga hardware. Since I now own an Amiga 1000, Amiga 500, and an Amiga FPGA device called a Minimig, I knew it was time to find a solution…
Categories: Reflections
No Comments »
Atari 2600 RGB Mod
March 20, 2022I installed an Atari 2600 RGB modification to my 4-switch console a few weeks ago, and it works like a treat. I use it in conjunction with an 8-pin mini DIN to Euro SCART cable. I then plug that cable plus the audio cable from the modification into an OSSC converter box. The resulting picture quality is crisp, vibrant and breathtakingly beautiful on a 46″ LCD television. Well, as beautiful as you can get, given the limitations of the console hardware.
Categories: Atari 2600, Hardware
1 Comment »
The Witcher Blues
February 15, 2022I am playing The Witcher: Enhanced Edition for the PC. Given the very basic nature of the models, textures, music and sound effects, I am grateful that Steam offered the enhanced version to play. I do like the story and even the stilted conversations in the game, but not a lot else. The editing and scene transitions are atrocious. Of course, my evaluation is tainted by the games I have played recently, which are orders of magnitude more advanced in every way. Despite the blandness, I will try to finish it before my wife and I settle in to play Horizon Forbidden West for the PlayStation 5.
Categories: Games, Steam
1 Comment »
R.I.P. Game Guides
September 13, 2021I have been playing Assassin’s Creed: Valhalla lately on the PlayStation 5 and I noticed that there were no official game guides for it on Amazon. I thought this was odd since there are many things to find and unravel within the game which would surely be enough content to warrant a guide. Some time later, I visited the in-game store and found all kinds of downloadable patches that could alter the game and give you content that you would typically find in a game guide, such as location maps for items and such. Obviously, this is the reason why there are no official guides, since Ubisoft wanted to leverage the power of in-app purchasing and make money directly off of these hints, rather than split the profit with the publisher for the guide. Don’t get me wrong, it’s a good strategy and I don’t necessarily disagree with it, even if it costs me more money. The in-game location maps for Vahalla, which could have built-in filters and search features, deliver a better experience than having to flip through pages of a game guide. Naturally, it is a bit of a balancing act, since many gamers want to feel like they own the complete experience for a game once they pay the sticker price. If some content feels like it should have been part of the official release and not as a separate download that must be purchased later, then the model has crossed that line. There are several games available that follow that model to its inevitable conclusion, where the core game is free, but any additional features or content that presumably make the game more interesting, must be purchased separately.
Categories: Games, PS5
No Comments »
Happy birthday to the Legend of Zelda development team!
August 22, 2021Unusually, the release date for this game in North America appears to be under some debate with some sources listing it as being released in June, July, or August. I chose the latter since it was the only entry listed with a specific day. The Japanese release was in February 1986, over a year earlier.
Before this game, I had played text adventures, Dungeons and Dragons over e-mail, and one or two “RPG adventure” titles on the Atari 2600. I have long been fascinated with the genre as RPG elements and action are two of my favorite themes in a video game.
Categories: Games, NES
No Comments »
Playing Deadlight on the PC
April 1, 2020I have been enjoying Deadlight on the PC. It’s a beautiful little action platformer with relatively simple mechanics, albeit with a frustrating mechanism when shooting and loading a pistol. It’s simple to shoot, but difficult to get the aim right. Luckily, most targets are large and relatively easy to hit. I hope there isn’t an upcoming situation where I need to shoot something in a hurry…
While reading some comments about the game the other day, it seems a lot of people had difficulty around the helicopter scene. Based on the comments, they seemed to found the difficulty spike to be out of the blue, to the point where the shock of it caused many of them to stop playing the game cold turkey. They just aborted it, claiming the scenario was unreasonably challenging. The thing is, I found it tricky too, but only for a short while. I needed to try it several times before I finished it. The point is that I did get through it, even when I screwed up one section royally and thought for sure I was a goner. Just to prove it wasn’t a fluke, I tried it again and completed it with no issues.
The comments in the thread seem a little too caustic, given the games average difficulty level. I am left wondering about the psychology at play here. If a game has established an easy to moderate level of difficulty, and then it bumps the difficulty up a few notches out of the blue, what does that do to the player’s opinion of the game? Are they statistically more likely to drop the game at this point? Do the majority push through these hiccups? Are players nowadays just a tad spoiled in our expectations around the difficulty of a game, once our notions about a title have been established?
Categories: PC, Reflections, Steam
No Comments »
Dead Space on PC
March 28, 2020I finally had an opportunity to play and finish Dead Space for the PC. I had a lot of fun playing this game, and while the camera took some time to get use to and the VSYNC bug that took some time to diagnose, neither detracted measurably from the overall game play experience. I am not going to do a review on this game since the world doesn’t need another one of those. What I have been thinking about, though, is giving you a persona based list of key gaming elements that may help you decide if you want to play it:
- Jumping about in 3D space doesn’t make you queasy (you will literally be jumping about in space with no gravity).
- You like being told what to do and bossed around.
- You can continue to snack while walking through pools of blood and guts.
- You like games that allow you to kill things with visceral tools like bolt guns, saws, and fire.
- You like it when you are low on ammo and there are baddies around the corner.
- Detailed space ship environments make you happy.
- You enjoy long load times as it gives you an opportunity to reflect on how you buggered it all up.
Categories: Games, PC, Steam
No Comments »
Playing Chrono Trigger cartridge on the SNES!
February 17, 2020My wife is enjoying this great game using our Analogue console on the big screen. I love this new take on hardware for such a classic console.
Categories: SNES
No Comments »
Just plain old “Wolfenstein” on the PlayStation 3?
January 11, 2020I picked up this used game on Amazon the other day for a steal. I had no idea it even existed before I stumbled upon it being mentioned in one of my favourite game magazines, Retro Gamer. Anyway, I am currently playing Wolfenstein: The Old Blood on my PC and loving it, but perhaps not quite as much as Wolfenstein: The New Order, we shall soon see how it stacks up as I get closer to finishing it!
Categories: Games, Playstation
No Comments »