You are browsing as a guest. Sign up (or log in) to start making projects!

ashish-raj-singh

@ashish-raj-singh

Joined June 11th, 2026

  • 7Devlogs
  • 3Projects
  • 1Ships
  • 0Votes
STOP reading this bro, go and code that feature already 😏🔥
Open comments for this post

2h 2m logged

Decades old Low level concepts are still haunting.. (Chip 8 Interpreter)

  • This is my first time building a proper low level project.(Strong Man Crying 😭)
  • its tough i had to study new architechures, understand memory bottlenecks, i spent aout 10% time writing code and rest learing , reading Chip8 technical references, banging head to AI to explain the low level memory concepts (So Exciting its an Automatic All-Nighter puller)

And .. heres what i learnt

waht is chip 8?

chip 8 basically a a interpreted programing language of ancient times (70s). It kind of mimics a small computer (8 bit), limiting its max memory to 4KB. But the special thing is, its not just a language, it mimics a CPU architecture, making it like a different computer system which doesnt exists phycally, but uses other physical computer to run its own acrhitecture.

What is Emulator

Well think of emulator as a extra added layer between the software and low level computer systems. which does some magic to run a software which is not ment to run on that system.

Windows Application –> macOS (Won’t Run)

Windows Application –> Emulator –> macOS (Will Run)

Flow

  • Lets say we have a software S, designed to run on System of type C1, but now we want to run the same software on a different system lets say C2,
  • S –> C1 RUNs properly
  • S –> C2 Fails as C2 cant understand the instruction that software S is trying to give to C2

Emulator in the picture

  • Software S (instruction codes for C1 ) –> Emulator (Translates Instruction code for C1 to C2) –> now C2 can run (Translated instructions).

Now Chip8 Emulator

Lets say you have a program which was designed in and for Chip8, but now you dont have a chip8 system, how do you run this program?

We basically use an emulator to trick the software to thing that its running in the old Chip8 system but its acctually running on moder computers.

Howwwwww? well Chip8 has 35 standard instructions and only 4096 bytes of memory, so its faily easy to map each and every of its instruction and instead do it in the modern langauges (like i have used C++).

We store the data in modern C++ Data Structures, but we trick the target software to thing that it has dorect acces to the RAM of the computer.

Current Status

  • implemnted the basic template to mimic real RAM for chip 8, which is basicaly an array of size 4096, weher first 200 are reserved for the chip8 system use, rest is opent to softwares running on it.
  • I have translated some basic codes, more on this in next devlog
  • A black window with raylib for now

Decades old Low level concepts are still haunting.. (Chip 8 Interpreter)

  • This is my first time building a proper low level project.(Strong Man Crying 😭)
  • its tough i had to study new architechures, understand memory bottlenecks, i spent aout 10% time writing code and rest learing , reading Chip8 technical references, banging head to AI to explain the low level memory concepts (So Exciting its an Automatic All-Nighter puller)

And .. heres what i learnt

waht is chip 8?

chip 8 basically a a interpreted programing language of ancient times (70s). It kind of mimics a small computer (8 bit), limiting its max memory to 4KB. But the special thing is, its not just a language, it mimics a CPU architecture, making it like a different computer system which doesnt exists phycally, but uses other physical computer to run its own acrhitecture.

What is Emulator

Well think of emulator as a extra added layer between the software and low level computer systems. which does some magic to run a software which is not ment to run on that system.

Windows Application –> macOS (Won’t Run)

Windows Application –> Emulator –> macOS (Will Run)

Flow

  • Lets say we have a software S, designed to run on System of type C1, but now we want to run the same software on a different system lets say C2,
  • S –> C1 RUNs properly
  • S –> C2 Fails as C2 cant understand the instruction that software S is trying to give to C2

Emulator in the picture

  • Software S (instruction codes for C1 ) –> Emulator (Translates Instruction code for C1 to C2) –> now C2 can run (Translated instructions).

Now Chip8 Emulator

Lets say you have a program which was designed in and for Chip8, but now you dont have a chip8 system, how do you run this program?

We basically use an emulator to trick the software to thing that its running in the old Chip8 system but its acctually running on moder computers.

Howwwwww? well Chip8 has 35 standard instructions and only 4096 bytes of memory, so its faily easy to map each and every of its instruction and instead do it in the modern langauges (like i have used C++).

We store the data in modern C++ Data Structures, but we trick the target software to thing that it has dorect acces to the RAM of the computer.

