User File #3644248980008336

Upload All User Files

#3644248980008336 - Gain Ground 2-player command script

gainground_stagescripts.lua
1192 downloads
Uploaded 1/3/2013 2:25 AM by oneeighthundred (see all 3)
This is the command script used to generate input for my Gain Ground run, used for every stage from 1-7 through completion (almost 90% of the run). It's generic enough that many games could be tracked using it by scrapping the contents of the stageScripts and syncPoints tables, although it has some limits since it was designed for Gain Ground: It does not support holding non-directional buttons for longer than a frame and does not support left+right or down+up.
The way this works is that the run is chopped up into units, which was done so that early-level edits could be easily resynchronized. Originally, this was done by tagging commands with the original frame numbers and adjusting the actual start frame if that changed. This later changed to using 0 as the starting frame number instead and having the HUD script display the relative frame number.
This script will generate input for a unit up through the last frame that has a numbered command, which means things like continuous motion will only work if there's a later command to keep the input block going (even if the command is a "stop"). Most stages were made by first adding a "stop" 1000 frames in the future.
-- Script expressions:
-- go <dir>             - Changes direction long-term
-- tap <dir>            - Changes direction for one frame
-- shoot <dir> <button> - Changes direction and fires an attack for this frame only.  Same as tap <dir> fire <button>
-- fire <button>        - Fires a button for this frame only but does not change direction
-- stop                 - Stops all movement

local MARS_DIES_IN_1_10	= false

