Freeplay for Zaccaria's "The Invaders"

tinv_fp

IMPORTANT NOTE: Currently, this modification has not been tested on real hardware, it has only been tested in MAME. While I can't think of any reason why it shouldn't work on the real hardware, if you decide to carry out this modification then you do so at your own risk. That said, I would like to hear if things work out for you, or indeed if they do not so I may update this page accordingly. I will remove this notice and modify the page as and when the free play mod gets tested on each of the original hardware configurations that I have access to.

Over on Jamma+ recently, the question came up of how to set Zaccaria's version of the Taito classic Space Invaders onto "Free Play". Someone was taking a machine to a charity event and understandably didn't fancy the idea of standing around opening up the coin door to add credits all day long so they wanted an easier way. Of course, as is not at all uncommon with games from the late 70's and early 80's, there's no built in provision for this with the standard set up.

Several suggestions came up, from just adding the maximum 99 credits to modifying the machine so the coin reject becomes the coin add button. Of course, there's nothing wrong with each of these methods as such, but each has it's own problems. With the easy option of just opening up the coin door once in a while and adding 99 credits, you then loose the attract mode. The game will just sit there all day long prompting the next player to push 1 or 2 player start, merrily burning this image onto the screen. So not ideal.

Nothing desperately wrong with the latter idea of modifying the coin reject system either, other than of course, you're modifying the machine, no matter how discretely, plus I guess Joe public is going to need to be told that is how it works, so again, not ideal.

So someone passed the comment in my direction that it might be the kind of thing I could sort out. I was pretty busy with other stuff at the time, but of course I got thinking about it and fairly quickly obliged. I consider it to be a bit of a hack as there's nothing fancy to switch freeplay mode on or off or anything, Just replace a ROM (or two depending on the ROM configuration in your board) and off you go. The end result works quite well. If you want to revert to normal, put the original ROM back in.

I guess, if you want to get clever, double up the ROM image onto a ROM twice the size and add a toggle switch, but I'll leave that out of this article for now. If you know how to do it, go ahead, it really shouldn't be difficult to do.

The Software Hack

The features of this hack are fairly simple and straightforward:

  • If you walk up to the machine and just press either the 1 or 2 player start button it will always start as thought there were enough credits in the machine to do so but providing a game is not already in play.
  • If there were any credits in the machine, they will be removed at the start of each game. In the original scenario this hack was intended it would look fairly daft if the number of credits were allowed to rise and rise if people did decide to insert money (it is up to the person that owns the machine to physically disable coin entry).
  • The attract screen has been fully maintained.
  • The attract screen has been modified to read "FREE PLAY" instead of "INSERT COIN".
  • If coin entry is not disabled then behaviour that could be considered a little odd is possible. Namely, if you insert 1 coin, the game will prompt you to press player 1 start only, yet you can start a 2 player game. If you think about this, it is correct, since freeplay is enabled. Again, really coin entry should be disabled, either physically or through the use of lockout coils if fitted.
If you want to make the changes to the ROMs yourself for some reason then the code changes are listed below. There are three areas to modify. One for the on-screen text in attract mode and one for each of the P1 and P2 start buttons. The memory locations are given in hex but don't forget that you must subtract the number of bytes according to the ROM configuration that you are working with. So, for instance, the position 0xB2C will become position 0x32C of ROM 2 if you are using 2716 ROMs. I will assume that if you know how to patch the ROMs yourself then you will also know how to work all of this out. All the required details follow...
//
// Modify attract screen to read " FREE PLAY " instead of "INSERT COIN"
//
0B2C 20 // Space
0B2D 46 // F
0B2E 52 // R
0B2F 45 // E
0B30 45 // E
0B31 20 // Space
0B32 50 // P
0B33 4C // L
0B34 41 // A
0B35 59 // Y
0B36 20 // Space
 
//
// Player 1 start pressed
//
// At the end of these bytes, 1D09 must = 0 and CC must be set to 11
0BC7 04 00 // Put 00 in register 0
0BC9 CC 1D 09 // Transfer register 0 to $1D09
0BCC 77 C0 // Set CC to 11
0BCE C0 // NOP
0BCF C0 // "
 
//
// Player 2 start pressed
//
// At the end of this, zero must have been put into 1D09 and CC must be = 00
0C87 04 00 // Put 00 in register 0
0C89 CC 1D 09 // Transfer register 0 to $1D09
0C8C 75 C0 // Set CC to 00
0C8E C0 // NOP
0C8F C0 //   "
0C90 C0 //  "
0C91 C0 //  "

Modifying the ROMs

There are a number of different possible configurations for a Zaccaria Invaders PCB, involving various different ROM setups. Match the setup of your board and download the ROM images listed below for your board. Burn the new (P)ROM(s) and then you should be good to go.

The following table shows the different ROMs and memory locations for the different configurations. The ROMs marked with a * are the ones that need to be patched or changed.

Of course, if you have one type of ROM configuration but you wish to change to another, it should be easily possible to just switch, by reading your existing ROMs, join or split the images appropriately, then burn a new set, however you cannot simply plug the different kind of ROMs into the sockets as this will invariably cause damage to them (and maybe more of the PCB) due to the different voltages involved between the different kinds of ROMs. There are jumper wires on the PCB and these need to be changed to accommodate the different types of ROMs. I don't have the information to hand for this. If I find it, I will update this section.

2716's
0000 - 07FF
0800 - 0FFF *
1000 - 17FF

2708's
0000 - 03FF
0400 - 07FF
0800 - 0BFF *
0C00 - 0FFF *
1000 - 13FF
1400 - 17FF

PROMs
0000 - 01FF
0200 - 03FF
0400 - 05FF
0600 - 07FF
0800 - 09FF
0A00 - 0BFF*
0C00 - 0DFF*
0E00 - 0FFF
1000 - 11FF
1200 - 13FF
1400 - 15FF
1600 - 17FF

3 x 2716's

Unfortunately, by far the simplest configuration of 3 x 2716's, seems to be the least common of the three configurations that I've seen. If you have this configuration then you will find you have just three ROMS at positions 42, 44 and 46. You need only burn a single new ROM in this instance that contains all the changes. The ROM goes in position 44.

6 x 2708's

Next in line of most common are the 2708's. These don't really cause any more of a problem so long as your programmer can handle them. Very few modern programmers do without expensive adapters. I use the rather ancient Data I/O 29B with Unipak 2B and that handles them just fine. If you have this setup then you will need to replace the two ROMs at positions 44 and 45.

12 x PROMs

This, unfortunately seems to be the most common setup that I have seen. It's a bit of a pain this one. Firstly, it sucks the voltage down quite a lot on the power supply and the PROMs, as with all bipolar fuse ROMs, run nice and hot. On top of that, the little daughter board that they sit in is soldered into the main PCB and additionally the PROMs themselves are soldered into the daughter board. Then, PROMs being PROMs (note the lack of an E on the front of that!) they can't be erased so you won't be able to reuse them. Just like the 2708's, they can also be difficult to program with cheaper modern programmers. Again, the Data I/O should cope just fine though.

For this project however, they won't be a problem, simply remove the two you need, fit sockets, burn away and off you go. Please note that I've not actually done this modification with PROMs so I don't know which two it is!

Downloads

(currently 2716 image online only, others to be added shortly)

For 2716's: zifp_2716.zip (1 rom image only)
For 2708's: zifp_2708.zip (2 rom images)
For bipolar fuse roms: zifp_prom.zip (2 rom images)