1,788 karma · joined March 13, 2025
Society is not the government. Society has the opportunity to let me back in.
From another perspective, I was just a morally evil person for all of that time.
I think both are correct. It's more complicated. I have my own thoughts on what caused everything to happen the way it did and why I was the way I was. But what I can say is that I'm no longer that person. But that doesn't matter to most people.
Part of my just punishment is that my reputation is forever ruined. That's why I adopted this handle, 90s-dev. My plan was to use this to make money anonymously. But then at the last second I had the idea to go public and hope for a public redemption, partly because I needed money and knew that the product wouldn't sell and was running out of savings, and partly because I strongly felt like I was being deceitful, which is an awful feeling. So I revealed my identity in my Show HN post.
[Edit to clarify] I'm not trying to pressure or guilt anyone into donating for personal reasons. My only goal in this post is to propose a way to experiment with open source funding. Other details are just me answering unrelated questions.
I do agree that this is a new way of using GitHub Sponsors. And I do agree that it might entirely not work out the way I'm thinking. But to my knowledge, this way of using GH Sponsors hasn't been tried before, so it's worth at least trying it once I think. Besides, there was significant interest in this project, which is what made me think of trying this at all, otherwise I would not have. Thanks for the feedback.
The vision of 90s.dev is to be a retro os environment entirely in the web, that's suitable for making all the apps you'd need to make a game, from code editors to sprite editors to animation tools to debuggers. And it's decentralized too, so the apps don't have to be built in, you can import them from anywhere on the web, as long as the app speaks the 90s.dev API. This would recreate a retro development environment similar to what many of us grew up with in the 90s.
Well, kind of.
I've been working a ton on some variations and ports of it over the last couple months, but the problem is that I need funding.
So my plan is to setup github sponsors, where for each project people want me to work on, they can donate any amount, and for each $25, I'll work one hour on that project. It'll have a few related projects that all come from a unified vision I have for 90s.dev -- to be a full platform that recreates 90s-era development, from dos and qbasic, to win3 and vb3, not to mention assemblers for those who want it (see my show-hn about hram.dev).
; switch on arg
cmp cl, 4
je MouseDown
cmp cl, 5
je MouseUp
; if mouse not down then just skip
mov al, byte [0x33000]
test al, 1
jz Skip
; draw green at mouse
mov rax, 0
mov rbx, 0
mov al, [0x30007]
mov bl, 128
mul bl
add al, [0x30006]
mov byte ptr [rax+0x30100], 0x0f
; call blit()
sub rsp, 24
call [0x30030]
add rsp, 24
Skip:
ret
; store mouse-down info
MouseDown:
mov byte ptr [0x33000], 1
ret
MouseUp:
mov byte ptr [0x33000], 0
ret
Fwiw I do not know assembly! This is the most complicated asm I've ever written! So if it's got dumb errors, please let me know and I'd be glad to fix them in the sample code!It's like love2d but with a pico8 style screen and the code is entirely asm.
Download at https://hram.dev/hram-110.zip for version with hot code reloading.
Write event handler function in native assembly at appdata\hram\hsig.s that interacts with keyboard/mouse and 128x72 8-bit screen (red/green only).
Uses native jit, no interpreter. So if you write bad assembly it will segfault! But it's okay, just restart hram.exe (~360 kb) and try again.
HRAM is a computer simulator that runs real native assembly in the context of a 128x72 pixel screen with 8-bit colors (4 bits for red, 4 for green, no blue).
The idea is that you program it using your own assembly, in the same way they might have had to 50 years ago. It's almost like love2d but with assembly. You write an asm function that responds to events like mouse/keyboard/etc.
It takes your code, located at appdata\hram\hsig.s (it creates one for you on the first run) and runs it when it loads. I plan to add hot reloading soon, maybe later today.
And it's not an interpreter! It uses asmjit under the hood to compile your code into actual assembly and then just runs it. Which means this is literally as close to the metal as you can get writing games!
This is maybe the coolest and most exciting thing I've ever built. I'm really excited to see what you all think of it!
The manual is at https://hram.dev/indexb.html and the beta download file is at https://hram.dev/hram-100.zip so please let me know what you think!
They said the same thing about browser tech. Still not simpler under the hood.