Posts for Randil

Experienced Forum User, Published Author, Skilled player (1890)
Joined: 4/20/2005
Posts: 2160
Location: Norrköping, Sweden
L-Spiro wrote:
I wasn’t planning to post this at all but I gave it a shot in IRC and it was unexpectedly well received. This is an original song (was not going to post because I automatically assume all of my original material sucks) I wrote for an adorable Chinese angel who I hope will become my wife someday (who I mentioned in my previous post). Her name is Yoo and I am hoping this will make her fall in love with me. Yoo Planning to add guitar and drums to this later but will keep it as a piano solo also due to the recommendations from IRC. She has a son named Neo and I wrote a song for him too, but it is not done yet. Hope you enjoy. Oh and Moonlight Sonata Adagio Sostenuto (1st Movement). L. Spiro
"Yoo" reminded me a lot of comptine d'un autre été. I liked it, it sounded like a tune from a movie (and now I will have that song in my head for the rest of the day). I also liked your take on Moon light sonata, beautifully played, and good sound quality.
Experienced Forum User, Published Author, Skilled player (1890)
Joined: 4/20/2005
Posts: 2160
Location: Norrköping, Sweden
boct1584 wrote:
Playing around in ZSNES, I came across a timesaver at the moving platforms section of Stage 2. SMV: http://dehacked.2y.net/microstorage.php/info/1370481693/boct1584%20-%20MMPR-stage2timesaver.smv
*facepalm* I feel stupid not thinking of that. Nice find, it should save quite a few frames. :) This trick, along with the backflip move that mikwuyma metioned, might warrant a new TAS of this game. I'm quite busy right now, so it might be some time until I redo this (if I decide to do it), so if someone else wants to give this game a try, go ahead!
Experienced Forum User, Published Author, Skilled player (1890)
Joined: 4/20/2005
Posts: 2160
Location: Norrköping, Sweden
There is an old topic about this here. (Ironically, with the exact same thread name, except for the question mark)
Experienced Forum User, Published Author, Skilled player (1890)
Joined: 4/20/2005
Posts: 2160
Location: Norrköping, Sweden
mikwuyma wrote:
Nice TAS. Seeing you group all of the enemies so quickly was especially interesting. The only thing that bugged me was that I thought it was faster to backflip (press jump twice) constantly when in ranger form. I know the current speedrun on SDA doesn't backflip either. I found the move after the speedrun was finished. :-/
Interesting! Thanks for telling me about this, I did not consider using that move... I ran some tests now, and you do indeed move faster when backflipping. You can pull off this backflip every 26 frames, and your average speed when backflipping is 2.076 pixels per frame, which can be compared to your running speed of 2 pixels/frame. This means that each backflip will save roughly 1 frame, so 60 backflips = 1 second saved. I can see some problems with this move though, one of them is that I'll probably have to turn around a lot, which takes some time. Also, there are places where I turn around and start running back once the screen has reached a certain point, and in these places I will probably have to land and run the last part in order to turn around as fast as possible (turning around in mid-air is slow). Landing from a jump and start running costs 5 frames, so this might add up. All this makes it uncertain how much time this move will save. I'm guessing anywhere between 3-10 seconds. I might start working on an improved version of this TAS sometime soon.
Experienced Forum User, Published Author, Skilled player (1890)
Joined: 4/20/2005
Posts: 2160
Location: Norrköping, Sweden
Here's a (very simple) lua script with which you can easily record many button presses.
Language: lua

while true do --set the input you want pressed to 1 --leave everything else as 0 --as the script is running, the input you have set to 1 will be pressed Y=1 X=0 A=0 B=1 left=0 right=1 up=0 down=0 L=0 R=0 start=0 select=0 --don't touch anything below here key1={} if Y==1 then key1.Y=1 end if X==1 then key1.X=1 end if A==1 then key1.A=1 end if B==1 then key1.B=1 end if left==1 then key1.left=1 end if right==1 then key1.right=1 end if up==1 then key1.up=1 end if down==1 then key1.down=1 end if L==1 then key1.L=1 end if R==1 then key1.R=1 end if start==1 then key1.start=1 end if select==1 then key1.select=1 end joypad.set(1,key1) snes9x.frameadvance() end
Having some kind of button system is probably better, but until then, hopefully this script can help.
Experienced Forum User, Published Author, Skilled player (1890)
Joined: 4/20/2005
Posts: 2160
Location: Norrköping, Sweden
As you know, I watched most of this run a few days ago. It's a little sad that the "blank shot" trick couldn't be used more, but it's no big deal. Overall, the game choice isn't that bad, except perhaps for the space shooting sections. Here's my yes vote, you improved the published run (any my WIP too, for that matter) a lot more than I thought was possible!
Experienced Forum User, Published Author, Skilled player (1890)
Joined: 4/20/2005
Posts: 2160
Location: Norrköping, Sweden
This error occured when I tried posting a reply - the page loaded for a long time without anything happening, and then I got this error message:
Error in posting

