Announcement

Collapse
No announcement yet.

Berzerk To Frenzy To Multigame

Collapse

Share any logs or helpful information you may have to repairs of arcade PCBs, Monitors etc

X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Berzerk To Frenzy To Multigame

    Click image for larger version

Name:	IMAG0259.jpg
Views:	1
Size:	513.4 KB
ID:	1913153
    Click image for larger version

Name:	IMAG0258.jpg
Views:	1
Size:	248.8 KB
ID:	1913154 Click image for larger version

Name:	IMAG0260.jpg
Views:	1
Size:	227.7 KB
ID:	1913155

    This is a place marker for an ongoing project for a bit of fun.
    I've successfully converted a Berzerk ZPU-1000 into Frenzy. My goal was no trace cuts and I've achieved that.
    https://www.aussiearcade.com/showthr...49#post1255049
    I've made a little board that replaces the 74ls155 @6E with a prom on it for rom selection.
    I won't go into details just yet because my next step is a single rom hack then a 2 in 1. I want to learn how to use a GAL as a decoder etc so its a bit of a learning exercise for me.

  • #2
    Click image for larger version

Name:	IMAG0266.jpg
Views:	1
Size:	494.1 KB
ID:	1852064 Click image for larger version

Name:	IMAG0267.jpg
Views:	1
Size:	343.5 KB
ID:	1852065
    Next phase complete.
    Got Frenzy running on a single rom
    Click image for larger version

Name:	IMG_20190813_165058.jpg
Views:	1
Size:	223.9 KB
ID:	1852066
    Needed to draw up a truth table in a way I could understand so I put the prom used for memory selection on a breadboard and set to work mapping the address lines and outputs from 0000h to FFFFh (64k)
    The next step will be modifying this table to get Berzerk working on a single rom then with somebody's help convert this to a GAL. Once I understand how it works next step is bringing it all together for some sort of multigame adapter to run Berzerk and Frenzy on the same board.

    Comment


    • #3
      Excellent work considering previous knowledge. I love it when someone has a go at something they aren't familiar with. Looks like you have 5 outputs....0000h.
      Another way is to run both roms and make and break the pair of rom outputs only using something like a 4016 or a 4066 chip. They are a bilateral switch but are basically a 4 pole relay but for data lines. You will need two bilateral switch chips to cover the 5 lines of data but each device only needs one control wire to switch it and you can cascade as many chips as you want.
      It will do pretty close to what a single rom with do but using more common parts rather than one custom chip doing it all. The trade off is you will need to make a board but I think you have been doing excellent work on boards already so that shouldn't be a problem.

      Comment


      • #4
        its a 82s123 32x8 prom 5 address lines A0-A4 and 8 data used for memory selection. The 8 LED's represent your binary output for each data line so going through each address line which represent A11-15 (0000-FFFF) I was able to manually work out the truth table.
        That's just the way I have to learn stuff, I've always been hands on rather than a book worm.

        Click image for larger version

Name:	Berzerk Decoder.jpg
Views:	1
Size:	134.2 KB
ID:	1852077 Click image for larger version

