Re: Cinematronics multigame?

From: Zonn <zonn_at_zonn.com>
Date: Fri Mar 13 1998 - 22:28:07 EST

On 13 Mar 1998 14:46 CST, "Mark Shostak" <shostak@nortel.ca> wrote:

>In message "Cinematronics multigame?", ClayC@diamondmm.com writes:
>
>> Wasn't there someone here working on a Cinematronics Multigame?
>
>Yea! That would be me. I posted to the vectorlist a few months back
>about my progress on the Cinematronics Multigame.
>
>The menu program I'm working on is getting quite lengthy. The biggest
>hold up is not having a good platform to do debugging on. You were
>actually really lucky that Al was generous enough to let you have
>access to the source for his emulator. I haven't had any luck in
>convincing anyone to let me look at the emulator source for completing
>the Cinematronics menu. Development would go a whole lot quicker if I
>could get in and set some break points.

Unfortunately I don't have a debugger built into my emulator. I do have the
option to dump things to a B&W monitor, but they're things one changes at
compile time.

As far as the source goes, I'm a bit politically tied up on that front also.
I'm working with a group of emulator guys on creating a "super emulator" sort of
thing. I agreed at the time of joining up with them I wouldn't release the
source until the emulator was released. (Release dates vary from weeks to years
on an hour by hour basis, so who knows?)
>
>> I seem to recall some discussion about patching the existing games to
>> use a single "multigame" control panel
>
>I've patched several games to use a unified control panel, as well
>as using the same dip switch settings. I used Rip Off and Armor
>Attack as the model.

One thing I did do is place a simple logging subroutine in the emulator, then
run the games and dump the output. I've placed a file on my homepage that is
the address in each ROM, for each game, where an I/O read instruction was
executed.

The I/O read instruction Opcode is: '1x' where the lower nibble 'x' is a number
between 0 and 15 that is the I/O switch or input being read.

By changing this lower nibble in the ROM specified you should be able to re-map
the games layout anyway you want. Simply find all the places an input is read,
that corresponds to the control panel switch you want re-arranged and replace
the lower 4 bits of that opcode to the new input you want to use.

A mapping of the control panels for the different games can be found in the .INI
files supplied with my emulator. Look for the [Inputs] entry and go to the
third column of hex numbers. This is a bitmap of the control panel input.
(Bit-0 Set = Input 0, Bit-1 Set = Input 1, etc.)

Flipping around the dipswitches should be just as easy. But flipping between
dipswitches and inputs present some problems (Space War uses dipswitches as some
of it's inputs)

The game 'dipswitches' are accessed by proceeding the '1x' opcode with a '57'
opcode. So it takes two bytes to read a 'dipswitch' and only one byte to read
an 'input'. And a dipswitch when read, appears to the game code in Bit-0 of the
B-register, while 'inputs' appear as bit-0 in the A-register. So swapping
between Dipswitches and Control panel inputs is a bit harder to do than simply
re-arranging the control-panel-inputs or dip-switches separately, which should
be a piece of cake. (BTW: The '57' opcode that proceeds the '1x' opcode will
not be in the same ROM, but will appear in it's sister ROM at the same address,
or the address just before it, because of the EVEN/ODD layout)

The listing of I/O addresses of most games is zipped up into the file:

   http://www.zonn.com/Cinematronics/C_IO.ZIP

and you have to download it by using the above address directly. I haven't
changed the homepage HTML to point to it. (It's only 3k long, an easy
download.)

This should help in control panel hacks!

-Zonn

<><><><><><><><><><><><><><><><><><><><><><><><><><><><

 ------ ___ Member of A.A.C.S.:
 |---- | ( ) Association for Artistically
    / / ( () ) Challenged Signatures
   / / //\\ // (__)
  / ---/ // \\ //\\ // zonn @ zonn . com
 -------| // \\/
Received on Fri Mar 13 19:27:59 1998

This archive was generated by hypermail 2.1.8 : Fri Aug 01 2003 - 00:31:51 EDT