DEBUG MODE

UPDATE users SET user_posts = user_posts + 1 WHERE user_id = 1150

Line : 664
File : functions_post.php

Backtrace:
  includes/functions.php[745]: ErrorPrintBacktrace()
  includes/functions_post.php[664]: message_die(202, string(16) "Error in posting"
, string(0) ""
, 664, {string(61)}, {string(72)})
  posting.php[671]: update_post_stats(string(5) "reply"
, {array[4]}, string(1) "7"
, 10193, 249032, string(4) "1150"
)
I succesfully managed to post the reply a minute later, so I'm not sure what went wrong the first time.
Experienced Forum User, Published Author, Skilled player (1890)
Joined: 4/20/2005
Posts: 2160
Location: Norrköping, Sweden
Awesome improvement, and very entertaining. Thanks for making this, here's another yes vote.
Experienced Forum User, Published Author, Skilled player (1890)
Joined: 4/20/2005
Posts: 2160
Location: Norrköping, Sweden
mklip2001 wrote:
Also, I suggest a screenshot from one of the times in Level 4 where Kimberly is crouching and crotch-shotting the bad guys.
Something like this?
Experienced Forum User, Published Author, Skilled player (1890)
Joined: 4/20/2005
Posts: 2160
Location: Norrköping, Sweden
Sonikkustar wrote:
Im surprised nobody has responded to this movie yet. It really is a treat! Yes Vote. Tons of action and antics. Now could you do the other Power Rangers games on the SNES? :3 Also, You forgot to mention MATLAB in this submission.
Thank you! I've been looking a bit at Power Rangers: The movie for SNES. I think it could make a nice TAS. I might give it a shot in the near future. Until then, I have another SNES game to TAS. :) And I'm terribly sorry, but there was no MATLAB used in this run. There were lua bots involved (that found the best frame to perform jump attacks and such), but no MATLAB this time around.
Experienced Forum User, Published Author, Skilled player (1890)
Joined: 4/20/2005
Posts: 2160
Location: Norrköping, Sweden
Sounds like a good idea.
Experienced Forum User, Published Author, Skilled player (1890)
Joined: 4/20/2005
Posts: 2160
Location: Norrköping, Sweden
moozooh wrote:
Randil wrote:
Here is an image averaging lua script (for FCEUX) I made. It's not perfect, but it works allright. Just enter start frame (startf) and end frame (endf) in the script while playing a movie. It is all frames between (and including) startf and endf that will be averaged. When the movie has reached frame endf, the emulator will be paused and the averaged image will be displayed on screen. Just make a screenshot to get the averaged image in .png-format.
Haha, this reads suspiciously like the usual "here is a level 1 WIP that beats yours by n frames" fare. :D
In case you haven't noticed yet, I am actually just a sophisticated bot the original Randil programmed some time ago. I automatically post the progress Randil makes using standardized forum posts! (seriously though, that post made me smile. I guess I do have that kind of fare) :). alden: nice Donkey Kong image! I have done Shadowgate and Uninvited too: Zeupar: I think so, give me some time and I'll see what I can do.
Experienced Forum User, Published Author, Skilled player (1890)
Joined: 4/20/2005
Posts: 2160
Location: Norrköping, Sweden
Dwedit wrote:
Shouldn't you use an image buffer with 64-bit numbers for R G and B where you simply add the pixels each frame? Delay division until the very end. Then at the last frame, divide by the number of frames. These images don't look correct at all, like they're plagued by rounding errors.
This is exactly how the script works: The RGB values are added for each pixel on each frame (step 3). Since these are integer values, there are no (or at least shouldn't be) any rounding errors in this step. The division by n is performed only at the final frame (step 4). As I see it, this is the only step where there could be a significant rounding error. The script does work as intended - for short movies (say less than 100 frames) the averaged image usually looks pretty nice. As I said in my previous post, the reason why some images look ugly is probably not due to rounding errors, but probably more because the script does not take transparency into consideration.
Experienced Forum User, Published Author, Skilled player (1890)
Joined: 4/20/2005
Posts: 2160
Location: Norrköping, Sweden
Switching to v2 shouldn't make any difference. Here's how the script works: 1. Calculate how many frames long the averaged movie is. The length is simply n := (end frame) - (start frame) + 1. 2. For each pixel i on screen, create a vector u(i)={0,0,0}. This vector will hold the RGB information for each pixel. 3. On each frame between start frame and end frame, then for each pixel i, add its RGB data to its vector u(i). 4. At the end of the movie, divide all u(i) vectors by n. 5. Draw each calculated pixel, one at a time, with transparency 255. The reason why I think images made with my script look quite different from the SMB image on the first page is because my script does not take each pixel's transparency into consideration. This is intentional - using any transparency lower than 255 will make the emulator window shine through. I'm guessing alden's SMB picture takes transperancy into account, creating the layer effect. If this is true, then our methods of creating these are quite different. I made a SMB image with my script, and they are indeed very different.
Experienced Forum User, Published Author, Skilled player (1890)
Joined: 4/20/2005
Posts: 2160
Location: Norrköping, Sweden
Yeah, the script is a bit slow, but it does have 182835 additions to perform on each frame :). On my computer the game runs at about 16% speed when the script is running. The Deja Vu picture took roughly an hour to make. I have made a v2 to script, here, with two minor tweaks: 1. The averaged picture is now displayed correctly - in the old script, as you might have noticed, the displayed picture was a bit off. 2. The scipt runs a bit faster.
Experienced Forum User, Published Author, Skilled player (1890)
Joined: 4/20/2005
Posts: 2160
Location: Norrköping, Sweden
Patashu: Thanks, I will take a look. Here's the average picture of the Deja Vu TAS: I think it's quite interesting; you can make out the taxi photo in the picture frame, but everything else is kinda blurry. It almost looks like some kind of work of art!
Experienced Forum User, Published Author, Skilled player (1890)
Joined: 4/20/2005
Posts: 2160
Location: Norrköping, Sweden
Xkeeper wrote:
Output it to a real format. Displaying it onscreen is a waste of the time you spend running it.
This was more a case of my limited skill in lua programming. I realize that displaying it on screen is quite an ugly solution. I'm guessing the best solution would be to directly convert the array u, containing all information about the averaged picture, into an image file, without displaying it first. However, I don't know how to do that, or if a lua script even can do something like that (if someone knows, I would be very interested). However, I did know the commands to display it on screen, so I went with that.
Experienced Forum User, Published Author, Skilled player (1890)
Joined: 4/20/2005
Posts: 2160
Location: Norrköping, Sweden
Here's a picture I made with my script. Guess the game! (not very hard)
Experienced Forum User, Published Author, Skilled player (1890)
Joined: 4/20/2005
Posts: 2160
Location: Norrköping, Sweden
Here is an image averaging lua script (for FCEUX) I made. It's not perfect, but it works allright. Just enter start frame (startf) and end frame (endf) in the script while playing a movie. It is all frames between (and including) startf and endf that will be averaged. When the movie has reached frame endf, the emulator will be paused and the averaged image will be displayed on screen. Just make a screenshot to get the averaged image in .png-format.
Experienced Forum User, Published Author, Skilled player (1890)
Joined: 4/20/2005
Posts: 2160
Location: Norrköping, Sweden
Thanks for the encode! Here's the latest WIP. It's up to the morph point of level 2. I'm now 742 frames, 12.4 sec, ahead of my old WIP, so it certainly payed off redoing it from scratch. EDIT: New WIP, 994f, 16.6 sec, ahead now. Movie file. EDIT2: Level 2 done, 1120f, 18.7 sec, ahead of first WIP. Movie file. EDIT3: Level 3 done. I lost some time here because I avoided damage completely. I did save some time overall though, so I'm now 1250 frames, 20.8 sec, ahead of my old WIP. WIP. On to level 4!
Experienced Forum User, Published Author, Skilled player (1890)
Joined: 4/20/2005
Posts: 2160
Location: Norrköping, Sweden
How about a storybook atlas, such as Deja Vu? It could look like the Lolo atlas you recently made, with all the rooms visited in one big grid. I think it could look quite cool, with the cursor jumping between the grid boxes at a high speed.
Experienced Forum User, Published Author, Skilled player (1890)
Joined: 4/20/2005
Posts: 2160
Location: Norrköping, Sweden
The published run is almost a minute faster than this run. You stop to kick all enemies which is a lot slower than doing jump kicks. You also take a lot of unnecessary damage. It's always nice to see new TASers spring up, but please make sure that your run is faster than the published run before submitting. Sorry, a no vote from me. EDIT: Seems the grue took this submission while I was writing this post.
Experienced Forum User, Published Author, Skilled player (1890)
Joined: 4/20/2005
Posts: 2160
Location: Norrköping, Sweden
Just a small status update: I've redone the first section of level 1, up to the morphing point (again!), and I'm so far 125 frames ahead of my previous WIP. The game isn't very edit friendly, so I will have to redo everything from here. I'll probably make progress a lot faster this time around since now I have my old WIP to compare with. Here's the latest WIP. You'll notice several strategy changes compared to the old one. EDIT: Finally finished redoing level 1. 349 frames saved over my old WIP! I use a different strategy on the first boss, saving quite a lot of time. Here's the .smv file.
Experienced Forum User, Published Author, Skilled player (1890)
Joined: 4/20/2005
Posts: 2160
Location: Norrköping, Sweden
A noteworthy (and perhaps known, I don't know) and fun fact for anyone who's TASing or speedrunning this game: Megagon moves slightly faster than Amagon - while Amagon moves at 1.477 pixels/frame, Megagon moves at the speed of 1.5 pixels/frame. In practice, this means that every 63 frames, Megagon gains one frame over Amagon. This adds another dimension of difficulty for this game - it's usually better to transform to Megagon as soon as possible in the level since he moves a bit faster, but if you do this, you also need to have enough points at the beginning of the level in order to get enough shots to take out the boss. In order to have enough points at the beginning of the level you might have had to waste frames in the previous level, which in turn might cancel out any frames you gain by transforming to Megagon sooner. So this will have to be taken into consideration.
Experienced Forum User, Published Author, Skilled player (1890)
Joined: 4/20/2005
Posts: 2160
Location: Norrköping, Sweden
boct1584 wrote:
I don't have the full Stage 3 file anymore, due to doing some work on it, having desync trouble, and needed to back up to fix the desyncs; the one I have stops right before the bridge collapses after the morph point. http://www.mediafire.com/?czlj3rfi4ftaz0z EDIT: Watched your Stage 3 WIP. Looking good. A few criticisms, though. 1. Unless there are areas in Stages 4 and 5 where you foresee taking damage to save time, I think it would look better if you sacrificed a bit of time to avoid needing to take damage in Stage 3. Doing it in only one area is just silly, IMO. 2. It looks like you could benefit from some kick-to-backflips in the early part of the stage, before the morph point. (How do you pull that off unmorphed, anyway? I tried it and couldn't figure it out.)
Thanks for the re-upload. 1. Yeah, I wasn't sure about this choice. I think you're right that not taking damage will make the run look smoother, so I'll redo this without taking damage. 2. Hmm, are you sure you're not mistaking it for me landing after a jump-kick and then jump-kick again? As far as I know, the kick-to-backflip isn't possible in your unmorphed form. If I did pull it off, it was just a lucky accident. :) Could you provide a frame count of where you saw this happen? I think I will have to redo this movie from start. I found a new combo (punch-punch-strong punch, punch-punch-strong punch, total of 16 damage, just as much as the normal 4 combo, but with a much shorter waiting time after the last hit) that can save quite some time throughout the run, as well as some new strategies. I redid the first section of the first level 107 frames faster. Hopefully these improvements keep coming! I'll post a new WIP once level 1 is redone.