40 Commits
Author SHA1 Message Date
Isaac0-dev 5130456108 massive performance improvements for add_scroll_target (#1219)
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
Beckowl 5da07963ef Fix inconsistent mapping between sSm64CharMap and str_ascii_to_dialog (#892)
This fixes inconsistent mappings between `sSm64CharMap` and `str_ascii_to_dialog` (used in `smlua_text_utils_dialog_replace`) to make the `text` field of `dialogEntry` consistent

`str_ascii_to_dialog` now also has mappings for the interpunct (`•`) and the double opening (`<<`) and closing (`>>`) quotes, which were missing before.
2025-07-29 11:53:53 +10:00
Isaac0-dev a423014194 fix scrolling textures again
now that only vanilla vertices are duplicated
2025-04-17 11:49:04 +10:00
Isaac0-dev db37bb9bd1 free stuff 2025-04-02 12:42:14 +10:00
Isaac0-dev a88461f0c3 fix scrolling textures simply not scrolling
this was caused by the duplicated vertices commit
2025-04-02 11:42:24 +10:00
Isaac0-dev 591d4099ca use a hmap for scroll targets 2024-11-30 15:34:25 +10:00
Isaac0-dev 862fb8dcf1 allowed add_scroll_target to use behavior parameters for offset and size (#20) 2024-05-08 22:12:55 +10:00
MysterD bc0ad48d68 Fixed several crashes and errors found in static analysis 2023-05-15 01:15:20 -07:00
MysterD 52db517f61 Load all models into dynamic memory, and store them in a way for reuse 2023-05-12 16:15:35 -07:00
MysterD bdb751e97a WIP: start making memory management better 2023-05-12 13:19:10 -07:00
wRadion 2c5c7e4cd9 Scrolling textures (continued) (#175)
* Handle scroll targets as dynamic array + some error handling

* Remove the need to call init (clean automatically scroll targets)

* Free iteratively instead of recursive

* Added comments + handled some potential errors

* Completed comments

* Remove debug print
2022-09-12 19:57:28 -07:00
wRadion c8f9f87e8b Handle RM_Scroll_Texture and editor_Scroll_Texture behaviors from RM2C hacks (#173) 2022-08-25 17:46:33 -07:00
MysterD 2abc5915d7 Automatically disable billboards when a DynOS model uses more than 6 vertices 2022-04-23 03:05:16 -07:00
Prince Frizzy 22354191c0 Merge in small changes. (#63) 2022-04-16 19:12:12 -07:00
MysterD a05032116e Refactored actor geos in DynOS 2022-04-08 18:56:22 -07:00
MysterD ddaf578ea0 Split dynos_misc stuff into mgr files 2022-04-08 08:18:06 -07:00
MysterD be19f2b9de Renaming cleanup 2022-04-08 01:52:53 -07:00
MysterD 2c66cbf78e Function pointer cleanup 2022-04-08 01:46:29 -07:00
MysterD 9f952f5f05 Added support for SM76's JUMP_AREA, added missing lvl geos, reordered parsing 2022-04-07 18:34:44 -07:00
MysterD 824b5bcbc4 Fixed token corruption in DynOS, added support for runtime LOAD_MODEL_FROM_GEO 2022-04-07 08:21:19 -07:00
MysterD 877203a4e6 Only force in movtexs and collisions within that levels subfolders 2022-04-06 22:14:40 -07:00
MysterD 0fa41b0769 Refactored how vanilla data is stored/retrieved within DynOS 2022-04-06 21:32:55 -07:00
MysterD 3b8b8b366e Merge branch 'level-scripts' of github.com:sm64ex-coop-dev/sm64ex-coop into level-scripts 2022-04-05 23:00:20 -07:00
MysterD b8be483f8e Added support for custom skyboxes in DynOS level gen 2022-04-05 22:56:03 -07:00
Prince Frizzy 189b15775f Add support for dynamic water regions. (#55)
* Add support for dynamic water regions.
2022-04-05 13:44:05 -07:00
MysterD 2010bff29c Fixed how DynOS writes lua variables into level scripts, added all level geos 2022-04-05 00:22:09 -07:00
MysterD da4b7039ed Added Light_t, Ambient_t, and began adding vanilla lvl geos to DynOS level gen 2022-04-04 21:25:40 -07:00
MysterD d7b9b43c5a Added ability for DynOS levels to call into lua for custom objects 2022-04-04 18:16:36 -07:00
MysterD f123813504 All vanilla levels can be compiled through DynOS now 2022-04-04 01:11:02 -07:00
MysterD 9bb74b3f8f Fixed custom level textures 2022-04-02 15:32:21 -07:00
MysterD 5c30f22de4 More progress toward custom DynOS levels 2022-04-02 15:14:04 -07:00
MysterD a27bbce90d More DynOS refactoring 2022-04-01 20:04:24 -07:00
MysterD 75847b5d2b Refactor coop-specific DynOS code 2022-03-30 23:05:53 -07:00
MysterD 987642256c Add custom collisions to DynOS/Lua 2022-03-28 01:02:33 -07:00
MysterD a1d38e8393 Allow people to disabled downloaded models (from mods) 2022-03-16 22:43:43 -07:00
MysterD 041ac70b9b Allow lua mods to override models, have DynOS generate bins 2022-03-16 21:26:29 -07:00
MysterD 1dd37f07bb Fixed custom lua models 2022-03-16 19:57:45 -07:00
MysterD eae2ea26bc Load Super Keeberghrh's ERROR model when DynOS can't find the model 2022-03-16 01:34:18 -07:00
MysterD f07920d2ac Added ability for mods to load custom geos 2022-03-14 00:11:36 -07:00
MysterD bbbea80aae Added DynOS v1.1 without the dynamic options
- Added support for coop-specific actors
- Added support for coop-specific geo functions
- Added support for coop-specific model functions
2022-03-09 18:01:03 -08:00