Jump to content
IGNORED

New Game! Missile Command Arcade (VBXE)


eea

Recommended Posts

  Missile Command Arcade is another new game utilizing VBXE!  Missile Command Arcade uses disassembled code from the arcade version of Missile Command.  Combined with VBXE, this allows for a (near) arcade perfect experience on your Atari 8bit computer.  Since the internal timing for the arcade version of Missile Command is 60Hz, this runs best for NTSC systems, as it will run slower on PAL, including sound effects and trackball response.  I do not have a VBXE for my Atari 800XL, so I have only tested this with Altirra.  If somebody with a VBXE, NTSC Atari, and trackball would like to help with testing, please DM me.

  You can change default settings in the menu screen using the Select button (F3 in Altirra) to choose which option to change and use the Option button (F4 in Altirra) to choose which option you would like to use.  Note that if you choose trackball, you will need to use a trackball or else movements will be unpredictable.

  You can use the fire button (on a joystick or trackball) to fire from the base closest to the cursor.  You can also use keyboard keys Z X C for firing from the 3 bases individually.

  In order to run with Altirra, you will have to configure a few things:

1) Go to System->Configure System.  Set your system to NTSC by going to Computer->System->Video Standard. Next, go to Peripherals->Devices.  Then click Add and scroll down to "Internal Devices" and select VideoBoard XE (VBXE) then OK.  Keep the default settings (Core version FX 1.26 and Base Address of $D600-$D6FF) and click OK (Missile Command Arcade also works at $D700).  Then click OK one more time to exit the setup for devices.
2) Missile Command has a resolution of 256x231 and Altirra normally cuts off the display at 224 lines (or so), so you will have to extend the display to see the bottom scrolling text and the "LOW" and "OUT" messages for the bases.  Click View->Overscan Mode and set it to Extended (or Full with Blanking if the bottom scrolling line is cut off).
3) You have the option of using a trackball, so you will optionally need to also configure a trackball in Altirra.  Under Input->Input Mappings, click Add.  Then rename the default name for the mapping (it should default to something like Input Map XX) to Trackball.  Then double click on the Trackball mapping that you just added and you will get a pop up for Edit Input Map.  Click Add Controller.  Under the Controller pulldown, choose Trak-Ball (CX80) - it's the last choice.  Leave the defaults for Port 1 and click OK.  You will then be at the Edit Input Map popup. Double click on Axis 1.  For Source, select "Mouse Move Horiz".  For Mode, change to Relative.  Next move the Speed slider to 10 and leave Acceleration at 0.  Click OK.  Next double click on Axis 2.  Change the source to "Mouse Move Vert" and the Mode to Relative and once again change the Speed slider to 10.  Click OK.  Now change the Button 1 assignment to a key for the trackball fire button.  Double click on Button 1.  For source click "Key: Left Ctrl" (or whatever key you want).  Click OK twice.  Now unselect any input devices that may have already been selected and check the box next to your next Trackball Input mapping.  Then click close.

  Attached are .XEX, .ROM, and 16K .CAR versions of the game.

Enjoy!
Eric Anschuetz, Robert Anschuetz, John Weisgerber

Missile Command Arcade.car Missile Command Arcade.rom Missile Command Arcade.xex

  • Like 25
  • Thanks 6
Link to comment
Share on other sites

  After following the amazing VBXE Popeye port by @woj, I was inspired to try to port the actual arcade disassembly of my favorite game growing up: Missile Command.  Missile Command came out in the arcades in 1980 just before my brother and I received our first Atari 400 computer while we were in high school.  Most days after school, we would walk home to stop by the local arcade.  Missile Command is a difficult game, but two 30-something players were by far better than everybody else.  While most people were struggling to get 100,000 points, Larry and Bob would play doubles and regularly score between 300-500,000 points.  One day, Larry had an amazing game going and had everybody in the arcade watching.  He was nursing a single city until he reached 810,000 and all of a sudden he had seemingly unlimited cities.  None of us had heard of this bug before then, but eventually it became known that if you reached 810,000 you could effectively play forever.  While Robert was becoming great at Galaxian and John concentrated on Battle Zone, I practiced Missile Command every day and soon I also achieved 810,000.  I could do this regularly, and once I played long enough to score 6,000,000 points and then walked away while it was still playing.

  Of course, Missile Command was one of the first Atari cartridges that my brother and I bought with our paper route earnings.  The original developers did a good job, but definitely the graphics were lacking. Paul (@plee) did an amazing job modifying the original code in Missile Command+ to add three bases, a title screen, a demo attract mode, and "THE END".  I used his disassembly for help with the trackball code.

  When the Missile Command arcade source code appeared on the internet a few years ago, I looked into seeing if I could get it running on the Atari 8bit.  The fact that the resolution was 256x231 in 8 colors was one stumbling block.  The other was that the code used some PDP-10 assembler with a lot of Macros, so I didn't even bother trying to get started.  I looked at it again after seeing the Popeye port done in VBXE.  I knew that at least I could get the graphics running in VBXE.  Then I stumbled on Andy McFadden's amazing disassembly and detailed description of how the actual arcade hardware worked at this site: https://6502disassembly.com/va-missile-command/  

The assembly language that was used was very similar to the MADS assembler that I use in the perfect WUDSN development environment from @JAC!, so I first got the code to compile binary perfect to the arcade ROMs.  From there, I took a quick crash course in VBXE programming.  I found a great introduction by @Yaron Nir here:

Of course, none of this would be possible without @phaeron's amazing Altirra emulator and debugging environment.  I don't even have a VBXE, but Altirra provided a perfect test environment.

Finally, special shout out to VBXE's developers Tomasz Piórek and Candle`o`Sin and distributor Lotharek.  I probably am using only 10% of the capabilities of this amazing daughterboard.  I hope that Missile Command Arcade will inspire more developers to program for the VBXE.

I can only imagine telling 16-year-old me playing Missile Command at the arcade and then going home to play it on my Atari 400 that one day I would be porting the actual arcade source code to run on an Atari 8bit computer - I wouldn't have believed it.  I'm glad that it all worked out!
 

  • Like 12
Link to comment
Share on other sites

I just played and wow!!! It's fantastic.  I don't have a real trackball, just the old Wico one, but I played with a stick and it worked great.  One note based on my NTSC/VBXE 800XL - per your list, the display is cut off on real hardware - at least on my JVC Broadcast CRT.

 

Amazing game.  Always one of my favourites.

 

  • Like 1
Link to comment
Share on other sites

Just tried both the .car and the .xex in Altirra, both say VBXE NOT INSTALLED

I have VBXE set to FX 1.26 and tried both base addresses, doesn't seem to detect VBXE

am I missing something ?

 

EDIT: Got it working, forgot U1M need to activate VBXE :)

 

Very nice, thanks, pity you can't configure the mouse to simulate a trackball (maybe you can, but I can't find it :) )

Edited by TGB1718
  • Like 1
Link to comment
Share on other sites

2 hours ago, eea said:

Missile Command Arcade is another new game utilizing VBXE!

Thanks, nice game!

 

2 hours ago, eea said:

3) You have the option of using a trackball, so you will optionally need to also configure a trackball in Altirra.

You can also just select the Atari ST Mouse as your controller, as this can be used in place of the trackball in Atari's 8-bit computer version of Missile Command too.

 

  • Like 4
Link to comment
Share on other sites

Absolutely sweet! On my NTSC 800XL (viewed on RetroTink5) the last line of the picture is cut, see the photo. This is due to this VBXE hardware bug that we discussed with @phaeron a while back: 

 

 

and also in the Popeye thread. Bottom line: compared to Altirra that does this by the book / official spec, the real VBXE displays everything one scanline too late. In Popeye, I implemented a key to add/remove this extra line to be able to make it work correct both in the emulator and on the hardware. I think Avery even implemented the fix in Altirra, but it is yet to be activated (he needs more confirmation / confidence that the bug is consistent). Unless you are taking the whole 240 scanlines of the VBXE overlay, you can simply start one line early, first detecting that you in fact deal with an NTSC installation.

 

20240423_211752.jpg

  • Like 4
Link to comment
Share on other sites

It's great seeing this on actual hardware @woj!  Thanks for the explanation of the vbxe hardware bug.  I was following that discussion on the Popeye thread but at the time didn't realize that it would impact anything that I ever developed.  Thanks also for providing the inspiration to go through with my own VBXE homage to my all time favorite arcade game.

  • Like 3
Link to comment
Share on other sites

1 hour ago, DrVenkman said:

Sadly, my VBXE is installed in a PAL machine. But this looks amazing and I'm glad to see it exists. 

It should still work - just a little slower.

  • Like 1
Link to comment
Share on other sites

1 hour ago, DrVenkman said:

Sadly, my VBXE is installed in a PAL machine. But this looks amazing and I'm glad to see it exists. 

Same here, although given how bad I suck at gaming, the slower gameplay would probably be good for me!  I will try it at least, to see how it looks.  I love all things VBXE.

  • Like 2
Link to comment
Share on other sites

Cool.  I've looked at some of the code and documentation for this game some years back also with a view to converting it.

The graphics mapping has a hardware addon that allows byte based addressing using the (ind,X) instructions - external hardware monitors the Sync pin on the 6502 and detects when certain instructions execute then modify the subsequent memory access.

That alone was just about enough to turn me off attempting to do much with it.

 

I just gave it a quick run - nice how you've set up ZXC to shoot from each base.  Of course the aspect ratio isn't right but not much we can do about that other than adjust H-width on monitors that allow it.  Though in fact a lot of LCDs will allow stretching a 4:3 image to fit in 16:9 which would probably make it about correct.

 

Another thing I noticed - the sounds are practically identical.  The arcade version runs 6502 at 1 MHz and supposedly it's Pokey at 1.25 which would mean that any AUDF values would need to be adjusted (and entirely possibly some poly sound esp type C would turn out very differently)

  • Like 3
Link to comment
Share on other sites

Thanks for the positive feedback.  One thing I added at the end was the ability to change difficulty levels.  There are several tables that control things like maximum smart bombs and missiles per level, how frequently the planes and satellites come out, and the speed of the incoming missiles.  This made it easy to tweak them to provide different difficulty levels.  Of you ever wanted to try to flip through all of the colors (20 levels) and get back to black, change the difficulty from arcade to Private, Captain, or Colonel for an easier time playing.

  • Like 3
Link to comment
Share on other sites

25 minutes ago, Atari8man2004 said:

Excellent!  I just played this in emulation and now I have a reason to upgrade one of my XL's with a VBXL    A perfect arcade conversion !!

Plus VBXE Popeye, Gacek, Heartlight, Commando, Quadrillion, etc

 

 

  • Like 3
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...