News:

Look at this spiffy theme!

 

SMS Homebrew Project

Started by RT-55J, Thu, 2025 - 02 - 06, 11:10 PM

Previous topic - Next topic

RT-55J

The provisional title of this project is Samantha Arantes vs Karid-X and Other Bounty Hunting Tales. I'll edit the title to be less generic once I actually have some stuff to show. :)

This is the goal (as seen in the pixel art topic):



(Any resemblances to Barbuta are entirely intentional.)

Currently I just got the Hello World program provided in Maxim's tutorial working. It was kind of annoying, because the provided .bat file refused to work until I removed the space from the "Hello World.asm" filename.

I'll probably make a short demo (i.e. display an image and respond to input) in ASM before testing out the C toolchain.

I want to have something playable by October.

RT-55J

I did some work on the Hello World tutorial to see if I could get it to display my avatar.

My immediate goal here is to write a nice little scroller demo.

Pictured:
1) "Hello world!" but with the font overwritten
2) "Hello world!" but with the avatar tilemap accidentally being a copy of the tileset
3) "Hello world!" but without a specified width for avatar tilemap
4) "Hello world!" but with the incorrect width for the avatar tilemap (off by one)

(continued in the next post)

RT-55J

5) "Hello world!" with the avatar in place, but with some mystery junk in the top-left corner...
6) "Hello world!" but with those garbage sprites moved offscreen.

Now that's more like it.

(Thanks to BachelorSoft for his wonderful pixelwork.)

neen

nice! i should make a thread for mine, too. it's been a wild few days.

i look forward to seeing how many different problems we both run into

neen

i was thinking of streaming stuff, but today was completely obliterated by my own dumbness.

have you considered streaming dev stuff? i am fascinated and afraid of z80 and master system hardware but i would totally watch

RT-55J

I've thought about streaming devwork just as a means of staying focused and not being distracted by Discord or some nonsense every 5 seconds.

Getting to the point where my browser/desktop looks presentable is a bit of a daunting task though.

RT-55J

I didn't do any work on this today besides making a repository, because I just know I'll want one sooner or later.

RT-55J

Switched from Mesen to Emulicious, because I couldn't find the option in Mesen to display borders (This is Important).

I made a basic VBlank handler that transfers the sprite table from a copy in WRAM to their canonical location in VRAM. There's no visual difference here, but it's progress to a sprite engine, I guess. I'm not sure how performant it is, but it seems okay.

Also I noticed that I accidentally had my avatar one tile to low. This has been fixed.

(Also also, I accidentally posted this in neen's thread last night oopsie daisy.)

neen

rt is on sprites already, i think he's ahead  :smug:


RT-55J

Input is being read and the playfield is being scrolled.

Also I discovered that I have to enable the "mask the right 8 pixels of the screen" register if I want to have things scroll horizontally :mad:

RT-55J

Decided to port over another piece of art I commissioned from Bachelor Soft. (This one had some more out of gamut colors that I needed to finagle.)

The goal now will be to switch between these two at runtime.

neen

it was definitely a background kind of week, for both of us, for sure

RT-55J

Refactored some stuff to be not hardcoded.

Picture A is the result when I mess up some pointer arithmetic. Picture B is the result when I forget to convert the width from tiles to bytes.

And picture C shows a little embellishment I added for spice.

Now to sleep...

RT-55J

Some progress!

Picture 1 shows "Hello World!" 4 times. I swear they're all different under the hood!
  • Hardcoded string copy with rendering disabled (from the tutorial)
  • Same as the above, but in a generic function
  • String copy enqueued while the display is active
  • Tilemap copy enqueued while the display is active (not meant for graphics not text, but whatever)

Picture 2 shows an early attempt at drawing characters one at a time. I forgot to increment the text pointer after reading a character (also, it was really slow because I wasn't resetting the timer (oops)).

Picture 3 is where I'm at now. It's beautiful.

I feel like I'm, like halfway to a cracktro at this point.

neen

even if you stopped now you could still make a visual novel :smug: