Alright, making a little progress on this effort. I figured out that op83 is used to set the camera's follow boundaries. It isn't always used in rooms where the camera follows the player, but it is used in Serge's living room during the initialization script (Entity 0, Script 0). The camera tries to keep the player centered in the screen by following them, until it hits the given bounding box wall.
Here's a description of how it's used:
SET_CAMERA_FOLLOW_BOUNDS:
83 RRSS TTUU VVWW XXYY ZZ (as listed in the Fieldscript Notes wiki)
The first 4 pairs (8 bytes) are signed values representing the camera's scrollable bounding box
for the Left, Right, Top, and Bottom, in that order.
Left and top are always positive, and right and bottom are always negative.
0, 0, is considered the center of the room, and the units are also screen pixels.
The upper nibble of the last byte contains flags to enable/disable those four boundaries,
starting with the highest bit, like this: LRTB0000.
The lower nibble does nothing that I could see.
To reproduce, if anyone wants to test, you can set breakpoints on memory write at 0x8010363E (the last byte of the op), when loading Serge's Living Room (Home world). You should see:
83 50 00 92 FF 00 00 E2 FF F0
Which translates to: Left: 80, Right: -110, Top: 0, Bottom: -30
You have to stop execution there because it's an initialization script and takes effect immediately, but you should be able to change the values and resume to verify the scrolling boundary behavior.
I need to test how other rooms handle this without op83, and whether something else writes camera bounds to the same address. Some more homework, but for now I think we can check this one off the list.