Useful addresses

AddrSizeWhat
004C2 bytesCamera X (screen position)
004E2 bytesCamera Y
005A1 byteVolatile controller-based RNG
005B2 bytesBit shifting RNG (big endian)
005D2 bytesFrame timer
00C62 bytesFuel remaining
00C82 bytesWeapon power remaining
03741 bytePlayer facing
03361 bytePlayer X speed direction (0=right, 1=left)
029B(lo) 02BA(hi)2 bytesPlayer X speed
0200(lo) 021F(hi)2 bytesPlayer X pixel position
01971 bytePlayer X sub-pixel
03551 bytePlayer Y speed direction (0=up, 1=down)
02D9(lo) 02F8(hi)2 bytesPlayer Y speed
025D(lo) 027C(hi)2 bytesPlayer Y pixel position
023E1 bytePlayer Y sub-pixel

Movement

WhatMax p/fUpDownLeftRight
Thrust3.0Angles 24 to 31, 0 to 8Angles 8 to 24Angles 17 to 31Angles 1 to 15
Gravity3.0Inverted gravityNormal gravity
Object swing4.0
The pod's maximum speed is 4.0 pixels per frame. This can only be done by tethering an object and having it pull you along. If your thrusters or the gravity attempt to accelerate the pod in the same axis, it will instantly reduce the speed to a maximum of 3.0 if the pod is traveling faster.

Thrust

Thrusting enforces a maximum speed of 3.0 pixels/frame.
The default thrusters accelerate an unburdened pod at 16, when facing straight into some direction. Carrying an object will cut this acceleration by varying amounts depending on object mass.
Thrusting straight right (direction 8) or straight left (direction 24) will count some thrusting force upward, and will prevent reaching
Basic thrusting with default thrust or Double Strength Thrusters take 2 fuel per frame, or 16 fuel when using boosters. Efficient Engines reduce the costs to 1 or 8 fuel per frame, respectively.

Gravity

Gravity enforces a maximum downward (or upward, if reverse) speed of 3.0 pixels/frame. Even zero gravity is counted as downward with zero acceleration, and will enforce the downward maximum.
Gravity usually pulls the pod down at a constant rate, depending on the planet. There may be areas on a planet submerged under a fluid of sorts. The only affect of entering one such fluid is a change in the acceleration of gravity. There's still no friction.
Anti-Gravity completely shuts off gravity when active. Downward acceleration, speed maximum, and tethered object will not be affected by gravity with this item in use.

Angles

The pod can face 32 different directions.
Straight left (24) or straight right (8) is still counted as a thrust upwards of usually zero acceleration. If you desire to travel faster than 3.0 pixels/frame going up, avoid thrusting in these directions.
Straight down (16) or straight up (0) is not counted as thrusting either left or right. There will be no interference for horizontal momentum that exceeds 3.0 pixels/frame.

Tethered objects

The RNG

005A1 byteVolatile controller-based RNG
005B2 bytesBit shifting RNG (big endian)
The value at address 005A is affected by the following:
0018 Player 1 immediate - Exact mirror of controller state
0019 Player 1 pressed - Bits are set if pressed now, but not held before
001A Player 2 immediate
001B Player 2 pressed
005D Frame timer low-byte
005E Frame timer high-byte
005F Always zero?
0060 Looks like address 005D MOD 8
The thing that matters is the fact 005A is affected by direct controller input. This includes Player 2, which has no effect anywhere else in the game. By using Player 2, it is possible to gain very strong control over how the RNG works.
The values at address 005B and 005C are left-shifted every frame. The bit shifted into 005C is an XOR of bits 0x40 and 0x08 from 005A, although it has been observed to, on rare occasion, shift in an opposite of this bit. The bit shifted out of 005C is shifted into 005B, and the bit shifted out of 005B is thrown away.
Since 005B and 005C are affected by what happens with 005A, and 005A is affected by controller input, this means you should have complete control over the RNG.
During game play, you have control every other frame, but the RNG runs every frame. As the RNG "ticks" twice for every frame you have control, this makes it somewhat difficult to set the RNG perfectly.
All three RNG addresses are used for various random events.

GameResources/NES/SolarJetman last edited by FatRatKnight on 2/9/2014 11:10 PM
Page History Latest diff List referrers View Source