Skilled player (1706)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
This game for the Gba seems like a good game to TAS. I even made a run of the first two world. So,what do you think? Edit: I uploaded to youtube. Edit: Display code
memory.usememorydomain("IWRAM")
local Addresses = {
charge = 0x0008,
speed = 0x1732,
game_state = 0x25C0,
x = 0x372A,
y = 0x372E,
speedx = 0x3732,
speedy = 0x3736,
script_x = 0x3728,
script_y = 0x372C,
npc_base = 0x330B,
npc_x1 = 0x3AAE,--+0x64
npc_y1 = 0x3AB2,--+0x64
cam_x = 0x4B12,
cam_y = 0x4B22,
difficulty = 0x7180,
state = 0x71B0,
l_exit = 0x72AC

}
-- function for checking an input with how many frames to delay
function inputdelay(inputs, delay)
	local is = input.get()
	local start = false
	if inputs ~= nil and (is[tostring(inputs)] ~=nil) then
		--console.log(is)	--debugging
		while (delay > 0) do
			emu.frameadvance()
			delay = delay -1
		end
		start = true
		return start
	end
	return start
end

--[[
npc struct
3A77 palatte?
3A8E X sprite size
3A90 Y sprite size
3AAE X
3AB2 Y
]]--

function draw_npc()
	local cam_x = memory.read_u16_le(Addresses.cam_x)
	local cam_y = memory.read_u16_le(Addresses.cam_y)
	local npc_base = 0x330B --may modify later
	local offset = 0x64
	for i = 0, 50	do
		local base_now = npc_base + (offset * i)
		local id = memory.readbyte(base_now + 0x1F)
		local x = memory.read_u16_le(base_now + 0x37)
		local y = memory.read_u16_le(base_now + 0x3B)
		gui.drawRectangle(x-cam_x-10, y-cam_y-32, 20, 32,"green")
		gui.pixelText(x-cam_x, y-cam_y-32, i)
		gui.pixelText(x-cam_x, y-cam_y-32+7, bizstring.hex(base_now))
		gui.pixelText(x-cam_x, y-cam_y-32+14, id)
		-- gui.pixelText(x-cam_x, y-cam_y-32+14, bizstring.hex(base_now+0x37))
	end
end

function draw_position()
	local cam_x = memory.read_u16_le(Addresses.cam_x)
	local cam_y = memory.read_u16_le(Addresses.cam_y)
	local x = memory.read_u16_le(Addresses.x)
	local y = memory.read_u16_le(Addresses.y)
	local speedx = memory.read_s16_le(Addresses.speedx)
	local speedy = memory.read_s16_le(Addresses.speedy)
	local charge = memory.read_u16_le(Addresses.charge)
		-- memory.write_u16_le(Addresses.cam_x,x)
		-- memory.write_u16_le(Addresses.cam_y,y)
	
	-- local npc_x = memory.read_u16_le(Addresses.npc_x1)
	-- local npc_y = memory.read_u16_le(Addresses.npc_y1)
	-- gui.drawRectangle(x-cam_x-10, y-cam_y-32, 20, 32,"green")
	gui.text(0,60, "CX:"..cam_x.." CY:"..cam_y)
	gui.text(0,75, "X:"..x.." Y:"..y.." Charge:"..charge)
	gui.text(0,90, "SX:"..speedx.." SY:"..speedy)
	-- gui.text(0,60, "NX:"..npc_x.." NY:"..npc_y)
	
end

y1 = memory.read_u32_le(Addresses.script_y)
function hotkey()
	local x1 = memory.read_u32_le(Addresses.script_x)
	local y = memory.read_u32_le(Addresses.script_y)
	local x_speed = 6
	local y_speed = 16
	if (joypad.getimmediate().R == true) then
		if (joypad.getimmediate().Left == true) then
			x1 = x1-65536*x_speed
		elseif (joypad.getimmediate().Right == true) then
			x1 = x1+65536*x_speed
		else
			x1 = x1
		end
		if (joypad.getimmediate().Down == true) then
			y1 = y1+65536*y_speed
		elseif (joypad.getimmediate().Up == true) then
			y1 = y1-65536*y_speed
		else
			y1 = y1
		end
	end
		memory.write_u32_le(Addresses.script_x,x1)
		memory.write_u32_le(Addresses.script_y,y1)
end


while true do
	draw_npc()
	-- if memory.readbyte(Addresses.l_exit) == 1 then client.pause() end
	draw_position()
	-- hotkey()
	game_state = memory.readbyte(Addresses.game_state)
	gui.text(0,105, "Gamestate:"..game_state)
		-- gui.text(0,40, "X:"..display_x.." Y:"..display_y)
		-- gui.text(0,60, "State: "..memory.read_u8(Addresses.game_state))
		emu.frameadvance()