Name:	Frenzy Decoder.jpg
Views:	1
Size:	96.4 KB
ID:	1852078
        Here's the schematics for the memory selection on both Berzerk and Frenzy.
        Essentially what I've done up until this point is made an adapter for the 82s123 prom to replace the 74ls155. Of course its not as simple as that, I still had to desolder a couple of IC's and bend their legs out and do some rewiring and unfortunately Frenzy's memory map is different also. I'm guessing they did this to stop people doing a straight rom swap from Berzerk to Frenzy.

        Berzerk's memory map is pretty straight forward.
        Rom 0 0000h-07FFh - 2k
        Ram 0800h-0FFFh - 2k ram
        Roms 1-6 2k banked to make 4k
        Rom 1 1000h-17FFh
        Rom 2 1800h-1FFFh
        Rom 3 2000h-27FFh
        Rom 4 2800h-2FFFh
        Rom 5 3000h-37FFh
        Rom 6 3800h-3FFFh < not used
        Frenzy is
        Rom 1 to 4 0000h to 3FFFh
        Rom 5 is C000h to CFFFh
        and the ram has been moved from 0800h-0FFFh to F800h to FFFFh

        So in theory is should just be a matter of changing a few things in the prom to get Berzerk to run however not sure if I want to wasn't another precious 82s123 which is why I want to play around with GAL's

        Comment


        • #5
          Originally posted by Arcade King View Post
          its a 82s123 32x8 prom 5 address lines A0-A4 and 8 data used for memory selection. The 8 LED's represent your binary output for each data line so going through each address line which represent A11-15 (0000-FFFF) I was able to manually work out the truth table.
          That's just the way I have to learn stuff, I've always been hands on rather than a book worm.

          https://www.aussiearcade.com/attachm...hmentid=151871 https://www.aussiearcade.com/attachm...hmentid=151872
          Here's the schematics for the memory selection on both Berzerk and Frenzy.
          Essentially what I've done up until this point is made an adapter for the 82s123 prom to replace the 74ls155. Of course its not as simple as that, I still had to desolder a couple of IC's and bend their legs out and do some rewiring and unfortunately Frenzy's memory map is different also. I'm guessing they did this to stop people doing a straight rom swap from Berzerk to Frenzy.

          Berzerk's memory map is pretty straight forward.
          Rom 0 0000h-07FFh - 2k
          Ram 0800h-0FFFh - 2k ram
          Roms 1-6 2k banked to make 4k
          Rom 1 1000h-17FFh
          Rom 2 1800h-1FFFh
          Rom 3 2000h-27FFh
          Rom 4 2800h-2FFFh
          Rom 5 3000h-37FFh
          Rom 6 3800h-3FFFh < not used
          Frenzy is
          Rom 1 to 4 0000h to 3FFFh
          Rom 5 is C000h to CFFFh
          and the ram has been moved from 0800h-0FFFh to F800h to FFFFh

          So in theory is should just be a matter of changing a few things in the prom to get Berzerk to run however not sure if I want to wasn't another precious 82s123 which is why I want to play around with GAL's
          You could try a fast eprom in place of the prom trav, that way you can experiment all you like without having to worry about wasting proms or programming GALs

          Comment


          • #6
            Yeah I'll probably set one up on the breadboard and connect it that way.

            Comment


            • #7
              I have no idea about electronics of this nature, but sure enjoy reading the details, and hearing of success.

              Thx

              Comment


              • #8
                I wanted to verify this worked before posting it and it does so..
                Code:
                A0=A11 on Z80
                A1=A12
                A2=A13
                A3=A14
                A4=A15
                
                82s123 32x8 TTL Prom for Frenzy Memory Select.
                20k Rom using 5 2732's
                Address		 Prom Output.
                A0 A1 A2 A3 A4 : D0 D1 D2 D3 D4 D5 D6 D7 :HEX :Rom :Memory Location
                0  0  0  0  0  : 0  1  1  1  1  1  1  1 : FE : 1   :0000h-07FFh 
                1  0  0  0  0  : 0  1  1  1  1  1  1  1 : FE : 1   :0800h-0FFFh 
                0  1  0  0  0  : 1  0  1  1  1  1  1  1 : FD : 2   :1000h-17FFh 
                1  1  0  0  0  : 1  0  1  1  1  1  1  1 : FD : 2   :1800h-1FFFh 
                0  0  1  0  0  : 1  1  0  1  1  1  1  1 : FB : 3   :2000h-27FFh 
                1  0  1  0  0  : 1  1  0  1  1  1  1  1 : FB : 3   :2800h-2FFFh 
                0  1  1  0  0  : 1  1  1  0  1  1  1  1 : F7 : 4   :3000h-37FFh 
                1  1  1  0  0  : 1  1  1  0  1  1  1  1 : F7 : 4   :3800h-3FFFh 
                
                0  0  0  1  0  : 1  1  1  1  1  1  1  0 : 7F :     :4000h-47FFh
                1  0  0  1  0  : 1  1  1  1  1  1  1  0 : 7F :	   :4800h-4FFFh
                0  1  0  1  0  : 1  1  1  1  1  1  1  0 : 7F :     :5000h-57FFh
                1  1  0  1  0  : 1  1  1  1  1  1  1  0 : 7F :     :5800h-5FFFh
                0  0  1  1  0  : 1  1  1  1  1  1  1  0 : 7F :	   :6000h-67FFh
                1  0  1  1  0  : 1  1  1  1  1  1  1  0 : 7F :	   :6800h-6FFFh
                0  1  1  1  0  : 1  1  1  1  1  1  1  0 : 7F :	   :7000h-77FFh
                1  1  1  1  0  : 1  1  1  1  1  1  1  0 : 7F :     :7800h-7FFFh
                
                0  0  0  0  1  : 1  1  1  1  1  1  1  0 : 7F :     :8000h-87FFh
                1  0  0  0  1  : 1  1  1  1  1  1  1  0 : 7F :     :88FFh-8FFFh
                0  1  0  0  1  : 1  1  1  1  1  1  1  0 : 7F :     :9000h-97FFh
                1  1  0  0  1  : 1  1  1  1  1  1  1  0 : 7F :	   :9800h-9FFFh
                0  0  1  0  1  : 1  1  1  1  1  1  1  0 : 7F :     :A000h-A7FFh
                1  0  1  0  1  : 1  1  1  1  1  1  1  0 : 7F :     :A8FFh-AFFFh
                0  1  1  0  1  : 1  1  1  1  1  1  1  0 : 7F :	   :B000h-B7FFh
                1  1  1  0  1  : 1  1  1  1  1  1  1  0 : 7F :     :B800h-BFFFh
                
                0  0  0  1  1  : 1  1  1  1  0  1  1  1 : EF : 5   :C000h-C7FFh
                1  0  0  1  1  : 1  1  1  1  0  1  1  1 : EF : 5   :C8FFh-CFFFh
                0  1  0  1  1  : 1  1  1  1  1  0  1  1 : DF : 6   :D000h-D7FFh :Not used
                1  1  0  1  1  : 1  1  1  1  1  0  1  1 : DF : 6   :D800h-DFFFh :Not used
                0  0  1  1  1  : 1  1  1  1  1  1  1  0 : 7F :     :E000h-E7FFh
                1  0  1  1  1  : 1  1  1  1  1  1  1  0 : 7F :     :E800h-EFFFh
                0  1  1  1  1  : 1  1  1  1  1  1  1  0 : 7F :     :F000h-F7FFh
                1  1  1  1  1  : 1  1  1  1  1  1  0  1 : BF : Ram :F800h-FFFFh 2k Ram
                
                Berzerk 12k Rom Using 6 x 2716's
                Rom 0 0000h-07FFh - 2k
                Ram   0800h-0FFFh - 2k ram 
                Roms 1-6 2k banked to make 4k
                Rom 1 1000h-17FFh
                Rom 2 1800h-1FFFh
                
                Rom 3 2000h-27FFh
                Rom 4 2800h-2FFFh
                
                Rom 5 3000h-37FFh
                Rom 6 3800h-3FFFh
                A0 A1 A2 A3 A4 : D0 D1 D2 D3 D4 D5 D6 D7 :HEX :Rom :Memory Location
                0  0  0  0  0  : 0  1  1  1  1  1  1  1 : FE : 0   :0000h-07FFh
                1  0  0  0  0  : 1  1  1  1  1  1  0  1 : BF : Ram :0800h-0FFFh 2k Ram
                0  1  0  0  0  : 1  0  1  1  1  1  1  1 : FD : 1   :1000h
                1  1  0  0  0  : 1  0  1  1  1  1  1  1 : FD : 2   :1800h
                0  0  1  0  0  : 1  1  0  1  1  1  1  1 : FB : 3   :2000h
                1  0  1  0  0  : 1  1  0  1  1  1  1  1 : FB : 4   :2FFFh
                0  1  1  0  0  : 1  1  1  0  1  1  1  1 : F7 : 5   :3000h
                1  1  1  0  0  : 1  1  1  0  1  1  1  1 : F7 : 6   :3FFFh Not Used
                
                0  0  0  1  0  : 1  1  1  1  1  1  1  0 : 7F :     :4000h
                1  0  0  1  0  : 1  1  1  1  1  1  1  0 : 7F :
                0  1  0  1  0  : 1  1  1  1  1  1  1  0 : 7F :
                1  1  0  1  0  : 1  1  1  1  1  1  1  0 : 7F :
                0  0  1  1  0  : 1  1  1  1  1  1  1  0 : 7F :
                1  0  1  1  0  : 1  1  1  1  1  1  1  0 : 7F :
                0  1  1  1  0  : 1  1  1  1  1  1  1  0 : 7F :
                1  1  1  1  0  : 1  1  1  1  1  1  1  0 : 7F :     :7FFFh
                
                0  0  0  0  1  : 1  1  1  1  1  1  1  0 : 7F :     :8000h
                1  0  0  0  1  : 1  1  1  1  1  1  1  0 : 7F :
                0  1  0  0  1  : 1  1  1  1  1  1  1  0 : 7F :
                1  1  0  0  1  : 1  1  1  1  1  1  1  0 : 7F :
                0  0  1  0  1  : 1  1  1  1  1  1  1  0 : 7F :  
                1  0  1  0  1  : 1  1  1  1  1  1  1  0 : 7F :
                0  1  1  0  1  : 1  1  1  1  1  1  1  0 : 7F :
                1  1  1  0  1  : 1  1  1  1  1  1  1  0 : 7F :     :BFFFh
                
                0  0  0  1  1  : 1  1  1  1  0  1  1  1 : EF : 5   :C000h :Not Used
                1  0  0  1  1  : 1  1  1  1  0  1  1  1 : EF : 5   :CFFFh :Not Used
                0  1  0  1  1  : 1  1  1  1  1  0  1  1 : DF : 6   :D000h :Not used
                1  1  0  1  1  : 1  1  1  1  1  0  1  1 : DF : 6   :DFFFh :Not used
                0  0  1  1  1  : 1  1  1  1  1  1  1  0 : 7F :     :E000h
                1  0  1  1  1  : 1  1  1  1  1  1  1  0 : 7F :     :EFFFh
                0  1  1  1  1  : 1  1  1  1  1  1  1  0 : 7F :     :F000h
                1  1  1  1  1  : 1  1  1  1  1  1  1  0 : 7F :     :FFFFh
                Here's the truth table I came up with and the modifications needed to get Berzerk running on the modified hardware to run Frenzy.
                Basically the ram location needs to be adjusted.
                Click image for larger version

