Posts for Gunty


1 2 3 4 5 6 7
Experienced Forum User, Published Author, Player (198)
Joined: 12/3/2006
Posts: 151
I'm glad there's some interest in this concept.
erokky wrote:
What would be more interesting is that you manipulate every floor in a way where it's interesting...
I agree that this would make the TAS less repetitive to watch, but the problem with such a run is that it's goals are somewhat vague. I've seen quite a few TAS'es seen rejected because of this and that's why I'd like to keep it's goals clear. Collecting all 10 Iris Treasures and displaying them all in the pub (or whatever it is) is a clear critereum and should leave it open to competition.
Halamantariel wrote:
I don't want to ruin anything for you guys, but the ancient cave requires an INSANE amount of luck manipulation...
Don't worry, I know. I actually have thought of a relatively easy way to make this TAS. Since the outcome of the Ancient Cave floor generating routine is determined by the current state of the RNG, why not modify the emulator in a way it runs the subroutine for every possible RNG state? That's what I did and I had it run for over 12 hours now, simulating 200000 different floors. Since generating a floor typically takes about 2000 random numbers, 200000 simulations should be plenty for 98 floors. Every simulation logs the following things:
  • RNG state before the subroutine
  • Iris treasures
  • Providence
  • Distance from starting location to stairs
  • Distance from starting location to stairs via the first treasure chest (which always contains Iris treasures or Providence if they're generated)
  • RNG state after the subroutine
This information should lower the difficulty of making this TAS somewhat.
Dromiceius wrote:
Seems like something you could submit as a concept demo without too many objections.
Yep, I figured this would be somewhat like the CPU humiliation in the "4 cpus" Monopoly TAS (one of my favorite movies for the record). It's absurd luck manipulation actually partially inspired me to run Lufia II in the first place.
Catastrophe wrote:
I don't even know if it's possible for the game to spawn multiple Iris Treasures in one instance of the cave.
It's very much possible (with tools of course). The only limitations I know of is there can be only one Iris treasure every floor and if a Iris treasure is spawned, the same floor cannot contain Providence.
Catastrophe also wrote:
You should however run from power on to the cave as fast as possible.
Actually, I was planning on doing a Gift mode run, which would prevent me from having to play through the game all the way to Gruberik to able to enter the cave. To do this, either SRAM or a Game Genie code/hack has to be used. I'm leaning towards the Gamegenie codes since the SRAM method leaves the game open to RNG manipulation before starting the movie. Thanks for voting everyone :)
Experienced Forum User, Published Author, Player (198)
Joined: 12/3/2006
Posts: 151
Excuse my double post, but I'd like to know your opinion of a new concept for a TAS I've been thinking about. At first, I was thinking of doing a plain Gift mode run which would aim to clear the Ancient Cave as fast as possible, but soon I realised it would be pretty trivial to do in a TAS and somewhat boring to watch. But, how about a TAS which races down to floor 99 as soon as possible, beats the master AND collects all additional 9 Iris treasures? I'm sure it would be fun to see the game pushed to it's limits like that. Since collecting all Iris treasures typically took me months, collecting all of them in one go could be pretty amusing to watch. Yes/Meh/No?
Experienced Forum User, Published Author, Player (198)
Joined: 12/3/2006
Posts: 151
I don't mind too much about the extra frames since it's hardly noticable anyways. Also, I suppose this due to the more accurate emulation of snes9x 1.51 which is always good. The desyncing however isn't that pretty.
Experienced Forum User, Published Author, Player (198)
Joined: 12/3/2006
Posts: 151
It does. Notice how this movie is 2 frames shorter though. It seems like every 192'th frame snes9x 1.51 is a frame behind compared to 1.43v9. Also, I've had desync problems when recording with snes9x 1.51 which I never had with 1.43v9...
Experienced Forum User, Published Author, Player (198)
Joined: 12/3/2006
Posts: 151
While not the most impressive trick, this one should save 226 frames (using snes9x 1.51): http://dehacked.2y.net/microstorage.php/info/1746397075/lufia2-introskip.smv Though, the best part of starting the game this way is the RNG being in an 'earlier state', meaning that there will be new luck manipulation options early in the game.
Experienced Forum User, Published Author, Player (198)
Joined: 12/3/2006
Posts: 151
I'm not sure if this is related, but a few torrents are reporting a negative amount peers on the site. My bittorent client is also showing these (assuming there aren't actually 65493, but -42 peers), so I suppose this is a problem on the tracker's site.
Experienced Forum User, Published Author, Player (198)
Joined: 12/3/2006
Posts: 151
Thank you very much :). I'll try and figure out the correct RAM offset next time myself though.
Experienced Forum User, Published Author, Player (198)
Joined: 12/3/2006
Posts: 151
Certainly, however I just realised I compiled it using debug settings, so this may be the reason why it isn't working. Edit: I forgot to mention I also disabled screenshot support since at the time I couldn't figure out how to get the required libraries. Anyways, here is the modified version I'm using.
Experienced Forum User, Published Author, Player (198)
Joined: 12/3/2006
Posts: 151
I'm having some trouble getting this tool to work with my modified version of snes9x 1.51. What I did was adding an extra line in the config file with the filename, using the same RAM offset setting as the original 1.51 version does. However, whenever I launch the modified emulator, the line which normally shows the ROM title only shows some random symbols, which makes me believe the RAM offsets aren't configured properly. Any idea how to fix this?
Experienced Forum User, Published Author, Player (198)
Joined: 12/3/2006
Posts: 151
MUGG wrote:
1. in the beginning you auto-fired 'Start'. That is sloppy! 2. It desynchs although I'm using the correct ROM (Flash, The [U] [!])
Yeah, it's desynchronising for me as well with a ROM matching the checksum. What emulator did you use to record this run?
Experienced Forum User, Published Author, Player (198)
Joined: 12/3/2006
Posts: 151
mushroom wrote:
I'd say this is a fairly entertaining 23 minutes, and probably much better than any unassisted speedrun that could be done. Not to try to define this site's goals or anything, but in my opinion, that's good enough criteria for the publication of a TAS.
I agree it was entertaining when casually watching it, but, to me, part of the entertainment comes from knowing/thinking the the game is played perferctly. Also, I didn't mean to sound so negative about your run; for your first run it was actually quite good. Just don't be afraid to use that rerecord button next time.
mushroom wrote:
thanks for watching
My pleasure ;)
Experienced Forum User, Published Author, Player (198)
Joined: 12/3/2006
Posts: 151
While a low re-record count doesn't have to be a bad thing, I'm afraid in this case it is. For instance, the flaming-robot-boss-thingy could have been done at least half a second faster by hitting those three switches earlier. Also I noticed that the boss refight was significantly slower than the original boss with no apparant reason (I haven't actually checked this, so it could be wrong), which isn't acceptable in my opinion. Anyways, from a casual viewer's point of view I was moderately entertained by this run despite the numerous auto-scrollers, which leads to an average of 'meh'. Although I'm not sure if this should be published since it fails to achieve one of it's goals...
Experienced Forum User, Published Author, Player (198)
Joined: 12/3/2006
Posts: 151
Ok, it's working fine now. Final question: how come the compiled program's size is 4.05 MB (or sometimes, randomly, even 7+ MB) whereas the official emulator is only 568 kB? Edit: Nevermind, I noticed I was using the "debug" configuration for compiling which doesn't compress the compiled program.
Experienced Forum User, Published Author, Player (198)
Joined: 12/3/2006
Posts: 151
Huffers wrote:
Try adding code to write it out to a text file or something at the top of bool8 S9xFreezeGame (const char *filename) and to load it in from the file in bool8 S9xUnfreezeGame (const char *filename) in snapshot.cpp
Alright, that's done. Now all that's left is detecting when the routine is run. Since the starting address of the subroutine is $80:832D, I figured the following code should increment the counter by one whenever the subroutine is run:
		if(Registers.PB==128 && Registers.PCw==33581)
		{
			SNESGameFixes.LufiaRNGCounter+=1;
		}
Where "Registers.PB" holds the Bank and "Registers.PCw" the address. I inserted it in the function "void S9xMainLoop (void)" in "cpuexec.cpp", but unfortunately it doesn't work. Any idea how to make this work?
Experienced Forum User, Published Author, Player (198)
Joined: 12/3/2006
Posts: 151
Two and a half months later... I finally figured out how to compile the snes9x 1.51 source for Windows. Now, all that's left to do is modifying the source and recompiling it. However, as stated before, I'm not really a programmer, so the only thing I was able to do so far is introducing a global variable containing the number of times the game routine is called by the ROM. The things remaining are:
  • Detecting when the game executes the routine
  • Saving the variable when a savestate is made
  • Loading the variable when a savestate is loading
Since I kinda enjoy self-learning, I wouldn't mind (or even enjoy it) if someone familiar with the snes9x source could give me some pointers on how to implement the mentioned functions instead of doing all the coding for me.
Experienced Forum User, Published Author, Player (198)
Joined: 12/3/2006
Posts: 151
Alright, I guess it's a lost cause then. Thanks for the confirmation :)
Experienced Forum User, Published Author, Player (198)
Joined: 12/3/2006
Posts: 151
AnS wrote:
Yeah, I'm not so familiar with FCEU modding, so I inserted new tool right into the game (Darkwing Duck ROM) - there were a couple of troubles to shoot (like optimizing original code to retrieve several CPU ticks for INC/DEC instructions - because movie should sync with both modified and original ROM), but also there's one advantage - final result can be played anywhere - from NES hardware to Famtasia emulator (I used it to see lag in currently published movie).
Excuse my somewhat offtopic post, but do you think this method is accurate? The reason I'm asking this is because I tried hacking a counter in a game before, but even after I matched the new subroutine to the old one (in amount of CPU cycles taken) the movie would eventually desync. Edit: I forgot to mention that adding 9 more CPU cylces than the original subroutine actually makes the movie sync for 30 more minutes. So I really have no idea what's going on here...
Experienced Forum User, Published Author, Player (198)
Joined: 12/3/2006
Posts: 151
Hmm, I did some research with a 'walk through walls' PAR code and when you get past the guard in the shrine, Guy and Dekar will join the party and you're able to continue the game without Selan :). However! If you get past the shrine before beating gades, you trigger the same scene where Guy and Dekar join you eventhough they're still in your party. This mean that if there is a way to get past the guards in the shrine (which is unlikely), beating Gades is not nessecary at all, rendering the 'escape from the Acient Tower' trick useless. Oh well... As for qbproger's questions, Nitrodon already answered them. And yes, Java does round integers down.
Experienced Forum User, Published Author, Player (198)
Joined: 12/3/2006
Posts: 151
Since I've had my TAS on hold for a few months now, I thought I'd share the following tricks with you: http://dehacked.2y.net/microstorage.php/info/5530/lufia2-gratze-shortcut.smv This should save about 810 frames (13.5 sec). Credits to KeiKusanagi from The Lufia World forum http://dehacked.2y.net/microstorage.php/info/5531/lufia2-ancienttower-glitch.smv While of no apparant use yet, this trick has potential to skip the largest plot in the game. Both were recorded with snes9x 1.43-improvement9.
Experienced Forum User, Published Author, Player (198)
Joined: 12/3/2006
Posts: 151
I'm afraid I'm using it in Windows. However, I just realised if the counter was built in the emulator itself, it wouldn't save the counter when making a savestate, would it?
Experienced Forum User, Published Author, Player (198)
Joined: 12/3/2006
Posts: 151
Yay, I managed to hack an internal counter in the ROM to keep track of the RNG activity. I have succesfully played back my current Lufia 2 TAS with the hacked ROM, so it's safe to say the change doesn't affect timing and/or randomness. Thanks for your advice regardless :) Edit: Okay, I may have lied a tiny bit. I didn't have time to test the entire movie yesterday, and it turns out the movie does desynchronise after an hour. After expanding the counter to 2 bytes, and adding a proper initialiser, the movie desyncs after 5 minutes. I guess I'll have to make a test movie first using the hacked ROM (mainly for 'planning' luck manipulation) and when I'm done I'll have to remake the entire thing on the original ROM to make it sync and perhaps make it a couple of frames faster :p.
Experienced Forum User, Published Author, Player (198)
Joined: 12/3/2006
Posts: 151
$80/82AA 20 2D 83    JSR $832D
That's (in this particular game) the specific ASM line which jumps to the subroutine which generates the random numbers. I can already count the number of times this line is executed by setting breakpoints in Geiger's snes9x debugger, but it's lots of work so I'd like to automate it. I don't want to sound demanding/annoying, but I actually have no idea how to modify an emulator at all. If it isn't too much work it would be really neat if someone could add this to snes9x.
Post subject: Keeping track of game routines
Experienced Forum User, Published Author, Player (198)
Joined: 12/3/2006
Posts: 151
I was wondering if there was an easy way to keep track of the number of times a certain game routine was run by the emulator. In my case I'm trying to keep track of the number of times the RNG is called. I've tried adding some ASM code to the rom which would increment a value stored in the game's RAM, but I couldn't find any 'free space' to paste it in. I'm no programmer so I wouldn't know how to do it, but shouldn't it be possible to alter the emulator to add this functionality?
Experienced Forum User, Published Author, Player (198)
Joined: 12/3/2006
Posts: 151
For the replies so far:
Hi, I am a fan of this game and have been thinking of doing a non-TAS speed run (all victims).
That said, your testrun looks quite nice for a non-assisted run (I was never even able to finish this game on console). If I recall correctly the items from the trash cans are determined by the frame number you open it, so I wouldn't try manipulating them beyond the first few levels.
Experienced Forum User, Published Author, Player (198)
Joined: 12/3/2006
Posts: 151
Like most people I really enjoyed the input display animations you put in this movie, but I'm not sure if this should be taken that into consideration when voting. After all, the AVI file will not contain these animations. Also, if someone creates a movie a few frames faster than this one (or any other movie with input display animations for that matter), should/could that movie be rejected for being not as entertaining?
1 2 3 4 5 6 7