Skip to content

[Experimental] GP Mode for 3/4 Players#636

Open
MegaMech wants to merge 19 commits intoHarbourMasters:mainfrom
MegaMech:gp4p
Open

[Experimental] GP Mode for 3/4 Players#636
MegaMech wants to merge 19 commits intoHarbourMasters:mainfrom
MegaMech:gp4p

Conversation

@MegaMech
Copy link
Contributor

@MegaMech MegaMech commented Jan 29, 2026

This PR needs to be tested to confirm that it does not introduce new bugs to the game.

Please advise if any bugs are found.

This feature is not the current focus, any bugs related to this new mode will not be investigated (ex. wide-screen UI issues). As such, if this is merged, it's to allow the feature to exist. The capability to play Kalimari Desert with the full train, 4 human players, and 4 CPU players is considered desirable, even if some defects exist.

Concerns

  • 3/4 player mode accesses the kart texture buffer in a strange way:
    • buffer[screenIndex][playerIndex] // Normal usage
    • buffer[screenOne][0-3] // Screen 1
    • buffer[screenOne][4-7] // Screen 2
    • buffer[screenTwo][0-3] // Screen 3
    • buffer[screenTwo][4-7] // Screen 4

The above hack (which saves memory) only allows 4 players per screen. Thus some changes have been made to allow drawing 8 players on 3/4 screens.

  • Does 2P GP/Versus and 3p/4p versus modes still work properly?

This PR may also pave the way for allowing more than eight player games. However, many arrays and for loops would need to be increased. At the very least, drawing more than eight players should be easily possible.

Bugs

  • Rank texture corrupted
  • Skid animation missing
  • Smoke missing
  • star/lightning bolt animation not working
  • Does not move onto next track.
  • Item ownership gets mixed up and you can't use items.
  • race results no black fill for screen 3/4

Copy link
Contributor

@coco875 coco875 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

look fine but would prefer to hide this feature behind a cvar

break;
case SCREEN_MODE_3P_4P_SPLITSCREEN:
D_8015F894 = 5;
break;
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This needs to be verified that it does not interfere with other game modes.

The background black fill is missing on screens 3/4. but it works.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants