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.

July 2017

S M T W T F S
      1
2345678
9101112131415
16171819202122
23242526272829
3031     

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 20th, 2017 04:31 pm
Powered by Dreamwidth Studios