james1095

Ultra Tank

5 posts in this topic

After weeks of banging my head against the wall this is coming along again. Motion objects are finally working so I implemented the collision detection and audio circuitry. I think all I need to do now is finish the player input so the game can actually be played, and then figure out why the game timer is ticking down too fast and do some general cleanup of the code. The input circuitry is a little more complex on this because they used an analog multiplexing scheme to read two joystick switches over a single wire, something that doesn't make sense to do with an FPGA that has plenty of IO and no analog. I'm not sure why this was done but I suspect they wanted to use the same harness connector and RFI filter board as their other games.

 

I'll try to wrap this up sometime in the next week or two and then I'll post the code and start working on Sprint 4. 

ultratank

ultratank.jpg

Share this post


Link to post
Share on other sites

Could you repost the image (assuming the attachment is one, it can't be downloaded)

 

Gg once again.. haven't even had a chance to check your previous one live yet but wanted to chime in so you know at least someone wants to see more :D

 

-V

Share this post


Link to post
Share on other sites

Ok I see what happened, the image was missing the extension for some reason so it wasn't being recognized as an image. Should be fixed now.

Last night I did some more work on this, I think all the player controls are working now but there's still the issue with the timer running too fast which needs investigation. I believe this is dependent on the VBlank signal which is read by the CPU so I'll look at the timing and see if I can figure out what's going on.

Share this post


Link to post
Share on other sites

Damn I miss the *old* games... Except clowns which somehow always surfaces again(damn u s.k...)

Isn't the timer bound to one of the vs counters like sound ?

Share this post


Link to post
Share on other sites

I have limited visibility into how the 6502 code works, but VBlank is read by the CPU and with that disconnected the game hangs after drawing the playfield boundary and connecting it to other signals causes the whole game to run much faster so I can make an educated guess as to what it's used for. I'm sure I can figure it out, I just haven't put much effort into that particular issue yet since I had bigger fish to fry. Now that everything is implemented and the game is more or less playable I'll spend some time tying up loose ends over the weekend.

 

One of these days I'll get around to porting this stuff to the Papilio if nobody else does. I've just grown to like working with Quartus better overall than ISE and it's much faster to compile for these little Cyclone II FPGAs I'm using, the bigger/newer chips take noticeably longer. It sure would be nice if ISE could load standard hex files into internal block memory elements the way Quartus does.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now