Posts for Randil

Post subject: Re: More picture spam
Experienced Forum User, Published Author, Skilled player (1890)
Joined: 4/20/2005
Posts: 2160
Location: Norrköping, Sweden
alden wrote:
OK more pics: [...]
Woah, these look really, really good, though I would have preferred them in a little higher resolution, if possible. I can't wait to see more pics. Out of curiousity, how many frames does it take the program to paint a picture, in average?
Experienced Forum User, Published Author, Skilled player (1890)
Joined: 4/20/2005
Posts: 2160
Location: Norrköping, Sweden
NES Rad Racer has 0 kills in 21:55, but maybe there are even longer movies on the site with 0 kills. On the other hand, it's not possible to kill anything in that game, so maybe it doesn't count... :)
Experienced Forum User, Published Author, Skilled player (1890)
Joined: 4/20/2005
Posts: 2160
Location: Norrköping, Sweden
Mouse + rerecording works in SNES9X 1.51, if I'm not mistaken, and it should be compatible with Lua too.
Experienced Forum User, Published Author, Skilled player (1890)
Joined: 4/20/2005
Posts: 2160
Location: Norrköping, Sweden
Warp wrote:
Randil wrote:
It is indeed possible, and probably not very hard if you have the necessary RAM-addresses. If you have the RAM-addresses for the current state of all enemies, and you know the value these addresses get when an enemy is killed, you can make a counter that increases by 1 when this happens. This means that the RAM-addresses for the states of the enemies have to have a unique value for when an enemy is killed, so it doesn't mistake an enemy going off-screen for getting killed. This can be used for almost every game, it's just the RAM-addresses that would differ. I hope this made some sense.
That assumes that the enemy statuses are always created at fixed RAM positions. It's perfectly possible that they are created dynamically wherever there's free memory (I don't really know how the memory allocator in SNES programs works). If that is the case, then being able to automatically follow those values would require some serious disassembling and reverse-engineering of the code.
From my experience, most (well, at least most of the ones I've tried) NES games have fixed RAM positions for this. Since SNES is more complex it might be created dynamically for some games. Though I think, and hope, it's possible to write a script like this for some (perhaps most) of the NES and GB TASes. Another approach would be to check the number of kills by checking when your score increases. If the score increases only when you kill an enemy, it might be possible to count deaths this way. Just throwing out ideas.
Experienced Forum User, Published Author, Skilled player (1890)
Joined: 4/20/2005
Posts: 2160
Location: Norrköping, Sweden
NesVideoAgent wrote:
* Emulator used: FCEU 0.98.12 or compatible
You used 0.98.12 for making this movie? Isn't that emulator pretty obsolete, or did I misunderstand something here? Just curious. :)
Experienced Forum User, Published Author, Skilled player (1890)
Joined: 4/20/2005
Posts: 2160
Location: Norrköping, Sweden
Cpadolf wrote:
Warp wrote:
I wonder if it would be possible to write a lua script which automatically counts the number of kills (as the number of explosions). That would make things enormously easier.
I think it is, because in the submission thread nitsujrehtona mentoinded that the movie had a little over 3300 kills, and he even knew some enemies that survived by spawning ofscreen.
It is indeed possible, and probably not very hard if you have the necessary RAM-addresses. If you have the RAM-addresses for the current state of all enemies, and you know the value these addresses get when an enemy is killed, you can make a counter that increases by 1 when this happens. This means that the RAM-addresses for the states of the enemies have to have a unique value for when an enemy is killed, so it doesn't mistake an enemy going off-screen for getting killed. This can be used for almost every game, it's just the RAM-addresses that would differ. I hope this made some sense.
Experienced Forum User, Published Author, Skilled player (1890)
Joined: 4/20/2005
Posts: 2160
Location: Norrköping, Sweden
My guess is that SNES Super Smash TV will have the highest body count. :)
Experienced Forum User, Published Author, Skilled player (1890)
Joined: 4/20/2005
Posts: 2160
Location: Norrköping, Sweden
Wow, that was really, really fast! Easy yes vote, great job and great game choise.
Experienced Forum User, Published Author, Skilled player (1890)
Joined: 4/20/2005
Posts: 2160
Location: Norrköping, Sweden
I watched this just now, and it looked awesome. Nice new findings, and overall skillfully TASed. It's a shame that there is so much lag in this game though, but the game is so fast anyway, so it's not very disturbing. :) I vote yes, and look forward to more runs from you in the future.
Experienced Forum User, Published Author, Skilled player (1890)
Joined: 4/20/2005
Posts: 2160
Location: Norrköping, Sweden
Holy crap! Will watch this later today. :) I'm surprised that the 1:st and 2:nd level weren't improved, I think a few frames can be saved by reducing lag...
Experienced Forum User, Published Author, Skilled player (1890)
Joined: 4/20/2005
Posts: 2160
Location: Norrköping, Sweden
adelikat wrote:
This isn't a bug. This was changed because the old fceu creates a bunch of folders before you even have a chance to tell it not to. If you operate fceu from a fresh .cfg it will have no default folders (and none created). You go to directory overrides to assign them. It will prompt you before creating any new directory (which I think is nice).
Ah, ok, that makes sense.
adelikat wrote:
Are you saying you think the "ROMs" directory override should be /ROMs? That could possibly be arranged.
Yeah, this is just how I personally keep my ROMs, but maybe it's not the most common way. :) It's just a personal preference. And I understand that full screen problems aren't a big priority, I don't really mind the problems either, I rarely play games in full screen mode. So continue focusing on other stuff first. :) I guess I'll need to write a Lua-script to detect lag 100% accurately in Blues Brothers, perhaps by checking if my x and/or y position changes between 2 frames. Well, it's no biggy. Keep up the good job!
Experienced Forum User, Published Author, Skilled player (1890)
Joined: 4/20/2005
Posts: 2160
Location: Norrköping, Sweden
Here are some bug reports: *(Already mentioned by CtrlAltDestroy) The first time you load FCEUX, it doesn't create any folders. If you then go to "Config"->"Directories" and then immediately close the window, it will give an error message for each folder, asking if it should be created. ROMs don't have an initial folder (I personally feel that they should) and the folder for Lua-scripts is named (null), where "Lua-scripts" or something would be better. *Cut (ctrl+x) does not work on text in memory watch, though copy and paste works. *Shift+L does not reload the latest Lua-script, like it does in FCEU .28, maybe this is intentional. The following two bugs happened to me, though it might not be related to FCEUX: *When playing a zapper-game in Full-screen mode, I couldn't get the cursor to go under the middle section of the screen (I could only keep it at the upper section of the screen). This seems to be the case for all zapper-games *In full screen mode, when I pressed alt+enter to go back to normal mode, The screen blackened for a second or two and then went back to full screen mode again. It seems that FCEUX exits full-screen mode after a minute or two of waiting though. EDIT: I found a situation where Lag Counter does not detect a lag frame. On frame 502 in this Blues Brothers movie the game lags, but the lag counter does not increase. Besides this frame, the lag counter has worked well with this game.
Experienced Forum User, Published Author, Skilled player (1890)
Joined: 4/20/2005
Posts: 2160
Location: Norrköping, Sweden
Thanks, I can see how it obsoletes memory viewer in most aspects. Memory poking is a whole lot easier now for example, and the possibility to see inside the ROM data is pretty cool too. But I still can't find a possibility to use memory file dump like before (I managed to dump the RAM using "Dump to file", but I can't seem load it). And there seems to be no way to choose what RAM addresses to dump, like you could in normal FCEU. Maybe I'm just doing something wrong. :P Oh, and nothing seems to happen when I click "Save ROM" or "Save ROM as..." Hehe, seems like I'm just complaining about stuff, but don't get me wrong, FCEUX looks awesome, I'm just concerned about my good ol' memory viewer. ;) Thanks for the cheat search tips, adelikat.
Experienced Forum User, Published Author, Skilled player (1890)
Joined: 4/20/2005
Posts: 2160
Location: Norrköping, Sweden
Wow! I've only been fooling around with this for 10-15 minutes, but already I like what I see. I do have some small comments: 1. First of all, where did memory viewer go? To me, memory viewer is an invaluable tool, both with its memory poke and memory dump features. Are these available from some other tool now? 2. Memory watch is a lot better now, But I kinda miss the buttons below the text fields. 3. Lag counter was one the most exciting new features, but it was a little hard for me to find. I think you should add this tool too the "Tools" menu. Right now the only way to open it is by assigning a hotkey to it, right? 4. One feature that would be super awesome would be to be able to save the current RAM addresses in search mode. Sometimes you want to keep the RAM addresses you have but at the same time perform another search for something else. I guess this wouldn't be that hard to implement. Just an idea. Well, I'll be back with more comments later on. Thanks for making my day. :D
Experienced Forum User, Published Author, Skilled player (1890)
Joined: 4/20/2005
Posts: 2160
Location: Norrköping, Sweden
Congratulations, may your time as a judge be a time of just and reason.
Experienced Forum User, Published Author, Skilled player (1890)
Joined: 4/20/2005
Posts: 2160
Location: Norrköping, Sweden
I remember AnS talking about wanting to do a run of this game recently, so you might want to check with him if he has done anything yet, or has anything planned out.
Experienced Forum User, Published Author, Skilled player (1890)
Joined: 4/20/2005
Posts: 2160
Location: Norrköping, Sweden
Takarifreak wrote:
Another thing I just noticed...just before the flagpole on 1-1, there's a hitbox following on the bottom left of the screen that appears out of nowhere on the stairs. What the heck is that?
I know that many games (most?) store information for each hitbox on what kind of object it is. So perhaps there's a RAM address for each hitbox that tells you what object it is, maybe if someone finds these addresses you can tell what this mysterious hitbox is (these addresses should be close to the ones storing the position information on the hitboxes). Just throwing out ideas! :)
Experienced Forum User, Published Author, Skilled player (1890)
Joined: 4/20/2005
Posts: 2160
Location: Norrköping, Sweden
Nice job on level 1-1. I looked around in my hard-drive and found a very short WIP of level 1-1 where I am 2 pixels and 192 subpixels ahead on frame 606. It might not be enough to save an additional frame (due to vertical position and such, and you probably want to zip through the block), but you might want to check it out, here Oh, and according to my ROM checksum, this run was made with the PRG0 ROM even though the movie file says PRG1, though my ROM names may be off. Anyway, looking forward to the next WIP. :)
Experienced Forum User, Published Author, Skilled player (1890)
Joined: 4/20/2005
Posts: 2160
Location: Norrköping, Sweden
Thanks for the support. :) Level 3 is done now. Since this is an autoscroller, the only thing I had to worry about (in terms of speed) was lag, which I managed to avoid completely. I also gained some time by getting on the train faster. On this level I gained (mostly thanks to lag reduction): *37 frames over the published run. *23 frames over Guybrush's WIP. *26 frames over max's run. So far I've managed to avoid lag completely, so hopefully I can keep it up. Here's the WIP. Enjoy!
Experienced Forum User, Published Author, Skilled player (1890)
Joined: 4/20/2005
Posts: 2160
Location: Norrköping, Sweden
Experienced Forum User, Published Author, Skilled player (1890)
Joined: 4/20/2005
Posts: 2160
Location: Norrköping, Sweden
Here are two questions for you: 1. If I want to fetch the value of RAM address 601D, typing memory.readbyte(6x01D) or memory.readbyte(601D) don't work (it says somwthing about malformed number near '601D'). How do I fetch this value? 2. Is there any way to perform modulo operations in Lua scripting?
Experienced Forum User, Published Author, Skilled player (1890)
Joined: 4/20/2005
Posts: 2160
Location: Norrköping, Sweden
Topic revival! I've been working on this game some, and so far I've done the first two levels. This current WIP is: *808 frames (13.47sec) faster than the published run. *370 frames (6.17sec) faster than Guybrush's WIP. *550 frames (9.17sec) faster than max's rejected run. *52 frames (8.67sec) faster than my previous WIP (after level 1). Here it is. The biggest improvement is oscillating my movement speed, increasing my average movement speed. This is done by pressing right every fifth frame instead of holding down right when moving. Another way to achieve the same movement speed is by pressing left,right,left,right, wobbling your way forward. this will increase my average movement speed from by an additional 16 subpixels per frame, which adds up to quite a lot at the end. In the example below, if I say that my speed is X it means 16*x subpixels per frame. The reason for this is because you only move in 16 subpixel intervalls. So if I say that my speed is 18, it's actually 18*16 = 288 subpixels per frame. An example: Nemo's normal speed is 18. The game will calculate if it should increase speed by reasoning like this: When right is held down, if your speed is >=18 then set speed to 18, else increase speed by 4. If I release right when moving at top speed in air, my speed will be decrease to 17. Now, if I press right again, my speed will increase to 21. I now release right, which causes my speed to decrease by 1 per frame. The I repeat this procedure, making my movement pattern look like this: 17-21-20-19-18-17-21-20-19-18-17-..., giving me an average speed of 19, 1 higher than your normal top speed. The wobbling movement trick is essentially the same, except that once my speed is 21, I press left, instantly decreasing it to 17. This gives me the movement pattern 17-21-17-21-..., with an average speed of 19. Another new trick, which somewhat connected to the oscillating speed trick, is only possible to perform when in the gorilla or lizard form. When you land on the ground after a jump, you will keep the speed you had the frame before you hit the ground for a few frames. By optimizing my movement speed right before I hit the ground, I can keep a higher speed on these few frames after the jump. Some comments on level 1: *Jumping up the first two mushrooms is faster than running. *After picking up the key above the big mushroom, keeping the frog form is faster than transforming back to Nemo, at least when using the movement trick. (I did some testing and it turns out that it's 4 frames faster to keep the frog) Some comments on level 2: *When climbing up the tree as the gorilla, max climbed the right side of the tree, while I (and Guybrush) climbed the left side. Climbing the left side is actually faster, even if it might not look like it. (I tested this too, and it's at least 35 frames faster than climbing the right side of the tree) Any thoughts or comments? Any interest in this?
Experienced Forum User, Published Author, Skilled player (1890)
Joined: 4/20/2005
Posts: 2160
Location: Norrköping, Sweden
dlzm wrote:
Randil,I had ever seen your movie of Moai Kun(摩艾君).I want to ask your a question:How can you through walls so freely and quickly.
Let's say I want to pass through a wall that is to the right. What I do is that I jump right, and then turn around in mid-air, so I'm facing left, but still moving to the right. By doing this, the game check if you're hitting something, so instead of bumping in to the wall, I move through it. Basically, this is the core of the trick, so it's not very hard to pull off in a TAS. You just have to have the right distance to the wall and turn around when in air. It's even possible to pull off on console after only a few tries. :)
Experienced Forum User, Published Author, Skilled player (1890)
Joined: 4/20/2005
Posts: 2160
Location: Norrköping, Sweden
This is something I used to have a problem with when writing the author's comments for submissions: Correct: "This is an improvement over the published run." Incorrect: "This is an improvement to the published run." While we're at it, which one of the following two sentences is preferred (if it matters at all)? 1. "This is a 600 frames, 10 seconds, improvement over the published run." 2. "This is a 600 frames (10 seconds) improvement over the published run."
Experienced Forum User, Published Author, Skilled player (1890)
Joined: 4/20/2005
Posts: 2160
Location: Norrköping, Sweden
Another way to do it is by checking the "Stop movie at frame" box under the Replay Movie window, and then enter the frame you want to resume recording from. Also, make sure you have "Open Read-only" unchecked. When the movie reaches the frame you've entered, it will automatically pause. This can be useful if you want to resume recording from a frame which you don't have a savestate on.