Commit graph

77 commits

Author SHA1 Message Date
Agent X
4277230f20
Show players on star select toggle (#321)
* Show players on star select toggle

* Make only toggleable by mods

* Allow player list to also be disabled
2023-03-23 21:12:26 -04:00
Agent X
4fd13c6bda
Bug fixes for mostly the title screen (#308)
- Add NULL checks to DynOS warps
- Change checks for skipping interpolation on the original title screen for much better ones
- Interactions are no longer processed if you are on the title screen
- Re-add some of the legacy demo code for the original title screen
- Fix disconnecting on the original title screen
- Fix disconnecting on the act select screen
- Fix interpolation crash
2023-03-18 17:14:01 -04:00
Isaac0-dev
bd2bd7c498
bring back vanilla demos (#221)
* Bring back the demos from vanilla

the demo will activate if you are on the level that demo was meant to be from, and the default amount of time has passed

* clean up a bit and check a few things

* reset the demo input table

* config option/prevent demos playing on player menu

* update demo playing

- keep playing level music after demo finishes
- stop the demo if the player changes main menu level
2023-03-03 01:47:03 -05:00
Agent X
85afeb6402
Expose title screen geo functions to DynOS (#246)
* Expose title screen level/geo stuff

* Move builtin defines
2022-12-17 19:28:19 +01:00
Agent-11
1dc9bc53ce Fix "join" being cut off on star select 2022-08-23 02:04:53 -04:00
MysterD
946f16329c Added ability to have completely custom levels that don't override anything 2022-06-05 21:55:31 -07:00
PeachyPeach
4fbafc2708
Fixed various audio bugs; DynOS can now detect texture duplicates to decrease generated bin files size (#110)
Fixed the following audio bugs:
    Bug: Rom-hacks sequences don't seem to be affected by volume scaling and
         muting
    Fix: Force the BGM sequences to follow the vanilla behavior:
        Volume can't go higher than default volume
        Volume is reduced to 31% when the game is paused
        Audio is stopped when the game is paused outside the Castle levels
    Bug: (Pointed out by Draco) Mario's voice clips are not replaced by the
         player's character's in the following instances: fall to death
         barrier, "here we go" in the ending cutscene, "let's a go"
         after selecting a star, "okey dokey" after starting the game.
    Fix: The first two ones now call
         play_character_sound(m, CHAR_SOUND_...) instead of
         play_sound(SOUND_MARIO_..., pos). The last two ones couldn't be
         fixed the same way for two reasons: First, the corresponding sounds
         were not referenced in the sound table, second, the sound played is
         always cut-off after a few frames (due to how sm64 resets the sound
         banks after loading a level).

Added SOUND_*_LETS_A_GO and SOUND_*_OKEY_DOKEY sounds for each playable
    character as Bass samples.
    Character Bass sounds work the same way as vanilla sounds (i.e. can be
    played with play_character_sound), but they cannot be prematurely stopped
    by sm64 sound banks shenanigans.
    This fixes the cut-off for both the star select and the castle grounds
    entry, plays the sound corresponding to the player's character, and doesn't
    need to extend or edit the sound table.

DynOS can detect texture duplicates when generating a bin or lvl file.
    When a duplicate is detected, the name of the original texture node is
    written instead of the whole PNG data, decreasing significantly the
    resulting file size.
2022-05-19 16:40:45 -07:00
MysterD
02ab54b3ad WIP: uncapped framerate 3 2022-04-27 18:25:43 -07:00
MysterD
cca8cdc860 WIP: uncapped framerate 2 2022-04-26 22:42:57 -07:00
MysterD
b5b9d509e8 Memory management improvements
Log errors on allocation failure
NULL check all display list allocations
Fix reading a freed string
2022-04-06 18:10:22 -07:00
MysterD
11f532b9e0 Fix warnings/compile errors on Linux 2022-03-13 18:45:42 -07:00
Prince Frizzy
75bb9b7912
Update to Refresh 13 (#19)
* Refresh 13

Co-authored-by: n64 <n64>
2022-03-13 00:17:10 -08:00
MysterD
1131fb02db Prevented SM64 hang on object count overflow 2022-02-22 01:10:17 -08:00
MysterD
69fb69dfce Fix bugs/warnings from static analysis 2022-02-20 20:04:25 -08:00
Prince Frizzy
32b0c91935
Fixes for Refresh 12 2022-02-19 01:39:38 -05:00
MysterD
265d23892b Fixed crash in star seleciton 2022-02-15 22:03:17 -08:00
MysterD
d7d26639a8 Prevented controllers from clearing, fixes movement animations 2021-08-29 14:57:40 -07:00
MysterD
7294e127f5 Fixed over 100 code warnings 2021-08-19 18:16:16 -07:00
MysterD
a2546055b2 Delay the display of the join text in star selection screen 2021-08-03 23:44:57 -07:00
MysterD
733217a07a Removed old custom menu system 2021-07-01 21:27:57 -07:00
MysterD
b4418bbd4f DJUI: Made inputbox usable
Added keyboard support to inputbox
Fixed how inputbox text is clipped
Added on_enter_press callback for inputbox
Added ability to set clipboard text
Adjusted how components can be focused, and when they lose focus
Erased most of the text input stuff in controller_keyboard
Disabled major parts of old chat system
Disabled major parts of old menu system
2021-07-01 20:03:54 -07:00
MysterD
8e52960cf7 Added indication of which players are in which acts 2021-06-14 19:11:26 -07:00
MysterD
361a57edb6 Instance levels based on which star was selected
Previously the levels were instanced based on "act" which is a concept
that is invisible and unintuitive to the user.
2021-06-14 18:25:24 -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
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
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
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
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
040aa92fd1 Prevent people from hosting a discord game when discord fails 2020-10-14 21:17:28 -07:00
MysterD
7bf2ebd7e8 Made version mismatch screen more descriptive 2020-10-11 18:26:10 -07:00
MysterD
c0a30c8de6 Establish new versioning system (beta 1) 2020-10-11 15:49:24 -07:00
MysterD
2fb2fc81e1 Add THI to supported levels 2020-10-08 23:38:43 -07:00
MysterD
e4c1640c56 Change disclaimer 2020-10-08 21:03:35 -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
9e2b28008b Add BITFS to supported levels 2020-10-03 00:21:47 -07:00
djoslin0
8d5d79809b
Merge pull request #67 from anzz1/patch-1
Custom menu improvements
2020-09-23 00:14:05 -07:00
MysterD
5c2673f5af Change main menu disclaimer 2020-09-22 22:09:05 -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
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
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
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
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
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