About me

My photo
Vanløse, Copenhagen, Denmark
Mathematician. Working programmer/system developer. Nerd. Married. Father of 3.

7.4.14

Bubble Bobble Lost Cave & REDUX on same bootleg PCB

About a year ago, i managed to snap up a cheap defective bootleg Bobble Bobble that I fixed and installed the REDUX ROM set on. That works fantastic, but another exciting project is Lost Cave, that originally released on December 11, 2012. It's a very ambitious fan project made by the 2 good fellows Bisboch & Aladar and consists of 100 "new" levels for the original arcade game. "New" are in quotes, as it's actually the best levels from various ports, that have been backported to the original arcade platform. Along with that, it introduces a lot of new elements for example on the graphical side. The original release from 2012 only ran on original Taito hardware (and MAME), but when the authors discovered REDUX, they got inspired to try and do a bootleg-PCB version as well; and as of Lost Cave v1.2 (December 11, 2013) it also runs on bootleg boards (the kinds without a 68705; so the same criterion as running REDUX).

I downloaded the Lost Cave (bootleg) ROM set and installed it on my board, and it worked like a charm; jawsome game! };-P Now Lost Cave is a whole new game with new levels and stuff; the original levels are not present in the game anymore. So I started thinking about how I could find an easy way to run both Lost Cave and REDUX on my board, without having the fuzz of swapping the ROMs every time.

The first thing to notice is, that all the ROMs on the board are 27256


Next thing to notice is, that EPROMs in the 27-series comes in "clusters" of form factors given by the type of DIP packages. So ie 2716 and 2732 are both DIP24, whereas 2764, 27128, 27256, 27512 are all DIP28 and so on. Now if you compare the pinouts of 27256 and 27512


you'll find, that they are almost identical with the exception of pins 1 and 22. The 27512 uses pin 1 as the extra address pin and have pin 22 double as both Output Enable (in reading mode) and Programming Voltage (in programming mode). Now pin 22 we don't have to worry about, as the EPROM will only operate in reading mode on the board. But pin 1 will allow us to switch between the upper and the lower 256K bits of the EPROM. This scheme is often referred to as bank switching (at least when it's is done runtime, anyway), as you divide the address space of the ROMs into two separate banks that you can switch between.
Now to pull this through, I first had to identify the union set of all the ROMs that has to be swapped to go from straight bootleg to either REDUX or Lost Cave. Now the REDUX are marked with bow ties and the Lost Cave are marked with fezzes



...the union set is of cause just all the marked ROMs };-P. Please note, that on other bootlegs, these ROMs might have very different numbers/id's, so it's the position that's the important thing here.

Next I started doing the plumbing for the bank switching. First of all, I would need an ON-ON switch with +5V on one pole and GND on the other; the middle will then be the "bank switcher". I just happened to have a bag of tiny ON-ON switches stocked that fits into 3 successive holes on a DIL, so as bootlegs often has a lot of unused holes, I easily found some usable ones to clean up.


and installed the switch


Next, the wires got soldered on on the solder side


The red wire is +5V, the unisolated is GND, and the blue is the bank switch-wire.
Now on the main PCB, 3 of the 4 ROMs to be swapped (the 3 ones on a line), already had pin 1 tied to a GND-rail individually, so these connections had to be cut of cause.


These are marked with 3 red arrows; I also accidentally (it was late at nite }:-S) cut the connection to pin 2 on the middle ROM (blue arrow). So that's why there is also a piece of red kynar to patch this up on the next pic showing how the pin 1's are connected to the bank switch-wire.


As you can see, the blue switch-wire ends at the ribbon cable connector


That's because the switch-signal needs to be passed on to the secondary board. And as I didn't want any extra wires (that would have to be desoldered every time the board is taken a part), I choose to hijack one of the many GND wires on the ribbon cable (notice the cut). Now that was all the plumbing needed on the primary board. The secondary board was actually easier. Here, all the pin 1's on the ROMs was already interconnected, with a GND-connection in one end, and a connection to a resistor array in the other end. So only 2 cuts on the component side needed to be made



And then of cause, the connection to the hijacked ribbon pin had to be cut and connected



The last thing needed to pull this off, was the actual ROMs. Now as I'd dumped all the ROMs during the repair, I had a full set of REDUX ROM files for my board. Also, before I even started, I'd checked that Lost Cave v1.2 would actually run on my board, so I had a full set of files for that too. So it was only a matter of combining the two sets, for each ROM that needed to be swapped. This is easily done ie in a Windows cmd prompt with the command
~> copy /b rom1 + rom2 combined_rom
for every pair of ROM files; of cause taking care, that the files from the same set were always first/last };-D

