Posts for TASeditor

Editor, Experienced Forum User, Published Author, Skilled player (1507)
Joined: 7/9/2010
Posts: 1317
marzojr wrote:
(you flipped the values at some point)
Ah, I remember, it was because I wrote it as (Y;X) on my sheet.
marzojr wrote:
TASeditor wrote:
4. Rotate the coordinate system, so that there's an axis that is the player position on that axis depending on the angle the player wants to follow( and another axis that is not interesting).
I am not sure I understand what you want here. Can you elaborate?
Simply to just have one axis the TASer needs to view, instead of two. For example the player moves along on the x-axis, only this axis needs to be viewed. But when moving at e.g. 35°, the TASer needs to view both x- and y-axis. So I want there to be an axis that eleminates the need of viewing two axises.
Favorite animal: STOCK Gt(ROSA)26Sortm1.1(rtTA,EGFP)Nagy Grm7Tg(SMN2)89Ahmb Smn1tm1Msd Tg(SMN2*delta7)4299Ahmb Tg(tetO-SMN2,-luc)#aAhmb/J YouTube Twitch
Editor, Experienced Forum User, Published Author, Skilled player (1507)
Joined: 7/9/2010
Posts: 1317
Some progress in 2-1 User movie #28553562917469123 I almost managed to save a frame before the mid boss, but according to xipo the boss behaves wheter the fight starts on an even or odd frame. Three frames saved afterwards by starting the steam cycle 3 frames earlier, I think it's possible to get one more, that would require me to start the steam cycle one frame later by good positioning of the camera.
Favorite animal: STOCK Gt(ROSA)26Sortm1.1(rtTA,EGFP)Nagy Grm7Tg(SMN2)89Ahmb Smn1tm1Msd Tg(SMN2*delta7)4299Ahmb Tg(tetO-SMN2,-luc)#aAhmb/J YouTube Twitch
Editor, Experienced Forum User, Published Author, Skilled player (1507)
Joined: 7/9/2010
Posts: 1317
Flip wrote:
Regarding (3) at least, you'd have to know the coordinates of where you're going. EG if we want to go at angle Red, but the script is off by angle Blue, thus we need an angle of Purple to compensate, this will depend on how far we want to go in the intended direction. We'd need to know initial/final location.
Do we really need to know the final destination? I thought about using two straight lines, one with the direction of the angle we want to follow and one with the actual angle. The offset is then determined by the distance between the first line and a point of the second line. Instead of using the actual positions we can also use relative positions starting from the origin, since it shouldn't matter where the lines are placed. But considering that the destination is most of the time not a single point, we can assume that it's not necessary to correct the offset and use the angle with the highest part toward the follow angle.
ais523 wrote:
The whole standard solution to this is probably also flawed due to convergence speed; I fear that even the smallest continued fraction solution would have a numerator and denominator too large for the relatively small range of an analog stick. I wonder if there are other Diophantine approximation algorithms which work better for smaller results?
That's unfortunate, the analog stick range is indeed a huge problem. I knew that it would be rough. In the end it might not even save a frame with this extreme optimisations due to error tolerance and the distance from one frame before the destination to the destination is too big to save a frame, but it could happen that one is just a tiny bit off saving a frame.
JSmith wrote:
Assume the angle is up and to the right; if not, rotate it
Writing a loop for each quadrant would prevent the need to rotate.
Favorite animal: STOCK Gt(ROSA)26Sortm1.1(rtTA,EGFP)Nagy Grm7Tg(SMN2)89Ahmb Smn1tm1Msd Tg(SMN2*delta7)4299Ahmb Tg(tetO-SMN2,-luc)#aAhmb/J YouTube Twitch
Editor, Experienced Forum User, Published Author, Skilled player (1507)
Joined: 7/9/2010
Posts: 1317
Since this is a open problems topic, here are some problems that are in need to be solved to get my bot working. 1. Calculating the best (X;Y) positions on the analoag stick for a given angle and a given minimum radius. The analog stick only having one byte range in each direction makes this a problem, we can only get a rough aproximation to the needed input angle. The method in my current script is:
Language: lua

