June 17, 2025
There was one simple bug. All it took was fixing one simple bug to get macOS fully working. I was returning after getting the platform which would only loop the heartbeat once and i was not using the sys.platform but instead my own variable
Tonight i plan on making a snake game in my kernel. The way i think snake runs is by spawning the snake at a set position like (10,10) then when you hit w a s or d it loops forever in that direction and then when you go into an apple it spawns another pixel behind the head and tracks the head position and gives the previous one to the body.
Fixed a bug in macOS! it would not send heartbeats because of the run function. On macOS fusion has a quirk where the API will start immediately unlike windows. This would have errors where the project would be seen as invalid and the heart beat would not send. (credits to Alan for finding the bug)
I added macOS capabilities to fusion wakatime! I had to bundle the resources with it though cause macOS is sandboxed :c
Milestone! We have text input. It works by using interrupt 16h which checks for keys pressed. and then moves over to teletyppe and compares the value of the key pressed with the hex value of Enter. then if its equal it jumps to a function called callNewLine and then jumps back. The next step is to figure out deletion!!!
Backstory time! I started this project out of pure boredom on my way home from California on a flight. I started the day before my flight by downloading a bunch of interrupt/register books and assembly books. I always thought assembly was really cool and a good challenge. I started off by absorbing as much knowledge from ralf browns interrupt list as i could before my flight and setting up my installation of NASM and visual studio code on my laptop. I boarded my flight and started to code for a little bit before passing out. Then once i got home i had free roam of the internet and every resource at my disposal! I was able to learn about bootloaders and what they do and how to fill up space because the bootloader needs to be exactly 512 bytes and how to display multiple letters of text. I'm thinking about naming my OS hackOS in honor of hackclub! As i go through this project i want to have a couple of things such as a kernel, Desktop Environment, Word Processing, and a terminal!
I compiled my game to an exe. I fixed a couple of errors that would prevent it from being compiled
Today I added sound effects and i also added a scatter shot mechanic to the player if you hit E it spawns 4 bullets in random directions incase of emergency. I also created more padding between the rooms. I need to add collisions and fix parts of the pathfinding that causes the goblins to jitter
I added the first enemy to the game. I also added health bars and bullets. Soon tomorrow I will add a reload mechanic. Probably using variables and lists and maybe a QuickTime action
Today I made it so Rooms are randomly generated with ASCII to give the game a retro/dos feel and also added collisions into the walls. The way i did this is to check for future values of the x and y positions and see if they line up with the #/room indexes and prevents movement if there is a # in the position. my next step is to refine the collisions by adding a rectangle/collision rectangle over the sprite and check if any of the corners touch the #s
I finished random room generation. It works by defining rooms as a class (roomRectangle) then it has 4 variables inside of it. I then create a variable called RoomRectangleVar which is defined as the class with a set area of 1,1,50,50 (x,y,w,h) and then a function called BSP is created which expects a parameter of room then checks if room width and room height are over 20 and splits it along the vertical line and creates 2 variables to create rooms. otherwise it splits horizontal line and creates a top and bottom and returns it. and then i plug it into py game and draw it
I have a serious problem. I'm currently on a trip to California and my laptop absolutely will not run Godot. I started to migrate my game to Python using Pygame. All the previous gameboy and godot source code will be available but i find it easier to start on with a language i already know. But starting with python i'm currently creating a way to procedurally generate dungeons. I'm debating on doing it the way DOOM does it or doing it how conways game of life does it. Personally before deciding i want to see if i can do it myself NO GUIDES NO NOTHING. I had an idea to store multiple Rooms as arrays and create lines between them with random spawns. I had an idea of mixing my earlier DOS game stuff with the modern day PyGame with simple sprites. But the catch is I want to merge ASCII and 8x8 Sprites it would be a quirky mechanic much like Dwarf fortress. Dungeons would be procedurally made out of #s and chests would be small sprites. I'll see where i take the direction tommorow
Today i ported my game to godot. I didn't like the limitations of GBDK and godot would allow for alot more freedom and creativity that i would not be able to have on gameboy. I'm also pivoting to a new idea cause the old idea i could not get down in 2d at all.
Today i added a quick time element to the game. my next steps are to - make a npc to toggle it, - create rewards for passing it, - and add more maps
I got the UI elements working! It displays text and then when you hit A its supposed to transition to a new map but i have to make the map first.
I've added the start mechanics to the title screen to where it dings when you press start. I designed a starting island to be on with the boat and then the functionality when you press a near the boat (this makes a ui button pop up) i need to code that though
Today I
- Created a Title Screen in Aseprite
- Made movement code for the title screen as a fun gimmick
- Switched to a gameboy engine using the gameboy development toolkit
- Made Character Sprites
- Debugged issues for 3 hours.
I got the background working! I was able to also add jumping. My next step is to add collision boxes and sprites of the ground
I switched from ASM to C (asm gave me a headache) It took 4 hours to learn how to move sprites around while keeping mode 13h. I need to make a good sprite though and figure out backgrounds
We have Text! This is my first time coding in assembly so i'm learning along the way- Some helpful things i've found are Ralf Brown's Interrupt List. Alongside wikibooks.
Have you ever wanted an procedurally generated dungeon crawler ASCII/DOS Game made in PyGame? Well here you go!! (AI was used to debug and teach me algorithms without giving me code.)
Today I worked on the case redesign as i chose different parts instead of using keycaps in order to get the arcade feel. I messed around with the spacing of the keys to get it just right and allow for tactile and quick actions to happen.
I added an install script in order to clean up the workflow and make it easier for people to understand. It also allows me to change it with each release
Bug Fixing! - Today i started to bug fix the problems in my code :p The main problems in my code were due to encoding and some weird requests stuff. The next step in this project is to make an install script to help the program and make it easier for me to debug
So today I started using Fusion to make the casing for my project. The requirements to make it for me are that it has to be
- Thin & Portable
- Lightweight
- Have Detachable/Braided Cord
and so far this is what i've come up with
So Today I added the keys and stuff into the PCB project and ordered it in a way to make it easy to press and wired it all up. The next part of this process is using CAD to make a sleek and smooth case that will make it easier to press and not cause hand pain
Okay so lately i've been hella addicted to tekken. The only downside is my fightstick that i own gets on my nerves because its too clunky and hurts my wrists/fingers after a while. So i wanted to start and make a fightbox so that i could have something lighter and smoother to play on. Today i started off by creating a KICAD file with everything ill need so keys and a RP-2040 which will be used with a XIAO SEED ESP32C3
In the first hour I was able to learn a little bit about assembly with segments and how CHARS work and also learned how to use YY-CHR to make NES sprites and how to import them. Then I was able to get a working rom for it!
Today I got the program to send heart beats out which is pretty cool :p - I do think the program could be better but for now it works!
Hello! - So todays project was a little bit special as I have never really just sat down and coded for hours (lmao) but i felt a need to help out the hack club community and create an addon for fusion360 and hackatime due to there only being an onshape hackatime and i dont really prefer it :(. Soooo - I started off the day by confusingly looking through this stupid fusion api lmao Thanks Echo_315 for the idea
Helps track time spent inside of fusion 360 and sends it directly to hackatime/wakatime!
This was widely regarded as a great move by everyone.