Jump to content
IGNORED

Re-Started Frenzy / Berzerk :)


PacManPlus

Recommended Posts

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:

post-1787-0-04039800-1372119930_thumb.png post-1787-0-05534700-1372119931_thumb.png

post-1787-0-61215300-1372119931_thumb.png post-1787-0-10477900-1372119932_thumb.png

post-1787-0-65355900-1372119932_thumb.png post-1787-0-15159500-1372119933_thumb.png

post-1787-0-72534300-1372119933_thumb.png post-1787-0-21137200-1372119934_thumb.png

post-1787-0-73120500-1372119934_thumb.png post-1787-0-25769900-1372119935_thumb.png

 

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

  • Like 27
Link to comment
Share on other sites

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:

post-18-0-59042500-1372123174_thumb.png

 

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. :)

  • Like 1
Link to comment
Share on other sites

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?

Link to comment
Share on other sites

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?

Link to comment
Share on other sites

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 by NIKON
  • Like 2
Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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! :-D

Link to comment
Share on other sites

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 by Synthpopalooza
Link to comment
Share on other sites

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

  • Like 1
Link to comment
Share on other sites

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 by Synthpopalooza
Link to comment
Share on other sites

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.

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...