Jump to content

SpiceWare

+AtariAge Subscriber
  • Content Count

    16,912
  • Joined

  • Last visited

  • Days Won

    10

Everything posted by SpiceWare

  1. Specifics are you have to destroy a pod or a station within a certain amount of time to prevent it. The amount of time is controlled by the difficulty level
  2. condition red can also occur if you linger on a level too long.
  3. Revised launching of spy ship For Harmony or Stella (requires Stella 5.0.2 or newer) draconian_20171013_RC6.bin Source draconian_20171013_RC6.zip
  4. After playing a bunch of games on HARD I've made one last change to how the Spy Ship launches. The Spawning routine for I-Type, P-Type picks a random side to come in on. For the Spy Ship it picks the side in front of you. Once a side is picked, a random # from 0-127 generated, then centered on that side. If you're flying diagonally it will randomly pick one of the two sides in front of your ship. Problem was if the spy ship was positioned at either of these spots: condition red would happen almost immediately as the spy ship would end up offscreen. So what I've done is make the random # from 0-63 if you're flying diagonally, then centered so the spy ship appears closer to the center of the selected side. For Harmony or Stella (requires Stella 5.0.2 or newer) draconian_20171013_RC6.bin
  5. One of the benefits of Melody boards is Al can build all the carts, then flash the programs on them later. I'm hopeful this is the last bug fix, though the worst case scenario is he makes me flash all the carts in Portland (I get there Wednesday evening)
  6. Fix issue where stations could take out another station's docked E-Type missile, whose explosion would take out the station it was docked too. Condition Yellow now includes "station onscreen". Before it was only tied to the presence of enemy missiles. This oversight was mostly noticeable when playing KIDS or EASY. Reduced the number of directions an I-Type and P-Type missile will enter the screen. This makes it less like a missile will show up then immediately fly offscreen. updated AA Jingle This is the new Release Candidate. Please play it as much as you can and report any bugs right away as I hit the road for Portland first thing Saturday morning. For Harmony or Stella (requires Stella 5.0.2 or newer) draconian_20171012_RC5.bin Source draconian_20171012_RC5.zip
  7. Fix issue where stations could take out another station's docked E-Type missile, whose explosion would take out the station it was docked too. Condition Yellow now includes "station onscreen". Before it was only tied to the presence of enemy missiles. This oversight was mostly noticeable when playing KIDS or EASY. Reduced the number of directions an I-Type and P-Type missile will enter the screen. This makes it less like a missile will show up then immediately fly offscreen. updated AA Jingle This is the new Release Candidate. Please play it as much as you can and report any bugs right away as I hit the road for Portland first thing Saturday morning. For Harmony or Stella (requires Stella 5.0.2 or newer) draconian_20171012_RC5.bin
  8. I'll ping iesposta on this, he created the sound effects.
  9. I have a fix in place where the stations can shoot E-Types, but not when they're docked. If you prefer it's a simple change to make them never can shoot E-Types, though E-Types in a formation would still be fair game.
  10. Nice find, these ∆ sectors sure are shaking out the bugs! Looks like what's up is the station's taking out the E-Type missile, but since it's docked its explosion takes out the station... I gather the question becomes should the station shots not be able shoot E-Types at all? Or they can, but only when the E-Types are not docked?
  11. The phrase "Condition Red" will repeat periodically, like the arcade fixed mystery explosions This is the new Release Candidate. Please play it as much as you can over the next two days and report any bugs right away. For Harmony or Stella (requires Stella 5.0.2 or newer) draconian_20171011_RC4.bin Source: draconian_20171011_RC4.zip
  12. The phrase "Condition Red" will repeat periodically, like the arcade fixed mystery explosions This is the new Release Candidate. Please play it as much as you can over the next two days and report any bugs right away. For Harmony or Stella (requires Stella 5.0.2 or newer) draconian_20171011_RC4.bin
  13. Looks like another RC will be coming. Nathan had me make a minor change so that "Condition Red" repeats periodically like it does in the arcade. I dropped it in during lunch and while testing it I noticed this: 1 pod explosion 4 station explosions 1 ship explosion !?!? 4890 + 200 (pod) + 1500 (station) = 6590 so the mystery explosion didn't earn any points, but still puzzled me. Then I recalled I had to add a special routine to handle station explosions taking out enemy ships and took a closer look: // station explosions are deadly to enemy ships but not the player. // They reuse stationary sprites, but aren't in the correct vertical // band to be processed with the normal collision handling, so we'll // handle their collision processing here. if (i >= FIRST_STATIONARY_SPRITE && ((gSpriteState[i] & (SPS_DEADLY_TO_PLAYER| SPS_DEADLY_TO_ENEMY)) == SPS_DEADLY_TO_ENEMY)) { for(j=ETYPE_SPRITE;j<FIRST_STATIONARY_SPRITE;j++) { if (j != PLAYER_SPRITE) { if (Collision(gSpriteImageID[j], gSpriteX[j] >> X_FRACTION_BITS, gSpriteY[j] >> Y_FRACTION_BITS, i)) EnemyDestroyed(j); } } } and realized it was missing a rather important bit: // station explosions are deadly to enemy ships but not the player. // They reuse stationary sprites, but aren't in the correct vertical // band to be processed with the normal collision handling, so we'll // handle their collision processing here. if (i >= FIRST_STATIONARY_SPRITE && ((gSpriteState[i] & (SPS_DEADLY_TO_PLAYER| SPS_DEADLY_TO_ENEMY)) == SPS_DEADLY_TO_ENEMY)) { for(j=ETYPE_SPRITE;j<FIRST_STATIONARY_SPRITE;j++) { if ((j != PLAYER_SPRITE) && (gSpriteState[j] & SPS_DEADLY_TO_PLAYER)) <<<---- important bit after the && { if (Collision(gSpriteImageID[j], gSpriteX[j] >> X_FRACTION_BITS, gSpriteY[j] >> Y_FRACTION_BITS, i)) EnemyDestroyed(j); } } } I forgot to make sure the sprite was still active. So the mystery explosion is most likely because another sprite was taken out of play right next to the station. So I backed up the recording: and sure enough, the leader of a formation was taken out right there. The reason no points were earned is because EnemyDestroyed() checks the Image ID of a sprite to figure out points. It looks for E-Type, P-Type, etc but not for explosion images, which was the last thing drawn with that sprite. Minor issue is I'm 3 bytes shy so need to come up with another optimization to fit the fix in.
  14. The Save Key include file is like the macro.h include file, a bunch of macros so no space is used unless you use a macro. Only one I tried was on line 2542, and is commented out. ; i2c_subs ; 109 bytes for savekey subroutines I wrote a tool you can find in the audio directory where I did an experiment with storing the sound effect data in a different format to see if it would be worth pursuing as the new, more complex, sound effect driver would take up more room. I neglected to include a readme explaining it, so just wrote one and added it to the blog entry. When I last ran it the data savings was about 160 bytes, which, after considering the increase in driver size, I didn't think would be enough to justify the time spent to rewrite the audio driver (especially with everything else I had left). I just ran it against the final audio data, the _13a_music_opening (and _13b...) was not in there for the prior run, and the new format would now save 204 bytes for the data. Since I never rewrote the audio driver, I don't know how much larger it would become so don't know what the net savings (if any) there would be. Thanks, and you're welcome.
  15. For my recent round of rearranging I changed it to ORG $7000 and commented out the RORG statements. Worked great, thanks!
  16. Thanks! No, those sound effects didn't make the cut. That's one of the tradeoffs that comes up with only having 2 audio channels, compounded by the fact that one of them gets interrupted all the time to play the speech samples.
  17. World-Wrap logic added to Collision Quad to fix ship-station collision issue Keatah found Minor tweak to ∆-11 Fix scoring/flicker issue with stations. See details in Reply #463 This is the new Release Candidate. Please play it as much as you can over the next few days and report any bugs right away. For Harmony or Stella (requires Stella 5.0.2 or newer) draconian_20171010_RC3.bin Source: draconian_20171010_RC3.zip Audio readme: readme.txt
  18. World-Wrap logic added to Collision Quad to fix collision issue Keatah found Minor tweak to ∆-11 Fix scoring/flicker issue with stations This is the new Release Candidate. Please play it as much as you can over the next few days and report any bugs right away. For Harmony or Stella (requires Stella 5.0.2 or newer) draconian_20171010_RC3.bin
  19. While play testing I noticed the explosions of the stations were sometimes odd, with more flicker than there should be. So I started looking and spotted something odd in the code. Station Destroyed routine, in pseudo code: StationDestroyed(int station) create 4 explosions disable station sprite increase score 1500 points trigger sound effect if E-Type is attached EnemyDestroyed(station + endif Enemy Destroyed routine: EnemyDestroyed(int index) if sprite is E-Type if E-Type is attached detach from station StationDestroyed(index - endif increase score 70 points trigger sound effect trigger explosion sequence for sprite(index) endif The thing I spotted was in EnemyDestroyed the routine detaches the E-type from station, but it doesn't in StationDestroyed. What that means is if you hit a docked E-Type this would happen: EnemyDestroyed() - 70 points StationDestroyed() - 1500 points but if you hit the station while the E-Type is docked, this would happen: StationDestroyed() - 1500 points EnemyDestroyed() - 70 points StationDestroyed() - 1500 points So I did a recording: 1650 + 200 (pod destroyed) + 1500 (station destroyed) + 70 (e-type destoryed) + 1500 (extra station destroyed) = 4920 So StationDestroyed is now this: StationDestroyed(int station) create 4 explosions disable station sprite increase score 1500 points trigger sound effect if E-Type is attached detach from station EnemyDestroyed(station + endif Which fixed the scoring as well as the flicker issue. The excess flicker was because 8 explosion images were being created for 1 destroyed station when it should have been just 4. This also means your scores are most likely going to decrease in the next RC.
  20. Did some rearranging during lunch, fix is in place: ---- 17 bytes free for ARM Code, samples, & graphics ---- 1 bytes free for table data left ---- 4 bytes before FirstResbl ---- 0 bytes of Bank 6 left I also did a quick run of DOOD for the above. I kicked it off again though as the longer you let it run the more it finds: D:\DOOD v0.94>"DOOD v0.94.exe" images.asm images.dood -s ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ ³ ³ *** DOOD - Data Overlapping Optimizer for DASM *** ³ ³ ³ ³ (C) 2013 - Thomas Jentzsch Version 0.94 ³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ reading input data... 139 blocks calculating overlaps... 0.1 bytes average theoretical minimum size: 2067 bytes (14.8% savings) optimizing overlaps... size: 2425 (0 iterations) size: 2117 (1 iterations) size: 2115 (8 iterations) size: 2113 (16 iterations) size: 2112 (102 iterations) size: 2110 (122 iterations) size: 2109 (735 iterations) size: 2108 (9308 iterations) size: 2107 (10001 iterations) size: 2106 (201526 iterations) so I'll let it run until this evening. I believe I stopped the quick run when it was at 2108, so it's already found a couple more bytes on the extended run.
  21. No problem. I've updated the level data so it'll be in RC3: #define DELTA11 43 // draconian_20170929_alex_79.bin ∆ 3 { 128, 128, // Star Fighter X, Y location 8, // Station Count // STATION ORIENTATION // 8 7 6 5 4 3 2 1 0xd1, // VS VS HS VS HS HS HS VS { 0, 1, // VS Station 1 X, Y location 121, 0, // HS Station 2 X, Y location 242, 0, // HS Station 3 X, Y location 0, 120, // HS Station 4 X, Y location 240, 121, // VS Station 5 X, Y location 0, 240, // HS Station 6 X, Y location 120, 241, // VS Station 7 X, Y location 240, 241 // VS Station 8 X, Y location } },
×
×
  • Create New...