Viewing Issue Advanced Details
ID Category [?] Severity [?] Reproducibility Date Submitted Last Update
07701 DIP/Input Major Always Jul 7, 2020, 12:41 Apr 20, 2021, 17:20
Tester MrGW View Status Public Platform MAME (Self-compiled)
Assigned To tlindner Resolution Fixed OS Linux (64-bit)
Status [?] Resolved Driver coco12.cpp
Version 0.222 Fixed in Version 0.231 Build 64-bit
Fixed in Git Commit 23f22dc Github Pull Request #
Summary MESS-specific 07701: coco2, coco3 [tetris]: Keyboard navigation controls do not work correctly when playing Tandy Tetris (26-3163)
Description Keyboard navigation controls do not work correctly when playing Tandy Tetris (26-3163). This issue happens with the coco12 and coco3 drivers. The diskette and cartridge versions of the game exhibit the same behavior.

J or left arrow key = move shape left
L or right arrow key = move shape right
K or up arrow key = rotates shape
, or down arrow key = drops the shape
BREAK = pauses or resumes shape drop

Left and right controls seem to be the most affected.
Steps To Reproduce > mame (system) tetris
Press ENTER to get past title screen
Select Level 0
Select Height 0
Play game using keyboard controls (shown above)


Diskette steps
Download Tetris diskette from Color Computer Archive (link below)
Launch mame using Coco 2 (or Coco 3) driver:
mame coco2 -flop1 Tetris\ \(Tandy\)\ \(Coco\ 1-2\)\ \(Coco\ 3\).zip
LOADM "TETRIS.BIN"
EXEC
Press ENTER to get past title screen
Select Level 0
Select Height 0
Play game using keyboard controls (shown above)
Additional Information
Github Commit
Flags
Regression Version 0.210
Affected Sets / Systems coco2, coco3 [tetris]
Attached Files
 
Relationships
There are no relationship linked to this issue.
Notes
8
User avatar
No.17817
MrGW
Tester
Jul 7, 2020, 13:33
Just heard from another person that this worked in MAME 0.206 (unverified by me).
User avatar
No.17818
MrGW
Tester
Jul 7, 2020, 14:49
I just tested some previous versions of MAME. It was working up until 0.209 (possibly 0.210) and stopped working in 0.211. No idea what changed, but theory is it could be related to any changes with the PIA handling.
User avatar
No.17819
Tafoid
Administrator
Jul 7, 2020, 16:24
If it is a known softlist items, there is no need to provide links to software.

Regression determined to be May 25, 2019 in testing
https://github.com/mamedev/mame/commit/4cdf369921fe6fd32c14cffc91bbfbd4b8fb29fe
coco2: Converted all coco/dragon extension devices to use cts handlers.

It is a lot of code to go through, hopefully it is a simple typo somewhere.
User avatar
No.18590
tlindner
Tester
Mar 21, 2021, 16:39
I did a little digging. I have not been able to find a git checkout that works. But I did find something interesting.
This game is reading the keyboard a little backwards to practically every other piece of software on the CoCo.
Normally port B is setup so all bits are output and a single high bit is written, then port A is read. Shift and repeat for all bits.
Tetris sets port B to zero, and sets the direction register to make a single bit output, then port A is read. Then the DDR is shifted and port A read again for all the bits.
This is not being handled correctly.
User avatar
No.18591
tlindner
Tester
Mar 22, 2021, 01:16
Fix is ready. Github pull request #7881.
User avatar
No.18613
Tafoid
Administrator
Mar 29, 2021, 13:21
edited on: Mar 29, 2021, 13:29
This fixes things for coco2 tetris, but coco3 still has the same behavior.
coco3.cpp and dragon64.cpp could both probably use the modification?
User avatar
No.18724
tlindner
Tester
Apr 20, 2021, 16:57
Fix ready and merged: https://github.com/mamedev/mame/pull/7903

Nominate for closure.
User avatar
No.18726
Tafoid
Administrator
Apr 20, 2021, 17:20
Thanks for the reminder