Entry 122
"Streams 7, 8 and 9's effect tasks: a transfer, hit marks and a turned feedback"
Filescrates/piney-stream/src/effect.rscrates/piney-stream/src/lib.rscrates/piney-desktop/src/noiz.rscrates/piney-data/src/anim.rscrates/piney-game/src/stream.rscrates/piney-stream/tests/effects.rstools/test_stream_rs.pydocs/engine/stream.md
This follows 121 with Func_str0150, Func_str0240 and
Func_str0250 (streams 7, 8 and 9).
The tasks
Func_str0150(stream 7).- Cue 899 fades to black over the frames left.
- Cue 500 is
effTransferStr: the arrival's rings (stream effect controller -2) at the note's object, for a character 160 high. - It also sets a fog and takes one object out of it. Fog is not drawn by the port.
- The port raises the transfer as
Request::Transferand does not draw it, as it does with the hit marks.
Func_str0240(stream 8).- Eight hit marks, one counter over cues 600-605, 610 and 611, each
taking the next row of
hitRot0240. - The table has seven rows. The eighth mark reads the string "OBJ_trall" that follows it as degrees. The port reads the same eight rows from the executable, so its eighth rotation matches the game's.
- Eight hit marks, one counter over cues 600-605, 610 and 611, each
taking the next row of
Func_str0250(stream 9).- A hit mark.
- Fades from white on the 900s, and to white at the end.
- Feedbacks: plain; ready to fade over 15 frames; and turned.
- The noise and the inversion.
The turned feedback
SetReflex(scale, roll, colour) keeps a turn at +0x0c. Every earlier
task passed 0. MakePacket turns its matrix with sceVu0RotMatrixZ
before setting the translation, so the picture turns about the view's
centre.
piney_desktop::noiz::Samplingnow hasroll.piney_data::anim::rot_z_bits_ofis the EE-exactRotMatrixZ, whichrot_bits_ofnow uses for its first step.- Stream 9's cues 910-930 turn the picture by 0.00697 radians.
The harness
- The task's end.
Func_str0150never looks at the scene's state. It leaves only when the next scene'sccSetStreamDemoThreadsetsparam[1], and afterccDeleteThreadit breathes forever. The harness now setsparam[1]at the end as well, and treatsccDeleteThreadas the end of the run: the hook raises and the call stops. - The packets. Their work comes from an arena emptied after each pass's lists are decoded. Stream 7's 2,200 frames had run the heap out.
- Regenerated fixtures. With these changes every earlier fixture comes out the same except for the new header line.
Checked
crates/piney-stream/tests/effects.rsplays streams 7, 8 and 9 against the game's tasks. Every pass matches by hash, as dorandafter it and each mark's and transfer's object and bits:- stream 7: 2,203 passes, 32 primitives;
- stream 8: 1,583 passes, 82 primitives, 8 marks;
- stream 9: 3,563 passes, 4,586 primitives.
- The workspace's tests, clippy and fmt pass. The field menu's noise (roll 0) is unchanged.
Still unknown
- What the marks and the transfer look like in a stream: the
ccThEffectStrtask that runs them is not ported. - Stream 7's fog is not drawn. - The remaining tasks are not ported: streams 11-16's and thestr7xxx,str8xxxandstr9xxxscenes'.