←back to thread

320 points UnmappedStack | 1 comments | | HN request time: 0.209s | source

Hi there! I've been on-and-off working on TacOS for a few months, which follows some UNIX-derived concepts (exec/fork, unix-style VFS, etc) and is now able to run a port of Doom, with a fairly small amount of modifications, using my from-scratch libc. The performance is actually decent compared to what I expected. Very interested to hear your thoughts. Thank you!
Show context
xhrpost ◴[] No.43787034[source]
Slight tangent but I've wondered about something similar to this, has there been much initiative to make games that directly boot on modern PC hardware? So not load a full OS but just go directly to the game. Similar to older generation gaming consoles. It should be possible, granted if you want to stay simple, things like wifi, bt, GPU would be hard to utilize without modern drivers, but a keyboard and mouse should be fairly doable as they seem to have some sort of default BIOS access? (probably wrong terms there but hopefully my point is understandable)
replies(1): >>43788065 #
1. dmwilcox ◴[] No.43788065[source]
I don't know if it's been much used but it is known and works. I was doing this early on in my x86-16 assembler experiments but ended up using DOS as a program launcher for an easier emulator to use than qemu (dosbox-staging).

The big limits if you don't want to get into disk IO, is 512 bytes or less since you're basically running your program as a master boot record. To get more you'll need to load some LBAs from disk which yes there is an interrupt for and osdev has even better stuff.

Other than that, the difference between a .com file (usual limit 64kb single segment) and an MBR style bootable program is pretty minimal