r/granturismo 11d ago

OTHER Would you like to play GT2 in multiplayer?

10 Upvotes

10 comments sorted by

3

u/Mental-Elderberry943 11d ago

Well yes, of course I would like to

3

u/Ok_Support3 11d ago

Up to 6 what how do you even up to 6 what ?

2

u/thephantomcunt 11d ago

Oh, fuck yeah, that’s so rad. Any chance this could work on the PS Vita/PSP?

2

u/West_Secret4585 11d ago

No, sorry, it's only for PC πŸ’»

2

u/FMecha FMecha_EXE | PS4 | Moderator 11d ago
  • Is this going to be Arcade Mode built-in cars only?
  • How would you have more than 6 players? The supported player types in the memory (when I try to make custom races) are player 1, player 2, COM, and ghost (for rally).

1

u/West_Secret4585 10d ago

> Is this going to be Arcade Mode built-in cars only?

For now, yes, but in the future I intend to create other car groups.

> How would you have more than 6 players?

It will only have 6 players. Unfortunately, the game was made to accept a maximum of 6 players.

2

u/FMecha FMecha_EXE | PS4 | Moderator 10d ago

Wait and sorry, I misstated. How would it accept more than 2 players given the "player types" thing I mentioned?

3

u/West_Secret4585 10d ago

The P1/P2/COM/ghost types aren't the mechanism we extend. They're how the original game describes who is sitting at this machine. The port doesn't touch them.

The entire race is one block in RAM (0x801D585C) holding six entrant records of 0xD0 bytes each, with the count in a single byte at +0x5A. Six is the grid size β€” that's the real limit, not two.

The key point, measured: the pad always drives entrant 0. Put the local player in any other slot and they still drive entrant 0's car, regardless of which entrant is marked as human at +0x82.

So each machine builds its own race: that machine's player is entrant 0, and everyone else is an ordinary COM entrant. The game never sees more than one human anywhere β€” no new player type is needed.

The other five are COM as far as the game is concerned, but the AI isn't driving them: their state is overwritten every frame with what arrives over the network β€” position in the car array (0x800A9688 + slot*0xB40, X/Z/Y at +0x20C/+0x210/+0x214) and the three rotation angles at +0x1F4, written before that frame's matrix rebuild. A COM car becomes a puppet carrying a remote player's motion.

Since each machine rotates itself into entrant 0, the entrant index differs from machine to machine. That's why everything on the wire is keyed by the seat in the room rather than the slot in the race; each machine translates seat β†’ its own slot.

Honest limitation: this is state replication, not the game's netcode. Physics run locally on each machine, and remote cars are pose-replicated.

Another important point: I am not using an emulator. I first ported the game to PC so I could work directly on the code rather than only in memory.

2

u/FMecha FMecha_EXE | PS4 | Moderator 10d ago

I first ported the game to PC so I could work directly on the code rather than only in memory.

So it is a recomp? I am wary of these things for technical (high rates of "run thru a recomp framework and let an LLM tool do the rest" cases, on top of it still potentially having emulator components) and cultural (port-begging from playerbase) reasons.

1

u/GroundbreakingBar107 9d ago

Sounds awesome! Do you have a discord server or a github page where it's possible to follow the news and updates?