diff --git a/content/MP4.EGG b/content/MP4.EGG new file mode 100644 index 0000000..4c80ec3 --- /dev/null +++ b/content/MP4.EGG @@ -0,0 +1,456 @@ +[mission] +adventure=BattleTech +map=arena1 +scenario=freeforall +time=day +weather=clear +temperature=27 +length=600 +[ordinals] +bitmap=Ordinal::BitMap::1 +bitmap=Ordinal::BitMap::2 +bitmap=Ordinal::BitMap::3 +bitmap=Ordinal::BitMap::4 +[Ordinal::BitMap::1] +bitmap=00000000000000000000000000000000 +bitmap=00000000000000000000000000000000 +bitmap=00000000000000000000000000000000 +bitmap=00000000000000000000000000000000 +bitmap=00000000000000000000000000000000 +bitmap=00000000000000000000000000000000 +bitmap=000038000003C000001FF00000000F00 +bitmap=0000F8000003C000003FF80000000F00 +bitmap=0001F8000003C00000707C0000000F00 +bitmap=0001F8000003C00000603C0000000F00 +bitmap=00007801FC0FF00000003C3DF807FF00 +bitmap=00007803FE0FF00000003C3FFC0FFF00 +bitmap=00007803C703C00000003C3E3C1F0F00 +bitmap=000078078303C0000000783C1E1E0F00 +bitmap=000078078003C0000000783C1E1E0F00 +bitmap=00007807C003C0000000F03C1E1E0F00 +bitmap=00007807F003C0000001E03C1E1E0F00 +bitmap=00007803FC03C0000003C03C1E1E0F00 +bitmap=00007801FE03C0000007803C1E1E0F00 +bitmap=000078007F03C000000F003C1E1E0F00 +bitmap=000078001F03C000001E003C1E1E0F00 +bitmap=000078000F03C000003C003C1E1E0F00 +bitmap=000078060F03C0000078003C1E1E0F00 +bitmap=000078071E03E0000078003C1E1F1F00 +bitmap=00007803FE01F000007FFC3C1E0FFF00 +bitmap=00007801FC00F000007FFC3C1E07EF00 +bitmap=00000000000000000000000000000000 +bitmap=00000000000000000000000000000000 +bitmap=00000000000000000000000000000000 +bitmap=00000000000000000000000000000000 +bitmap=00000000000000000000000000000000 +bitmap=00000000000000000000000000000000 +x=128 +y=32 +width=8 +[Ordinal::BitMap::2] +bitmap=00000000000000000000000000000000 +bitmap=00000000000000000000000000000000 +bitmap=00000000000000000000000000000000 +bitmap=00000000000000000000000000000000 +bitmap=00000000000000000000000000000000 +bitmap=00000000000000000000000000000000 +bitmap=001FFF0000003C0000003C03C0780000 +bitmap=001FFF0000003C0000007C03C0780000 +bitmap=00000E0000003C000000FC03C0780000 +bitmap=00003C0000003C000001BC03C0780000 +bitmap=0000700F3E1FFC000003BC0FF07BF000 +bitmap=0001E00F7E3FFC0000073C0FF07FF800 +bitmap=0003800FFE7C3C0000063C03C07C7800 +bitmap=0007F80FFE783C00000C3C03C0783C00 +bitmap=0007FE0F80783C0000183C03C0783C00 +bitmap=00001E0F00783C0000383C03C0783C00 +bitmap=00000F0F00783C0000703C03C0783C00 +bitmap=00000F0F00783C00007FFF03C0783C00 +bitmap=00000F0F00783C00007FFF03C0783C00 +bitmap=00000F0F00783C0000003C03C0783C00 +bitmap=00000F0F00783C0000003C03C0783C00 +bitmap=00000F0F00783C0000003C03C0783C00 +bitmap=00180F0F00783C0000003C03C0783C00 +bitmap=001C1F0F007C7C0000003C03E0783C00 +bitmap=000FFE0F003FFC0000003C01F0783C00 +bitmap=0007FC0F001FBC0000003C00F0783C00 +bitmap=00000000000000000000000000000000 +bitmap=00000000000000000000000000000000 +bitmap=00000000000000000000000000000000 +bitmap=00000000000000000000000000000000 +bitmap=00000000000000000000000000000000 +bitmap=00000000000000000000000000000000 +x=128 +y=32 +width=8 +[Ordinal::BitMap::3] +bitmap=00000000000000000000000000000000 +bitmap=00000000000000000000000000000000 +bitmap=00000000000000000000000000000000 +bitmap=00000000000000000000000000000000 +bitmap=00000000000000000000000000000000 +bitmap=00000000000000000000000000000000 +bitmap=001FFF03C07800000000FC03C0780000 +bitmap=001FFF03C07800000003FC03C0780000 +bitmap=001E0003C07800000007C003C0780000 +bitmap=001E0003C0780000000F0003C0780000 +bitmap=001E000FF07BF000000F000FF07BF000 +bitmap=001E000FF07FF800001E000FF07FF800 +bitmap=001E0003C07C7800001E0003C07C7800 +bitmap=001FFC03C0783C00001EFC03C0783C00 +bitmap=001FFE03C0783C00001FFE03C0783C00 +bitmap=00001F03C0783C00001F1F03C0783C00 +bitmap=00000F03C0783C00001E0F03C0783C00 +bitmap=00000F03C0783C00001E0F03C0783C00 +bitmap=00000F03C0783C00001E0F03C0783C00 +bitmap=00000F03C0783C00001E0F03C0783C00 +bitmap=00000F03C0783C00001E0F03C0783C00 +bitmap=00000F03C0783C00001E0F03C0783C00 +bitmap=00180F03C0783C00001E0F03C0783C00 +bitmap=001C1F03E0783C00001F1F03E0783C00 +bitmap=000FFE01F0783C00000FFE01F0783C00 +bitmap=0007FC00F0783C000007FC00F0783C00 +bitmap=00000000000000000000000000000000 +bitmap=00000000000000000000000000000000 +bitmap=00000000000000000000000000000000 +bitmap=00000000000000000000000000000000 +bitmap=00000000000000000000000000000000 +bitmap=00000000000000000000000000000000 +x=128 +y=32 +width=8 +[Ordinal::BitMap::4] +bitmap=00000000000000000000000000000000 +bitmap=00000000000000000000000000000000 +bitmap=00000000000000000000000000000000 +bitmap=00000000000000000000000000000000 +bitmap=00000000000000000000000000000000 +bitmap=00000000000000000000000000000000 +bitmap=001FFF03C07800000007FC03C0780000 +bitmap=001FFF03C0780000000FFE03C0780000 +bitmap=00000F03C0780000001F1F03C0780000 +bitmap=00000F03C0780000001E0F03C0780000 +bitmap=00000F0FF07BF000001E0F0FF07BF000 +bitmap=00001F0FF07FF800001E0F0FF07FF800 +bitmap=00001E03C07C7800001E0F03C07C7800 +bitmap=00003E03C0783C00001E0F03C0783C00 +bitmap=00003C03C0783C00000F1E03C0783C00 +bitmap=00003C03C0783C000007FC03C0783C00 +bitmap=00007803C0783C000007FC03C0783C00 +bitmap=00007803C0783C00000F1E03C0783C00 +bitmap=00007803C0783C00001E0F03C0783C00 +bitmap=0000F003C0783C00001E0F03C0783C00 +bitmap=0000F003C0783C00001E0F03C0783C00 +bitmap=0000F003C0783C00001E0F03C0783C00 +bitmap=0000F003C0783C00001E0F03C0783C00 +bitmap=0000F003E0783C00000F1E03E0783C00 +bitmap=0000F001F0783C00000FFE01F0783C00 +bitmap=0000F000F0783C000007FC00F0783C00 +bitmap=00000000000000000000000000000000 +bitmap=00000000000000000000000000000000 +bitmap=00000000000000000000000000000000 +bitmap=00000000000000000000000000000000 +bitmap=00000000000000000000000000000000 +bitmap=00000000000000000000000000000000 +x=128 +y=32 +width=8 +[pilots] +pilot=10.99.0.1:1502 +pilot=10.99.0.2:1502 +pilot=10.99.0.3:1502 +pilot=10.99.0.4:1502 +[10.99.0.1:1502] +hostType=0 +advancedDamage=1 +loadzones=1 +name=ALPHA +bitmapindex=1 +experience=expert +badge=VGL +patch=Yellow +role=Role::Default +dropzone=one +vehicle=bhk1 +vehicleValue=1000 +color=White +[10.99.0.2:1502] +hostType=0 +advancedDamage=1 +loadzones=1 +name=BRAVO +bitmapindex=2 +experience=expert +badge=VGL +patch=Yellow +role=Role::Default +dropzone=one +vehicle=madcat +vehicleValue=1000 +color=Crimson +[10.99.0.3:1502] +hostType=0 +advancedDamage=1 +loadzones=1 +name=CHARLIE +bitmapindex=3 +experience=expert +badge=VGL +patch=Yellow +role=Role::Default +dropzone=one +vehicle=bhk1 +vehicleValue=1000 +color=Green +[10.99.0.4:1502] +hostType=0 +advancedDamage=1 +loadzones=1 +name=DELTA +bitmapindex=4 +experience=expert +badge=VGL +patch=Yellow +role=Role::Default +dropzone=one +vehicle=madcat +vehicleValue=1000 +color=Tan +[largebitmap] +bitmap=BitMap::Large::ALPHA +bitmap=BitMap::Large::BRAVO +bitmap=BitMap::Large::CHARLIE +bitmap=BitMap::Large::DELTA +[BitMap::Large::ALPHA] +bitmap=00000000000000000000000000000000 +bitmap=00000000000000000000000000000000 +bitmap=00000000000000000000000000000000 +bitmap=00000000000000000000000000000000 +bitmap=00000000000000000000000000000000 +bitmap=00000000000000000000000000000000 +bitmap=000001F803C001FFE07807807E000000 +bitmap=000001FC03C001FFF07807807F000000 +bitmap=000001FC03C001FFF87807807F000000 +bitmap=000003FC03C001FFFC780780FF000000 +bitmap=000003DE03C001E07C780780F7800000 +bitmap=000003DE03C001E03C780780F7800000 +bitmap=000007DE03C001E03C780781F7800000 +bitmap=0000078F03C001E07C780781E3C00000 +bitmap=0000078F03C001FFFC7FFF81E3C00000 +bitmap=00000F8F03C001FFF87FFF83E3C00000 +bitmap=00000F0783C001FFF07FFF83C1E00000 +bitmap=00000F0783C001FFC07FFF83C1E00000 +bitmap=00001FFF83C001E000780787FFE00000 +bitmap=00001FFFC3C001E000780787FFF00000 +bitmap=00001FFFC3C001E000780787FFF00000 +bitmap=00003E03C3C001E00078078F80F00000 +bitmap=00003C01E3FFF1E00078078F00780000 +bitmap=00003C01E3FFF1E00078078F00780000 +bitmap=00007C01E3FFF1E00078079F00780000 +bitmap=00007800F3FFF1E00078079E003C0000 +bitmap=00000000000000000000000000000000 +bitmap=00000000000000000000000000000000 +bitmap=00000000000000000000000000000000 +bitmap=00000000000000000000000000000000 +bitmap=00000000000000000000000000000000 +bitmap=00000000000000000000000000000000 +x=128 +y=32 +width=8 +[BitMap::Large::BRAVO] +bitmap=00000000000000000000000000000000 +bitmap=00000000000000000000000000000000 +bitmap=00000000000000000000000000000000 +bitmap=00000000000000000000000000000000 +bitmap=00000000000000000000000000000000 +bitmap=00000000000000000000000000000000 +bitmap=00003FFC07FFC007E0F001E03F800000 +bitmap=00003FFE07FFE007F07803C0FFE00000 +bitmap=00003FFF07FFF007F07803C1FFF00000 +bitmap=00003FFF87FFF80FF07803C3FFF80000 +bitmap=00003C0F8780F80F783C0787E0FC0000 +bitmap=00003C078780780F783C0787803C0000 +bitmap=00003C078780781F783C078F803E0000 +bitmap=00003C0F0780F81E3C1E0F0F001E0000 +bitmap=00003FFF07FFF01E3C1E0F0F001E0000 +bitmap=00003FFE07FFF03E3C1E0F0F001E0000 +bitmap=00003FFF07FFE03C1E0E0E0F001E0000 +bitmap=00003FFF87FF803C1E0F1E0F001E0000 +bitmap=00003C07C787C07FFE0F1E0F001E0000 +bitmap=00003C03C783E07FFF071C0F803E0000 +bitmap=00003C03C781E07FFF07BC07C07C0000 +bitmap=00003C07C781F0F80F07BC07E0FC0000 +bitmap=00003FFFC780F8F00783B803FFF80000 +bitmap=00003FFF878078F00783F801FFF00000 +bitmap=00003FFF07807DF00781F000FFE00000 +bitmap=00003FFE07803FE003C1F0003F800000 +bitmap=00000000000000000000000000000000 +bitmap=00000000000000000000000000000000 +bitmap=00000000000000000000000000000000 +bitmap=00000000000000000000000000000000 +bitmap=00000000000000000000000000000000 +bitmap=00000000000000000000000000000000 +x=128 +y=32 +width=8 +[BitMap::Large::CHARLIE] +bitmap=00000000000000000000000000000000 +bitmap=00000000000000000000000000000000 +bitmap=00000000000000000000000000000000 +bitmap=00000000000000000000000000000000 +bitmap=00000000000000000000000000000000 +bitmap=00000000000000000000000000000000 +bitmap=007F00F00F00FC01FFF01E000F0FFFF0 +bitmap=01FFC0F00F00FE01FFF81E000F0FFFF0 +bitmap=03FFE0F00F00FE01FFFC1E000F0FFFF0 +bitmap=07FFF0F00F01FE01FFFE1E000F0FFFF0 +bitmap=0FC1F0F00F01EF01E03E1E000F0F0000 +bitmap=0F00F8F00F01EF01E01E1E000F0F0000 +bitmap=1F0060F00F03EF01E01E1E000F0F0000 +bitmap=1E0000F00F03C781E03E1E000F0F0000 +bitmap=1E0000FFFF03C781FFFC1E000F0FFFE0 +bitmap=1E0000FFFF07C781FFFC1E000F0FFFE0 +bitmap=1E0000FFFF0783C1FFF81E000F0FFFE0 +bitmap=1E0000FFFF0783C1FFE01E000F0FFFE0 +bitmap=1E0060F00F0FFFC1E1F01E000F0F0000 +bitmap=1F00F8F00F0FFFE1E0F81E000F0F0000 +bitmap=0F00F8F00F0FFFE1E0781E000F0F0000 +bitmap=0FC3F0F00F1F01E1E07C1E000F0F0000 +bitmap=07FFF0F00F1E00F1E03E1FFF8F0FFFF0 +bitmap=03FFE0F00F1E00F1E01E1FFF8F0FFFF0 +bitmap=01FFC0F00F3E00F1E01F1FFF8F0FFFF0 +bitmap=007F00F00F3C0079E00F9FFF8F0FFFF0 +bitmap=00000000000000000000000000000000 +bitmap=00000000000000000000000000000000 +bitmap=00000000000000000000000000000000 +bitmap=00000000000000000000000000000000 +bitmap=00000000000000000000000000000000 +bitmap=00000000000000000000000000000000 +x=128 +y=32 +width=8 +[BitMap::Large::DELTA] +bitmap=00000000000000000000000000000000 +bitmap=00000000000000000000000000000000 +bitmap=00000000000000000000000000000000 +bitmap=00000000000000000000000000000000 +bitmap=00000000000000000000000000000000 +bitmap=00000000000000000000000000000000 +bitmap=000007FF807FFF8F003FFFC1F8000000 +bitmap=000007FFE07FFF8F003FFFC1FC000000 +bitmap=000007FFF07FFF8F003FFFC1FC000000 +bitmap=000007FFF07FFF8F003FFFC3FC000000 +bitmap=00000780F878000F0000F003DE000000 +bitmap=000007807878000F0000F003DE000000 +bitmap=000007807C78000F0000F007DE000000 +bitmap=000007803C78000F0000F0078F000000 +bitmap=000007803C7FFF0F0000F0078F000000 +bitmap=000007803C7FFF0F0000F00F8F000000 +bitmap=000007803C7FFF0F0000F00F07800000 +bitmap=000007803C7FFF0F0000F00F07800000 +bitmap=000007803C78000F0000F01FFF800000 +bitmap=000007807C78000F0000F01FFFC00000 +bitmap=000007807878000F0000F01FFFC00000 +bitmap=00000780F878000F0000F03E03C00000 +bitmap=000007FFF07FFF8FFFC0F03C01E00000 +bitmap=000007FFF07FFF8FFFC0F03C01E00000 +bitmap=000007FFE07FFF8FFFC0F07C01E00000 +bitmap=000007FF807FFF8FFFC0F07800F00000 +bitmap=00000000000000000000000000000000 +bitmap=00000000000000000000000000000000 +bitmap=00000000000000000000000000000000 +bitmap=00000000000000000000000000000000 +bitmap=00000000000000000000000000000000 +bitmap=00000000000000000000000000000000 +x=128 +y=32 +width=8 +[smallbitmap] +bitmap=BitMap::Small::ALPHA +bitmap=BitMap::Small::BRAVO +bitmap=BitMap::Small::CHARLIE +bitmap=BitMap::Small::DELTA +[BitMap::Small::ALPHA] +bitmap=0000000000000000 +bitmap=0000000000000000 +bitmap=0000000000000000 +bitmap=00038C1F98C70000 +bitmap=00038C18D8C70000 +bitmap=0006CC18D8CD8000 +bitmap=0006CC18D8CD8000 +bitmap=0006CC18DFCD8000 +bitmap=0006CC1F98CD8000 +bitmap=000FEC1818DFC000 +bitmap=000C6C1818D8C000 +bitmap=000C6FD818D8C000 +bitmap=0000000000000000 +bitmap=0000000000000000 +bitmap=0000000000000000 +bitmap=0000000000000000 +x=64 +y=16 +width=4 +[BitMap::Small::BRAVO] +bitmap=0000000000000000 +bitmap=0000000000000000 +bitmap=0000000000000000 +bitmap=000FCFC3B0678000 +bitmap=000C6C6398CCC000 +bitmap=000C6C66D8D86000 +bitmap=000C6C66D8D86000 +bitmap=000FCFC6CD986000 +bitmap=000C6CC6CD986000 +bitmap=000C6C6FED986000 +bitmap=000C6C6C670CC000 +bitmap=000FCC3C67078000 +bitmap=0000000000000000 +bitmap=0000000000000000 +bitmap=0000000000000000 +bitmap=0000000000000000 +x=64 +y=16 +width=4 +[BitMap::Small::CHARLIE] +bitmap=0000000000000000 +bitmap=0000000000000000 +bitmap=0000000000000000 +bitmap=00798C71F9837E00 +bitmap=00CD8C718D836000 +bitmap=01818CD98D836000 +bitmap=01818CD98D836000 +bitmap=0181FCD9F9837E00 +bitmap=01818CD999836000 +bitmap=01818DFD8D836000 +bitmap=00CD8D8D8D836000 +bitmap=00798D8D87FB7E00 +bitmap=0000000000000000 +bitmap=0000000000000000 +bitmap=0000000000000000 +bitmap=0000000000000000 +x=64 +y=16 +width=4 +[BitMap::Small::DELTA] +bitmap=0000000000000000 +bitmap=0000000000000000 +bitmap=0000000000000000 +bitmap=0003E3F61F9C0000 +bitmap=00033306061C0000 +bitmap=00031B0606360000 +bitmap=00031B0606360000 +bitmap=00031BF606360000 +bitmap=00031B0606360000 +bitmap=00031B06067F0000 +bitmap=0003330606630000 +bitmap=0003E3F7E6630000 +bitmap=0000000000000000 +bitmap=0000000000000000 +bitmap=0000000000000000 +bitmap=0000000000000000 +x=64 +y=16 +width=4 +[Role::Default] +model=dfltrole +[Role::NoReturn] +model=noretun diff --git a/context/multiplayer.md b/context/multiplayer.md index f3101fd..b5f14d1 100644 --- a/context/multiplayer.md +++ b/context/multiplayer.md @@ -354,6 +354,19 @@ phase). Plan: `~/.claude/plans/partitioned-snuggling-piglet.md`. bitmapindexes. MP_BHMC.EGG template fixed (authentic Aeolus raster preserved bit-exact, Boreas generated). Verified: eggmodel self-test 20/20; ASCII-art decode of app-generated VIPER/MONGOOSE rasters; live 2-node session on the generated egg. +- **4-POD SESSION VERIFIED (2026-07-18) [T2 live]**: first >2-player run — 4 pods, relay-assigned + seats (no BT_SELF), 4-pilot egg (`content/MP4.EGG`, generated via eggmodel incl. 4 callsign + bitmaps): 4 distinct seats, 4/4 registered, launch, all 4 "All connections completed", **every + node replicates all 3 foreign mechs** (host-qualified `[repl] mech h:l` sets are exact + complements), 4 DISTINCT spawn positions (dropzone=one spreads spawns — no stacking), UDP + flowing at 4-pod fan-out rates (relay tx = 3×rx), zero drops, all processes alive. Per-host + `[net-rx]` census symmetric (36 NewDynamicEntity makes = mech + subsystem roster from each + host to each node). **DIAGNOSTIC TRAP found**: `EntityID::operator int()` returns localID + ONLY — a `(long)GetEntityID()` log collapses different hosts' mechs onto one number and fakes + "missing replicants" (cost a full false bug-hunt); stream the EntityID object instead + (`operator<<` prints `host:local`). [repl] log fixed. Capacity: roster-bound (operator app); + relay load-tested to 8 trivially; residual 8-player unknowns: ordinal bitmaps only 1-4 in the + egg template (rank graphics 5-8), untested beyond 4 live pods. - **STILL UNTESTED (config, not code)**: a real two-physical-machine / internet run (only the relay's console+game ports need to be reachable inbound — one forwarded port total; or a playit.gg-style tunnel in front of the relay, host-side only). diff --git a/game/reconstructed/mech4.cpp b/game/reconstructed/mech4.cpp index 4b5f168..7d1178f 100644 --- a/game/reconstructed/mech4.cpp +++ b/game/reconstructed/mech4.cpp @@ -2481,7 +2481,11 @@ void if (s_replLog >= 1.0f) { s_replLog = 0.0f; - DEBUG_STREAM << "[repl] mech " << (long)GetEntityID() + // print host:local -- the (long) cast collapsed distinct + // hosts' mechs onto one number (EntityID::operator int + // returns localID only) and faked "missing replicants" + // during the first 4-pod session analysis (2026-07-18) + DEBUG_STREAM << "[repl] mech " << GetEntityID() << " pos=(" << localOrigin.linearPosition.x << ", " << localOrigin.linearPosition.y << ", " << localOrigin.linearPosition.z << ")"