local stageScripts =
{
	["1-7"] =
	{
		[1] =
		{
			5244, "fire",	"B",

			5247, "go",	"up-right",
			5316, "go",	"up",
			5348, "shoot",	"left",	"B",
			5350, "fire",	"B",
			5380, "fire",	"B",
			5416, "fire",	"B",
			5432, "fire",	"B",
			5449, "shoot",	"up-left",	"B",
			5450, "go",	"left",
			5460, "stop",

			5647, "fire",	"B",		-- Skip scores
		},
		[2] =
		{
			5247, "fire",	"B",
			5248, "go",	"up-left",
			5266, "go",	"up",
			5326, "shoot",	"left",		"B",
			5351, "shoot",	"left",		"B",
			5384, "go",	"left",		"fire",	"B",
			5388, "shoot",	"up-left",	"B",
			5389, "go",	"up",
			5412, "fire",	"C",
			5425, "shoot",	"up-left",	"B",
			5442, "shoot",	"up-left",	"B",
			5443, "go",	"left",
			5460, "stop",
		},
	},

	["1-8"] =
	{
		[1] =
		{
			5979, "fire",	"B",
			5983, "go",	"up-left",
			5987, "go",	"up",
			6111, "shoot",	"right",	"C",
			6150, "fire",	"B",
			6151, "shoot",	"down",		"C",
			6152, "go",	"up-right",	"fire",	"B",

			6168, "go",	"right",
			6177, "fire",	"B",
			6187, "fire",	"C",	"fire",	"B",

			-- Can spare about 20 frames at this point, then need to move to X=228, then 216,184 to shoot the ambush at 6241
			6198, "stop",	
			6214, "fire",	"B",
			6218, "fire",	"B",
			6219, "go",	"up-left",
			6241, "fire",	"B",
			6242, "go",	"down-right",

			6265, "stop",	"shoot",	"right",	"C",	"shoot",	"right",	"B",
			6266, "go",	"down",		-- Dodge the fireball
			6270, "stop",
			6279, "shoot",	"right",	"B",
			6291, "shoot",	"right",	"B",
			6301, "shoot",	"right",	"C",
			6305, "go",	"up",
			6309, "stop",
			--6309, "shoot",	"right",	"B",	-- Dud, hits it during an invincibility frame
			6310, "go",	"up-left",
			6333, "fire",	"B",
			6334, "go",	"down-left",	-- Dodge the fireball
			6340, "go",	"down",
			6352, "shoot",	"right",	"B",
			6355, "go",	"right",
			6357, "fire",	"C",
			6359, "stop",
			--6370, "fire",	"B",
			--6389, "fire",	"B",

			-- This sequence will kill P1
			 --6378, "go", "up-left",
			 --6384, "go", "up",
			 --6408, "stop",
			 --6414, "shoot",	"up-left",	"B",


			6390, "go",	"up",
			6418, "stop",
			6425, "shoot",	"up-left",	"B",
			

			6699, "fire",	"B",		-- Skip scores
		},
		[2] =
		{
			5976, "fire",	"B",
			5985, "go",	"up",
			6151, "fire",	"C",
			6152, "shoot",	"down-left",	"B",
			6165, "go",	"up-left",
			6185, "go",	"left",	"fire",	"B",
			6197, "shoot",	"down-left",	"B",
			6198, "stop",
			6212, "shoot",	"down-left",	"C",
			6214, "go",	"right",
			6226, "shoot",	"up-right",	"B",
			6227, "go",	"left",
			6239, "shoot",	"down-left",	"B",
			6240, "stop",
			6248, "shoot",	"down-left",	"C",
			--6262, "shoot",	"down-left",	"B",
			6274, "shoot",	"down-left",	"B",
			6284, "go",	"right",
			6298, "shoot",	"up-right",	"B",
			6300, "go",	"left",
			6314, "stop",	"shoot",	"down-left",	"B",
			6318, "shoot",	"down-left",	"C",
			6334, "shoot",	"down-left",	"B",
			6338, "shoot",	"down-left",	"B",
			6352, "shoot",	"down-left",	"B",
			6356, "go",	"right",
			6370, "shoot",	"up-right",	"B",
			6378, "go",	"down",
			6398, "shoot",	"down",		"B",
			6405, "stop",
		},
	},
	["1-9"] =
	{
		[1] =
		{
			6987,	"fire",		"B",
			6988,	"go",		"up-right",
			6996,	"go",		"up",
			7047,	"fire",		"C",
			7048,	"go",		"up-right",
			7064,	"go",		"right",
			7076,	"shoot",	"up-left",	"C",
			7077,	"shoot",	"down-right",	"B",
			7078,	"go",		"up-right",
			7111,	"go",		"up",
			7127,	"shoot",	"up-right",	"B",
			7176,	"go",		"left",
			7177,	"fire",		"B",
			7180,	"shoot",	"down-left",	"B",
			7181,	"go",		"up-left",
			7210,	"go",		"up",
			7221,	"fire",		"C",
			7222,	"go",		"right",
			7226,	"go",		"up-right",
			7248,	"fire",		"B",
			7249,	"go",		"left",
			7265,	"shoot",	"down-left",	"B",
			7268,	"shoot",	"up-left",	"C",

			7269,	"stop",

			7528,	"fire",		"B",		-- Skip scores
		},
		[2] =
		{
			6984,	"fire",		"B",
			6985,	"go",		"up",
			7009,	"fire",		"C",
			7010,	"shoot",	"left",		"B",
			7011,	"go",		"up-left",
			7055,	"shoot",	"up",	"C",
			7081,	"go",		"up",
			--7149,	"shoot",	"left",		"B",	-- Hit ambush Y
			--7174,	"shoot",	"right",	"B",
			7164,	"shoot",	"right",	"B",
			7166,	"shoot",	"down-left",	"B",
			7168,	"go",		"up-left",	"fire",		"B",
			7177,	"fire",		"B",
			7211,	"shoot",	"up",		"B",
			7212,	"shoot",	"up-right",	"C",
			7213,	"go",		"right",
			7243,	"shoot",	"up-right",	"C",
			7244,	"shoot",	"down-right",	"B",
			7245,	"go",		"down-left",
			7257,	"shoot",	"right",	"B",
			7258,	"go",		"left",
			7266,	"go",		"up-left",
			7286,	"go",		"up",		"fire",		"B",
			7325,	"shoot",	"up-left",	"B",

			7326,	"stop",
		},
	},
	["1-10"] =
	{
		[1] =
		{

			7844,	"fire",		"B",
			7845,	"go",		"up-right",

			7849,	"shoot",	"up",		"B",	"shoot",	"up",	"C",
			7873,	"shoot",	"up",		"B",
			7900,	"shoot",	"up-left",	"B",	"shoot",	"up-left",	"C",
			7919,	"shoot",	"up-left",	"C",
			7920,	"go",		"up",

			7924,	"shoot",	"up-left",	"B",
			7929,	"shoot",	"up-left",	"B",
			7934,	"shoot",	"up-left",	"C",
			7943,	"shoot",	"up-left",	"B",
			7972,	"shoot",	"up-left",	"B",

			7996,	"shoot",	"up-left",	"B",	"shoot",	"up-left",	"C",
			7999,	"go",		"left",
			8014,	"go",		"up-left",	"fire",		"B",

			8026,	"go",	"up",	"fire",		"C",
			8032,	"fire",		"B",

			8040,	"stop",	
			8046,	"fire",		"C",
			8049,	"fire",		"B",
			8054,	"fire",		"B",
			8064,	"fire",		"C",
			8065,	"go",	"up",
			8066,	"fire",		"B",
			8067,	"stop",

			8215,	"fire",		"B",	-- Select Gascon
			8218,	"go",		"up-right",
			8317,	"go",		"up",

			8399,	"fire",		"C",	-- Hits at 8435
			8407,	"fire",		"B",	-- Hits at 8444
			8410,	"fire",		"B",	-- Hits at 8445

			8437,	"fire",		"C",
			8444,	"fire",		"B",	-- Hits at 8459

			8449,	"fire",		"B",	-- Hits at 8459
			8450,	"fire",		"C",
			8460,	"fire",		"B",
			8469,	"fire",		"B",	"stop",
			8471,	"fire",		"B",

			8473,	"fire",		"B",
			8479,	"fire",		"B",
			8481,	"fire",		"B",
			8483,	"fire",		"B",
			8487,	"fire",		"B",
			8488,	"go",		"left",
			8494,	"stop",
			8500,	"shoot",	"up-right",	"B",


--[[
			8473,	"fire",		"C",
			8479,	"fire",		"B",
			8481,	"fire",		"C",
			8484,	"fire",		"B",
			8488,	"fire",		"C",
			8492,	"fire",		"B",
			8496,	"fire",		"C",
]]--


			(MARS_DIES_IN_1_10 and 8799 or 8795),	"fire",	"B",
		},
		[2] =
		{
			7844,	"tap",	"up",
			7873,	"fire",	"B",

			7874,	"go",	"up-left",
			7878,	"fire",	"C",	"shoot",	"up",	"B",
			7895,	"fire",	"C",
			7902,	"shoot",	"up",		"B",
			7917,	"fire",		"C",
			7926,	"shoot",	"up",		"B",	"fire",	"C",
			7945,	"shoot",	"up-right",	"B",
			7946,	"go",		"up",
			7950,	"shoot",	"up-right",	"B",
			7955,	"shoot",	"up-right",	"B",
			--7960,	"shoot",	"up-left",	"B",
			7994,	"go",		"up-right",

			8008,	"shoot",	"up",		"B",	"fire",		"C",
			8013,	"shoot",	"up",		"B",

			8032,	"go",		"up",
			8033,	"fire",		"C",
			8038,	"fire",		"B",
			8045,	"fire",		"B",
			8057,	"go",		"right",
			8059,	"fire",		"C",	"shoot",	"up",	"B",
			8062,	"stop",
			8063,	"shoot",	"up",	"B",
			8071,	"shoot",	"down-left",	"B",
			8072,	"fire",		"C",
			8075,	"shoot",	"left",		"B",
			8077,	"go",		"up-left",
			8079,	"shoot",	"down-left",	"B",

			-- These 3 will kill Mars
			--8080,	"go",		"left",
			--8092,	"fire",		"B",
			--8100,	"stop",

			

			8202,	"go",		(MARS_DIES_IN_1_10 and "left" or "stopped"),
			8206,	"stop",


			8240,	"spin",		"stopped",	6,
			8288,	"spin",		"stopped",	5,
			8328,	"spin",		"stopped",	4,
			8360,	"spin",		"stopped",	3,
			8384,	"spin",		"stopped",	2,
			8400,	"spin",		"stopped",	1,
			8424,	"stopspin",
			8426,	"go",		"down",
			8435,	"stop",		"shoot",	"up",	"B",
			8437,	"fire",	"B",
			8439,	"fire",	"C",
			8446,	"fire",	"B",
			8450,	"fire",	"B",
			8452,	"fire",	"C",
			8454,	"fire",	"B",
			8463,	"fire",	"B",
			8467,	"fire",	"C",
			8475,	"fire",	"B",
			8477,	"fire",	"B",
			8478,	"go",		"down",
			8490,	"shoot",	"up",	"C",
			8491,	"stop",
			8493,	"fire",	"B",
			8497,	"fire",	"B",
			8501,	"fire",	"B",

			--8437,	"fire",		"C",


			
			--7975,	"go",		"up",

			--7991,	"shoot",	"up-left",	"B",
		},
	},

	["2-1"] = 
	{
		[1] =
		{
			9106,	"fire",		"B",
			9108,	"go",		"up",
			9146,	"go",		"up-right",	"fire",	"B",
			9158,	"go",		"up",		"fire",	"B",
			9170,	"go",		"up-right",	"fire",	"B",
			9182,	"go",		"up",

			9234,	"go",		"up-right",	"fire",	"B",
			9238,	"go",		"up",

			9264,	"fire",		"C",
			9266,	"go",		"up-left",
			9287,	"shoot",	"up-right",	"B",
			9288,	"go",		"up",

			9297,	"shoot",	"right",	"B",
			9313,	"shoot",	"up-right",	"B",
			9318,	"stop",
			9321,	"shoot",	"right",	"B",
			9324,	"shoot",	"right",	"B",

			9518,	"fire",		"B",
		},
		[2] =
		{
			9103,	"fire",		"B",
			9105,	"go",		"up",
			9140,	"fire",		"C",
			9189,	"shoot",	"left",		"B",
			9190,	"go",		"up-left",	"fire",	"C",
			9213,	"shoot",	"left",		"B",
			9214,	"go",		"up",
			9215,	"fire",		"B",
			9238,	"fire",		"B",

			9246,	"go",		"up-right",
			9277,	"shoot",	"left",		"B",
			9278,	"go",		"up",		"fire",	"C",
			9294,	"shoot",	"up-left",	"B",

			9317,	"shoot",	"up-left",	"B",
			9318,	"stop",
		},
	},

	["2-2"] =
	{
		[1] =
		{
			9816,	"fire",		"B",
			9818,	"go",		"up-right",
			9833,	"fire",		"B",
			9835,	"fire",		"C",	"fire",	"B",
			9883,	"fire",		"C",
			9931,	"go",		"right",
			9935,	"go",		"up-right",
			9937,	"go",		"up",
			9965,	"shoot",	"up-right",	"B",
			10002,	"shoot",	"right",	"B",
			10003,	"shoot",	"left",		"C",
			10020,	"shoot",	"left",		"B",
			10037,	"shoot",	"left",		"B",
			10046,	"shoot",	"up-left",	"C",

			10047,	"shoot",	"left",	"B",
			10048,	"go",		"up-left",
			10050,	"shoot",	"left",		"B",
			10056,	"shoot",	"left",		"B",
			10073,	"shoot",	"down-left",	"B",
			10074,	"go",		"left",
			10078,	"shoot",	"down-left",	"B",
			10084,	"shoot",	"up-left",	"C",
			10085,	"go",		"up-left",
			10100,	"go",		"left",
			10103,	"shoot",	"down",		"B",
			10116,	"shoot",	"down",		"B",
			10121,	"shoot",	"down",		"B",

			10122,	"shoot",	"up",		"C",
			10147,	"shoot",	"down-right",	"B",
			10155,	"shoot",	"up",		"C",
			10156,	"stop",


			10344,	"fire",		"B",
		},
		[2] =
		{
			9813,	"fire",		"B",
			9818,	"go",		"up-left",
			--9834,	"fire",		"B",
			9836,	"fire",		"B",
			9838,	"fire",		"B",	"fire",	"C",
			9930,	"go",		"left",
			9934,	"go",		"up-left",

			
			9936,	"go",		"up",
			9937,	"fire",		"B",
			9940,	"fire",		"B",
			9972,	"fire",		"B",
			9975,	"shoot",	"up-right",	"B",	"fire",	"C",
			9976,	"stop",
			--9978,	"stop",
			9981,	"go",		"up",
			--9997,	"shoot",	"right",	"B",
			9997,	"go",		"up-left",
			10005,	"go",		"up",

			10029,	"shoot",	"right",	"B",

			10046,	"shoot",	"right",	"B",
			10051,	"go",		"up-right",	"fire",	"C",

			10072,	"shoot",	"down-right",	"B",

			10089,	"shoot",	"down-right",	"B",
			10090,	"go",		"right",

			10102,	"shoot",	"up-right",	"C",
			10103,	"shoot",	"down-right",	"B",
			--10110,	"shoot",	"down",		"B",

			--10123,	"shoot",	"down",		"B",	-- 10127
			10136,	"shoot",	"up",		"C",
			10137,	"shoot",	"down",		"B",
			10148,	"shoot",	"down",		"B",

			10155,	"shoot",	"up",		"C",

			10156,	"stop",
		},
	},
	["2-3"] =
	{
		[1] =
		{
			10636,	"fire",		"B",
			10638,	"go",		"right",
			10682,	"go",		"up-right",
			10744,	"go",		"up",
			10850,	"fire",		"B",
			10852,	"go",		"up-right",
			10882,	"shoot",	"up-left",	"B",
			10883,	"go",		"up",
			10900,	"fire",		"B",
			10901,	"go",		"down",
			10903,	"shoot",	"right",	"C",
			10904,	"go",		"up",
			10915,	"shoot",	"left",		"B",


			10939,	"stop",


			10946,	"spin",		"stopped",	2,

			10963,	"stopspin",

			10964,	"shoot",	"right",	"C",
			10965,	"shoot",	"up",		"B",
			10966,	"go",		"left",
			10970,	"stop",

			10981,	"spin",		"stopped",	2,

			11012,	"stopspin",
			11013,	"shoot",	"up",		"B",
			11208,	"fire",		"B",
		},
		[2] =
		{
			10639,	"fire",		"B",
			10640,	"go",		"left",
			10714,	"go",		"up",
			10725,	"shoot",	"right",	"B",
			10726,	"go",		"left",
			10751,	"fire",		"B",
			--10752,	"shoot",	"up-left",	"C",
			10752,	"go",		"right",
			10771,	"fire",		"B",
			10772,	"go",		"left",
			10815,	"fire",		"B",
			10816,	"go",		"right",
			10847,	"fire",		"B",
			10848,	"go",		"left",
			10879,	"fire",		"B",
			10880,	"shoot",	"up-left",	"C",
			10881,	"go",		"up-right",
			10925,	"go",		"up",
			10929,	"shoot",	"up-right",	"C",
			10961,	"shoot",	"right",	"C",
			10962,	"go",		"up-left",

			10995,	"stop",
				"spin",		"stopped",	2,

			11006,	"stopspin",
			11008,	"shoot",	"up-left",	"C",
		},
	},
	["2-4"] =
	{
		[1] =
		{
			11506,	"fire",		"B",
			11507,	"go",		"up",

			11535,	"shoot",	"up-right",	"B",
			11576,	"shoot",	"right",	"C",
			11589,	"shoot",	"up-right",	"B",
			11594,	"shoot",	"right",	"B",
			11635,	"shoot",	"down-right",	"B",

			11672,	"shoot",	"up-left",	"B",
			11673,	"go",		"up-right",
			11684,	"fire",		"C",
			11688,	"shoot",	"up-left",	"B",
			11689,	"go",		"up",

			11690,	"fire",		"B",

			11741,	"shoot",	"down-left",	"B",
			11743,	"shoot",	"up-left",	"B",
			11756,	"shoot",	"up-right",	"B",
			11757,	"go",		"down",
			11763,	"shoot",	"down-left",	"B",
			11764,	"stop",

			11953,	"fire",		"B",
		},
		[2] =
		{
			11503,	"fire",		"B",
			11504,	"go",		"up",


			11534,	"shoot",	"up-left",	"B",
			11575,	"shoot",	"left",		"C",
			11586,	"shoot",	"up-left",	"B",
			11591,	"shoot",	"left",		"B",
			11631,	"shoot",	"down-left",	"B",
			11672,	"shoot",	"up-right",	"B",
			11673,	"go",		"up-left",
			11682,	"fire",		"C",
			11683,	"go",		"up",
			11690,	"go",		"up-right",	"fire",	"B",
			11696,	"go",		"up",		"fire",	"B",

			11720,	"shoot",	"up-left",	"B",

			11750,	"shoot",	"down-right",	"B",
			11751,	"go",		"down",
			11754,	"shoot",	"up-left",	"B",
			11759,	"stop",
			11772,	"shoot",	"down-right",	"B",
		},
	},
	["2-5"] =
	{
		[1] =							
		{
			1,	"go",			"down",

			10,	"stop",	
			33,	"fire",			"B",
			35,	"go",			"up-right",

			104,	"shoot",		"up-left",	"B",

			152,	"go",			"up",

			245,	"shoot",		"left",		"B",
			246,	"go",			"up-left",

			306,	"stop",
			311,	"fire",		"C",

			713,	"fire",		"B",
		},
		[2] =
		{
			4,	"fire",			"B",
			6,	"go",			"up-left",

			140,	"go",			"up",
			214,	"fire",		"B",
			218,	"shoot",	"down-right",	"B",

			232,	"shoot",	"up-right",	"C",

			287,	"fire",		"B",
			288,	"shoot",	"right",	"C",
			289,	"go",		"down",

			299,	"stop",

			324,	"shoot",	"left",		"C",

			325,	"go",		"down",

			329,	"shoot",	"up",		"B",
			350,	"shoot",	"right",	"C",
			--351,	"shoot",	"down-right",	"B",
			352,	"stop",
			369,	"shoot",	"up",		"B",
			373,	"shoot",	"right",	"B",
			374,	"go",		"up-left",


			394,	"shoot",	"down-right",	"C",

			403,	"go",		"up",
			413,	"stop",

			430,	"fire",		"B",
			431,	"go",		"up-left",
			437,	"shoot",	"left",		"C",
			438,	"go",		"down-right",

			452,	"tap",		"down",
			453,	"stop",
			473,	"shoot",	"up",		"B",

			519,	"shoot",	"up",		"B",
			520,	"go",		"down",
		}
	},
--[[
	["2-5"] =
	{
		[1] =							
		{
			3,	"fire",		"B",
			4,	"go",		"up-right",
			124,	"go",		"up",		
			200,	"go",		"right",
			206,	"go",		"up-right",
			218,	"go",		"up",		"fire",	"B",
			234,	"shoot",	"up-left",		"C",
			--288,	"shoot",	"left",		"C",
			289,	"fire",		"B",
			290,	"go",		"left",			
			291,	"fire",		"C",			
			292,	"go",		"down-right",			
			300,	"go",		"right",			
			327,	"fire",		"C",			
			336,	"go",		"up",		"fire",	"B",
			340,	"stop",
			343,	"shoot",	"right",	"C",
			344,	"go",		"down",			
			373,	"shoot",	"up",		"B",		
			377,	"shoot",	"right",		"B",		
			378,	"stop",					
									
			391,	"shoot",	"right",		"C",		
			392,	"go",		"up",			
			404,	"stop",					
			425,	"fire",		"B", 			
									
			439,	"go",		"down",			
									
			462,	"shoot",	"up",	"B",			
			476,	"stop",					
			505,	"shoot",	"up",	"B",			
			506,	"go",		"down",			
									
			572,	"stop",					
									
			719,	"fire",		"B",			
		},							
		[2] =							
		{							
			3,	"tap",		"up",			
			30,	"fire",		"B",			
			31,	"go",		"up-left",			
			82,	"shoot",	"up-right",	"B",			
			120,	"go",		"up",			
			168,	"shoot",	"right",	"B",			
			169,	"go",		"down-left",			
			192,	"shoot",	"left",		"B",		
			193,	"go",		"up-left",			
			216,	"go",		"left",			
			249,	"fire",		"B",			
			250,	"go",		"up-left",			
			312,	"stop",					
			313,	"go",		"up",		"fire",	"B",
			324,	"stop",					
			386,	"shoot",	"up",		"B",		

		},
	},
]]--
	["2-6"] =
	{
		[1] =
		{
			5,	"fire",		"B",

			6,	"go",		"up-right",
			53,	"go",		"up",

			68,	"fire",		"B",	-- To hit archer
			118,	"fire",		"B",	-- To hit knight 2 (1)

			159,	"go",		"right",	"fire",		"B",

			167,	"shoot",	"up",	"B",
			169,	"fire",		"B",
			182,	"shoot",	"up-right",	"C",

			191,	"shoot",	"up-left",	"B",
			192,	"go",		"left",
			200,	"shoot",	"up",		"B",
			201,	"go",		"up-left",
			232,	"go",		"up",		"fire",		"B",	"fire",		"C",
			236,	"shoot",	"left",		"B",

			248,	"shoot",	"up-left",	"B",
			250,	"shoot",	"right",	"B",

			271,	"shoot",	"up-left",	"B",
			276,	"shoot",	"right",	"B",

			296,	"shoot",	"left",		"B",

			297,	"stop",


			484,	"fire",		"B",
		},
		[2] =
		{
			2,	"fire",		"B",
			3,	"go",		"up",
			33,	"go",		"up-left",
			93,	"go",		"up",		"fire",		"B",

			126,	"fire",		"C",
			129,	"shoot",	"up-left",	"B",

			150,	"fire",		"B",
			157,	"shoot",	"up-left",	"B",
			172,	"stop",
			179,	"shoot",	"up-left",	"C",
			180,	"go",		"up",
			192,	"fire",		"B",
			201,	"shoot",	"up-right",	"B",
			214,	"shoot",	"left",		"B",
			219,	"fire",		"B",
			222,	"stop",
			223,	"fire",		"B",
			224,	"fire",		"C",
			225,	"go",		"up",
			227,	"stop",

			236,	"shoot",	"right",	"B",
			237,	"go",		"up-right",

			253,	"go",		"right",	"fire",		"B",
			255,	"shoot",	"left",		"B",
			256,	"go",		"up-right",

			266,	"go",		"up",
			269,	"shoot",	"up-left",	"C",
			275,	"shoot",	"left",		"B",
			277,	"shoot",	"right",	"B",
			284,	"shoot",	"up-right",	"B",

			285,	"go",		"left",

			296,	"shoot",	"right",	"B",


			300,	"stop",
		},
	},
	["2-7"] =
	{
		[1] =
		{
			5,	"fire",		"B",
			6,	"go",		"up-right",
			79,	"go",		"right",
			106,	"go",		"up-right",	"fire",	"C",
			114,	"go",		"up",
			120,	"fire",		"B",
			126,	"shoot",	"left",		"B",
			--143,	"shoot",	"left",		"B",
			143,	"fire",		"B",
			171,	"shoot",	"left",		"B",
			172,	"shoot",	"up-right",	"C",
			188,	"shoot",	"right",	"B",
			197,	"fire",		"B",
			212,	"stop",
			217,	"shoot",	"up-right",	"C",
			218,	"tap",		"up",
			219,	"fire",		"B",
			231,	"go",		"up",
			319,	"shoot",	"left",		"B",
			320,	"go",		"right",
			329,	"shoot",	"left",		"B",
			345,	"shoot",	"left",		"B",
			360,	"shoot",	"left",		"C",
			--360,	"shoot",	"left",		"B",
			361,	"tap",		"up-right",
			362,	"tap",		"up-right",

			371,	"go",		"up",
			380,	"stop",

			386,	"shoot",	"down",	"B",
			388,	"shoot",	"down",	"B",

			570,	"fire",		"B",
		},
		[2] =
		{
			2,	"fire",		"B",
			3,	"go",		"up-left",
			9,	"fire",		"C",
			78,	"go",		"left",
			104,	"go",		"up-left",
			114,	"shoot",	"up-right",	"B",
			115,	"go",		"up",
			122,	"fire",		"C",
			131,	"shoot",	"left",	"B",
			136,	"shoot",	"right",	"B",
			148,	"fire",		"B",
			176,	"shoot",	"left",		"C",
			177,	"shoot",	"down",		"B",
			188,	"fire",		"B",
			193,	"stop",
			198,	"shoot",	"left",		"B",
			199,	"go",		"up",
			217,	"stop",
			219,	"shoot",	"up",	"B",
			221,	"shoot",	"up-right",	"C",
			222,	"go",		"up",
			224,	"stop",
			231,	"go",		"up",
			234,	"shoot",	"right",	"B",
			235,	"stop",
			244,	"shoot",	"right",	"B",
			245,	"go",		"down",
			267,	"shoot",	"left",	"B",
			268,	"go",		"up-left",
			326,	"shoot",	"down",		"B",
			328,	"shoot",	"down",		"B",
			330,	"go",		"up",

			378,	"fire",		"B",
			380,	"fire",		"B",

			381,	"stop",
			387,	"go",		"up",
			--403,	"go",		"right",
			403,	"stop",
			409,	"stop",
			430,	"shoot",	"right",	"B",
			432,	"fire",		"B",
			433,	"go",		"up",
			450,	"shoot",	"down",	"B",
			451,	"stop",
			458,	"shoot",	"left",		"B",
			460,	"shoot",	"down",		"C",
			461,	"shoot",	"right",	"B",
		},
	},
	["2-8"] =
	{
		[1] =
		{
			3,	"fire",		"B",
			8,	"shoot",	"right",	"B",
			9,	"go",		"up",
			10,	"fire",		"B",
			39,	"fire",		"B",
			65,	"shoot",	"down-right",	"C",
			76,	"fire",		"B",
			104,	"fire",		"B",
			127,	"fire",		"B",
			154,	"fire",		"B",
			155,	"fire",		"C",
			--181,	"fire",		"B",
			201,	"fire",		"B",
			203,	"shoot",	"right",	"B",
			219,	"stop",
			220,	"go",		"up-right",
			221,	"fire",		"B",
			230,	"go",		"right",
			233,	"shoot",	"down-right",	"B",
			235,	"shoot",	"up",		"B",
			247,	"shoot",	"up",		"B",
			256,	"stop",
			258,	"shoot",	"down-right",	"B",
			266,	"shoot",	"up",		"B",
			274,	"shoot",	"down-right",	"C",
			275,	"go",		"up-right",
			284,	"stop",
			--300,	"go",		"up-left",
			319,	"shoot",	"down-right",	"C",
			320,	"go",		"up-right",
			343,	"go",		"right",
			355,	"stop",
			373,	"shoot",	"down-right",	"B",
			375,	"shoot",	"down-right",	"B",

			583,	"fire",		"B",
		},
		[2] =
		{
			0,	"fire",		"B",
			1,	"go",		"up",
			72,	"fire",		"B",
			100,	"fire",		"B",
			176,	"go",		"up-right",
			184,	"stop",
			207,	"shoot",	"up-left",	"B",
			208,	"go",		"down",
			215,	"stop",
			216,	"shoot",	"left",		"B",
			229,	"shoot",	"up-left",	"B",
			231,	"shoot",	"up-left",	"B",
			232,	"go",		"down",
			256,	"shoot",	"up-left",	"B",
			273,	"stop",
			276,	"shoot",	"down-left",	"B",
			278,	"shoot",	"down-left",	"B",
			279,	"go",		"up",
			--274,	"shoot",	"up-left",	"B",
			--289,	"shoot",	"down-left",	"B",
			304,	"shoot",	"up-left",	"B",
			345,	"stop",
			383,	"shoot",	"up-left",	"B",
			385,	"shoot",	"up-left",	"B",
		},
	},
	["2-9"] =
	{
		[1] =
		{
			0,	"go",		"down",
			126,	"stop",
			128,	"fire",		"B",
			132,	"fire",		"B",	"go",	"up",
			136,	"fire",		"C",
			180,	"fire",		"B",
			196,	"stop",
			204,	"fire",		"C",
			303,	"fire",		"C",

			387,	"fire",		"C",
			415,	"go",		"right",
			422,	"shoot",	"up",	"C",
			541,	"shoot",	"up-right",	"C",

			752,	"fire",		"B",
		},
		[2] =
		{
			1,	"fire",		"B",
			6,	"go",		"up-left",	"fire",		"B",


			45,	"fire",		"B",
			46,	"go",		"up",
			77,	"fire",		"B",

			84,	"go",		"up-left",
			112,	"shoot",	"up",		"B",
			117,	"go",		"left",
			247,	"go",		"up",
			280,	"go",		"up-right",

			298,	"shoot",	"up-left",	"B",


			313,	"shoot",	"up-left",	"B",

			314,	"go",		"right",

			329,	"shoot",	"up-right",	"B",
			330,	"stop",

			352,	"shoot",	"up-right",	"B",
			354,	"shoot",	"up-right",	"B",
			356,	"go",		"right",

			374,	"shoot",	"up-right",	"B",
			379,	"shoot",	"up-right",	"B",

			408,	"go",		"up",		"fire",	"B",

			414,	"stop",
			415,	"shoot",	"up-right",	"B",
			417,	"shoot",	"up-right",	"B",
			424,	"go",		"up",

			450,	"shoot",	"up-left",	"B",
			461,	"shoot",	"up-left",	"B",

			474,	"shoot",	"up-right",	"B",
			479,	"go",		"right",
			480,	"shoot",	"up-right",	"B",
			487,	"shoot",	"up-left",	"C",

			494,	"shoot",	"left",		"B",

			501,	"go",		"down",
			505,	"shoot",	"up",		"B",
			507,	"shoot",	"up-right",	"B",
			508,	"stop",
			509,	"shoot",	"up-right",	"B",
			518,	"shoot",	"right",	"B",
			520,	"shoot",	"up",		"B",
			521,	"tap",		"down",
			522,	"tap",		"down",
			529,	"shoot",	"left",		"B",

			540,	"shoot",	"right",	"B",
			542,	"shoot",	"right",	"B",
		},
	},
	["2-10"] =
	{
		[1] =
		{
			5,	"fire",		"B",
			7,	"go",		"up",
			12,	"shoot",	"up-right",	"B",
			41,	"shoot",	"up-right",	"B",
			42,	"go",		"up-left",
			46,	"go",		"up",
			59,	"fire",		"B",
			86,	"fire",		"C",
			110,	"fire",		"B",
			134,	"shoot",	"up-right",	"C",
			--137,	"fire",		"B",
			153,	"shoot",	"up-right",	"B",
			156,	"fire",		"B",

			170,	"go",		"up-right",

			175,	"fire",		"C",
			178,	"fire",		"B",
			181,	"go",		"right",
			--160,	"go",		"up-right",
			184,	"go",		"right",
			185,	"fire",		"B",

			198,	"shoot",	"up-left",	"B",
			203,	"fire",		"C",
			210,	"stop",		"fire",		"C",
			211,	"go",		"left",
			212,	"shoot",	"up-left",	"B",


			215,	"shoot",	"up-left",	"B",
			216,	"shoot",	"right",	"C",
			219,	"shoot",	"right",	"C",
			222,	"shoot",	"right",	"C",
			225,	"shoot",	"right",	"C",
			228,	"shoot",	"down",		"B",
			231,	"shoot",	"right",	"C",
			234,	"shoot",	"right",	"C",
			241,	"shoot",	"up",		"B",
			244,	"shoot",	"right",	"C",
			247,	"shoot",	"right",	"C",
			250,	"shoot",	"right",	"C",
			253,	"shoot",	"right",	"C",
			255,	"shoot",	"right",	"C",
			258,	"shoot",	"right",	"C",
			261,	"shoot",	"right",	"C",
			264,	"shoot",	"right",	"B",
			265,	"shoot",	"up",		"C",
			266,	"shoot",	"right",	"B",
			267,	"stop",
			268,	"shoot",	"right",	"B",
			270,	"shoot",	"right",	"B",
			272,	"shoot",	"right",	"B",
			274,	"shoot",	"right",	"B",
			276,	"shoot",	"right",	"B",
			278,	"shoot",	"right",	"B",
			280,	"shoot",	"right",	"B",
			282,	"shoot",	"right",	"B",
			284,	"shoot",	"right",	"B",
			286,	"shoot",	"right",	"B",
			287,	"go",		"right",
			305,	"shoot",	"down",		"B",
			306,	"go",		"left",
			307,	"shoot",	"up-right",	"B",
			315,	"go",		"down",
			323,	"stop",
			327,	"go",		"right",

			554,	"fire",		"B",
		},
		[2] =
		{
			2,	"fire",		"B",
			4,	"go",		"up",

			52,	"shoot",	"left",		"B",
			64,	"shoot",	"up-left",	"C",
			65,	"go",		"up-left",
			68,	"go",		"up",
			69,	"shoot",	"left",		"B",
			90,	"fire",		"B",
			91,	"go",		"up-left",
			104,	"go",		"left",
			107,	"shoot",	"up",		"C",
			108,	"go",		"up-left",
			114,	"fire",		"B",
			127,	"go",		"up",		"fire",	"B",

			158,	"shoot",	"up-right",	"B",
			170,	"go",		"up-left",
			174,	"shoot",	"up",		"B",

			206,	"fire",		"C",
			207,	"shoot",	"right",	"B",
			210,	"shoot",	"up-right",	"B",
			225,	"shoot",	"right",	"B",
			251,	"shoot",	"up",		"B",
			252,	"shoot",	"up-right",	"C",
			253,	"shoot",	"up-left",	"B",
			254,	"go",		"down",
			258,	"stop",
			263,	"shoot",	"up",		"B",
			264,	"go",		"up",
			271,	"go",		"down",
			275,	"shoot",	"up",	"B",
			276,	"go",		"left",
			286,	"shoot",	"up-left",		"B",
			294,	"go",		"down",
			301,	"shoot",	"down",	"B",
			303,	"shoot",	"down",	"B",
			305,	"stop",
			311,	"shoot",	"down-right",	"C",
			312,	"go",		"up",
			317,	"shoot",	"up",	"C",
			318,	"go",		"right",
			328,	"shoot",	"down-right",	"B",
			355,	"stop",
			356,	"tap",		"down-left",
		},
	},
	["3-1"] =
	{
		[1] =
		{
			7,	"fire",		"B",
			9,	"go",		"up-right",
			54,	"go",		"up",		"fire",		"B",
			84,	"fire",	"B",
			98,	"go",		"up-right",
			115,	"shoot",	"up-right",	"C",
			120,	"go",		"up",
			132,	"shoot",	"up-left",	"B",

			149,	"go",		"up-left",
			155,	"go",		"up",
			165,	"fire",		"B",

			166,	"go",		"right",
			--167,	"fire",		"B",
			174,	"fire",		"C",

			178,	"shoot",	"up",		"B",


			210,	"stop",
			211,	"tap",		"down-right",

			411,	"fire",		"B",
		},
		[2] =
		{
			4,	"fire",		"B",
			6,	"go",		"up-left",
			32,	"fire",		"B",
			51,	"shoot",	"up",	"C",
			64,	"fire",	"B",
			96,	"go",		"up",

			116,	"shoot",	"up-right",	"B",
			121,	"shoot",	"left",		"B",

			122,	"go",		"up-left",
			130,	"fire",		"B",
			142,	"shoot",	"up-right",	"B",

			167,	"go",		"up",		"fire",		"B",

			185,	"fire",		"B",
			186,	"go",		"left",

			197,	"go",		"up",		"fire",	"B",
			200,	"fire",		"C",
			201,	"go",		"down-left",

			211,	"stop",
		},
	},
	["3-2"] =
	{
		[1] =
		{
			3,	"fire",		"B",
			5,	"go",		"up-right",
			49,	"fire",		"B",
			50,	"stop",
			51,	"go",		"up",
			53,	"fire",		"C",
			73,	"shoot",	"up-right",	"B",
			75,	"stop",
			95,	"fire",		"C",
			97,	"shoot",	"up-right",	"B",
			98,	"go",		"up-left",
			114,	"go",		"up",
			131,	"fire",		"B",
			132,	"go",		"up-left",

			142,	"shoot",	"up-right",	"C",
			149,	"shoot",	"up",		"B",
			166,	"shoot",	"up-right",	"B",
			167,	"stop",
			180,	"shoot",	"up",		"B",
			191,	"shoot",	"up-right",	"C",
			192,	"go",		"left",
			202,	"go",		"up",
			206,	"fire",		"B",
			211,	"fire",		"B",
			212,	"go",		"up-right",
			218,	"go",		"up",
			226,	"go",		"up-right",
			230,	"go",		"right",
			244,	"shoot",	"up",	"B",
			245,	"go",		"right",

			451,	"fire",		"B",
		},
		[2] =
		{
			0,	"fire",		"B",
			8,	"go",		"up",
			21,	"fire",		"B",
			24,	"go",		"up-left",
			28,	"go",		"up",
			79,	"fire",		"C",
			82,	"shoot",	"up-left",	"B",

			115,	"fire",		"B",
			124,	"stop",
			128,	"shoot",	"up-left",	"B",
			129,	"go",		"up",
			130,	"fire",		"C",
			131,	"go",		"up-left",
			135,	"go",		"up",

			159,	"shoot",	"left",		"B",
			162,	"fire",		"B",
			173,	"shoot",	"up-left",	"B",
			174,	"go",		"left",
			187,	"shoot",	"up",		"B",
			188,	"go",		"down-left",
			192,	"go",		"left",
			211,	"shoot",	"up-left",	"C"
		},
	},
	["3-3"] =
	{
		[1] =
		{
			3,	"fire",		"B",
			5,	"go",		"up-right",
			51,	"shoot",	"up",		"C",
			96,	"shoot",	"up-left",	"C",
			124,	"go",		"up",

			199,	"fire",		"C",
			202,	"go",		"up-left",	"fire",		"B",
			204,	"fire",		"B",
			226,	"go",		"left",

			240,	"stop",
			241,	"tap",		"down-right",

			423,	"fire",		"B",
		},
		[2] =
		{
			0,	"fire",		"B",
			2,	"go",		"up",
			33,	"fire",		"C",
			64,	"go",		"up-left",	"fire",		"B",
			78,	"fire",		"C",
			101,	"go",		"up",
			141,	"go",		"up-left",
			143,	"go",		"up",

			175,	"go",		"up-left",
			183,	"go",		"up",
			188,	"go",		"up-right",
			196,	"go",		"up",

			207,	"shoot",	"up-left",	"C",	"fire",	"B",
			215,	"shoot",	"up-right",	"B",
			216,	"go",		"down",
			227,	"stop",
		},
	},
	["3-4"] =
	{
		[1] =
		{
			3,	"fire",		"B",
			5,	"go",		"up-right",
			51,	"go",		"up",
			63,	"shoot",	"up-right",	"B",
			100,	"shoot",	"left",		"B",
			136,	"fire",		"C",
			137,	"shoot",	"left",		"B",
			138,	"go",		"down-right",
			144,	"go",		"right",
			148,	"shoot",	"up-right",	"B",
			157,	"shoot",	"up",		"B",
			165,	"go",		"up-right",

			206,	"go",		"up",		"fire",		"B",

			216,	"shoot",	"up-right",	"B",
			217,	"go",		"left",

			229,	"shoot",	"up-left",	"C",
			230,	"go",		"down-right",

			232,	"go",		"right",

			250,	"stop",
			251,	"shoot",	"up",		"B",
			260,	"shoot",	"up-left",	"B",
			270,	"shoot",	"left",		"C",

			442,	"fire",		"B",
		},
		[2] =
		{
			0,	"fire",		"B",
			2,	"go",		"up-left",
			57,	"go",		"up",
			64,	"shoot",	"up-left",	"B",
			105,	"shoot",	"right",	"B",
			132,	"shoot",	"right",	"B",
			133,	"go",		"up-left",
			136,	"fire",		"B",
			143,	"go",		"up-right",

			--133,	"stop",
			--142,	"go",		"up",

			154,	"shoot",	"up",		"C",		-- Y=243
			155,	"go",		"up-left",
			162,	"go",		"left",
			173,	"shoot",	"up",		"B",
			176,	"go",		"up-left",
			202,	"fire",		"B",

			215,	"shoot",	"up",		"B",
			216,	"go",		"right",
			227,	"shoot",	"up-right",	"C",

			228,	"go",		"down-left",

			244,	"go",		"left",
			250,	"stop",
			251,	"shoot",	"up",		"B",
			260,	"shoot",	"up-right",	"B",
			270,	"shoot",	"right",	"C",

			--194,	"shoot",	"up-right",	"C",
		},
	},
	["3-5"] =
	{
		[1] =
		{
			3,	"fire",		"C",
			5,	"go",		"up-right",
			72,	"shoot",	"up-left",		"C",

			108,	"shoot",	"up-left",		"C",
			109,	"go",		"up",
			133,	"shoot",	"up-left",		"C",
			150,	"shoot",	"up-left",		"C",
			171,	"go",		"up-right",
			172,	"fire",		"B",
			189,	"go",		"up",
			207,	"shoot",	"up-right",		"B",
			208,	"tap",		"down",
			209,	"stop",

		},
		[2] =
		{
			0,	"fire",		"B",
			2,	"go",		"up",
			98,	"fire",		"C",
			99,	"go",		"left",
			133,	"stop",
			141,	"shoot",	"up",		"C",
			142,	"go",		"up",

			165,	"go",		"up-right",
			217,	"go",		"up",
			220,	"fire",		"C",
			221,	"go",		"down-right",

			239,	"go",		"down",		"fire",		"B",

			259,	"shoot",	"right",		"B",

			431,	"fire",		"B",
		},
	},
	["3-6"] =
	{
		[1] =
		{
			3,	"fire",		"B",
			5,	"go",		"up-left",
			11,	"go",		"up",
			78,	"fire",		"C",

			124,	"go",		"up-right",	"fire",		"C",
			146,	"go",		"right",
			151,	"go",		"up-left",
			161,	"go",		"up",
			171,	"fire",		"C",
			172,	"shoot",	"up-left",	"B",
			173,	"go",		"up-left",
			186,	"go",		"left",
			189,	"stop",

			210,	"shoot",	"up",		"C",
			211,	"go",		"right",
			225,	"stop",
			--216,	"shoot",	"up-right",	"B",
			226,	"shoot",	"up-left",	"B",
			243,	"go",		"right",

			269,	"shoot",	"up",		"B",
			278,	"go",		"up",
			293,	"stop",
			--306,	"fire",		"B",

			523,	"fire",		"B",
		},
		[2] =
		{
			0,	"fire",		"B",
			2,	"go",		"up",
			152,	"fire",		"C",
			162,	"go",		"up-left",
			165,	"shoot",	"up-right",	"B",
			172,	"go",		"left",
			191,	"fire",		"C",
			192,	"go",		"up-left",
			236,	"shoot",	"up-right",	"C",
			237,	"shoot",	"right",	"B",
			238,	"go",		"left",
			254,	"shoot",	"up",		"C",
			255,	"shoot",	"up-left",	"B",
			256,	"go",		"down-left",

			270,	"shoot",	"left",		"C",
			271,	"go",		"up",
			282,	"go",		"up-left",

			296,	"go",		"left",
			304,	"shoot",	"up",		"B",
			305,	"go",		"up-left",
			309,	"go",		"up",
			315,	"shoot",	"up-left",	"B",
			316,	"stop",

		},
	},
	["3-7"] =
	{
		[1] =
		{
			3,	"fire",		"B",
			5,	"go",		"up-right",

			30,	"go",		"up",

			70,	"shoot",	"up-right",	"C",
			111,	"shoot",	"up-right",	"B",
			128,	"shoot",	"up-right",	"B",
			129,	"tap",		"up-right",
			166,	"shoot",	"up-right",	"C",
			169,	"fire",		"B",
			171,	"shoot",	"right",	"B",
			172,	"go",		"up-right",

			186,	"go",		"up",
			207,	"shoot",	"up-right",	"B",

			405,	"fire",		"B",
		},
		[2] =
		{
			0,	"fire",		"B",
			2,	"go",		"up-left",
			29,	"go",		"up",

			69,	"shoot",	"up-left",	"C",
			106,	"fire",		"B",
			109,	"stop",
			110,	"shoot",	"up-left",	"B",
			111,	"go",		"left",
			113,	"stop",

			133,	"go",		"left",
			140,	"go",		"up",

			175,	"shoot",	"up-left",	"B",	"fire",		"C",
			184,	"go",		"up-right",
			196,	"go",		"up",

			219,	"shoot",	"up-left",	"B",
			220,	"go",		"down-left",
		},
	},
	["3-8"] =
	{
		[1] =
		{
			3,	"fire",		"B",
			5,	"go",		"up-right",
			31,	"go",		"up",		"fire",		"B",
			65,	"fire",		"C",
			67,	"shoot",	"up-left",	"B",
			68,	"go",		"up-right",
			116,	"shoot",	"up",		"C",
			117,	"shoot",	"left",		"B",
			160,	"fire",		"B",
			162,	"go",		"up",

			170,	"shoot",	"up-left",	"C",


			195,	"shoot",	"up-right",	"B",
			240,	"go",		"up-left",

			286,	"shoot",	"left",		"B",		-- Hits 321
			309,	"stop",

			478,	"fire",		"B",
		},
		[2] =
		{
			0,	"fire",		"B",
			2,	"go",		"up-left",
			51,	"go",		"up",
			70,	"fire",		"C",
			71,	"shoot",	"up-right",	"B",
			72,	"go",		"up-left",
			116,	"shoot",	"up",		"C",
			144,	"shoot",	"right",	"B",
			145,	"go",		"up",

			161,	"shoot",	"up-left",	"B",
			165,	"shoot",	"up-right",	"C",
			192,	"shoot",	"up-left",	"B",
			242,	"go",		"up-right",

			289,	"shoot",	"right",	"B",		-- 334
			300,	"stop",
		},
	},

	["3-9"] =
	{
		[1] =
		{
			0,	"fire",		"B",
			2,	"go",		"up",

			59,	"go",		"up-right",

			59+43,	"shoot",	"up",	"C",

			147,	"shoot",	"left",		"B",
			148,	"shoot",	"up-left",	"C",
			149,	"go",		"up-right",

			167,	"go",		"up",

			198,	"fire",		"C",
			199,	"go",		"left",

			202,	"shoot",	"up-left",	"B",

			203,	"go",		"right",

			223,	"go",		"down",

			421,	"fire",		"B",
		},
		[2] =
		{
			3,	"fire",		"B",
			5,	"go",		"up",

			83,	"go",		"left",		"fire",		"B",
			88,	"go",		"up-left",

			96,	"shoot",	"up-right",	"B",
			103,	"shoot",	"up",	"C",
			145,	"shoot",	"up-right",	"C",

			185,	"go",		"up",
			195,	"shoot",	"up-right",	"B",
			196,	"go",		"up-left",

			210,	"shoot",	"up",		"C",
			211,	"go",		"down",
		},
	},

	["3-10"] =
	{
		[1] =
		{
			0,	"fire",		"B",
			2,	"go",		"up-right",

			112,	"fire",		"B",
			114,	"fire",		"C",
			115,	"fire",		"B",
			--75,	"go",		"up",

			152,	"fire",		"B",
			156,	"go",		"up",
			158,	"shoot",	"up-right",	"B",	"fire",		"C",
			160,	"shoot",	"up-right",	"B",

			172,	"shoot",	"up-right",	"C",

			173,	"go",		"up-left",
			180,	"go",		"up",

			196,	"shoot",	"left",		"C",
			197,	"shoot",	"up-left",	"B",
			205,	"shoot",	"up-left",	"B",
			--205,	"shoot",	"up-left",	"B",

			221,	"go",		"up-left",

			230,	"fire",		"B",
			231,	"fire",		"C",

			233,	"go",		"up",
			234,	"shoot",	"up-left",	"B",
			240,	"shoot",	"up-left",	"B",
			244,	"shoot",	"up-left",	"B",
			245,	"stop",
			246,	"shoot",	"up-left",	"B",
			248,	"fire",	"B",
			250,	"fire",	"B",
			252,	"fire",	"B",
			254,	"fire",	"B",
			256,	"fire",	"B",
			258,	"fire",	"B",
			260,	"fire",	"B",
			262,	"fire",	"B",
			264,	"fire",	"B",
			266,	"fire",	"B",
			268,	"fire",	"B",
			270,	"fire",	"B",
			272,	"fire",	"B",
			274,	"fire",	"B",
			276,	"fire",	"B",
			278,	"fire",	"B",
			280,	"fire",	"B",
			282,	"fire",	"B",
			284,	"fire",	"B",
			286,	"fire",	"B",
			288,	"fire",	"B",
			290,	"fire",	"B",
			291,	"go",		"left",
			321,	"shoot",	"down-left",	"C",
			322,	"shoot",	"up-left",	"B",
			323,	"go",		"down-right",

			557,	"fire",		"B",

		},
		[2] =
		{
			3,	"fire",		"B",
			5,	"go",		"up-left",

			80,	"go",		"up",	"fire",		"B",
			84,	"fire",		"B",
			108,	"shoot",	"up-right",		"C",

			125,	"fire",		"B",
			129,	"fire",		"C",
			133,	"fire",		"B",

			149,	"fire",		"C",	"fire",		"B",
			154,	"fire",		"B",
			162,	"fire",		"B",
			163,	"fire",		"C",
			164,	"fire",		"B",
			169,	"fire",		"B",
			173,	"fire",		"C",
			176,	"fire",		"B",
			178,	"fire",		"B",
			182,	"stop",
			187,	"fire",		"B",
			189,	"fire",		"B",
			191,	"fire",		"B",
			193,	"fire",		"B",
			195,	"fire",		"B",
			197,	"fire",		"B",
			199,	"fire",		"B",
			201,	"fire",		"B",
			203,	"fire",		"B",
			205,	"shoot",	"up-right",	"B",

			209,	"go",		"up",
			221,	"shoot",	"down-right",	"C",
			238,	"shoot",	"up-right",	"B",
			239,	"go",		"left",
			267,	"shoot",	"up-right",	"B",
			268,	"go",		"up-left",
			280,	"go",		"left",
			304,	"shoot",	"up-left",	"B",
			329,	"shoot",	"up-left",	"B",
			331,	"go",		"right",
		},
	},
	["4-1"] =
	{
		[1] =
		{
			0,	"fire",		"B",
			2,	"go",		"up-right",


			88,	"go",		"right",	"fire",	"B",
			148,	"shoot",	"up-right",	"B",
			
			183,	"go",		"up-right",	"fire",	"B",

			226,	"go",		"right",
			244,	"fire",		"B",

			258,	"stop",

			427,	"fire",		"B",
		},
		[2] =
		{
			3,	"fire",		"B",
			5,	"go",		"up",
			66,	"go",		"up-left",	"fire",	"B",
			104,	"shoot",	"up",		"B",
			107,	"shoot",	"right",	"B",
			108,	"go",		"up-right",
			128,	"shoot",	"right",	"B",
			139,	"fire",		"B",
			141,	"fire",		"C",
			142,	"go",		"up",
			177,	"shoot",	"up-right",	"B",
			181,	"shoot",	"right",	"B",

			210,	"stop",
			221,	"shoot",	"down-right",	"B",
			223,	"shoot",	"right",	"B",

			210,	"stop",
		},
	},
	["4-2"] =
	{
		[1] =
		{
			3,	"fire",		"B",
			5,	"go",		"up",
			53,	"fire",		"C",

			76,	"shoot",	"up-right",	"B",
			105,	"shoot",	"up-right",	"B",
			136,	"fire",		"B",
			156,	"fire",		"C",

			157,	"go",		"right",
			191,	"shoot",	"up-right",	"B",
			192,	"go",		"up",

			195,	"shoot",	"up",		"C",
			220,	"go",		"up-right",
			280,	"stop",

			422,	"fire",		"B",
		},
		[2] =
		{
			0,	"fire",		"B",
			2,	"go",		"up-left",

			76,	"go",		"up",

			112,	"shoot",	"up-right",	"B",

			129,	"shoot",	"up-left",	"C",
			130,	"shoot",	"up-right",	"B",
			178,	"go",		"right",
			181,	"shoot",	"up",		"C",
			182,	"shoot",	"up-left",	"B",
			183,	"go",		"up-right",
			185,	"shoot",	"down-right",	"B",
			194,	"go",		"right",
			220,	"shoot",	"up",		"C",
			221,	"shoot",	"up-right",	"B",
			232,	"stop",
			233,	"tap",		"down-left",
		},
	},
	["4-3"] =
	{
		[1] =
		{
			3,	"fire",		"B",
			5,	"go",		"right",
			35,	"go",		"up-right",	"fire",		"B",

			61,	"fire",		"B",

			100,	"go",		"up",		"fire",	"B",

			110,	"fire",		"B",

			142,	"fire",		"B",
			174,	"fire",		"B",
			224,	"fire",		"B",
			225,	"go",		"up-right",
			227,	"go",		"up",
			237,	"shoot",	"down-left",	"C",

			281,	"fire",		"B",
			292,	"shoot",	"down-left",	"C",

			325,	"stop",

			334,	"shoot",	"down-left",	"C",
			340,	"shoot",	"up",		"B",
			
			378,	"fire",		"B",
			379,	"go",		"down",
			420,	"stop",

			564,	"fire",		"B",
		},
		[2] =
		{
			0,	"fire",		"B",
			2,	"go",		"left",

			34,	"go",		"up-left",

			136,	"go",		"up",	"fire",	"B",	"fire",		"C",

			153,	"fire",		"B",
			185,	"fire",		"B",

			235,	"fire",		"B",
			236,	"go",		"up-right",
			238,	"go",		"up",
			253,	"shoot",	"down-right",	"C",
			254,	"go",		"up-right",
			266,	"go",		"up",

			292,	"fire",		"B",
			293,	"go",		"up-right",
			309,	"go",		"up",
			311,	"shoot",	"down-right",	"C",
			
			344,	"stop",
			352,	"fire",		"B",
			353,	"shoot",	"down-right",	"C",
			390,	"shoot",	"up",		"B",
			391,	"go",		"down",
			420,	"stop",
		},
	},
	["4-4"] =
	{
		[1] =
		{
			3,	"fire",		"B",
			5,	"go",		"up",

			96,	"shoot",	"up-left",	"B",
			97,	"go",		"up-left",
			100,	"go",		"up",		"fire",		"C",
			101,	"shoot",	"down-right",	"B",

			118,	"shoot",	"up-left",	"B",

			153,	"fire",		"B",

			205,	"shoot",	"up-right",	"B",
			206,	"go",		"right",

			217,	"shoot",	"up",		"B",
			219,	"go",		"down",
			230,	"go",		"right",
			231,	"fire",	"C",

			270,	"stop",

			410,	"fire",		"B",
		},
		[2] =
		{
			0,	"fire",		"B",
			2,	"go",		"up",

			51,	"go",		"up-left",	"fire",	"B",
			55,	"go",		"up",
			89,	"fire",		"C",

			95,	"shoot",	"down-left",	"B",

			108,	"shoot",	"right",	"B",
			121,	"shoot",	"up-right",	"B",

			152,	"fire",		"B",

			154,	"go",		"up-left",
			164,	"go",		"up",

			219,	"shoot",	"up-left",	"B",

			220,	"go",		"left",
			224,	"shoot",	"up",	"B",
			225,	"go",		"down-left",
			229,	"go",		"down",
			249,	"go",		"left",
			250,	"fire",		"C",

			270,	"stop",
		},
	},
	["4-5"] =
	{
		[1] =
		{
			0,	"fire",		"B",
			2,	"go",		"up-left",
			11,	"go",		"up",		"fire",		"B",

			34,	"fire",		"B",

			114,	"shoot",	"up-left",	"B",
			145,	"fire",		"C",

			159,	"shoot",	"left",		"B",

			160,	"go",		"up-right",
			180,	"go",		"right",
			184,	"shoot",	"up",		"C",
			206,	"shoot",	"up-right",	"C",
			207,	"shoot",	"down-right",	"B",
			234,	"stop",
			237,	"shoot",	"up",		"C",

			431,	"fire",		"B",
		},
		[2] =
		{
			3,	"fire",		"B",
			5,	"go",		"up",

			53,	"fire",		"B",
			54,	"go",		"left",
			68,	"shoot",	"up",	"B",
			89,	"go",		"up-left",

			120,	"fire",		"B",
			132,	"stop",
			143,	"go",		"left",
			150,	"go",		"up",

			214,	"go",		"up-right",
			215,	"fire",		"B",
			216,	"go",		"up",

			223,	"shoot",	"up-right",	"B",
			224,	"go",		"up-left",

			238,	"shoot",	"up",		"C",
			276,	"stop",
		},
	},
	["4-6"] =
	{
		[1] =
		{
			0,	"fire",		"B",
			2,	"go",		"up-left",
			11,	"go",		"up",

			96,	"fire",		"B",
			128,	"fire",		"B",

			129,	"go",		"up-right",

			147,	"go",		"up",		"fire",		"B",

			166,	"shoot",	"right",	"C",

			173,	"fire",		"B",
			175,	"shoot",	"down",		"B",
			176,	"go",		"right",

			205,	"shoot",	"up-right",	"C",
			206,	"go",		"up-left",

			222,	"go",		"left",
			231,	"shoot",	"up-right",	"C",
			236,	"shoot",	"down",		"B",

			437,	"fire",		"B",
		},
		[2] =
		{
			3,	"fire",		"B",
			5,	"go",		"up-right",
			16,	"go",		"up",

			98,	"fire",		"B",
			130,	"fire",		"B",

			144,	"shoot",	"left",		"B",

			155,	"go",		"up-left",
			178,	"go",		"left",

			184,	"shoot",	"up-left",	"C",
			185,	"shoot",	"up",		"B",
			186,	"go",		"up-right",
			196,	"shoot",	"down",		"B",
			197,	"go",		"up",
			215,	"shoot",	"down",		"B",

			216,	"go",		"left",

			223,	"shoot",	"up-left",	"C",
			224,	"go",		"right",
			227,	"stop",
			237,	"shoot",	"up",		"B",
			238,	"go",		"right",
			242,	"stop",		"tap",		"down-left",
			--150,	"go",		"left",		"fire",		"B",
			--158,	"shoot",	"up-left",	"B",
			--159,	"go",		"up-left",
		},
	},
	["4-7"] =
	{
		[1] =
		{
			3, 	"fire",		"B",
			5,	"go",		"up-right",

			100,	"go",		"up-left",

			--123,	"shoot",	"left",		"B",
			123,	"go",		"up",

			135,	"shoot",	"left",		"B",

			168,	"shoot",	"down-left",	"B",
			173,	"go",		"up-left",

			191,	"shoot",	"down-left",	"B",
			192,	"go",		"left",

			199,	"shoot",	"up",		"C",
			200,	"go",		"up-left",
			217,	"go",		"up",
			226,	"go",		"up-right",

			253,	"go",		"right",
			257,	"shoot",	"up-left",	"C",
			270,	"go",		"up-right",

			306,	"shoot",	"up",		"B",
			311,	"go",		"up",

			366,	"stop",

			510,	"fire",		"B",
		},
		[2] =
		{
			0, 	"fire",		"B",
			2,	"go",		"up",
			119,	"go",		"up-left",

			153,	"fire",		"B",
			163,	"shoot",	"up",		"C",
			173,	"fire",		"B",
			200,	"fire",		"B",

			231,	"shoot",	"up",		"B",
			261,	"go",		"up",
			262,	"fire",		"B",

			284,	"shoot",	"up-left",	"B",
			285,	"stop",
			286,	"shoot",	"right",	"C",
			309,	"shoot",	"up",		"B",

			366,	"stop",
		},
	},
	["4-8"] =
	{
		[1] =
		{
			0, 	"fire",		"B",
			2,	"go",		"up",

			62,	"go",		"up-right",
			63,	"fire",		"C",

			74,	"go",		"up",

			105,	"fire",		"B",
			128,	"fire",		"B",
			130,	"go",		"up-left",

			138,	"go",		"up",

			162,	"shoot",	"up-left",	"B",
			195,	"shoot",	"up-left",	"B",
			196,	"go",		"up-right",
			197,	"shoot",	"right",	"B",

			221,	"go",		"right",	"fire",		"B",

			223,	"fire",		"B",

			246,	"fire",		"B",

			271,	"fire",		"B",
			293,	"shoot",	"down",		"C",
			304,	"fire",		"B",
			338,	"shoot",	"down",		"C",
			339,	"shoot",	"down-right",	"B",
			364,	"shoot",	"down-right",	"B",

			556,	"fire",		"B",
		},
		[2] =
		{
			3, 	"fire",		"B",
			8,	"fire",		"C",

			9,	"go",		"left",

			44,	"stop",
			50,	"shoot",	"up",		"C",

			51,	"go",		"left",

			92,	"shoot",	"up",		"C",
			134,	"shoot",	"up",		"C",

			173,	"stop",
			176,	"shoot",	"up",		"C",
			177,	"go",		"up-left",
			248,	"go",		"up",
			290,	"go",		"down",

			300,	"fire",		"B",
		},
	},
	["4-9"] =
	{
		[1] =
		{
			0, 	"fire",		"B",
			2,	"go",		"right",

			45,	"go",		"up-right",

			76,	"go",		"up",

			119,	"fire",		"C",
			154,	"stop",		"shoot",	"left",		"B",
			161,	"fire",		"C",	"go",	"up",

			169,	"go",		"left",		"fire",		"B",

			213,	"go",		"up-left",

			231,	"go",		"up",		"fire",		"B",

			295,	"shoot",	"up-right",	"C",
			296,	"go",		"up-right",
			299,	"go",		"up",

			306,	"shoot",	"right",	"B",
			322,	"stop",

			390,	"go",		"up",

			397,	"go",		"right",

			428,	"go",		"down-right",
			461,	"go",		"down",
			471,	"go",		"right",
			472,	"fire",		"B",		"stop",

			641,	"fire",		"B",
		},
		[2] =
		{
			3, 	"fire",		"B",
			5,	"go",		"left",

			46,	"go",		"up-left",
			77,	"go",		"up",

			120,	"fire",		"C",

			152,	"shoot",	"right",	"B",
			156,	"stop",	
			162,	"fire",		"C",	"go",	"up",

			170,	"go",		"right",

			202,	"go",		"down",

			206,	"shoot",	"up-left",	"C",
			207,	"shoot",	"up-right",	"B",
			208,	"go",		"right",

			216,	"go",		"up-right",

			241,	"go",	"up",	"fire",	"B",

			305,	"go",	"up-left",	"fire",		"C",

			311,	"go",		"up",

			337,	"go",		"left",

			370,	"go",		"down-left",

			392,	"shoot",	"up-left",		"C",

			403,	"go",		"down",
			414,	"go",		"left",

			440,	"shoot",	"up",		"B",
			472,	"fire",		"B",		"stop",
		},
	},
	["4-10"] =
	{
		[1] =
		{
			0, 	"fire",		"B",
			2,	"go",		"up-right",

			17,	"go",		"up",		"fire",		"B",
			51,	"fire",		"C",

			61,	"shoot",	"up-right",	"B",

			80,	"shoot",	"up-right",	"B",
			87,	"go",		"right",

			172,	"go",		"up-right",

			184,	"go",		"right",
			195,	"go",		"down-right",
			207,	"go",		"down",
			218,	"go",		"down-left",
			230,	"go",		"left",
			241,	"go",		"up-left",
			253,	"go",		"up",
			264,	"go",		"up-right",
			276,	"go",		"right",
			287,	"go",		"down-right",
			299,	"go",		"down",
			310,	"go",		"down-left",
			322,	"go",		"left",
			333,	"go",		"up-left",
			345,	"go",		"up",

			356,	"go",		"left",
			358,	"tap",		"right",
			361,	"tap",		"right",
			364,	"tap",		"right",
			367,	"tap",		"right",
			370,	"tap",		"right",
			373,	"tap",		"right",
			376,	"tap",		"right",
			379,	"tap",		"right",
			382,	"tap",		"right",
			385,	"tap",		"right",
			388,	"tap",		"right",
			391,	"tap",		"right",
			394,	"tap",		"right",
			397,	"tap",		"right",
			400,	"tap",		"right",
			403,	"tap",		"right",
			406,	"tap",		"right",
			409,	"tap",		"right",
			412,	"tap",		"right",
			415,	"tap",		"right",
			418,	"tap",		"right",
			421,	"tap",		"right",
			424,	"tap",		"right",
			427,	"tap",		"right",
			430,	"tap",		"right",
			433,	"tap",		"right",
			436,	"tap",		"right",
			439,	"tap",		"right",
			442,	"stop",
			443,	"shoot",	"right",	"C",
			533,	"shoot",	"right",	"C",
			623,	"shoot",	"right",	"C",

			740,	"go",		"right",
			780,	"stop",


			781,	"shoot",	"up",	"B",
			783,	"fire",		"B",
			790,	"fire",		"C",
			806,	"fire",		"B",	"fire",		"C",
			808,	"fire",		"B",
			810,	"fire",		"B",	"fire",		"C",
			812,	"fire",		"B",
			814,	"fire",		"B",	"fire",		"C",
			816,	"fire",		"B",
			818,	"fire",		"B",	"fire",		"C",
			820,	"fire",		"B",
			822,	"fire",		"B",	"fire",		"C",
			824,	"fire",		"B",
			826,	"fire",		"B",	"fire",		"C",
			828,	"fire",		"B",
			830,	"fire",		"B",	"fire",		"C",
			832,	"fire",		"B",

			836,	"go",		"up",

			944,	"stop",		"tap",		"down-left",

			1224,	"fire",		"B",
		},
		[2] =
		{
			3, 	"fire",		"B",
			5,	"go",		"up",
			8,	"fire",		"B",

			47,	"fire",		"B",
			62,	"shoot",	"up-left",	"C",
			82,	"shoot",	"up-left",	"B",
			85,	"go",		"left",
			172,	"go",		"down-left",
			184,	"go",		"left",
			195,	"go",		"up-left",
			207,	"go",		"up",
			218,	"go",		"up-right",
			230,	"go",		"right",
			241,	"go",		"down-right",
			253,	"go",		"down",
			264,	"go",		"down-left",
			276,	"go",		"left",
			287,	"go",		"up-left",
			299,	"go",		"up",
			310,	"go",		"up-right",
			322,	"go",		"right",
			333,	"go",		"down-right",
			345,	"go",		"down",


			356,	"go",		"right",
			358,	"tap",		"left",
			361,	"tap",		"left",
			364,	"tap",		"left",
			367,	"tap",		"left",
			370,	"tap",		"left",
			373,	"tap",		"left",
			376,	"tap",		"left",
			379,	"tap",		"left",
			382,	"tap",		"left",
			385,	"tap",		"left",
			388,	"tap",		"left",
			391,	"tap",		"left",
			394,	"tap",		"left",
			397,	"tap",		"left",
			400,	"tap",		"left",
			403,	"tap",		"left",
			406,	"tap",		"left",
			409,	"tap",		"left",
			412,	"tap",		"left",
			415,	"tap",		"left",
			418,	"tap",		"left",
			421,	"tap",		"left",
			424,	"tap",		"left",
			427,	"tap",		"left",
			430,	"tap",		"left",
			433,	"tap",		"left",
			436,	"tap",		"left",
			439,	"tap",		"left",
			442,	"stop",
			443,	"tap",		"left",

			488,	"shoot",	"left",	"C",
			578,	"shoot",	"left",	"C",
			668,	"shoot",	"right",	"C",

			740,	"go",		"left",
			780,	"stop",

			781,	"shoot",	"up",	"B",
			783,	"fire",		"B",
			790,	"fire",		"C",
			806,	"fire",		"B",	"fire",		"C",
			808,	"fire",		"B",
			810,	"fire",		"B",	"fire",		"C",
			812,	"fire",		"B",
			814,	"fire",		"B",	"fire",		"C",
			816,	"fire",		"B",
			818,	"fire",		"B",	"fire",		"C",
			820,	"fire",		"B",
			822,	"fire",		"B",	"fire",		"C",
			824,	"fire",		"B",
			826,	"fire",		"B",	"fire",		"C",
			828,	"fire",		"B",
			830,	"fire",		"B",	"fire",		"C",
			832,	"fire",		"B",

			836,	"go",		"up",

			944,	"stop",		"tap",		"down-right",
		},
	},
	["5-1"] =
	{
		[1] =
		{
			3,	"fire",		"B",

			5,	"go",		"up",
			41,	"go",		"up-right",

			84,	"fire",		"C",

			120,	"shoot",	"up-right",	"B",
			122,	"shoot",	"up",	"B",

			129,	"fire",		"B",
			139,	"go",		"up",		"fire",		"B",

			143,	"go",		"up-left",

			172,	"go",		"up",		"fire",		"C",

			196,	"shoot",	"up-right",	"B",
			219,	"shoot",	"up-left",	"B",

			220,	"go",		"down",

			227,	"stop",		"shoot",	"up",		"B",

			231,	"go",		"up-left",

			253,	"shoot",	"up-right",	"B",
			254,	"go",		"left",
			268,	"shoot",	"up",		"B",

			285,	"stop",

			457,	"fire",		"B",
		},
		[2] =
		{
			0,	"fire",		"B",
			3,	"go",		"up",

			29,	"go",		"up-left",

			79,	"go",		"up",

			118,	"shoot",	"up-left",	"B",
			146,	"fire",		"C",
			147,	"shoot",	"down-left",	"B",
			152,	"shoot",	"up-left",	"B",
			153,	"go",		"up-left",
			165,	"go",		"left",
			170,	"go",		"down-left",
			178,	"go",		"left",
			190,	"shoot",	"up",		"B",
			193,	"go",		"up-left",

			204,	"shoot",	"up",		"B",
			219,	"go",		"up",
			234,	"go",		"up-right",	"fire",		"C",

			240,	"shoot",	"up",		"B",

			260,	"go",		"right",
			263,	"shoot",	"up-left",	"B",

			280,	"go",		"down",

			296,	"stop",
		},
	},
	["5-2"] =
	{
		[1] =
		{
			0,	"fire",		"B",
			2,	"go",		"right",

			22,	"go",		"up-right",

			118,	"shoot",	"up",	"B",
			121,	"shoot",	"up",	"B",
			126,	"shoot",	"up",	"C",
			133,	"go",		"up",

			164,	"fire",		"B",
			165,	"go",		"up-left",
			167,	"shoot",	"left",	"B",
			168,	"go",		"up",	"fire",		"C",

			185,	"fire",		"C",

			191,	"fire",		"B",
			193,	"fire",		"B",

			196,	"fire",		"C",
			204,	"fire",		"C",

			206,	"fire",		"C",
			207,	"fire",		"B",
			209,	"fire",		"B",

			210,	"go",		"down-left",

			218,	"go",		"down",

			224,	"go",	"up",	"fire",		"B",	"fire",		"C",
			226,	"fire",		"B",
			231,	"fire",		"C",
			236,	"fire",		"B",		"fire",		"C",
			237,	"go",		"down-left",
			239,	"shoot",	"up",		"B",
			240,	"go",		"left",
			244,	"shoot",	"up-left",		"B",
			253,	"go",		"up-left",
			271,	"fire",		"B",
			286,	"stop",
			289,	"shoot",	"down",			"B",

			509,	"fire",		"B",
		},
		[2] =
		{
			3,	"fire",		"B",
			5,	"go",		"up-left",
			69,	"fire",		"B",
			72,	"go",		"up",		"fire",		"B",

			100,	"go",		"up-left",

			105,	"fire",		"B",

			128,	"fire",		"B",
			130,	"fire",		"C",
			134,	"fire",		"B",

			142,	"go",		"up",

			169,	"shoot",	"up-left",	"C",
			170,	"stop",
			174,	"shoot",	"right",	"B",
			175,	"go",		"up",

			179,	"shoot",	"up-left",	"B",
			184,	"shoot",	"up-left",	"C",
			197,	"shoot",	"up-right",	"B",	"go",		"up-right",

			201,	"shoot",	"up-left",	"B",
			204,	"shoot",	"left",	"C",
			217,	"shoot",	"left",	"B",	"fire",	"C",
			228,	"shoot",	"left",	"B",	"fire",	"C",
			239,	"shoot",	"up-left",	"B",
			242,	"fire",		"B",

			274,	"stop",
			275,	"tap",		"down-left",
		},
	},
	["5-3"] =
	{
		[1] =
		{
			0,	"fire",		"B",
			2,	"go",		"up",
			94,	"shoot",	"up-right",		"B",
			95,	"go",		"up-left",
			113,	"go",		"up",

			141,	"go",		"up-right",
			158,	"go",		"right",		"fire",		"B",
			160,	"fire",		"B",
			178,	"shoot",	"up-right",		"C",
			183,	"fire",		"B",
			184,	"go",		"down-right",
			200,	"go",		"up-right",		"fire",		"B",

			206,	"go",		"up",
			234,	"go",		"up-right",
			237,	"fire",		"C",
			265,	"go",		"right",
			285,	"go",		"up-right",

			305,	"stop",

			450,	"fire",		"B",
		},
		[2] =
		{
			3,	"fire",		"B",
			5,	"go",		"up",

			43,	"go",		"up-right",
			45,	"go",		"up",

			114,	"fire",		"B",
			116,	"fire",		"B",	"fire",		"C",

			157,	"go",		"left",
			161,	"shoot",	"up",	"B",
			166,	"shoot",	"up",	"B",
			183,	"go",		"up-left",
			187,	"shoot",	"up-right",	"B",
			221,	"go",		"up-right",
			225,	"shoot",	"up-left",	"B",

			255,	"stop",
			256,	"tap",		"down-left",
		},
	},
	["5-4"] =
	{
		[1] =
		{
			0,	"fire",		"B",
			2,	"go",		"up-right",

			50,	"go",		"up",

			133,	"fire",		"C",
			--134,	"go",		"right",

			154,	"fire",		"B",
			156,	"fire",		"B",
			158,	"go",		"right",
			190,	"go",		"up-right",

			200,	"go",		"up",	"fire",		"B",

			225,	"fire",		"B",
			230,	"fire",		"B",
			237,	"go",		"up-right",

			251,	"go",		"right",
			253,	"shoot",	"right",	"B",
			254,	"go",		"up-left",

			256,	"go",		"up",
			260,	"shoot",	"right",	"B",
			265,	"shoot",	"right",	"B",
			271,	"shoot",	"right",	"B",
			272,	"go",		"up-left",
			286,	"go",		"right",	"fire",		"B",
			288,	"fire",		"B",

			469,	"fire",		"B",
		},
		[2] =
		{
			3,	"fire",		"B",
			5,	"go",		"up-left",
			47,	"go",		"up",
			133,	"fire",		"C",

			135,	"go",		"up-left",
			154,	"go",		"up",		"fire",		"B",
			156,	"fire",		"B",
			157,	"go",		"up-left",

			169,	"go",		"up",
			181,	"go",		"left",

			205,	"go",		"up",
			213,	"shoot",	"right",	"C",
			226,	"shoot",	"right",	"B",
			235,	"stop",
			237,	"shoot",	"right",	"B",
			255,	"go",		"up",

			268,	"fire",		"B",

			279,	"stop",
			286,	"fire",		"B",
			288,	"fire",		"B",
		},
	},
	["5-5"] =
	{
		[1] =
		{
			0,	"fire",		"B",
			2,	"go",		"up-right",

			28,	"go",		"up",
			138,	"fire",		"C",
			140,	"go",		"up-left",

			168,	"go",		"up",

			179,	"stop",
			185,	"shoot",	"down",		"B",
			187,	"shoot",	"down",		"B",

			189,	"tap",		"down-right",
			192,	"tap",		"right",
			195,	"tap",		"up-right",
			198,	"tap",		"up",
			201,	"tap",		"up-left",
			204,	"tap",		"left",
			207,	"tap",		"down-left",

			210,	"shoot",	"down",		"B",
			211,	"go",		"up-left",
			217,	"go",		"up",

			243,	"shoot",	"up-right",	"B",
			244,	"go",		"down",
			247,	"stop",
			250,	"go",		"up",
			253,	"shoot",	"up-right",	"B",
			264,	"shoot",	"up-right",	"B",
			265,	"go",		"down",

			272,	"shoot",	"up-right",	"B",
			287,	"shoot",	"up-right",	"B",

			291,	"stop",

			475,	"fire",		"B",
		},
		[2] =
		{
			3,	"fire",		"B",
			5,	"go",		"up-left",

			31,	"go",		"up",

			123,	"shoot",	"up-left",	"B",

			139,	"fire",		"C",
			140,	"go",		"up-right",

			148,	"shoot",	"down-left",	"B",
			172,	"shoot",	"down",	"B",
			173,	"go",		"up",


			217,	"shoot",	"up-left",	"B",
			221,	"go",		"up-left",	"fire",		"B",
			227,	"go",		"up",
			247,	"shoot",	"left",		"B",	"fire",	"C",
			254,	"shoot",	"left",		"B",

			258,	"shoot",	"left",		"B",
			262,	"go",		"left",	
			269,	"stop",
			272,	"fire",		"B",
			273,	"go",		"right",
			276,	"shoot",	"left",	"B",
			289,	"stop",
			290,	"tap",		"down-left",

		},
	},
	["5-6"] =
	{
		[1] =
		{
			3,	"fire",		"B",
			5,	"go",		"up",

			83,	"go",		"up-right",

			99,	"go",		"right",
			107,	"shoot",	"up",		"C",
			109,	"fire",		"B",
			110,	"go",		"up-right",
			112,	"shoot",	"down-right",	"B",

			133,	"shoot",	"up",		"B",
			136,	"shoot",	"up",		"B",
			143,	"go",		"up",
			171,	"shoot",	"down",		"B",
			174,	"fire",		"C",
			180,	"shoot",	"down",		"B",

			211,	"fire",		"B",
			213,	"fire",		"B",

			241,	"shoot",	"up-left",	"B",
			244,	"go",		"up-right",
			254,	"shoot",	"down",		"B",
			266,	"shoot",	"down",		"B",
			267,	"go",		"up",

			275,	"shoot",	"right",		"B",
			280,	"go",		"left",

			294,	"shoot",	"up-left",	"B",
			302,	"stop",		"fire",		"B",
			303,	"stop",

			479,	"fire",		"B",
		},
		[2] =
		{
			0,	"fire",		"B",
			2,	"go",		"up",
			69,	"go",		"up-left",

			113,	"shoot",	"up",		"C",
			136,	"shoot",	"up",		"B",
			138,	"shoot",	"up",		"B",
			155,	"go",		"up",
			170,	"fire",		"C",

			190,	"fire",		"B",
			192,	"fire",		"B",

			217,	"go",		"up-right",
			235,	"fire",	"B",
			252,	"go",		"up-left",

			268,	"shoot",	"up-right",	"B",
			271,	"shoot",	"up-right",	"B",

			284,	"go",		"left",		"fire",		"B",
			286,	"fire",		"B",

			287,	"tap",		"down-right",
			288,	"stop",
		},
	},
	["5-7"] =
	{
		[1] =
		{
			0,	"fire",		"B",
			7,	"fire",		"C",
			8,	"go",		"right",
			24,	"go",		"up-right",

			91,	"shoot",	"up-left",	"B",
			94,	"shoot",	"up-left",	"B",

			122,	"shoot",	"left",		"B",
			123,	"go",		"up",
			138,	"fire",		"C",

			147,	"shoot",	"down-left",		"B",

			164,	"shoot",	"down-left",		"B",
			--166,	"fire",		"B",
			184,	"fire",		"B",
			186,	"fire",		"B",
			187,	"go",		"down",
			191,	"go",		"down-left",
			195,	"go",		"up-right",
			224,	"go",		"up",		"fire",	"C",
			228,	"go",		"up-left",
			238,	"go",		"up",
			246,	"shoot",	"left",		"B",
			248,	"shoot",	"up",		"B",
			249,	"go",		"up-left",
			261,	"go",		"left",
			266,	"fire",		"C",
			268,	"fire",		"B",
			278,	"go",		"up",
			296,	"go",		"up-left",
			306,	"shoot",	"down-left",	"B",
			307,	"go",		"right",
			310,	"shoot",	"up-right",	"B",
			311,	"go",		"left",	
			345,	"stop",
			346,	"shoot",	"up",		"B",
			348,	"shoot",	"up",		"B",
			349,	"stop",
			356,	"go",		"right",
			358,	"stop",
			372,	"shoot",	"down-left",	"B",
			374,	"shoot",	"up",		"B",
			381,	"go",		"down-left",
			399,	"go",		"left",		"fire",	"B",
			401,	"fire",		"B",

			433,	"stop",

			577,	"fire",		"B",
		},
		[2] =
		{
			3,	"fire",		"B",
			8,	"fire",		"C",
			9,	"go",		"left",
			24,	"go",		"up-left",
			88,	"go",		"up",
			96,	"shoot",	"up-right",	"B",
			101,	"shoot",	"up-right",	"B",

			126,	"shoot",	"right",	"B",
			131,	"go",		"up-right",

			141,	"go",		"up",		"fire",		"C",
			145,	"shoot",	"down-right",	"B",
			151,	"fire",		"C",
			157,	"go",		"right",
			168,	"go",		"up-right",	"fire",		"B",
			174,	"shoot",	"down",		"B",
			175,	"go",		"up",

			179,	"fire",		"B",
				"fire",		"C",
			183,	"fire",		"C",
			185,	"fire",		"B",
			187,	"fire",		"B",
			190,	"go",		"down-right",

			192,	"shoot",	"up",		"B",
			203,	"go",		"up-left",
			215,	"go",		"up",
			222,	"go",		"right",
			224,	"shoot",	"up",		"B",
			229,	"shoot",	"up-right",	"B",
			246,	"go",		"up-right",
			250,	"fire",		"B",
			256,	"shoot",	"up-left",	"B",

			280,	"go",		"up",
			321,	"fire",		"B",
			326,	"go",		"up-right",
			332,	"go",		"right",
			339,	"go",		"up",
			359,	"stop",
			364,	"fire",		"B",
			366,	"fire",		"B",
			368,	"go",		"up",
			411,	"stop",
		},
	},
	["5-8"] =
	{
		[1] =
		{
			3,	"fire",		"B",
			5,	"go",		"up-right",

			46,	"go",		"up",

			150,	"shoot",	"up-left",	"B",
			152,	"shoot",	"up-left",	"B",

			169,	"shoot",	"up-left",	"B",
			171,	"shoot",	"up-left",	"B",

			185,	"shoot",	"left",		"B",
			187,	"shoot",	"left",		"B",

			194,	"shoot",	"left",		"B",
			196,	"shoot",	"left",		"B",

			203,	"shoot",	"left",		"B",
			205,	"shoot",	"left",		"B",
			206,	"stop",
			210,	"go",		"up",

			212,	"shoot",	"up-left",		"B",
			214,	"shoot",	"up-left",		"B",

			228,	"shoot",	"left",		"B",
			230,	"shoot",	"left",		"B",

			237,	"shoot",	"left",		"B",
			239,	"shoot",	"left",		"B",

			246,	"shoot",	"left",		"B",
			248,	"shoot",	"left",		"B",

			251,	"stop",
			255,	"shoot",	"left",		"B",
			257,	"shoot",	"left",		"B",
			258,	"go",		"up",

			264,	"shoot",	"left",		"B",
			266,	"shoot",	"left",		"B",

			273,	"shoot",	"left",		"B",
			275,	"shoot",	"left",		"B",

			282,	"shoot",	"left",		"B",
			284,	"shoot",	"left",		"B",

			291,	"shoot",	"left",		"B",
			293,	"shoot",	"left",		"B",

			295,	"stop",
			300,	"shoot",	"left",		"B",
			302,	"shoot",	"left",		"B",
			303,	"go",		"up",

			309,	"shoot",	"left",		"B",
			311,	"shoot",	"left",		"B",

			318,	"shoot",	"left",		"B",
			320,	"shoot",	"left",		"B",

			327,	"shoot",	"left",		"B",
			329,	"shoot",	"left",		"B",

			336,	"shoot",	"left",		"B",
			338,	"shoot",	"left",		"B",

			340,	"stop",
			345,	"shoot",	"left",		"B",
			347,	"shoot",	"left",		"B",

			523,	"fire",		"B",
		},
		[2] =
		{
			0,	"fire",		"B",
			2,	"go",		"up-left",
			45,	"go",		"up",

			148,	"shoot",	"up-right",	"B",
			150,	"shoot",	"up-right",	"B",

			168,	"shoot",	"up-right",	"B",
			170,	"shoot",	"up-right",	"B",

			185,	"shoot",	"right",	"B",
			187,	"shoot",	"right",	"B",

			195,	"shoot",	"right",	"B",
			197,	"shoot",	"right",	"B",

			202,	"stop",
			205,	"shoot",	"right",	"B",
			207,	"shoot",	"right",	"B",
			210,	"go",		"up",

			215,	"shoot",	"up-right",	"B",
			217,	"shoot",	"up-right",	"B",

			234,	"shoot",	"right",	"B",
			236,	"shoot",	"right",	"B",

			239,	"stop",
			240,	"go",		"up",

			244,	"shoot",	"right",	"B",
			246,	"shoot",	"right",	"B",

			248,	"stop",

			254,	"shoot",	"right",	"B",
			256,	"shoot",	"right",	"B",

			264,	"shoot",	"right",	"B",
			266,	"shoot",	"right",	"B",

			274,	"shoot",	"right",	"B",
			276,	"shoot",	"right",	"B",
			277,	"go",		"up",

			284,	"shoot",	"right",	"B",
			286,	"shoot",	"right",	"B",

			294,	"shoot",	"right",	"B",
			296,	"shoot",	"right",	"B",

			304,	"shoot",	"right",	"B",
			306,	"shoot",	"right",	"B",

			309,	"stop",
			314,	"shoot",	"right",	"B",
			316,	"shoot",	"right",	"B",
			317,	"go",		"up",

			324,	"shoot",	"right",	"B",
			326,	"shoot",	"right",	"B",

			334,	"shoot",	"right",	"B",
			336,	"shoot",	"right",	"B",

			341,	"stop",
			344,	"shoot",	"right",	"B",
			346,	"shoot",	"right",	"B",

			354,	"shoot",	"right",	"B",
			356,	"shoot",	"right",	"B",

			364,	"shoot",	"right",	"B",
			366,	"shoot",	"right",	"B",
		},
	},
	["5-9"] =
	{
		[1] =
		{
			0,	"fire",		"B",

			2,	"go",		"right",
			8,	"go",		"up-right",

			31,	"shoot",	"right",	"B",
			44,	"shoot",	"right",	"B",
			45,	"go",		"right",
			48,	"fire",		"B",
			49,	"go",		"up-left",
			51,	"go",		"up",

			127,	"shoot",	"up-left",	"B",

			144,	"shoot",	"right",	"B",
			169,	"shoot",	"down-left",	"B",
			177,	"shoot",	"down-left",	"B",


			186,	"shoot",	"up-right",	"B",

			206,	"go",		"right",

			210,	"shoot",	"up",		"B",
			212,	"shoot",	"up",		"B",
			214,	"go",		"up",

			220,	"shoot",	"down-right",	"B",
			222,	"shoot",	"up-left",	"B",

			235,	"go",		"up-right",

			244,	"fire",		"B",
			245,	"go",		"left",
			261,	"go",		"left",

			262,	"fire",		"B",
			264,	"fire",		"B",
			265,	"go",		"down-left",
			267,	"shoot",	"right",	"B",
			268,	"go",		"left",
			272,	"go",		"up-left",
			276,	"go",		"up",
			280,	"shoot",	"right",	"B",

			290,	"go",		"down-right",
			295,	"stop",

			469,	"fire",		"B",
		},
		[2] =
		{
			3,	"fire",		"B",

			5,	"go",		"up",

			63,	"fire",		"C",
			74,	"fire",		"B",
			76,	"fire",		"B",

			108,	"go",		"up-left",
			126,	"go",		"up",

			134,	"shoot",	"left",		"B",
			139,	"shoot",	"left",		"B",
			140,	"go",		"up-right",

			148,	"shoot",	"left",		"C",
			149,	"go",		"up",

			169,	"shoot",	"up-left",	"B",
			182,	"shoot",	"up-left",	"B",

			190,	"stop",
			192,	"fire",		"C",
			193,	"shoot",	"up-left",	"B",
			194,	"go",		"left",

			201,	"stop",

			204,	"shoot",	"up",		"B",
			218,	"shoot",	"up",		"B",
			221,	"go",		"left",

			247,	"shoot",	"down-left",		"B",
			254,	"stop",
			260,	"shoot",	"down-left",		"B",
			271,	"shoot",	"down-left",		"B",
			284,	"shoot",	"down-left",		"B",
			285,	"go",		"right",
			295,	"stop",
		},
	},
	["5-10"] =
	{
		[1] =
		{
			0,	"fire",		"B",

			2,	"go",		"up-right",
			15,	"go",		"up",		"fire",	"B",

			32,	"fire",		"C",
			60,	"fire",		"B",

			62,	"fire",		"B",

			71,	"fire",		"B",
			73,	"fire",		"B",

			97,	"fire",		"B",

			135,	"fire",		"B",
			140,	"fire",		"B",

			142,	"shoot",	"up-right",	"C",
			179,	"shoot",	"up-right",	"B",
			181,	"shoot",	"up-right",	"B",

			183,	"shoot",	"up-right",	"C",
			219,	"go",		"right",	"fire",	"B",
			223,	"fire",	"B",
			227,	"fire",	"C",
			244,	"fire",	"B",
			247,	"fire",	"B",
			251,	"fire",	"C",
			256,	"fire",	"B",

			257,	"go",	"up-left",
			280,	"go",	"left",
			283,	"shoot",	"right",	"B",
			284,	"stop",
			285,	"shoot",	"right",	"B",
			303,	"go",		"right",

			413,	"shoot",	"down",		"B",
			414,	"go",		"down",
			415,	"shoot",	"down",	"B",
			427,	"shoot",	"down",	"B",

			500,	"stop",
			501,	"shoot",	"up-right",	"B",
			503,	"shoot",	"up-right",	"B",
			509,	"shoot",	"up-right",	"B",
			511,	"shoot",	"up-left",	"B",
			517,	"shoot",	"up-left",	"B",
			519,	"shoot",	"up-left",	"B",
			524,	"shoot",	"down",	"B",
			526,	"shoot",	"down",	"B",
			530,	"shoot",	"down",	"B",

			686,	"fire",		"B",
			717,	"fire",		"B",
			
			2000,	"stop",
		},
		[2] =
		{
			3,	"fire",		"B",

			5,	"go",		"up-left",

			16,	"go",		"up",		"fire",	"B",

			33,	"fire",		"C",
			61,	"fire",		"B",		-- 250 @ 113

			63,	"fire",		"B",

			72,	"fire",		"B",
			74,	"fire",		"B",

			98,	"fire",		"B",

			136,	"fire",		"B",
			141,	"fire",		"B",

			144,	"shoot",	"up-left",	"C",
			180,	"shoot",	"up-left",	"B",
			182,	"shoot",	"up-left",	"B",
			187,	"shoot",	"up-left",	"C",

			219,	"go",		"left",
			223,	"fire",		"B",
			227,	"fire",		"B",
			231,	"fire",		"C",
			251,	"fire",		"B",
			255,	"fire",		"C",
			259,	"fire",		"B",
			264,	"fire",		"B",
			265,	"stop",
			268,	"fire",		"B",
			272,	"fire",		"B",
			276,	"fire",		"B",
			280,	"fire",		"B",
			284,	"fire",		"B",
			288,	"fire",		"B",

			717,	"fire",		"B",
		},
	},
}

