Post subject: Drake & Josh
Skilled player (1741)
Joined: 9/17/2009
Posts: 4981
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
I might as well post what I found for this game here knowing I'll probably find some large improvement, demotivating me as a result. First, the lua script for displaying x/y
memory.usememorydomain("Combined WRAM")

	local Player = {ptr = 0x00F678, x = 0x000000, y = 0x000000, speedx = 0x000000, speedy = 0x000000, attention = 0x000000}
function update(name)
	if (name == "Player") then
		local char = memory.read_s32_le(Player.ptr) - 0x02000000
		Player.x = char  + 0xE4
		Player.y = char  + 0xE8
		Player.speedx = char + 0xEC
		Player.speedy = char + 0xF0
		Player.attention = char + 0x706
	end
end

while true do
	local Player_ptr = memory.read_s32_le(Player.ptr)
	if (Player_ptr ~= Player.x-0xE4+0x02000000 and Player_ptr ~= 0) then	--this will happen if changed rooms or just started script
		update("Player")	--placing this here as to not lag my computer :P
	end
	if (Player.x ~= 0x0) then
		gui.text(0,300,"Player:"..string.format('%.6f',memory.read_u32_le(Player.x)/65536.0)..","..string.format('%.6f',memory.read_u32_le(Player.y)/65536.0)..","..memory.read_s32_le(Player.speedx)..","..memory.read_s32_le(Player.speedy))
	gui.text(0,60,"Meter:"..memory.read_s16_le(Player.attention))
	end
	--[[
	gui.text(0,75,"Room ID: 0x"..bizstring.hex(memory.readbyte(0x005A94)))
	]]--
	gui.text(0,90,"Pointer (Player): 0x"..bizstring.hex(memory.read_s32_le(Player.ptr)))	--debug--
	gui.text(0,105,"Pointer (Player): 0x"..bizstring.hex(Player.attention))	--debug--
	emu.frameadvance()
end
I'm aware it's not perfect; namely, the meter on the upper left's address depends on both the pointer + current room. It doesn't change however, unless you reload a room, which annoyingly happens rather often. Tricks: 1. NoClip state - Rapid fire "A" when you get stunned by Janitors/Black Sheep/Paintballs/Thugs/Footballers/Fans cause you to immediately unstun, without unflagging said state. This has 2 consequences: a. You can walk through doors, checkpoints, NPCs, and certain objects b. Since checkpoints and objects like switches won't trigger, you need to lose the state to progress You can lose it by either restarting the room, or getting hit by lasers, janitors, or fans. You can still get sighted by NPCs, despite them not noticing you if you walk into their cone of vision. 2. End camera movement earlier - Once you hit a switch and the camera moves to the door, as soon as the door opens you can open and close it to immediately gain control again. This is only worth it if the camera moves far away however. 3. Skip dialogue - Press start 2 frames before the screen fades to black; this causes the dialogue to get skipped. Note: This should not be done at the end, since it may make the game stuck. 4. Grabbing items quicker - The items required for 100% are counted as obtained even after getting caught or resetting the room, so if something is far away, it may be better to restart. 5. Ending foodfight early - While the goal is to avoid having 5 people reach the exit, they failed to actually check if that occurred, so as soon as 5 people/sheep reaches the end, you "win" regardless. 6. Messing with the item counter - Using the clipping glitch, you can grab the 100% items from later parts of the stage. It will count as the current one, but if say, 2 unlockables require 15 items (30 total) and you obtained 30/15, the 2nd unlockable is lost forever. 7. Minor movement trick - Moving diagonally makes you move at 204 rather than 272 speed. So if you want for example to move a bit up/down, it is sometimes better to autofire up/down while moving horizontally, since this makes the speed change from 272 to 204 every frame. This is occasionally slower however. I already have a route for both any% and 100% http://tasvideos.org/userfiles/info/32497915734308465 http://tasvideos.org/userfiles/info/32505686992981034 But it's not perfect, and likely improvable (the route, not the details). In case anyone wonders, both runs use the clipping glitch, since initial playthroughs seems to indicate not using it would make the run at least 30 minutes longer. Edit: So uh.... You can clip into the wall here. While it may look useless, turns out if you were to grab 10 picks over here, then use this trick to retrigger the food fight, not only will it count as obtaining 100% on the next guitar, but also resets all of the red picks you've obtained. So, given how incredibly out of way some of the later stages are for 100%, this may actually save time. :) Edit2: Seems to save ~3,000 frames over doing it normally. :)
Skilled player (1741)
Joined: 9/17/2009
Posts: 4981
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
New discoveries: 1. Pushing crates through doors/lasers - This allows me to skip large sections of 2 Josh's segments. The test run manages to complete the game in ~102,000 frames now. 2. Pressing start before dialogue appears - Useless in a TAS, but once the faces pops up, right before the text appears, if you press Start, the faces go away but the text remains. Pressing A leaves the dialogue, but then the faces reappear on screen. During this time, if you trigger another dialogue, it softlocks the game. 3. During the sheep herding stage, you can throw them against walls, and occasionally they will clip through and zip far away. 4. Even more useless: You can very easily clip out out of bounds in real time; just push a crate and get stunned while at it. 2 cases: i. You're against a wall. This pushes the box into the same spot you're on. Now move opposite to the wall, and you get clipped into the wall. ii. You are not against a wall. The block stops midway between the first spot and the next. Normally this does not happen. Now push it next to a door, then move to the doorway. Grab the part sticking out, and you'll clip into the wall. You cannot get back out however, hence why it is useless. 5. Playing the guitar 2 frames before colliding with an NPC disables the cameras along with most objects. But this makes it impossible to clip out. Does not disable pick ups nor switches/triggers. Edit: Pushing a crate to a door guarded by a yellow laser crashed the game for some reason, but attempts to do it again while recording failed to crash. No idea why. 6. http://imgur.com/l7VH2oR Doing that glitch where you repeat episode 3 over and over to obtain more items 15 times crashes the game. :)
Skilled player (1741)
Joined: 9/17/2009
Posts: 4981
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
http://tasvideos.org/userfiles/info/34155943071866605 I will just post this right now, since I discovered that it may potentially faster to skip the first 2 film reels and simply collect the last 2 twice. Not sure if it is because they never expected players to get to the end with 0 films, but those 2 seems to be the only ones where you can restart stage and grab more film reels. I managed to get 12 reels out of 4 like this from testing. Edit: In case anyone wonders, collecting from projector 1 auto-sets rolls to 1. Collecting from projector 2 auto-sets it to 2. Both does that even if you got 3 films then backtracked. Edit 2: Actually, it seems skipping only the first and taking last 3 works even better.
5. Playing the guitar 2 frames before colliding with an NPC disables the cameras along with most objects. But this makes it impossible to clip out. Does not disable pick ups nor switches/triggers.
Ok, so this does not make you able to clip through things. The only collision I found so far that stuns you during this state are paint balls, but they do not appear on the last stage. Annoyingly enough, if you did the stun glitch first, doors that used to be able to disable NPCs no longer disable them. Example: http://i.imgur.com/8boMfAu.png This door is solid, but if you did the stun glitch, despite remaining solid, you will not be able to do the guitar trick on it. Getting stopped by cameras does not trigger the guitar glitch as well.