User File #39384738652160945

Upload All User Files

#39384738652160945 (unlisted) -

KaoKan.lua
21 downloads
Uploaded 5/31/2017 4:26 PM by TASeditor (see all 188)
XPos_old = 0;
XSub_old = 0;

YPos_old = 0;
YSub_old = 0;


ug = 0

TableXv = {}
TableX = {}
TableYv = {}
TableDy = {}

TableAir = {}
TableAPress = {}
TableJumpPeak = {}
TableAttack = {}

tastudio.addcolumn("xv", "xv", 40)
tastudio.addcolumn("dx", "dx", 40)
tastudio.addcolumn("yv", "yv", 40)
tastudio.addcolumn("dy", "dy", 40)

memory.usememorydomain("IWRAM")

function Color(index, column)

	if (TableJumpPeak[index] == 1 and TableAir[index] == 1 and column == "A")
	then if (index >= ug)
		 then return 0xAACCFF
		 else return 0x0064FF
		 end
	end
	
	if (TableAPress[index] == 5 and column == "A")
	then if (index >= ug)
		 then return 0xAADDFF
		 else return 0x0096FF
		 end
	end
	
	if (TableAir[index] == 1 and column == "A")
	then if (index >= ug)
		 then return 0xAAECFF
		 else return 0x00C8FF
		 end
	end
	
	if (TableAttack[index] == 1 and column == "B")
	then if (index >= ug)
		 then return 0xAAECDD
		 else return 0x00C8FF
		 end
	end

	if (TableXv[index] ~= nil and column == "xv")
	then if math.abs(TableXv[index]) < 768
		 then red = 255	
			  green = math.floor((255/768)*math.abs(TableXv[index]))
			  blue = 0
		 else red = math.floor(-(255/768)*math.abs(TableXv[index])+510)
			  green = 255
			  blue = 0
		 end
		 if (index >= ug)
		 then red = math.floor((255-red)/120*(200-240)+255)
			  green = math.floor((255-green)/120*(200-240)+255)
			  blue = math.floor((255-blue)/120*(200-240)+255)
		 end
		 return red*256*256+green*256+blue
	end

	if (TableX[index] ~= nil and TableX[index-1] ~= nil and column == "dx")
	then if math.abs(TableX[index]-TableX[index-1]) < 1152
		 then red = 255 
			  green = math.floor((255/1152)*math.abs(TableX[index]-TableX[index-1]))
			  blue = 0
		 else red = math.floor(-(255/1152)*math.abs(TableX[index]-TableX[index-1])+510)
			  green = 255
			  blue = 0
		 end
		 if (index >= ug)
		 then red = math.floor((255-red)/120*(200-240)+255)
			  green = math.floor((255-green)/120*(200-240)+255)
			  blue = math.floor((255-blue)/120*(200-240)+255)
		 end
		 return red*256*256+green*256+blue
	end
	
	if (TableYv[index] ~= nil and column == "yv")
	then if math.abs(TableYv[index]) < 958
		 then red = 255
			  green = math.floor((255/958)*math.abs(TableYv[index]))
			  blue = 0
		 else red = math.floor(-(255/958)*math.abs(TableYv[index])+510)
			  green = 255
			  blue = 0
		 end
		 if (index >= ug)
		 then red = math.floor((255-red)/120*(200-240)+255)
			  green = math.floor((255-green)/120*(200-240)+255)
			  blue = math.floor((255-blue)/120*(200-240)+255)
		 end
		 return red*256*256+green*256+blue
	end
	
	if (TableDy[index] ~= nil and column == "dy")
	then if math.abs(TableDy[index]) < 1022
		 then red = 255
			  green = math.floor((255/1022)*math.abs(TableDy[index]))
			  blue = 0
		 else red = math.floor(-(255/1022)*math.abs(TableDy[index])+510)
			  green = 255
			  blue = 0
		 end
		 if (index >= ug)
		 then red = math.floor((255-red)/120*(200-240)+255)
			  green = math.floor((255-green)/120*(200-240)+255)
			  blue = math.floor((255-blue)/120*(200-240)+255)
		 end
		 return red*256*256+green*256+blue
	end
end

function Text(index, column)

	if (column == "xv")
	then local entry = TableXv[index]
		 if (entry ~= nil)
		 then return tostring(entry)
		 end
	elseif (column == "dx")
		then local entry = TableX[index]
			 local entry2 = TableX[index-1]
			 if (entry ~= nil and entry2 ~= nil)
			 then return tostring(entry-entry2)
			 end
	elseif (column == "yv")
		then local entry = TableYv[index]
			 if (entry ~= nil)
			 then return tostring(entry)
			 end
	elseif (column == "dy")
		then local entry = TableDy[index]
			 if (entry ~= nil)
			 then return tostring(entry)
			 end
	else return nil
	end
	
end