Current Status

  • implemnted the basic template to mimic real RAM for chip 8, which is basicaly an array of size 4096, weher first 200 are reserved for the chip8 system use, rest is opent to softwares running on it.
  • I have translated some basic codes, more on this in next devlog
  • A black window with raylib for now

Replying to @ashish-raj-singh

0
5
Open comments for this post

56m 35s logged

Building an Chip 8 Emulator

This is like my first proper project in low level programing

I wanted to take on the low level for a long time, took the chance this time

I know only the basics of chip 8 interpreter , I read cowgod’s chip8 technical reference last night

this is gonna be a very learning and building like thing,

been into the high level for over 5 (Full Stack) years now, hope I can find some similarities and help from my past experiences in to the low level

is anyone of you guys (gods) know about low level or specifically chip8 , please drop a comment because I thing I am too going to need babysitting 😭

Building an Chip 8 Emulator

This is like my first proper project in low level programing

I wanted to take on the low level for a long time, took the chance this time

I know only the basics of chip 8 interpreter , I read cowgod’s chip8 technical reference last night

this is gonna be a very learning and building like thing,

been into the high level for over 5 (Full Stack) years now, hope I can find some similarities and help from my past experiences in to the low level

is anyone of you guys (gods) know about low level or specifically chip8 , please drop a comment because I thing I am too going to need babysitting 😭

Replying to @ashish-raj-singh

0
23
Ship

# I built AlpineOS,
- A fully functional, persistent, browser-based operating system, not just a CSS UI mockup
- it’s powered by a custom Redux "kernel" that actually manages background processes independently from the visual windows.
- live Activity Manager that tracks active PIDs and simulated CPU/Memory telemetry.
- It includes a persistent Virtual File System
- An draggable Window Manager
- Terminal engine that interacts with the File System
- Persistency , File and folders are persistennt and so it the state of the OS, you leave and come back just find that it has retained the state.

# The Challange?
The architecture and state management were incredibly complex.
- Synchonizing the UI with the actual process mangement in the "kernal"
- Persistence, making the whole website persistence.
- Creatin an Task manager was fun and exciting, it felt like a real low level OS feature

# Excitement??? hell yeah
- my whole time I have been building, high-level websites and backend. I never tried a low level project, although this is not Low Level but it forced me to explore the architecture and concepts of hoow operating system works at Low level, how terminal connect with the file system.
- who doesn't get excited by low level ??
- Being able to selec multiple files and folder, not dragable yet, but soon will be

# What can i do?
- When you boot it up, don't just click the icons and look and design and colors, stress test the ARCHITECTURE!
- Open the Terminal , use ```cd``` to change directory and try standard commands like mkdir, touch, ls, and interact with the file system
- Open the Activity Manager side-by-side with other apps to watch the active processes update and check the live charts (dummy)
- Right-click the desktop to open Personalization and change the wallpaper.

**Most importantly:** Open a few windows, move them around the screen, and then hard refresh your browser or maybe just restart and Watch the persistence engine drop you right back where you left off.

Try project → See source code →
Open comments for this post

3h 39m 51s logged

#update number 0.0000033

The old man, Terminal

  • Now terminal supports file system operations, can create and delete folders and files

Textpad

  • now it can open text files and edit those and save, can create new files as well

Activity Manger , task manager

  • Shows the currently running processes in the os, also gives and option to forcefully terminate any process, shows CPU and RAM usage (dummy but mindful of currently running processes)

Menu bar

  • menu bar now has specific and dynamic context menu options for each app
  • although its not available yet for each app, but the logic is implemented, I just need to write json config for the ui to display

Personalization

  • Right click on desktop and click on Personalization to change wallpaper,
  • will support more customization soon

Boot

  • added a cool mock up to mimic shutdown and booting process of OS,

#update number 0.0000033

The old man, Terminal

  • Now terminal supports file system operations, can create and delete folders and files

Textpad

  • now it can open text files and edit those and save, can create new files as well

Activity Manger , task manager

  • Shows the currently running processes in the os, also gives and option to forcefully terminate any process, shows CPU and RAM usage (dummy but mindful of currently running processes)

Menu bar

  • menu bar now has specific and dynamic context menu options for each app
  • although its not available yet for each app, but the logic is implemented, I just need to write json config for the ui to display

Personalization

  • Right click on desktop and click on Personalization to change wallpaper,
  • will support more customization soon

Boot

  • added a cool mock up to mimic shutdown and booting process of OS,

Replying to @ashish-raj-singh

0
3
Open comments for this post

2h 50m 1s logged

DevLOG FOURRR

What do we got this time

well well I now have a complete basic file management system build, I can create text files, edit them, open them, save them in any specific location , delete it,

