[stella] RPG Kernal

Subject: [stella] RPG Kernal
From: Paul Slocum <paul-stella@xxxxxxxxxxxxxx>
Date: Fri, 18 Apr 2003 02:40:17 -0500
I'm a bit nervous posting this since this will be the third RPG kernal posted to Stella in the last several years without a working game ever appearing! But here goes...

I'm planning on doing a turn-based RPG with a code system to save your place. The target platform is a 32k F4 setup without extra RAM.

I've created a 10x10 tile based kernal with 8x10 tiles that also allows for some coloring using the playfield. Each line can choose a different color for the playfield and shade some characters to make the water blue, rocks brown, etc. The tile graphics are generated using my own version of the method used in Stellar Track and Basic Programming. The flicker doesn't look so good on emulators, but it's barely noticeable at all on my TV.

The tile graphics are displayed from RAM, so it allows for the world data to be compressed. I believe that with a good compression scheme it will be possible to create a *very* large world. And since it's not an action game, it will be acceptable to take more than one frame to decompress the world data. I plan on making the world scroll if it's possible without too much of a delay.

I found an interesting problem in Z26 while creating the kernal. I was attempting to remove the HMOVE bars by putting an HMOVE on every line, but I have to use the 74th cycle HMOVE on some lines to shift the players left by 8 clocks. Since a 74th cycle HMOVE doesn't generate the bars, I thought maybe I could do two HMOVEs in a row to also get the bars. This worked great on Z26, but unfortunately it doesn't work on the real thing. On a real Atari, the second HMOVE cancels the first one and the players don't move at all. (If you aren't familiar with the 74th cycle HMOVE, check out the link -- I just learned about it myself.)

See what you guys think and if you have any suggestions. Currently it just displays two demo scenes. I have maybe 6-7 cycles left per line during the kernal that I can't think of any way to use, although the timing is a bit restricted.


Attachment: rpg.bin
Description: Binary data

Current Thread