+TwentySixHundred Posted February 15, 2020 Share Posted February 15, 2020 Hi guys, throwing this question out there for those who may have an idea how Rob Fulop wrote an algorithm for Missile Command. Specifically the players missile trajectory. When you set the target location the missile makes a smooth beeline from homebase straight to the target. I am working on a game inspired from the original, it's not bad but may look better if like the original. So obviously the with the original written in assembler i assume the concept of the algorithm wouldn't differ too much in translation to bB? Does anyone know how he did it? Fixed point variables or something of that nature or is it a quite complex process? Any help would be much appreciated ? Quote Link to comment Share on other sites More sharing options...
DEBRO Posted February 15, 2020 Share Posted February 15, 2020 (edited) Hi there, 1 hour ago, TwentySixHundred said: Hi guys, throwing this question out there for those who may have an idea how Rob Fulop wrote an algorithm for Missile Command. Specifically the players missile trajectory. When you set the target location the missile makes a smooth beeline from homebase straight to the target. I am working on a game inspired from the original, it's not bad but may look better if like the original. So obviously the with the original written in assembler i assume the concept of the algorithm wouldn't differ too much in translation to bB? Does anyone know how he did it? Fixed point variables or something of that nature or is it a quite complex process? Any help would be much appreciated I've been reverse-engineering Missile Command off and on. It's one of the many on my to do list. Rob does a similar technique of a linear question found in Activision's Laser Blast, Fishing Derby, and Pitfall! Look at my reverse-engineering of Laser Blast. It may help. Start looking at label .determineAttackerLaserDirection. This is where David Crane determines the direction of the attacker laser and the slope. Then in the kernel at .drawLeadShipKernel he uses the tankLaserSlopeFractionValue to increment tankLaserSlopeIntegerValue. When a carry is determined (i.e. time to increment the integer value) he sets the HMM1 register to fine adjust the tanks laser. Edited February 15, 2020 by DEBRO 3 Quote Link to comment Share on other sites More sharing options...
+TwentySixHundred Posted February 16, 2020 Author Share Posted February 16, 2020 8 hours ago, DEBRO said: Hi there, I've been reverse-engineering Missile Command off and on. It's one of the many on my to do list. Rob does a similar technique of a linear question found in Activision's Laser Blast, Fishing Derby, and Pitfall! Look at my reverse-engineering of Laser Blast. It may help. Start looking at label .determineAttackerLaserDirection. This is where David Crane determines the direction of the attacker laser and the slope. Then in the kernel at .drawLeadShipKernel he uses the tankLaserSlopeFractionValue to increment tankLaserSlopeIntegerValue. When a carry is determined (i.e. time to increment the integer value) he sets the HMM1 register to fine adjust the tanks laser. Thanks @DEBRO i have downloaded your reversed-engineered Laser Blast and will have a good look through. Thanks for pointing out the key labels and variables to point me in the right direction. ? Quote Link to comment Share on other sites More sharing options...
Ed Fries Posted February 17, 2020 Share Posted February 17, 2020 https://en.wikipedia.org/wiki/Bresenham%27s_line_algorithm 1 Quote Link to comment Share on other sites More sharing options...
+TwentySixHundred Posted February 18, 2020 Author Share Posted February 18, 2020 6 hours ago, Ed Fries said: https://en.wikipedia.org/wiki/Bresenham%27s_line_algorithm Thanks for the link @Ed Fries there is some great examples here and is very helpful ? 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.