Commit graph

5060 commits

Author SHA1 Message Date
Agent X
b291567e84 Merge branch 'dev' into screen-shader-effects 2026-05-09 21:46:25 -04:00
Agent X
388536b385
Unify renderers into one build, add renderer selectionbox (#1218)
Some checks are pending
Build coop / build-linux (push) Waiting to run
Build coop / build-steamos (push) Waiting to run
Build coop / build-windows (push) Waiting to run
Build coop / build-macos-arm (push) Waiting to run
Build coop / build-macos-intel (push) Waiting to run
* Unify renderers into one build, no more segregation

* Fix Linux compilation error

* How does one miss this

* Rename this

* Fix silly naming error that I missed

* Update Russian translation
2026-05-09 19:46:29 -04:00
Agent X
f2c5b4eb13 Implement the HOOK_ON_HUD_RENDER_BEHIND fix ON THE RIGHT BRANCH 2026-05-09 16:45:31 -04:00
Agent X
63f0067f3b Add new built-in mod categories 2026-05-09 15:03:31 -04:00
Agent X
6a099714d3 Set mario health to 1 instead of 8 with anti softlock measure 2026-05-09 14:21:24 -04:00
Agent X
2d65cbfa1a Fix wrong angle direction on first person cam c button turning always 2026-05-09 11:28:54 -04:00
Isaac0-dev
ec28e164db
optimised loading the mod cache (#1222)
Some checks are pending
Build coop / build-linux (push) Waiting to run
Build coop / build-steamos (push) Waiting to run
Build coop / build-windows-opengl (push) Waiting to run
Build coop / build-windows-directx (push) Waiting to run
Build coop / build-macos-arm (push) Waiting to run
Build coop / build-macos-intel (push) Waiting to run
* use hashmaps in mod cache

* use templates, suggested by peachy

an attempt to do what peachy is talking about

* that looks unusual

* change data to key parameter
2026-05-09 11:13:08 -04:00
Isaac0-dev
1e4ede799b
massive performance improvements for add_scroll_target (#1219)
Some checks are pending
Build coop / build-linux (push) Waiting to run
Build coop / build-steamos (push) Waiting to run
Build coop / build-windows-opengl (push) Waiting to run
Build coop / build-windows-directx (push) Waiting to run
Build coop / build-macos-arm (push) Waiting to run
Build coop / build-macos-intel (push) Waiting to run
Loading the scroll targets was probably the slowest parts to loading a romhack.
The reason for this is that many romhacks can have thousands of calls to `add_scroll_target`.
So, for 4,107 calls to `add_scroll_target`, the time went from ~4.5759 seconds to ~0.0173 seconds in total. 
Changes made:
- Previously, simply finding the material data to scroll was rather slow due to using a linear sub string search across all vertices in all levels. To speed this up, I added a cache.
The cache bypasses checking every level by storing the exact string (rather than the substring) in a hashmap, so lookups become a simple case of a string lookup as a key in the map. It falls back to the full lookup if the cache doesn't hit.
- Changed the vertex buffer management in `scroll_targets.c` to behave closer to a modern dynamic array, where buffer size is doubled each time a new vertex buffer is added, to reduce the number of allocations performed.
2026-05-08 20:57:06 +10:00
Emily♥
149cb10153
Fix sync valid packet issues for the server (#1228)
Some checks are pending
Build coop / build-linux (push) Waiting to run
Build coop / build-steamos (push) Waiting to run
Build coop / build-windows-opengl (push) Waiting to run
Build coop / build-windows-directx (push) Waiting to run
Build coop / build-macos-arm (push) Waiting to run
Build coop / build-macos-intel (push) Waiting to run
* Fix erroneous sync valid packets

When the server received a sync valid packet from another player, it would also set the server player's level. This simple fix makes this no longer happen.

* Fix sync valid packets with host

Okay, so it turns out that the host was unable to differentiate between packets meant to validate other players, and packets meant to validate itself (sent when entering a level another player is already in). I changed so that the packet also includes who the sync packet is validating. Requires an additional byte, as well as adding an argument to network_send_sync_valid.

* Don't have server inform itself

Fixes HOOK_ON_SYNC_VALID being called twice
2026-05-07 11:23:57 -04:00
Agent X
50d14eaa21 Fix shader crash 2026-05-06 22:36:31 -04:00
Agent X
3886c1181e Day Night Cycle DX v2.5.2
Some checks are pending
Build coop / build-linux (push) Waiting to run
Build coop / build-steamos (push) Waiting to run
Build coop / build-windows-opengl (push) Waiting to run
Build coop / build-windows-directx (push) Waiting to run
Build coop / build-macos-arm (push) Waiting to run
Build coop / build-macos-intel (push) Waiting to run
2026-05-06 16:02:24 -04:00
PeachyPeach
07c229afdc
Fix rendering issues with held objects (#1221)
Some checks failed
Build coop / build-linux (push) Has been cancelled
Build coop / build-steamos (push) Has been cancelled
Build coop / build-windows-opengl (push) Has been cancelled
Build coop / build-windows-directx (push) Has been cancelled
Build coop / build-macos-arm (push) Has been cancelled
Build coop / build-macos-intel (push) Has been cancelled
Add a way to save and load a gfx state in display lists.
Its primary purpose is to save the gfx state before rendering a held object, then restore it later.
It fixes the issue where Mario had opaque legs with the vanish and metal caps when holding an object.
2026-05-06 07:10:59 +10:00
Agent X
840db50ed0 Merge branch 'dev' into screen-shader-effects 2026-05-04 23:41:48 -04:00
Agent X
b37b2bf29f Prevent HOOK_ON_HUD_RENDER_BEHIND from being halted
Some checks are pending
Build coop / build-linux (push) Waiting to run
Build coop / build-steamos (push) Waiting to run
Build coop / build-windows-opengl (push) Waiting to run
Build coop / build-windows-directx (push) Waiting to run
Build coop / build-macos-arm (push) Waiting to run
Build coop / build-macos-intel (push) Waiting to run
2026-05-04 23:41:07 -04:00
EmeraldLockdown
82a3afcc0f
Add HOOK_ON_PLAY_MODE_UPDATE and HOOK_BEFORE_PLAY_MODE_UPDATE (#1160)
* Add playmode hooks

* Add hook to docs, fix some crashes semi-related

* Rename that func
2026-05-04 21:01:01 -04:00
Isaac0-dev
ed4a0e12c0
Add Community section with Discord link
Some checks are pending
Build coop / build-linux (push) Waiting to run
Build coop / build-steamos (push) Waiting to run
Build coop / build-windows-opengl (push) Waiting to run
Build coop / build-windows-directx (push) Waiting to run
Build coop / build-macos-arm (push) Waiting to run
Build coop / build-macos-intel (push) Waiting to run
2026-05-05 09:35:01 +10:00
DorfDork
f688416483
Scale bone anim support (#1215)
* Scale bone anim support

Code changes provided by ExcellentGamer. Supports model anims which modify scale.

* Peachy code changes by ExcellentGamer

* Autogen constants

* changed vc3f_set to vec3f_copy
2026-05-05 00:15:00 +02:00
Isaac0-dev
95782f447c dynos_mgr_actor.cpp clean up
Some checks are pending
Build coop / build-linux (push) Waiting to run
Build coop / build-steamos (push) Waiting to run
Build coop / build-windows-opengl (push) Waiting to run
Build coop / build-windows-directx (push) Waiting to run
Build coop / build-macos-arm (push) Waiting to run
Build coop / build-macos-intel (push) Waiting to run
mostly cosmetic.
2026-05-04 22:33:37 +10:00
Agent X
29da1ba219 Update function names 2026-05-03 20:26:32 -04:00
Agent X
5b5b9101f8 Merge branch 'dev' into screen-shader-effects 2026-05-03 19:10:39 -04:00
jayden
5dabcaa313
Add audio_stream_get/set_volume_channel (#1205)
Some checks are pending
Build coop / build-linux (push) Waiting to run
Build coop / build-steamos (push) Waiting to run
Build coop / build-windows-opengl (push) Waiting to run
Build coop / build-windows-directx (push) Waiting to run
Build coop / build-macos-arm (push) Waiting to run
Build coop / build-macos-intel (push) Waiting to run
Allows modders to play audio streams on channels other than level background music.
4 constants have been added for this purpose:
- `MOD_AUDIO_CHANNEL_MASTER` - sound is only affected by master volume
- `MOD_AUDIO_CHANNEL_MUSIC` - sound is affected by music volume, same as previous behaviour
- `MOD_AUDIO_CHANNEL_SFX` - sound is affected by sfx volume, same as sample behaviour
- `MOD_AUDIO_CHANNEL_ENV` - sound is affected by env volume 
This was done instead of using the existing `SEQ_PLAYER_*` constants to avoid confusion and because there isn't a `NONE`/`MASTER` option.

Additionally, sets the default to `MOD_AUDIO_CHANNEL_MUSIC` as to not break compatibility.

```lua
audio_stream_set_volume_channel(stream, MOD_AUDIO_CHANNEL_SFX) -- wow its just like a sample
audio_stream_get_volume_channel(stream) -- returns MOD_AUDIO_CHANNEL_SFX (its actually 2)
```
2026-05-03 17:59:11 +10:00
Agent X
8afdcda1d1 Address review 2026-05-02 21:43:49 -04:00
Agent X
03d113567a
Whoops 2026-05-02 18:05:21 -04:00
Agent X
b2e30a4d0d
Hopefully fix white sparkles 2026-05-02 18:00:58 -04:00
Isaac0-dev
de7ad4b0d6
memory.c cleanup and optimisation (#1157)
Some checks are pending
Build coop / build-linux (push) Waiting to run
Build coop / build-steamos (push) Waiting to run
Build coop / build-windows-opengl (push) Waiting to run
Build coop / build-windows-directx (push) Waiting to run
Build coop / build-macos-arm (push) Waiting to run
Build coop / build-macos-intel (push) Waiting to run
## Low hanging fruit optimisations for the memory data structures in `memory.c`
Mostly generic performance improvements:
- Swapping `calloc` calls for `malloc` calls where it's safe
- Combined allocations into one large allocation for `node + buffer`
- Using `realloc` instead of full `calloc` + `memcpy` + `free`.
2026-05-03 07:52:42 +10:00
Agent X
e7dcfb6f54
Merge branch 'dev' into screen-shader-effects 2026-05-02 16:39:01 -04:00
Agent X
8796f2abd7 Fix some default values 2026-05-02 16:37:22 -04:00
Agent X
594cb4cc33 Merge branch 'dev' into screen-shader-effects 2026-05-02 15:31:52 -04:00
djoslin0
e88bd178fc
Refactor collision surface systems and add the ability to add/remove/move surfaces (#1143)
- Add `smlua_collision_add_surface`, `_move_surface`, `_delete_surface` Lua APIs
- Add `remove_static_object_collision` to fully free a SOC and its surfaces
- Split surface pools into separate static, SOC, and dynamic pools
- Replace index-based SOC tracking with unique ID counter (`sSOCIdCounter`)
- Invalidate Lua CObjects for recycled surfaces on pool clear
- Expose `SURFACE_POOL_STATIC/DYNAMIC/SOC` constants to Lua
- Add `growing_array_swap_and_pop` and `growing_array_swap_and_pop_index` to memory utils

Co-authored-by: MysterD <myster@d>
2026-05-02 14:58:46 -04:00
PeachyPeachSM64
629b97a789 Hide deprecated fields
Some checks are pending
Build coop / build-linux (push) Waiting to run
Build coop / build-steamos (push) Waiting to run
Build coop / build-windows-opengl (push) Waiting to run
Build coop / build-windows-directx (push) Waiting to run
Build coop / build-macos-arm (push) Waiting to run
Build coop / build-macos-intel (push) Waiting to run
2026-05-02 13:38:15 +02:00
PeachyPeachSM64
b4ce78e6d6 Run autogen 2026-05-02 12:44:36 +02:00
Cooliokid956
3459e7fa83
Fix ModAudio.file.relativePath virtually (#1214)
Some checks are pending
Build coop / build-linux (push) Waiting to run
Build coop / build-steamos (push) Waiting to run
Build coop / build-windows-opengl (push) Waiting to run
Build coop / build-windows-directx (push) Waiting to run
Build coop / build-macos-arm (push) Waiting to run
Build coop / build-macos-intel (push) Waiting to run
Applied a compatibility band-aid for `ModAudio.file.relativePath` using unions and properties. The only real thing here is the new hidden `return_self` function I had to make for this to work

unction
2026-05-02 00:35:27 -04:00
EmeraldLockdown
b4b31bdb0c
Multiple dx11 fixes (#1213)
* This is an awful workflow. Probably still need to update dx11 program ver

* Yea, going to despise this workflow

* Whoops

* Weewoo

* Fix comp error

* Bump dx11 ver due to it having an extremely limited number of inputs
2026-05-01 22:46:15 -04:00
EmeraldLockdown
37f4b2e550
Expose gHudDisplay (#1158)
* Expose `gHudDisplay`

* Fix that
2026-05-01 22:25:06 -04:00
Cooliokid956
1d9de02af1
CObject Properties (#1068)
* CObject Properties

- Added property members to CObjects via `PROPERTY` macro
`PROPERTY(name, get, set)`
  - `name`: property name
  - `get`: `fun(self): value`
  - `set`: `fun(self, value)`
- Prettified `LuaObjectField` struct with unions for function/property value types
- Added properties to `struct ModAudio`
  - `position`
  - `looping`
  - `frequency`
  - `volume`
    - NOTE: only work with streams- the audio reform will come later

* Define array size only when necessary

- new `__pairs` metamethod for `CObject`s, cycles through all of an object's fields, in alphabetical order
- stray semicolon!
2026-05-01 22:12:51 -04:00
Cooliokid956
d973faffed
Add version info (Windows) + Smart update checker (#1069)
* Add version info (Windows) + Smart update checker

* patch autogen, remove prints

* Fix special case (min=0,fix=!0)

* Not that obvious!!

* Still too obvious... last one

* the djoslin0 review

* Nuked
2026-05-01 22:05:42 -04:00
Squishy
0d95dfde11
Add independent X and Y scaling to text rendering functions (#1182)
* djui scale cool awesome

* fix autogen

* stop unnecessary yellow underlines

* Fix accidental bind removal
2026-05-01 21:17:44 -04:00
Emeraldsniper
0e2ba340fc
Control the Lighting Engine with le_set_enabled in real time (#1193)
* Control the Lighting Engine with le_disable and le_enable in real time

(FORK REDO FOR PR)

* I hate it when I typo

* Control the Lighting Engine in real time with le_set_active (new change)

* Changed to le_set_enabled to be better in line with functions
2026-05-01 21:15:09 -04:00
Agent X
675c71e00d v1.5 2026-05-01 21:01:14 -04:00
PeachyPeachSM64
58a6b7e019 Remove dead code in custom geo and bhv functions
Some checks are pending
Build coop / build-linux (push) Waiting to run
Build coop / build-steamos (push) Waiting to run
Build coop / build-windows-opengl (push) Waiting to run
Build coop / build-windows-directx (push) Waiting to run
Build coop / build-macos-arm (push) Waiting to run
Build coop / build-macos-intel (push) Waiting to run
- Custom geo asm and custom behaviors were meant to use any non-local
  function from any active mod, but the condition for it was always
  false (gSmLuaConvertSuccess is never set to false and funcRef is not
  checked)
- By default, they should NOT be able to retrieve anything from other mods
- Even without this condition, they are still allowed to use any
  function exposed to _G

Approved by Isaac.
2026-05-01 12:51:36 +02:00
Blockyyy
793196d581
add stayInLevelAfterStar constants (#1210)
Some checks failed
Build coop / build-linux (push) Has been cancelled
Build coop / build-steamos (push) Has been cancelled
Build coop / build-windows-opengl (push) Has been cancelled
Build coop / build-windows-directx (push) Has been cancelled
Build coop / build-macos-arm (push) Has been cancelled
Build coop / build-macos-intel (push) Has been cancelled
2026-04-30 12:24:57 +10:00
denpakei
a87e67d7ac
more font adjustments (#1211)
cyrillic letters in font_normal adjusted by @idiotforge, in font_hud adjusted by @xLuigiGamerx

in the recolorable hud font, i fixed some things i missed last time
2026-04-29 21:21:27 -04:00
EmeraldLockdown
8edcc86049
Fix crash when CG was loaded in main menu related to Yoshi (#1206)
Some checks failed
Build coop / build-linux (push) Has been cancelled
Build coop / build-steamos (push) Has been cancelled
Build coop / build-windows-opengl (push) Has been cancelled
Build coop / build-windows-directx (push) Has been cancelled
Build coop / build-macos-arm (push) Has been cancelled
Build coop / build-macos-intel (push) Has been cancelled
* Fix crash when CG was loaded in main menu

* Remove now unecessary check

* This *should* undo this

* Let's try that again!

* Remove leftover code
2026-04-24 18:05:57 +02:00
Agent X
f10e3062d8 Change 0.85x DJUI scale to 0.75x
Some checks failed
Build coop / build-linux (push) Has been cancelled
Build coop / build-steamos (push) Has been cancelled
Build coop / build-windows-opengl (push) Has been cancelled
Build coop / build-windows-directx (push) Has been cancelled
Build coop / build-macos-arm (push) Has been cancelled
Build coop / build-macos-intel (push) Has been cancelled
2026-04-22 18:18:42 -04:00
Agent X
668c1678ad Revert "Add scroll support to DJUI menus (#1173)"
This reverts commit f76f8d3c08.
2026-04-22 18:15:32 -04:00
iZePlayz
9b021f9ba0
Fixed Tab-Completion for the "psc" command (#1174)
Some checks are pending
Build coop / build-linux (push) Waiting to run
Build coop / build-steamos (push) Waiting to run
Build coop / build-windows-opengl (push) Waiting to run
Build coop / build-windows-directx (push) Waiting to run
Build coop / build-macos-arm (push) Waiting to run
Build coop / build-macos-intel (push) Waiting to run
2026-04-22 11:31:25 -04:00
Leonardo Manrique
a6b24865fa
Fix syntax error in _clock_gettime POSIX fallback (#1204)
Some checks are pending
Build coop / build-linux (push) Waiting to run
Build coop / build-steamos (push) Waiting to run
Build coop / build-windows-opengl (push) Waiting to run
Build coop / build-windows-directx (push) Waiting to run
Build coop / build-macos-arm (push) Waiting to run
Build coop / build-macos-intel (push) Waiting to run
Remove stray `)` after the fallback clock_gettime() call in the _POSIX_MONOTONIC_CLOCK == 0 branch.
2026-04-22 16:41:51 +10:00
Cooliokid956
b05b929fa4
Upgrade miniaudio: v0.11.21 -> v0.11.25 (#1065)
* Upgraded miniaudio: `v0.11.21` -> `v0.11.23`

Benefits:
- Read changelogs (lots of bug fixes!)
  - [0.11.22](https://github.com/mackron/miniaudio/releases/tag/0.11.22)
  - [0.11.23](https://github.com/mackron/miniaudio/releases/tag/0.11.23)
- Split files means shorter compile times for dependent files

* Upgraded miniaudio again: `v0.11.23` -> `v0.11.25`

Read changelogs (lots of bug fixes!)
- [0.11.24](https://github.com/mackron/miniaudio/releases/tag/0.11.24)
- [0.11.25](https://github.com/mackron/miniaudio/releases/tag/0.11.25)
2026-04-21 23:43:02 -04:00
Agent X
6919878b40
Introduce this new pack in a more proper reviewable manner (#1192)
* Introduce this new pack in a more proper reviewable manner

Ideally I should have made a PR for my new pack and I understand the new geo function may have come out of no where. I've been thinking about adding it for a while and was going to utilize it in a new project I'm working on but I should have explained it first before pushing anything for sure

* Address suggestions

* Restore these, whoops
2026-04-21 23:41:44 -04:00
EmeraldLockdown
638a242763
Mark all unused variables as unused, resolve other warnings (#1147)
* Mark all unused variables as unused, resolve some unsafe code, some things still need to be looked at

* Remove a lot of unused variables that didn't need to exisat

* Remove UNUSED keyword from appartion values

---------

Co-authored-by: Agent X <44549182+AgentXLP@users.noreply.github.com>
2026-04-21 23:40:24 -04:00