ROVM - A Virtual Computer & OS Implemented Entirely in Roblox

Hello! i just came back from dead just to see this

Absolute masterpiece

1 Like

This is polished, astonishing, fascinating and clean. How long did it take to make. What are your future plans for ROVM - A Virtual Computer & OS Implemented Entirely in Roblox? Keep grinding, hero!

lets go i got the polished astonishing and fascinating one!!

anyway since i havent really answered those questions might as well!

ive always been fascinated by CPUs and operating systems, and have been studying them for the past few years since they were so damn cool.

i started experimenting all the way back in december 2024 with some small 8 bit cpus made with basic code. it was honestly just curiosity; i wanted to make my own cpu and watch it run code natively in roblox.

that eventually turned into 16 bit designs, then 32 bit, then it snowballed.

before RoVM, i built something called Blox86, which was also a 32 bit CPU, but it was extremely unoptimized and hell to maintain. after fighting with it for a while, i decided to make a new architecture from scratch, which was focused on performance and scalability.

that redesign then became RoVM.

in terms of total time ive invested, the foundations come from years of research and experimentation, but active work on RoVM itself began late last summer, so around 6 months.

at this point, RoVM is pretty much complete.

ive optimized it as much as i could without doing a full rewrite for parallel luau. adding true parallelism would require restructuring major parts of the system, and i decided it wasnt worth destabilizing the project this late.

the remaining work is mostly cleanup:

  • improving documentation
  • refactoring the codebase
  • preparing it for open source release

ill of course still write programs for it for fun, but in terms of just features its pretty much done.

long term? im considering making a RISC-V cpu and attempting to run Linux at a usable framerate, but thats just an idea for now.

2 Likes

I had my own project of this kind, but seeing this I immediately gave up, I had 32bit Assembly too but I can’t compete with this lol

1 Like

don’t give up! i felt the exact same way looking at people making those computers in minecraft while working on RoVM. the difference though is that i managed to turn that from intimidation into motivation. all they did was just prove what’s possible! i would never want my project to demotivate anyone, if anything i want my project to inspire. that is why i am going to fully open source it for anyone to read and fork (in a few weeks).
while working on RoVM, i actually read up on your project and really liked it! it has a more realistic feeling, which i like and think is unique. i even gave you a follow a while back! if you have any questions or want help, feel free to dm me or message here.

1 Like

Thank you, this really means a lot to me! The project I last posted that you saw was an old simulation of an OS I was creating, not emulated, I’ve ever since done some real OSDev and I’ve decided to make my own CPU Emulator just one week ago, which I want to evolve to an OS too, but I don’t want to look like I’m stealing your work tho, since mine is pretty similar to yours (not GUI wise, but we both emulate a 32 bit CPU)

Your work looks truly amazing and I think I might continue further with this project

I have one question, since how long have you been working on this project? I mean when have you started, it looks extremely cool

1 Like

lol you caught me

well i can proudly say im not a bot, i actually think these posts are good, even though i wanted to troll a bit with these weird responses

2 Likes

i’m glad to hear you’re continuing! also, don’t worry about ‘stealing’. 32 bit emulation is a standard goal, and everyone has their own unique way of making it. i’d love to see where you take it!

to answer your question,

it took a lot of time, but seeing the impact it’s causing, i think it was worth it.

1 Like

Thank you for your reply! I love seeing amazing work such as yours!

This is the ISA I am working on looks like this