function Ungreen(index)
	ug = index
end

function Player()

	HP = memory.read_u8(0x1C60)
	
	XSub = memory.read_u8(0x3775)
	XPos = memory.read_u16_le(0x3776)
	
	YSub = memory.read_u8(0x3779)
	YPos = memory.read_u16_le(0x377A)
	
	attackFlag = memory.read_u8(0x379F)
	
	XSpd = memory.read_s16_le(0x37B5)
	XSpdMax = memory.read_s16_le(0x37B9)
	
	YSpdDown = memory.read_s16_le(0x37CD)
	
	YSpdUp = memory.read_s16_le(0x37D9)
	
	
	mid_air = memory.read_u8(0x37D4)
	
	YSubOld = memory.read_u8(0x37E1)
	YOld = memory.read_u16_le(0x37E2)
	jumpPeakFlag = memory.read_u8(0x37EC)
	APressCount = memory.read_u8(0x37ED)
	
	
	
	TableXv[frame] = XSpd
	TableX[frame] = XPos*256+XSub	
	TableYv[frame] = YSpdDown+YSpdUp
	TableDy[frame] = (YPos*256+YSub)-(YOld*256+YSubOld)
	
	TableAir[frame] = mid_air
	TableAPress[frame] = APressCount
	TableJumpPeak[frame] = jumpPeakFlag
	TableAttack[frame] = attackFlag
	
	
	
	gui.drawText(2, 36, "Xp:"..XPos..":"..XSub, 0xFFFFFFFF, 0x77990000);
	gui.drawText(2, 51, "Yp:"..YPos..":"..YSub, 0xFFFFFFFF, 0x77009900);
	gui.drawText(2, 66, "Xv:"..XSpd, 0xFFFFFFFF, 0x77990000);
	gui.drawText(2, 81, "Yv:"..(YSpdDown+YSpdUp), 0xFFFFFFFF, 0x77990000);
	
	gui.drawText(2, 21, "HP: "..HP);
	
	
	--dXPos = (XPos - XPos_old);
	--dXSub = (XSub - XSub_old)
	
	--dXPS = dXPos*256+dXSub;
	--gui.drawText(70, 66, dXPS, 0xFFFFFFFF, 0x77990000);
	--XSub_old = XSub;
	--XPos_old = XPos;
	
	--dYPos = (YPos - YPos_old);
	--dYSub = (YSub - YSub_old)
	
	--dYPS = dYPos*256+dYSub;
	--gui.drawText(70, 81, dYPS, 0xFFFFFFFF, 0x77990000);
	--YSub_old = YSub;
	--YPos_old = YPos;
	--gui.drawText(2, 96, mid_air, 0xFFFFFFFF, 0x77990000);
	

end
tastudio.onqueryitemtext(Text)
tastudio.onqueryitembg(Color)
tastudio.ongreenzoneinvalidated(Ungreen)


while true do
	
	frame = emu.framecount()
	if frame > ug
	then ug = frame
	end
	Player()
	--console.writeline(dXPS);
	
	--gui.drawPixel(XPos,70)
	
	--gui.drawLine(memory.read_u8(0x25B2), 50,
				--memory.read_u8(0x25BA),50)
				
	-- xcam = memory.read_s16_le(0x2ada) --0x18FE -55cc:
	-- ycam = memory.read_s16_le(0x55d2) --0x2ab0 -:mapcam19A6
				
	-- for i = 0, 16, 1 do
	
		-- e_prev = memory.read_u8(0x3841+i*0xD4)
		-- e_next = memory.read_u8(0x3842+i*0xD4)
		
		-- e_type = memory.read_u16_le(0x3844+i*0xD4)
		-- e_xpos = memory.read_u16_le(0x384A+i*0xD4)
		-- e_ypos = memory.read_u16_le(0x384E+i*0xD4)
		-- --anim 3865 1u
		-- --flag 3867 1u
		-- --counter 3878 1u
		-- --3B32	w	u	0	IWRAM	y

		
		-- gui.pixelText(e_xpos-xcam, e_ypos-ycam,"s"..e_prev..":"..e_next)
		
	-- end
	--console.log(tostring(memory.getmemorydomainsize("IWRAM")))
	--IWRAM = 03000000
	
	--x = memory.read_u16_le(0x3AC6)-- w u x 
	
	--y= memory.read_u16_le(0x3ACA)-- w u y
	--	h1 = memory.read_u8(0x3B4C)+256*memory.read_u8(0x3AC7)
	--h2 = memory.read_s8(0x3B4D)
	--v1 = memory.read_s8(0x3B4E)
	--v2 = memory.read_s8(0x3B4F)
	
	--gui.drawText(h1-xcam, 40, "h1", "red", "blue")
	
	--gui.drawBox(x-xcam-h1, 40, x-xcam+h2, 80)
	
	
	emu.frameadvance();
end