Commit Graph

1264 Commits (7f7b714ddc6a72e9e571a68d6a5be4d7b9f78070)

Author SHA1 Message Date
MysterD 75038b46f2 Fixed how "levelAreaMustMatch" packets are sent/processed
Instead of the server dropping them immediately, the server only drops the processing. This allows it to broadcast/send the packet to the correct client without the server processing it.

Fixed how "static" level objects were detected. The old way was error prone and would consider spawned objects to be static anyway.

Made ERROR_LOGs always show up, "disabling" logging only turns off INFO_LOGs now.
2021-06-13 17:47:58 -07:00
MysterD 248e8a8963 Complete rewrite of entity ID reservation system
Now "syncId"s can only be reserved at ID 127+. This ensures that static level
objects and spawned reserved objects never clash. The server keeps track of
every player's list of reserved IDs, as well as when an ID is used, or when
an entity using that ID is destroyed. This is much more complicated than it
used to be, but this complication is required due to players being allowed to
be in different areas of the game.
2021-06-13 16:04:28 -07:00
MysterD c71e1dbc97 Added ordered packet system
Now packets can be grouped up and sent separately, but still be processed
sequentially regardless of how much they get scrambled over the network.
If a packet group isn't received for 15 seconds, all unprocessed packets
in that group will be dropped. Packet ordering is required for level and
area synchronization information when someone joins the level late.
2021-06-11 19:37:32 -07:00
MysterD a05eb495b3 Informed players of ent deletions in a different area (but same level)
Added packet_level_respawn_info to inform the players of entity
deletions in a different area of the same level. Currently it's
massively noisy due to sending out a new packet for each entity
destroyed. This can cause chaos when collecting a series of coins.

Ideally this information would be batched and sent in one big blob every
so often.
2021-06-11 16:19:24 -07:00
MysterD 016a912286 Complete rewrite of level-change/area-change system
Now level changes and area changes are separated. Entity deletions are
properly tracked on level change or area change. Late entity
synchronization is now triggered on any area change.
2021-06-11 14:39:25 -07:00
MysterD cabdab421b Improvements to late-join synchronization
Removed (slightly) old coin and static ent removal system
Resynchronized respawners
Added packet for macro deletions
    better than previous system since the entities don't need a sync id and we can synchronize deletion station across areas
    allows the synchronization of odd entities like lines of coins
Added packet for spawn info deletions
Split packet_location_request into multiple files
2021-06-09 22:35:34 -07:00
MysterD ab155b3147 Synchronized race timers 2021-06-08 22:05:12 -07:00
MysterD 3ab8f04c61 Synchronized respawners and entities created after level load 2021-06-08 21:21:52 -07:00
MysterD 09282cc63b Synchronize late-join coin collection 2021-06-08 02:26:35 -07:00
MysterD 9beaea7cdb Late-join synchronized chain chomp and exclamation box 2021-06-08 01:29:21 -07:00
MysterD 56f242ddc7 Added ability for clients to send packets to each other skipping server
Added memory of last reliable packet about each sync object
2021-06-07 23:12:17 -07:00
MysterD eec5ca4420 Keep track of static level spawn removals and sync them on location response 2021-06-07 19:25:31 -07:00
MysterD 27b4b368e4 Ripped out level synchronization/warp code
Began writing new system that synchronizes course/act/level/area per
player and 'ownership' of that location.
2021-06-07 12:19:59 -07:00
djoslin0 cb0c742514 Merge pull request #103 from fgsfdsfgs/coop-dev
custom player colors (and other "unstable 3" changes)
2021-04-08 00:11:02 -07:00
fgsfds 0e4e6a2899 sync with stable 2021-04-06 22:56:08 +03:00
fgsfds 8c28b0c269 windows: bump SO_SNDBUF size when playing with >4 players 2021-04-06 18:09:07 +03:00
fgsfds d24798d26f add more player colors 2021-04-06 18:08:41 +03:00
fgsfds 5c8e4b293c bump MAX_PLAYERS to 16 2021-04-06 02:32:06 +03:00
fgsfds 06f2011128 bump unstable version number 2021-04-06 02:30:54 +03:00
fgsfds c406222342 colorize chat messages with player color 2021-04-06 02:30:37 +03:00
fgsfds 3317154ec2 implement changeable model colors
in a very dumb way:

the custom colors are set for lights 3, 4, 5, 6 in a GEO_ASM callback, then copied to lights 1, 2 using gsSPCopyLightEXT
2021-04-06 00:22:42 +03:00
fgsfds 66c11d9329 added new GBI command: G_COPYMEM
exclusively for copying lights around for now; required for my retarded model color implementation
2021-04-06 00:18:04 +03:00
fgsfds e0a07a41b8 everyone except host is luigi 2021-04-05 04:21:23 +03:00
fgsfds ee71f19e6e partially fix jitter with two of the same model 2021-04-05 04:21:14 +03:00
fgsfds 5eba0cb0f6 djoslin0's new warp code 2021-04-05 03:21:37 +03:00
djoslin0 6fe1068a2f Merge pull request #98 from averysumner/coop
Make discord max party size equal to MAX_PLAYERS
2021-03-06 21:31:33 -08:00
Avery fc44f91386 make discord max party size equal to MAX_PLAYERS 2021-03-06 21:07:55 -08:00
djoslin0 29cdad5207 Merge pull request #95 from MegaMech/patch-2
Readme added build instructions link
2021-02-14 02:13:36 -08:00
MegaMech bff0fc9155 Link to build instructions 2021-02-14 03:11:19 -07:00
MysterD 2ac19eb1ba Whoops, actual release 2020-10-18 22:24:37 -07:00
MysterD 75033c0e84 Beta 2 release 2020-10-18 22:21:25 -07:00
djoslin0 67c8958dbf Merge pull request #90 from djoslin0/unstable
Merge unstable to coop branch
2020-10-18 22:20:26 -07:00
MysterD f49c3ece89 Allocate the correct number of controllers on stable branch 2020-10-18 22:15:52 -07:00
MysterD f23695113f Prevent racing penguin crash when one player cheats
Fixes #87
2020-10-18 18:21:19 -07:00
MysterD 7702b129fb Add bash shebang to developer scripts 2020-10-18 16:33:03 -07:00
MysterD 3c91430d0d Keep BETTERCAM/bubbled players within the minimum Y bounds of levels
Players/cameras were able to clip inside of island-like levels
previously. I have hardcoded sane minimum Y values for the following
courses: WF, CCM, PSS, BITDW, TTM, RR, BITS
2020-10-18 11:57:45 -07:00
MysterD 09ed59c223 Misc sync fixes to various enemies
Considered nearest player for various things within the following
entities that I missed the first time around: cloud, koopa, monty mole,
moving coin, piranha bubbles, scuttlebug, shock wave, spindrift.
2020-10-17 23:58:24 -07:00
MysterD d6f7db592b Misc fixes to bub 2020-10-17 23:43:29 -07:00
MysterD 7c69eb14e9 Fix wiggler softlock and intangibility 2020-10-17 23:38:32 -07:00
MysterD 016c031e19 Do not consider inactive players when bubbled 2020-10-17 23:27:34 -07:00
MysterD 20cf7b1840 Fixed command-line launch segfault
custom_menu_destroy() was causing a segfault when launching the game via
command-line parameters
2020-10-17 23:04:59 -07:00
MysterD ea77a483d3 Merge branch 'unstable' of https://github.com/djoslin0/sm64ex-coop into unstable 2020-10-16 23:37:01 -07:00
Victor Diego Alejandro Diaz Urbaneja aa6952db0f overlay error (#88)
* overlay error

fixed compilation error

* Update custom_menu_system.c

Co-authored-by: djoslin0 <djoslin0@users.noreply.github.com>
2020-10-16 23:36:31 -07:00
MysterD bb9d46a45c branch 'unstable' of https://github.com/djoslin0/sm64ex-coop into unstable 2020-10-16 23:33:47 -07:00
MysterD 4f631ab151 Translated Luigi sounds through new Character system 2020-10-16 23:33:41 -07:00
MysterD 2aafd67173 Add further luigi sound changes to git ignore 2020-10-16 22:23:49 -07:00
MysterD 61a802253e Make gControllers respect MAX_PLAYERS
fixes Linux crash when MAX_PLAYERS is increased
2020-10-16 22:22:28 -07:00
MegaMech 5e740253b6 Added connection transition (#86)
* Added content to custom_menu_destroy()

* Added connection transition

* Update custom_menu_system.c

Co-authored-by: djoslin0 <djoslin0@users.noreply.github.com>
2020-10-16 21:43:26 -07:00
anzz1 aacf81a6cd Fix DISCORD_SDK=0 building (#85)
Co-authored-by: anzz1 <>
2020-10-16 20:20:14 -07:00
anzz1 b7f4ae735d Added Luigi sounds (#77)
* added a new audio bank 10 for luigi sounds
* made some audio memory buffers larger to fix sound cuts
* added option to enable/disable luigi sounds in the sound options menu
* added Andrat's "90's Classic Luigi Voice Pack" as default luigi sounds

Co-authored-by: anzz1 <>
2020-10-16 11:54:59 -07:00