Posts for jlun2

Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
On BizHawk 1.11.3, using VBA-Next core. I'm not sure if I'm going nuts or not, but the SaveRam for "Monster House (USA) (En,Fr).gba" is rather bugged. For some reason, if I save in game, then reset core or close the emulator, the save file doesn't get updated and just writes "FF" for all values when viewed in a hex editor. It works using the MGBA core however.
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
Rainshower (Modern) Easy mode took me 21:48.60 to get 1000 points. Hard mode took me 17:18.78. 0x3DDEC is Mario's spot; there are 4 possibilities Balloons are like this: Colors - X values occupied (left, right) green - 87, 155 red - 71, 176 black - 50, 202 blue - 29, 220 Seems to start at 0x03C7E4 with offset for each balloon being 0x7c at balloon+0x54, its the "state" in binary; in an attempt to describe it better, I'll use lua:
Language: lua

local i = 0x03C7E4 if bit.check(memory.readbyte(i+0x54),0) then gui.drawText(0,10, "???") end if bit.check(memory.readbyte(i+0x54),1) then gui.drawText(0,10, "Hit an NPC") end if bit.check(memory.readbyte(i+0x54),2) then gui.drawText(0,10, "1st set of ropes passed") end if bit.check(memory.readbyte(i+0x54),3) then gui.drawText(0,10, "2nd set of ropes passed") end if bit.check(memory.readbyte(i+0x54),4) then gui.drawText(0,10, "???") end if bit.check(memory.readbyte(i+0x54),5) then gui.drawText(0,10, "Hit the ground") end if bit.check(memory.readbyte(i+0x54),6) then gui.drawText(0,10, "Not a balloon; its a moon. Oddly never used") end if bit.check(memory.readbyte(i+0x54),7) then gui.drawText(0,10, "About to hit an NPC") end
No idea what address determine's it's color yet. Offset 0x1B seems to be it's speed; sadly it only increases after like 600 or so points scored. Balloon sprite seems to be at offset 0x11. Green - 0x3B,0x3C Red - 0x2B,0x2C Black - 0x33,0x34 Blue - 0x1E, 0x1F Moon - 0x19 There's a speed address for each balloon at offset 0x1A. It's a 2 byte unsigned value that starts at 80, 112, and 320 for Easy. Hard and Very Hard respectively. No idea why the numbers are that large though. 320 seems the highest; didn't managed to get a speed over that even on Very Hard. Address 0x03E456 affects the speed itself; it starts at 5,7 and 20 for Easy. Hard and Very Hard respectively and corresponds to the above values by a factor of 16. Anyways, here's a script to display all the balloons at once:
Language: lua

