Second Hand Computer Q&A

Welcome to Second Hand Computer's Q&A. This post will be updated to add new questions I am asked with any frequency. I'll start with common ones I've been asked before the program's release.
Firstly...
Why Do It?
I wanted a fantasy computer that simulated the -feeling- I had with the first computer or two I had at home, back in the early ‘90s. As a result (more details below) it’s a sort of amalgamation of various computers.
Despite this being the early ‘90s for me (rapidly the era of Commander Keen and Wolf3D), growing up in a family without much money meant I mostly got second-hand hand-me-down machines, years out of date by the time I got my hands on them.
The machines I used, which this is a blend of, include an IBM Personal Computer XT (featuring GW-BASIC 3.22), a Commodore PC-10, and a 386sx/25 which was assembled from random parts, including an AT case it was hacked into not dissimilar to the one in Second Hand Computer.
Technical Questions
First, let’s get the “AHA! You got this WRONG!” things sorted.
Which languages can I program in it?
For now, you are limited to programming in Lua.
Can I edit my programs from outside SHC?
Yes! The writable D: drive contains the files you've been working on. The text editing tool in Second Hand Computer is incredibly minimal (though not as bad as EDLIN, which I was stuck with), so using a modern editor with those files is recommended. Just ensure your files are saved in ASCII format, not UTF-8.
The screen looks wide! Why is it the wrong aspect ratio?
Correct. And yet, also… not correct. What I wanted to do was emulate pretty closely the look of text-mode displays on the EGA/VGA cards I spent most of my younger years using. This meant IBM Codepage 437 font, and an 80x25 character screen size.
The problem is that most of the time those displays didn’t use square pixel aspect ratios. Being a 2d Pixel-art program and not a 3d rendered one, I couldn’t stretch the display out to match that. Which left me with two choices: firstly, throw another row or two on the bottom, to make it 80x27 or something. That might have looked right at a glance, but it would also make the actual display not match what was expected when porting or replicating certain text mode programs.
The other alternative is what I ended up doing - simply let the screen look a little wide. The reason I went for that option was partly to keep the 80x25, but also because the game is designed for a 16x9 (or similar) display, so the wide look seemed aesthetically nice.
That BIOS is anachronistically new for a 386, isn’t it?
Yes. But that’s the look of the BIOS I am most nostalgic for (it’s the one I used on a later 486dx2/66 I owned) and given this is not a simulator but a fantasy… why not grab the aesthetics I most like from various machines, and blend them together?
Why is there no GW-BASIC clone on this? FT-BASIC or something?
I looked at existing line-number BASIC implementations I could poach for this, but found none that did quite what I wanted. So I decided to write my own implementation in C++. Which it turns out takes more time than I have to spend on this project. So expect it in a coming update.
Why are you working on a line-number BASIC and not a more modern dialect like QB64 or my_basic?
Partly because line number basic is what I’m nostalgic for, and party because you can already write text mode games/programs using Lua within Second Hand Computer. So if you want a more modern language (well, sort of modern), Lua will probably do a better job.
Did you make this in Unity, or…?
I’m not that masochistic. It’s made using my own custom engine, Sapphia, which is SDL3 based and written in C++20. It was made over the last few years and this is the first program released using it.
How does the program actually work?
This program began as a way to let people play Swords of Freeport, a terminal-mode game I made a few years ago, in a graphical mode. This presented a problem for me - the program was entirely written in terminal mode C, routinely pausing operation for the user to press a key or enter some text.
As a result, the only reasonable way to run this without altering thousands and thousands of lines of code from the original game was to run it, and any other terminal-style text programs, in a secondary logic thread.
To avoid adding the horrors of multi-threading bugs, I didn’t allow the logic thread to directly change anything on the terminal’s screen. This meant creating something akin to a very (very, VERY) simple version of a VT100 style terminal protocol, where commands are buffered and executed before rendering the screen by the program’s main logic thread.
This results in a few graphical quirks, like the odd visual stutter. Some of them I plan to fix, and others I plan to leave in, as they add (I think) to a weird charm the system has.
There is another interesting quirk of the terminal command buffer system it uses - that if I wanted to, and had the time, I could probably have it modify its commands and spit them out to a serial or telnet post using something akin to VT100. So who knows, in future there may be a way to plug in a vintage terminal to the program and use FT-DOS that way!
Will you add a graphical mode to render sprites?
No. It’s possible, of course, but there are already so many very good graphical fantasy computers and fantasy consoles, I’d rather keep Second Hand Computer doing just the one thing I originally intended it to do - be a small, programmable text-mode computer.
Can I do low level (assembly) programming or similar?
No. The "computer" in SHC isn't simulated to that level of precision.
General Project Questions
What are your plans for this project going forward?
As always, this depends on how many people end up using it. It is being released with a (minimal) cost, as I unfortunately do need to pay rent and spent a lot of time on it. I plan to add more small games to it, fix bugs, and do other things as I find the time for it.
But if there is a fan base that throws enough financial support behind it, then I’ll be able to spend more time on it.
In terms of a roadmap - the main thing I plan to add is a BASIC interpreter for it, and some nicer features for the very minimal text editor it ships with.
Can I make my own custom “rooms” instead of the default one?
Yes! Please do. On the itch page you will find an example room to drop-in and modify into your own custom one. Obviously, you are free to distribute your work, and are encouraged to do so.
Why is there a pride flag in the default room options?
Because I’m queer and I wanted to.
Second Hand Computer
A digital toy and fantasy computer for text-mode games.
| Status | In development |
| Author | Funtime Electrics |
| Tags | Fantasy, fantasy-console, Retro, Text based |
Leave a comment
Log in with itch.io to leave a comment.