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"
hejops wrote:
To be completely honest, TAStudio would crash every time upon loading the .tasproj if I used the GBC core. That's the only reason. But I suppose ThunderAxe posted a good enough reason too...
Have you tried posting the tasproj file that crashes here (along with config) and see if others experience the problem?
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
It's not exactly a direct port. I'm playing this game "casually" and now stuck at "Magical World". It's quite fun I guess. Is there a list of tricks or the like for this game? Edit: http://tasvideos.org/userfiles/info/44098144395107567 Here's a playthrough so others can see the difference. Sorry it took so long, some of the puzzles are drastically different that the PS2 version, much to my confusion. Edit: I just realized the movie doesn't exactly sync right; it only works if you started the game, then restarted after starting the first stage once. Gonna remake it wait.
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
Wow. You made 2 different runs of this game, with different routes/tricks used. Even if this (or the other run) gets rejected, this is highly motivating for me, since every now and then, I encounter arguements about what counts as "glitchless", and often (for me) people would write things like "skipping x would be slower by y and more/less entertaining", which without some video, I have a difficult time "picturing" it in my head how different it would be. That, (and among other reasons 😉) is why I really like what you did. tldr I can't picture how different a run would be without actually having said run exist, so ty for making this.
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
TASVideoAgent wrote:
Plays on Beginner mode (Advanced mode merely gives enemies more HP)
Isn't that one of the purposes of hard mode? Can you give an example of where it isn't the case, and hard mode would be chosen instead? Edit: an example of a game with a TAS I mean; not some game where someone finds hard mode more difficult in real time play, but ends up similar TAS-wise.
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
ThunderAxe31 wrote:
Kurabupengin wrote:
This page has no game name: http://tasvideos.org/Game/gba-.html My Spy Muppets TAS shows up as a published run here despite the page itself having no real name.
Fixed.
That page linked now says "<<<Bad>>>" instead for me.
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
I'm rather surprised that voidless "only" saves a bit over an hour. Would you be willing to try TASing the later pokemon games on DS? Those appear highly anticipated.
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
blocks to move when value right char (03C138) 2 (bottom) 20 (middle) 38 (top) left char (03C139) 11 (bottom) 29 (middle) 47 (top) Format for block address 03C140 - state; 0 == done; 1 == alive; 5 == carried 03C141 - convoyer belt array pos 03C142 - 1 if moving right, 0 if moving left 03C140 block 1 03C144 block 2 03C148 block 3 etc. use 03C12E and a for loop to get all blocks without listing them explicitly 03C12D seems to be tick length; ie. how fast the game is the blocks move alternately, determined by 03C12B Easy mode starts at 2 blocks, and reaches up to 6 blocks by 900 points onward. Hard mode starts at 3 blocks, and reaches up to 6 blocks by 600 points onward. It reaches 7 blocks by 780 points onward. Script for classic version: Download mariobros(classic).lua
Language: lua