memory.usememorydomain("Combined WRAM") local balloon = 0x03C7E4 while true do local p = 10 for i = balloon, 0x03D85C, 0x7c do --First Balloon's X pos; offset of others is 7C; enough for 35 balloons if memory.read_u16_le(i+0x1A) == 0 then else if memory.readbyte(i+0x11) == 0x3B or memory.readbyte(i+0x11) == 0x3C then gui.drawText(memory.readbyte(i)-29,memory.readbyte(i+2)-10, memory.read_u16_le(i+0x1A),'LawnGreen') gui.drawText(memory.readbyte(i)-29,memory.readbyte(i+2), memory.readbyte(i)..","..memory.readbyte(i+2).."("..((i-balloon)/0x7c)..")",'LawnGreen') elseif memory.readbyte(i+0x11) == 0x2B or memory.readbyte(i+0x11) == 0x2C then gui.drawText(memory.readbyte(i)-29,memory.readbyte(i+2)-10, memory.read_u16_le(i+0x1A),'Red') gui.drawText(memory.readbyte(i)-29,memory.readbyte(i+2), memory.readbyte(i)..","..memory.readbyte(i+2).."("..((i-balloon)/0x7c)..")",'Red') elseif memory.readbyte(i+0x11) == 0x33 or memory.readbyte(i+0x11) == 0x34 then gui.drawText(memory.readbyte(i)-29,memory.readbyte(i+2)-10, memory.read_u16_le(i+0x1A),'Black') gui.drawText(memory.readbyte(i)-29,memory.readbyte(i+2), memory.readbyte(i)..","..memory.readbyte(i+2).."("..((i-balloon)/0x7c)..")",'Black') elseif memory.readbyte(i+0x11) == 0x1E or memory.readbyte(i+0x11) == 0x1F then gui.drawText(memory.readbyte(i)-29,memory.readbyte(i+2)-10, memory.read_u16_le(i+0x1A),'Blue') gui.drawText(memory.readbyte(i)-29,memory.readbyte(i+2), memory.readbyte(i)..","..memory.readbyte(i+2).."("..((i-balloon)/0x7c)..")",'Blue') elseif memory.readbyte(i+0x11) == 0x19 then gui.drawText(memory.readbyte(i)-29,memory.readbyte(i+2)-10, memory.read_u16_le(i+0x1A),'Gold') gui.drawText(memory.readbyte(i)-29,memory.readbyte(i+2), memory.readbyte(i)..","..memory.readbyte(i+2).."("..((i-balloon)/0x7c)..")",'Gold') end end end gui.drawText(0,0,"Speed: "..memory.readbyte(0x03E456),'Black') emu.frameadvance() end
Bot done http://tasvideos.org/userfiles/info/27198392647936026 For those who don't care about TASing and only want to get points, have fun with 9,999 points using this. Edit: Fixed some bugs regarding if statements and grabbing the moons. Now also adjusted for 17 objects. Changed to 34 objects. Seriously what the hell Edit2: This bot still fails at the worse case scenario where 3+ balloons are about to hit at 15+ speed and/or with waluigi pulling on one of them. Here's how NPCs join the group along with difficulty:
Easy -	0 points
	Toad
			DK

	50 points
	Toad
			DK,Peach

	350 points
	Toad
	Wario		DK,Peach

	550 points
	Toad		Yoshi
	Wario		DK,Peach

	680 points
	Luigi,Toad	Yoshi
	Wario		DK,Peach


Hard - 	0 points
	Luigi		Yoshi
	Wario

	150 points
	Luigi		Yoshi
	Wario		DK

	280 points
	Luigi,Toad	Yoshi
	Wario		DK

	450 points
	Luigi,Toad	Yoshi
	Wario		DK,Peach


Very Hard
	Luigi,Toad	Yoshi
	Wario		DK,Peach
This is important since grabbing the moon 5 times in a row gives 20 points. For both 280 and 680, if you managed to grab a moon during the x80th point, you'll knock Bowser down, gain 20 points, then immediately have BOTH the 100 point "cutscene" along with Luigi/Toad joining you at the same time. This saves a bit of time.
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
A regression maybe? When's the last version that worked?
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
If entertainment is the only factor, does running a demoscene ROM count? Especially for things like Atari demos found on youtube; one can technically have a "movie" of 1 frame long and be entertaining since the whole ROM itself is basically a movie. Also self-playing SMW hacks come to mind.
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
Since I was directed to here from this:
feos wrote:
mtvf1 wrote:
I didn't watch yet. If this tas could be published, we need a new tier, first. I hope tasvideos will accept cheat tas someday.
Exactly.
You know the cheats used in MM9 was a gecko code (not in game) instead of an ingame cheat like the Metroid TAS you linked right? Since if you meant the former, what's stopping people from heavily modifying the game using cheats (without calling it a romhack) and claim it's a different branch? Then they could make a romhack of it, and claim a new record as well and say "it's not a cheat now it's a totally different game new record please."
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
Sorry for asking, but when I try something like gui.text(0, 30, '\226\131\151') but it gives me â and uses only \226. How would I make it use the arrow? Using gui.text(0, 30, '\20D7') gui.text(0, 30, '\8407') or gui.text(0, 30, '\\u20D7') doesn't seem to work.
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
TehSeven wrote:
TehLegendaryMudkip and I are starting to work on Street Fighter 2010, already 75 frames saved in the first level.
I managed to get 121 frames ahead at the first level. I wish you luck; I got stuck trying to remove lag frames at the 2nd level and ended up demotivated.
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
Amaraticando wrote:
Are you sure this code is inside the loop? I use something similar and it definitely is updated every frame (and can be updated even when the emulator is paused).
Language: lua

