View Page Source

Revision (current)
Last Updated by FatRatKnight on 2/9/2014 11:10 PM
Back to Page

!!Useful addresses
|004C|2 bytes|Camera X (screen position)|
|004E|2 bytes|Camera Y|
|005A|1 byte|Volatile controller-based RNG|
|005B|2 bytes|Bit shifting RNG (big endian)|
|005D|2 bytes|Frame timer|
|00C6|2 bytes|Fuel remaining|
|00C8|2 bytes|Weapon power remaining|
|0374|1 byte|Player facing|
|0336|1 byte|Player X speed direction (0=right, 1=left)|
|029B(lo) 02BA(hi)|2 bytes|Player X speed|
|0200(lo) 021F(hi)|2 bytes|Player X pixel position|
|0197|1 byte|Player X sub-pixel|
|0355|1 byte|Player Y speed direction (0=up, 1=down)|
|02D9(lo) 02F8(hi)|2 bytes|Player Y speed|
|025D(lo) 027C(hi)|2 bytes|Player Y pixel position|
|023E|1 byte|Player Y sub-pixel|

||What||Max p/f||Up||Down||Left||Right||
|Thrust|3.0|Angles 24 to 31, 0 to 8|Angles 8 to 24|Angles 17 to 31|Angles 1 to 15|
|Gravity|3.0|Inverted gravity|Normal gravity| | |
|Object swing|4.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
||005A|1 byte|Volatile controller-based RNG|
||005B|2 bytes|Bit 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.