memory.usememorydomain("Combined WRAM") --[[ 6 cases: right char 2 (bottom) 20 (middle) 38 (top) left char 11 (bottom) 29 (middle) 47 (top) ]]-- while true do local start_address = 0x03C140 local block_state = 0 local block_pos = 0 local right_char = memory.readbyte(0x03C138) --move with a/b local left_char = memory.readbyte(0x03C139) --move with up/down for i = 0, 7 do block_state = memory.readbyte(start_address+(i*4)) if (block_state == 1) then --it exists, and is not being carried to next section block_pos = memory.readbyte(start_address+(i*4)+1) if (block_pos == 2) then if (right_char > 0) then joypad.set({B = true}) end elseif (block_pos == 20) then if (right_char > 1) then joypad.set({B = true}) else joypad.set({A = true}) end elseif (block_pos == 38) then if (right_char <2> 0) then joypad.set({Down = true}) end elseif (block_pos == 29) then if (left_char > 1) then joypad.set({Down = true}) else joypad.set({Up = true}) end elseif (block_pos == 47) then if (left_char < 2) then joypad.set({Up = true}) end end emu.frameadvance() end end emu.frameadvance() end
Also added a github link to past bots in first post, if anyone wants.
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
Zurrecco wrote:
I used to do to tas tests in Mario Kart 64 in 1.11.5 and it works well, except for the slowdowns when savestates are set(fixed in 1.12.1, but the gameplay still works better in 1.11.5). But Mario Kart 64 runs terribly slow (in 100% speed) in the 2.2.1 version. Is possible to some developer to fix ONLY this QuickSave issue in 1.11.5 but keeping the rest exactly like 1.11.5 works for default? Or maybe fix this 2.2.1 slowdown issue in next Bizhawk update?
Have you tried using the latest build mentioned in here? If so, then try also reporting a bug on github?
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
Well, I had to discover glitches for games that aren't exactly mainstream, so I'll post how I discovered some: * Spongebob Squarepants the Movie: For the speed preserving trick (the one where spongebob pushes patrick and speeds through the game), it was due to trying to optimize a jump. For the out of bounds clips, it was due to trying to optimize entering a crawlspace. This is the main timesaver for the current run. The clip saves time in like 1 stage. * Over the Hedge DS: The initial clip in the porch area was discovered by accident while trying to optimize turning. The clips with npcs were found by accident in casual play, using Verne to hide in shell. The saves time in almost every single map. * Monster House: The menu glitch was found when I accidentally paused the game before entering a door. I also found an OoB trick by holding A+B and getting respawned (fall into hole/water/etc) because I forgot to toggle off autohold and went off a cliff. These 2 glitches are the main highlights of the current run. * Telefang: The phone glitch was found by accident, when going through a laggy area, then the phone rang. The fastest way to get rid of it is to pause, which coindentally also happened to trigger the glitch. This is the main highlight of the entire run, that allows one to skip to the end. There are others, but I can't exactly recall what I did for those. For things like Harry Potter, I just did what others already found, but in new locations. Edit: Also TIL tables are supported here. Thanks Mugg! :)
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
Hey, another person is interested in this game! One of the main problems of getting a run of this is that some of the games have luck, and they can't be easily botted (or at least I don't know how to approach). This affects mainly the DK ones (when do crocs spawn, when do DK Jr shoot bubbles, when do barrels spawn), etc. I do know that pausing and unpausing affects luck, but I can't seem to find the RNG address(es) yet. If you want to make a run of the entire game, then it's probably better to find out approximately how fast each minigame takes to get 1000 points, then only do the fastest, while taking account the time to switch between different games. There's a partial list in that thread linked above, which you can also contribute if you like.
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
@PikachuMan I have no idea where you get that from (can't find news of it) but I'd love to read that. Anyways: https://www.fimfiction.net/blog/786318/regarding-leaked-content Apparently there's a leak of the next season already. To those who care about spoilers, its not linked on the blog above; that's only a warning to users against posting spoilers apparently.
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
I found some things to fix (again): 1. In caves, sometimes, the bumpy floor textures are actual bumps, and will cause slowdown if you don't jump over it. This appeared in the last map before Easydog in Ujichichi Mountain, and almost every room in Karatsumu Cave. This saves around 4 frames or so every jump. 2. So I went and investigated how much frames would be saved if I obtained every drink as a drop. For the first chest, it's ~254 frames - delay used for drink. For the 2nd chest in Karatsumu Cave, it's ~341 frames - delay. I'm going to go back and try to get all drinks in battles because of this. Also 113 overworld NPCs in total had luck based movements AND were relevant to the run, of which 41 of those were problematic to manipulate. Edit: At the last interface when you recruit, 2 A presses before accepting, delaying there allows Denjuu stats to differ from the fight by +/- 1-2. While this is normally insignificant, I found out that if Cotta's attack was less than 70, it would not be able to 2TKO Ryuugu due to hitting 26 max.
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 just the build I'm using, or it's like this for others, but for some reason, if I opened BizHawk and do nothing, according to Task Manager, it uses like 30% CPU. As soon as I load a GBA game (not sure of others) and pause, it immediately drops to like 2% usage. So here's 2 questions: 1. Anyone have this problem? 2. How does that even work?
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"
Would it be better to get max score on all 3 games there? Also is there any way to view the credits or anything here (GaW 4 for instance) or nah?
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
ais523 wrote:
The way I see things (which IIRC agrees with the way SDA sees things) is that a major skip is a sequence break that "reconnects the level graph", i.e. it makes it possible to get around a mechanic that gates progress from one part of the game to the next. Most games have rules for when major sections of the game become available (e.g. in Super Mario Bros. 1 completing a level or using a warp pipe connects to a specific other level, in Super Metroid you need to defeat 4 bosses to unlock the final area), and these rules are normally very clear and obvious to the player. A sequence break that nonetheless respects these rules (e.g. teleporting from the start of a level to the end) is a minor skip. A sequence break that violates the rules (e.g. wrong-warping in Yoshi's Island) is a major skip.
Does replacing a stage with another count? In other words, completing the same stage more than once, and fooling the game into thinking "newer" stages count as such? For instance, Over the Hedge any% completes an earlier stage at the end, and the game thinks the last stage is done instead, giving the ending.
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
Minor glitches: 1. If you had 1 HP left, and triggered a cutscene at the same time as getting hit, you can walk around with 0 HP. You'll die the next hit however. Pressing start doesn't seem to work. 2. Pressing select slightly before the "item obtained" screen skips the screen, and you still get the item. Pressing start doesn't seem to work. Can be used to skip other similar popups such as Narnia essence. 3. Pressing select before a cutscene seems to freeze the game. Pressing start doesn't seem to work. 4. Some dialogue can be skipped by pressing select before it occurs, such as the one after defeating all NPCs in Ch. 4 5. Can't skip the beaver introduction in Ch. 3; the exit outside the cabin won't work even if you use cheats to reach it. You CAN however skip the dialogue pushing the rock there if you somehow mananged to clip through it. 6. Ch. 3 squirrel cutscene is sorta skippable (using cheats tho). You can then grab the acorn and return. You can also skip the log after helping. 7. Ch. 7 wolf stalling with the beaver can be skipped if you used cheats to get down the ramp. The ice ramp exit at the beginning won't work however so you still have to go a circle. Sadly this does not trigger the chapter end, so you still have to wait. Also I made this to speed up testing: Download Narnia.lua
Language: lua

memory.usememorydomain("Combined WRAM") local Lucy = {ptr = 0x0458B0, x = 0, y = 0, xAddress} local Edmund = {ptr = 0x042B94, x = 0, y = 0, xAddress} local Peter = {ptr = 0x042BA0, x = 0, y = 0, xAddress} function update(name) local pointer = 0 if (name == "Lucy") then pointer = memory.read_s32_le(Lucy.ptr) - 0x02000000 if pointer > 0x0000000 and pointer <0x2000000> 0x0000000 and pointer <0x2000000> 0x0000000 and pointer <0x2000000> 0) do emu.frameadvance() delay = delay -1 end start = true return start end return start end local cur_char local index = 1 while true do local x local y local speed = 10 local char_array = {[0] = Lucy, [1] = Edmund, [2] = Peter} update("Lucy") update("Edmund") update("Peter") if inputdelay("C",10) then index = (index+1)%3 end cur_char = char_array[index] if (joypad.getimmediate().L == true) then if (joypad.getimmediate().Left == true) then x = cur_char.x-65536*speed elseif (joypad.getimmediate().Right == true) then x = cur_char.x+65536*speed else x = cur_char.x end if (joypad.getimmediate().Down == true) then y = cur_char.y+65536*speed elseif (joypad.getimmediate().Up == true) then y = cur_char.y-65536*speed else y = cur_char.y end memory.write_u32_le(cur_char.xAddress,x) memory.write_u32_le(cur_char.xAddress+0x4,y) end --gui.text(0,60,"Lucy X:"..Lucy.x.." Y:"..Lucy.y.." Add "..bizstring.hex(Lucy.xAddress)) --gui.text(0,75,"Ed X:"..Edmund.x.." Y:"..Edmund.y.." Add "..bizstring.hex(Edmund.xAddress)) --gui.text(0,90,"Peter X:"..Peter.x.." Y:"..Peter.y.." Add "..bizstring.hex(Peter.xAddress)) gui.text(0,105,"Cur:"..index) --gui.text(0,75,"Ed's X:"..bizstring.hex(edmund_pointer+0x28)) emu.frameadvance() end
Holding L and move to zoom all over the place. Change "Speed = 3" to something else to make it run faster. Edit: Added Peter. Right now, the default index value of 1 seems to always work with the current character. Occasionally, changing index allows other characters to be controlled, but often that's not useful.
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
jlun2 wrote:
Not sure if it is just me, but on the GBA cores, if I opened and closed TAStudios over and over, gradually, BizHawk uses more and more RAM. This happened last night after opening TAStudios, editting parts of a movie, then closing it and running a lua bot, then reopening TAStudios and repeat. https://i.imgur.com/DAyfn8m.png It doesn't happen immediately; the first time I closed TAStudios to run a bot script it was at 600MB for the entire time. Every time repeat the above, it creeps slightly higher.
Ok, just checked with a new download, on latest interim, and did the following: 1. Opened BizHawk 2. Open 0421 - Keitai Denjuu Telefang 2 - Speed (J) by dragging to emulator (with bios in firmware folder) 3. Drag this lua script into BizHawk, or open it in lua interface: Download test.lua
Language: lua

local framelimit = 5 local file = io.open("test.txt","w") for i = 0, framelimit do io.write(i) emu.frameadvance() end io.close(file) client.pause()
It should pause the emulator after 5 frames, then script stops. Do not close the interface. 4. Under Tools, open the TAStudios interface 5. Open this tasproj file: https://drive.google.com/open?id=0B-2O13fpsnI4dkFHWURzRm1WYlk 6. Go to a frame past the marker (should be at frame 258317) and make some random input without advancing frame 7. Immediately try and exit TAStudios interface. It should ask you if you want to save. Select No. 8. Right after selecting no, quickly go back to the lua interface and click on "test.lua" to run it again. It should run 5 frames, then pause the emulator. 9. Quickly open back TAStudios as soon as the emulator pauses, and repeat steps 4 to 9. If done correctly, in the task manager in Windows, the memory used by BizHawk will not clear away, and add ~200-300 MB every single time step 4 is repeated. If done "wrong", the amount of memory displayed would drop by ~200MB. For some reason, if I did NOT run the script at all, the memory gets cleared the next time I reopen TAStudios and open the tasproj file. I'm not sure if it works for anyone else, but I just tried the steps above, and managed to get this:
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
I made a very rough script, to display at the very least Lucy's actual X/Y position, rather than graphical one: Download narnia display.lua
Language: lua

memory.usememorydomain("Combined WRAM") local Lucy = {ptr = 0x0458B0, x = 0, y = 0} function update(address) local pointer = memory.read_u32_le(address) if pointer > 0x2000000 and pointer < 0x4000000 then return pointer-0x2000000 --Minus (0x2000000) since BizHawk memory domains end return nill end while true do local pointer = update(Lucy.ptr) if pointer ~= nill then Lucy.x = memory.read_u32_le(pointer+0x28) --Address pointed by pointer + offset Lucy.y = memory.read_u32_le(pointer+0x28+0x4) --Address pointed by pointer + offset + 0x4 gui.text(0,60,"X:"..Lucy.x.." Y:"..Lucy.y) gui.text(0,75,"Lucy's X:"..bizstring.hex(pointer+0x28)) end emu.frameadvance() end
Can be expanded later to include other characters. Seems the address hops when saving and restarting. Also when saving on latter chapters, then restarting and trying old chapters. Edit: Tried playing your input file btw, and desyncs at the first snowball gathering in latest BizHawk, mgba core. Edmund's pointer for chapter 2 at least appears to be 0x042B94, and x is +0x28 just like Lucy's.
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
Is there a way to cap the amount of memory BizHawk is using? I'm getting something like after a while of opening, closing then reopening TAStudios over and over. Currently the only "fix" is to close and reopen the emulator.
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
Wow, this game is far glitchier than I thought. I could see why "100%" definition would be rather tricky, given how a number of things can be seemingly magically glitched. I have no idea what to make of duping rupees but not heart containers other than it would be "interesting", but good luck. Edit: Btw how many of these glitches are still possible in the gba version?
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
1. Does lsnes work fine on your pc at least? 2. If you're busy, it's fine; no need to rush this. I will eagerly wait for a TAS one day. 🙂 3. Not related to your post, but how exactly does the RNG of this game even work, how does it get used, and which parts of the run will need it?
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
I think you should mention how the game scoring works in the author's notes, since it doesn't seem like it's info that even people who've played the game would know until they actually investigated it.
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
1. Nice. Is that movie viewer/editor available in the main builds, or is it a separate branch? Seems rather useful for other multiplayer games. 2. I hope you manage to TAS this one day, since both Air Ride and City Trail drove me nuts in reaching "just" the credits.
Experienced Forum User, Published Author, Skilled player (1709)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
mPap wrote:
Im finding the discussion quite interesting. I wasn't aware of such rules for score oriented TASes, so I'm sorry if this is causing controversy. I'm happy to answer any questions regarding the TAS; the author comments/explanations is quite brief and I could go more in-depth into the strategies I used for each fight.
Don't worry; not sure if it applies to others, but I'm rather glad you posted runs like this since that means if there's controversy about some rule(s), there's an actual submission to discuss, rather than some hypothetical run about some hypothetical scenario. Also:
FatRatKnight, I didnt even see this topic you posted haha. Routing for score in this game is tricky because Little Mac's opponents have a finite amount of HP, and Mac has a finite amount of time to score the points in. I do allow Mac to take damage to let opponents recover HP to score more points but Mac's HP is not infinite either. Its a delicate balance of several factors. There is 1 fight however (Soda Popinski) where getting the 999990 points is possible (or whatever the limit the game can display is). To do this you use a combination of Little Mac recovering HP, getting hit by Soda's straight jab and the clockstop glitch (which effectively gives you infinite time) I didnt include this because clockstop is not allowed in real time attempts and would be pretty repetetive and boring to watch imo.
Can you please make a video of how long it would take to max the score using this trick? Edit: Also how does the game's point system work?