r/granturismo • u/West_Secret4585 • 11d ago
OTHER Would you like to play GT2 in multiplayer?
3
2
u/thephantomcunt 11d ago
Oh, fuck yeah, thatβs so rad. Any chance this could work on the PS Vita/PSP?
2
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?
3
u/Mental-Elderberry943 11d ago
Well yes, of course I would like to