Jump to content
IGNORED

Draconian (2600)


SpiceWare

Recommended Posts

I've played the latest build for about an hour over the past couple days and I haven't seen any white ships.

 

Been playing a bunch as well, still haven't see any white ships nor encountered ships that I can't destroy so the bug is pretty rare. I finished reviewing the uses of gSpriteState last night and did not see anything that said "potential problem". I think what I'll do is revise the testing from this:

  • MissileCollisions() tests for SPS_DEADLY_TO_PLAYER
  • MoveEnemyShips() tests for SPS_ENEMYSHIP
  • MoveFormation() tests for SPS_DEADLY_TO_PLAYER
  • MoveSpyShip() tests for SPS_DEADLY_TO_PLAYER
to this:
  • MissileCollisions() tests for SPS_DEADLY_TO_PLAYER or SPS_ENEMYSHIP
  • MoveEnemyShips() tests for SPS_ENEMYSHIP
  • MoveFormation() tests for SPS_DEADLY_TO_PLAYER
  • MoveSpyShip() tests for SPS_DEADLY_TO_PLAYER
Link to comment
Share on other sites

I haven't played the game much (I am quite busy with other stuff now), but I noticed two minor things:

  1. On the title screen, IMO the fire button should be used for starting the game and not for selecting an option.
  2. In the game it would be nice if you could abort the initial music and sound sequence with pressing FIRE. I suppose after a while you might want to skip that. Especially when you are just trying to remember how a sector looked like. :)
Link to comment
Share on other sites

1. Would break tradition with all my other games which use FIRE and/or LEFT/RIGHT to change the select option. ("and" as in SF2 it changes the level selector by 10 if you hold fire while moving left/right).

2. I'll look into it, though it'll depend on whether or not there's space to implement it. The initial music is only played when starting a game, not for each ship or later sectors, so the "abort" could also be used skip the SECTOR # pause.

Link to comment
Share on other sites

When you loose your last ship, and a voice sample is about to start or has started it continues playing into the game's option page. IIRC I heard 2 separate samples play, Battle Stations and Spy Ship Sighted. It's like they're in a queue. But of course they don't play more than once. And that may be totally normal and just how it is.. Just checking.

Link to comment
Share on other sites

There's no queue. If a sample is playing when you return to the menu it'll finish playing, but no other sample should start.

 

I do, however, cancel any sample when you return to the menu if the "Earned High Score" tune needs to play as it requires both audio channels. I could easily make it always cancel the sample when returning to the menu.

Link to comment
Share on other sites

Not possible, there's no volume control for sample playback so whatever's in ROM is what gets played. CDF does support playing a sample back from RAM, so the waveform could conceivably be copied and manipulated to decrease the volume, but all the RAM is spoken for in Draconian.

Link to comment
Share on other sites

The wife and I logged a little over a million points in Draconian this evening while waiting for some lumber and a door delivery. Nothing unusual to report. It's not just a shoot-em-up, but one of geometrical flying. Lots of different ways to play. A game where you just don't mash buttons, but develop a plan and have maneuvers in your flight bag.

 

