MysterD
3ab1b0b4b5
Synchronized red coin count on join.
2021-06-13 18:32:35 -07:00
MysterD
518a1fda4b
Server makes sure the client can receive the packet before sending/tunnelling
2021-06-13 17:57:54 -07:00
MysterD
59d08a90b9
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
7ae26b3ea0
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
fde6eaf0a3
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
b6959dc7ea
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
6bfdcbcb7b
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
0b3a97d405
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
6e7c542068
Synchronized race timers
2021-06-08 22:05:12 -07:00
MysterD
33fbed94e4
Synchronized respawners and entities created after level load
2021-06-08 21:21:52 -07:00
MysterD
5db1a9e827
Synchronize late-join coin collection
2021-06-08 02:26:35 -07:00
MysterD
4be00a2eb1
Late-join synchronized chain chomp and exclamation box
2021-06-08 01:29:21 -07:00
MysterD
050d940d53
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
e593bedc77
Keep track of static level spawn removals and sync them on location response
2021-06-07 19:25:31 -07:00
MysterD
bbdc942501
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
fgsfds
b12bf38abd
sync with stable
2021-04-06 22:56:08 +03:00
fgsfds
4ba30ebd9e
windows: bump SO_SNDBUF size when playing with >4 players
2021-04-06 18:09:07 +03:00
fgsfds
abd3a0a130
add more player colors
2021-04-06 18:08:41 +03:00
fgsfds
10c63a1706
bump unstable version number
2021-04-06 02:30:54 +03:00
fgsfds
511b1352b8
colorize chat messages with player color
2021-04-06 02:30:37 +03:00
fgsfds
109e713689
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
798389b527
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
d4cdd89683
everyone except host is luigi
2021-04-05 04:21:23 +03:00
fgsfds
8f4965e05d
partially fix jitter with two of the same model
2021-04-05 04:21:14 +03:00
fgsfds
843a8cd18f
djoslin0's new warp code
2021-04-05 03:21:37 +03:00
Avery
b68d5b107a
make discord max party size equal to MAX_PLAYERS
2021-03-06 21:07:55 -08:00
MysterD
dd90132145
Whoops, actual release
2020-10-18 22:24:37 -07:00
MysterD
a0b5f28b38
Beta 2 release
2020-10-18 22:21:25 -07:00
MysterD
c0652f8a48
Allocate the correct number of controllers on stable branch
2020-10-18 22:15:52 -07:00
MysterD
281e45051b
Prevent racing penguin crash when one player cheats
...
Fixes #87
2020-10-18 18:21:19 -07:00
MysterD
f88aee251e
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
4cb49d3946
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
cbf8505516
Misc fixes to bub
2020-10-17 23:43:29 -07:00
MysterD
f4263deea9
Fix wiggler softlock and intangibility
2020-10-17 23:38:32 -07:00
MysterD
98cc31d6cb
Do not consider inactive players when bubbled
2020-10-17 23:27:34 -07:00
MysterD
eea5ebb94b
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
2519c59958
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
26928ac6f5
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
615c19be6f
branch 'unstable' of https://github.com/djoslin0/sm64ex-coop into unstable
2020-10-16 23:33:47 -07:00
MysterD
1564ac7c0f
Translated Luigi sounds through new Character system
2020-10-16 23:33:41 -07:00
MysterD
a5a4c3c324
Make gControllers respect MAX_PLAYERS
...
fixes Linux crash when MAX_PLAYERS is increased
2020-10-16 22:22:28 -07:00
MegaMech
33dda3322c
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
130cfefa82
Fix DISCORD_SDK=0 building ( #85 )
...
Co-authored-by: anzz1 <>
2020-10-16 20:20:14 -07:00
anzz1
d1739648e1
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
MysterD
2b0f892251
Misc adjustments to recent PRs
...
Switched from manual checking of Luigi to using new Character structs
Synchronized cap spawning for mario_blow_off_cap()
Added declarations for network_send_death() and network_receive_death()
2020-10-16 03:59:24 -07:00
MysterD
05fd683c64
Fix UNSTABLE_BRANCH checking
2020-10-16 03:56:37 -07:00
anzz1
bc7ec31c02
Enemy hat fixes ( #83 )
...
* Ukiki now steals Mario/Luigi hat correctly
* Klepto now steals Mario/Luigi hat correctly
* Mr. Blizzard now knocks off Mario/Luigi hat correctly
* Fwoosh now knocks off Mario/Luigi hat correctly
Co-authored-by: anzz1 <>
2020-10-16 03:03:25 -07:00
MegaMech
e447332cec
Added server settings: shared lives and skip intro
...
Adds button to the host menu to allow shared lives.
Resolves #37
Buttons are now resizeable. Use gButtonScale.<size> (large, medium, or small).
It could be argued that we don't need the small size. However, it may be beneficial for the future if the menu becomes more complex.
large is the normal default size. Or at least it was the size already being used by sm64ex-coop (0.11111111f)
Note: Buttons for changing menu's should be gButtonScale.large as the menu animation is made for large buttons. To keep consistency it's probably a good idea for buttons that transfer you to a new menu to always be set to large. As such, I didn't feel it necessary to extend this feature to these methods: bhv_menu_button_growing_from_custom and bhv_menu_button_shrinking_to_custom.
Resolves #60
2020-10-16 02:58:57 -07:00
MysterD
c49ba7cdd8
Change version to beta 2, prepare unstable branch
2020-10-16 01:04:07 -07:00
MysterD
9f158de95d
Remove two-player hack for controlled warp
2020-10-15 18:04:53 -07:00
MysterD
48aee0c7be
Enemies drop player when picked up
2020-10-14 23:52:07 -07:00
MysterD
66eb163339
Prevent playing star cutscene when in cutscene
2020-10-14 23:36:19 -07:00
MysterD
71bc444fa2
Desync fixes for hoot, piranha, spiny
2020-10-14 23:25:59 -07:00
MysterD
c50794773c
Allow bubbled players to go through elevators
2020-10-14 23:20:43 -07:00
MysterD
196ac547ef
Bubbled visual improvements (pitch to player)
2020-10-14 23:18:05 -07:00
MysterD
040aa92fd1
Prevent people from hosting a discord game when discord fails
2020-10-14 21:17:28 -07:00
MysterD
8750198750
Prevented vanish cap players from interacting with other players
2020-10-14 20:58:03 -07:00
MysterD
cfd559bc74
Sync riddenObj, prevent remote interaction with shell
2020-10-14 20:50:55 -07:00
MysterD
8fc8ca6ca7
Prevent players from interacting with a shell that someone else is riding
2020-10-14 20:42:04 -07:00
MysterD
cb902c519d
Properly synchronize koopa shells spawned from boxes
2020-10-14 20:34:38 -07:00
MysterD
d882e8a039
Added a way to debug sync object tables through chat
2020-10-14 20:33:23 -07:00
MysterD
16b95fdbca
Prevent cursor from going past array in course completion screen
2020-10-14 20:03:05 -07:00
MysterD
85c05e7d56
Removed two-player hacks for packet_spawn_objects
2020-10-14 00:15:56 -07:00
MysterD
28ad7f91ed
Smooth over transition from sending raw enums
2020-10-13 23:04:08 -07:00
MysterD
55bbe8d4d9
Removed two-player hacks for heldObj and spawning offsets
2020-10-13 22:26:13 -07:00
MysterD
c8a45235ca
Removed two-player hacks from cannon and object packets
...
Increased error checking of get_behavior_from_id
Made failure logging for packet_object a lot better
Changed debug logging to show global index instead of "Server/Client"
Changed debug keyboard binds to support more keyboard types
Made SyncObject's rxEventId de-duplication per-player instead of one-player
Removed sizeof(enum) from packet_read/packet_write
2020-10-13 21:44:27 -07:00
MysterD
aaa7e65b65
Created character struct for mario/luigi asset differences
...
Removed multiple two-player hacks in the process
2020-10-13 18:33:51 -07:00
MysterD
f230d4fe63
Removed two-player hack for held objects
2020-10-13 18:12:33 -07:00
MysterD
9f1d03d5b4
Remove two-player hack for packet_object
2020-10-13 18:11:40 -07:00
MysterD
66af03c41d
Slight improvement to small breakable box sync
2020-10-12 18:10:40 -07:00
MysterD
c214800faf
Standardized de-duplication of reliable packets
2020-10-12 18:40:38 -07:00
MysterD
5d9d5ed9d7
Added ability for client to send a packet to server, and for the server to broadcast to all clients
2020-10-12 18:23:48 -07:00
MysterD
3f798609be
remove unused version call
2020-10-11 20:45:44 -07:00
MysterD
8b6bfc2369
Possible fix for big bully spawn
2020-10-11 19:16:21 -07:00
MysterD
d4f92ed209
Reset override_ownership to null (fixes crash in THI)
2020-10-11 18:54:05 -07:00
MysterD
7bf2ebd7e8
Made version mismatch screen more descriptive
2020-10-11 18:26:10 -07:00
MysterD
342a048e0e
Display instructions on how to fix Discord error to user
2020-10-11 18:11:11 -07:00
MysterD
adb7fe86eb
Fix how scancodes are read for text input
...
May fix issue where spanish keyboards are unable to press enter to chat
2020-10-11 17:20:47 -07:00
MysterD
feb9bead02
Synchronized the controller properly (fixes 64bit-to-32bit communication bug)
2020-10-11 17:20:08 -07:00
MysterD
c0a30c8de6
Establish new versioning system (beta 1)
2020-10-11 15:49:24 -07:00
MysterD
7791e03d6a
Added all levels to support levels!
2020-10-11 14:55:08 -07:00
MysterD
1345b8d9d0
Synchronized Bowser 3 fight platforms
2020-10-11 14:54:16 -07:00
MysterD
b536fcfdb0
Added RR to supported levels
2020-10-11 14:42:04 -07:00
MysterD
13fdf6ceaf
Added TTC to supported levels
2020-10-11 14:40:13 -07:00
MysterD
dbe1e21b87
Synchronized TTC treadmill
2020-10-11 14:39:41 -07:00
MysterD
f64e315c74
Synchronized TTC spinner
2020-10-11 14:39:32 -07:00
MysterD
7167c8537b
Synchronized TTC rotating solid
2020-10-11 14:39:21 -07:00
MysterD
52510de84e
Synchronized TTC pit block
2020-10-11 14:39:07 -07:00
MysterD
4cb089c428
Synchronized TTC pendulum
2020-10-11 14:38:56 -07:00
MysterD
788dc5310c
Synchronized TTC moving bar
2020-10-11 14:38:44 -07:00
MysterD
63af39cd53
Synchronized TTC elevator
2020-10-11 14:38:30 -07:00
MysterD
83baf2eac6
Synchronized TTC cog
2020-10-11 14:38:19 -07:00
MysterD
cbeea0472c
Synchronized TTC 2d rotator
2020-10-11 14:38:07 -07:00
MysterD
e1ca3b963d
Misc gMarioState/gMarioObject cleanup
2020-10-10 16:12:29 -07:00
MysterD
229880cfda
Synchronize burning player smoke + misc version improvements
2020-10-10 15:49:17 -07:00
MysterD
b7cf6cdf5c
Synchronized 'donut platforms'... the slow falling ones in RR
2020-10-10 15:33:17 -07:00
MysterD
736fba54a2
Synchronized swing platform
2020-10-10 15:32:39 -07:00
MysterD
edc275b5e8
Enhancements to networked player infrastructure
2020-10-10 01:18:45 -07:00
MysterD
5282c461fa
Fix typo, whoops.
2020-10-08 23:53:16 -07:00
MysterD
392471eb1f
Bugfix for spiny override ownership
2020-10-08 23:40:01 -07:00
MysterD
2fb2fc81e1
Add THI to supported levels
2020-10-08 23:38:43 -07:00
MysterD
2adea6aad6
Synchronized Wiggler
2020-10-08 23:37:01 -07:00
MysterD
fadea702ff
Synchronized THI top
2020-10-08 23:07:32 -07:00
MysterD
c958837333
Somewhat synchronized fire piranha plants
2020-10-08 23:05:06 -07:00
MysterD
55939e6eda
Synchronized enemy lakitu and spiny
2020-10-08 22:14:17 -07:00
MysterD
3bb96fa609
Synchronized Bubba
2020-10-08 22:05:21 -07:00
MysterD
028990302d
Prevent star dance spam
2020-10-08 21:31:53 -07:00
MysterD
8360df84fe
Add chat message when a player dies
2020-10-08 21:19:16 -07:00
MysterD
ff1b19e2ee
Prevent King Bobomb from grabbing while thrown
2020-10-08 21:13:56 -07:00
MysterD
e4c1640c56
Change disclaimer
2020-10-08 21:03:35 -07:00
MysterD
597cc14ccf
Add TTM to supported levels
2020-10-08 20:57:56 -07:00
MysterD
5924ed9485
Disable force-synchronizing of TTM slide
2020-10-08 20:57:11 -07:00
MysterD
41295fb814
Synchronized Ukiki
2020-10-08 20:56:49 -07:00
MysterD
aa345ede4d
Synchronize Fwoosh
2020-10-08 20:56:34 -07:00
MysterD
ea1553c18d
Koopa shell can only be ridden by one person, and doesn't get accidentally removed
2020-10-06 23:38:56 -07:00
MysterD
d2e1b6e5a0
Possibly fixed rare invisible cannon bug
2020-10-06 21:03:08 -07:00
MysterD
93b2c4213d
Added WDW to supported levels
2020-10-06 20:29:40 -07:00
MysterD
d13127117a
Misc additional player checks
2020-10-06 20:29:23 -07:00
MysterD
349517e9fb
Synchronized WDW water level changers
2020-10-06 20:28:44 -07:00
MysterD
b93e681377
Synchronized Skeeter
2020-10-06 20:28:28 -07:00
MysterD
6d5e1d498e
Synchronized metal boxes
2020-10-06 20:28:17 -07:00
MysterD
8464d6c830
Synchronized Heave Ho
2020-10-06 20:28:06 -07:00
MysterD
2b75690a31
Synchronized WDW express elevator
2020-10-06 20:27:54 -07:00
MysterD
5ad1b60a9f
Synchronized Chuckya
2020-10-06 20:27:24 -07:00
MysterD
938e0a817e
Synchronized WDW arrow lift
2020-10-06 20:27:12 -07:00
MysterD
0b4ed5bf27
Added Snowman's Land to supported levels
2020-10-05 23:13:12 -07:00
MysterD
d56f46a79c
Synchronized SL snow mounds
2020-10-05 23:08:36 -07:00
MysterD
347bd0ed63
Synchronized SL penguin
2020-10-05 23:08:24 -07:00
MysterD
94fe53f4bf
Synchronized Snowman Wind
2020-10-05 23:08:12 -07:00
MysterD
d6a7af8f54
Synchronized Moneybag
2020-10-05 23:07:57 -07:00
MysterD
dd8de27014
Snap players on top of synchronized platforms
2020-10-05 22:05:05 -07:00
MysterD
b6d96adbf0
Prevented Yoshi softlock
2020-10-05 21:04:00 -07:00
MysterD
74852faeaf
Stopped time and show cutscene for all for more stars
2020-10-05 20:36:44 -07:00
MysterD
b63a47f64a
Fix strange behavior when being caught in a whirlpool while an instant warp occurs
2020-10-05 20:20:49 -07:00
MysterD
b831acd59c
Rewrote how RNG is synchronized
...
The old implementation was hacky and often returned desynchronized
results. This implementation gives a seed to each sync object, and
synchronizes that seed. Also allows for a seed to be saved temporarily
based on position and recycled for multiple calls.
2020-10-05 19:15:13 -07:00
MysterD
87074ef098
Fix Bowser cutscene yet again...
2020-10-05 18:16:28 -07:00
MysterD
404d201955
Local unlocking door star spawns again
2020-10-04 23:27:02 -07:00
MysterD
53f7a36819
Prevent multiple star/key unlock animations on the same door
2020-10-04 23:23:17 -07:00
MysterD
e9761cd3e6
Prevent rare bug where a remote player will grab a non-grabbable object momentarily
2020-10-04 23:06:52 -07:00
MysterD
5eb5e678c5
Prevent OOB warp by teleporting one player to the other when OOB is detected
2020-10-04 22:38:54 -07:00
MysterD
104e824a13
Make sure 70 star door is always openable
2020-10-04 22:16:20 -07:00
MysterD
6f23b63e61
Prevent hang due to mirror mario nodes
2020-10-04 22:10:41 -07:00
MysterD
70fdad4e7c
Stop time and show star cutscene for everyone
...
Fixes #72
2020-10-04 21:26:36 -07:00
MysterD
2c7b42b331
Adjusted how de-duplication of star spawns is done for red/hidden stars
2020-10-04 20:52:53 -07:00
MysterD
c98edbcb4b
Add remote players to mirror
2020-10-04 20:18:09 -07:00
MysterD
bb30d28be9
Synchronize intro/bridge lakitu
2020-10-04 19:38:01 -07:00
MysterD
2f1e0473c2
Offset and separate player intro pipes
2020-10-04 19:16:35 -07:00
MysterD
d8bf1c8ef1
Re-enable intro
2020-10-04 19:16:16 -07:00
MysterD
03d40b4ba3
Synchronized Yoshi
2020-10-04 17:57:37 -07:00
MysterD
b89fccbf51
Prevented glitchy remote movement when moving through warp doors
2020-10-04 17:00:52 -07:00
MysterD
0f6fa70523
Gave all doors SyncIDs
2020-10-04 16:51:17 -07:00
MysterD
ed06b57649
Added mod registration system
...
Allows mods to register themselves so that mismatches don't occur. This
does not automagically detect when someone modified the game, so the
mods will have to insert a function like this into their patch:
static void __attribute__((constructor)) _register_this_mod() {
network_register_mod("mod name here");
}
2020-10-04 16:41:55 -07:00
MysterD
259ddac5ba
Fixed WF tower platform synchronization
2020-10-04 14:54:31 -07:00
MysterD
868d006681
Enabled/improved free movement for development purposes
2020-10-04 14:50:52 -07:00
MysterD
edd489eb49
Prevented WF's rotating platform from desyncing angle
2020-10-04 14:32:52 -07:00
MysterD
d7c43aeb95
Removed quit game options from course completion screen
2020-10-04 14:15:06 -07:00
MysterD
f3b6c60f1a
Made piranha plant's hitbox consistent if event is missed
2020-10-04 13:59:14 -07:00
MysterD
d229a69b83
Made picking up / dropping objects immediately sync those objects
2020-10-04 13:54:12 -07:00
MysterD
c56114cfa2
Prevented Bowser from remaining invisible when held
2020-10-04 13:24:44 -07:00
MysterD
303d276274
Possibly fixed King Bobomb grabbing softlock
2020-10-04 13:15:08 -07:00
MysterD
307af17b6f
Fix snowman's lost his head dialog
2020-10-04 12:54:21 -07:00
MysterD
b9813acbc5
Prevent dying/bubbling from replaying intro level cutscene
2020-10-03 10:15:21 -07:00
MysterD
9e2b28008b
Add BITFS to supported levels
2020-10-03 00:21:47 -07:00
MysterD
57b092c26b
Synchronized BITFS platforms
2020-10-03 00:18:18 -07:00
MysterD
c6da1a057a
Added DDD to supported levels
2020-10-02 23:40:28 -07:00
MysterD
931ee9ca13
Prevented bubbled players from interacting with objects
2020-10-02 23:37:15 -07:00
MysterD
fb775165ce
Fixed bug with whirlpools
2020-10-02 23:35:06 -07:00
MysterD
327c735dba
Synchronized DDD's poles
2020-10-02 23:34:33 -07:00
MysterD
b6e5581111
Somewhat synchronized player's interact/used objects
2020-10-02 23:34:19 -07:00
MysterD
5729c3ffac
Synchronized Water Rings
2020-10-02 23:33:21 -07:00
MysterD
8e572f9b9b
Synchronized Sushi
2020-10-02 23:33:07 -07:00
MysterD
0b8aff4103
Synchronized Manta Rays
2020-10-02 23:32:58 -07:00
MysterD
f0eba71c77
Synchronized Bubs
2020-10-02 23:32:47 -07:00
MysterD
6dc5819583
Do a full reset of the camera again. More janky, but prevents camera softlock
2020-10-02 22:20:59 -07:00
MysterD
b673457a48
Synchronized mips/toad star spawning
2020-10-02 21:05:02 -07:00
MysterD
525ef6db17
Synchronized castle water drain pillars
2020-10-01 23:11:16 -07:00
MysterD
1bcaed297c
Resynchronized HMC controllable platform
2020-10-01 22:41:27 -07:00
MysterD
e7ad181428
Applied platform displacement for entities that a player is standing on
2020-10-01 22:41:17 -07:00
MysterD
2c6ab5d4ab
Change how we reset the camera when bubbled/on star collection
2020-10-01 22:00:46 -07:00
MysterD
0a68abc055
Added HMC and COTMC to the supported levels list
2020-10-01 21:35:19 -07:00
MysterD
e7ffd52d45
Made COTMC, TOTWC, VCUTM, WMOTR use the normal death barrier warp
2020-10-01 21:34:46 -07:00
MysterD
e63178ed34
Synchronized Dorrie
2020-10-01 21:27:19 -07:00
MysterD
f6bae3a619
Synchronized Monty Mole
2020-10-01 12:39:06 -07:00
djoslin0
66356133db
Merge pull request #71 from anzz1/patch-2
...
fix copying and erasing saves
2020-10-01 00:05:00 -07:00
MysterD
16a4662ece
Synchronized swoop
2020-10-01 00:04:08 -07:00
MysterD
9cc77a5735
Synchronized snufit
2020-10-01 00:03:59 -07:00
MysterD
5cafdb0aa2
Synchronized HMC controllable platform
2020-10-01 00:03:46 -07:00
MysterD
1051a4adc5
Synchronized HMC boulders
2020-10-01 00:03:31 -07:00
MysterD
2f7d432143
Synchronized Eyerok, add SSL to supported levels
...
Eyerok was synchronized, but I'm still not super pleased with the
result. I had to sacrifice dialog to prevent weird states and he's
completely controlled by the server. His synchronization should be
revisited in the future.
SSL should be fully synchronized now.
2020-09-30 18:20:13 -07:00
MysterD
356029abf6
Forget all reliable packets on network shutdown
...
Prevents strange case where one instance of a game could connect to
itself.
2020-09-29 23:30:51 -07:00
MysterD
3a26c43d14
Prevent star count from flashing in levels
2020-09-29 23:25:28 -07:00
MysterD
76605397af
Prevent vanilla camera from being in a bad state after collecting star
2020-09-29 23:18:17 -07:00
MysterD
5c6d45daa7
Allow warp to take place while paused.
...
Without this change, players would warp to a random node and duplicate
players.
2020-09-29 23:10:37 -07:00
MysterD
a2dc5d6624
Sanity check torsoPos to prevent phantom collisions
2020-09-29 18:05:37 -07:00
MysterD
4ade00ac78
Prevent bug where Luigi can't jump if Mario is holding something
2020-09-29 00:01:18 -07:00
MysterD
9401a79cdc
Fix chat so remote is filled-in and local is non-filled-in star
2020-09-28 20:13:44 -07:00
MysterD
8c7f55a1fb
Synchronize instant warps
2020-09-28 19:58:37 -07:00
MysterD
be6bff6e12
Reset transition timers when forced to warp (fixes screen flashing)
...
Fixes #50
2020-09-27 23:57:52 -07:00
anzz1
4ff85f8719
fix copying and erasing saves
2020-09-27 14:54:13 +03:00
MysterD
a4e3688812
Only override ownership for Bowser when tilting platform
2020-09-27 00:15:43 -07:00
MysterD
2a17d9e831
Make 60 fps behave better for infinite stairs
2020-09-26 22:00:34 -07:00
MysterD
08f72749c9
Fix Toad messages, and likely other things related to behParams
2020-09-26 19:30:22 -07:00
MysterD
b2bd29383b
Continue NPC dialogs after they've started.
2020-09-26 19:08:52 -07:00
MysterD
168a41f0f6
Drop various types of packets if level/area doesn't match
2020-09-26 15:52:00 -07:00
MysterD
e0bdaa1229
Fade remote players into level/area, drop player packets when in different area
2020-09-26 15:13:46 -07:00
MysterD
f5df807a0c
Additional synchronization fixes for end cutscene.
2020-09-26 12:07:43 -07:00
MysterD
389ea20180
Prevent remote camera from messing with local cutscene
2020-09-25 23:17:30 -07:00
MysterD
1e9f8ec5f4
Make bettercam/puppycam respect NO_CAM_COLLISION
2020-09-25 21:40:59 -07:00
MysterD
b594984e45
Prevent bettercam from glitching out when opening one side of a door
2020-09-25 01:03:16 -07:00
MysterD
4d938e635d
Render both sides of open doors
2020-09-24 23:45:28 -07:00
MysterD
7869473e95
Make radius for collecting red coin packets smaller
2020-09-24 23:15:00 -07:00
MysterD
a75113c665
Removed huge/tiny mario and exit anywhere cheats
2020-09-24 23:10:51 -07:00
MysterD
8779460b87
Prevented level transition spam
...
Fixes #50
2020-09-24 22:34:55 -07:00
MysterD
1536ce87c8
Synchronized WDW initial water level
2020-09-24 22:18:04 -07:00
MysterD
333a77b647
Synchronized TTC speed setting
2020-09-24 21:59:03 -07:00
MysterD
8c1ec4beba
Prevent bubbled players from 'dying' to quicksand again
2020-09-24 21:37:07 -07:00
MysterD
9c8a58fa5b
Synchronize warp checkpoints
...
Prevents softlock when dying inside volcano in LLL and pyramid in SSL
2020-09-24 21:34:36 -07:00
MysterD
20631abc7f
Make Bowser 2 less likely to fall through floor
2020-09-24 20:53:32 -07:00
MysterD
44c5b5b02b
Ensure bowser key/star spawns, make bowser intro less glitchy
2020-09-24 20:28:59 -07:00
MysterD
149859e5ab
Allow bubbled players to go through vanish cap walls
2020-09-24 18:54:30 -07:00
MysterD
4ab4a109da
Prevented lava from taking extra lives from bubbled players
2020-09-24 18:32:18 -07:00
MysterD
61847a970d
Enable bettercam/puppycam in Bowser levels
2020-09-24 18:24:58 -07:00
MysterD
39a30093d7
Synchronized pyramid walls
2020-09-24 00:06:14 -07:00
MysterD
262e65f288
Synchronized Spindels
2020-09-24 00:05:59 -07:00
MysterD
e6dd75a44c
Synchronized horizontal Grindels
2020-09-24 00:05:48 -07:00
MysterD
9ef8cda5ee
Synchronized SSL pyramid elevator
2020-09-24 00:05:32 -07:00
MysterD
95b9167287
Synchronized Klepto
2020-09-23 23:18:45 -07:00
MysterD
e1933e5f78
Improvements to Bowser 2 (still not fully supported)
2020-09-23 22:00:20 -07:00
MysterD
999ccccc77
Synchronize peak height to prevent random yelling of remote
2020-09-23 21:13:03 -07:00
MysterD
7d20c6f003
Fix camera stuck in cutscene after star collection
2020-09-23 20:54:59 -07:00
MysterD
20ab5ec9f6
When client selects to save, server will save
2020-09-23 20:44:44 -07:00
MysterD
7fbae9cc05
Made in-level save dialog only show up for the player that collected the star
2020-09-23 20:35:56 -07:00
MysterD
4217306a44
Ignore jump and double jump when looking at attacks
2020-09-23 20:15:29 -07:00
MysterD
e67665ca3f
Made player-to-player attacks more consistent
...
The direction that someone is pushed is based purely on the direction
the attacker is facing.
2020-09-23 20:07:07 -07:00
MysterD
82484b5d08
Synchronized end cutscene, prevented crash
2020-09-23 19:48:24 -07:00
MysterD
29a53cd1c0
Prevent Bowser Bombs from blowing up other bombs in later stages
2020-09-23 18:03:16 -07:00
MysterD
08e8ecfc97
Synchronized fire spitters
2020-09-23 09:29:46 -07:00
MysterD
2b5c830cc4
Sanity check pokey body parts
2020-09-23 09:16:09 -07:00
MysterD
81f2102bb0
Synchronized pyramid top
2020-09-23 09:14:17 -07:00
djoslin0
8d5d79809b
Merge pull request #67 from anzz1/patch-1
...
Custom menu improvements
2020-09-23 00:14:05 -07:00
MysterD
5ee4a1ed0d
Suppress incorrect player connected message
2020-09-23 00:13:34 -07:00
MysterD
c5dcd5de8f
Synchronized Tweester
2020-09-22 23:52:57 -07:00
MysterD
794b9b2656
Synchronized Toxbox
2020-09-22 23:49:57 -07:00
MysterD
608670e0a9
Synchronized Pokey
2020-09-22 23:35:05 -07:00
MysterD
e0736ccc59
Synchronized FlyGuy
2020-09-22 22:31:24 -07:00
MysterD
94b7cf7df6
Increase bettercam's precision
2020-09-22 22:14:43 -07:00
MysterD
5c2673f5af
Change main menu disclaimer
2020-09-22 22:09:05 -07:00
MysterD
e2376a8eaf
Fixed synchronization of rolling log
2020-09-22 21:54:41 -07:00
MysterD
e1cc0aa065
Synchronized bouncing fireball spawners
2020-09-22 21:37:26 -07:00
MysterD
47f5e2315e
Synchronized LLL puzzle
2020-09-22 18:25:17 -07:00
MysterD
c515ccd427
Added 'unsupported level' warning on HUD
2020-09-22 18:05:15 -07:00
anzz1
439b221867
Custom menu improvements
...
* Remove Discord references if DISCORD_SDK=0
* Disallow non-valid ports > 65535
* Only print last attempt's port in direct connection screen if it's non-default
2020-09-22 23:22:58 +03:00
MysterD
4acbbb4db7
Made Discord asserts more descriptive
2020-09-21 23:50:22 -07:00
MysterD
01faa86bf0
Fix deduplication check for spawning stars
...
Stay in level after star option revealed that the deduplication
checking I was doing previously is no longer a valid way to do it.
The old way would prevent a second star from spawning.
2020-09-21 19:11:27 -07:00
MysterD
d3d13c26f8
Prevent drowning alert from playing for remote players
2020-09-21 18:24:17 -07:00
MysterD
5f3895463f
Prevent remote player damage from shaking local screen
2020-09-21 18:22:58 -07:00
MysterD
47122758d8
Prevent chain chomp from hurting people in cutscene
2020-09-21 18:18:19 -07:00
MysterD
378ab6edc1
Resynchronized piranha plants
2020-09-21 18:15:49 -07:00
MysterD
fef41ed741
Fixed copy/paste error
2020-09-21 00:35:04 -07:00
MysterD
fdee4eceea
Synchronize various LLL platforms
2020-09-21 00:32:14 -07:00
MysterD
0052e97605
Synchronized Bullies
2020-09-20 23:30:49 -07:00
MysterD
2a5459b2dc
Disable bettercam's fixed camera at the bridge
2020-09-20 17:58:20 -07:00
MysterD
54cd42608d
Allow players to enter the 70 star door early
2020-09-20 17:54:25 -07:00
MysterD
c5888aff50
Synchronized mips
2020-09-20 17:28:24 -07:00
MysterD
bbe95efaa2
Hotfix for discord servers
2020-09-20 00:47:00 -07:00
MysterD
4b37648487
Improve bettercam's collision detection and avoidance
...
The precision of ray casting was too low previously, causing the
collision checks to skip right past a wall sometimes. There was also
nothing to prevent the camera from getting too close to a wall
horizontally or vertically.
2020-09-19 19:35:05 -07:00
MysterD
bbdc3180cd
Made celebration star appear above correct player
...
Celebration sparkles appear around all players
2020-09-19 17:28:11 -07:00
MysterD
c013f9d16a
Prevent Boos from being brought back from the dead through desync
2020-09-19 17:13:46 -07:00
MysterD
1467e021b3
Fix boo cage desync
...
The BBH cage could get in a weird state when it was synchronized. By
desynchronizing it, it will perform properly. Weird, I know.
2020-09-19 17:02:01 -07:00
MysterD
9f8fe804ca
Prevent mother tuxie softlock
...
Fixes #6
2020-09-19 16:43:37 -07:00
MysterD
04738fedd9
Prevent new bug where stars just flood out lol
2020-09-19 16:35:32 -07:00
MysterD
7ff4eec4ee
Prevented remote players from spawning tons of stars when unlocking door
2020-09-19 16:27:38 -07:00
MysterD
2c46eec6ba
Prevented rare unlocking door crash
2020-09-19 16:19:47 -07:00
MysterD
fffad90028
Prevented more NPC dialog soft locks
2020-09-19 16:09:52 -07:00
MysterD
09a1390d8d
Allow players to join while server is waiting in level transition
2020-09-19 15:07:27 -07:00
MysterD
74c44d3053
Allow other players to update entities grabbing you
...
In theory this should fix a rare King Bobomb softlock
2020-09-19 14:30:19 -07:00
MysterD
cc1e0e8407
Synchronized Boo's tangibility field
...
I believe this fixes #58
2020-09-19 10:38:58 -07:00
MysterD
285b1490f3
Fix bubbled vanilla-camera behavior
...
Fixes #66
2020-09-19 10:20:46 -07:00
MysterD
6122c4b313
Prevented star from spawning mid-level-change
...
Now CCM's slide star spawns correctly.
2020-09-19 10:03:36 -07:00
MysterD
5472f3d13a
Add development flag for easier testing
2020-09-19 02:12:49 -07:00
MysterD
64732308f4
Prevent useless keep-alive packets
2020-09-19 01:56:45 -07:00
MysterD
c4b82e7082
Rewrote synchronization for treasure chests
...
Fixes #63
2020-09-19 01:40:42 -07:00
MysterD
cf23ed92a2
Prevented enemies/events from considering disconnected players
2020-09-19 01:05:19 -07:00
MysterD
79d30d3c1c
Prevent exclamation box from opening multiple times
...
Fixes #57
2020-09-19 00:59:54 -07:00
MysterD
4a7b9736b4
Added compile-time flag to disable Discord SDK
...
In order to support ARM/Mac, discord must be disabled.
To disable compile with:
make DISCORD_SDK=0
Fixes #62
2020-09-19 00:53:56 -07:00
MysterD
a67a06c17c
Unconnected players are now hidden/intangible
2020-09-18 23:16:07 -07:00
MysterD
f8bffd3b2a
Added player connected/disconnected events
...
Changed synchronizing text to be more descriptive
Added 'player connected', 'player disconnected', 'network shutdown' chat messages
Prevented someone from joining through Discord while in another lobby
Added the distinction of sending a packet to all vs to a specific player
Enforced lobby size of 2, multiple joiners in a direct connection will be booted
Stored network destination for each player
Detected network drops
2020-09-18 23:06:26 -07:00
MysterD
6cf5e5da68
Add missing 'Chat' text
2020-09-16 01:01:29 -07:00
MysterD
3a37b79286
Renamed packet_save_file to packet_join
2020-09-15 23:07:00 -07:00
MysterD
2a10cca29a
Refactored packet code out of network.c/h
2020-09-15 22:58:16 -07:00
MysterD
eaaab8850f
Added exponential backoff to reliable packets
2020-09-15 22:45:17 -07:00
MysterD
275d6444b1
Added chat button bind, prevented chat from disabling other binds
2020-09-15 22:22:39 -07:00
MysterD
a0d5deceff
Fix DirectX builds
2020-09-15 21:48:14 -07:00
MysterD
128b3f2b33
Prevented chat start event from disabling alt-enter fullscreen
2020-09-15 09:54:04 -07:00
MysterD
6d89ed5a9f
Added warning when Discord isn't detected. Added missing sounds to buttons and events in menu
2020-09-15 09:47:26 -07:00
MysterD
7497e42364
Damn it, fixed Linux builds (this time for real?)
2020-09-14 23:34:19 -07:00
MysterD
a675f4efd5
Fixed Linux builds
2020-09-14 23:26:55 -07:00
MysterD
9a0c07e53c
Added in-game chat
...
Fixes #35
2020-09-14 22:05:20 -07:00
MysterD
5abd0ca1ab
Complete rewrite of custom main menu
...
The vanilla main menu is an awful pile of code that is extremely painful
to make additions to. So I've side-stepped the problem by writing an
entiely new menu system without all of vanilla's quirks. I've separated
the custom menu system from the menus I want to make, which allows for
easy additions and a clear separation of responsibilities.
Along with this rewrite comes a host menu, adding the missing
configuration options in-game.
Fixes #29
2020-09-13 23:57:14 -07:00
MysterD
3e1b193ea8
Add Discord Game SDK networking system
...
Allows players to host without forwarding their ports or using a program
like Hamachi.
2020-09-13 03:27:35 -07:00
MysterD
fc9d7022b5
Fix Linux build
2020-09-12 19:27:25 -07:00
MysterD
6c8050a564
Abstracted all socket code behind a NetworkSystem
...
In preparation for other forms of communication, I have abstracted all
of the socket code (which needs direct connections) behind a struct
whose calls can be swapped out for other systems if desired.
2020-09-12 17:56:42 -07:00
MysterD
388470d579
Fixed softlocks when one player runs out of lives, or death by lava
...
Also bubbles player when falling into quicksand
Fixes #36
2020-09-12 14:32:50 -07:00
MysterD
daa05d98a0
Hacky workaround for BBH camera bug
...
One specific door didn't reset the vanilla camera when rushing through
an open door.
Fixes #48
2020-09-11 23:48:27 -07:00
MysterD
c0a31ab06c
Prevented bubbled players from triggering level warps
...
Fixes #41
2020-09-11 22:58:34 -07:00
MysterD
5abe3577ae
Added Luigi's face in place of 'Mario Cam'
...
Fixes #42
2020-09-11 22:36:29 -07:00
MysterD
6d438ba760
Fix first-person camera lock bug
...
Getting kicked in vanilla-cam's first person messed up the camera, this
fixes it.
Fixes #55
2020-09-11 22:32:32 -07:00
MysterD
718974c111
Fix PSS's secret star collection
...
Fixes #56
2020-09-11 22:25:49 -07:00
MysterD
3070d2bfdb
Prevent two players from holding the same object
...
Fixes #40
2020-09-11 22:14:42 -07:00
MysterD
284ab37406
Added debug level-warping for testing purposes
2020-09-11 20:10:29 -07:00
MysterD
c86c7f7280
Fix new level transition synchronization softlock
2020-09-11 18:30:34 -07:00
MysterD
a6b3ddcc69
Revert "Revert "More level transition synchronization rewrites""
...
This reverts commit 0667908b86
.
2020-09-11 18:08:24 -07:00
MysterD
0667908b86
Revert "More level transition synchronization rewrites"
...
New synchronization caused a softlock on new-level-dialogs
This reverts commit 163527401e
.
2020-09-11 18:02:21 -07:00
MysterD
04c21d91bc
Added version checking to clients
2020-09-11 16:19:38 -07:00
MysterD
163527401e
More level transition synchronization rewrites
...
I believe this fixes #51
2020-09-11 15:32:30 -07:00
MysterD
791423ff98
Properly offset player spawns
2020-09-10 22:18:10 -07:00
MysterD
cb6836f818
Fixed infinite hold by King Bobomb softlock
...
fixes #38
2020-09-10 21:55:03 -07:00
MysterD
71589938df
Fix King Bobomb dialog softlock
...
Fixes #45
2020-09-10 21:26:17 -07:00
MysterD
9cf3932435
Fix coffin crushing softlock
...
Fixes #47
2020-09-10 20:26:02 -07:00
MysterD
114665f6bb
Keep player control of camera for chain-chomp cutscene
...
Fixes #54
2020-09-10 20:02:16 -07:00
MysterD
3e5b08b487
Fixed small crimes against C
2020-09-10 09:43:32 -07:00
MysterD
1e6c734ced
Completely rewrote level transition synchronization code
...
Should be snappier and less prone to crashes. I tested as many scenarios
as I could think of and it has been rock solid. But time will tell.
Also created a new debug log system, just so I could understand what the
hell was going on with this code.
2020-09-10 00:17:30 -07:00
MysterD
e48a9c25ab
Added 'no lives remaining' text
2020-09-08 18:21:09 -07:00
MysterD
42777fbe8f
Changed text on level select screen
2020-09-08 17:33:03 -07:00
MysterD
cf732c7beb
Eject a player if more than one is in the cannon
...
Two players in the same cannon was causing softlocks and general
insanity. Now this should be fixed. Also prevented players from being
able to push or attack a player inside of a cannon.
2020-09-08 16:12:11 -07:00
MysterD
58a3156180
Lowered cannon sensitivity
2020-09-08 15:13:49 -07:00
MysterD
ef6ec31075
Prevent ground pound from attacking until they're moving downward
2020-09-08 15:01:31 -07:00
MysterD
a2fe4f80a7
Lower knockback for anything stronger than a kick
2020-09-08 14:57:50 -07:00
MysterD
26726121a5
Players sliding in the same direction will no longer attack each other
...
We check to see what the difference in velocities is, if it's small then
no attack is made. Otherwise, only the player going faster will attack.
2020-09-08 14:43:07 -07:00
MysterD
d1873328a4
Prevent underwater bubble-popping from teleporting the player to the top
2020-09-08 14:03:12 -07:00
MysterD
1e46ed136a
Prevent extra death for bubbled player on area change
2020-09-08 13:53:46 -07:00
MysterD
a7434c9513
Completely disable text saves until they're synchronized
2020-09-08 13:34:35 -07:00
MysterD
a4288fe150
Allow exiting from course at any time
2020-09-08 09:52:48 -07:00
MysterD
c12380aff4
Make inside-and-outside painting transition quicker over network
2020-09-08 09:50:34 -07:00
MysterD
29cb0935fb
Fixed glitchy animations on remote when in dialog
2020-09-08 09:33:55 -07:00
MysterD
cc550e1de5
Unagi: prevent sending a pointer, hopefully doesn't cause desync
2020-09-08 09:16:44 -07:00
MysterD
b9924253bb
Racing Penguin: remove airborn check, fix end of race desync
2020-09-08 09:15:43 -07:00
MysterD
a804981b2a
Fix koopa the quick sound spam and cheat detection
2020-09-08 09:06:25 -07:00
MysterD
ef95d6820b
Synchronized star entity interaction
...
Fixed error in packet_collect_star which would prevent the star from
disappearing when it should on remote.
2020-09-08 09:01:35 -07:00
MysterD
3b946eb5e1
Added stay-in-level-after-star server-side setting.
...
Configurable in the server's config file under:
coop_stay_in_level_after_star
Defaults to off
Based on GateGuy's patch
2020-09-08 00:04:06 -07:00
MysterD
2f8d119301
Prevent exclamation box from spawning the wrong star on remote
2020-09-07 23:56:29 -07:00
MysterD
2d0871e061
Prevent exclamation box from double spawning stars
2020-09-07 23:10:28 -07:00
MysterD
f8044a5639
Make send_spawn_objects more reliable
...
As noticed by anuserlol, stars would sometimes not spawn from breakable
boxes on the remote. This was due to the box being destroyed before the
star spawned, when the star tried to spawn it couldn't find the parent
and gave up. Now if no parent is found the spawned object will be its
own parent. This should make all spawned objects more reliable, but may
cause weirdness somewhere.
Fixes #34
2020-09-07 20:54:15 -07:00
MysterD
88b935e9dd
Force marioObj player indices to be well behaved
...
Fixes a crash when spawning the secret star in The Princess's Secret
Slide.
Fixes #32
2020-09-07 20:30:20 -07:00
MysterD
95e9c1dc4c
Synchronized room checking better + fixed bookswitches
...
Determining if the player is in the room was bugged, and bookswitches
caused Luigi to crash. Now things should be a bit more stable in BBH.
Fixes #30
2020-09-07 19:51:39 -07:00
MysterD
ef48ec249a
Allow other player to pass through door when it's being opened
...
Also disable the 'walking through door' cutscene when newcam is on
2020-09-07 16:35:42 -07:00
MysterD
214697fc8e
Fixed infinite loop with King Bobomb
2020-09-07 10:50:32 -07:00
MysterD
3145dfabdc
Misc camera fixes
...
Made analog camera stop rotating or triggering TOTWC when paused
Fix broken vanilla camera on TOWTC w/BETTERCAMERA enabled
Fixes #15
2020-09-07 10:48:54 -07:00
MysterD
bc2480da87
Added aggressive null checking to various types of objects
2020-09-07 00:29:18 -07:00
MysterD
36e035984f
Pausing the game no longer pauses, just brings up the menu
...
Fixes #19
2020-09-06 22:27:09 -07:00
MysterD
e0903003f4
Rewrote how players are initialized, stored, and displayed
...
Since the second-player code was the first code I wrote, it was implemented
poorly. At that point, I didn't know the code base at all and the way it was
written would prevent anyone from ever adding to those parts.
The rewrite allows me to use the default geo.inc.c file for Mario, and removes
all of the geo2.inc.c files. I no longer do a bunch of bit shifting to figure
out which player is being drawn in the rendering code.
I'm also now able to remove tons of duplicate code that exists just for the
remote player. The main player code is generic enough to support both indices.
A side-effect of the rewrite is I was able to remove many assumptions in the
code where two-players is assumed, but many other parts of the code still
assume two players.
This is a fairly major change that, if all goes well, will be completely
unnoticed by the player. However, I do expect new bugs to pop up in strange
places. Time will tell.
2020-09-06 18:52:52 -07:00
MysterD
df7904e288
Geo2 removal wip
2020-09-06 13:54:01 -07:00
MysterD
975c68ae1e
Fix join issue when compiling without DEBUG
2020-09-06 12:46:02 -07:00
MysterD
7dafd081e1
Made player attack knockback configurable
2020-09-06 12:18:33 -07:00
MysterD
b9750057d5
General network code clean up
...
Marked globals, rearranged functions, added comments
2020-09-06 11:02:41 -07:00
MysterD
bed036bcfb
Added coop settings to saved config file
...
Saves and loads last join IP/port attempt
Made host's port configurable in config file
Made host's save slot configurable in config file
Made host's player interaction setting configurable in config file
Indicated when the client was trying to connect on the join menu.
Fixed join menu display error where the port would disappear
2020-09-06 03:32:34 -07:00
MysterD
51940d6a82
Player interaction enhancements
...
Made water punch do an attack
Increased knockback significantly
Different types of attacks will have different knockback severity and damage (Stomp > kick > the rest)
Fixed rapid attack spam
Adjust radius for bouncing on players and popping bubbles
Made player interactions a synchronized server flag:
None - Players are not solid
Solid (Default) - Player can run into each other and stun each other
PVP - Same as solid except friendly fire is on
Note: Not currently configurable due to a lack of a UI.
2020-09-06 10:05:58 -07:00
MysterD
91981d679d
Hide life counter when lives is -1
2020-09-05 21:17:33 -07:00
MysterD
7f1a5573aa
Add disclaimers to main menu
2020-09-05 21:12:49 -07:00
MysterD
13d9ae0313
Synchronized 1-up collection
...
Collecting a 1-up gives a life to both. This can bring back a bubbled
player who had no lives remaining.
2020-09-05 19:55:38 -07:00
MysterD
8c3014b120
Created Luigi's life icon
2020-09-05 19:44:58 -07:00
MysterD
906ea3345e
Players turn into bubbles when they die
...
Player life counters are separate.
When one player dies they lose a life and are turned into a bubble.
If the other player pops it, they are alive again.
If all players are bubbled, they get kicked out of the level.
If the bubbled player ran out of lives, they can not come back to life
until the level is over.
Whenever a level change happens, everyone's life count is set to a
minimum of two.
No game overs.
Took heavy inspiration from Kaze Emanuar
2020-09-05 18:10:55 -07:00
MysterD
9427afb14b
Allow vanish cap to pass through walls
...
fixes #16
2020-09-05 13:31:36 -07:00
MysterD
478f77e6bf
Fix EXTERNAL_DATA for Luigi
...
Fixes #25
2020-09-05 00:11:15 -07:00
MysterD
2174ef0478
Change default save directory to sm64ex-coop
2020-09-04 22:17:15 -07:00
MysterD
670a554b37
Remove any lingering dialog boxes on level transition
...
Fixes #22
2020-09-04 21:27:06 -07:00
MysterD
00b0b7cd8f
Remote reading sign no longer causes sound spam
...
fixes #20
2020-09-04 21:14:14 -07:00
MysterD
4cb13edf84
Fix animation desync when pressing Z+B
...
Fixes #18
Found by el pinguino max
2020-09-04 21:08:04 -07:00
MysterD
1bb0c90741
Add docker-build workarounds and container script
2020-09-04 17:03:35 -07:00
MysterD
4a2c218f11
Synchronized save files
...
Now when a client joins, it will request the entire 512 byte EEPROM from
the server and refuse to continue until the server replies with the
contents. Then the client will override all reads and writes to the
EEPROM/save file. Thus, a client will never overwrite their local save.
Fixes #21
2020-09-04 15:07:32 -07:00
MysterD
1289f863ca
Removed 'int' from most of networking code
...
moved -Werror over to 'STRICT'
2020-09-04 11:43:12 -07:00
MysterD
9512fde4a5
Added custom packets for mods-of-this-mod
...
Now a patch can choose to register callbacks for sending and receiving
packets. It's a bit tricky to use but at least it won't collide with
normal packets or other mod packets.
2020-09-04 02:04:37 -07:00
MysterD
d5005c9f37
Served time for crimes against C
...
Due to my compile & launch scripts, I was silently ignoring warnings
this whole time. I've fixed my process, and gone back to fixed all of
the warnings I could (even outside of my code).
2020-09-04 01:58:54 -07:00
MysterD
3c48e1df1a
Prevent infinite loop for remote sliding players
2020-09-03 18:32:07 -07:00
MysterD
68ad6bc15c
Added host/join in-game GUI
...
Now people aren't forced to launch with command-line parameters,
instead they can host or join a server by selecting buttons in
the main menu.
2020-09-03 18:30:15 -07:00
MysterD
f367ed2167
Prevented softlock and entity duplication when both grab at the same time
...
As reported by somario360:
After grabbing the small box at the same time, one of two results can happen.
There will be a fake cloned box that will only be visually in the other
player's hands, or one player will be stuck in the punching animation until
the other player lets go of the box, in which the box goes into the stuck
player's hands.
Now escapes from action if the grab fails, preventing a softlock.
And now if both players report having the same object, the client
will drop their copy.
Fixes #14
2020-09-03 18:11:42 -07:00
MysterD
920c0674d9
More tuxie fixes
...
Tuxie will regain its hitbox if dropped through crouching or any other means
Fixed detection of if any mario is far away
Immediately sends an object packet whenever any object is dropped or thrown
Fixes #9
2020-09-03 08:58:21 -07:00
MysterD
ab9e7c7bca
Added player-to-player interactions
...
Players are now solid to each other and can push each other
Players can now attack each other (but they do not deal damage)
Players can bounce on top of each other, and they get squished
temporarily
Players are given slightly offset positions when they transition between
areas and levels, so they're no longer on top of one another.
2020-09-02 23:50:27 -07:00
MysterD
b9e84ad3b9
Shell music only starts and stops for local player
2020-09-01 23:41:56 -07:00
MysterD
933ee68477
Null checked heldObj in all mario actions
...
Bobomb clip no longer segfaults the game
2020-09-01 23:40:53 -07:00
MysterD
72c4379d8a
Fix first sound and size of first punch
...
The code was skipping playing the sound of the first punch, and changing
the size of the first for the first punch. Added hacky stuff to the
player packet code to ensure those events are hit.
Fixes #10 reported by somario360
2020-09-01 23:35:57 -07:00
MysterD
f62f80a228
Synchronize sleeping animations
...
Sleeping animations were desynchronized previously. Now remote goes to
sitting, and to laying down, at the right times. A snoring remote player
will no longer lower your music, and will no longer get stuck snoring
when they wake up.
Fixes #11 reported by somario360
2020-09-01 23:00:12 -07:00
MysterD
c88ff19190
Prevent infinite looping of Mario action transitions
...
There have been several times where the unpredictable behavior of
a remote player where execute_mario_action() would get caught in
an infinite loop. Now we attempt to detect an infinite hang and
escape from it. The sequence of actions will be recorded into an
errorlog.txt file. In debug mode this infinite hang will cause an
assertion to fail, crashing the game. In normal mode the game will
break out of it and hopefully carry on normally after new packets
come in.
I believe this addresses github issue #12 but I can't be sure.
2020-09-01 22:06:36 -07:00
MysterD
af117f4647
Various tuxie synchronization fixes
2020-09-01 20:13:46 -07:00
MysterD
c54063fadd
Fixed messed up animation when remote is talking to an NPC
...
fixes #8 found by somario360
2020-09-01 18:10:00 -07:00
MysterD
8711829664
Merge branch 'nightly' into coop
2020-09-01 18:08:46 -07:00
MysterD
443fc1a73f
Synchronize cannons as soon as they are unlocked
2020-08-31 23:49:51 -07:00
MysterD
3950dda92f
Force players who are held by an entity to own that entity
2020-08-31 22:36:07 -07:00
MysterD
e705353e00
Synchronized squished values
2020-08-31 22:22:33 -07:00
MysterD
3495a9e4a4
Re-added King Bobomb dialog
2020-08-31 21:38:08 -07:00
MysterD
efa1600ad0
Truly deal with the NPC dialog softlock problem
...
Reported by somario360:
After I (Luigi) gave the baby penguin to the mother, the start spawned,
but I was stuck in the looking up animation.
My friend (Mario) talked to Bowser after defeating him, Bowser turned into
a key, but he was stuck in the looking up animation after (I was able to
grab the key though, but Bowser was slightly visible) (Also don't mind 0
stars, he loves doing the lobby BLJ)
The issue is the state machine moved on without removing the reading
dialog action. There was no straight forward way to deal with this.
Custom functions were written for each call to dialog to ensure that we
should stay reading the dialog.
2020-08-31 21:10:34 -07:00
MysterD
5d7499bd2a
Fixed crash when changing areas within a level
...
Bug reported by somario360:
After I (Luigi) exited the slide in CCM, an error message appeared and ignoring would make it pop up again.
This was due to the sync ID reservation system not being flushed and
reset on area change.
2020-08-30 23:13:05 -07:00
MysterD
7b073aedb8
Fix NPC softlock (cannon and hoot)
...
Bug reported by somario360:
When trying to open the cannon in a level (so far tested in BOB & WF) the cannon dialogue will repeat infinitely. Sometimes the cannon will open, but the game will crash after.
The code I had written previously to prevent softlocks ended up causing
them due to a incorrect check of activeFlags.
2020-08-30 23:12:28 -07:00
MysterD
96a2cacf2d
Added text-input system for typing in-game
2020-08-30 23:25:32 -07:00
fgsfds
8a23a8a5c5
add rudimentary SDL1 controller backend
...
it's more to deal with the mouse not working I suppose
2020-08-30 16:06:22 +03:00
fgsfds
8419991c02
Merge remote-tracking branch 'origin/master' into nightly
2020-08-30 15:41:45 +03:00
fgsfds
cc26cc9bf9
fix spaces
2020-08-30 15:39:41 +03:00
fgsfds
6d1f2afd8b
Merge pull request #350 from pouar/fix-snufit
...
Bugfix for NODRAWDISTANCE
2020-08-30 15:34:24 +03:00
fgsfds
46c57457b1
GL_LEGACY: this should've been GL_REPLACE all along
2020-08-30 01:29:26 +03:00
Garrett
468887a6f9
Check for zero rumble setting before allowing rumble
...
Fixes controllers which don't check for rumble_strength and have constant rumble from rumbling even when set to 0 in the config.
2020-08-29 17:08:17 -04:00
MysterD
483694d6b3
Synchronized Bowser 1
2020-08-29 12:59:07 -07:00
MysterD
10bdd1e1fe
Synchronized bowser bombs
2020-08-29 12:58:54 -07:00
MysterD
81d23b3cc9
Made castle floor trap multiple-player-aware
2020-08-29 12:58:04 -07:00
MysterD
13d4a0bfe8
Fixed stomache slide hang, made grabs only happen on local
2020-08-29 12:57:20 -07:00
MysterD
cb5dcaa4f4
Synchronized sliding platform 2
2020-08-28 20:26:17 -07:00
MysterD
398f5e8345
Synchronized ferris wheel
2020-08-28 20:26:04 -07:00
MysterD
ec89f3fccc
Synchronized amps
2020-08-28 20:25:46 -07:00
MysterD
ab9d7db29f
Synchronized square platforms as groups of two
2020-08-28 20:25:34 -07:00
fgsfds
73c6c9105f
change GL_LEGACY to only use GL1.1 (1.2?) features
2020-08-29 02:13:30 +03:00
fgsfds
655427f10f
add --poolsize arg for modifying main pool size
2020-08-29 02:13:30 +03:00
MysterD
a778bf497d
Resynchronized checkerboard platforms
2020-08-27 21:39:13 -07:00
MysterD
d2a2a80d56
Synchronized Big Boo's Haunt + major changes
...
Synchronized currentRoom per-player
Synchronized haunted bookshelf, and the bookshelf manager
Synchronized haunted chairs
Synchronized mad piano
Synchronized BBH's tilting trap, and made the physics multiple-player-aware
Synchronized scuttlebugs
Synchronized every variety of Boo
Synchronized elevators
Synchronized flamethrowers
Synchronized the various types of enemy books
Synchronized the book switches
Synchronized jumping box
Made coffins multiple-player-aware
Fixed everything that used gMarioState as an array instead of gMarioStates
Prevented some NPC-dialog softlocks
Prevented the remote player from messing up the local's camera settings
Possibly fixed the relatively rare chain chomp softlock
Possibly fixed the relatively rare chain hoot softlock
Fixed the first-person-camera softlock
Forced camera code to use the correct mario struct
2020-08-26 23:29:40 -07:00
MysterD
13b216ea5d
Synchronized Boo
2020-08-24 21:38:49 -07:00
MysterD
8c650a5b7d
Created system to reserve sections of SyncIDs per client
...
This allows clients to spawn a new sync object after the level loads and synchronize it.
Changed how un-initialized sync objects are detected
Koopa shells are the first thing to use this new system
Removed network_object_settings() command, instead explicitly setting the sync object parameters
2020-08-24 18:33:53 -07:00
MysterD
4b12d0e513
Fixed exclamation box synchronization bug
2020-08-18 18:47:21 -07:00
MysterD
53576aa51e
Synchronized unagi
2020-08-18 18:47:06 -07:00
MysterD
57a4e746cf
Synchronized underwater koopa shell
2020-08-18 18:46:54 -07:00
MysterD
f08e6f0806
Made floating platform multiple-player aware
2020-08-18 18:46:13 -07:00
MysterD
b8bdac2666
Made falling pillar multiple-player aware
2020-08-18 18:45:50 -07:00
MysterD
5b7e1c28d8
Synchronized clam
2020-08-18 18:45:34 -07:00
MysterD
79a2d95f00
Synchronized jrb ship and box
2020-08-18 18:45:19 -07:00
MysterD
c589f2a620
Synchronized treasure chests
2020-08-18 18:43:42 -07:00
fgsfds
e18b3c5b97
fix controller_sdl2
2020-08-15 16:04:55 +03:00
fgsfds
8b23c544d1
Merge pull request #399 from ineedhelpbad/nightly
...
BUGFIX: Camera bugs when using flying cap with BETTERCAMERA=1 #370
2020-08-15 15:59:59 +03:00
fgsfds
083a9be2a5
Merge pull request #400 from ineedhelpbad/patch-1
...
BUGFIX: Camera invert #373
2020-08-15 07:17:02 +03:00
fgsfds
3e9e2595aa
add barebones SDL1.2 backends
...
for that sweet Win9x support
2020-08-15 07:15:28 +03:00
MysterD
6c617ef22a
Changed default config values
2020-08-13 22:59:46 -07:00
MysterD
7cd5dbb1a4
Added CLI options to specify ip/port
2020-08-13 19:38:15 -07:00
MysterD
88bcd2a143
Sound fixes for remote player
2020-08-13 18:53:01 -07:00
MysterD
92398f3ca1
Made rumble only happen for local events
2020-08-13 18:49:24 -07:00
MysterD
90d9e255e4
Fixed exclamation box double item spawning when traffic is bad
2020-08-13 18:34:27 -07:00
ineedhelpbad
38b3ead13e
BUGFIX: Camera invert #373
...
Fix: Free Camera is forever inverted on the Y-Axis, changing the setting does nothing. #373
2020-08-13 13:49:02 -05:00
ineedhelpbad
9ed98273d7
Update mario_actions_airborne.c
2020-08-13 00:26:23 -05:00
MysterD
31904c36bf
Removed vestigial painting warp code, made painting selection instant
2020-08-12 22:17:12 -07:00
MysterD
6629b5493d
Freeze mario in place when star spawning or dialog box pops up
2020-08-12 21:47:07 -07:00
MysterD
6e4c39eabe
Kept more randomness, fixing tree leaves, fix pole segfault
2020-08-12 19:39:31 -07:00
MysterD
48f42d1873
Fixed visual bug when both players are sliding
2020-08-12 19:14:35 -07:00
MysterD
bdf269c262
Fixed tower platform spawning bug
2020-08-11 23:27:37 -07:00
MysterD
55df4e6bd7
Synchronized whomp
2020-08-11 23:03:40 -07:00
MysterD
4cc3d08769
Synchronized thwomp
2020-08-11 23:03:30 -07:00
MysterD
7165d5ca64
Synchronized all of the various platforms in WF
2020-08-11 23:03:13 -07:00
MysterD
84ef9e97c1
Synchronized piranha plant
2020-08-11 23:02:16 -07:00
MysterD
aec993b5b6
Synchronized kickable board
2020-08-11 23:02:03 -07:00
MysterD
0e72fc2b1f
Synchronized bullet bill
2020-08-11 23:01:51 -07:00
MysterD
47948b2a4e
Synchronized bomp
2020-08-11 23:01:36 -07:00
MysterD
d5b087acd8
Synchronized hoot
2020-08-11 23:01:13 -07:00
MysterD
697670b519
Synchronized breakable wall
2020-08-11 23:00:55 -07:00
MysterD
3b00aa9e42
Various synchronization enhancements
2020-08-11 23:00:13 -07:00
MysterD
2177094730
Synchronized wing cap and hidden trigger pickups
2020-08-10 23:38:58 -07:00
MysterD
f1789d4e78
Synchronized cap switch, and exclamation box contents
2020-08-10 22:59:11 -07:00
MysterD
5ca3f2ebd7
Synchronized platform-on-tracks
2020-08-10 19:08:47 -07:00
MysterD
0ceba4b372
Synchronized blue coin switch
2020-08-10 18:19:27 -07:00
MysterD
aaf521659e
Disabled many timestops
2020-08-10 18:10:04 -07:00
MysterD
8fcf1728bd
Synchronized snowman
2020-08-10 18:09:31 -07:00
MysterD
40a3d55f9a
Synchronized racing penguin
2020-08-10 15:09:09 -07:00
MysterD
8c7348f10d
Synchronized baby and mother Tuxie
...
Added missing star parameter
2020-08-10 14:27:56 -07:00
MysterD
c26bf586e1
Synchronized Mr Blizzard
2020-08-10 13:29:07 -07:00
MysterD
b2b7c6b9ba
Synchronized spindrift
2020-08-10 12:08:53 -07:00
MysterD
1bef126df8
Synchronize area changes
2020-08-10 12:08:40 -07:00
MysterD
6701b6096d
Rewrote level synchronization
...
Synchronized exit course from pause menu
2020-08-10 09:33:40 -07:00
MysterD
2e768869e3
Misc fixing to entering paintings
2020-08-09 18:58:58 -07:00
MysterD
d307fc3f30
Refactor packet_object + misc cleanup
2020-08-09 17:40:37 -07:00
MysterD
9036336f42
Gave each BehaviorScript an ID
...
Created functions to trivially translate an ID to a Behavior and vice
versa. Sent ID over packets instead of Behavior pointer. This should
allow Linux and Windows to play together.
2020-08-09 16:21:12 -07:00
MysterD
a896713510
Made sockets platform-independent, supporting Linux
2020-08-09 13:23:27 -07:00
MysterD
d7a5a151d0
Added checksums to packets
2020-08-09 10:44:21 -07:00
MysterD
66c1c4f206
Synchronized 1up spawning
2020-08-09 09:04:30 -07:00
MysterD
6c189cebe7
Synchronize course complete screen
2020-08-09 08:23:53 -07:00
MysterD
05ba304050
Synchronized exclamation boxes
2020-08-09 08:07:32 -07:00
MysterD
41647d95c4
Synchronize Bobomb buddies and cannons
2020-08-09 07:42:44 -07:00
MysterD
a49b8f3b1e
Synchronized Koopa The Quick
2020-08-09 00:37:36 -07:00
MysterD
eeec6aae49
L is real 2020
...
Added Luigi model.
Renamed all previous references to 'Luigi' to 'Mario2' since player 1
isn't always mario, and player 2 isn't always luigi.
Now server is always mario and client is always Luigi.
Luigi model credits:
Original model by Cjes, converted by AloXado320, textures added/fixed by
SunlitSpace542.
2020-08-08 21:36:49 -07:00
MysterD
b07aa565d4
Synchronized 3 types of star spawning, adjusted star interactions
2020-08-08 18:57:04 -07:00
MysterD
7f5dec337e
Synchronized King Bobomb
...
Tried to synchronize dialog stuff, it's way too much of a mess to do
2020-08-08 17:13:11 -07:00
MysterD
4b61f7212b
Fixed receiving of health, made recovery heart 2-player aware
2020-08-07 22:27:15 -07:00
MysterD
2a0a3df34f
Synchronized bowling balls
...
Added flag to keep randomization for sync objects
2020-08-07 21:13:07 -07:00
MysterD
199bd07bb3
Synchronized water bombs
...
Added packet system to spawn objects on remote
2020-08-07 20:34:12 -07:00
MysterD
8b24d364bb
Synchronized purple switch
...
Started working toward synchronizing star spawning, not quite there yet
2020-08-07 19:37:19 -07:00
MysterD
444c1fdd3b
Synchronized coin collection
...
Reimplemented how randomness is synchronized
2020-08-07 18:01:58 -07:00
MysterD
5ec9ab9ec0
Synchronized seesaw, started moving toward a MAX_PLAYERS define
2020-08-06 22:52:32 -07:00
MysterD
e86efb9e85
Synchronized checkerboard platforms
...
Created a max update rate
Created 'full object syncing'
Switched to using clock() instead of ticks for packet_object
2020-08-06 21:47:03 -07:00
MysterD
e0b86b7d59
Synchronized teleports (e.g. flowerbed) and star collection
...
Fixed infinite packet_level_warp sending
2020-08-06 20:28:21 -07:00
MysterD
6bc4bfea62
Improve chain chomp syncing
2020-08-06 19:04:59 -07:00
MysterD
fac4c20a36
Synchronized player health/death
...
Now we will never kill remote players locally, they will have to let us
know that they died.
Synchronized more of the small breakable box
Fixed desync where an object wouldn't be dropped sometimes
Fixed infinite loop when remote player was squished
2020-08-06 18:45:39 -07:00
MysterD
0a3b0623a5
Synchronized chain chomp, adjustments to Koopa
...
Added entity event syncing system. Made sure old events don't override
new events.
2020-08-05 23:44:43 -07:00
MysterD
0a2c76c76e
Fixed max sync distance issue, synced Koopas
2020-08-05 20:25:52 -07:00
MysterD
e61b137160
Refactored entity death sync + reliable packets
...
Embedded an immediate packet send whenever a synced entity is unloaded
from the game.
Added reliable packet sending.
2020-08-05 01:01:50 -07:00
MysterD
6d3a90031c
Synchronized breakable boxes
...
Added maximum sync distance, special cases for infinite distance and
only synchronizing entity deaths.
Started mocking out reliable packets for entity deaths.
2020-08-04 22:42:28 -07:00
MysterD
4452b38848
Synchronized inside-painting state
2020-08-04 20:49:53 -07:00
MysterD
f32d3a2ba7
Added Luigi to courtyard and BoB, fixed some crashing issues
2020-08-03 17:59:44 -07:00
MysterD
6d0d7ffbaa
Dialog to toad/signs/doors no longer soft-locks or stops time
2020-08-03 23:23:09 -07:00
MysterD
ec2199892f
Force synchronizing of level changes
2020-08-02 23:02:29 -07:00
MysterD
9b5b5acf19
Synchronized goombas, synced randomness, added extra fields to object packets
2020-08-02 18:29:46 -07:00
MysterD
de9eab364f
Added update rates for objects based on distance
2020-08-02 16:38:02 -07:00
MysterD
3d055255bc
Added ability to sync multiple objects
2020-08-02 16:09:32 -07:00
MysterD
716a924803
Synchronized held objects, made respawners keep their sync ID
2020-08-02 14:18:34 -07:00
MysterD
579415dca9
Started synchronizing objects, refactored networking
2020-08-02 01:43:12 -07:00
MysterD
42a52ad936
Fixed synced crawling/climbing animation speed
2020-08-01 21:35:38 -07:00
MysterD
34b1ec76f6
Started adding networking
2020-08-01 20:22:24 -07:00
MysterD
0ad65c87da
Made collision particles Luigi-aware
2020-08-01 20:21:44 -07:00
MysterD
b525b9d43a
Made one-ups Luigi-aware
2020-08-01 19:08:08 -07:00
MysterD
01e02affad
Saved player index in held objects
2020-08-01 19:03:26 -07:00
MysterD
fa2470327f
Prevent situation where both players hold same object
2020-08-01 18:56:42 -07:00
MysterD
7accb94398
Made fish Luigi-aware
2020-07-31 22:35:14 -07:00
MysterD
4351a6345a
Made Goomba Luigi-aware, fixed Mario's hurtboxes
2020-07-31 22:13:05 -07:00
MysterD
c437e075ff
Separated held objects, made Bobombs Luigi-aware
2020-07-31 18:03:57 -07:00
MysterD
e99ca8cfce
Made bird Luigi-aware
2020-07-30 23:17:18 -07:00
MysterD
6597d30095
Butterflies are now Luigi-aware
2020-07-30 21:58:33 -07:00
MysterD
79fdb73e63
Fixed Mario going invisible when both are sliding
2020-07-30 21:43:50 -07:00
MysterD
2d2dff6647
Added IMMEDIATELOAD debug flag to skip all intro stuff
2020-07-30 20:42:39 -07:00
MysterD
4486e8000c
Began fixing up Luigi collisions
2020-07-30 18:44:09 -07:00
MysterD
0737d2e03f
Separated animations between players
2020-07-30 18:09:47 -07:00
MysterD
6b3ab5f115
Started adding player 2 / Luigi
2020-07-29 21:08:38 -07:00
MysterD
131fc7ea11
60 fps patch
2020-07-28 18:28:12 -07:00
fgsfds
d8ddf20dbb
fix GL_LEGACY
2020-07-27 17:28:32 +03:00
fgsfds
bd873a7947
fix GL_LEGACY
2020-07-27 17:28:32 +03:00
fgsfds
597546125e
don't assume first frame happens at 0 ticks
2020-07-10 15:44:58 +03:00
fgsfds
5aaa4e399a
don't assume first frame happens at 0 ticks
2020-07-10 15:44:58 +03:00
fgsfds
4b15a8f7b6
add a catch for 240hz refresh rates
...
hopefully 150, 180 and 210hz monitors don't exist
2020-07-09 17:24:15 +03:00
fgsfds
74fb549516
add a catch for 240hz refresh rates
...
hopefully 150, 180 and 210hz monitors don't exist
2020-07-09 17:24:15 +03:00
fgsfds
572a4b698b
do vsync exactly like sm64-port does it
...
maybe this will finally work better
2020-07-09 17:02:43 +03:00
fgsfds
a4b4d6d5e5
do vsync exactly like sm64-port does it
...
maybe this will finally work better
2020-07-09 17:02:43 +03:00
fgsfds
2982fcdb8e
time video frames instead of game frames
2020-07-08 13:07:05 +03:00
fgsfds
d7187b219c
time video frames instead of game frames
2020-07-08 13:07:05 +03:00
fgsfds
92e869d263
roll back to using SDL_Delay/SDL_GetTicks
2020-07-08 12:51:15 +03:00
fgsfds
c832bd19b5
roll back to using SDL_Delay/SDL_GetTicks
2020-07-08 12:51:15 +03:00
fgsfds
fde15809b7
add sanity checks in save_file.c
...
though it would be a better idea to solve the problem that leads to -1 being passed to these instead
2020-07-07 20:57:18 +03:00
fgsfds
7b8a7e4047
add sanity checks in save_file.c
...
though it would be a better idea to solve the problem that leads to -1 being passed to these instead
2020-07-07 20:57:18 +03:00
fgsfds
b3ddd3a9fc
remove garbage from game_loop_one_iteration
2020-07-07 20:43:46 +03:00
fgsfds
442ef7665f
remove garbage from game_loop_one_iteration
2020-07-07 20:43:46 +03:00
fgsfds
bc3e94b11e
bump gfx pool size
2020-07-07 15:21:14 +03:00
fgsfds
b1d7124110
bump gfx pool size
2020-07-07 15:21:14 +03:00
fgsfds
1486bee60a
replace 'double' vsync option with 'auto' from sm64-port
2020-07-07 15:21:14 +03:00
fgsfds
2993a7bed6
replace 'double' vsync option with 'auto' from sm64-port
2020-07-07 15:21:14 +03:00
fgsfds
765a08c846
merge gfx updates from sm64-port
2020-07-07 15:21:14 +03:00
fgsfds
bf174e36a6
nuke TARGET_N64 remnants
2020-07-05 14:42:26 +03:00
n64
c33936e862
Enhance Z-fighting issues for shadows
2020-07-05 14:39:34 +03:00
n64
744b6bf5d6
Don't render low-polygon variants on pc-port
2020-07-05 14:37:11 +03:00
n64
469ad637ed
Make sure the first star is initially selected, if all stars are obtained
2020-07-05 14:37:03 +03:00
fgsfds
df1340c37c
'Better skybox position precision' from sm64-port
2020-07-05 14:33:57 +03:00
n64
6330644371
Refresh 11
2020-07-05 14:15:43 +03:00
fgsfds
fccaead53d
allow to bind controller triggers
2020-06-25 02:10:03 +03:00
fgsfds
9c2b5f08b6
actually bind L to LSHIFT and LSHOULDER by default
2020-06-25 01:19:38 +03:00
fgsfds
9e4c0f26c9
bettercam: camera centering is bound to L again
2020-06-25 01:18:50 +03:00
fgsfds
026361ad61
force disable free camera during demo playback
2020-06-24 16:25:44 +03:00
fgsfds
89974e786d
eu: check if language value is correct
2020-06-23 04:10:38 +03:00
fgsfds
613a23e5e3
I am a dumb fuck
...
where the fuck are these LANG_ defines from, winapi?
2020-06-23 03:38:04 +03:00
fgsfds
1ba31e1266
fix discordrpc in EU
2020-06-23 02:58:39 +03:00
fgsfds
cb9bd73866
reenable puppycam after level change
2020-06-21 20:42:02 +03:00
fgsfds
7eb65238f6
rename save folder to sm64ex; copy saves from old folder
2020-06-21 20:18:46 +03:00
fgsfds
52e32ba763
properly merge refresh 10.1's audio code
...
this fixes crashes on EU, there is now audio output but it's still borked
2020-06-21 02:23:03 +03:00
fgsfds
d48db1d9c6
add missing texture indicator
2020-06-20 18:13:10 +03:00
fgsfds
59cbe0ab70
update puppycam; add runtime option to disable it
2020-06-20 17:22:33 +03:00
fgsfds
fe44da4794
fix GRUCODE defines
2020-06-20 04:32:12 +03:00
n64
4a448cf10d
merge refresh 10
2020-06-20 02:49:59 +03:00
Pouar
44f9b92124
Bugfix
...
The bullets snufit shoots immediately got deleted shortly after
shooting when NODRAWDISTANCE was enabled. This fixes it
2020-06-18 19:34:57 -05:00
fgsfds
34af21bad4
premultiply volume scales by master volume
...
instead of scaling the output
2020-06-18 02:20:32 +03:00
fgsfds
29e915e4df
fix JP build
2020-06-17 05:18:05 +03:00
fgsfds
7526a998cb
'filter' is a reserved keyword in GLSL
...
but only Intel drivers get pissed at this
2020-06-17 04:40:14 +03:00
fgsfds
5abf1baf6a
controller_sdl: init haptics separately in case it's not available
2020-06-17 03:11:50 +03:00
fgsfds
2e989e4831
properly scale sound volumes instead of abusing fadeVolume
2020-06-15 00:20:23 +03:00
fgsfds
91f50a4089
remove stray spaces
2020-06-14 23:29:34 +03:00
fgsfds
b1b3fef112
Merge pull request #329 from KiritoDv/nightly
...
Music Volume Config
2020-06-14 23:27:06 +03:00
fgsfds
fd05cd3adb
don't use small resource alignment for large textures
...
thanks to Emil for this one
see https://docs.microsoft.com/en-us/windows/win32/api/d3d12/ns-d3d12-d3d12_resource_desc#alignment for an explanation
2020-06-13 22:54:33 +03:00
NoHomoBoi
b15bd727c2
Added sfx and env volume settings
2020-06-13 02:16:00 -05:00
fgsfds
208bfdcbf3
move all the discordrpc stuff to pc_main.c
...
that means it will now work in D3D11 and D3D12
also 'normalized' the sdl2 main loop
2020-06-13 04:21:47 +03:00
fgsfds
eed923e442
sdl2: fix window position saving and alt-enter
2020-06-13 00:51:37 +03:00
NoHomoBoi
7c341334f0
Code cleanup & changed max volume to 127
2020-06-12 03:22:08 -05:00
NoHomoBoi
56c6590bf3
Fixed config indentation
2020-06-12 00:56:51 -05:00
NoHomoBoi
66923e05af
Changed configfile variable value
...
*Changed from configMasterVolume to configMusicVolume
2020-06-12 00:55:21 -05:00
NoHomoBoi
a632ee21ff
Changed configfile variable name
...
*Changed from music_enabled to music_volume
2020-06-12 00:53:40 -05:00
NoHomoBoi
2fa7e4f4ba
Merge branch 'nightly' of https://github.com/KiritoDv/sm64pc into nightly
2020-06-11 22:40:55 -05:00
NoHomoBoi
49dc1e3495
Added music volume config
2020-06-11 22:39:13 -05:00
fgsfds
aa5dfaa7c2
'properly' disable noise effect scaling
2020-06-12 00:23:47 +03:00
fgsfds
36bdb54d5e
remove precision specifiers from the three-point shader
...
gives better compatibility on desktop GL
probably shouldn't be used on GLES anyway
2020-06-11 22:24:46 +03:00
fgsfds
8788cfa3ad
d3d11 renderer now uses the configWindow values
...
d3d12 renderer still doesn't because I can't test it
2020-06-11 22:24:46 +03:00
fgsfds
3557e895fe
add apply button to display settings
2020-06-11 22:24:46 +03:00
fgsfds
3dff608c7b
add D3D12 headers because they're missing in mingw
2020-06-11 22:24:46 +03:00
fgsfds
383983ef9d
form window title in pc_main; show correct RAPI in it
2020-06-11 22:24:46 +03:00
fgsfds
a81a8e6ef1
added D3D11 and D3D12 renderers from Emil/n64-fast3d-engine
...
along with options to select backends for windowing, rendering, audio and controls in the Makefile
use RENDER_API=D3D11 or D3D12 for the D3D renderers, that will also automatically enable using DXGI for windowing; SDL2 will still be used for input and audio for the time being
also adds three-point filtering to the OpenGL backend and an option for it in the menu
2020-06-11 22:24:46 +03:00
fgsfds
ca4986e82d
fix GLEW include on OSX
2020-06-10 04:16:46 +03:00
fgsfds
457189bb13
use SDL_opengles2.h only when USE_GLES is defined
2020-06-10 01:01:34 +03:00
fgsfds
fca5ed8846
don't scale the noise to 240 height
2020-06-10 01:00:20 +03:00
fgsfds
33b4bd7f8d
don't use the noise shader on GLES
2020-06-10 00:58:44 +03:00
fgsfds
735d032bdd
use #version 120 on desktop GL
2020-06-10 00:56:10 +03:00
MaikelChan
fbbb3cba5c
Implemented noise effects in OpenGL. ( #6 )
2020-06-10 00:30:59 +03:00
fgsfds
8d05d2b7e2
check GL version in the GL2.1 backend; check GLEW errors
2020-06-09 23:28:26 +03:00
fgsfds
01e6061276
clean up discord rpc a bit
2020-06-09 20:46:26 +03:00
fgsfds
dc17d19cd1
use snprintf() instead of itoa()
2020-06-09 20:26:00 +03:00
fgsfds
c04c315410
move the discord-rpc libs to lib/
2020-06-09 20:19:22 +03:00
Jan200101
80e674cc21
remove explicit dereference
2020-06-09 19:02:00 +02:00
Jan
233c2d8f72
Merge branch 'nightly' into feature/discordrpc
2020-06-09 17:16:42 +02:00
Jan200101
5933742f82
replace static linking with dynamically loaded libraries
2020-06-09 17:15:49 +02:00
Jan200101
f1ba90d25b
add discord rpc support
2020-06-09 12:01:31 +02:00
fgsfds
326f8ed071
properly check for basepacks
2020-06-08 08:49:06 +03:00
fgsfds
ef5eab2263
fix sys_file_extension for folders that start with dot
2020-06-08 07:45:22 +03:00
fgsfds
585c24a282
updated usage text
2020-06-08 06:38:41 +03:00
fgsfds
51651d52d0
restore --savepath and replace --datapath with --gamedir
2020-06-07 23:54:39 +03:00
fgsfds
0bf5a192f4
fix sys_fatal() warnings in gfx
2020-06-07 22:00:49 +03:00
fgsfds
b9c94ad57d
fix text saves
2020-06-07 22:00:23 +03:00
fgsfds
4feacc0065
add virtual filesystem thing w/ ZIP support
...
similar to Quake 3: all the archives and folders get mounted to the same mountpoint in the VFS, read access to files in the VFS is transparent
2020-06-07 21:06:25 +03:00