Post subject: Avatar - The Last Airbender
Sir_VG
He/Him
Player (40)
Joined: 10/9/2004
Posts: 1913
Location: Floating Tower
I did a speedrun of this game shortly after it was released and the game wasn't as bad as I thought it would be for being a kids anime/cartoon show. It'll be a bit longer then the last two games I worked on, plus the battle system is a bit on the inconsistent side (especially for Aang). I'll put up what I have now just to see what people think - if it's worth continuing. WIP 1 Complete through the 1st chapter. In-Game Time: 0:03
Taking over the world, one game at a time. Currently TASing: Nothing
Joined: 3/3/2007
Posts: 53
Looks good. I hope you don't give up on it :P btw, WIll you also TAS the 2nd Avatar GBA game?
Joined: 2/1/2008
Posts: 347
Hmm, too bad you can't run in this game, it seems too slow paced otherwise. But I'll watch the finished product if you get there. I wonder if the second game would feel faster though...
<ccfreak2k> There is no 'ctrl' button on DeHackEd's computer. DeHackEd is always in control.
Joined: 2/1/2008
Posts: 347
I played through a bit of this game and noticed that either it has horrible lagging issues (especially in multi-enemy battle zones) or my computer can't keep up with the emulation, though I expect it's more likely the prior. I wonder if that lag can be avoided at all, other than the obvious kill enemies quickly. Perhaps the lag doesn't kick in until an enemy is active (due to proximity)...
<ccfreak2k> There is no 'ctrl' button on DeHackEd's computer. DeHackEd is always in control.
Joined: 1/5/2008
Posts: 29
Here's something i randomly found: http://speeddemosarchive.com/AvatarGBA.html
NitroGenesis
He/Him
Editor, Experienced player (556)
Joined: 12/24/2009
Posts: 1873
Nice necropost.
YoungJ1997lol wrote:
Normally i would say Yes, but thennI thought "its not the same hack" so ill stick with meh.
Guga
He/Him
Joined: 1/17/2012
Posts: 838
Location: Chile
Nice signature.
Noxxa
They/Them
Moderator, Expert player (4123)
Joined: 8/14/2009
Posts: 4089
Location: The Netherlands
Nice link to a rather obvious and well-known speedrun site/community.
http://www.youtube.com/Noxxa <dwangoAC> This is a TAS (...). Not suitable for all audiences. May cause undesirable side-effects. May contain emulator abuse. Emulator may be abusive. This product contains glitches known to the state of California to cause egg defects. <Masterjun> I'm just a guy arranging bits in a sequence which could potentially amuse other people looking at these bits <adelikat> In Oregon Trail, I sacrificed my own family to save time. In Star trek, I killed helpless comrades in escape pods to save time. Here, I kill my allies to save time. I think I need help.
Sir_VG
He/Him
Player (40)
Joined: 10/9/2004
Posts: 1913
Location: Floating Tower
Nice link to my own speedrun.
Taking over the world, one game at a time. Currently TASing: Nothing
Experienced player (588)
Joined: 2/5/2011
Posts: 1417
Location: France
I wanna tas this game with you! I like this anime :P
Current: Rayman 3 maybe? idk xD Paused: N64 Rayman 2 (with Funnyhair) GBA SMA 4 : E Reader (With TehSeven) TASVideos is like a quicksand, you get in, but you cannot quit the sand
Active player (476)
Joined: 2/1/2014
Posts: 928
Avatar was the first game chosen for me to try and understand Lua scripting and Hex editing to figure out memory address values. Although I do not have much interest in TASing this game anymore, I do want to share my values and lua script.
Make sure when searching that you are looking in EWRAM for memory domain.
006F4C	0	0	EWRAM	Camera PosX
006F50	0	0	EWRAM	Camera PosY
0032C8	0	0	EWRAM	Screen Pos X
0032CC	0	0	EWRAM	Screen Pos Y
0032BC	0	0	EWRAM	Screen PosY Offset
0032B8	0	0	EWRAM	Screen PosX Offset
003144	0	0	EWRAM	Sokka Selected
00318C	0	0	EWRAM	Aang Selected
003154	0	0	EWRAM	Sokka's Energy
003150	0	0	EWRAM	Sokka Stance
018700	0	0	EWRAM	Possible EnemyID
018704	0	0	EWRAM	Enemy Type (22 is sword guys, 47 is archer)
018778	0	0	EWRAM	Enemy Stance (1 is standing still, 513 when chasing you, 10** when attacking)
0187C8	0	0	EWRAM	Enemy Counter (resets to 0 when animations happen)
018710	0	0	EWRAM	Enemy PosY
01870C	0	0	EWRAM	Enemy PosX
01C134	0	0	EWRAM	First Archer Enemy
0177CC	0	0	EWRAM	Aang Map X Coords
0177D0	0	0	EWRAM	Aang Map Y Coords
01790C	0	0	EWRAM	Sokka Map X Coords
017910	0	0	EWRAM	Sokka Map Y Coords
0187A4	0	0	EWRAM	X offset between enemy and player?
0187A6	0	0	EWRAM	Y offset between enemy and player?
Most of these values are 4Byte Signed, but occasionally some are 2Byte. Dunno if that really matters or not.. Camera Position -> moves only until end of backgrounds On-Screen Pos + Offset -> moves all over screen, when camera is moving player stays in center Saka Stance -> only two stances, 1 = attacking, 255 not attacking EnemyID: This one is kind of tricky, but there are two 2Byte values next to each other (and right before EnemyType). All their position and offset between player and enemy, as well as their counter and stance are located in these chunks. For the first like 5 swordsmen it should be 0001 0000, 0001 0001, 0001 0002, etc. If I were to continue my lua script, I would try to figure out a way to just set the enemyID's and Types and ahve the lua script do the rest of the work to figure out stance, counters, position, because swordsmen and archers addresses are located the same distance from their enemyIDs. Map coords: These are a pain bacause it's different for each screen to get the position of enemies and sokka and aang. I was trying to find other values that would work but no dice.
local ScreenPosX = 0x32C8;
local ScreenPosY = 0x32CC;
local XOffset = 0x32B8;
local YOffset = 0x32BC;
local Saka = 0x3144;