memory.usememorydomain("EWRAM") gui.DrawNew("native") client.setwindowsize(2) --Sets size so that everything fits client.SetGameExtraPadding(0, 0, 0, 20) local peppermints = 0x3DE9 --6%+ total local bottles = 0x3E11 --3% total local brassHeart = 0x3E13 --6% total local events = 0x3EA2 --17% total local candyBox = 0x4730 --1% total local keyItems = 0x4731 --11% total local toys = 0x4732 --12% total local toys2 = 0x4733 -- 10% total local waterguns = 0x4734 --16% total local gear = 0x4735 --12% total + 3% at gear+1 local characters = {'DJ','Chowder','Jenny'} local water = {0x37D0,0x37D2,0x37D4} --Water supply local water2 = {0x3DF6,0x3DF8,0x3DFA} --Water capacity; only updates when gun is upgrade via chest --Checks the bit of 'mem' at position 'pos' and returns 'value' if it's 1 function addFlags(mem,pos,value) if bit.check(mem,pos) then return value else return 0 end end function percent() local percent = 0 --Checks if the player has the peppermints percent = memory.read_s8(peppermints) + percent --Check if the player has all 3 bottles (1% each) percent = addFlags(memory.read_s8(bottles),0,1) + percent --All Bottles are 1% percent = addFlags(memory.read_s8(bottles),1,2) + percent --But getting the 2nd bottle makes the value for the above 0 --Check if the player has a brass heart (2% each) percent = memory.read_s8(brassHeart) * 2 + percent --Check if the player has the Candy box (1%) percent = addFlags(memory.read_s8(candyBox),1,1) + percent --Checks if the player has the following: Fuse (3%), Dynamite (3%), Elevator Gear (3%), Walkie-Talkie (1%), Flashlight (1%) percent = addFlags(memory.read_s8(keyItems),3,1) + percent --Flashlight percent = addFlags(memory.read_s8(keyItems),4,1) + percent --Walkie-Talkie percent = addFlags(memory.read_s8(keyItems),5,3) + percent --Elevator Gear percent = addFlags(memory.read_s8(keyItems),6,3) + percent --Dynamite percent = addFlags(memory.read_s8(keyItems),7,3) + percent --Fuse --Checks if the player has the following: Rover's bone (2%), RC Car (2%), Chicken doll (2%), Boomerang (2%), Chowder's basketball (2%), Skull's action figure (2%) percent = addFlags(memory.read_s8(toys),2,2) + percent --Skull's action figure percent = addFlags(memory.read_s8(toys),3,2) + percent --Chowder's basketball percent = addFlags(memory.read_s8(toys),4,2) + percent --Boomerang percent = addFlags(memory.read_s8(toys),5,2) + percent --Chicken doll percent = addFlags(memory.read_s8(toys),6,2) + percent --RC Car percent = addFlags(memory.read_s8(toys),7,2) + percent --Rover's bone --Checks if the player has the following: Watergun ugrade (DJ 1, 1%), ?? (1%), Wendy the Dancing Walrus doll (1%), Jenny's wagon (2%), Tricycle (2%), Penguin doll (2%), Bone's kite (2%) percent = addFlags(memory.read_s8(toys2),0,2) + percent --Bone's kite percent = addFlags(memory.read_s8(toys2),1,2) + percent --Penguin doll percent = addFlags(memory.read_s8(toys2),2,2) + percent --Tricycle percent = addFlags(memory.read_s8(toys2),3,2) + percent --Jenny's wagon percent = addFlags(memory.read_s8(toys2),4,1) + percent --Wendy the Dancing Walrus doll percent = addFlags(memory.read_s8(toys2),5,0) + percent --Doombringer unlocked; placeholder for this script percent = addFlags(memory.read_s8(toys2),7,1) + percent --Watergun upgrade for DJ --Checks if the player has the following: Watergun ugrade (Jenny 1, 2%), Watergun ugrade (Jenny 2, 2%), Watergun ugrade (Jenny 3, 2%), Watergun upgrade (Chowder 1, 2%), Watergun upgrade (Chowder 2, 2%), Watergun upgrade (Chowder 3, 2%), Watergun ugrade (DJ 2, 2%), Watergun ugrade (DJ 3, 2%) percent = addFlags(memory.read_s8(waterguns),0,2) + percent --Watergun upgrade for DJ percent = addFlags(memory.read_s8(waterguns),1,2) + percent --Watergun upgrade for DJ percent = addFlags(memory.read_s8(waterguns),2,2) + percent --Watergun upgrade for Chowder percent = addFlags(memory.read_s8(waterguns),3,2) + percent --Watergun upgrade for Chowder percent = addFlags(memory.read_s8(waterguns),4,2) + percent --Watergun upgrade for Chowder percent = addFlags(memory.read_s8(waterguns),5,2) + percent --Watergun upgrade for Jenny percent = addFlags(memory.read_s8(waterguns),6,2) + percent --Watergun upgrade for Jenny percent = addFlags(memory.read_s8(waterguns),7,2) + percent --Watergun upgrade for Jenny --Checks if the player has the following: Trash can (1%), Slingshot upgrade (3%), Slingshot (1%), Cold Syrup (1%), Water balloon upgrade (3%), Water balloon (1%), Brass Key (1%) percent = addFlags(memory.read_s8(gear),0,1) + percent --Camera percent = addFlags(memory.read_s8(gear),1,1) + percent --Brass Key percent = addFlags(memory.read_s8(gear),2,1) + percent --Water balloon percent = addFlags(memory.read_s8(gear),3,3) + percent --Water balloon upgrade percent = addFlags(memory.read_s8(gear),4,1) + percent --Cold Syrup percent = addFlags(memory.read_s8(gear),5,1) + percent --Slingshot percent = addFlags(memory.read_s8(gear),6,3) + percent --Slingshot upgrade percent = addFlags(memory.read_s8(gear),7,1) + percent --Trash Can percent = addFlags(memory.read_s8(gear+1),0,3) + percent --Camera upgrade --Checks the story events done if memory.read_s8(events) > 14 then percent = percent + 1 end if memory.read_s8(events) > 18 then percent = percent + 1 end if memory.read_s8(events) > 24 then percent = percent + 1 end if memory.read_s8(events) > 30 then percent = percent + 2 end if memory.read_s8(events) > 32 then percent = percent + 1 end if memory.read_s8(events) > 37 then percent = percent + 2 end if memory.read_s8(events) > 41 then percent = percent + 1 end if memory.read_s8(events) > 45 then percent = percent + 1 end if memory.read_s8(events) > 50 then percent = percent + 2 end if memory.read_s8(events) > 54 then percent = percent + 3 end if memory.read_s8(events) > 57 then percent = percent + 1 end if memory.read_s8(events) > 62 then percent = percent + 1 end gui.text(0, client.screenheight()-42, 'Percent: '..percent) end function miscflags() local y = client.screenheight()-10 gui.text(0, y-18, 'Flags: ') --Checks if the player has obtained the Camera flash at least once if bit.check(memory.read_s8(candyBox),7) then gui.drawRectangle(0, y, 4, 10, 'WHITE', 'WHITE') end --Checks if the player has obtained candy at least once if bit.check(memory.read_s8(candyBox),2) then gui.drawRectangle(5, y, 4, 10, 'RED', 'RED') end --Checks if the player has obtained soda at least once if bit.check(memory.read_s8(candyBox),3) then gui.drawRectangle(10, y, 4, 10, 'GREEN', 'GREEN') end --Checks if the player has obtained marbles at least once if bit.check(memory.read_s8(candyBox),6) then gui.drawRectangle(15, y, 4, 10, 'BLUE', 'BLUE') end --Checks if the player has obtained water at least once if bit.check(memory.read_s8(keyItems),0) then gui.drawRectangle(20, y, 4, 10, 'AQUA', 'AQUA') end --Checks if the player has obtained water bottle at least once if bit.check(memory.read_s8(gear+1),1) then gui.drawRectangle(25, y, 4, 10, 'DARKCYAN', 'DARKCYAN') end --Checks if the player has unlocked the Toys tab if bit.check(memory.read_s8(keyItems),2) then gui.drawRectangle(30, y, 4, 10, 'DARKKHAKI', 'DARKKHAKI') end end function displaypos() local x = (memory.read_u32_le(0xF9D8)+30720)/65536.0 --Adds 30720 for actual X local y = (memory.read_u32_le(0xF9DC)+20480)/65536.0 --Adds 20480 for actual Y gui.text(0, 60, 'X: '..string.format('%.5f',x) ..' Y: '..string.format('%.5f',y)) local char = memory.read_s8(0x3DE8) if char < 3 then -- just in case local supply = memory.read_s16_le(water[char+1]) --Char uses 0,1,2 but lua arrays are 1,2,3 local capacity = memory.read_s16_le(water2[char+1]) gui.text(0, 75, characters[char+1]..'('..supply..'/'..capacity..')') end end while true do percent() miscflags() displaypos() emu.frameadvance() end
At function "miscflags", for some odd reason, not only is "y" not updating, but the rectangles don't update. If I changed it to text (for example:)
function miscflags()
	local y = client.screenheight()-10
	gui.text(0, y-18, 'Flags: ')
	--Checks if the player has obtained the Camera flash at least once
	if bit.check(memory.read_s8(candyBox),7) then gui.text(0,0,'TESTING') end
	--Checks if the player has obtained candy at least once
	if bit.check(memory.read_s8(candyBox),2) then gui.drawRectangle(5, y, 4, 10, 'RED', 'RED') end
	--Checks if the player has obtained soda at least once
	if bit.check(memory.read_s8(candyBox),3) then gui.drawRectangle(10, y, 4, 10, 'GREEN', 'GREEN') end
	--Checks if the player has obtained marbles at least once
	if bit.check(memory.read_s8(candyBox),6) then gui.drawRectangle(15, y, 4, 10, 'BLUE', 'BLUE') end
	--Checks if the player has obtained water at least once
	if bit.check(memory.read_s8(keyItems),0) then gui.drawRectangle(20, y, 4, 10, 'AQUA', 'AQUA') end
	--Checks if the player has obtained water bottle at least once
	if bit.check(memory.read_s8(gear+1),1) then gui.drawRectangle(25, y, 4, 10, 'DARKCYAN', 'DARKCYAN') end
	--Checks if the player has unlocked the Toys tab
	if bit.check(memory.read_s8(keyItems),2) then gui.drawRectangle(30, y, 4, 10, 'DARKKHAKI', 'DARKKHAKI') end
