Viewing Issue Advanced Details
ID Category [?] Severity [?] Reproducibility Date Submitted Last Update
04144 DIP/Input Minor N/A Dec 17, 2010, 20:31 May 22, 2011, 15:09
Tester sxevious View Status Public Platform MAME (Official Binary)
Assigned To Tafoid Resolution Fixed OS
Status [?] Resolved Driver
Version 0.140 Fixed in Version 0.140u3 Build Normal
Fixed in Git Commit Github Pull Request #
Summary 04144: mazeinv: Incorrect amount of buttons
Description Maze Invaders has only two gameplay buttons not four though there are two of each for left-handed and right-handed player (like Xevious). Also in game, button 2 (Alt) seems to be the tilt switch as a loud shrill is heard when this is pressed.

Additionally it would be nice if a picture of the instructions from the control panel could be obtained.

Low-res reference images here:
http://www.atarigames.com/safestuff/mazeinvaders.html
Steps To Reproduce
Additional Information
Github Commit
Flags
Regression Version
Affected Sets / Systems mazeinv
Attached Files
 
Relationships
There are no relationship linked to this issue.
Notes
14
User avatar
No.06928
Tafoid
Administrator
Dec 17, 2010, 21:17
I'll look at it..
User avatar
No.06929
Tafoid
Administrator
Dec 18, 2010, 02:35
I went through and tested buttons and took out / reassigned the appropriate ones. Made notes in the driver about the second button in case other discoveries can be made. This is a prototype - so it's not easy to determine if the second button's function was even finished.
User avatar
No.06932
sxevious
Tester
Dec 18, 2010, 19:42
Maze Invaders was field tested so the second button almost certainly has a function. A hi-res picture of the control panel would be extremely helpful as the buttons are labeled (the first is fire, the second is blurry in the lo-res image, it might say reverse ?). The instructions would be helpful for gameplay as well: Sometimes the bonus sound from Centipede is heard but I have no idea why (Maze Invaders has its own bonus sound). Sometimes a blue door appears which awards bonus points if used but it isn't clear what triggers it. Also it seems that getting the same fruits in sequence gives more points.
User avatar
No.06933
sxevious
Tester
Dec 18, 2010, 19:57
Found a high-res image:
http://farm5.static.flickr.com/4149/4841559950_187583450a_o.jpg

Maze Invaders buttons are Fire and Reverse. Perhaps the reverse button reverses the direction of the enemies when used ? Or maybe the direction of the moving walls ? Unfortunately even this image is not quite clear enough to fully make out the instructions.
User avatar
No.06935
sxevious
Tester
Dec 18, 2010, 20:52
Based upon a quick disassembly of the ROMs try moving button 2 to IN2 bit 0 (port bit 0x01) for player 1 and IN3 bit 0 (port bit 0x01) for player 2.

The IN2 and IN3 definitions for Maze Invaders should be this:

PORT_START("IN2")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON2 )
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 )
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 )
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_TILT)
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN) // ??
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN)
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 )

PORT_START("IN3")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON2) PORT_PLAYER(2)
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START2 )
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN)
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN) // ??
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN)
PORT_SERVICE( 0x80, IP_ACTIVE_LOW )

Note bit 5 in both IN2 and IN3 are checked, these may be coin ports. At least one coin port (left) is missing. COIN1 definition is the right coin port.
User avatar
No.06937
Tafoid
Administrator
Dec 19, 2010, 00:52
There is actually 2 buttons used in the game, 3 coin slots. Check u3 when released. There is no port_player(2) nor a cocktail option to enable such a beast.
User avatar
No.06938
sxevious
Tester
Dec 19, 2010, 01:07
Here is a bit of disassembly which suggests there is:

5B37 LDA 2010
5B3A BIT C5
5B3C BPL 5B41
5B3E LDA 2011
5B41 AND #05
5B43 CMP #05

