AnalogKid Posted December 2, 2020 Share Posted December 2, 2020 I hope you guys enjoy this one, it has always been one of my favorite early 80's games Colecovision Missile Command demo Unfortunately the blueMSX video capture with sound is still a little problematic on my PC, I'll figure it out eventually. The game came alive when I added the air raid siren, the explosions, the satellite/bomber sound, and that sound during the post-round counting. There's still a lot of little things to be done, like updating the missile batteries as missiles are fired, gradually incrementing the missile speed, changing the ground and sky colors during the later rounds, as the drugs kick in, stuff like that. Still though, this is another good demo of how powerful the console is. There's (unfortunately) a not insignificant amount floating-point math going on there to target and move the players missiles. The Atari ports avoid that by just drawing lines but I don't have that luxury. On the plus side, it's fortunate that the clouds are supposed to be blinky ? 7 1 Quote Link to comment Share on other sites More sharing options...
+bhall408 Posted December 2, 2020 Share Posted December 2, 2020 Looking good! In fact you're game play was TOO good One request -- show a city getting destroyed, which would then show what happens (sound/etc) when you get a bonus city on the following round. 1 Quote Link to comment Share on other sites More sharing options...
Ikrananka Posted December 2, 2020 Share Posted December 2, 2020 Looks great - really loving your work so far ? Quote Link to comment Share on other sites More sharing options...
Tony Cruise Posted December 2, 2020 Share Posted December 2, 2020 Looking very solid so far, colours and action very close to the arcade, keep up the good work. Quote Link to comment Share on other sites More sharing options...
Pixelboy Posted December 2, 2020 Share Posted December 2, 2020 Wow! Super nice work on this! 1 Quote Link to comment Share on other sites More sharing options...
Kiwi Posted December 2, 2020 Share Posted December 2, 2020 Very nice job. Quote Link to comment Share on other sites More sharing options...
doubledown Posted December 3, 2020 Share Posted December 3, 2020 I assume this has Roller Controller, "Roller" mode compatibility? Quote Link to comment Share on other sites More sharing options...
youki Posted December 3, 2020 Share Posted December 3, 2020 I love it!!! ... same question as doubledown is it rolller controller compatible? Quote Link to comment Share on other sites More sharing options...
zyzzle Posted December 3, 2020 Share Posted December 3, 2020 This looks fabulous!! What talent. Missle Command being one of my all-time favorites. Only improvement I can suggest is actually showing via explosion, etc when a city gets destroyed. Might we get the chance to actually play your game via a work-in-progress ROM file? Quote Link to comment Share on other sites More sharing options...
Itchy Scratchy Posted December 3, 2020 Share Posted December 3, 2020 (edited) I am more interested in the code to draw pinpoint lines within the 8x8 tiles system. I am sure given enough time I could figure it out but if there is an award winning formula I would love for someone to share it. There should be a thread with nothing but Z80 formula's to show Plotting lines, angles, circles, BCD, Jumping with Arc's ect... With examples Edited December 3, 2020 by Itchy Scratchy Quote Link to comment Share on other sites More sharing options...
youki Posted December 3, 2020 Share Posted December 3, 2020 (edited) 3 hours ago, Itchy Scratchy said: I am more interested in the code to draw pinpoint lines within the 8x8 tiles system. I am sure given enough time I could figure it out but if there is an award winning formula I would love for someone to share it. There should be a thread with nothing but Z80 formula's to show Plotting lines, angles, circles, BCD, Jumping with Arc's ect... With examples you have to fill the NAME Tables displayed on screen with consecutive values from 1 to 255. then you have just to modify the Pattern table (and optionnaly Color Table) to make your point. you can use that formulas to locate address in VRAM for the point. /// maps a block in the screen 2 model #define map_block(x,y) ((((y) & ~(7)) << 5) + ((x) & ~(7))) /// maps a pixel coordinate to a vram address #define map_pixel(x,y) (map_block(x,y) + ((y) & 7)) of course you have to add the Adress where you located your Pattern Table. and then you have to perform some OR operation according to x Modulo 8 . Edited December 3, 2020 by youki Quote Link to comment Share on other sites More sharing options...
Itchy Scratchy Posted December 3, 2020 Share Posted December 3, 2020 2 hours ago, youki said: you have to fill the NAME Tables displayed on screen with consecutive values from 1 to 255. then you have just to modify the Pattern table (and optionnaly Color Table) to make your point. you can use that formulas to locate address in VRAM for the point. /// maps a block in the screen 2 model #define map_block(x,y) ((((y) & ~(7)) << 5) + ((x) & ~(7))) /// maps a pixel coordinate to a vram address #define map_pixel(x,y) (map_block(x,y) + ((y) & 7)) of course you have to add the Adress where you located your Pattern Table. and then you have to perform some OR operation according to x Modulo 8 . in Z80 English please. Quote Link to comment Share on other sites More sharing options...
AnalogKid Posted December 3, 2020 Author Share Posted December 3, 2020 I had a feeling I'd raise some eyebrows with the pixel by pixel line drawing ? I puzzled over this for a while and was almost convinced that Missile Command was impossible because I really really wanted to have totally independent missiles that could move at different paces at different angles and split off into MIRVs etc. So my solution, and there may be plenty of better ones, was to create characters for all 8 animation states per character cell, for several different angles. There's a lot of overlap between angles so it's not actually an insane number of characters. After 8 animation states, I shift down one on the Y and depending on the angle, adjust the X. Using that I created ten angles, though I may add two additional more vertical ones. So then how do the missiles seamlessly cross paths, well at certain intervals, depending on the angle, the Y increment and the X animation cycle line up so that a missile with an opposing angle can slide past. This means the logic to place the missiles initially has to be very precise rather than entirely random, which is a pain in the behind, believe me. Also, the placement logic can time the missile appearance just right so that one that would otherwise trample the path of another fails to do so because the first hits the ground and the track is erased. I do like the other solution proposed, where you modify the character on the fly and potentially bit-or it with any other missile characters you cross paths with, but I'm pretty certain that's beyond my ability to get working correctly. ? There's also the missile track cleanup to account for where you would have to non-destructively xor the missile track being removed and I'm sure I'd never get that working. Now next big pain is to handle the updating of the missile bases so you see them being exhausted of missiles, as the bases span multiple characters. Once that's done, then, on to tackling changing the color table data on the fly for the ground changing to green, red, etc. Quote Link to comment Share on other sites More sharing options...
AnalogKid Posted December 3, 2020 Author Share Posted December 3, 2020 Oh yeah almost forgot, I did try testing with the roller controller, but after rebuilding with the lib4ksa versions, the game starts to run fine and then explodes into psychedelic madness, so I shelved that for the time being. It may have been related to another strange behavior I have noticed with the SDCC generated code that I have since addressed. If my structs that I use for my collections of screen objects have too many fields, then instability starts to appear. It's like the internal Z80 pointer arithmetic has trouble with too many instances of structs with too many fields. I would have suspected alignment played a part but it has happened for structs with field of only unsigned chars. Once I backed down the number of fields, the instability immediately disappeared. I did successfully play around with enabling the steering wheel for a racing game I have in the wings as well. However it seemed like ColEmm's translation of mouse movement to the spinners was a little shaky so I'm not sure if it's my polling of the input or the values being provided for the input. My goal was to translate the paddle nature of the wheel to something more akin to actual steering where you'd have to recenter to stop the X motion plus I wanted more granular X motion. I got frustrated by the inconsistency from the values the emulator was giving me so that's on the shelf for now too. The joystick steering however does work nicely. Quote Link to comment Share on other sites More sharing options...
doubledown Posted December 4, 2020 Share Posted December 4, 2020 Without Roller Controller support, in "Roller" mode, any ColecoVision Missile Command-esque game, is quite simply another missed opportunity. Quote Link to comment Share on other sites More sharing options...
AnalogKid Posted December 4, 2020 Author Share Posted December 4, 2020 1 hour ago, doubledown said: Without Roller Controller support, in "Roller" mode, any ColecoVision Missile Command-esque game, is quite simply another missed opportunity. I completely agree. I still would like to add roller support to my Asteroids port as well. Roller support in the Star Wars port might have been pretty cool too. I'd love to port the original Atari Football, the table style coin-op game with two trackballs that has the X's and O's representation of the players. Writing the code to have the players act out the selected play would actually be pretty fun. Quote Link to comment Share on other sites More sharing options...
doubledown Posted December 4, 2020 Share Posted December 4, 2020 I wouldn't bother with Roller Controller support for Asteroids, as its "arcade inaccurate"...and serves no point. Asteroids is properly played with an all button controller, as Atari designed it: To my knowledge the ColecoVision can only read 1 Roller Controller at a time (at least in "Roller" mode), as Port 1 reads 1 axis (I believe X), and Port 2 reads the 2nd axis (I believe Y). It would only be possible as a 1 player against the computer game/scenario. Quote Link to comment Share on other sites More sharing options...
AnalogKid Posted December 16, 2020 Author Share Posted December 16, 2020 Here's the beta demo for those that would like to try it out. It still needs a lot of polishing but it's pretty far along. The next step is to enable the roller controller. With the joystick you press both fire buttons together to fire from the center site. https://www.dropbox.com/s/93zz25pte9vcjqc/missilecommand.rom?dl=1 5 Quote Link to comment Share on other sites More sharing options...
+bhall408 Posted December 16, 2020 Share Posted December 16, 2020 2 hours ago, AnalogKid said: Here's the beta demo for those that would like to try it out. It still needs a lot of polishing but it's pretty far along. The next step is to enable the roller controller. With the joystick you press both fire buttons together to fire from the center site. https://www.dropbox.com/s/93zz25pte9vcjqc/missilecommand.rom?dl=1 Cool! Feedback -- The idea of using left+right to be center is super cool for the original controller, but is awkward for keyboards/game controllers/mobile (ie, emulation). I don't know that I have a good alternate suggestion for that, other than implementing/allowing an option for a single fire button that always "picks the correct silo" (ie, the one that is closest that still has ABMs left). Quote Link to comment Share on other sites More sharing options...
youki Posted December 16, 2020 Share Posted December 16, 2020 6 hours ago, AnalogKid said: Here's the beta demo for those that would like to try it out. It still needs a lot of polishing but it's pretty far along. The next step is to enable the roller controller. With the joystick you press both fire buttons together to fire from the center site. https://www.dropbox.com/s/93zz25pte9vcjqc/missilecommand.rom?dl=1 This game is excellent!! i love it! Playing the rom , at one point the game freeze. I don't know exactly what i did. But it freeze when i just shooted the plane and a missile at the same time. The screen freeze in the state below: Quote Link to comment Share on other sites More sharing options...
Itchy Scratchy Posted December 16, 2020 Share Posted December 16, 2020 (edited) Personally, I would use the three top keyboard buttons to pick where to shoot from. 1 - 2 - 3 Which would also be great for custom controllers. Then add Super action Controller support. Other than that, some excellent work. How simple it would have been to port these games back in the day and yet it only takes 30 years later. Edited December 16, 2020 by Itchy Scratchy 1 Quote Link to comment Share on other sites More sharing options...
AnalogKid Posted December 16, 2020 Author Share Posted December 16, 2020 2 hours ago, Itchy Scratchy said: Personally, I would use the three top keyboard buttons to pick where to shoot from. 1 - 2 - 3 Which would also be great for custom controllers. Then add Super action Controller support. Other than that, some excellent work. How simple it would have been to port these games back in the day and yet it only takes 30 years later. That's a great idea, why not support both fire buttons and the keypad and let the player figure out which they like better. It would also open up support for people playing on emulators on mobile devices. 2 Quote Link to comment Share on other sites More sharing options...
+5-11under Posted December 16, 2020 Share Posted December 16, 2020 I like the way Missile Domination on the Intellivision works, where you have the option to automatically fire from the closest base. 1 Quote Link to comment Share on other sites More sharing options...
NIAD Posted December 16, 2020 Share Posted December 16, 2020 (edited) 2 hours ago, AnalogKid said: That's a great idea, why not support both fire buttons and the keypad and let the player figure out which they like better. It would also open up support for people playing on emulators on mobile devices. I think all CV and Adam emulators support the Super Action Controllers 3rd and 4th fire buttons as well as numerous custom gamepad and Arcade style controllers that are available to play on actual hardware. Adding support for the 3rd fire button is a no brainer as long as you have the room within the 32K limit. A good example would be how Coleco did things with Spy Hunter and Star Trek depending on which controller (standard or SAC) the gamer was going to use. Edited December 16, 2020 by NIAD Quote Link to comment Share on other sites More sharing options...
Pixelboy Posted December 16, 2020 Share Posted December 16, 2020 2 minutes ago, NIAD said: I think all CV and Adam emulators support the Super Action Controllers 3rd and 4th fire buttons as well as numerous custom gamepad and Arcade style controllers that are available to play on actual hardware. Adding support for the 3rd fire button is a no brainer as long as you have the room within the 32K limit. A good example would be how Coleco did things with Spy Hunter and Star Trek depending on which controller (standard or SAC) the gamer was going to use. Right, and let's not forget that the Roller Controller maps the red buttons to the fire buttons of both hand controllers, so that's another thing to consider. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.