InputAngle = ((FollowAngle - CamAngle - 90) % 360) X = math.floor(math.cos(InputAngle)*Radius+0.5) Y = math.floor(math.sin(InputAngle)*Radius+0.5)
It calculates the input angle depending on the angle the character should follow and the current camera angle, then it calculates the closest (X;Y) positions for the anaolg stick by rounding it. But it isn't the best solution as I will show in an example. Let's say the angle the follow angle is 100°, the camera angle is 12.78° and the radius is 127 (That is the radius for calculating, not the minimum radius that is possible to get max speed, the game Chameleon Kid, which I used for testing has a minimum radius of ~70, which is good). The optimal input angle will be 357.22, which is not possible to get, because the calculated analog stick position will be (127; -6) and this is an input angle of 357.295124 (close but it goes better). After trying several combinations it's possible to get something better, in my script there's a routine which does that, but it's bruteforcing by rotating around the found position.
(X;Y): input angle
(-6;126): 357.2737
(-6; 125): 357.2516
(-6; 124): 357.2298
(-6; 123): 357.2073
...
(-5; 103): 357.2208
Now (-5; 103) is the closest that occured, but it has a really low radius, but again it depends on the game and it's minimum radius, if it was Chameleon Kid it was fine. So the question is can the best analog stick position actually calcualted without brute-forcing? 2. At a given analog stick position and a given minimum radius, what is the next analog stick position that gives the next greater/smaller input angle and how can it be calculated. This is something for games or sections that don't have a rotating camera. It isn't just one right, left, up or down. Look at the example above. The next possible angle from 357.2298 would be 357.2208, which is 1 up and 20 to the left. Again calculating the analog stick position, not bruteforcing it. 3. Preventing walking in the wrong direction. Let's say the player want to walk at 145°, but the script only gives an analog stick position that is slightly bigger than 145°, so the player essentially end up walking in a the wrong direction. So it's needed to keep track of the distance between the perfect movement vector and the actual position of the player, basically "zig-zaging" around this perfect movement vector is needed to accomplish this. How can this be done? 4. Rotate the coordinate system, so that there's an axis that is the player position on that axis depending on the angle the player wants to follow( and another axis that is not interesting). This is something to give the TASer a better visualisation of what's happening and better comparing of their work. Here's a picture of what I mean: I already tried to solve all these on my own, but didn't accomplished much.
Favorite animal: STOCK Gt(ROSA)26Sortm1.1(rtTA,EGFP)Nagy Grm7Tg(SMN2)89Ahmb Smn1tm1Msd Tg(SMN2*delta7)4299Ahmb Tg(tetO-SMN2,-luc)#aAhmb/J YouTube Twitch
Editor, Experienced Forum User, Published Author, Skilled player (1507)
Joined: 7/9/2010
Posts: 1317
User movie #28439378095979691 Here's a bit better script, it has a very high error of ~1% when calculating the input angle. I'll work on it later. Several things don't work yet.
Favorite animal: STOCK Gt(ROSA)26Sortm1.1(rtTA,EGFP)Nagy Grm7Tg(SMN2)89Ahmb Smn1tm1Msd Tg(SMN2*delta7)4299Ahmb Tg(tetO-SMN2,-luc)#aAhmb/J YouTube Twitch
Editor, Experienced Forum User, Published Author, Skilled player (1507)
Joined: 7/9/2010
Posts: 1317
feos wrote:
TASeditor (the guy) have done some stuff for best angle automation for n64hawk with lua.
It's a rough lua script I made, it's not working really well. The goal is not to just get best angle, but best speed in direction of the angle. My intention is to make it work-able with TAStudio. So it can't be used yet.
Favorite animal: STOCK Gt(ROSA)26Sortm1.1(rtTA,EGFP)Nagy Grm7Tg(SMN2)89Ahmb Smn1tm1Msd Tg(SMN2*delta7)4299Ahmb Tg(tetO-SMN2,-luc)#aAhmb/J YouTube Twitch
Editor, Experienced Forum User, Published Author, Skilled player (1507)
Joined: 7/9/2010
Posts: 1317
lmao. fuck me. Link to video
Favorite animal: STOCK Gt(ROSA)26Sortm1.1(rtTA,EGFP)Nagy Grm7Tg(SMN2)89Ahmb Smn1tm1Msd Tg(SMN2*delta7)4299Ahmb Tg(tetO-SMN2,-luc)#aAhmb/J YouTube Twitch
Editor, Experienced Forum User, Published Author, Skilled player (1507)
Joined: 7/9/2010
Posts: 1317
Great stuff. Wasn't expecting that much to shave off. I knew the last boss would be improveable. And yes the lag in this game for lsnes is weird stuff. In 4:47 in your encode, when you jump up using the hammer saved 1 frame in my TAS. Have you tried that? Yes vote.
Favorite animal: STOCK Gt(ROSA)26Sortm1.1(rtTA,EGFP)Nagy Grm7Tg(SMN2)89Ahmb Smn1tm1Msd Tg(SMN2*delta7)4299Ahmb Tg(tetO-SMN2,-luc)#aAhmb/J YouTube Twitch
Editor, Experienced Forum User, Published Author, Skilled player (1507)
Joined: 7/9/2010
Posts: 1317
if gameplay is faster, then yes
Favorite animal: STOCK Gt(ROSA)26Sortm1.1(rtTA,EGFP)Nagy Grm7Tg(SMN2)89Ahmb Smn1tm1Msd Tg(SMN2*delta7)4299Ahmb Tg(tetO-SMN2,-luc)#aAhmb/J YouTube Twitch
Editor, Experienced Forum User, Published Author, Skilled player (1507)
Joined: 7/9/2010
Posts: 1317
I had the idea for Zelda II becoming Pokémon fights when stepping into random encounters. But unfortunately there's no way to trigger a TC yet. I know of some weird talking glitch which messes up graphics, that might be a good point to start.
Favorite animal: STOCK Gt(ROSA)26Sortm1.1(rtTA,EGFP)Nagy Grm7Tg(SMN2)89Ahmb Smn1tm1Msd Tg(SMN2*delta7)4299Ahmb Tg(tetO-SMN2,-luc)#aAhmb/J YouTube Twitch
Editor, Experienced Forum User, Published Author, Skilled player (1507)
Joined: 7/9/2010
Posts: 1317
This competition doesn't feel like a TAS competition, more like a route-planning competition. I really was looking forward to it, but once I saw the game I was demotivated. I was expecting one where there's route-planning while TASing, like choose between two different paths througth a room. The game is probably is fine if people already knew how big the team needs to be it and there would be better recourses for newcomers, but I find like Arc already said it's not very newcomer friendly when contestants are encouraged to look at the asm code to figure stuff out and complicated glitches. That's to much to expect from a newcomer. Why aren't the map asm's converted to actual maps that everyone can easily understand. Looking at the asm's is usually faster than playing, so people who can read the asm's have a unfair advantage in time.
Favorite animal: STOCK Gt(ROSA)26Sortm1.1(rtTA,EGFP)Nagy Grm7Tg(SMN2)89Ahmb Smn1tm1Msd Tg(SMN2*delta7)4299Ahmb Tg(tetO-SMN2,-luc)#aAhmb/J YouTube Twitch
Post subject: Re: Finding the best character movement
Editor, Experienced Forum User, Published Author, Skilled player (1507)
Joined: 7/9/2010
Posts: 1317
Samtastic wrote:
Does re-loading save states actually change the character AI oris there a tool in the emulator that changes the movements?
You probably want to read that sentence you wrote again.
Favorite animal: STOCK Gt(ROSA)26Sortm1.1(rtTA,EGFP)Nagy Grm7Tg(SMN2)89Ahmb Smn1tm1Msd Tg(SMN2*delta7)4299Ahmb Tg(tetO-SMN2,-luc)#aAhmb/J YouTube Twitch
Editor, Experienced Forum User, Published Author, Skilled player (1507)
Joined: 7/9/2010
Posts: 1317
Right-click->Stop movie
Favorite animal: STOCK Gt(ROSA)26Sortm1.1(rtTA,EGFP)Nagy Grm7Tg(SMN2)89Ahmb Smn1tm1Msd Tg(SMN2*delta7)4299Ahmb Tg(tetO-SMN2,-luc)#aAhmb/J YouTube Twitch
Editor, Experienced Forum User, Published Author, Skilled player (1507)
Joined: 7/9/2010
Posts: 1317
Yesterday I dreamt the best dream so far. I was in a small hall where some guy slaughtered cows, but not the tradional way, he electrocuted them in a stand until they're KO and then he put them into a steel press and let their rib cage break and smashed organs. I also clearly heard the rib cage break, the sound was just too fucking nice!
Favorite animal: STOCK Gt(ROSA)26Sortm1.1(rtTA,EGFP)Nagy Grm7Tg(SMN2)89Ahmb Smn1tm1Msd Tg(SMN2*delta7)4299Ahmb Tg(tetO-SMN2,-luc)#aAhmb/J YouTube Twitch
Editor, Experienced Forum User, Published Author, Skilled player (1507)
Joined: 7/9/2010
Posts: 1317
The speed/position addresses should be floating point, I don't remember exact values (2.X or something) but jumping should be always faster. I don't have a WIP only a very old test of the first two screens.
Favorite animal: STOCK Gt(ROSA)26Sortm1.1(rtTA,EGFP)Nagy Grm7Tg(SMN2)89Ahmb Smn1tm1Msd Tg(SMN2*delta7)4299Ahmb Tg(tetO-SMN2,-luc)#aAhmb/J YouTube Twitch
Editor, Experienced Forum User, Published Author, Skilled player (1507)
Joined: 7/9/2010
Posts: 1317
You set them to 4 bytes, try 1 or 2 bytes.
Favorite animal: STOCK Gt(ROSA)26Sortm1.1(rtTA,EGFP)Nagy Grm7Tg(SMN2)89Ahmb Smn1tm1Msd Tg(SMN2*delta7)4299Ahmb Tg(tetO-SMN2,-luc)#aAhmb/J YouTube Twitch
Editor, Experienced Forum User, Published Author, Skilled player (1507)
Joined: 7/9/2010
Posts: 1317
InfamousKnight wrote:
Current rerecord count: 539 in total. This number should be lower in the final product as some of those rerecords were done when "figuring out where to go" sorta thing.
That rr count will be much higher. Route-planning usually doesn't take rerecords, but there a still things to test with the route. And other things will boost up the rr count significantly. A decent run would be 100-300 times that rr count.
Favorite animal: STOCK Gt(ROSA)26Sortm1.1(rtTA,EGFP)Nagy Grm7Tg(SMN2)89Ahmb Smn1tm1Msd Tg(SMN2*delta7)4299Ahmb Tg(tetO-SMN2,-luc)#aAhmb/J YouTube Twitch
Editor, Experienced Forum User, Published Author, Skilled player (1507)
Joined: 7/9/2010
Posts: 1317
Are you modifing the light sensor? If yes, analog inputs are not implemented properly yet. You need to carefully watch what the playback courser does, it often does not jump back to the edited frame.
Favorite animal: STOCK Gt(ROSA)26Sortm1.1(rtTA,EGFP)Nagy Grm7Tg(SMN2)89Ahmb Smn1tm1Msd Tg(SMN2*delta7)4299Ahmb Tg(tetO-SMN2,-luc)#aAhmb/J YouTube Twitch
Editor, Experienced Forum User, Published Author, Skilled player (1507)
Joined: 7/9/2010
Posts: 1317
There's TAS Editor in FCEUX.
Favorite animal: STOCK Gt(ROSA)26Sortm1.1(rtTA,EGFP)Nagy Grm7Tg(SMN2)89Ahmb Smn1tm1Msd Tg(SMN2*delta7)4299Ahmb Tg(tetO-SMN2,-luc)#aAhmb/J YouTube Twitch
Editor, Experienced Forum User, Published Author, Skilled player (1507)
Joined: 7/9/2010
Posts: 1317
mtvf1 wrote:
I hope tasvideos will accept cheat tas someday.
Then we should rename the site to endvideos.
Favorite animal: STOCK Gt(ROSA)26Sortm1.1(rtTA,EGFP)Nagy Grm7Tg(SMN2)89Ahmb Smn1tm1Msd Tg(SMN2*delta7)4299Ahmb Tg(tetO-SMN2,-luc)#aAhmb/J YouTube Twitch
Editor, Experienced Forum User, Published Author, Skilled player (1507)
Joined: 7/9/2010
Posts: 1317
Spikestuff wrote:
Temping
I should wait until you made a temp encode, but today I'm not that mean. Here's the authors encode: Link to video
Favorite animal: STOCK Gt(ROSA)26Sortm1.1(rtTA,EGFP)Nagy Grm7Tg(SMN2)89Ahmb Smn1tm1Msd Tg(SMN2*delta7)4299Ahmb Tg(tetO-SMN2,-luc)#aAhmb/J YouTube Twitch
Editor, Experienced Forum User, Published Author, Skilled player (1507)
Joined: 7/9/2010
Posts: 1317
Here's a WIP of World 5. Totally 1:47.98 minutes (6479 frames) faster. And just 740130 rerecords. I should really focus more on this...
Favorite animal: STOCK Gt(ROSA)26Sortm1.1(rtTA,EGFP)Nagy Grm7Tg(SMN2)89Ahmb Smn1tm1Msd Tg(SMN2*delta7)4299Ahmb Tg(tetO-SMN2,-luc)#aAhmb/J YouTube Twitch
Editor, Experienced Forum User, Published Author, Skilled player (1507)
Joined: 7/9/2010
Posts: 1317
Here are some tips for you:
    The damage boost lenght depends on when you get hit, earlier hit is better because the enemy knocks you back multiple times. After a damage boost you can punch on two specific frames to get an additional boost of 1 pixel. Try to bypass all enemies without getting knockback in the opposite direction. If you can't avoid that a punch can stop from going to far to the opposite direction. Bosses have an invunerability time of 25 frames. Get as many gloves in the levels before the boss fights, even if you lose some frame first, you can delay 25 frames without losing time. Damage boosts save 4 frames. Item drops depend on the time the enemy was killed, try to get hearts to do more damage boosts or gloves for the boss fights. Small hearts give 3 HP back, big 7. Which means to get a small one you are allowed to delay 12 frames without losing time, 28 frames for a big one.