So I replaced all the 27256-ROMs to be swapped with the just programmed 27512-ROMs and fired up the board full of excitement };-P


Now that's just puuuure awesomeness, ain't it? };-P

As a last thing in this post, I wish to mention, that I've recently created a Facebook page, that'll make it a bit easier to follow the blog. Here I'll post every time I make a new blog post, but also make minor posts about progress of current projects etc. I welcome you to visit, and 'like' if you wish to be updated on the stuff I do.

A whole lotta love from Yours Truly };-P

23 comments:

  1. Mad skills,., as always :)

    ReplyDelete
  2. Jeg synes det er awesome at du har både tekst, billeder og video !

    ReplyDelete
  3. This is simply amazing! I'm Bisboch, half of the Bubble Bobble Lost Cave Team, and I'm really excited about this achievement of yours! There's a surprise coming to your Facebook page;)

    ReplyDelete
    Replies
    1. Gee, thnx for your kudos *blush*
      Really value it highly coming from the creators of Lost Cave; awesome stuff you've done there };-P
      As you can see, the mod is relative easy if you know way around with a soldering iron, so you could consider doing the same with your own board };-P
      Plz give my regards and kudos to Aladar...
      Again awesome work you guys have done };-P
      Peace and love to you both.

      Delete
  4. Anonymous13/4/14 00:29

    Hello Elgen,

    This is an awesome hack. I have the same bootleg with you and I want to make this hack too. I have some basic knowledge of electronics and i don't understand something you made on the main pcb. Why does the blue wire must also connect on ROM labeled 1, and not just only on ROMS 3,4,5? I understand that the switch must connected on all ROMS to this to work properly. Why you didn't connect ROM2 also on the switch? Is it really needed to connect ROM1 on the switch. Thanks. Peace and love.

    ReplyDelete
    Replies
    1. Dear "Anonymous" (teehee };-P)
      Thnx; glad you like it };-P
      ROM1 needs to be swapped for LostCave to work, so that why the bank switching must go to that IC as well.
      The ROMs with labels 2, 8, and D on my board are are common for all versions of BubbleBobble so they don't need a 27512 and hence no bank switching. 8 and D are infact connected to the switcher wire anyhow, but on these (27256) that pin is just Vpp, so that doesn't matter.
      Love };-P Elgen

      Delete
  5. Hey thanks man now i understand. By the way I am Steve. Another think that I am worried about is that there is a 64 KB ROM (a78-05-1.52) on the folder. Since all ROMS should be 27256(32kb) where does that one go? I ordered an EPROM programmer and I am waiting for it to dump my board ROMS. Also I find out that on my board on position 9 there exists a 27512 rom. I though that the a78-05-1.52 should go there but then i though that this is wrong. Maybe it's a double image of a rom because the guy who put it didn't have a 256. I don't know I am confused.
    Keep up the good work:)

    ReplyDelete
    Replies
    1. Hi Again Steve
      And thnx for your kudos... warms my heart };-P
      I think you're right about the 27512 on you board being just one with double image, but you can't really tell, before you've tried dumping it.
      Once you get your programmer, I'd advise you to dump all the ROMs on your board and name them as per the labels on them. Then run
      ~>mame.exe -romident .
      in the dir that they reside (piping the output into a txt-file), and you'll have a "mapping-file" looking something like this:

      Identifying .....
      1.BIN = a78-08.37 bublbobl Bubble Bobble
      2.BIN = a78-07.46 bublbobl Bubble Bobble
      3.BIN = 1c.bin sboblboa Super Bobble Bobble (set 1)
      = bbb-3.rom sboblbob Super Bobble Bobble (set 2)
      4.BIN = 1b.bin sboblboa Super Bobble Bobble (set 1)
      5.BIN = bb5 boblbobl Bobble Bobble
      = bb5 sboblbob Super Bobble Bobble (set 2)
      6.BIN = a78-15.30 bublbobl Bubble Bobble
      7.BIN = a78-16.31 bublbobl Bubble Bobble
      8.BIN = a78-17.32 bublbobl Bubble Bobble
      9.BIN = a78-18.33 bublbobl Bubble Bobble
      10.BIN = a78-19.34 bublbobl Bubble Bobble
      A.BIN = a78-20.35 bublbobl Bubble Bobble
      B.BIN = a78-09.12 bublbobl Bubble Bobble
      C.BIN = a78-10.13 bublbobl Bubble Bobble
      D.BIN = a78-11.14 bublbobl Bubble Bobble
      E.BIN = a78-12.15 bublbobl Bubble Bobble
      F.BIN = a78-13.16 bublbobl Bubble Bobble
      G.BIN = a78-14.17 bublbobl Bubble Bobble

      That's what I did, and it was a big help for me when figuring out, which LC-ROM should go where.
      Cheers and good luck
      Love };-P Elgen

      Delete
  6. Hey Elgen, hvad er tidens projekt? :)

    /Nicholas

    ReplyDelete
    Replies
    1. Currently working on a Q*bert PCB set for a friend, but haven't got time for much atm, sadly }:-S.
      You can follow some of the progress on the Q*bert on the blogs Facebook page (see link in top left corner of this page) };-P

      Delete
  7. But I'm not on facebook anymore, I pulled everything to my site(www.popbumper.dk) it seemed redundant to make the same updates in two places, and besides that FB annoyed me like crazy :D

    ReplyDelete
  8. Hello again. Just some great news here. My programmer came today and I dumped my roms and are almost all as you posted above. I had right about the 27c512 it was a double rom! ! I say almost because i discovered something! All roms are the same except 3 and 5! This have to do with the game program right? I figured out that this is a not known version. Not any version of REDUX not from LC team(checked that with checksum)! As i know no one worked on this and this is maybe an unknown hack from the old days! Just noticed that in attractive mode the characters don't die as they die on all the bootlegs versions! And I noticed that the game-play is different. How can i report this to MAME? I can't find the way. Maybe it's an old rom hack that MAME will be interested I don't know! I am excited!

    ReplyDelete
    Replies
    1. That's cool news, m8!
      I don't have any contacts in the MAME team, but I know my friend porchy (http://www.jammarcade.net/) have dumped a couple of games for them and has contact to them. So you might want to contact him about it. I would really like a copy of those ROM-files as well.
      Have you btw tried to play with the dips? I know that 7 and 8 in one of the banks control the movement speed of the foes.

      Delete
  9. Ok thanks. I sent an email to MAME (i figured out) and in case I don't get response I will contact your friend.
    The only sad thing I discovered on this version, is that the EXTEND doesn't gives you a life always and that's bad. I think all bootlegs had the same issue I believe it's because of the custom chip.
    Yeah I discovered all the pins. And you are right about 7 and 8. Those two should be on or off lol i don't remember for the normal gameplay. As i remember for normal settings all should be off and 7,8 on or visa versa. I don't remember.
    Here's a copy of the two roms! http://www.2shared.com/file/K-3SsV0Z/BB_bootleg_Steve.html
    Check them out man and tell me your opinion. Goodnight.

    ReplyDelete
  10. Hello again.
    In a few days I will make the hack with the switch. I am afraid man I don't understand which connections to cut on the 3 roms in the row. Can you please send me a closer picture of the cut? Maybe explain? Did you desolder the sockets to cut the connections? I hope no because I am afraid i will broke the pcb.. I also found that in rom #1 also need small cut. Right? you didn't mention it. my email is steve_612@hotmail.com. Thanks in advance.

    ReplyDelete
    Replies
    1. Oops! Forgot all about this, m8! I'll see, if I can post something tonite, sorry }:-/

      Delete
    2. Basicly all connections to pin1 on the marked ROMs needs to be cut; also ROM1. It might depend a bit on what version bootleg you have how the cut can be done. But to be sure that you don't short anything, use a multimeter or a scope on a running board to make sure.
      Good Luck and Cheers
      };-P Elgen

      Delete
  11. Excellent work and an enjoyable read, thanks for sharing.

    ReplyDelete
    Replies
    1. Gee thnx m8! *blush* I've enjoyed reading several posts on your blog (http://ikotsu.blogspot.com/) as well };-P

      Delete
  12. Hello Elgen. I did my hack.. in another way,
    I didn't make cuts on the cpu board because i was afraid.. i did something else.
    I cut the pin 1(legs) of the chips and i soldered wire on them and put them on their sockets.
    after that i connected all those wires together and connected them on the wire connected on the switch.
    and guess what... it is working!!! thanks man you really inspire people to do things.

    here is a picture the cpu board: http://i58.tinypic.com/o8c4gp.jpg

    ReplyDelete
    Replies
    1. That looks awsome, glad you got it working, and thnx for sharing m8.
      And also thnx for the for the kind words *blush*. That's what keeps me going };-P
      Cheers

      Delete