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