There are several places in the code which use the value at C5 to determine whether to read 2010 (IN2) or 2011 (IN3). This is how I figured that button 2 should be bit 0 (01) since button 1 is bit 2 (04) and the code is masking with 05.

Here is the code where C5 is set (from 2011 bit 5):

5412 LDA 2011
5415 AND #20
5417 EOR #20
5419 ASL A
541A STA C5
541C STA 2506
541F RTS

So perhaps IN3 bit 5 (20) is the cabinet type ?
User avatar
No.06939
Tafoid
Administrator
Dec 19, 2010, 01:13
It's possible. In my tests it activated some values in test mode (as if to suggest a second analog range). This is already commented in the driver update I did.
User avatar
No.06940
sxevious
Tester
Dec 19, 2010, 01:17
I forgot to mention that in Millipede, 2506 is the flip screen control. Maze Invaders is largely based upon Millipede so this should be added to its memory map then the player 2 controls should work:

AM_RANGE(0x2506, 0x2506) AM_WRITE(centiped_flip_screen_w)
User avatar
No.06942
sxevious
Tester
Dec 19, 2010, 01:33
One more thing, you also need to add definitions for STICK1 and STICK3 (player 2 analog stick Y and X) which are currently unused.

What does button 2 do in the game anyway ?
User avatar
No.06944
sxevious
Tester
Dec 19, 2010, 02:20
edited on: Dec 19, 2010, 02:21
Compared Maze Invaders with Millipede and not surprisingly IN3 bit 5 handling is the same in both so make that the cabinet type for Maze Invaders (copy from Millipede definition) and the player 2 controls should work.

I think these definitions should work:

PORT_START("IN2")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON2 )
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 )
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 )
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_TILT)
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) // another coin input ?
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1)
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 )

PORT_START("IN3")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START2 )
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_DIPNAME(0x20, 0x20, DEF_STR( Cabinet ) )
PORT_DIPSETTING( 0x20, DEF_STR( Upright ) )
PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) )
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_SERVICE( 0x80, IP_ACTIVE_LOW )


/* IN6-9 fake to control player joysticks */
PORT_START("STICK0")
PORT_BIT( 0xff, 0x7f, IPT_AD_STICK_Y ) PORT_MINMAX(0x40, 0xbf) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_REVERSE PORT_PLAYER(1)

PORT_START("STICK1")
PORT_BIT( 0xff, 0x7f, IPT_AD_STICK_Y ) PORT_MINMAX(0x40, 0xbf) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_PLAYER(2)

PORT_START("STICK2")
PORT_BIT( 0xff, 0x7f, IPT_AD_STICK_X ) PORT_MINMAX(0x40, 0xbf) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_PLAYER(1)

PORT_START("STICK3")
PORT_BIT( 0xff, 0x7f, IPT_AD_STICK_X ) PORT_MINMAX(0x40, 0xbf) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_REVERSE PORT_PLAYER(2)
User avatar
No.06959
sxevious
Tester
Dec 23, 2010, 17:24
Nothing was actually fixed in 140u3. If the inputs are hooked up as I listed in my previous post (#6944) then the controls should fully work in upright and cocktail modes. Don't forget to handle writes to address 2506 to flip the screen for cocktail mode (see post #6940).
User avatar
No.06960
Tafoid
Administrator
Dec 23, 2010, 17:39
I fixed the fact that there were 4 buttons per player and did some preliminary research. I personally didn't get time to work with your bits of submission. If you can get a working source to 0.140u3 and want to make the changes locally, test them and then send in - feel free to submit a .DIFF patch using the guidelines shown here:

http://mamedev.org/devwiki/index.php/Submitting_Source_Code

Otherwise, you'll just need to wait for another Dev to step up and take the time to do this. Almost everyone I know is pretty busy this holiday season.
User avatar
No.06963
Tafoid
Administrator
Dec 27, 2010, 11:47
I had the chance this morning to hook up and test your snippets and submit an update fully activating cocktail and controls (along with labels). Thanks for your research.