local MARS_DEATH_OFFSET = -4
if MARS_DIES_IN_1_10 == true then
	MARS_DEATH_OFFSET = 0
end


local syncPoints =
{
	["1-7"] = { baseline = 5244, actual = 5244 },
	["1-8"] = { baseline = 5976, actual = 5976 },
	["1-9"] = { baseline = 6984, actual = 6984 },
	["1-10"] = { baseline = 7844, actual = 7844 },
	["2-1"] = { baseline = 9100, actual = 9100 + MARS_DEATH_OFFSET },
	["2-2"] = { baseline = 9810, actual = 9810 + MARS_DEATH_OFFSET },
	["2-3"] = { baseline = 10600, actual = 10600 + MARS_DEATH_OFFSET },
	["2-4"] = { baseline = 11500, actual = 11500 + MARS_DEATH_OFFSET },
	["2-5"] = { baseline = 0, actual = 12248 + MARS_DEATH_OFFSET },
	["2-6"] = { baseline = 0, actual = 13238 },
	["2-7"] = { baseline = 0, actual = 14033 },
	["2-8"] = { baseline = 0, actual = 14882 },
	["2-9"] = { baseline = 0, actual = 15755 },
	["2-10"] = { baseline = 0, actual = 16860 },
	["3-1"] = { baseline = 0, actual = 17724 },
	["3-2"] = { baseline = 0, actual = 18422 },
	["3-3"] = { baseline = 0, actual = 19160 },
	["3-4"] = { baseline = 0, actual = 19898 },
	["3-5"] = { baseline = 0, actual = 20651 },
	["3-6"] = { baseline = 0, actual = 21403 },
	["3-7"] = { baseline = 0, actual = 22237 },
	["3-8"] = { baseline = 0, actual = 22949 },
	["3-9"] = { baseline = 0, actual = 23727 },
	["3-10"] = { baseline = 0, actual = 24478 },
	["4-1"] = { baseline = 0, actual = 25401 },
	["4-2"] = { baseline = 0, actual = 26151 },
	["4-3"] = { baseline = 0, actual = 26880 },
	["4-4"] = { baseline = 0, actual = 27783 },
	["4-5"] = { baseline = 0, actual = 28531 },
	["4-6"] = { baseline = 0, actual = 29310 },
	["4-7"] = { baseline = 0, actual = 30124 },
	["4-8"] = { baseline = 0, actual = 30956 },
	["4-9"] = { baseline = 0, actual = 31842 },
	["4-10"] = { baseline = 0, actual = 32841 },
	["5-1"] = { baseline = 0, actual = 34368 },
	["5-2"] = { baseline = 0, actual = 35115 },
	["5-3"] = { baseline = 0, actual = 35901 },
	["5-4"] = { baseline = 0, actual = 36635 },
	["5-5"] = { baseline = 0, actual = 37402 },
	["5-6"] = { baseline = 0, actual = 38158 },
	["5-7"] = { baseline = 0, actual = 38925 },
	["5-8"] = { baseline = 0, actual = 39775 },
	["5-9"] = { baseline = 0, actual = 40566 },
	["5-10"] = { baseline = 0, actual = 41317 },
}

