owsf2000: (Default)
I've been burnt out on actual coding for a while now - granted all I do is code in 7800Basic for the Atari 7800.

Between 2018 and 2020 I spent a lot of time planning some games, writing things down etc.

Last week I went back to Graze after watching a streamer play it for about 10 minutes. Well, almost 10 minutes I guess. The game is basically in alpha so I can't really say I'm surprised, although it was a bit of a pain to watch it being streamed between games that are in advanced beta and fully finished games. ^_^

For right now I've just been doing some tweaks outside of the game kernel itself, taking the feedback I saw in the comments and the like into consideration. One thing I did do however is write down exactly how the wave mechanic will work. These will basically be the stages. Pretty straightforward - you collect icons to activate special events, including the boss of the level. Once the boss is defeated, the wave is over and bonus points are calculated. Various things get unlocked by beating bosses and special events, including new icons that can be collected to unlock newer events - including the next boss in the list.

The only combination that will be easily available will be the one for the current wave's boss. If there are any other special event combination that's available are 'hidden' in that there's no particular effort to advertise them as is. However I plan to add a random combination during the bonus point awarding between waves. It'll be randomly selected but will be one of the codes that were available on the wave that was just beaten. Perhaps for the final stage, it'll display one after the last boss was completed during the final bonus points calculation.
owsf2000: (Default)
Still haven't had another game night yet. Some random gaming, sure, but no concentrated effort on a particular game. While goldpseudo was in town on his trip across Canada, we swapped some games/dvds/etc - mostly dups we had. On my side of the deal I got a few NES and SNES games.

Of those I'm stuck between deciding if I want to focus a game night on either Final Fantasy (NES) or Super Metroid (SNES). I was about to start Super Metroid last night but it seems the hookups for the SNES aren't with the SNES... As such tonight I'll probably just hook the NES up and start in on Final Fantasy. I'll do a little digging for the SNES hookups before then but I honestly don't even know where to start looking for them.

With regards to the 7800Basic tinkering I managed to adjust the game play as indicated in the last post. I also added a master clock in the background that keeps track of the total time the current game has been running - it'll display itself on the game over screen.

Not a lot of progress, I agree, but at this point the code is all over the place. I spent more time last night removing old player 2 variables both in the variable lists and in the code itself than with the actual gameplay changes! The next thing I want to add to the game is a bit more creative effects when you lose a life or hit a game over. (little explosion effects for instance instead of simply disappearing) However... that didn't go well! I think I'm going to have to spend time during this next week just looking at reorganizing the code.
owsf2000: (Default)
No game night again this weekend. While the weather has been pleasant for the first time in a month this weekend I just didn't feel like gaming much. I did play a bit more of Hatsune Miku Project Diva Future Tone (PS4) on a few songs. The main goal there was to increase my rank in the leader board for a couple songs. On average, on Hard difficulty, I seem to rank around 2000-3000 in most songs.

For the few songs I tried to actively increase my standing I've landed with spots around 240-300. To get those I had to get a Perfect along with "Cool" ratings on over 90% of the notes. Not easy to do - and there's certainly room for improvement as shown by the people above me in the rank. I did notice today that there was another way to increase the score - if you have two hold buttons one after the other you don't have to stop the first to do the second. In fact if you just press down the extra button it'll combo. This means I've been missing a lot of points in a few songs!

But I'm tired of playing it for now.

I also played a little bit of Scarlet Curiosity to raise up the levels of Remeilia (I'm sure I'm spelling her name wrong :P). I was doing that to try to get one of the last few trophies for the game, where you have to do over 10000 points of damage in a single hit. X_X

Somehow I managed to do that tonight. Must have hit a weak enemy with a max critical.