terminal now can run more commands

‘’‘ls, mkdir, rm. touch, echo, clear, etc’’’’

context menus

It was time taking and exhausting as every section of the operating system required different type of context menus. It was so much messed up. I ended up creating something central where a single config can decide and make a whole context menu,

Desktop is ALIVE

Long awaited something I wanted to do is to display what there is in the desktop directory directly onto the desktop after making the complete file system.

DevLOG FOURRR

What do we got this time

well well I now have a complete basic file management system build, I can create text files, edit them, open them, save them in any specific location , delete it,

terminal now can run more commands

‘’‘ls, mkdir, rm. touch, echo, clear, etc’’’’

context menus

It was time taking and exhausting as every section of the operating system required different type of context menus. It was so much messed up. I ended up creating something central where a single config can decide and make a whole context menu,

Desktop is ALIVE

Long awaited something I wanted to do is to display what there is in the desktop directory directly onto the desktop after making the complete file system.

Replying to @ashish-raj-singh

0
17
Open comments for this post

50m 10s logged

Dev Log Threeeee

Added a browser

as of now only a few websites are accessible like wikipedia.org, other websites reject the connection in a iframe, I am looking for solution to this, I was thinking to maybe compile a rust model web browser using ecmascript and run a browser in browser, looks tough for limited time I have for this project , will definitely give it a shot ( if you guys got any idea let me know )

yayyyy File system is now persistent

well despite coolest feature this was fairly easy redux-persistence saved the day, used indexDB as localstorage is synchronous and only allows 5MB of storage

-> the files created in desktop folder now show up on the desktop on top of wallpaper

NEXT GOAL

  1. add some more commands in terminal like ls, touch, mkdir, rm
  2. ability to create and save text files
  3. make files and folders drag-able (DREAMYYYY)
  4. personlization options

Dev Log Threeeee

Added a browser

as of now only a few websites are accessible like wikipedia.org, other websites reject the connection in a iframe, I am looking for solution to this, I was thinking to maybe compile a rust model web browser using ecmascript and run a browser in browser, looks tough for limited time I have for this project , will definitely give it a shot ( if you guys got any idea let me know )

yayyyy File system is now persistent

well despite coolest feature this was fairly easy redux-persistence saved the day, used indexDB as localstorage is synchronous and only allows 5MB of storage

-> the files created in desktop folder now show up on the desktop on top of wallpaper

NEXT GOAL

  1. add some more commands in terminal like ls, touch, mkdir, rm
  2. ability to create and save text files
  3. make files and folders drag-able (DREAMYYYY)
  4. personlization options

Replying to @ashish-raj-singh

0
2
Open comments for this post

31m 57s logged

Dev Log 2

  1. Implemented resizing and maximizing of windows (easypzy lemon squeeze)
  2. Added some dummy options in the menu bar (will soon make them functional too 😉)
  3. Improved UI of file manager (Finder)

Dev Log 2

  1. Implemented resizing and maximizing of windows (easypzy lemon squeeze)
  2. Added some dummy options in the menu bar (will soon make them functional too 😉)
  3. Improved UI of file manager (Finder)

Replying to @ashish-raj-singh

0
3
Open comments for this post

3h 11m 21s logged

AlpineOS, lightweight web os for study and space research(will be coming soon)

The name inspiration come from the alpine images of docker “light weight”

I am trying to build is os such that user can sort of study about space.

as of now I have build some basic file system, dragable windows, I have setup basic architecture for applications, processes, and files and folders

hope fully in my next DEVlog, I will have implemented /fixed

  1. resizable windows
  2. control panel
  3. file and folder persistence
  4. some cool apps on space theme
  5. preventing windows from going out of screen,
  6. will try to make terminal somewhat working
  7. improve the UI
  8. ability to minimize the windows
  9. drag and drop upload of files like text, pdf, word excel etc,

AlpineOS, lightweight web os for study and space research(will be coming soon)

The name inspiration come from the alpine images of docker “light weight”

I am trying to build is os such that user can sort of study about space.

as of now I have build some basic file system, dragable windows, I have setup basic architecture for applications, processes, and files and folders

hope fully in my next DEVlog, I will have implemented /fixed

  1. resizable windows
  2. control panel
  3. file and folder persistence
  4. some cool apps on space theme
  5. preventing windows from going out of screen,
  6. will try to make terminal somewhat working
  7. improve the UI
  8. ability to minimize the windows
  9. drag and drop upload of files like text, pdf, word excel etc,

Replying to @ashish-raj-singh

0
3

Followers

Loading…