Here are some memory addresses. Here is a new test movie which should be a good reference for the tricks. Doesn't do any item drops though.
Favorite animal: STOCK Gt(ROSA)26Sortm1.1(rtTA,EGFP)Nagy Grm7Tg(SMN2)89Ahmb Smn1tm1Msd Tg(SMN2*delta7)4299Ahmb Tg(tetO-SMN2,-luc)#aAhmb/J YouTube Twitch
Editor, Experienced Forum User, Published Author, Skilled player (1507)
Joined: 7/9/2010
Posts: 1317
finap13 wrote:
You can, but it actually loses frames: it's maximum speed is the same as the maximum running speed, and loses frames due to acceleration speed.
It is faster, you just need to jump on the slope, or if you can't jump on it you don't want to hold r, but hit it once then bounce off and hit r again when you hit the ground. See User movie #26946032183901719. Sliding downhill is ~1500 (can't remember exact value), running is 1024 with address 0x37B5.
Favorite animal: STOCK Gt(ROSA)26Sortm1.1(rtTA,EGFP)Nagy Grm7Tg(SMN2)89Ahmb Smn1tm1Msd Tg(SMN2*delta7)4299Ahmb Tg(tetO-SMN2,-luc)#aAhmb/J YouTube Twitch
Post subject: Re: Emuhawk Basic Bot Challenges
Editor, Experienced Forum User, Published Author, Skilled player (1507)
Joined: 7/9/2010
Posts: 1317
YushiroGowa wrote:
This is also an experiment to see if Basic Bot really can beat a game by random button mashing.
See you in 10^10^10 years.
Favorite animal: STOCK Gt(ROSA)26Sortm1.1(rtTA,EGFP)Nagy Grm7Tg(SMN2)89Ahmb Smn1tm1Msd Tg(SMN2*delta7)4299Ahmb Tg(tetO-SMN2,-luc)#aAhmb/J YouTube Twitch