For the rest of the night I plan on tinkering a bit more on my game project with 7800Basic. I'm restructuring the game mode so that the timer works differently. Right now the timer only counts down to 0 then switches to a new wave - resetting it's timer and continuing. Since this game is all about trying to graze and destroy the enemies on screen I've decided instead to alter how the timer works. Now it will count down to 0 as before but if you graze an enemy time will be restored a bit. Longer grazes will of course increase the timer more. If the timer hits zero, it's game over. There are still extra lives, but the timer going to zero will forfeit them.

I did several parts of the timer alteration already earlier this weekend. Tonight the main task is just to adjust the timer's properties, add in the timer bonus via grazing, and add in the game over check for the timer hitting zero.
owsf2000: (default)
Still working away at Graze, slowly but surely. I didn't have any weekly release this weekend since it's been hot which makes me useless. Also there's a bunch of things I want to accomplish in this update and only a portion of them are added so far.

For this week however, I did have some kind of release to show people - a demo program for showing a way to aim a projectile at a target. I'll be using it in Graze, but since it's got lots of uses I whipped up a program demonstrating it and posted it and it's source on Atari Age. Pretty simple concept overall, although it needs refinement. That's part of what I need to do for this week - adjusting and narrowing the resulting speeds. The demo itself has them moving a little too fast at times.

Otherwise when I haven't been working actively on Graze I've been just putting some thought into other potential game ideas to work on after it. Beyond thinking of how it would work I haven't done any actual work on these and I don't really plan to until Graze is finished - to keep me focused. ^^

One of those ideas included trying to make an exceptionally brutal pseudo-sport variation on Hockey. I figured what game of hockey is complete without death cannons amirite? These kinds of odd sports games are right at home on the 7800 imo, given it already has Ninja Golf.

Another idea, while it might not be possible without the XM unit (That is not yet released, so this idea is more in the background than the hockey game.) is to try to do "OW!SF7800". Basically in practice it'll look more like the original OW!SF dos game, but perhaps include elements to the OW!SF2000 PC game that never went anywhere. :D

goldPseudo managed to extract the original sprites from the dos game last night, so at the very least we have something to start from - even if out of the 3 characters, we'll only be able to officially use either 1 or 2 of them. (Johnathan, naturally, and maybe Nic-chan, if we can get RockmanX's approval - assuming we can find contact info for him. ;)
owsf2000: (default)
For anyone who's interested, you can see the details of the development of my first Atari 7800 game right over here!

I've mentioned it before a few times recently, although it's progressing nicely and currently playable.

You will need either MESS/MAME or Prosystem in order to play it. MESS is included in MAME at this point it seems, and the latest version of Prosystem is linked on the atari age forum.

Prosystem is less accurate (particularly for the colors!) but I find it easier to run. MAME actually crashes/bluescreens my computers.

Anyway, the goal of the game is basically to graze against the enemies that fly on the screen without letting them score a direct hit. Essentially the white dot in the center of the character is what you can't let enemies touch. Your suit charges as you graze, and when it's strong enough it'll let you destroy the next enemy you hit instead of the other way around!

The next thing up will probably be adding powersups. I've got a bunch of ideas for them already, although I've been letting it drag out because I wasn't entirely sure how I wanted the powerups to work (how to obtain them.) Pretty much going to go with the idea that you'll have to destroy the enemy it's attached to at this point, which means you'll need to have some grazing done in advance!
owsf2000: (default)
So, I did finally settle into a game to try to code on the 7800 using 7800Basic.

It's taking form, as it's a fairly simple concept. Enemies fly in from the sides, your main goal is to graze against them (tag them essentially) without taking a direct hit from them. Your character has two bounding boxes. One that covers most of your character, the other that just pinpoints roughly the center of the sprite. If the outer box collides with an appropriate enemy without the inner box colliding, points are awarded.

The enemies come in waves, you have to last out the duration. At the end of each wave bonus points are awarded as applicable.

