User File #7034198589978919

Upload All User Files

#7034198589978919 - Lua script for Jetpack

jetpack.lua
1275 downloads
Uploaded 6/4/2013 6:27 PM by Ilari (see all 49)
Shows character position, movement speed, fuel amount, RNG state and RNG index.
dofile("textrender.lua");

lagged = 0;
totalframes = 0;
lastxpos = 0;
lastypos = 0;
lastfcnt = 0;
deltaxpos = 0;
deltaypos = 0;

linear_transform = function(x, a, b)
	return (math.floor(a / 65536) * (x % 65536) * 65536 + (a % 65536) * x + b) % 4294967296;
end

rng_state_to_index = function(state)
	local A = 0x2925141D;
	local B = 0xD6DAEBE3;
	local C = 1;
	local D = 2;
	local i;
	local j = 0;
	for i=0,31 do
		if (state % D) ~= 0 then
			state = linear_transform(state, A, B);
			j = j + C;
		end
		B = linear_transform(A, B, B);
		A = linear_transform(A, A, 0);
		C = C * 2;
		D = D * 2;
	end
	return j;
end


while true do
	a, b = jpcrr.wait_event();
	if a == "lock" then
		xpos = jpcrr.read_word(0x25CA3);
		ypos = jpcrr.read_word(0x25CA1);
		fuel = jpcrr.read_word(0x27040);
		rng = jpcrr.read_dword(0x25872);
		fcnt = jpcrr.frame_number();
		jpcrr.hud.top_gap(3, 16);
		jpcrr.hud.right_gap(3, 32);
		text = string.format("Pos: (%3u,%3u)/(%+3d,%+3d) Fuel: %5u rng: [%08x]%d", xpos, ypos, deltaxpos,
			deltaypos, fuel, rng, rng_state_to_index(rng)-2357709760);
		render_text(3, 0, 0, text, false, 0, 255, 0);
		if fcnt ~= lastfcnt then
			deltaxpos = xpos - lastxpos;
			deltaypos = ypos - lastypos;
			lastxpos = xpos;
			lastypos = ypos;
			lastfcnt = fcnt;
		end
		for i=1,25 do
			rng = linear_transform(rng, 0x15a4e35, 1);
			ran = math.floor(rng / 65536) % 32768;
			render_text(3, 640, i * 16, string.format("%04X", ran), false, 255,
				255, 0);
		end
		jpcrr.release_vga();
	end
end


--Candidate: 00025872[14cf5194]
--Candidate: 00025873[1014cf51]
--Candidate: 00025A46[18501dee]
--Candidate: 00025DC0[56f9df66]
--Candidate: 00025DC1[b056f9df]
--Candidate: 00025DC2[0db056f9]
--Candidate: 00026E37[f0227d01]