Youtube Sonic TAS community

Impossible is possible

You are not logged in.

#1 2013-04-02 13:58:32

WST
administrator
From: Maykop, RU · Jakarta, ID
Registered: 2012-10-06
Posts: 287
Website

Sonic 3 and Amy Rose — endless score attack

Inspired by adelikat’s endless TAS — FDS Super Mario Bros. 2 in ∞ — I realized that something like that (but, of course, much simplier) is possible with my favorite game, Amy@S3K.
Working on this project now. It will be not just long. It will be really endless (the game will play as long as you have patience). And it will be score attack ^_^

It’s not serious, it’s just for fun tongue

The only problem may become life overflow — I’m afraid of getting «game over» after the life counter turns to zero from 0xFF. This needs to be checked.


Sonic the EDGEhog has been obsoleted by Amy the LTEhog ©

Offline

#2 2013-04-04 16:35:10

WST
administrator
From: Maykop, RU · Jakarta, ID
Registered: 2012-10-06
Posts: 287
Website

Re: Sonic 3 and Amy Rose — endless score attack

The life counter will certainly be a problem, which needs to be solved within this TAS.
Found it’s RAM address for future research, it is unsigned byte at 0x00FFFE12.
Ring counter is an unsigned word at 0x00FFFE20.


Sonic the EDGEhog has been obsoleted by Amy the LTEhog ©

Offline

#3 2013-08-10 14:06:40

WST
administrator
From: Maykop, RU · Jakarta, ID
Registered: 2012-10-06
Posts: 287
Website

Re: Sonic 3 and Amy Rose — endless score attack

I have no mood to work on this further. If someone wants to continue, here is my last WIP:

-- Endless score attack Sonic 3 and Amy Rose TAS by WST, feeuzz & Qwerty
-- Gens Lua script by the members of Youtube Sonic TAS community <http://ystc.ru>

local frame = 0;
local flag = false;

-- Charge a full spin dash at frame <frame>
function spinDash(when)
	if (frame >= when) and (frame <= (when + 6)) then
		joypad.set({down = true});
	end;
	
	if (frame >= when + 1) and (frame <= (when + 6)) then
		flag = not flag;
		joypad.set({B = flag, C = not flag});
	end;
end;

-- Run forward from frame <start> to frame <finish>
function run(start, finish)
	if (frame >= start) and (frame <= finish) then
		joypad.set({right = true});
	end;
end;

-- Make a jump between frame <start> and frame <finish>
function jump(start, finish)
	if (frame >= start) and (frame <= finish) then
		joypad.set({B = true});
	end;
end;

-- Quick move down in Amy style at frame <when>
function stopInAir(when)
	if frame == when then
		joypad.set({down = true, A = true});
	end;
end;

-- Satisfy a bungee at frame <frame>
function haveSex(when)
	if frame == when then joypad.set({left = true}); end;
	if frame == when + 2 then joypad.set({left = true}); end;
	if frame == when + 4 then joypad.set({left = true}); end;
	if frame == when + 5 then joypad.set({right = true}); end;
	if frame == when + 7 then joypad.set({right = true}); end;
	if frame == when + 9 then joypad.set({right = true}); end;
	if frame == when + 10 then joypad.set({up = true}); end;
	if frame == when + 12 then joypad.set({up = true}); end;
	if frame == when + 14 then joypad.set({up = true}); end;
	if frame == when + 15 then joypad.set({start = true}); end;
	if frame == when + 16 then joypad.set({A = true}); end;
end;

gens.registerbefore(function()
	frame = gens.framecount() + 1;
	
	-- Menu selection
	if (frame == 61) or (frame == 71) or (frame == 227) or (frame == 279) then
		joypad.set({start = true});
	end;

	-- Angel Island 1 bootstrap
	spinDash(479);
	run(487, 652);
	jump(591, 612);
	jump(639, 651);
	stopInAir(652);
	spinDash(653);
	run(661, 735);
	jump(694, 731);
	haveSex(737);

end);

Just start emulation from the beginning and run the script. Be sure not to run any other Lua scripts while this one is running.


Sonic the EDGEhog has been obsoleted by Amy the LTEhog ©

Offline

Board footer

Powered by FluxBB

Яндекс.Метрика