Biggest problem is testing on real hardware - I can't do it right now. Even worse, I can't run MESS/MAME either, as it crashes both my computers apparently. MESS is apparently pretty close to real hardware as shown by people who have been doing some tests/screenshots for me. I can use Prosystem... but prosystem isn't anywhere near as accurate. It serves for some basic testing, but I can't trust what I see in prosystem to make it to real hardware. For one it's far more generous on how much can be plotted. This isn't good since while it looks ok to you, you'll have missing information on the screen when playing on real hardware.

Still, things are progressing.

I'm using a high resolution mode for now, "320B" which should give access to 2 4-color palettes. (3 colors plus background for each really). However I've been finding it seems to glitch out with one of the palette registers. P0C1 (and P4C1) seem to fail to show up when they're sharing a pixel-pair with itself or the background color - both pixels simply end up as background. There are some predictable situations when they show properly but this places limitations on exactly where that color can be used in a sprite image.

That's assuming I'm right in what I've seen via testing...

If it seriously gives trouble, I might just downgrade to 160 modes, but I'd really rather keep this game in 320 if I can...

This Week

Feb. 22nd, 2015 03:26 am
owsf2000: (default)
Ok, I've been having this wicked cough and stuffed up nose/runny nose system that's been pissing me off all week long. Today... seems a bit better... at the very least full blown coughing fits aren't common.

Either way I decided to take this week off from work as vacation so I don't need to be making a long walk to work each day which might be part of why it's taking so long to get it under wraps. :/

But anyway, since I'm not feeling like total crap (and never was beyond the above two symptoms) I think I'm going to try to work on the 7800Basic some more. I've been rather lax with it since this started.

I'll just make three main goals to complete for next weekend.

