Posts for Randil

Experienced Forum User, Published Author, Skilled player (1890)
Joined: 4/20/2005
Posts: 2160
Location: Norrköping, Sweden
Cardboard wrote:
How much time would you expect to gain in the whole run by taking damage and/or being slain and having your organs harvested?
Hard to say, having the organs harvested should save more time than being slain, but it all comes down to randomness in the end. On a more serious note though, I haven't looked into this in detail, but I don't think it's that much in terms of time saved - my guess is that it's between 5 and 10 seconds in total. Blechy and/or cyghfer might have a better idea on this (they take damage and use death in their console run).
Post subject: Goof Troop
Experienced Forum User, Published Author, Skilled player (1890)
Joined: 4/20/2005
Posts: 2160
Location: Norrköping, Sweden
Looks like there wasn't a thread about this game, so I'll start one here. I'm planning on an improved TAS of this game, and I've slowly started recording now. Blechy and cyghfer are working on a console speedrun on this game, so we're helping each other out. One thing I'd like your opinion on is the matter of taking damage and using death to save time. The published run is a no damage and no death run, but I'm considering employing these options in this new TAS. There are a few places in the game where taking damage would save time - sometimes these improvements are quite creative and funny, others look ugly but save a few frames. What are your thoughts on this matter? Should future TASes continue having the no damage + no death tag or is it ok to break this in the spirit of saving time (and for the prospect of adding the occasional funny damage/death scenes)? Or does taking damage and/or dying always look bad in this game? As an example of taking damage to save some time, here is a movie file showing how the docks room can be finished 19 frames faster by taking damage.
Experienced Forum User, Published Author, Skilled player (1890)
Joined: 4/20/2005
Posts: 2160
Location: Norrköping, Sweden
That did the trick, sorry for not reading up enough.
Post subject: Direct3D problem
Experienced Forum User, Published Author, Skilled player (1890)
Joined: 4/20/2005
Posts: 2160
Location: Norrköping, Sweden
Hi, I get this error message every time I open BizHawk: I can't get frame display or input display working, and I suspect that this is the reason. I have DirectX 11 (to my knowledge the latest version) on my computer. Does anyone know how to fix this?
Experienced Forum User, Published Author, Skilled player (1890)
Joined: 4/20/2005
Posts: 2160
Location: Norrköping, Sweden
I agree, this sounds like a good idea. I'll warn you though, I have 405 lua scripts in my FCEUX lua folder. ;) (plus several lua scripts for SNES9X and VBA)
Experienced Forum User, Published Author, Skilled player (1890)
Joined: 4/20/2005
Posts: 2160
Location: Norrköping, Sweden
Just as Sonikkustar did in the NES topic for this game, I'd like to point people's attention to this nicovideo TAS which beats the J version of the game in an amazing 13:04.
Experienced Forum User, Published Author, Skilled player (1890)
Joined: 4/20/2005
Posts: 2160
Location: Norrköping, Sweden
Nice job, this was very entertaining. Yes vote from me.
Experienced Forum User, Published Author, Skilled player (1890)
Joined: 4/20/2005
Posts: 2160
Location: Norrköping, Sweden
TheAxeMan wrote:
Great run on an awesome hidden gem game.
Thank you! I'm glad you liked it.
TheAxeMan wrote:
Could it be possible to get a jet pack before that first shaft climb?
Interesting idea, I'll look into it. The testrun showed that I can spend some more money without worrying about being broke by the end.
TheAxeMan wrote:
Have you figured out how enemy drops work and is there any way to improve your luck?
The drop physics are fairly simple: The game has a kill counter (RAM address 00E6). When you kill an enemy, this counter increases by 1. In order to find out what the enemy drops, take the value of 00E6 modulu 16, and find the drop from the following table: 0 - 1 - 2 - 3 950$ 4 - 5 Apple 6 - 7 - 8 950$ 9 - 10 - 11 950$ 12 - 13 Heart 14 - 15 - I have occasionally made the kill counter increase by 2 for one kill (I don't know if it is present in the TAS though, as it's hard to replicate). I don't know under what circumstances this happens, but it's another thing I want to investigate more for the next version. If I can master this trick, I can get a lot more money quickly.
Post subject: Clash at Demonhead
Experienced Forum User, Published Author, Skilled player (1890)
Joined: 4/20/2005
Posts: 2160
Location: Norrköping, Sweden
Clash at Demonhead is an fun platformer with awesome dialogs. There's a published run of the game here. There's a topic here that discusses this game, but I thought it best to create a topic solely devoted to discussing this game. Any moderator is of course free to merge these two topics. I have made a full TAS of the game that beats the game in 18:11, 4 min 5 seconds faster than the published run. This TAS is more of a testrun (although quite optimized), so I will redo it before submitting anything. The input file is here: http://dehacked.2y.net/microstorage.php/info/1242884796/clash_at_demonhead_randil_v1.fm2 Major changes are: *A new trick that allows me to only use up half as much of the power boots as you usually do: when running you gain momentum, increasing by 1 per frame, up to a maximum of 16. When you release the D-pad, your momentum will decrease by 1 per frame and you will continue moving until you lose all your momentum. The power boots meter does not decrease when you don't press the D-pad. So what I do in the TAS is to run for 16 frames and then releases the D-pad for 16 frames - I will move at top speed by doing this, but only deplete the power boots meter for the 16 frames I hold down the D-pad. This trick basically makes the power boots item last twice as long. This makes the power boots item very desirable as they now last around 40 seconds, compared to the normal 20. *I don't make the detour to route 22 to change in my gold for money, as I don't need that money. *I climb mount Demonhead without getting pulled down. This saved about 1 minute. *Bosses are killed faster, in particular the first boss. *Less shopping, and done in better places. I would love to hear any improvement ideas you might have (even crazy ones). As I said above, I will make a new version before submitting anything - there are some things I want to test, and I know of a few frames I can shave off.
Experienced Forum User, Published Author, Skilled player (1890)
Joined: 4/20/2005
Posts: 2160
Location: Norrköping, Sweden
In layman's terms, a "ROM" is a file containing a game. For example, the game "Super Mario Bros" for NES has a ROM file, and if you have this ROM file and a NES emulator (such as FCEUX) you can play Super Mario Bros on this emulator. Know that it's not allowed to ask for ROM links on this forum, nor is it allowed to link to ROM files or ROM sites. EDIT: Haha, moozooh made a post while I was writing this one, and it had almost the same content.
Post subject: Re: Luck manipulation question
Experienced Forum User, Published Author, Skilled player (1890)
Joined: 4/20/2005
Posts: 2160
Location: Norrköping, Sweden
Jungon wrote:
Do we have anything on 'RNG and how to get better results on incoming pairs of Puyo Puyo games'??
Not on this game in particular but on luck manipulation (i.e. manipulation of RNG) in general: http://tasvideos.org/LuckManipulation.html
Jungon wrote:
Or the RNG decided the next pieces? I can't get the game to change the income, except more than 14 frames before the screen appears, ... I found out that the RNG changes every time I press any arrow, but I'm not getting anywhere making the first pair being the one I want, ...
Based on this it sounds like the game decides what pieces to spawn when the current pieces have been put down. How RNG works differ a lot from game to game. The best case scenario is that RNG is determined by a single RAM address. If you find this address (by RAM searching) you should be able to predict the next piece. Other games have their RNG determined by several RAM addresses - this is more complicated, but you might be able to understand it if you have found all of these addresses. The worst case scenario is that the RNG of the game is very complicated and you won't get anywhere in understanding it unless you look into the assembly code. Try to understand how any input you make affect randomness. In some games the RNG change when you press buttons that don't do anything in the game (such as, perhaps, pressing select). If you're good at lua programming (and the emulator supports lua) you could make a brute force bot that just button mashes thousands of combinations until you get the desired outcome. There is of course some work involved in this, but it might pay off in the end.
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
No problem, here's a crash course in lua scripting in SNES9X: Copy the script I posted to a text file (everything except the first line). Change this file's extension from .txt to .lua, so SNES9X understands that this is a lua script. While TASing the game, go to File->Lua scripting->New lua script window... A lua script window should pop up. Press the browse button and select the lua script you want to run (i.e. our shadowrun lua file you just made). Now, when you click on "run" on the lua script window, this script will run. For this particular script, it finishes in an instant. Your stats and equipment should now have been set to what the script says (in its current form, you get all weapons and armors and max stats, as well as a load of nuyen). There are other lua scripts that runs in the background. These scripts can, for example, display your position, HP, karma points, etc. on screen.
Experienced Forum User, Published Author, Skilled player (1890)
Joined: 4/20/2005
Posts: 2160
Location: Norrköping, Sweden
Oh! I almost forgot - I also have a very useful lua script that can set your equipment or stats to anything you'd like - this should come in handy if you want to test whether or not a new weapon or a slightly different stat setup makes a difference. If you're not too familiar with lua scripting in emulators, let me know, I can guide you through it.
Language: lua