end
gui.text(0,0,'TESTING') actually works, but the rectangles still won't update, nor will y. Edit: Stopping the script clears the text, but not the rectangles. Is that intended?
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
Excuse me, but how do I update the value of
local y = client.screenheight()-10
while the script is running and I manually change the screen size? It seems to only takes the value when I run the script, rather than inside the loop every frame.
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
Pokota wrote:
Because of the nature of the Extermination run, it is not respectful of the game or the story it presents to publish a TAS of it.
I have no idea what you're talking about, but if people honestly respect a game they won't be finding glitches to break it nor would they bitch about it every time their video gets taken down due to copyright. Or is respect some kind of game mechanic?? Never played nor planning to.
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
This is a rather...different reason for "why doesn't a speedrun of game X exists?". Actually, that makes me wonder if other companies can simply request this for every single game they create, and thus there will be no more illegal gameplay videos. lol
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
How feasible would brute forcing for this specific game? If possible, it could at least show the fastest possible time for this emulator, which then if it's still slower narrow down what may be wrong (emulation error or WR being false).
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
Imo just finish A TAS, have it obsolete the heavily dated one atm, then if someone wants in the far future to make another category go for it. :P
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
No new updates on the missing 3%, but... Maybe I'm jumping the gun, but I believe I found a method to find the position address. On ERAM, 0xF9D8 seems to be a value 30720 smaller than the X position. I assume it's related to the camera positions, since the addresses before it affect the camera. 0xF9DC appears to be a value 20480 smaller than the Y position. So add 30720 and search that value for the true X position, and similar for Y. Positions seems to be 4 Bytes, Fixed Point 16.16. Unsigned also works is using the above method to find addresses. The addresses after it appears to be horizontal/vertical speed, but changing them doesn't affect me. I need to investigate how NPC memory works since the addresses I found for them only corresponds to X/Y, but not health. Edit: Sample code:
Language: lua