1. Start making some tiles I can use in the final game. (Granted it may change from now to then, but I'll use these as I test) I could either work on overworld tiles, or town/etc type tiles.

2. Since I got my horizontal scrolling to work smoothly I wanted to alter it to make it more usable. Right now the player is locked to the center of the screen. And while I want the system to center the player whenever possible, I want the player to move to the sides of the screen when the edges of the map are reached. This is also needed for allowing fixed-point movement. Where the player can move faster or slower than one pixel per frame. The current setup doesn't allow for it, particularly for going faster than 1 pixel per frame. This is the BIG thing. Conceptually I think I already have it worked out though...

3. Solid tiles. IE: make it so that certain tiles can stop the player from moving on to it. Walls, closed doors, water, etc, are all examples of that for exploration maps. For overworlds, you'd have mountains, ocean/lakes/etc

I still haven't quite decided if I want to attempt 320-resolution modes or not. The color limitations are pretty staggering. Looking at the 7800Basic documentation, it is possible to split the screen so that the top and bottom (programmer determined) are split modes. One is 320, the other 160. I'll DEFINITELY be making use of that for some things, particularly speech balloons. Might see about doing that for a status screen as well, where information is more important than flashy colors...

Well, there's lots of things I plan on doing for the game, and I'm sure I'll write notes down for a lot of it as I go, but this week if I can manage the above three things I'll consider the week a complete success.
owsf2000: (default)
Continuing on with the 7800 programming, one thing I wanted to use for the game I have in mind is multidirectional scrolling. 7800Basic doesn't support any scrolling out of the box yet however. Vertical scrolling doesn't look doable at all unless I have it jumping block by block, but horizontal scrolling I was able to mostly enable by making use of plotmap. Basically I just wrote a larger map to store in the ROM, made sure plotmap was aware of it, and then had plotmap move through the map as needed.

That alone would have also had a bit of jumpy behaviour by 8-pixels/1-block, but on the horizontal direction I can start the actual map pixel-perfect in 160 modes. In 320 modes it would be by 2-pixel increments but I've decided to hold off on 320 modes for right now - now that I'm more aware of the color limitations being a little more harsh than I remember. (But I do still want to attempt it, particularly for the world maps.)

My only stumbling block on horizontal scrolling was that the screen couldn't be made to stop cleanly at borders. It would cause bouncing instead, which is undesirable. Thinking about it now I think I have an idea for cleaning that up, but I'll test it tomorrow.

So in the meantime, while I wait and hope for scrolling to be implimenting directly by 7800basic, I'm going to work on some dungeon graphics and how to import them into 7800basic. The particular graphics I'm working on will be larger than a single sprite however and my drawing is still far below par... What I'm thinking of doing is buying some graph paper and drawing on that for perspective - then scanning that in to the computer, resizing it for what would be needed on the 7800, then do touch ups from there. Might be a lot of work but eh. We'll see how it goes.

I estimate these particular graphics will fit within 2 palettes (3 colors each + background) using 160A mode. Technically I can probably do it with just one palette which would be fine too... I should probably aim for 3 colors in the off chance I try to change this to 320 mode as well... (I'm probably fine with 160 for this part of the game however, just to make sure there's more color available.)

7800basic

Jan. 24th, 2015 08:17 pm
owsf2000: (default)
As a follow up to the last post, I'm actually working on stuff! :P

Last year I tried to do a screen builder on the 7800 using assembly. I almost got it working. But not quite. I don't know if the issue was with something I did or if it was just the emulator not doing things perfectly. Either way, this time around I'm going to try to use the 7800basic compiler developed by RevEng on Atari Age.

Since the 19th, I've more or less got a good idea of the style the game will take and started a list of the various usable items you can find in the game. So from here, before I got any further I started tinkering with 7800basic itself.

The installer .bat file, which really doesn't do anything beyond set up the path to the program itself, failed to run on my comp. Apparently need Vista or later for some functionality it has. But no problem! The readme file explains how to set them manually for the older folks. Once I got that done, I tested it by trying to compile some of the sample programs. Works!

Also, while it's still a ways off yet before I'll need this, I downloaded and installed the Tiled program, which is used for making 2d tile maps for games. It's not 7800-specific, in fact it's intended more for PC games in general. So long as the maps made keep to the limitations of the 7800, I can make maps with it and import them into the game rom at compile time. It'll open and read the file for me and set stuff up then I can just use it as needed.

Either way, the installation worked. And I can run the program - I had to check that in particular because there are some programs I use to use on older computers that instantly reboot this computer. X_X

Anyway, Tiled works. 7800basic works. Project looks like it's off to a good start, but I still have to learn the syntax of 7800basic - it's similar to regular Basic but it's obviously not the same. It has it's own limitations, special commands for working configuring the game parameters (rom size, pcb configuration/assumptions (does it have onboard ram, etc)).

Some of what I'm reading is very promising and looks like it might be extremely useful. And while I want to avoid it if at all possible, you can add inline assembly code in the games as well. There are routines for handling the pause button, software collision detection, saving/restoring/clearing the screen, and several methods of interacting with the sound. Either using the TIA sounds in the console itself or making use of a pokey chip on the cartridge. I hope this gets expanded support whenever the XM module is released since that will have a pokey plus another chip - a YM2151 or something similar.

I am on the preorder for a XM module. So I have no problems with trying to write this game to work on that. But we'll see.

A couple of things I need to get my hands on however will include a ram cartridge so I can test roms on real hardware instead of relying on emulators, and perhaps a new 7800. My 7800 is a bit beat up, but I'd like to get a later model - one of those without the expansion port.

Trying to save up cash either way, so I'll see about getting at least a ram cart by the summer. The second 7800 is more optional.

I also have an AtariVox unit that can be used for this. It's basically a game save module for the Atari 2600, but it works just fine in the 7800. Could use that for save games, as I think 7800basic supports it.

Either way, I'm already working past my Feb 1st deadline. Moving on to getting comfy using 7800basic, and attempting to modify the sample programs to see how things change, I'll probably try to make my own graphics file and get that to compile with one of the samples.

April 2025

S M T W T F S
  12345
6789101112
13141516171819
202122232425 26
27282930   

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 6th, 2025 03:13 pm
Powered by Dreamwidth Studios