local directionTranslations =
{
	["up"] = { "up" },
	["up-right"] = { "up", "right" },
	["up-left"] = { "up", "left" },
	["right"] = { "right" },
	["left"] = { "left" },
	["down"] = { "down" },
	["down-right"] = { "down", "right" },
	["down-left"] = { "down", "left" },
	["stopped"] = { },
}

local spinSequence =
{
	"up", "up-right", "right", "down-right", "down", "down-left", "left", "up-left",
}

-- Compile all stage scripts
local compiledStageScripts = { }
for stage,scriptSet in pairs(stageScripts) do
	local frameInput = { }
	local firstFrame = syncPoints[stage].baseline
	local lastFrame = firstFrame

	-- Determine the last frame of this script
	for controllerId,commands in pairs(scriptSet) do
		for _,command in ipairs(commands) do
			if type(command) == "number" and command > lastFrame then
				lastFrame = command
			end
		end
	end

	local playerDirections = { [1] = "stopped", [2] = "stopped" }
	local playerSpinStart = { }
	local playerSpinDirection = { }
	local playerSpinInterval = { }
	local cmdIdx = { [1] = 1, [2] = 1 }

	-- Determine each frame state
	for frameNum=firstFrame,lastFrame do
		for controllerId,commands in pairs(scriptSet) do
			local frameDirection = playerDirections[controllerId]
			local controllerFrameInput = { }

			local spinStartFrame
			local spinDirection

			if commands[cmdIdx[controllerId]] == frameNum then
				cmdIdx[controllerId] = cmdIdx[controllerId] + 1
				while type(commands[cmdIdx[controllerId]]) ~= "number" do
					local command = commands[cmdIdx[controllerId]]
					if command == nil then
						break
					end

					if command == "go" then
						cmdIdx[controllerId] = cmdIdx[controllerId] + 1
						local dir = assert(commands[cmdIdx[controllerId]])
						playerDirections[controllerId] = dir
						frameDirection = dir
					elseif command == "tap" then
						cmdIdx[controllerId] = cmdIdx[controllerId] + 1
						local dir = assert(commands[cmdIdx[controllerId]])
						frameDirection = dir
					elseif command == "shoot" then
						cmdIdx[controllerId] = cmdIdx[controllerId] + 1
						local dir = assert(commands[cmdIdx[controllerId]])
						cmdIdx[controllerId] = cmdIdx[controllerId] + 1
						local button = assert(commands[cmdIdx[controllerId]])

						frameDirection = dir
						controllerFrameInput[button] = true
					elseif command == "fire" then
						cmdIdx[controllerId] = cmdIdx[controllerId] + 1
						local button = assert(commands[cmdIdx[controllerId]])
						controllerFrameInput[button] = true
					elseif command == "stop" then
						playerDirections[controllerId] = "stopped"
						frameDirection = "stopped"
					elseif command == "spin" then
						playerSpinStart[controllerId] = frameNum
						cmdIdx[controllerId] = cmdIdx[controllerId] + 1
						local dir = assert(commands[cmdIdx[controllerId]])
						cmdIdx[controllerId] = cmdIdx[controllerId] + 1
						local interval = assert(commands[cmdIdx[controllerId]])
						playerSpinDirection[controllerId] = dir
						playerSpinInterval[controllerId] = interval
					elseif command == "stopspin" then
						playerSpinStart[controllerId] = nil
					else
						assert(false, "Unknown command: "..command)
					end

					cmdIdx[controllerId] = cmdIdx[controllerId] + 1
				end
			end

			if playerSpinStart[controllerId] then
				-- Dance around
				local spinFrame = frameNum - playerSpinStart[controllerId]

				local intervalOffset = math.fmod(spinFrame, playerSpinInterval[controllerId])
				local spinDir = spinSequence[math.fmod(math.floor(spinFrame / playerSpinInterval[controllerId]), #spinSequence) + 1]

				if spinDir == playerSpinDirection[controllerId] or intervalOffset == 0 then
					frameDirection = spinDir
				else
					frameDirection = "stopped"
				end
			end


			-- Dump the button state into the frame input
			for _,button in ipairs(directionTranslations[frameDirection]) do
				controllerFrameInput[button] = true
			end

			-- Dump into the final frame state
			local thisFrameInput = frameInput[frameNum]
			if thisFrameInput == nil then
				thisFrameInput = { }
				frameInput[frameNum] = thisFrameInput
			end

			thisFrameInput[controllerId] = controllerFrameInput
		end
	end

	for frameNum=firstFrame,lastFrame do
		for controllerId,commands in pairs(frameInput[frameNum]) do
			local cmdString = ""
			for k,v in pairs(commands) do
				cmdString = cmdString.." "..k
			end
		end
	end

	compiledStageScripts[stage] = frameInput
end

-- Don't need these any more
stageScripts = nil



gens.registerbefore(function()
	local currentStage = nil
	local frameNum = gens.framecount() + 1

	-- Find a baseline for this script
	for stage,syncInfo in pairs(syncPoints) do
		if syncInfo.actual <= frameNum and (currentStage == nil or syncPoints[currentStage].actual < syncInfo.actual) then
			currentStage = stage
		end
	end

	if currentStage ~= nil then
		local stageScript = compiledStageScripts[currentStage]

		local scriptFrame = frameNum - syncPoints[currentStage].actual + syncPoints[currentStage].baseline
		if stageScript[scriptFrame] ~= nil then
			local commands = stageScript[scriptFrame]
			for controllerId,inputState in pairs(commands) do
				joypad.set(controllerId, inputState)
			end
		end
	end
end )