while true do
	memory.usememorydomain("EWRAM");
	PosX=memory.read_s32_le(ScreenPosX)-memory.read_s32_le(XOffset);
	PosY=memory.read_s32_le(ScreenPosY)-memory.read_s32_le(YOffset);

	gui.drawText(5,200, "Pos X:" .. PosX);
	gui.drawText(5,220, "Pos Y:" .. PosY);


if memory.read_s32_le(Saka) == 1 then
	if memory.read_u8(0x3150) == 255 then
		gui.drawEllipse(PosX-32, PosY-30, 67, 58, "Red");
		else
		end
	else
	end

	emu.frameadvance();
end
Active player (476)
Joined: 2/1/2014
Posts: 928
Started this again cause why not. Finished first stage, Sir VG finished in ~15000, I finished in ~14677.
Active player (476)
Joined: 2/1/2014
Posts: 928
Editor, Experienced player (570)
Joined: 11/8/2010
Posts: 4036
Looks good, solarplex! Just curious, but where did most of the time savings over the old run come from? Better firebender fights? I also created an entry for this game in the Game Select in case you want to post WIPs for this game.
Active player (476)
Joined: 2/1/2014
Posts: 928
CoolKirby wrote:
Looks good, solarplex! Just curious, but where did most of the time savings over the old run come from? Better firebender fights? I also created an entry for this game in the Game Select in case you want to post WIPs for this game.
Link to video video processing. Very hard to compare but you can see vba-rr gets insane with the lag frames more so than BizHawk. So I would say either its better emulation or im just a magician with causing 400 less lag frames out of nowhere.
Editor, Experienced player (570)
Joined: 11/8/2010
Posts: 4036
Ohh, emulation differences, of course. BizHawk emulates the BIOS, while VBA doesn't, so it probably is better emulation reducing all that lag.
Editor, Emulator Coder, Site Developer
Joined: 5/11/2011
Posts: 1108
Location: Murka
There are also other emulation differences between the two GBA cores, and Bizhawk's is not necessarily more accurate.
Active player (476)
Joined: 2/1/2014
Posts: 928
Link to video Im starting over after this one, its better to have toggling on instead of changing between characters each time.
Active player (476)
Joined: 2/1/2014
Posts: 928
Link to video redone from frame 10,000(ish) to enable character toggle which holds the same character through a level's areas. Also fixed a bunch of laggy areas.
Active player (476)
Joined: 2/1/2014
Posts: 928
Here was the watch file I created, just paste this into a watch file to see it
Domain IWRAM
SystemID GBA
319C	d	u	0	EWRAM	Aang's Energy
31EC	d	u	0	EWRAM	Robot HP
3154	b	u	0	EWRAM	Sokka's Energy
3150	b	u	0	EWRAM	Sokka's Stance
3144	b	u	0	EWRAM	Sokka Selected
318C	b	u	0	EWRAM	Aang Selected
6F4C	b	u	0	EWRAM	cameraX
6F50	b	u	0	EWRAM	CameraY
32C8	b	u	0	EWRAM	ScreenposX
32CC	b	u	0	EWRAM	ScreenposY
32BC	b	u	0	EWRAM	OffsetScreenPosX
32B8	b	u	0	EWRAM	OffsetScreenPosY
18700	b	u	0	EWRAM	EnemyID
18704	b	u	0	EWRAM	Enemy Type
18778	b	u	0	EWRAM	Enemy Stance
187C8	b	u	0	EWRAM	Enemy Counter
18710	b	u	0	EWRAM	Enemy PosX
1870C	b	u	0	EWRAM	Enemy PosY
1C134	b	u	0	EWRAM	Archer
177CC	b	u	0	EWRAM	AangMapCoordsX
177D0	b	u	0	EWRAM	AangMapCoordsY
1790C	b	u	0	EWRAM	SokkaMapCoordsX
17910	b	u	0	EWRAM	SokkaMapCoordsY
31D4	d	u	0	EWRAM	Katara
31E4	d	u	0	EWRAM	Katara Energy
Player (74)
Joined: 8/29/2016
Posts: 14
Location: Toaster :0
Found a dumb glitch during my casual playthrough which lead to a more major skip... https://www.youtube.com/watch?v=z9CU5fPBRGY https://www.youtube.com/watch?v=r0Adqg3l48U No exact idea how to do it, but it's rather precise. Don't really like how the game has dynamic memory and I suck at finding pointers. Also sucks solarplex has gone missing.
Sir_VG
He/Him
Player (40)
Joined: 10/9/2004
Posts: 1913
Location: Floating Tower
That boss skip is pretty damn amazing.
Taking over the world, one game at a time. Currently TASing: Nothing