TempleOS General

  • 🐕 I am attempting to get the site runnning as fast as possible. If you are experiencing slow page load times, please report it.

CrunkLord420

not a financial adviser
Forum Staff
True & Honest Fan
kiwifarms.net
Joined
Jul 22, 2017
In honor of the 2nd anniversary of Terry Davis' death I'm working on a game for TempleOS. I want to invite others to do the same. I've had a week or so head start so let me share some advice.

VMware is basically a requirement. Virtual Box has significant performance issues and QEMU has bizarre mouse+keyboard interactions (at least on my machine). VMware also has the best PC speaker. You can transfer files on and off your TempleOS box by either mounting the VM disk image to the host (vmware-mount, kpartx, etc) or using the Mfa utility that comes with Shrine (I've only been able to get serial to work properly in QEMU, something to do with the interrupts I think). I encourage you start with the stock build of TempleOS for a true experience, I ended up rolling my own distro that I'll probably release later.

Terry did a great job documenting everything, you'll end up spending time in the F1 menu but once you get the hang of the keybinds it's really not that bad. I encourage you to look at his demo games, maybe just start by modifying an existing one. HolyC is comparable to regular C, and terry's "standard library" includes most of the things you'll want, although sometimes things are oddly named.

Terry uses mostly DOS/Windows-style keybindings, but here's some non-obvious/important ones to get your started:
Shift+ESC: Abort+Close
ESC: Save+Close
Ctrl+Alt+X: Kill Task
Ctrl+Alt+T: New Term
Ctrl+Alt+N: Next Term
Alt+H: Tile Horizontally
Alt+V: Tile Vertically
Alt+M: Maximize
Ctrl+R: Sprite Menu
Alt+A: Autocomplete
Ctrl+D: File Navigation Menu
Shift+Ctrl+F: Recursively search for strings
Shift+Alt+A: Disable Autocomplete
Shift+Ctrl+FKeys: Jump to Definition
Alt+Backspace: Undo

There's no hard date for entries into the gamejam. Terry died on August 11th and that's when I plan to release my game.

Here's some inspiration
 
Last edited:
Shout out to trapexit for adding #TempleOS:matrix.kiwifarms.net to the templeos.org website. Obviously not an endorsement but it's cool to be listed on the main domain.

Also cross-link to BlazeitFgt for the sake of thread completeness: https://kiwifarms.net/threads/blazeitfgt-a-templeos-game.74700

I'm currently playing around with setting up a 6DOF camera system. It would be cool to add like a X-Wing style section to BlazeItFgt, or maybe it should be it's own thing. Whatever, I just want to learn more math.
 
Last edited:
It's not very user friendly but God drew this neato picture in the bottom of my screen to obstruct my view.
gods os.png
 
News Update, International Edition

Rendello made a nice tutorial, definitely useful for beginners

ZenithOS has been removed, and now re-added to GitHub for the 3rd time

Chinese person makes video about TempleOS and Terry, partial translation of Fredrick's documentary

Spanish person makes a video explaining CIA NIGGER

Vietnamese person makes short tutorial on TempleOS, featuring patriotic American wallpaper

Spanish person makes a short overview on TempleOS

I'm still working on my alternative 3D graphics implementation


=Mostly Done, but not final=
-Perspective Projection
-LookAt-based Camera for FPS rendering/controls
-Quaternion-based Camera for 6DOF (aka Descent-style) rendering/controls
-F64-based 4x4 matrix
-Model*View*Projection pipeline

=In Progress=
-New optimized drawing pipeline with
-Improved lighting system with support for pre-computed normals

=Maybe=
-SIMD (SSE2) support for math functions

Divine Justification
"I use fixed-point in Circle(), Ellipse(), Mat4x4MulXYZ(), Mat4x4MulMat4x4New() and others. God says I might want to change to float." --Terry, PersonalNotes.DD:308

"SIMD in Mat4x4MulXYZ?" --Terry, PersonalNotes.DD:306

"GrFillTri0() with both GrHLine() and GrVLine() don't match in ::/Demo/Games/CastleFrankenstein.HC causing wall spot pixels." --Terry, PersonalNotes.DD:113

"I'm a little bit unhappy with the graphics package, in terms of perfecting the Temple" --Terry, https://ia800600.us.archive.org/31/items/TerryADavis_TempleOS_Archive/videos/2018/2018-03-25T01:51:01+00:00 - Terry Davis's broadcast (X9IAVas7uzo).mp4 @ 9:36 / https://youtu.be/LTiRWN5T0Gw?t=578
 
Last edited:
Everything in TempleOS is purely software-based rendering. It's part of it's appeal IMO. I don't see TempleOS or even ZenithOS ever getting hardware accelerated graphics.
Well, if you need some atrocious 200MB monstrosity it's obviously off the table. But if you could JIT into some kind of generic GPU assembly that would be kinda cool. I don't think that's possible though.

If you want to use the really cool CPU features like AVX512 that's pretty ugly too, since you either need to add another implementation for old CPUs or just require everyone to have recent Xeons.

Any Biblical precedent for this?
 
SSE2 should be universally supported on every x86-64 CPU ever made (starting with the Athlon 64). AVX was added later, so supporting it would require a run-time (or compile-time since it's JIT) CPU check and I don't know if that's supported anywhere. I don't really know the status of running TempleOS natively on a brand new system in 2020. It was written for a pre-UEFI world and I don't know what impact that's made.
 
Well, if you need some atrocious 200MB monstrosity it's obviously off the table. But if you could JIT into some kind of generic GPU assembly that would be kinda cool. I don't think that's possible though.

If you want to use the really cool CPU features like AVX512 that's pretty ugly too, since you either need to add another implementation for old CPUs or just require everyone to have recent Xeons.

Any Biblical precedent for this?
Well, the thing is, If I am not mistaken, much like modern CPUs have different internal instruction sets behind an x86-64 frontend, GPUs have their own instruction sets that vary from architecture to architecture. Nevertheless, hardware acceleration isn't completely off the table. You could just use VESA 2.0 features which should be supported by any GPU that's at least from around 1999. Even EGA has some basic hardware scrolling support, enough so that you don't need to deal with as much bit shifting mess as you'd normally do on CGA or Tandy. It's only with sprites that you'll need to do that. Of course, if you don't want to stick with NES or Master System tier sprite counts and sizes and go Neo Geo mode but with much less colors, there won't be much of an improvement. But something like the first two Contra games should work fine, despite what the legit DOS port might suggest. VESA 2.0 does have proper scrolling support according to Wokipedia, where you change the screen viewport, as well as hardware blitting, so you can go Neo Geo or even Super Scaler mode if you wish to do so. Did God say anything about using VESA 2.0 features directly without the OS assistance?
 
Hey everybody I lost the link to the chatroom, I haven't forgotten about TempleOS, I've been working and stuff. It's good to see that Crunklord420 has been doing neat things, I haven't tried out your other game yet. I've been studying Elliptic curves and have been messing around with some HolyC. I really need to setup a github and post my code there, I'm a bit boomer tech-ish these days. I want to do some more videos about the demo code in TempleOS, I've been working on Primes.HC.Z under MultiCore, but there's something about it that has me hung up.
 
Riddle me this. I was working on some code and decided U64 would be better than I64. One piece of code loops infinitely, one does not.
I don't know if I found a bug in HolyC, i need to login to freeshell.org and see what gcc does with it.

U0 Main() {
U64 j,p=11;
for(j=p-1; j>=0; j--) "%d\n", j;
}

U0 Main2() {
U64 j, p=11;
for(j=p-1; j>0; j--) "%d\n", j;
}
 
Hey sorry for necroposting, my autistic friend recently wrote a HolyC compiler called 3Days, he basically ported the whole TempleOS kernel and DolDoc to a runtime(HCRT), and wrote a loader to load the runtime and run TempleOS programs. It can mount RedSea ISO images via mount.HC, I think most features in TOS are implemented. It also has bindings to dyad if you want to write a server application in it like the guy that hosted cianig.ga did(The site is currently down, probably was operated in the guy's basement with a dynamic IP).
The debugging is much easier on this thing because it loads up an extra debugger window instead of beeping like a tard and entering a black screen that's gay to use.
This compiler has been a boon to me honestly, my super old thinkpad from 2006 is way too slow to run TOS in a VM but 3Days runs perfectly on it, although I do have a shiny new desktop with VMWare installed on it that I rarely use because it feels like someone is watching me on that machine.
You might question the usage of this thing, honestly I don't know either, more like a "why not" type of thing. He spent something like 2 years on this compiler, and it's nearing perfection currently.
It has a built in Wiki that teaches you about HolyC programming like the assembler, he's not good at the graphics tho, he'll appreciate anyone who'll help him write the graphics part of the wiki. You #include "gen_html.HC" in the T:/Server directory to run the server(default localhost:8080).
If you compile run 3Days with ./3d_loader -t T it'll just look like plain TempleOS except that DolDoc runs at 60fps and it loads up in a split second because it's not a VM.
The DolDoc GUI was purely accidental by the way, it seems like DolDoc writes to a framebuffer address in memory, so 3Days just polls it and draws it onto a window so that you can have the authentic TempleOS Experience™️.
The inline assembler can't run Ring-0 opcodes since it's an application running in protected mode instead of a whole operating system. Also setting RBP to 0 won't do shit, unlike in vanilla TempleOS where the CPU will instantly raise a triple fault and reset the machine.
https://github.com/nrootconauto/3Days here's the link if you'd like to try it.
Here are some pictures of it running BlazeItFgt2 and Diggaym because it's cool:
pic-selected-220917-1453-13.pngphoto_2022-09-17_14-52-28.jpg
Also @CrunkLord420 now I understand what SSE is lol.
 
Last edited:
Back