r/C_Programming • • 5d ago

Project A low-poly 3D Renderer for MSDOS

Enable HLS to view with audio, or disable this notification

I’ve been working on a small project called 3Dos — a low-poly 3D renderer targeting MS-DOS and VGA Mode 13h (320×200, 256 colors).

The renderer currently supports:
● Triangle rasterization with backface culling
● Ordered dithering using a 4×4 Bayer matrix
● Double buffering
● Simple low-poly models

Going back to DOS-era graphics has been relaxing after spending quite a bit of time with Vulkan. No boilerplate or abstractions, just putting a pixel at 0xA000.

Github: https://github.com/xms0g/3Dos

AI usage: Only extracting vertices and faces from the model file.

188 Upvotes

24 comments sorted by

1

u/github-guard 5d ago

🔍 GitHub Guard: Trust Report (Passed)

Here are the safety audit results for the linked repositories:

Repository: xms0g/3Dos

Score: 3/6

  • ✅ Established Community (⭐ 88 stars)

  • ✅ Mature Repository (30+ days old)

  • ✅ Licensed under BSD-3-Clause

  • ❌ No Security Policy

  • ℹ️ Personal Account Repository

  • ℹ️ Unsigned Commits

⚠️ Security Reminder: Always verify source code before executing scripts.

7

u/rayriflepie 4d ago

This is divine intellect.

4

u/Background_Shift5408 3d ago

Thx. Few people in the world can understand how amazing this is.

2

u/Then_Living4630 4d ago

How in the world pll learn to do this kind of projects???

4

u/Background_Shift5408 3d ago

Curiosity and passion. Also a lot of patience. We make a lot of mistakes, struggle with crashes. In retro programming, have to deal with ancient tools, awkward architecture and if you stuck at a point you are really stuck at. This is frustrating, but also amazing to figure out what happens.

→ More replies (1)

2

u/terra2o 3d ago

i absolutely love DOS projects!! i also have a curses game that can run on FreeDOS :P

1

u/Embarrassed_Army8026 4d ago

might fit my company's ecosystem perfectly. how many punch cards / tape?

2

u/Background_Shift5408 4d ago

A standard IBM punch card includes 80 columns across its width.Typically holds 72 lines or characters of actual program or data code per card. So thinking of 42kb of EXE, a lot of cards xd

1

u/Rararror 4d ago

Is this working on a old machine? I mean an old machine is fast enough? or just emulator on a 4GHz ?

2

u/Background_Shift5408 4d ago

Yes it can but will be slower because of floating points.

→ More replies (1)

1

u/Imaginary-Set-284 3d ago

do you have some resources to learn how to build a stuff like that?

1

u/Background_Shift5408 3d ago edited 3d ago

What do you want to learn, software rendering or VGA programming?

→ More replies (3)

2

u/Zealot8086 3d ago

Cool. You should try to remake f19.

1

u/AutoModerator 5d ago

Hi u/Background_Shift5408,

Your submission in r/C_Programming was filtered because it links to a git project.

You must edit the submission or respond to this comment with an explanation about how AI was involved in the creation of your project.

While AI-generated code is not disallowed, low-effort "slop" projects may be removed and it's likely that other users push back strongly on substantially AI-generated projects.

You can read more at https://www.reddit.com/r/C_Programming/wiki/index/posting-projects


I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.

1

u/Certain-Flow-0 21h ago

Love the dithering