end
Skilled player (1706)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
Uploaded a new run of the first 2 worlds that is faster by 13 seconds. Expect more to appear later this week(I hope).
Editor, Reviewer, Experienced player (968)
Joined: 4/17/2004
Posts: 3107
Location: Sweden
I am positively surprised! It looks indeed look like a good game for a TAS, and your movie seems well made so far. Do continue.
Skilled player (1706)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
I have recently discovered 2 neat glitches. One allows me to skip over 1/2 of the stages:Yoodle a Sea Doo(3-4) and Trech Bottom(4-2). Another allowed me to quickly end the battle with Dennis. You can see the Wip here.
Post subject: Re: The SpongeBob SquarePants Movie Game
Joined: 2/26/2007
Posts: 1360
Location: Minnesota
jlun2 wrote:
So,what do you think?
I think you deleted it from youtube :(
adelikat wrote:
I very much agree with this post.
Bobmario511 wrote:
Forget party hats, Christmas tree hats all the way man.
Post subject: Re: The SpongeBob SquarePants Movie Game
Skilled player (1706)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
Sticky wrote:
jlun2 wrote:
So,what do you think?
I think you deleted it from youtube :(
Oops, I seem to have linked the wrong video. I fixed it now.
Joined: 2/26/2007
Posts: 1360
Location: Minnesota
Not too shabby. The driving part made me nauseous.
adelikat wrote:
I very much agree with this post.
Bobmario511 wrote:
Forget party hats, Christmas tree hats all the way man.
Joined: 5/27/2006
Posts: 82
I think it might need some optimization, but it's looking good so far!
Truncated wrote:
I am positively surprised! It looks indeed look like a good game for a TAS, and your movie seems well made so far. Do continue.
Some people might not believe me, but seriously, some of the best platformers I've ever played feature licensed characters!
Skilled player (1706)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
I think it might need some optimization
I agree! That's why I redid the entire first 2 worlds! You can download the WIP here. It's a 277 frame improvement over my first run I made thanks to several tricks I discovered and better mainipulation of the boss's intro music. Edit: Youtube'd
Joined: 5/27/2006
Posts: 82
Now that's more like it! :)
Player (116)
Joined: 5/13/2009
Posts: 700
Location: suffern, ny
I am very impressed with not just this run, but the game its self, for a GBA game the graphics are beautiful. You can really tell Nick put alot of money into the game. As for the run, jlun2, keep up the good work
[19:16] <scrimpy> silly portuguese [19:16] <scrimpy> it's like spanish, only less cool
Skilled player (1706)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
Editor, Active player (428)
Joined: 9/29/2008
Posts: 706
Location: Canada
This is a great game choice. Very entertaining (other than the car level). Also nice glitches! (especially the fall through floor one :P)
Skilled player (1307)
Joined: 9/7/2007
Posts: 1354
Location: U.S.
Hey jlun2! Will you be able to save so many frames that you will be able to fit Worlds 3 & 4 into one video with the Dennis fight? And I also agree with Kyman that this is a great game choice. I like this game better than .... that other Spongebob game that shall not be mentioned in this forum.
Skilled player (1706)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
The first 5 worlds improved: World 1: Bikini Bottom World 2: Coral Canyon World 3: The Desert World 4: The Trench World 5: Shell City World 1: Bikini Bottom ------------------- 18468 Frames World 2: Coral Canyon ------------------- 12183 Frames World 3: The Desert ---------------------- 17299 Frames World 4: The Trench ---------------------- 18935 Frames World 4: Shell City ---------------------- 16222 Frames I'm on the last World right now.
Skilled player (1307)
Joined: 9/7/2007
Posts: 1354
Location: U.S.
I'm glad youre still working on this. Keep it up! ;) I'm only watching up to half of World 2 so that I dont spoil myself. This is probably the only GBA run I am looking foward to. I look foward to the entire movie.
Skilled player (1090)
Joined: 8/26/2006
Posts: 1139
Location: United Kingdom
That was surprisingly entertaining. I look forward to watching this when it's finished. I noticed recently that the GBA has many childish games that are deceptively well suited for TASing. Two good examples being Disney's Kim Possible 2: Drakken's Demise and Disney's Lilo & Stitch. So yeah, if anyone needs a run idea...
Joined: 3/28/2009
Posts: 28
Really enjoyed World 4, even the running stage. Looking forward to watching the finished run, now.
Skilled player (1706)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
Well, I managed to improve the first stage by 5 frames, so......thread revival? WIP
Skilled player (1706)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
Can someone please give me hints on how to make the driving/runnnig scenes a bit more entertaining? Any suggestions would really help. Also, 82 frames ahead of the published run.
Editor, Expert player (2313)
Joined: 5/15/2007
Posts: 3855
Location: Germany
Maybe I will try to do the driving scenes. Please give me your latest movie and I will take a look at it.
Skilled player (1706)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
MUGG wrote:
Maybe I will try to do the driving scenes. Please give me your latest movie and I will take a look at it.
Thanks alot! You can find the WIP here. BTW, from the start of the stage to where it says "Time Up", there is only 17 frames of lag. Thanks again MUGG!
Editor, Expert player (2313)
Joined: 5/15/2007
Posts: 3855
Location: Germany
I tried around with the level's possibilities and controls and I'm afraid I don't want to TAS this... Good luck! There isn't much you can do in this level, so it won't really matter what you do. You can hardly make it interesting to watch. Just do what you did in the published run.
Skilled player (1706)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
The 1st world is done! I saved a mere 1 frame at the first stage too! Also, I did something different at the very end of the driving stage and at the begining of the 1st boss. Finally, the first boss is slower due to horrid luck. Tried to manipulate where Spongebob does his victory dance jump, but I had to delay the final strike by 8 frames. Wip Edit: I finally manipulated the boss! Wip
Skilled player (1706)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
Update! I managed to end the stage: "Where's the Reef?" while OoB, but it took too long. Also, here's some info regarding OoB: There are ways to have the game pull Spongebob down a floor. Sometimes, you can even go Out of Bounds (OoB) OoB Glitches: *Get Hurt *Die for no reason *Beat the Stage *Enter a bonus Stage *Crash the Game *Crash the Game; Screen turns Black *Crash the Game; First Stage Music plays *Reset the Game *Infinite Shells; Shells don't despawn after touch The best glitch available seems to be the "Beat the Stage", but so far, I've only got it to occur on stages "Where's the Reef?" and "Trench Bottom", with Trench Bottom being the only stage where it happens soon enough to be helpful. The Stages that can go OoB are: *Management Material *Not a Kid *Where's the Reef? *Trench Bottom *Stairs of Freedom *Krusty Krab 2!!