kar1181
Joined 14 years ago
Joined 14 years ago
Not just rewrite the interrupt handler either, can rewrite the timer itself :)
Part of the fun of real-mode is the absolute god like power you have. Downside is the 20bit segmented memory model.
THAT is part of the issue with it though, those length debugging sessions where you prod and poke and have to hold complex interactive segments in your head is what gives you that deep understanding of a piece of software. You do lose that when you throw the AI at it. This is part of my motivation for handwriting 'offline' all my code for these types of project. Have a doc to work from but otherwise wetware is doing the heavy lifting.
This isn't efficient use of time at all and professionally a dead end. But as a pasttime/hobby for an enthusiast it opens a door that would be closed (project like yours and indeed mine) while still having it grounded in our own work.
Sadly this sort of thing is much easier now - thanks to the tooling. I speak from personal experience, I'd written some stub 32bit os' myself (by hand, pre-ai) and it is very fun. But you quickly run into walls that stop further development that aren't fun. I enjoyed poking at VGA registers, the 512 byte boot sector into real mode into protected mode dance. Setting up the global descriptor tables/page tables and the PIC/8042 controller.
But...then you get into protected mode you get a prompt up some very basic memory management and then TERMIOS...boring. Boring. Defining all the posix syscalls, boring. Building test harnesses ... boring.
Oh I need a DMA controller now because PIO is slow, FUN!!!
I've taken my toy os to basically Linux 2.0 level in a few weekends by throwing tokens at boring things and when I got to the end it was a little bit empty because although the kernel of the system was all me, and it very much was built on the skeleton I arranged I didn't understand bits now that while boring were important. And the magic ... was lost.
I'm working on a new version now where my rule is I hand type every line of code and I co-plan with the AI and write from my head. It's so slow going but the fun is in the problem solving and the design and by hand writing you keep enough of it in hand it feels yours and real.
Anyway this is a cool project, I hope the author enjoyed it and learned something, but this is the new normal now, powerful tooling means things that were novel are tokens away and so they lose some of the magic accordingly.
Then the multiplayer - lived in the sticks had a 33.6k modem - ping times on a good day of 300ms. Even with all the limitations (and lack of any sort of predictive netcode) that was it, a very expensive (we paid by the minute for phone bills!), game!
Later teamfortress came out from the guys at RMIT in Melbourne who later went on to Valve (Robin Walker/John Cook from memory) and TF set the bar for so much to come.
I know a lot of folks recommend masters of doom for the atmosphere at ID during quake's difficult development, but actually Michael Abrash's graphics black book (free on github - https://github.com/jagregory/abrash-black-book) is an even better companion, still a wonderfully readable book today, but captures the mindset of the development that we can take much from still. Indeed Abrash's anecdote about sliderule jockey's in the day of pocket calculators rings very true today as we grapple with the impact of AI on our work.
How many of us can thank our careers to id for hooking us on computers and things like quakec and even quake2's game dll source and later full engine sources.