Name:	IMG_20190816_062446.jpg
Views:	1
Size:	371.8 KB
ID:	1852108 Click image for larger version

Name:	IMG_20190816_062517.jpg
Views:	1
Size:	312.2 KB
ID:	1852109
                Burnt the modified rom to a 27C16 and used my breadboard to jumper it into the prom adapter.
                All the unused address lines are tied low, only A0-A4 used and D6 and D7 used for the I/O and Ram CE used. The individual data lines used as rom enables (CE) are not needed due to the single rom mod.
                As you can see worked great!

                So now we have both games running we can move forward to replacing the memory decoder prom with a GAL. The GAL will be used as a memory decoder and switch for both games and hopefully replace some logic on the Berzerk so I can design a board that slots into the Z80 socket and has an NVram to store both games high scores etc.

                Disclaimer.
                I've never done this before so laugh all you like
                Code:
                PartNo   00 ;
                Date     15/08/2019 ;
                Revision 01 ;
                Designer Arcade King ;
                Company  Aussie Arcade ;
                Assembly None ;
                Location  ;
                Device   G16V8 ;
                
                /* *************** INPUT PINS *********************/
                PIN [2..6] = [A15..A11]; /* Pins 1 to 5 A15 to A11 */ 
                
                /* *************** OUTPUT PINS *********************/
                PIN 12 = ROM1                        ; /*                                 */ 
                PIN 13 = ROM2                        ; /*                                 */ 
                PIN 14 = ROM3                        ; /*                                 */ 
                PIN 15 = ROM4                        ; /*                                 */ 
                PIN 16 = ROM5                        ; /*                                 */ 
                PIN 17 = ROM6                        ; /*                                 */ 
                PIN 18 = RAM                          ; /*                                 */ 
                PIN 19 = IO                             ; /*                                 */ 
                
                ROM1 = !A11 & !A12 & !A13 & !A14 & !A15 # A11 & !A12 & !A13 & !A14 & !A15 /* 0000h to 0FFFh */
                ROM2 = !A11 & A12 & !A13 & !A14 & !A15 # A11 & A12 & !A13 & !A14 & !A15; /* 10000h to 1FFFh */
                ROM3 = !A11 & !A12 & A13 & !A14 & !A15 # A11 & !A12 & A13 & !A14 & !A15; /* 2000h to 2FFFh */
                ROM4 = !A11 & A12 & A13 & !A14 & !A15 # A11 & A12 & A13 & !A14 & !A15; /* 3000h to 3FFFh */
                ROM5 = !A11 & !A12 & !A13 & A14 & A15 # A11 & !A12 & !A13 & A14 & A15; /* C000h to CFFFh */
                RAM = A11 & A12 & A13 & A14 & A15; /* F800h to FFFFh */
                Watching several YouTube videos and reading some doc's I pieced together enough info to program WinCUPL.
                What I wanted to do (baby steps) is to fist replicate the proms behavior in a GAL and to my surprise the above did(on the breadboard at least). I've left out the I/O for now because that's a lot of typing and I'm sure there's a quicker way to do it but for now this is what works for me.
                Now I'm fully aware I don't need the single rom chip enables using a single rom hack however as I said my first goal was to mimic the behavior of the prom in GAL. I'll be able to free up all those rom pins 12-17 for other purposes.

                Next step is to modify the GAL to switch between Berzerk and Frenzy.
                I don't want to be spoon fed I like working things out for myself however any suggestions to neaten up the code would be appreciated.

                Comment


                • #9
                  Too smart dude, too smart.

                  Seriously, I take my hat off to you Trav, really is awesome to see you work this shit out. I'm impressed and envious of your ability to acquire knowledge so rapidly.
                  Woody

                  Comment


                  • #10
                    Originally posted by Woody View Post
                    Too smart dude, too smart.

                    Seriously, I take my hat off to you Trav, really is awesome to see you work this shit out. I'm impressed and envious of your ability to acquire knowledge so rapidly.
                    Thanks Woody however my mantra has always been if I can do it anybody can. I've always had learning difficulties and have to have a more hands on approach to things, It's a real struggle at times.
                    Hope to catch up with you in the near future!

                    Comment


                    • #11
                      So both these games used the same mother board but the game was changed by a chip change, that is correct aye?.

                      If that is the case you, with your new found self taught knowledge could possibly do similar to games like Defender to Colony 7, NBA Jam to NBA Jam CE, Mortal Kombat to MKII to MKIII.

                      So many games were converted by swapping chips but your system always you to swap between the games without swapping chips. Very clever.

                      Comment


                      • #12
                        The cpu boards for Berzerk (ZPU-1000) and Frenzy (ZPU-1001) are similar but different enough so its not a direct rom swap.
                        I've got 2 sets of Berzerk boards so I thought for a bit of fun I'd modify one of them to run Frenzy and it's progressed from there.
                        The ZPU-1001 for Frenzy are pretty much unobtainium.

                        Comment


                        • #13
                          Click image for larger version

