Posts for Randil

Experienced Forum User, Published Author, Skilled player (1890)
Joined: 4/20/2005
Posts: 2160
Location: Norrköping, Sweden
According to Wikipedia, the sum 1+2+3+4+... converges to -1/12 when treated as a Ramanujan sum. More info here: http://en.wikipedia.org/wiki/1_%2B_2_%2B_3_%2B_4_%2B_%E2%8B%AF http://en.wikipedia.org/wiki/Ramanujan_summation
Experienced Forum User, Published Author, Skilled player (1890)
Joined: 4/20/2005
Posts: 2160
Location: Norrköping, Sweden
After doing some trace logging, it seems that while Pokemon Blue stores its potential random encounters inside the RAM, Pokemon Crystal (and maybe Gold and Silver too?) gets its encounters directly from the ROM. It will use a dynamic address pointer to get all the potential encounter from the ROM memory.
Experienced Forum User, Published Author, Skilled player (1890)
Joined: 4/20/2005
Posts: 2160
Location: Norrköping, Sweden
I have a logitech gamepad too, and didn't run into this problem on 1.5.3. Make sure you first clear all button mappings (both under the "Player 1" and "Autofire" tabs), and then map the gamepad buttons to A and >B.
Experienced Forum User, Published Author, Skilled player (1890)
Joined: 4/20/2005
Posts: 2160
Location: Norrköping, Sweden
Hi, I've started playing Pokemon Crystal (in the normal way) recently with the aid of some RAM value insight, and have two questions (which I haven't been able to find any answer to myself): 1. Are there any RAM addresses in Crystal that will tell me what Pokemon (and their rates) I can encounter in the current area? In Pokemon blue, this information is stored in RAM D887 to D89B (see http://datacrystal.romhacking.net/wiki/Pok%C3%A9mon_Red/Blue:RAM_map#Wild_Pok.C3.A9mon) I have been googling around, and found a lot of information over at http://forums.glitchcity.info/index.php?topic=1342.0 but no information on possible encounter ID. 2. Which are the most important RAM addresses for knowing when a random encounter occurs? And can I modify the RAM to force an encounter on every step? Hopefully this information could be useful for you TASers out there, too.
Experienced Forum User, Published Author, Skilled player (1890)
Joined: 4/20/2005
Posts: 2160
Location: Norrköping, Sweden
Would it be possible to add a lua command that can change the display filter? Something like emu.filter("none") and emu.filter ("2xSAI"), etc.
Experienced Forum User, Published Author, Skilled player (1890)
Joined: 4/20/2005
Posts: 2160
Location: Norrköping, Sweden
I love this kind of stuff: Link to video
Experienced Forum User, Published Author, Skilled player (1890)
Joined: 4/20/2005
Posts: 2160
Location: Norrköping, Sweden
I didn't kill them because killing enemies gives score, and score is counted down at the end of the level. Basically, 100 score = 1 frame lost. However, killing enemies also give skill, which you need to upgrade your bow (collecting hearts also gives your score). So if you intend to upgrade your bow on a level, you need to kill enemies in order to get 10 000 skill, but doing this also gives you score, which makes you lose frames after the level. So what enemies to kill and not to kill is not trivial!
Experienced Forum User, Published Author, Skilled player (1890)
Joined: 4/20/2005
Posts: 2160
Location: Norrköping, Sweden
Just thought I'd give an update on this project: I'm about half way done with 1-2 now. I've managed to squeeze out more frames than I first thought. So far I'm 31 frames, 0.52 seconds, ahead of the published run on this level. This might not sound like much, but it's a lot more than I previously thought. Movie file: http://tasvideos.org/userfiles/info/8384878076575485 I got tired of trial and error testing jumps, so I made a program that systematically iterated through thousands of ways to do a jump (I programmed in the game's physics), and pick out the fastest method. This saved me 6 frames on a single jump. Awesome! :)
Experienced Forum User, Published Author, Skilled player (1890)
Joined: 4/20/2005
Posts: 2160
Location: Norrköping, Sweden
Interesting! I also have my doubts that it can be used, but I'll keep it in mind. I can also inform you that I've started work on 1-2. I'm a few frames ahead, but I don't expect any major improvements on this levels, probably between 5-20 frames in total. Bigger improvements will, as you know, come later on. :)
Experienced Forum User, Published Author, Skilled player (1890)
Joined: 4/20/2005
Posts: 2160
Location: Norrköping, Sweden
Here's a weird death I found using HHS' script extraction. By using Big Coin on this left torch here, the game initiates a dialogue with the troll, who throws you to your death. Link to video
Experienced Forum User, Published Author, Skilled player (1890)
Joined: 4/20/2005
Posts: 2160
Location: Norrköping, Sweden
Awesome, the 6502 disassembler did the job, thanks a lot.
Post subject: Dumping NES ROM data to assembly code
Experienced Forum User, Published Author, Skilled player (1890)
Joined: 4/20/2005
Posts: 2160
Location: Norrköping, Sweden
Hi, I'm looking for a way to dump the entire content of an NES ROM as assembly code to a text file. The debugger in FCEUX can display all the ROM's assembly code, but I can't seem to dump this to a text file in any way. Can someone help me out?
Experienced Forum User, Published Author, Skilled player (1890)
Joined: 4/20/2005
Posts: 2160
Location: Norrköping, Sweden
Aah, sorry for the confusion, the file extension is .fm2. There is no .fm2-wip in the filename, the filename is kid_icarus_randil_1-1_wip.fm2 Perhaps the "-"-character is the culprit?
Experienced Forum User, Published Author, Skilled player (1890)
Joined: 4/20/2005
Posts: 2160
Location: Norrköping, Sweden
Blechy wrote:
Ahhh I'm so stoked to see this in progress! Is it not possible to boost while you're jumping left along the set of purple blocks just above it? Can't wait, I'll watch every wip you post!
Thanks! Do you mean damage boosting around frame 2700? I just tried it now, it's possible to get a damage boost by jumping high and hitting an enemy between the middle blocks, but it seems that the boost is a bit too much, and I will fall down directly to the left of the second block (I hope that made sense). Even if I manage to boost a little earlier, jumping this late is usually a few frames slower than the optimal jump. Anyway, I'll try this some more, it's a good idea, maybe it can work out (perhaps I can manipulate the enemies' movements better) EDIT: I pulled off a wall jump on 1-4 that shows that there doesn't have to be a block under the block that you zip through, there only needs to be blocks for you to walk on to the left of this block. Perhaps this opens up new possibilites? Take a look at it here, after frame 17000: http://dehacked.2y.net/microstorage.php/info/1498846036/kid_icarus_new_walljump.fm2 This only saved about 20 frames or so, but the more wall zips, the more enteratining the TAS will be!
Experienced Forum User, Published Author, Skilled player (1890)
Joined: 4/20/2005
Posts: 2160
Location: Norrköping, Sweden
1-1 completed, 6 frames ahead of published run: http://dehacked.2y.net/microstorage.php/info/771026613/kid_icarus_randil_1-1_wip.fm2 The improvements come from optimized movements. I have taken 1 more damage than in the published run, but it doesn't matter since I will pick up a health drink in 1-2. Enjoy!
Experienced Forum User, Published Author, Skilled player (1890)
Joined: 4/20/2005
Posts: 2160
Location: Norrköping, Sweden
I get the following error when trying to upload an fm2-wip to my userfiles: Errors found in upload: <<< The filename lacks an extension >>> The file does have an .fm2-extension, so I don't know where the problem lies... I tried uploading an fm2 a few days ago as well, and got the same error. Here is the fm2 file: http://dehacked.2y.net/microstorage.php/info/771026613/kid_icarus_randil_1-1_wip.fm2
Experienced Forum User, Published Author, Skilled player (1890)
Joined: 4/20/2005
Posts: 2160
Location: Norrköping, Sweden
Here's a video showing off the wall zip lua script I made: Link to video Here it displays a red box on all wall tiles, and a green box when a wall zip might be possible. As I've said before, it gives a number of false positive, i.e. places where it thinks a wall zip is possible but in reality isn't, perhaps because it's too high up to reach. The good news is that it should never miss a potential wall zip.
Experienced Forum User, Published Author, Skilled player (1890)
Joined: 4/20/2005
Posts: 2160
Location: Norrköping, Sweden
Huh... that is... weird. Although I guess the game programmers didn't count on people actually getting down there. :) I have two more good news: First of all, you can do a wall zip in the 3-4 shop room right before the boss, saving 1-2 seconds here as well. Second of all, I have made a lua script that displays a green box wherever a wall zip might be possible. So far it only works on dungeon levels. The script works by reading the block data from the game's RAM (0500 to 05BF), and looking for blocks according to the following rule: 1. Have to be air above it (so you can fall down into this block). 2. Have to be a block below it (So you don't fall through it) 3. Have to be a block directly to its right and to its upper right (so you can approach it with a jump). The script seems to work nicely, but it does give a number of false positive, such as places that are too high to reach. However, if my theory is correct, it should never miss a potential wall zip. It's quite nice to have it running in the background while you run through rooms, as it takes away the human factor of missing something obvious. Here's the lua script, if you want to take a look. It's not perfect yet, as you need to manually type in what hex values correspond to what block (I haven't typed in all values yet), as you see that I've done between code rows 15 and 28. http://pastebin.com/Ysz424Ur
Experienced Forum User, Published Author, Skilled player (1890)
Joined: 4/20/2005
Posts: 2160
Location: Norrköping, Sweden
Hmm, I also tried this promising 3-4 skip, but it seems that you need a block under the first zip block, otherwise you will simply fall down, even if you manage to make the block push you left. I have some minor good news, though: I found a wall zip in level 3-4, 3 rooms before the boss, see this pic: This just saves you the time it takes to walk through the room, so it's about 1-2 seconds, but still something
Experienced Forum User, Published Author, Skilled player (1890)
Joined: 4/20/2005
Posts: 2160
Location: Norrköping, Sweden
Here's another variant of the zip trick: http://dehacked.2y.net/microstorage.php/info/212464297/kid_icarus_1_block_zip.fm2 The interesting stuff happens from around frame 8000. Here I zip from right to left through a 1 block deep section. By aiming up, the game doesn't check if I'm standing on something, and I therefor zip all the way to the end. If I didn't aim up, I would fall down as soon as there is no block below me. Also, by continuing aiming up after leaving the block section, I can stand on thin air as long as I like. Once again, I don't know if this is useful, but I enjoy finding out more about this zipping trick. EDIT: Great news! I have found quite a big time saver on 1-4. By zipping through a pillar, you can go pretty much straight to the boss, without any detour. I don't know exactly how much time this saves, but somewhere around 5-10 seconds. Here's a movie file illustrating this: http://dehacked.2y.net/microstorage.php/info/1783663134/kid_icarus_1_4_zip.fm2 EDIT2: Oh, it looks like this is the same zip that you mentioned in your post. Oh well, great minds think alike, I guess. :)
Experienced Forum User, Published Author, Skilled player (1890)
Joined: 4/20/2005
Posts: 2160
Location: Norrköping, Sweden
Unfortunately, Pit's speed when zipping is the same as his normal speed, so I don't think it can be used in this sense. But on to some good news: here's a movie showing that it might be possible to zip from left to right, at least under certain conditions. In this movie I fall into the layer below me and jump my way out of the wall, getting pushed from left to right. I don't know if this can be put to use, but it's a cool trick none the less: http://dehacked.2y.net/microstorage.php/info/1552998004/kid_icarus_fall_zip.fm2 In any case, it would seem that we have not yet fully discovered everything about this wall zip trick. Also, if you're interested, here's some more info on zipping through walls: As you know, each block is 16*16 pixels. Blocks don't have collision detection for Pit's feet for the top 7 pixels, so while his feet are still in the top 7 pixels, he can move around freely inside the block. So what you want to do is make a jump that is just short of landing on the block, thus giving you the highest possible y position before starting to fall through the block, making the most out of these 7 pixels. If done correctly, during the time it takes you to fall these 7 pixels you will have moved far enough through the block to reach its left side, making it push you out on the other side. After some practice, this wall zip is quite easy to pull off with TAS tools. You have great control over jump height, since you can tap the A button during jumps to fine tune the jump height. You can try this yourself, monitor RAM address 001D when jumping.
Experienced Forum User, Published Author, Skilled player (1890)
Joined: 4/20/2005
Posts: 2160
Location: Norrköping, Sweden
I have a small bug report for the latest version: In RAM Watch, when loading a watch file with using File->Recent, all addresses are treated as unsigned hex even if they are saved as decimal.
Experienced Forum User, Published Author, Skilled player (1890)
Joined: 4/20/2005
Posts: 2160
Location: Norrköping, Sweden
Here's how you can perform a wall zip on a 2 block high wall: http://dehacked.2y.net/microstorage.php/info/1145253740/kid_icarus_2_block_wallzip.fm2 I don't yet know how useful this is, but it's nice to know, none the less.
Experienced Forum User, Published Author, Skilled player (1890)
Joined: 4/20/2005
Posts: 2160
Location: Norrköping, Sweden
Woah, this is some awesome stuff. It seems I will have to look into redoing the TAS. Great job finding (and sharing) this!
Experienced Forum User, Published Author, Skilled player (1890)
Joined: 4/20/2005
Posts: 2160
Location: Norrköping, Sweden
Interesting. After some research, the difference in this platform's movement is due to the global timer on RAM address 0014. This timer is mentioned in the published run's comments, and controls on what frame platforms move (I think they move when this is odd). If you try spawning this platform on different values of 0014, you should (if I'm correct here) see that it sometimes turns around, and sometimes keeps moving left. Normally, if the previous platform moved left, the next platform that spawns will gladly continue moving left. But for some reason, this 3-2 platform makes a "should I turn around?" check, even though it starts moving left. But it is only for some values of 0014 that it performs this check, and not on even or odd values, which control their movement, but accordeing to some other rule. This means that whether it moves left or right depends on this global invisible timer that can't be known in a console speedrun. I wonder what makes this platform behave seemingly differently than other platforms... I'll look into this a bit further. As for minor variation in platform movement: this might be due to the 0014 timer. Depending on this value when the platform is spawned, its movement pattern might differ a pixel or so, i.e. a very minor difference. If the difference you're talking about is greater than what this could cause, it might be something completely different. I can take a look at this too.