View a summary of what's new in 2.55.
Bug Fixes
- correct the version string for 2.55.x releases
387e6c05c
- incorrect default right string margin
ae1c890e7
Player
- visual text bug in sound panel
32a169b2f
- active shields interacting with light beams while inactive
7e52830f0
- reset playing_field_offset at beginning of scroll
5e1f431eb
This prevents the draw offset from a quake from persisting during a scroll.
See https://discord.com/channels/876899628556091432/1238226802867048529
Editor
- "Used Tiles" completely failing to calculate
4066823d5
ZScript
- TraceS parameter not compiling correctly
2761eb50b
- handle engine subscreen in ScriptTypeToString
150aafa9f
- dealloc owned objects for all combos in loadscr
e9438011a
For some reason, only the combo at position 0 had its owned objects deallocated when loading a new screen. Now they all do.
Documentation
Editor
- touch up attack/whimsical ring help text ('damage' -> 'power')
9879b835f
Refactors
Player
- rename the "ZScript Debugger" to "ZC Console"
719738e74
ZScript
- remove ZASM debugger
b3b79f66e
This was already made inaccessible from the GUI in 1da2d02, but now it is removed entirely. Work on a real debugger will begin soon.
- tweak
Region->
and screen script internals in preparation for z3e02113363
Region->OriginScreen
is now of typescreendata
, andRegion->OriginScreenIndex
is added to return just the screen index.Similar change made to
Region->GetScreenForComoboPos(int pos)
. - use faster register allocation in jit
c6da3fe63
asmjit's register allocation was using a bin-packing algorithm. This turns out to be very slow for the assembly that our jit compiler emits, since the vast majority of variables exist for only a single basic block. Instead of bin-packing, the much faster and simpler linear scan register allocation algorithm is now used.
For a very large 200k-instruction script, compilation went from 19.5s to 2.8s (a 85% decrease).
With this improvement, the 20k-instruction limit for jit has been removed. One example of the impact of this is that
yuurand.zplay
, which the jit compiler was previously mostly disabled for since most of its scripts are huge, now has all its scripts compiled. This increased the average FPS foryuurand.zplay
from ~320 to ~2000, while still reducing the total time spent compiling.Theoretically this change in register allocation may produce slower runtime code, but there was no drop in FPS realized in the
maths.zs
stress test.
Tests
- add eiyuu.zplay
b119635bb