Instead of right angle turns I sometimes prefer to do a 270` spin in the opposite direction, and depending how fast you blip the stick (or not) you can come out a little off-center and perhaps more on target.

 

Or like running away from ships, like running away from an alligator, left-right-left-right zig zags confuse it and can spread your shots on-target if you modulate the left/right duty cycle.

 

The ships and formation attacks are surprisingly good at luring you away from the stations.

 

A few additional things:

 

1- Do you think the level patcher easily can be patched to work with the final release?

2- Any possibility of getting the rumble sound (placeholder in earlier test versions) as the station explosion sound? Available space is an issue, isn't it?

3- Any thoughts on a follow-up edition? Like a SuperDraco Ultra Edition with all kinds of new stuff. Running on a cart with beefed-up memory?

4- I would have liked it to be a tad easier to hold a diagonal path (hands off the stick). It seems the arcade lets you get into position easier.

5- I noticed in Emulator Stella, that the game starts out running a little slow, about 90% speed. If I use CTRL-F to cycle through the TV modes and come back to NTSC it runs faster at normal speed I would take it. I'm out on the road and only have my older Panasonic Toughbook with me - and it's a little long in the tooth. So I'm not sure of the source of the "problem". If you guys don't notice any speed change then the issue is on my end and likely nothing to worry about.

 

I wished I could have been more involved with testing. Summer just wasn't compatible with games this year.

Edited by Keatah
Link to comment
Share on other sites

# 1 - possibly. In the current build the delta_level master table is this:

const unsigned char * const delta_levels[] =
{
  delta_1,
  delta_2,
  delta_3,
  delta_4,
  //
  // NOTE when putting final levels in need to
  // also fix sector_counts[] and sector_repeat[] in main.c
  //
  (unsigned char *) 0x03020100, // fingerprint for level design tool
  (unsigned char *) 0x07060504, // scans for 0-2f then backs up 16 bytes
  (unsigned char *) 0x0b0a0908, // for pointer to delta_1, 12 bytes for
  (unsigned char *) 0x0f0e0d0c, // pointer to delta_2, etc.
  (unsigned char *) 0x13121110,
  (unsigned char *) 0x17161514,
  (unsigned char *) 0x1b1a1918,
  (unsigned char *) 0x1f1e1d1c,
  (unsigned char *) 0x23222120,
  (unsigned char *) 0x27262524,
  (unsigned char *) 0x2b2a2928,
  (unsigned char *) 0x2f2e2d2c,
//  delta_5,
//  delta_6,
//  delta_7,
//  delta_8,
//  delta_9,
//  delta_10,
//  delta_11,
//  delta_12,
//  delta_13,
//  delta_14,
//  delta_15,
//  delta_16
};

which replaces delta_5 - delta_16 * with the hex sequence 00, 01, 02, ... 2e, 2f. The patcher locates that sequence in the ROM to find where delta_1 - delta_4 are.

 

I would need to figure out a new way for the level editor to find the data.

 

* the // denotes what follows is a comment, so the compiler ignores those lines

  • Like 1
Link to comment
Share on other sites

#2 waiting on some final sounds effects from iesposta, that's one of them. Originally we were hoping to use a digitized explosion, but lack of space killed that idea.

 

#3 doubtful

 

#4 looked into that back in 2014, didn't work out

 

#5 I suspect it's due to your older laptop. When playing Space Invaders, Stella varies from 11.3 to 12% of my CPU based on how many enemy are left onscreen. Draconian's from 17.8 to 22% depending on difficulty and what's onscreen.

  • Like 1
Link to comment
Share on other sites

#5 I suspect it's due to your older laptop. When playing Space Invaders, Stella varies from 11.3 to 12% of my CPU based on how many enemy are left onscreen. Draconian's from 17.8 to 22% depending on difficulty and what's onscreen.

 

The price of more accurate emulation, I'm afraid. The TIA emulation is much more accurate, but also slower. Look for a similar speed hit (and a similar increase in accuracy) when we move to the new sound core in the future.

  • Like 2
Link to comment
Share on other sites

1- Do you think the level patcher easily can be patched to work with the final release?

# 1 - possibly. In the current build the delta_level master table is this:

Just finished dropping in an optimization from cd-w on how the level data's stored. Saved 140 bytes. Additionally, all level data's now in a single table so my "fingerprint" to find it can just be the data for Alpha 1. Once found, any level data could be patched, not just ∆ Quadrant, so I'll probably make a minor revision to the tool so that you specify which level, ie:

* sector Alpha 1 - cohabitation
A1
-4 -9 * player position
v -3 -3
h -3 -3
v -4 -2
h -4 -2
h -7 -13
h -7 -13
h -7 -13
h -7 -13

* sector Delta 8 - boxed in
D8
-5 -3 * player position
h -4 -2
h -5 -2
v -6 -2
v -4 -3
h -6 -3
v -4 -4
h -5 -4
h -6 -4

* sector Gamma 7 -Libra, the Scales
C7
-8 -16 * player position
h -3 -3
h -8 -6
v -1 -7
v -7 -11
h -3 -14
v -4 -15

Tricky part will be that the levels aren't how you'd think as a number of levels are used more than once. As an example the data for Alpha 9 is also used for Alpha 13, Beta 4, and Beta 13 so if you change Alpha 9 you're actually changing 4 levels.

  • Like 1
Link to comment
Share on other sites

Found a bug today while play testing one of alex_79's entries for the ∆ Sector Contest. Turns out the world wrap-around was causing the E-Types to launch in the wrong direction if you were were at the right-edge of the world while the station was at the left-edge:
post-3056-0-91896600-1507425661.png

and likewise if you were all the way at the bottom while the station was all the way at the top:
post-3056-0-21021500-1507425692.png

The wrap-around point makes the description with those images slightly confusing. If you look at the bottom picture the station's below the ship; however, if you look closely at the radar you'll see the station's at the top of the world while the ship's at the bottom so they're separated by the wrap-around point.

I've fixed that as well as applied a space saving optimization from cd-w that changed the way the sector data is stored in the ROM. Please test this build to make sure I didn't break anything in the process, if nothing's found then all that remains for tomorrow's Release Candidate is to drop in the final sound effects and ∆ sectors.

For Harmony or Stella (requires Stella 5.0.0 or newer)
draconian_20171007.bin

  • Like 5
Link to comment
Share on other sites

SpiceWare,

I PM'd you my music_opening data.

 

Great job of getting this entire "talkie" game into only 32K!

Wow, just wow. :thumbsup:

It's amazing this most advanced kernel -- with a "first" feature of sampled speech playing during game play -- didn't need 64K, or a custom built Harmony board with larger RAM!

 

 

Always wish there was more time to optimize.

The Sound Effect / Song routines could give huge amounts of ROM.

For instance 100 bytes of the opening_song are taken up by repeating that the Sound Channel = 12.

Of course it is more complicated than that because there are a few silences, and four Sound Channel = 4.

And mostly the Volume = 9, (again with a few volume changes).

  • Like 2
Link to comment
Share on other sites

I couldn't hold fire, left and up to move and fire. The other 7 direction allowed me to hold fire and steer, just the left, up and fire. But if I steer up and left and let go, and fire. It works. I don't know if that the limitation of the controller, my keyboard, or a bug.

  • Like 1
Link to comment
Share on other sites

So close to release. BTW, that's not a bug, it's a feature! ;-)

Could be - I saw some similar direction issues while play testing Bosconian in MAME. Last night I noticed the wrap-around bug affects the Formations as well, so need to get that fixed today. Plan to double-check station shots,etc. while I'm at it.

  • Like 1
Link to comment
Share on other sites

SpiceWare,

I PM'd you my music_opening data.

Thanks! I'll get it in soon as I can. I have to rearrange data use for a fewthings before I can as the audio data's in the 6507 bank but all the free space is in the ARM space.

 

Great job of getting this entire "talkie" game into only 32K!

Wow, just wow. :thumbsup:

It's amazing this most advanced kernel -- with a "first" feature of sampled speech playing during game play -- didn't need 64K, or a custom built Harmony board with larger RAM!

Thanks! More ROM would have been nice for the samples, so plan to look into that for Frantic's reboot as it uses a lot more speech.

 

Always wish there was more time to optimize.

The Sound Effect / Song routines could give huge amounts of ROM.

For instance 100 bytes of the opening_song are taken up by repeating that the Sound Channel = 12.

Of course it is more complicated than that because there are a few silences, and four Sound Channel = 4.

And mostly the Volume = 9, (again with a few volume changes).

Yeah, I see cd-w's sent me a few more things last night to save a handful of bytes here and there. I did try to optimize the sound data but the savings ends up a wash due to the larger, more complex, playback routine.
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...