PacManPlus Posted June 25, 2013 Share Posted June 25, 2013 Hi guys: I've actually been working on this as well... Started from scratch after finding the algorithm for drawing the mazes on line. I can't promise this will be completed, as it all rides on the CPU time it takes to do all of the necessary collision detection: Will have four types of play: - Single player - Two player alternating - Two player cooperative - Two player competitive Some things that will be different from the arcade: - The 'flash' of the player's death animation is a bit slower (from 2 frames to 4 frames per change) I'm trying to save CPU time, and I don't want to call another routine just for that (the player moves 1 of every 4 frames) - The robots movement speed will be slightly different from the arcade, but like the arcade, no robots ever move faster than the player (they start out slow, and eventually only become as fast as the player in either case). - The shrapnel from the robot explosions will be shaped differently Todo: - Object to Object collision check (other than shots and walls) - Be able to move to next room - Evil Otto - The 'Animated' rooms for Frenzy (i.e. Big Otto, Robot Factory, Computer Control, Power Plant) - Sound Still not sure how to handle dual player mode when one person leaves the room and the other is still there. Also, how to introduce them in the next room. This is the difference between Two Player Cooperative, and Two Player Competitive: - You get 80 points for shooting the other player in either mode - You share the score and lives pool in cooperative mode - You do not get points for non player initiated events (i.e. evil otto kills robot or they shoot each other) in competitive mode - Evil Otto / Robots go after the closest player in either mode. - The player to kill the last robot in the room gets the bonus points in competitive mode What stopped development on this the last time I started it (I'm already farther than I was then) was the CPU time it took to do all of those collision checks. I have an idea about that now that I'm going to try. Also, handling things on different frames will be a help. Being that a player moves once every 4 frames, I have the time split that way: Frame 1 - player 1 Frame 2 - even numbered robot Frame 3 - player 2 (if active) Frame 4 - odd numbered robot Shots are processed every frame. Will be putting evil otto in there somewhere. I will post a bin once I get a little farther. Thanks, Bob 27 Quote Link to comment Share on other sites More sharing options...
AtariBrian Posted June 25, 2013 Share Posted June 25, 2013 Hope it is possible to be finished someday . Very cool Quote Link to comment Share on other sites More sharing options...
bennybingo Posted June 25, 2013 Share Posted June 25, 2013 Hi guys: I've actually been working on this as well... I wish I could give this post more than one like...this is great news! +1,000,000,000,000 :thumbsup: :thumbsup: 1 Quote Link to comment Share on other sites More sharing options...
NIKON Posted June 25, 2013 Share Posted June 25, 2013 Bob, I am sure you probably know this already... but the arcade version of this game utilized a Z80 processor @2.5 Mhz (see pic) and the 7800 is only 1.79...although possible but you may have to dumb down the game for it to work Quote Link to comment Share on other sites More sharing options...
Trebor Posted June 25, 2013 Share Posted June 25, 2013 Hey NIKON, It doesn't exactly translate that way when porting an Arcade game to console. For instance, have you seen Perry's Donkey Kong Arcade port? Here is what is involved with the Arcade hardware: Yet, the game is lacking next to nothing - no dumbing down required The trick is efficiency of code and working towards one set of programming language's strength vs weaknesses. Hopefully, Bob will be able to find a way to make it work under the Atari 7800's MARIA chip and modified 6502 processor. A closer processor analogy would be the game Centipede as it ran under a 6502. 1 Quote Link to comment Share on other sites More sharing options...
PacManPlus Posted June 25, 2013 Author Share Posted June 25, 2013 ... plus the arcade version had hardware collision detection. Herein lies the challenge! Thanks, guys! 1 Quote Link to comment Share on other sites More sharing options...
MadBomber Posted June 25, 2013 Share Posted June 25, 2013 This is awesome! Frenzy is great and then the added play modes promise to make this something spectacular. I really feel like added features like 2-player simultaneous gameplay makes these games extra special and causes me to leave my 7800 hooked up, rather than just use MAME. One question from the screenshots: Will this have both Frenzy and Berzerk? Quote Link to comment Share on other sites More sharing options...
NIKON Posted June 25, 2013 Share Posted June 25, 2013 I do not profess to be a 7800 programmer....no no no...far from it...I only know VB. but it seems to me that there are some 7800 games that can use a beefed up cart sorta like what SpiceWare did with Space Rocks for the 2600. Thereby not sacrificing anything for the game. Correct me if I am wrong but is not Frenzy an 8 bit game??? I know Donkey Kong is and the XM port of that utilizes those enhancments? Quote Link to comment Share on other sites More sharing options...
Jinks Posted June 25, 2013 Share Posted June 25, 2013 This is awesome Bob!! This and of course Bentley Bear are my most wanted 7800 games! The two player feature would be great. I like to play with my daughters ages 11 and 6 and get them into these old consoles!! 2 Quote Link to comment Share on other sites More sharing options...
The Usotsuki Posted June 25, 2013 Share Posted June 25, 2013 Z80 to 6502 comparison, isn't a 3.58 MHz Z80 comparable to a 1.0 MHz 6502? Quote Link to comment Share on other sites More sharing options...
BillyHW Posted June 25, 2013 Share Posted June 25, 2013 I think it's really cool that you are trying 2-player simultaneous modes. That's what'll make this port special. 1 Quote Link to comment Share on other sites More sharing options...
BillyHW Posted June 25, 2013 Share Posted June 25, 2013 How 'bout in 2-player cooperative mode, they have to both walk across the same exit together, at the same time? Leave no man behind so to speak. Quote Link to comment Share on other sites More sharing options...
NIKON Posted June 25, 2013 Share Posted June 25, 2013 (edited) Z80 to 6502 comparison, isn't a 3.58 MHz Z80 comparable to a 1.0 MHz 6502? Some research I did about both processors, Here is a quote from the web page. http://www.omnimaga....hp?topic=9347.0 Each processor has its advantages and disadvantages. While I prefer the Z80, there are some things about the Motorola 6502 that I wish the z80 had. First, here's some things the Z80 has that the 6502 doesn't have, making the Z80 a dang fine processor indeed The Z80 processor has more registers--many more The Z80 has instructions that can compare and copy many values at once (Like LDIR and CPIR) The Z80's stack is much more flexible than the 6502's stack You can work with 2-byte values on the z80, but not on the 6502 The 6502 has no register that can hold a direct address to work with (The Z80 has HL, plus to a certain point DE, BC and SP) The 6502 requires the carry flag for all math. On the z80, it's optional. On the 6502, you can only use conditions with a relative jump. You can use conditions with calls, returns and longer jumps on the Z80 You can compare any register with register A. On the 6502, registers cannot be compared with each other And now, stuff the 6502 does that I wish the Z80 did: Indexing is much easier and flexible on the 6502. For instance, you can use a register to store an offset. You can save one byte and several T-States on the 6502 by storing and retriving values from $0000 to $00FF. This is not possible on the z80 On the 6520, you can use CP with almost all 1-byte registers You can use almost all 1-byte registers to store directly to an address, as well as retrieve a value from it One can increase or decrease the value in a direct address on the 6502 Edited June 25, 2013 by NIKON 2 Quote Link to comment Share on other sites More sharing options...
Trebor Posted June 25, 2013 Share Posted June 25, 2013 I know Donkey Kong is and the XM port of that utilizes those enhancments? Just for POKEY sound addressing. A modified Jinks cart with a POKEY chip could run the game on a standard/stock 7800 system if such a cart configuration existed. Quote Link to comment Share on other sites More sharing options...
Trebor Posted June 25, 2013 Share Posted June 25, 2013 Some research I did about both processors, Very cool research and fact gathering, my friend. Like I said, playing to the processors strengths vs. weaknesses hopefully will allow this to be ported with hardly any loss from its Arcade counterpart. In fact, Bob planning the cooperative and competitive modes will already give it a heck of a lot more than what the Arcade offered at least in the way of play variety and options. Quote Link to comment Share on other sites More sharing options...
NIKON Posted June 25, 2013 Share Posted June 25, 2013 Very cool research and fact gathering, my friend. Like I said, playing to the processors strengths vs. weaknesses hopefully will allow this to be ported with hardly any loss from its Arcade counterpart. In fact, Bob planning the cooperative and competitive modes will already give it a heck of a lot more than what the Arcade offered at least in the way of play variety and options. Thank you and I agree with you ... having a two player mode would be Tons O Fun...I remember my first 2 player co op game on Asteroids...man that was such a blast!!!...ahhh the good old days! Quote Link to comment Share on other sites More sharing options...
gooner73 Posted June 25, 2013 Share Posted June 25, 2013 this would be truly amazing! The 7800 is alive and kicking! Can't wait for bentley too! Quote Link to comment Share on other sites More sharing options...
SSG Posted June 25, 2013 Share Posted June 25, 2013 Cant Wait! Quote Link to comment Share on other sites More sharing options...
Synthpopalooza Posted June 25, 2013 Share Posted June 25, 2013 (edited) Interesting ... so in two player mode, will it be possible to accidentally shoot your partner? That would be troublesome. Also, if you used POKEY, there is a way to get the sampled robot vox sounds, although it might be CPU intensive, so I don't know how it would work ... The key is, you don't use the AUDF0-AUDF3 registers at all, and instead use $10 to $1F in AUDC0-AUDC3 .. this is volume only mode. Changing the values rapidly in the AUDCx registers gives you 4-bit audio sample playback. Edited June 25, 2013 by Synthpopalooza Quote Link to comment Share on other sites More sharing options...
DocEss Posted June 25, 2013 Share Posted June 25, 2013 Awesome! I've been hopin' for this one since the first go-round! Frenzy is a game that deserved to be on more home consoles than just the Colecovision. 7800 is a perfect place for it. Quote Link to comment Share on other sites More sharing options...
PacManPlus Posted June 25, 2013 Author Share Posted June 25, 2013 Thanks guys This was one of my favorites in the arcades as well back then (especially Frenzy), so I really want to get this working. Interesting ... so in two player mode, will it be possible to accidentally shoot your partner? That would be troublesome. I thought about that - but remember, you can shoot *yourself* in Frenzy if you hit a reflective wall. Basically all shots kill anything (except evil otto) regardless of who they came from. So I figured it would be odd to not continue that line of thought. Also, if you used POKEY, there is a way to get the sampled robot vox sounds, although it might be CPU intensive, so I don't know how it would work ... The key is, you don't use the AUDF0-AUDF3 registers at all, and instead use $10 to $1F in AUDC0-AUDC3 .. this is volume only mode. Changing the values rapidly in the AUDCx registers gives you 4-bit audio sample playback. I'll have to see how much time I have after collision detection... although I had actually planned on using TIA for this. I wonder if the same logic applies to TIA? Thanks, Bob 1 Quote Link to comment Share on other sites More sharing options...
Synthpopalooza Posted June 25, 2013 Share Posted June 25, 2013 (edited) It might ... depends on what volume settings you're allowed to use ... POKEY gives you 4 bit samples because you're allowed 16 volume settings (4 bits). Not sure how it would work with TIA. You could also make a 2 player competition one too ... first person to shoot the other person 10 times wins. sorta like 2600 Combat. Edited June 25, 2013 by Synthpopalooza Quote Link to comment Share on other sites More sharing options...
+Cafeman Posted June 25, 2013 Share Posted June 25, 2013 Re: software collision detection on CV. I'm used to the 5200's hardware collision registers. Do you handle this on CV via "hit-box" logic - checking stored X,Y values and ranges for each enemy, and I guess the walls too - true ? If so, could you break up the logic to be performed across multiple frames? After all, whats the difference if collision is checked at 1/60 of a second or 1/30 of a second or even 1/15 of a second? Frame 1 - check collision with walls Frame 2 - check collision against enemies 1-5 Frame 3 - check collision with walls Frame 4 - check collision against enemies 6-10+ reset WhichFrame counter. Quote Link to comment Share on other sites More sharing options...
gambler172 Posted June 25, 2013 Share Posted June 25, 2013 hi Bob you are the BEST Hope to see more soon greetings Walter Quote Link to comment Share on other sites More sharing options...
Stun Runner 87 Posted June 25, 2013 Share Posted June 25, 2013 I frigging love this game. Put me down for a cart of course. 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.