View Page Source

Revision (current)
Last Updated by feos on 6/1/2022 8:10 AM
Back to Page

!! Lua script

%%TAB Link

https://github.com/feos-tas/Lua/blob/master/ButtonStats.lua

%%TAB Code

%%SRC_EMBED lua
-- feos, 2021
-- parses movie file and collects various stats on the specified input button
-- no need to load the movie into emulator, just provide its path and run the script

local filename = "happylee-supermariobros,warped.fm2"
local mnemonic = "A"
local separator = "|"

local currentItemStart = 0
local inputs = 0
local sequences = 0
local inputsCheck = 0
local sequencesCheck = 0
local inputsCheckPassed = false
local sequencesCheckPassed = false

local frames = {}
local durations = {}

local movie = io.open(filename, "r")

for line in movie:lines() do
	if string.find(line, separator) == 1 then
		table.insert(frames, line)
	end
end

movie:close()

print(" " .. filename)
print(" Parsed " .. #frames .. " frames")
print(" ")

for frame = 1, #frames+1 do
	if frames[frame] and string.find(frames[frame], mnemonic) then
		inputs = inputs+1
		
		if frame == 1 or string.find(frames[frame-1], mnemonic) == nil then
			currentItemStart = frame
		end
		
		if currentItemStart > 0
		and (not frames[frame+1] or not string.find(frames[frame+1], mnemonic)) then
			sequences = sequences + 1			
			local duration = frame+1 - currentItemStart
			
			if duration > 0 then			
				if not durations[duration] then
					durations[duration] = 1
				else
					durations[duration] = durations[duration] + 1
				end
			end
			
			currentItemStart = 0
		end
	end
end

print(" Total " .. mnemonic .. " input count: " .. inputs)
print(" Ratio: " .. #frames / inputs)
print(" ")
print(" Total consequtive " .. mnemonic .. " sequences: " .. sequences)
print(" Ratio: " .. #frames / sequences)
print(" ")
print(" Sequence durations")

for duration, count in pairs(durations) do
	inputsCheck = inputsCheck + duration * count
	sequencesCheck = sequencesCheck + count
	print(" " .. duration .. "-frame: " .. count)
end

print("")
print("Debug checks")

if inputs    == inputsCheck    then inputsCheckPassed    = true end
if sequences == sequencesCheck then sequencesCheckPassed = true end

print("Inputs check passed (" .. inputs .. " == " .. inputsCheck .. "): "
	.. tostring(inputsCheckPassed))
print("Sequences check passed (" .. sequences .. " == " .. sequencesCheck .. "): "
	.. tostring(sequencesCheckPassed))
%%END_EMBED

%%TAB_END

!! "A" button

! Output

%%TAB Movies

%%TAB 1365M

 happyleev3-smbfds.fm2
 Parsed 9893 frames
 
 Total A input count: 678
 Ratio: 14.591445427729
 
 Total consequtive A sequences: 132
 Ratio: 74.94696969697
 
 Sequence durations
 1-frame: 69
 2-frame: 6
 3-frame: 14
 4-frame: 8
 5-frame: 2
 6-frame: 6
 8-frame: 1
 9-frame: 4
 10-frame: 3
 12-frame: 1
 14-frame: 2
 15-frame: 1
 16-frame: 1
 17-frame: 1
 18-frame: 4
 19-frame: 1
 22-frame: 1
 24-frame: 1
 28-frame: 2
 29-frame: 1
 30-frame: 1
 31-frame: 1
 32-frame: 1

%%TAB 1715M

 happylee-supermariobros,warped.fm2
 Parsed 17868 frames
 
 Total A input count: 2596
 Ratio: 6.8828967642527
 
 Total consequtive A sequences: 286
 Ratio: 62.475524475524
 
 Sequence durations
 1-frame: 95
 2-frame: 12
 3-frame: 17
 4-frame: 10
 5-frame: 10
 6-frame: 19
 7-frame: 6
 8-frame: 8
 9-frame: 9
 10-frame: 4
 11-frame: 4
 12-frame: 10
 13-frame: 8
 14-frame: 3
 15-frame: 6
 16-frame: 6
 17-frame: 5
 18-frame: 6
 19-frame: 2
 20-frame: 2
 21-frame: 3
 22-frame: 5
 23-frame: 1
 24-frame: 2
 25-frame: 2
 26-frame: 2
 27-frame: 2
 28-frame: 4
 29-frame: 1
 30-frame: 5
 31-frame: 7
 32-frame: 10

%%TAB 2676M

 mars608,happylee-smb-warpless,walkathon.fm2
 Parsed 91304 frames
 
 Total A input count: 13509
 Ratio: 6.7587534236435
 
 Total consequtive A sequences: 1503
 Ratio: 60.747837658017
 
 Sequence durations
 1-frame: 673
 2-frame: 88
 3-frame: 44
 4-frame: 32
 5-frame: 45
 6-frame: 29
 7-frame: 21
 8-frame: 32
 9-frame: 50
 10-frame: 26
 11-frame: 22
 12-frame: 21
 13-frame: 22
 14-frame: 19
 15-frame: 17
 16-frame: 14
 17-frame: 23
 18-frame: 44
 19-frame: 18
 20-frame: 28
 21-frame: 17
 22-frame: 10
 23-frame: 9
 24-frame: 13
 25-frame: 16
 26-frame: 11
 27-frame: 13
 28-frame: 10
 29-frame: 8
 30-frame: 10
 31-frame: 15
 32-frame: 20
 33-frame: 10
 34-frame: 14
 35-frame: 23
 36-frame: 5
 37-frame: 3
 38-frame: 1
 39-frame: 4
 41-frame: 3
 43-frame: 3
 44-frame: 1
 45-frame: 2
 47-frame: 1
 48-frame: 1
 49-frame: 3
 50-frame: 1
 51-frame: 2
 52-frame: 2
 56-frame: 3
 80-frame: 1

%%TAB 2977M

 cuteqt_tehh_083_happylee-supermariobros-maxcoins.fm2
 Parsed 94370 frames
 
 Total A input count: 15896
 Ratio: 5.9367136386512
 
 Total consequtive A sequences: 2345
 Ratio: 40.243070362473
 
 Sequence durations
 1-frame: 1165
 2-frame: 131
 3-frame: 103
 4-frame: 68
 5-frame: 79
 6-frame: 73
 7-frame: 70
 8-frame: 76
 9-frame: 30
 10-frame: 40
 11-frame: 45
 12-frame: 74
 13-frame: 33
 14-frame: 21
 15-frame: 26
 16-frame: 14
 17-frame: 22
 18-frame: 17
 19-frame: 17
 20-frame: 15
 21-frame: 13
 22-frame: 15
 23-frame: 8
 24-frame: 15
 25-frame: 15
 26-frame: 14
 27-frame: 10
 28-frame: 7
 29-frame: 4
 30-frame: 12
 31-frame: 14
 32-frame: 42
 33-frame: 1
 34-frame: 6
 35-frame: 9
 38-frame: 2
 39-frame: 4
 40-frame: 1
 41-frame: 1
 42-frame: 1
 43-frame: 1
 44-frame: 3
 47-frame: 2
 48-frame: 1
 50-frame: 3
 51-frame: 2
 52-frame: 3
 53-frame: 1
 54-frame: 2
 55-frame: 2
 56-frame: 1
 57-frame: 1
 58-frame: 1
 60-frame: 3
 62-frame: 2
 63-frame: 1
 67-frame: 1
 74-frame: 1
 76-frame: 1

%%TAB 3728M

 happylee_mars608-smb-warpless.fm2
 Parsed 67117 frames
 
 Total A input count: 10460
 Ratio: 6.4165391969407
 
 Total consequtive A sequences: 1372
 Ratio: 48.919096209913
 
 Sequence durations
 1-frame: 596
 2-frame: 65
 3-frame: 61
 4-frame: 112
 5-frame: 22
 6-frame: 31
 7-frame: 32
 8-frame: 29
 9-frame: 31
 10-frame: 25
 11-frame: 16
 12-frame: 28
 13-frame: 28
 14-frame: 21
 15-frame: 23
 16-frame: 16
 17-frame: 9
 18-frame: 26
 19-frame: 11
 20-frame: 14
 21-frame: 16
 22-frame: 12
 23-frame: 10
 24-frame: 9
 25-frame: 8
 26-frame: 9
 27-frame: 11
 28-frame: 11
 29-frame: 5
 30-frame: 11
 31-frame: 13
 32-frame: 59
 44-frame: 1
 46-frame: 1

%%TAB 4313M

 dasmilekat_happylee_mars608-supermariobros-allitems.fm2
 Parsed 71438 frames
 
 Total A input count: 10745
 Ratio: 6.6484876686831
 
 Total consequtive A sequences: 1661
 Ratio: 43.009030704395
 
 Sequence durations
 1-frame: 827
 2-frame: 49
 3-frame: 64
 4-frame: 79
 5-frame: 48
 6-frame: 37
 7-frame: 38
 8-frame: 48
 9-frame: 27
 10-frame: 38
 11-frame: 42
 12-frame: 37
 13-frame: 32
 14-frame: 28
 15-frame: 24
 16-frame: 30
 17-frame: 21
 18-frame: 19
 19-frame: 27
 20-frame: 28
 21-frame: 19
 22-frame: 13
 23-frame: 10
 24-frame: 8
 25-frame: 12
 26-frame: 7
 27-frame: 5
 28-frame: 4
 29-frame: 7
 30-frame: 5
 31-frame: 3
 32-frame: 4
 33-frame: 3
 34-frame: 2
 35-frame: 1
 36-frame: 2
 38-frame: 1
 39-frame: 1
 40-frame: 1
 41-frame: 1
 42-frame: 3
 43-frame: 1
 44-frame: 2
 45-frame: 1
 49-frame: 1
 58-frame: 1

%%TAB 4444M

 happylee,kriller37,dasmilekat,kosmic,periwinkle-supermariobros-minimum_a_presses.fm2
 Parsed 37525 frames
 
 Total A input count: 2869
 Ratio: 13.079470198675
 
 Total consequtive A sequences: 62
 Ratio: 605.24193548387
 
 Sequence durations
 1-frame: 5
 2-frame: 3
 3-frame: 1
 4-frame: 2
 5-frame: 1
 7-frame: 1
 9-frame: 1
 11-frame: 1
 12-frame: 1
 14-frame: 2
 15-frame: 2
 16-frame: 1
 17-frame: 1
 18-frame: 1
 19-frame: 1
 20-frame: 1
 21-frame: 1
 22-frame: 1
 24-frame: 1
 25-frame: 1
 26-frame: 1
 27-frame: 2
 28-frame: 3
 29-frame: 2
 31-frame: 2
 32-frame: 17
 58-frame: 1
 39-frame: 1
 35-frame: 3
 1533-frame: 1

%%TAB_END

%%TAB Submissions

%%TAB 3556S

 brandonevans-supermariobros-minimumpresses.fm2
 Parsed 20917 frames
 
 Total A input count: 3684
 Ratio: 5.6777958740499
 
 Total consequtive A sequences: 125
 Ratio: 167.336
 
 Sequence durations
 1-frame: 14
 2-frame: 1
 3-frame: 2
 4-frame: 1
 5-frame: 2
 6-frame: 4
 7-frame: 2
 8-frame: 1
 10-frame: 2
 11-frame: 1
 12-frame: 4
 13-frame: 5
 15-frame: 1
 16-frame: 3
 17-frame: 3
 18-frame: 1
 19-frame: 1
 20-frame: 3
 21-frame: 3
 22-frame: 3
 23-frame: 5
 24-frame: 3
 26-frame: 2
 27-frame: 1
 28-frame: 5
 29-frame: 4
 30-frame: 2
 31-frame: 1
 32-frame: 4
 33-frame: 1
 34-frame: 2
 35-frame: 2
 36-frame: 1
 39-frame: 2
 40-frame: 1
 41-frame: 3
 43-frame: 1
 44-frame: 2
 45-frame: 5
 46-frame: 1
 47-frame: 2
 48-frame: 1
 49-frame: 2
 51-frame: 2
 52-frame: 1
 53-frame: 1
 55-frame: 2
 56-frame: 1
 57-frame: 3
 62-frame: 1
 73-frame: 1
 222-frame: 1
 157-frame: 1
 229-frame: 1

%%TAB 7132S

 smb1 min jumps height.fm2
 Parsed 21576 frames
 
 Total A input count: 395
 Ratio: 54.622784810127
 
 Total consequtive A sequences: 377
 Ratio: 57.230769230769
 
 Sequence durations
 1-frame: 374
 9-frame: 1
 6-frame: 2

%%TAB_END

! Table

|| Movie  || Frames || Inputs || Ratio           || Sequences || Ratio           ||
| [1365M] |    9893 |     678 | 14.591445427729  |        132 |  74.94696969697  |
| [1715M] |   17868 |    2596 |  6.8828967642527 |        286 |  62.475524475524 |
| [2676M] |   91304 |   13509 |  6.7587534236435 |       1503 |  60.747837658017 |
| [2977M] |   94370 |   15896 |  5.9367136386512 |       2345 |  40.243070362473 |
| [3728M] |   67117 |   10460 |  6.4165391969407 |       1372 |  48.919096209913 |
| [4313M] |   71438 |   10745 |  6.6484876686831 |       1661 |  43.009030704395 |
| [4444M] |   37525 |    2869 | 13.079470198675  |         62 | 605.24193548387  |
|| Submission ||    ||        ||                 ||           ||                 ||
| [3556S] |   20917 |    3684 |  5.6777958740499 |        125 | 167.336          |
| [7132S] |   21576 |     395 | 54.622784810127  |        377 |  57.230769230769 |