-
Content Count
16,912 -
Joined
-
Last visited
-
Days Won
10
Content Type
Profiles
Member Map
Forums
Blogs
Gallery
Calendar
Store
Everything posted by SpiceWare
-
I have it set up so stations' shots won't blow up a station, and likewise the player's shots won't blow up the player. I got preliminary I & P-Type missile logic working this evening, though they both use the same logic and just home in on you. Still need to make it so you can shoot them, plan to do that tomorrow.
-
Breakout is a 2K game, while Super Breakout is a 4K game, which means you can use Stella to create a disassembly. Steps to do this are: Load the ROM Play the game, try different game variations as well enter Stella's debugger by hitting ` (typically above tab, and to the left of 1) type the command savedis The reason for step 2 is that will make the disassembly more accurate because Stella uses the code that was run to differentiate between program code and data.
-
That's an interesting find, thanks!
-
Reworked the stations to fire from the 2 closest pods. For that I revised the closest pod to player tests from before, it now shows the 2 pods it'll fire from as well as the targeting line from the closest pod: draconian_20170619_closest_2_pods.bin Additionally I finally tracked down a bug where you could shoot a station pod that you shouldn't be able to. For that I built another test build (though I forgot to save a copy of the bin, sorry) which would show the last pod destroyed, and the shot that destroyed it. I also had it show the shot further down using another missile, and once more below that using a sprite to show which collision image was used (as the image data to draw a missile is different than the image data for collision detection)*. In reviewing the results the collision didn't make sense - unless the pod image was being treated as a 2X sprite. One of the things I'd recently done was revamp the sprite state to hold flags for various things like 2x, whereas before I used a ranges of image ID values to denote things like sprite sizes. I made the change to use bits in the state variable as those are much faster to check for than a range of values: // constants for gSpriteState, bits fedcba9876543210// f = sprite is onscreen// e = sprite is deadly if it collides with player's ship// d = sprite is deadly if it collids with enemy ship// c = sprite is an explosion (for animation logic)// b = fast animation speed// a = use 4x player// 9 = use 2x player// 8 = show bonus points when explosion finished// 54 = frame countdown for explosions#define SPS_SPRITE_ONSCREEN 0x8000#define SPS_DEADLY_TO_PLAYER 0x4000#define SPS_DEADLY_TO_ENEMY 0x2000#define SPS_EXPLOSION 0x1000#define SPS_FAST_ANIMATION 0x0800#define SPS_4X_SPRITE 0x0400#define SPS_2X_SPRITE 0x0200#define SPS_SHOW_BONUS 0x0100#define SPS_FRAME_COUNTDOWN 0x0030#define SPS_EXPLOSION_TIME_MASK 0x000f#define SPS_4_FRAME_EXPLOSION 0x0030#define SPS_3_FRAME_EXPLOSION 0x0020#define SPS_DECREMENT_FRAME 0x0010 The sprite info is stored in arrays: unsigned short int gSpriteState[MAX_SPRITES];unsigned char gSpriteImageID[MAX_SPRITES+1]; // +1 is used for Station Pod collision detectionunsigned short int gSpriteX[MAX_SPRITES+1]; // +1 is used for Station Pod collision detectionunsigned short int gSpriteY[MAX_SPRITES+1]; // +1 is used for Station Pod collision detectionunsigned char gSpriteColor[MAX_SPRITES]; Key thing to note there is the +1 used for Station Pod Collision detection - gSpriteState didn't have it as it wasn't needed before. This caused the revised collision routine to fetch data beyond the bounds of gSpriteState when it was testing a pod collision. A quick fix solved that problem: unsigned short int gSpriteState[MAX_SPRITES+1]; // +1 is used for Station Pod collision detectionunsigned char gSpriteImageID[MAX_SPRITES+1]; // +1 is used for Station Pod collision detectionunsigned short int gSpriteX[MAX_SPRITES+1]; // +1 is used for Station Pod collision detectionunsigned short int gSpriteY[MAX_SPRITES+1]; // +1 is used for Station Pod collision detectionunsigned char gSpriteColor[MAX_SPRITES]; Lastly I created all new station arrangements for the Gamma Quadrant (these may be revised by Nathan at a later date). For Harmony or Stella (requires Stella 5.0.0-pre8 or newer) draconian_20170619.bin * This is the data to draw a horizontal shot: MG_ShotHorizontal: .byte HMOVE_0 | ON, 0 | WIDTH_4 .byte HMOVE_0 | ON, 0 While this is the data used for collision detection with the horizontal shot: ShotHorizontal: .byte %11110000 .byte %11110000ShotHorizontalHeight = * - ShotHorizontal
-
Thanks! You (and others) may like to check out my Rules of the Game blog* post. One of the things we've figured out is: Bosconian's not a game I'm very familiar with, so the more people that can review the rules and spot things that are incorrect the better! * In general the Draconian blog posts are more technical that what I post in this homebrew forum. Additionally, I put up new builds more frequently in the blog.
-
I suspect it'd be way more hassle than its worth considering how infrequently we create new bankswitch schemes. After DPC+, BUS and CDF, I don't foresee myself involved in creating any others (and CDF only came about because of hardware compatibility issues with BUS).
-
Had a busy Sunday - my folks & I headed down to met my sister & brother-in-law for lunch at The Pumphouse in Victoria, Texas in celebration of Father's Day and my sister's upcoming birthday. Victoria's midway between Houston and Corpus Christi(where my sister lives). Not sure what the arcade does, playtesting while trying to figure that out results in my ship getting destroyed That's one of the reasons for Rules of the Game, to get community feedback to build a better understanding of how Bosconian works. Additionally there'd be the tradeoff between extra code for "sometimes fire from the 3rd pod" or "space for better sounding samples". In this instance, I'd most likely choose the samples.
-
boo? Boulder Dash was what, 10 years in the making? Draconian's looking to be 3 1/2
-
Stella does not emulate H/M(Harmony/Melody), it emulates cartridge bankswitch schemes (all those files that start with Cart). Likewise H/M emulate bankswitch schemes - these are done by a driver. When H/M loads up Pitfall 2, it also loads the DPC driver. To the 2600, there's no difference between that and a real Pitfall 2 cartridge. We've been designing new bankswitch schemes (DPC+, CTY, BUS, CDF) then writing a new driver to implement it. We also write a new Cartridge Type for Stella, so it can implement it as well.
-
You can also check MiniDig, a lot of the content links back to the original posts in the stella mailing list.
-
you know, you could always plug it in, play the first level, and compare it with station arrangement for Alpha and Beta.
-
Have no idea (House would be fitting here too ) Stations fire less frequently in the early levels than the prior builds did. Difficulty will increase once the spy ship, missiles, and formation routines are written.
-
Based on this the NTSC version of Joust is outputting 261 scan lines. PAL requires an even number of scan lines for color, so I suspect you're in Europe and somehow acquired the NTSC version.
-
Considering how much remains to be implemented (ie: everything not green), the scores fairly meaningless at the moment. Once most of that list is done I'll be adding an attract mode, which will display the last score as it demos the game. Depending upon the Quadrant, there's 17 levels for Alpha (Midway) and 22 for Beta (Namco). When you get to the end it starts repeating the last 6 levels. So if you select level A-20 you'll play the first repeat of A-14, while A-A26 would be the second repeat. Quandrants Gamma and Delta currently have a handful of levels each. I might open those up for others to design, if so that'll be in August. Yes, both difficulty switches turn on debug features. The left shows time remaining in Vertical Blank and Overscan, while the right freezes the game so Nathan can review the graphics and make sure I've imported them correctly.
-
4.7.3 is the latest Stable Release. The -pre suffix denotes a preliminary build for the forthcoming 5.0.0 release, there's been 9 -pre releases so far. What's going on is Stella's TIA emulation has been replaced with a newer, more accurate emulation routine. During the process some of the features found in 4.7.3 had to temporarily be turned off. Once everything's back on then Stable Release 5.0.0 will be released without the -pre suffix. Older builds of Draconian were written using bankswitch scheme DPC+. Draconian's been rebooted to use CDF, which we started working on back in February. 4.7.3 is from November, so it has no idea what CDF is. You can reference replies 135 and 139 to see some of the visual improvements I was able to do by using CDF instead of DPC+.
-
Usually I'd be posting the source as well, but CDF's still a work in progress. We don't want the driver to get out until we've finalized it as it's possible we'll have to change how it works, and thus break backwards compatibility in Stella like we did with BUS.
-
Closest pod and neighbors include pods that have been destroyed, so if all 3 are destroyed the station won't fire at all. As such, A shouldn't be shooting at all as the closest is the pod aabove the ship, and it's neighbors are the leftmost pod and the destroyed pod to the right. Shooting from A could happen if you were flying to the left just before that screenshot was taken.
-
Well it did hibernate for a few years while I got sidetracked with other things like Bus Stuffing. While Bus Stuffing didn't pan out, it taught us enough to create CDF, a new bankswitching scheme, which lead to drastic improvements in Draconian.
-
Yes, I've agreed to be on a panel at PRGE, so my goal is to release it there. We did the same for Space Rocks when I attended back in 2013.
-
Major update to the station shot routines. In the prior builds the stations would randomly shoot in 1 of 8 directions. Now they: can shoot in 32 directions only the pod closest to the player, and that pod's neighbors, can shoot at the player each pod has a "cool down" timer. Before each station had a single timer. "when to shoot" is randomly decided based on the selected difficulty level and the sector you're in* duration of the "cool down" timer is based on the selected difficulty level and the sector you're in* station shots now take out asteroids and mines (and the player scores points) station shots are now slightly slower than the player's ship The last 2 are to match the arcade. For Harmony or Stella (requires Stella 5.0.0-pre8 or newer) draconian_20170617.bin * these still need further calibration
-
In the prior builds the stations would randomly shoot in 1 of 8 directions. I've revised the routines to do the following: station shots can travel in 32 different directions identify the pod closest to player randomly decide to shoot from that pod, as well as the 2 adjacent to it (the chance of firing is tied to the difficulty level and the sector you're in) each pod now has a unique cool down timer before it can shoot again (before it was 1 timer for the station as a whole). Cool down duration is tied to difficulty level and sector you're in. station shots can take out asteroids and mines (and the player earns points!) station shots are now slower than the player's ship It took a few iterations to get this working, and I thought y'all might find the test builds interesting! First off was the "closest pod to player" detection test. draconian_20170613_closest_pod.bin Then was direction to fire from the identified pod. Identified direction is drawn using a line of stationary shots, though they are still deadly. This showed a few issues such as if you attack from the bottom of the station the station preferred to shoot straight down, making it easy to hit an open core, while if you attack from the top the station preferred to shot at an angle, making it easy to take out the pods. draconian_20170615_direction_test_2.bin After a few iterations I go the targeting to work much better. In this build the line of stationary shots is no longer deadly as I extended the line. draconian_20170617_direction_test_3.bin While the routines are functional there's a few things I need to do before they're finalized: decide if the firing should be from the 2 pods closest to the player rather than 3 pods (the closest pod and it's neighbors). I'm leaning towards 2 pods as I often see one of the neighbors shooting slightly through the station. fine-tune the cool down timer fine-tune the random chance of firing For Harmony or Stella (requires Stella 5.0.0-pre8 or newer) draconian_20170617.bin
-
No bus stuffing in CDF. Stella is how I got back into the Atari. I ended up getting a light sixer to help with my port of Stella to OS/2. At the same time I was introduced to homebrews with Okie Dokie and Oystron.
-
Very true - the Bus Stuffing exploration was really fun, but sadly proved to have issues on a number of systems (mostly NTSC Juniors). On the plus side, we were able to take what we learned and created CDF, which lets us do a lot more per scanline than DPC+ due to the new Fast Jump feature. If anyone's interested in CDF this blog entry covers most of the new features, with the exception of Fast Jump which was added about a month later. I'm putting the new features to good use in Draconian. We still have some issues to resolve with CDF (namely compatibility with my Evil 7800). Once those are resolved, and I've finished Draconian, I plan to write up a tutorial on using CDF.