--BELOW ARE THE VALUES THAT YOU WANT --set allweapons to 1 if you want to get all weapons in your weapons list allweapons=1 --set allarmors to 1 if you want to get all weapons in your armor list allarmors=1 --don't set this higher than 16 711 679 nuyen=1000000 --don't set hp higher than 200 hp=30 --don't set mp too high mp=0 --boosted reflexes boosted=0 --stats: --changing body will NOT change your max hp, though the game will think that you have this body-value --to change your max hp, change value of "hp" above body=3 --1 exp = 1/8 karma, don't set exp greater than 7 karma=100 exp=0 --don't set any below 1 or higher than 6 strength=6 charisma=6 computers=6 powerball=6 heal=6 invicibility=6 armor=6 summon=6 freeze=6 --don't set firearms greater than 16. setting it greater than 7 has no effect firearms=1 --DO NOT TOUCH ANYTHING BELOW --------------- --------------- --------------- nuyenp1=math.mod(nuyen,256) nuyenp2=math.floor(nuyen/256) nuyenp3=math.floor(nuyen/65536) memory.writebyte(0x7E3C0D,nuyenp1) memory.writebyte(0x7E3C0E,nuyenp2) memory.writebyte(0x7E3C0F,nuyenp3) --set current hp: memory.writebyte(0x7E33DE,hp) --set max hp: memory.writebyte(0x7E3C00,hp) --set current mp: memory.writebyte(0x7E3C96,mp) totexp=8*karma+exp expp1=math.mod(totexp,256) expp2=math.floor(totexp/256) expp3=math.floor(totexp/65536) memory.writebyte(0x7E3C11,expp1) memory.writebyte(0x7E3C12,expp2) memory.writebyte(0x7E3C13,expp3) memory.writebyte(0x7E3BFD,strength) memory.writebyte(0x7E3BFF,charisma) memory.writebyte(0x7E3C01,firearms) memory.writebyte(0x7E3C04,computers) if allweapons==1 then memory.writebyte(0x7E2F2F, 0xB2) memory.writebyte(0x7E2F30, 0x08) memory.writebyte(0x7E3079, 0xB2) memory.writebyte(0x7E307A, 0x08) memory.writebyte(0x7E3097, 0xB2) memory.writebyte(0x7E3098, 0x08) memory.writebyte(0x7E309C, 0xB2) memory.writebyte(0x7E309D, 0x08) memory.writebyte(0x7E30A1, 0xB2) memory.writebyte(0x7E30A2, 0x08) memory.writebyte(0x7E380D, 0xB2) memory.writebyte(0x7E380E, 0x08) memory.writebyte(0x7E3812, 0xB2) memory.writebyte(0x7E3813, 0x08) memory.writebyte(0x7E3817, 0xB2) memory.writebyte(0x7E3818, 0x08) memory.writebyte(0x7E381C, 0xB2) memory.writebyte(0x7E381D, 0x08) memory.writebyte(0x7E383A, 0xB2) memory.writebyte(0x7E383B, 0x08) end if allarmors==1 then memory.writebyte(0x7E3083, 0xB2) memory.writebyte(0x7E3084, 0x08) memory.writebyte(0x7E3821, 0xB2) memory.writebyte(0x7E3822, 0x08) memory.writebyte(0x7E3826, 0xB2) memory.writebyte(0x7E3827, 0x08) memory.writebyte(0x7E382B, 0xB2) memory.writebyte(0x7E382C, 0x08) memory.writebyte(0x7E3835, 0xB2) memory.writebyte(0x7E3836, 0x08) memory.writebyte(0x7E2F34, 0xB2) memory.writebyte(0x7E2F35, 0x08) end memory.writebyte(0x7E3C07, powerball) memory.writebyte(0x7E3C08, heal) memory.writebyte(0x7E3C09, invicibility) memory.writebyte(0x7E3C0A, armor) memory.writebyte(0x7E3C0B, summon) memory.writebyte(0x7E3C0C, freeze) memory.writebyte(0x7E3C19,boosted)
Experienced Forum User, Published Author, Skilled player (1890)
Joined: 4/20/2005
Posts: 2160
Location: Norrköping, Sweden
I have a few RAM addresses, though I haven't really validated them. Some of the don't even have a name (sorry about that) so you'll have to decipher them. It seems that the RAM address for your X and Y positions differ depending on your location. Anyway, here they are:
00000	7E0E86	b	u	0	X pos pix
00001	7E0EDE	b	u	0	Y pos pix
00002	7E0EDF	b	u	0	Y pos big
00003	7E0E87	b	u	0	X pos big
00004	7E0CE0	b	u	0	Screen X pix
00005	7E0CE2	b	u	0	Screen Y pix
00006	7E0CE1	b	u	0	
00007	7E0E9A	b	u	0	Outside X pix
00008	7E0EF2	b	u	0	Outside Y pix
00009	7E0FA2	b	u	0	
0000A	7E01F1	b	u	0	Hand X local pix
0000B	7E01F3	b	u	0	Hand Y local pix
0000C	7E01ED	b	s	0	Cursor X speed
0000D	7E01EC	b	u	0	
0000E	7E01F0	b	u	0	Scr X subpixel
0000F	7E1C92	b	u	0	RNG 1?
00010	7E2F24	b	u	0	Enemy 1 HP
Also, for reference, here's the SDA speedrun in 1h 35min: http://speeddemosarchive.com/ShadowrunSNES.html
Experienced Forum User, Published Author, Skilled player (1890)
Joined: 4/20/2005
Posts: 2160
Location: Norrköping, Sweden
HHS wrote:
I found some bugs, but their usefulness is doubtful.
Great! I'm very happy that someone else has been playing around with this game lately. Thank you very much for sharing these.
HHS wrote:
- There are some items that can be picked up even if your inventory is full. This can be used to move to another location: Coin: Men's room Newspaper: Diary room Bul1-1: Under the manhole under the fire escape Bul1-2: Woman Bul1-3: Elevator, by office Bul1-4: Elevator, by dentist's room Bul1-5: Elevator, penthouse Bul1-6: Cab, by apartment Bul2-1: Mugger
Interesting. The first item is placed on 04CE and your current room is stored in 0514 - that's 70 addresses apart. There are enough items in the game to pull this off, though of course, picking up this many items will most likely neglect the benefit of gaining the power of teleportation.
HHS wrote:
- If you buy a Bul1 or Bul2, you can leave it back on the counter. Leave it enough times and the number of inventory pages will underflow. This can be used to write FF to any location between 4C0 and 5BF (or another value by taking one of the above items). With this method you can also place an item in the address page or the container page. The following variables reside in this area: 4C0-4C6 - Addresses 4C7-4CD - Items in container 4CE-513 - Inventory 514 - Current room 515 - Current display 516 - Current page 517 - Maximum page number 518 - Number of things on current page 519 - Number of things on last page 51A - Number of addresses 51B - Number of coins 51C - Number of bul1's 51D - Number of bul2's 51E - Number of opened things 51F-52C - List of opened things (2 bytes each) 52D-52E - Current opened thing 52F - Previous display (when displaying closeup) 530 - Transition type 531 - Current palette 532 - Page scrolling related 533 - Keep text open
I'll have to play around with this, but it does sound promising. EDIT: I've already found a potential use for this - by placing any other (non FF) value in the address list, the game will treat this address as Auburn (the mansion at the end of the game). What this means is basically that I can get the Sherman address by leaving just one bullet on the counter, as long as there was at least one item left in the previously opened container (which will then be moved to the address list). This would save me the trouble of getting medicine1 and key4... This should save quite a few seconds - I have an idea that should work... I'll leave it as a surprise for the submission. :) EDIT2: Yup, this new trick worked well indeed - I now have a movie that is 31.8 seconds faster than the published run. I still can't fully believe this. Thank you again, HHS. The run is now well under 10 minutes, clocking in at 9min 45sec. I think you'll like the new run. I'll look things through a few times before submitting, but hopefully I can submit this soon. EDIT3: I'll just post some interesting things I find with this bug: Teleporting to toilet from gun shop. Probably not useful but pretty fun. Getting the Kedzie address without visiting westend. This is done by examining the RAM address for the current displayed photo in the corridor with the boxing picture
Experienced Forum User, Published Author, Skilled player (1890)
Joined: 4/20/2005
Posts: 2160
Location: Norrköping, Sweden
Warepire wrote:
Considering that this game seems to use the same engine as Shadowgate, is there a chance some item might be as glitched up as the glasses in that game?
I have tested this - I wrote a lua script that looped through all items in the game and tried to pick them up twice, and it didn't work for any item. So no glasses trick for this game, unfortunately... Of course this doesn't rule out the possibility that there is some other type of bug hiding somewhere. I tried the glasses trick for Uninvited too, and no luck there either.
Experienced Forum User, Published Author, Skilled player (1890)
Joined: 4/20/2005
Posts: 2160
Location: Norrköping, Sweden
Thanks! I also found a faster way to pick up the medicines in the doctor's office, but I'll let that be a surprise until I submit this. I'm currently 135 frames ahead of the published run... I'll continue looking for improvements, but I think I'll submit this before the end of the week.
Experienced Forum User, Published Author, Skilled player (1890)
Joined: 4/20/2005
Posts: 2160
Location: Norrköping, Sweden
Hello again, I have some news on the Deja Vu TAS: 1. I have found a new route through the first section (up to outside Joey's bar). This route includes taking the secret entrance instead of going up the stairs. At the point where I've selected key2 to use on the car, I'm 216 frames = 3.6 seconds ahead of the published run. However (and this is a big however), this route changes the item order, in particular the capsules appear sooner in the list. This will make the medicine items appear on a different page than the capsules, wasting a lot of time on page scrolling - one page scrolling costs about 57 frames, and there will be 4 page page scrollings when using the medicines, so 228 frames in total. I might be able to combine these page switching with other page switching I have to do anyway, thus saving some time. I need to ponder this some more, maybe I can use this new route, maybe not... I'll post it here if anyone's interested: http://dehacked.2y.net/microstorage.php/info/1395259720/deja_vu_new_route.fm2 The high rerecord count is courtesy of several bots I've constructed that tested stuff out. 2. I don't know if this is general knowledge, but you can actually burn up a lot of the evidence that was planted on you with the lighter you get in the coat - note1, file5 and map can all be burned with the lighter. This means that the only reason to visit the sewers is to throw the gun in there. If anyones has any ideas on an alternative way to get rid of the gun, the sewers section can be completely skipped. I had an idea to use the handkerchief on the gun to wipe off the fingerprints, but the game didn't understand that. I hope to ignite some discussion on this as I'm drawing blank right now. I intend to write more lua scripts that brute force tests different stuff, maybe that will come up with something. As for actually improving the published run rather than chasing potential big improvements, I have improved the published run by 25 frames by new menu movements, and I think I can squeeze out a few more frames. On a related note, I have a more game programming oriented question: The game treats the gun as "discarded" when the 2-byte of RAM address 04A4 is set to 1. Is there a way to "reverse-engineer" the game to find what actions will set this byte to 1? Is this hard to do? EDIT: I have awesome news: I found that it's faster to get to the casino through the sewers rather than taking the elevator the normal way. This doesn't change the item order in any way, so no worries there. This movie is 116 frames, 1.93 seconds, faster than the published run: http://dehacked.2y.net/microstorage.php/info/1590677746/deja_vu_randil_new.fm2
Experienced Forum User, Published Author, Skilled player (1890)
Joined: 4/20/2005
Posts: 2160
Location: Norrköping, Sweden
That was awesome. Obvious yes vote. I'm genuinly amazed that all these strange quirks are found - it goes to show that there are people out there with very deep understanding of this game. One question though: is it possible to use the goal sphere on the final level?
Experienced Forum User, Published Author, Skilled player (1890)
Joined: 4/20/2005
Posts: 2160
Location: Norrköping, Sweden
I TASed around with the J version of this game some time ago. I only did a 1 player WIP. I heavily abused the different items that enemies can drop. I just quickly looked through your WIP now (I'm very tired right now so my focus is so-and-so) and it looks quite different from my TASing strategy of this game. I like this fact about two people trying to TAS the same game independently - they will often come up with very different solutions. The fact that yours is a 2 player run also makes them harder to compare. Anyway, hopefully there are a few things in my WIP you can incorporate. Here is my input file. I personally think the key to beating this game fast is to use enemy drops, in particular the bouncing balls item while manipulating the enemies to get hit by the balls.
Experienced Forum User, Published Author, Skilled player (1890)
Joined: 4/20/2005
Posts: 2160
Location: Norrköping, Sweden
mklip2001 wrote:
Quite nice! It's a long run, but each of the stages is good. The cutscenes are pretty ridiculously elaborate. Is it possible to make a Lua script that fast-forwards cutscenes between stages?
As a matter of fact, I have such a script. I tested it again just now, and it seems to work well.
FCEU.speedmode("normal")

while true do

if memory.readbyte(0x3F0)==0 then
	FCEU.speedmode("nothrottle")
else
	FCEU.speedmode("normal")
end


FCEU.frameadvance()

end

Experienced Forum User, Published Author, Skilled player (1890)
Joined: 4/20/2005
Posts: 2160
Location: Norrköping, Sweden
I think you can skip the subpixel trick - as you said, those few seconds it saves won't make a big difference on the final product. And not having to worry about it will make this a lot easier on you, I think. Good luck with this, I'll try and take a look at what you've got sometime this week.
Post subject: Bram Stoker's Dracula
Experienced Forum User, Published Author, Skilled player (1890)
Joined: 4/20/2005
Posts: 2160
Location: Norrköping, Sweden
(First of all, I am aware that there's a similar topic here, though it focuses on Shiru's TAS, so I decided to make a new topic. These two topics should perhaps be merged.) I've been TASing this game lately, and I so far I've improved Shiru's run by 6.93 seconds. If I'm lucky, I can break the 14 minute mark. There are mainly 3 reasons why I've shaved off time from Shiru's TAS: 1. Better health management, in particular picking up more hearts along the way so I can take more damage, even if the hearts are slightly off track. This is much faster than dying to regain 3 hearts, which was suggested in Shiru's submission discussion. 2. Attacking in air when falling down will instantly set your Y speed to 4, which is the highest value. This is useful when you want to fall down as fast as possible. Shiru's was kind of aware of this trick, but didn't use it to its full potential. 3. Using the 3-rock weapon on bosses. This weapon deals 3 damage per shot, compared to 1 with the other weapons. I use this to kill the second boss really fast. For this reason, if it's possible, it's worth getting this weapon even if it's slightly off track. I've stopped the movie on the second ghost fight. I have 2 more health than Shiru at this point, and these 2 extra health will save a lot of time later on. Please let me know what you think of the first ghost fight, or if you have any ideas or suggestions on health management. Here's the input file. EDIT (2011-12-11): 826 frames, 13.77 seconds, in total gained at the end of the level, thanks to taking damage at some spikes and killing the boss with the 3 rock weapon. New input file. I think sub-14 is definitely possible. EDIT 2 (2011-12-11): Well, I've been working hard on this all day, and I'm now more than half way through the game, being 25.27 seconds ahead of Shiru, thus breaking the 14 minute mark. Input file. EDIT 3: Wow, a lot of edits in one day! I hope no one minds. I'm about 80% through the game now. I'm now 45.65 seconds ahead of Shiru, and there will be more time saved later on, since I have 3 health compared to Shiru's 1. I'm very happy with the health management in the run, it'll turn out very nice in the end. I'll probably finish the run sometime next week. Input file.
Experienced Forum User, Published Author, Skilled player (1890)
Joined: 4/20/2005
Posts: 2160
Location: Norrköping, Sweden
A live version of "Zoe Jane" by Staind. This is one of my favourite songs, I think the lyrics are great. Take a look: Link to video