FF8/Engine/WorldMapCamera
From Final Fantasy Inside
Camera detail
Camera on world map is set to look-at target. Look at target is Squall, that is read from chara.one in world.fs file.
As the camera is look-at, then it works and moves on "logic" sphere. Memory in FF8 is static. Camera memory starts soon after last face indice layout is hold. Is after 3-4 unknown NULL bytes.
Camera build
Remember! Values are little-endian!
Physical camera location/translation:
Offset | Static memory address | Default or medium value | Type of value | Description |
---|---|---|---|---|
0 | 0x0203ECF8 | 0 | short (2 bytes signed) | Camera Y axis translation. Camera.Location.Y = (Squall.Location + THIS); |
2 | 0x0203ECFA | AB FE | short (2 bytes signed) | Camera X axis translation. Camera.Location.X = (Squall.Location.X + THIS); |
4 | 0x0203ECFC | 00 E4 / 00 E0 | short (2 bytes signed) | Distance between camera and look-at-target (physical) |
8 | 0x0203ED00 | ~FF 92 | uint16 | Operates camera tangent Y axis position. This is: hacking this to bird-fly view or like in RPG |
10 | 0x0203ED02 | ranges from 00 00 to 0F FF | 12 bit | Operates camera tangent Z axis position. This is: the same as rotating camera in-game |
12 | 0x0203ED04 | 00 00 (FF 0F max) | 12 bit | Camera root rotation. For up-side down example. 9-12th bit is irrelevant. (1111 1111 xxxx 1111) |
40 | 0x0203ED2C | 0 | bool | RESET CAMERA |
Others:
Static memory address | Default or medium value | Type of value | Description |
---|---|---|---|
0x01CA92E4 | 1024/640 | uint16 | Logical camera zoom - Takes physical camera and applies logical zoom* |
Logical zoom, for FF8 they're fixed values:
- 640 - when camera mode is set to far
- 1024 - when camera mode is set to near
These zoom is operated, when you in-game set the camera near-far preferences. (F default in Steam release)