memory.usememorydomain("EWRAM") while true do local x = (memory.read_u32_le(0xF9D8)+30720)/65536.0 --Adds 30720 for actual X local y = (memory.read_u32_le(0xF9DC)+20480)/65536.0 --Adds 20480 for actual Y gui.text(0, 30, 'X: '..string.format('%.5f',x) ..' Y: '..string.format('%.5f',y)) emu.frameadvance() end
It get's out of sync while moving due to how lua updates, and I can't seem to fix it with event.onframeend, so it might still be better to use the RAM watch instead. Edit2:
0x473F and onward appears to be door/chests/obstacle flags
Seems that also includes certain cutscenes and events. 0x4773 is a binary which holds flags for the 3rd Nebbercracker. The doors in the rooms nearby along with the cutscenes triggered are for this. Edit3: https://www.youtube.com/watch?v=FGxI7OPn65Q DoomBringer without Hard Mode. Edit4: It appears I vastly underestimated Chowder's watergun; he's capable of 2HKOing bees and the floor monsters even at the beginning without needing to charge. Charging up can kill later monsters very quickly as well. Edit5: Things that I tried and failed to trick the game to giving me more peppermints: 1. Killing Nebbercracker then pressing Start 2. Killing a latter Nebbercracker before going to a past one 3. Skipping a Nebbercracker, triggering a future event, then come back. 4. Pressing start before a peppermint 5. Using the chest delay glitch Edit6: Each and every single Nebbercracker fight has glitches, but none are abusable for percentage. It turns out Chowder's watergun and waterballoons are VERY powerful; I managed to beat the latter bosses in 30 seconds or less. I'm tempted to improve the current TAS, but I can't seem to find the values for NPC hp, oddly enough. Also, I found out I can't simply camera glitch every room; it turns out for cases like Basement 3, the rooms have such a long "door" that by the time I reach the next room, half of it is already loaded. Worse is that if I tried glitching a different room to inch slowly there, it would either not be enough to unload the doors, or I get stuck (Trying to skip to Nebbercracker v2 for example). Finally, it appears the position address uses a different location when I open interfaces. Which means the script won't help at all if I used the chest glitch unless I update it. Edit7: ToDO: Find if the Thou Art Dead minigame affects percentage. Likely not since the key and DoomBringer doesn't, but I'm running low on ideas. Edit 8: Thou Art Dead minigame score caps at 100,007 if done "legit". Legit as in without editing the score, but allowing say, grabbing the gold axe and freezing 0x30C02 for an hour or so and come back. It remains at 100,007 even after the killing the dragon (which usually hands out 10,000 points). Btw, it also loops over and over after a certain stage. Also it still doesn't affect percentage even after reaching 100,007. Edit 9: Technically says 100,007, but hex is says 9F 86 01
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
Kinda late, but thanks! The speed for the game at a glance appears rather tied to the character I'm using, but I'm positive I can find some way to use the (somewhat) constant spawn/starting locations instead. :)
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
solarplex wrote:
deuxhero wrote:
solarplex wrote:
edit 2: rc 5.0 still frozen on 2nd mission
I think the RCs are pretty far behind on updates actually (though no idea if they are THAT far behind). I'll have to try to see if recent SVNs work on this though (though this isn't a priority for me).
At the time of my post, it was almost on par with the recent updates. Now its obviously far behind.
Uh...not sure if it's correct but: https://dolphin-emu.org/blog/2015/11/01/dolphin-progress-report-october-2015/
A few months ago, we announced our intentions to work on and release Dolphin 5.0 with a new release method. By using a stable branch, we hoped to avoid doing a feature freeze so that devs could both work on new features and continue to stomp out regressions. Unfortunately... that didn't work. Users wanted the newest features to be in Dolphin 5.0, developers were confused on what features needed to go to what branches, and things more or less ended up not working out the way we hoped. Sometimes, it's best to just admit a mistake and do things right, so, in order to provide users and developers with the clearest path for Dolphin 5.0, we will be restarting the Dolphin 5.0 release process from scratch. That means abandoning the stable branch (along with merging all unique fixes over into Master) and eventually implementing a full feature freeze in order to give time to close all regressions and make Dolphin 5.0 the special release it needs to be. We hope that users are understanding of the delay. With that, let us continue with our regularly scheduled Progress Report action!
Which I presume means use that latest SVN instead of v5 for now.
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
Nationaldex check skip. You can access the rest of Battle Zone without complete Sinnoh Pokedex. This pretty much means an any% round 2 speedrun would have the same pre-Elite 4 content as an any% one does.
With that said, should that type of run merge with the any% like how pokemon gold/silver does?
Post subject: Question on pointers
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
For some games, the relevant memory addresses for a run changes location every now and then. I have no idea how to find the pointer(s) for said addresses, and not every emulator has debugging tools, but I made a list of possible locations where said addresses may be. Using that list, would it be possible to locate the original pointer and offsets?
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
jlun2 wrote:
https://github.com/TASVideos/BizHawk/issues/441
Whether savedata should go in savestates is some kind of controversial topic I'm not sure I've ever heard resolved clearly, it's possible for different programmers to have selected different approaches without ever knowing it. Major pain in the butt. Anyway, the needs of TASing should resolve it firmly in favor of keeping savedata in savestates, but many casual gamers hate it.
Responding here so it gets more attention, but would a valid compromise be that savestates during movie recording include save files and exclude them when not recording?
Sorry to bring this up again, but while trying to resync the current Monster House TAS to BizHawk, since the beginning requires a reset, this has a chance of causing desyncs. I also tried making a savestate before the reset, but for whichever reason even if the movie file was then editted to not even start a new game, the savefile remains if the movie had generated one before.
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
zeromus wrote:
No, it cannot. IWRAM is 32KB. Your list has a header IWRAM and then individual entries EWRAM. You want to enter 5 digits, then youre entering EWRAM addresses.
After correcting it to
Domain EWRAM
SystemID GBA
02E534	d	u	0	EWRAM	
02E630	d	u	0	EWRAM	
02F050	d	u	0	EWRAM	
02F120	d	u	0	EWRAM	
02F740	d	u	0	EWRAM	
02FDE8	d	u	0	EWRAM	
02FF48	d	u	0	EWRAM	
02E560	d	u	0	EWRAM	
It still won't let me edit 5 digits; erasing 1 of the digits gets me stuck to 4 digits only at the same interface. Edit: Correcting as in changing the domain then resaving it.
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
For the GBA game monster house, a number of addresses end up in this location
Domain IWRAM
SystemID GBA
2E630	d	u	0	EWRAM	
2E534	d	u	0	EWRAM	
2FF48	d	u	0	EWRAM	
2F120	d	u	0	EWRAM	
2F740	d	u	0	EWRAM	
2FDE8	d	u	0	EWRAM	
However, attempting to change said addresses on the watch list ends up like this: Can the 4 character limit be lengthened or removed? Currently I have to use notepad to change both the addresses if I want to add another one manually and change the memory region.
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
Glitchless, which I presume excludes using minor tweaking ones, would be rather long, but I can't tell yet if it would be worth watching yet. I'll wait for progress. Also not exactly related, but in Platinum, after beating the Stark Mountain storyline, the E4's levels increase. I would like to see a run of that which uses all glitches known one day.
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
I'm not sure if it's been posted, but is there any information on how enemies choose to use which attacks? Is it just their current health (for some foes) and RNG?