Name:	IMG_20190820_134448.jpg
Views:	1
Size:	328.1 KB
ID:	1852177
                          Successfully got a GAL20V8 doing the job of the 82s123 prom for Frenzy.

                          /* *************** INPUT PINS *********************/
                          PIN 1 = GAME; /* !GAME = BERZERK GAME = FRENZY */
                          PIN [2..6] = [A15..A11]; /* Pins 2 to 6 A15 to A11 */

                          /* *************** OUTPUT PINS *********************/
                          PIN 22 = RAM;
                          PIN 21 = IO;

                          !RAM = A11 & A12 & A13 & A14 & A15;
                          !IO = !A11 & !A12 & !A13 & A14 & !A15 # A11 & !A12 & !A13 & A14 & !A15
                          # !A11 & A12 & !A13 & A14 & !A15 # A11 & A12 & !A13 & A14 & !A15
                          # !A11 & !A12 & A13 & A14 & !A15 # A11 & !A12 & A13 & A14 & !A15
                          # !A11 & A12 & A13 & A14 & !A15 # A11 & A12 & A13 & A14 & !A15
                          # !A11 & !A12 & !A13 & !A14 & A15 # A11 & !A12 & !A13 & !A14 & A15
                          # !A11 & A12 & !A13 & !A14 & A15 # A11 & A12 & !A13 & !A14 & A15
                          # !A11 & !A12 & A13 & !A14 & A15 # A11 & !A12 & A13 & !A14 & A15
                          # !A11 & A12 & A13 & !A14 & A15 # A11 & A12 & A13 & !A14 & A15;

                          Next I'll be programming a 27c010 rom with both games and using the GAL to switch between Berzerk and Frenzy...making some progress at least.

                          Comment


                          • #14
                            Haven't run out of boards to fix yet have you?. I'm sure I can dig some more up here somewhere.

                            Comment


                            • #15
                              Originally posted by Autosteve View Post
                              Haven't run out of boards to fix yet have you?. I'm sure I can dig some more up here somewhere.
                              Not enough hours in a day more like it. I'm really keen to put my Galaxian 19 in 1 together but haven't got around to it.

                              Comment

                              Users Viewing Topic: 0 members and 1 (guests)
                              Working...
                              X