local Instructions = {
	NOP 	= 0x00,
	ADD		= 0x01,
	SUB		= 0x02,
	MUL		= 0x03,
	DIV		= 0x04,
	MOD		= 0x05,
	AND		= 0x06,
	NOT		= 0x07,
	OR		= 0x08,
	XOR		= 0x09,
	STORE	= 0x0A,
	STOREI	= 0x0B,
	LOAD	= 0x0C,
	LOADI	= 0x0D,
	JUMP	= 0x0E,
	CALL	= 0x0F,
	PUSH	= 0x10,
	POP		= 0x11,
	RET		= 0x12,
	ADDI	= 0x13,
	SUBI	= 0x14,
	MULI	= 0x15,
	DIVI	= 0x16,
	MODI	= 0x17,
	JE		= 0x18,
	JNE		= 0x19,
	JC		= 0x1A,
	JNC		= 0x1B,
	JN		= 0x1C,
	JNN		= 0x1D,
	JI		= 0x1E,
	JNI		= 0x1F,
	CLE		= 0x20,
	CLC		= 0x21,
	CLN		= 0x22,
	CLI		= 0x23,
	STE		= 0x24,
	STC		= 0x25,
	STN		= 0x26,
	STI		= 0x27,
	IRET	= 0x28,
	INT		= 0x29,
	LITA	= 0x2A,	-- Load Interrupt Table Address
	LUI		= 0x2B,	-- Load Upper Index
	LLI		= 0x2C,	-- Load Lower Index
	MOV		= 0x2D,
	JS		= 0x2E,
	JNS		= 0x2F,
	CLS		= 0x30,
	STS		= 0x31
	CMP		= 0x32
}

return Instructions

It takes some inspiration from both x86 and RISC-V, but it’s my own custom architecture, I still have to implement bitwise operations, let me know if you like it or if I should change it a bit

1 Like

Have you thought of leveraging this to make a Corewar type of game?

1 Like

that ISA looks really clean! i like how you’re blending the two paradigms. using LUI and LLI is a smart, RISC style way to handle 32 bit immediates, and planning out hardware interrupts right from the start is ambitious-- i like it!

some feedback i got: you mentioned still needing bitwise operations, but it looks like you already have AND, OR, NOT, and XOR mapped out! what you might be missing are bit shifts (SHL, SHR, and maybe arithmetic shift SAR). you’ll want those for fast math, array indexing, and screen rendering later on.

also, just out of curiosity, since you are using an x86 style CMP and flag system, how are you handling the difference between signed and unsigned comparisons?

this is a really good foundation, cant wait to see it run stuff.

2 Likes

i actually hadn’t thought of that, but it’s an amazing idea! since RoVM already has a working assembler and isolated virtual memory, it would be perfect. currently i’m very busy working on open sourcing the project, but a multiplayer assembly battling game would be an amazing spinoff project!

Thank you! Your question made me think a bit through and I added 2 more instructions for signed comparisons, which I had clearly forgotten at the time of designing the ISA

JO
JNO

I added an overflow flag too, since it’s clearly necessary for differentiation.
Had it not been for your question, I would’ve clearly forgotten these 2 very important flags and instructions. Thank you once again!

1 Like

If only I knew how to use this, then I would make a windows clone.

1 Like

i’m glad i could help out! if you have any questions or wanna talk about something, lmk!

1 Like

i’ve always wanted to run windows in roblox, but i don’t think i’m smart enough haha! i don’t even want to think about simulating x86

1 Like

Progress update 3/14/2026

Hello again! This update brings some major additions to RoVM and BloxOS:

  • Major performance update
  • Several new games
  • PYTHON!

Performance

Let’s begin with performance, but I won’t talk your ear off, rather I’ll just show you it:

Old:

New:

Yeah, you see that right. This took major refactoring of the CPU hot loop, assembler, and C codegen, resulting in roughly 4x better VM throughput. I won’t get too deep into it (unless if someone asks of course), but this has major effects on the entire system. First of all, remember DOOM running at 4 fps? Well…

(if you do not get results as fast as these, remember that this was recorded in roblox studio, where native codegen is supported in localscripts. don’t complain about it to me, complain about it to roblox)

Games

Alright, enough technical jargon, time for games! I added several new games, all written in C (not luau) and running on RoVM:

Snake:

Pong:

Space “Defenders”:

Tetris:


Python

Well… I actually did it.

I managed to port Python to RoVM. Yep, Python natively running in Roblox. It took several thousand lines of… let’s call it “inspired” code to get it working.

A lot of it had to be adapted to work with BloxOS, so it’s not a full CPython implementation by any means, but it supports many core language features such as:

  • variables
  • strings
  • conditions
  • loops
  • execution

Here are a couple quick examples:


This project has been very fun to work on, and I really do appreciate all the support from everyone on here.

I hope to continue working on RoVM, especially now when if feels like all you can see on the devforum is doom and gloom.

Reminder that game can be played here:

Thanks for reading!
Feedback and questions are always welcome.

3 Likes