This is documentation with my experience making Homebrew for GB.

On 6/11/2020, I started to look at programming for the original DMG-001 Gameboy.
I did not get too far with anything impressive mainly due to the documentation and tutorials (and me at that time) being not up to speed on all the documentation.
But, I did what I did to make something work.

The first thing I had to do was get the Gameboy Development Kit.
Which is outdated,being that it released in 2000.

No worries, how hard could this be to make into a functioning workspace? Turns out, (at least for me) pretty damn difficult.

I was using Visual Studio Code to program since the Youtube tutorial I was following had that as workspace,
might as well emulate that to get anything functioning.


This is incredibly off topic.
Let me just get to the demos in order of which created.




c_sharp_hello_world.gb (6/11/2020 1:32 PM)

As you can tell, the programming of this and how I was forced to set it up (admittedly probably via of my own restrictions) was infuriating. So, with what was supposed to be a "HELLO WORLD" demo became well, this.



main.gb (6/11/2020 2:14 PM)

Fixed.



fear.gb (6/11/2020 2:57 PM)

A aquaintence of mine told me about how "horrifying" teletubbies were in grayscale. Given that I was just working on a system notorious for a grayscale like display, I figured the best way to test out my newfound kNoLeGe of GBDK was to make this demo. It's self explanitory. You press the A button, the background layer protrays this large scale image.



WALK.gb (6/11/2020 6:29 PM)

A couple hours later, I came up with this. An 8x8 pixel art boy running around. The date listed is incorrect. He moves in blocks of 8 pixels around the screen. No borders, it continues indefinitely. The background text scrolls to the left by blocks of if I remember correctly 4.



m16x_only_build.gb (6/12/2020 9:48 AM)

Same as the "fixed" hello world script, but now with a splashscreen in the front. The picture is a digitized version of my profile picture I use commonly around the internet. There is some scripting in this build of my first attempt of getting 16x sprites to function, unfortunately my build script crashed itself and this was the lone survivor of me trying to make the build work.



background_test.gb (6/12/2020 12:12 PM)


Loads up a background tile set and places accordingly, then scrolls to the right until it hits the background load limit, and then loops around. I have no damn clue how Super Mario Land does it. I have a couple theories, but nothing I could pull off.



m-UI_Test_working_but_no_display.gb (6/13/2020 1:53 PM)

By building on background_test.gb, I managed to get to use the UI layer of the Gameboy, but I could not get it to display anything. Yet I could display a custom font on the background layer? Partically working?



m-_sudo_collision_sudo_jumping.gb (6/15/2020 2:00 PM)

This is probably the closest I would consider it an actual demo. Unfortunately, I couldn't get the jumping to function as I needed it to mainly of the nonfunctioning collision system I tried to put in place. It's an 8x8 sprite from the NES homebrew Micro Mages acting as a sudo platforming with sprites from a mix of Castlevania, R-Type, and my own. If you try to jump, you will asend upwards and fall down, but no collision means you will be falling continuously where you stood. Partically Working?



m-_joypad_test.gb (6/16/2020 9:37 PM)

Simple Joypad input test. Clears the screen if you press Start.



m-_16x_sprites_working_movement.gb (6/16/2020 10:28 PM)

Working 16x sprite, with movement. Uses two 8x16 sprites and syncs them both with each other to move.



main2.gb (6/27/2020 8:53 PM)

This was going to be my final project but I never got around to it. What's shown here is a 16x animated mario sprite with some custom background tiles I made. It uses the limit of the background layer for scrolling. If I remember correctly I was trying to get screen scrolling simular to Mega Man or Zelda to work and forgot about the project there.