Skip to content

8-bit Normal Serial IO mode not working #2172

@felixjones

Description

@felixjones

ELF & ROM download (project.zip)
((please excuse the use of "master/slave" terminology))

On mGBA the master player must await for the ready state of the slave player. This is done by reading bit 2 of REG_SIOCNT (AKA "SI State (opponents SO)") until the value is "low" (0, ready state).

This status never changes in mGBA. It is always "high" (1, not ready state).

Video of the above ROM on hardware:
https://user-images.githubusercontent.com/1824671/118163070-d4ad9c00-b421-11eb-96ee-9a2be376da84.mp4

In this demo ROM player 1 can send buttons A and/or B to player 2 (regardless of master/slave setting, however P2 cannot send to P1 - due to normal mode being one directional with AGB cables. CGB cables are two directional).

Tested on latest mGBA as of this writing (0.10-6995-96988133b)
Recreation steps:

  • Load up ROM
  • Open multiplayer window
  • Load up same ROM
  • Select Master on Player 1
  • Select Slave on Player 2
  • Press A and/or B on Player 1
  • Expected: Player 2 receives value. Actual: Master "times out" (bit 2 of REG_SIOCNT never changes).

EDIT: Tested with Normal32, which seems to work fine. I suppose this issue is Normal8 only.

Metadata

Metadata

Assignees

No one assigned

    Labels

    hardware:linkIssues in linking and serial subsystemsplatform:GBAGame Boy Advance-related issues

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions