It’s almost done! I think the only thing left is to theme the dialog boxes to match the rest of the UI. And cleaning up the code a little. Saving and loading is super jank. Gamemaker doesn’t have file selection built-in, so I resorted to plain text paths. But it’s fine because I’m finishing on…
Category: Programming
Spray Paint, #3
Today I added the color picker! I went with the simplest option: HSL sliders with no preview and no color wheel area. It still needs the “set color from RGB” button, but it’s working! I’m almost done with the core features. Maybe this really will be a short project.
Spray Paint, #2
Today I added the droplet size and brush speed sliders! I’m trying to figure out what to do for the color picker. I’d like to do HSL sliders, but I’d have to pre-render them. The problem is how Gamemaker handles colors. It requires creating a color instance before drawing, and that’s a problem if I…
Spray Paint, #1
The brush size slider is working! And it has a preview! I love making things in Gamemaker because it doesn’t judge me for doing stuff like setting the brush size by using sprite width as a percent.
Spray Paint, #0
Spray paint is my new favorite feature of Microsoft Paint. In all the other drawing programs I’ve tried, nothing quite replicates it. The only problem is that the largest brush size is tiny. I’ve managed to work around it so far, but yesterday I had a drawing idea which really requires a larger brush. I…
Learning Assembly, #24
Today I finally finished implementing sprite horizontal positioning! I still need to spend more time to fully understand it, but it’s great to see it working!
Learning Assembly, #23
Today I continued implementing sprite horizontal positioning. I’m realizing that this course is taking me much longer to complete than the 3D graphics course. Maybe I’m losing interest or maybe I just have other things I want to do at the same time. I’m liking this pace, though. It feels less rushed and like I…
Learning Assembly, #22
Today I started implementing sprite horizontal positioning. It’s not quite done yet, but I think it will be straight forward. I wonder if it’s possible to move things in circles with sine and cosine, like in PICO-8, or if those kinds of operations are at odds with assembly.
Learning Assembly, #21
Today I continued learning about horizontal positioning! So, more about horizontal positioning. The shortest loop to wait on the beam uses 15 pixels per loop. I can set the position of objects using the loop, but I need something else in order to set their position between those 15 pixel increments. The TIA chip has…
Learning Assembly, #20
Today I finally started learning about horizontal positioning. It’s every bit the wild ride I anticipated and I wouldn’t have it any other way xD Here’s kind of how it works: positioning things on the Atari involves timing with the CRT display because the CPU and display run in sync. To position things vertically, you…
Learning Assembly, #19
Today I got the vertical positioning working! I’m still not quite used to some assembly specific things, like setting the carry flag before performing subtraction, but that should come with more practice.
Learning Assembly, #18
Today I learned the theory of a better way to vertically position screen objects. So far, I’ve been manually drawing empty scanlines, but it’d be much better to have a system which tracks the current scanline and start drawing when the beam reaches their position. Tomorrow I should have it working!
Learning Assembly, #17
Today I learned about the relationship between processor registers and RAM addresses. It’s like the processor has a limited number of slots to work with and it has to use RAM to store more. It makes so much more sense to me now, that higher level languages’ variables are actually memory addresses and when they’re…
Learning Assembly, #16
Today I learned about defining names for memory addresses, which are a lot like variables. I also set the playfield to use the player 0 and player 1 colors. One thing I’m not sure about is, if the playfield only mirrors or reflects the left side of the screen, what happens when the players have…
Learning Assembly, #15
Today I finally got the Atari’s TIA screen objects working! It was less difficult than I thought and now it almost feels intuitive, loading the sprites from ROM into the player graphics memory. I don’t know how to change the players’ X positions, but I think that’s coming up next.
Learning Assembly, #14
Today I learned more about the Atari’s TIA screen objects, like the player 0 and 1 sprites. I’m not done yet with the code to display them, so here’s a grid pattern I made with the playfield: I didn’t realize the playfield could display multiple colors per frame. I’m not sure how I missed that,…
Learning Assembly, #13
Today I played with the playfield! I made a checkerboard pattern and a modified version of the last rectangular pattern. I also learned that I can nest repeat statements, which made the checkerboard easier than using another register to loop.
Learning Assembly, #12
Today I worked on using the Atari’s playfield! It’s pretty simple right now, but I think it should be easy to draw something more complex.