1 2
10 11 12
Editor, Emulator Coder, Site Developer
Joined: 5/11/2011
Posts: 1108
Location: Murka
nanogyth wrote:
Yes Does anyone have the PC version? The pixels would have to be square there, so it should be an easier target to aim at than analog captures.
That would require assuming that the developers of the PC version understood the exact specifics of the aspect ratio on the Playstation version and replicated them accurately; seems unlikely.
Joined: 11/22/2004
Posts: 1468
Location: Rotterdam, The Netherlands
natt wrote:
nanogyth wrote:
Yes Does anyone have the PC version? The pixels would have to be square there, so it should be an easier target to aim at than analog captures.
That would require assuming that the developers of the PC version understood the exact specifics of the aspect ratio on the Playstation version and replicated them accurately; seems unlikely.
I checked some screenshots on Google. The screenshots that seem to have been saved accurately (without resizing or cropping, etc) seem to indicate that 320x224 is indeed how it's supposed to be, and this is reflected in the PC version as well. Here's an example (640x448). So as it turns out, this game should be encoded (in my view) with a 10/7 ratio.
Jungon
He/Him
Player (51)
Joined: 4/2/2009
Posts: 376
Location: Porto Alegre - Brazil
Is this the topic to point flaws and suggestions for the actual run? =P 1- It doesn't show up a Malboro and its Bad Breath (even if it would be too off the road anyway, .. they can be found in the final castle, ... ok, cut that out) 1- That moomba shortcut on the prison should really be considered, I would go for shortcuts on floors 4, 5 and 12, maybe? 2- Was it really tested that Invincible Moon is the only way to survive Shockwave Pulsar? There is too much topic for me to read here, but maybe I'll do it later =P 3- The Garden movement and car parking could be just a little improved, maybe..? xP 4- Maybe you could use those last seconds waiting for the Lunatic Pandora.. to open up the Johnny Shop,.. or the time would exceed? x.x 5- I'm just saying it because my brother pointed it up while he peeked Lunar Cry's happening behind my shoulder: are CG videos skippable somehow? 6- Your instruments choice.. was it optimal? Eyes on me was really quicker than those Selphie' scores? =P 7- No other cards that could be useful? o.o 8- Can you hit Rinoa on Adel battle and get away with it? Or maybe you did it and I was sleepy during all disc 4 mostly because its sound was desynced? On the good side, the TAS shows at least one limit break of each main character, one GF summon, bosses dying from item usage, card games, shortcuts, password guessing, extreme test solving, and things that are impossible to do at normal human speed.. which is really TASy already.. +D
*Jungon*/*Johnnyz* smilie weirdo =P ^^ o.o @__@ +D
Skilled player (1653)
Joined: 11/15/2004
Posts: 2202
Location: Killjoy
Jungon wrote:
Is this the topic to point flaws and suggestions for the actual run? =P 1- It doesn't show up a Malboro and its Bad Breath (even if it would be too off the road anyway, .. they can be found in the final castle, ... ok, cut that out) 1- That moomba shortcut on the prison should really be considered, I would go for shortcuts on floors 4, 5 and 12, maybe? 2- Was it really tested that Invincible Moon is the only way to survive Shockwave Pulsar? There is too much topic for me to read here, but maybe I'll do it later =P 3- The Garden movement and car parking could be just a little improved, maybe..? xP 4- Maybe you could use those last seconds waiting for the Lunatic Pandora.. to open up the Johnny Shop,.. or the time would exceed? x.x 5- I'm just saying it because my brother pointed it up while he peeked Lunar Cry's happening behind my shoulder: are CG videos skippable somehow? 6- Your instruments choice.. was it optimal? Eyes on me was really quicker than those Selphie' scores? =P 7- No other cards that could be useful? o.o On the good side, the TAS shows at least one limit break of each main character, one GF summon, bosses dying from item usage, card games, shortcuts, password guessing, extreme test solving, and things that are impossible to do at normal human speed.. which is really TASy already.. +D
In short, this isn't the last you'll see of me and final fantasy 8, but, I need a long break before I attempt an improvement. 1. Yeah, I didn't know about this - with this and other improvements, I think I can get it under 8 hours. 2. I'd have to have gotten Leviathan in Disc 2 to survive shockwave pulsar, to get Supt-Mag RF, and then have enough money to get enough Wizards Stones from Tool Rf. But yes, it is possible. I do plan to skip Invincible Moon in my next run. However, even with Full Junction Curaga and my +80% from the Ward card, I have a little under 6000 HP, and Shockwave Pulsar does a little under 7000 with nothing junctioned to Spr. Even 100 Demi Junctioned to Spr is not enough to survive (tested). 3. The car parking for the first car was really well done imo, since I used the 'push factor' on balamb garden to get it facing the right direction for when I have to return to balamb town. Garden is absolutely unweildy to drive, and it can often be faster to stop and turn than to take a wide turn. I do know one place it could be improved, is balamb town return. Also, sometimes slight adjustments are needed to keep garden from bouncing off mountains, such as trabia to galbadia garden showdown. The car parking outside of the space station is probably the worst - and I park the latest possible point in Esthar to avoid the car return animation. 4. I'd say only 12 seconds remaining was a pretty good job cutting it close. 5. Nope, FMVs are not skippable. Err, on a PSX, you can 'open the drive' apparently, but I'd almost consider that console modification. Additionally, this behavior is NOT emulated, so yeah. 6. That was a speed/entertainment trade-off. Originally, I had plan to do a verbal commentary on the run, and was going to point out the 5 or so different "eyes on me" variations that occur in the game. (It only costs about 10 frames, since you have to select different instruments anyway). However, I just wanted to submit, and haven't gotten to do a verbal commentary. Next run I may do one. 7. Each card game takes at least 30 seconds, or more. My junctioned abilities are already overflowing (Str+20% Str+40%, Str+60%, HP+80%).
Sage advice from a friend of Jim: So put your tinfoil hat back in the closet, open your eyes to the truth, and realize that the government is in fact causing austismal cancer with it's 9/11 fluoride vaccinations of your water supply.
Joined: 2/15/2009
Posts: 329
Where is the completed pjm located?
Working on: Legend of Legaia, Vagrant Story
Skilled player (1653)
Joined: 11/15/2004
Posts: 2202
Location: Killjoy
exileut wrote:
Where is the completed pjm located?
http://tasvideos.org/forum/viewtopic.php?t=11273
Sage advice from a friend of Jim: So put your tinfoil hat back in the closet, open your eyes to the truth, and realize that the government is in fact causing austismal cancer with it's 9/11 fluoride vaccinations of your water supply.
Joined: 5/22/2011
Posts: 22
I don't know exactly where the cards are located in the game but if you could somehow get a hold of either Gilgamesh or Laguna's card then you could refine them into heros or holy wars respectively, is that a viable way of cutting out Invincible Moon? Edit: Just done a quick check, Gilgamesh's card is at the end of the CC Group sidequest so that's out but Ellone has Laguna's card when you meet her on the space station, I don't know if the time saving would be worth it but I think it's at least worth thinking about.
Mastania
He/Him
Joined: 5/30/2009
Posts: 135
Location: Top of the pops
I'm not sure all that use of Desperado was technically optimal, particularly in the battles where the enemies have to die 'separately'. Might just be quicker to whack them once each with a physical.
Waddle Waggle Wattle
Joined: 8/23/2008
Posts: 417
Zaphod65 wrote:
I don't know exactly where the cards are located in the game but if you could somehow get a hold of either Gilgamesh or Laguna's card then you could refine them into heros or holy wars respectively, is that a viable way of cutting out Invincible Moon? Edit: Just done a quick check, Gilgamesh's card is at the end of the CC Group sidequest so that's out but Ellone has Laguna's card when you meet her on the space station, I don't know if the time saving would be worth it but I think it's at least worth thinking about.
You'd have to play a card game (and generally late-game card players take much longer to take turns). You'd also have to use three heroes instead of just one Limit, AND he'd have to fight an extra boss to unlock the Item command in the final dungeon. Not a bad idea, but timewise it's a loss.
I will not use self-reference in my signature.
Joined: 11/22/2004
Posts: 1468
Location: Rotterdam, The Netherlands
That's weird, I have one segment in 320x224 that should be 640x480 (the disk 4 fade-in, segment 448). Besides that, I wonder what to do with these segments: http://www.youtube.com/watch?v=AeumK4B_onI
Tub
Joined: 6/25/2005
Posts: 1377
DarkKobold wrote:
6. That was a speed/entertainment trade-off. Originally, I had plan to do a verbal commentary on the run, and was going to point out the 5 or so different "eyes on me" variations that occur in the game. (It only costs about 10 frames, since you have to select different instruments anyway). However, I just wanted to submit, and haven't gotten to do a verbal commentary. Next run I may do one.
Didn't the different scores lead to different dialogues between Z and Rinoa? I remember playing that scene three times to watch them all, and IIRC they were of different lengths.
m00
Joined: 5/22/2011
Posts: 22
Acheron86 wrote:
You'd have to play a card game (and generally late-game card players take much longer to take turns). You'd also have to use three heroes instead of just one Limit, AND he'd have to fight an extra boss to unlock the Item command in the final dungeon. Not a bad idea, but timewise it's a loss.
Ahhh, I didn't think of all that; I was thinking mainly in terms of the card game not the extra boss battle. I think really using that strategy you could get away with only having one of the party be invulnerable since you only need to use on person's limits to finish off the rest of the fight but still, with the extra boss fight in the castle it's a dead-end.
Joined: 8/23/2008
Posts: 417
Zaphod65 wrote:
Ahhh, I didn't think of all that; I was thinking mainly in terms of the card game not the extra boss battle. I think really using that strategy you could get away with only having one of the party be invulnerable since you only need to use on person's limits to finish off the rest of the fight but still, with the extra boss fight in the castle it's a dead-end.
You'd want two people alive at least so that the RNG could be manipulated while the other character's limit is being used. Really, you'd probably need three, because I'm pretty sure anyone dead for more than a few seconds in the last boss fight gets "absorbed into the time stream" and wastes more time. It's both appropriate and annoying that Shockwave Pulsar is so powerful at any level. I guess that makes it one of the better final boss fights in the series, compared to some of the faceroll-fests we get in other FFs.
I will not use self-reference in my signature.
Jungon
He/Him
Player (51)
Joined: 4/2/2009
Posts: 376
Location: Porto Alegre - Brazil
Acheron86 wrote:
It's both appropriate and annoying that Shockwave Pulsar is so powerful at any level. I guess that makes it one of the better final boss fights in the series, compared to some of the faceroll-fests we get in other FFs.
Actually... (it is but) .. Shockwave Pulsar can be almost completely ridicularized, if you can junction some good magic on Spr, and using Spr+60%, which is usually what I do when playing the game normally (I think my speed record was around 28 hours, but getting all GFs.. and all cards) ... so, resisting it is not just becoming invincible (I think I never used Rinoa on the first parts of this entire battle, anyway, but I The Ended all of them in different occasions) ... I'm just saying, resisting Shockwave Pulsar would look more TASy than becoming invincible (and even nullifing Hell's Judgment.. which is actually very good for limit breaking, reduces all party's HP to 1) .... Maybe you could start this battle with Zell, Squall/Z and Quistis, then make only Squall/Z survive it, and bring Irvine and Rinoa for the final parts..? But I was forgetting to consider the delays for 'getting into time stream', and 'what Quistis can do to finish Griever off quickly,...' 9- Have the author considered changing all the names around? GFs can be named, and so Griever, Rinoa, and Angelo ... that could bring up more entertainment/tradeoff ideas, I guess =P
*Jungon*/*Johnnyz* smilie weirdo =P ^^ o.o @__@ +D
Skilled player (1653)
Joined: 11/15/2004
Posts: 2202
Location: Killjoy
Jungon wrote:
if you can junction some good magic on Spr, and using Spr+60%, which is usually what I do when playing the game normally (I think my speed record was around 28 hours, but getting all GFs.. and all cards)
Spr+60% takes a very valuable Ability slot, so that is out of the question.
Jungon wrote:
9- Have the author considered changing all the names around? GFs can be named, and so Griever, Rinoa, and Angelo ... that could bring up more entertainment/tradeoff ideas, I guess =P
Rinoa and Angelo can't be named, since any TAS is going to execute the Rinoa skip in Timber. Griever is really the only one.
Sage advice from a friend of Jim: So put your tinfoil hat back in the closet, open your eyes to the truth, and realize that the government is in fact causing austismal cancer with it's 9/11 fluoride vaccinations of your water supply.
Joined: 11/22/2004
Posts: 1468
Location: Rotterdam, The Netherlands
There's one last problem to be solved for the FF8 encode: I have no idea what to do with the disc switch fades: http://wedemandhtml.com/tmp/195_ff8dk-640x480.avi If anybody could shed some light on this, that would be great. It almost seems like some kind of strobe effect. I've seen the same effect when playing FF8 on a real PSX hooked up to a PC monitor. I've talked about it with several people on the ffmpeg irc channel but nobody knew what it is. Maybe some kind of frequency problem/difference between PC/tv. edit: this is what happens when I decimate by 3 and then blend deinterlace... looks better but it's not a full fade to black. http://www.youtube.com/watch?v=YJiF0RWZZE4 edit: choosing a different offset for the decimation seems to fix the problem: Link to video
Player (66)
Joined: 4/21/2011
Posts: 232
Do you have a copy before you yv12'd it? psxjin outputs rgb, right? You need to deinterlace before converting to planar. The screen warble at the end is probably just chroma ghosting.
Joined: 11/22/2004
Posts: 1468
Location: Rotterdam, The Netherlands
This method is probably the nicest way of dealing with it: http://wedemandhtml.com/tmp/nice_ff8dk-640x480.avi Decimate by 3, deinterlace blend (double framerate, bottom field first), making sure to use the right offset. Though that causes the FPS to be 40. Here's the same video converted to 60FPS. http://wedemandhtml.com/tmp/nice60_ff8dk-640x480.avi edit: bleah, I've got segments 194 and 448 in the wrong resolution (640x448 and 320x224 respectively). They should be 640x480, but the emulator did not dump them correctly. I'll have to redump them. Unless anybody else happens to have dumped the run in a lossless format and has them in the correct resolutions. edit: seems that some people might have different segment numbers than me. To clarify: I need the "please insert disc 2" fade-in, and the "please insert disc 4" fade-in. All other source material is as good as done.
Skilled player (1653)
Joined: 11/15/2004
Posts: 2202
Location: Killjoy
about the sound - FF8 runs at 59.997 FPS, not 60. Every sound file, whether 2 minutes or 4 hours, comes out at a matching length. I've encoded it enough to know. This makes it look like sound desyncs, but it doesn't.
Sage advice from a friend of Jim: So put your tinfoil hat back in the closet, open your eyes to the truth, and realize that the government is in fact causing austismal cancer with it's 9/11 fluoride vaccinations of your water supply.
Joined: 11/22/2004
Posts: 1468
Location: Rotterdam, The Netherlands
I actually did have sound desync, not sure why. I was able to fix it, though, and am now finishing up the Youtube HD encode. The audio file had a much longer silence before the "start of game" sound (in the video it was 8.771 seconds). I also had desync in disc 4 because the sound had 3.2 seconds more silence. That last one is probably related to my having to recapture the disc 4 switch (I believe that encoding at turbo speed might have caused two segments, the disc 2 and disc 4 switches, to be recorded at incorrect resolutions (640x448 and 320x224 respectively); capturing without turbo fixed that.)
Skilled player (1653)
Joined: 11/15/2004
Posts: 2202
Location: Killjoy
In an attempt to inspire others to do more open TASing, and share knowledge, I'm posting as many scripts and stuff as I can find. My main battle script for FF8. I liked it a lot. Download FF8Battle.lua
Language: lua

BlockAdvance =2; Items = {"Potion","Potion+","Hi-Potion","Hi-Potion+","X-Potion","Mega-Potion","Phoenix Down","Mega Phoenix","Elixir","Megalixir","Antidote", "Soft","Eye Drops","Echo Screen","Holy Water","Remedy","Remedy+","Hero-trial","Hero","Holy War-trial","Holy War","Shell Stone","Protect Stone", "Aura Stone","Death Stone","Holy Stone","Flare Stone","Meteor Stone","Ultima Stone","Gysahl Greens","Phoenix Pinion","Friendship","Tent", "Pet House","Cottage","G-Potion","G-Hi Potion","G-Mega-Potion","G-Returner","Rename Card","Amnesia Greens","HP-J Scroll","Str-J Scroll", "Vit-J Scroll","Mag-J Scroll","Spr-J Scroll","Spd-J Scroll","Luck-J Scroll","Aegis Amulet","Elem Atk","Elem Guard","Status Atk","Status Guard", "Rosetta Stone","Magic Scroll","GF Scroll","Draw Scroll","Item Scroll","Gambler Spirit","Healing Ring","Phoenix Spirit","Med Kit","Bomb Spirit", "Hungry Cookpot","Mog's Amulet","Steel Pipe","Star Fragment","Energy Crystal","Samantha Soul","Healing Mail","Silver Mail","Gold Armor", "Diamond Armor","Regen Ring","Giant's Ring","Gaea's Ring","Strength Love","Power Wrist","Hyper Wrist","Turlte Shell","Orihalcon","Adamantine", "Rune Armlet","Force Armlet","Magic Armlet","Circlet","Hypno Crown","Royal Crown","Jet Engine","Rocket Engine","Moon Curtain","Steel Curtain", "Glow Curtain","Accelerator","Monk's Code","Knight's Code","Doc's Code","Hundred Needles","Three Stars","Ribbon","Normal Ammo","Shotgun Ammo", "Dark Ammo","Fire Ammo","Demolition Ammo","Fast Ammo","AP Ammo","Pulse Ammo","M-Stone Piece","Magic Stone","Wizard Stone","Ochu Tentacle", "Healing Water","Cockatrice Pinion","Zombie Powder","Lightweight","Sharp Spike","Screw","Saw Blade","Mesmerize Blade","Vampire Fang", "Fury Fragment","Betrayal Sword","Sleep Powder","Life Ring","Dragon Fang","Spider Web","Coral Fragment","Curse Spike","Black Hole","Water Crystal", "Missile","Mystery Fluid","Running Fire","Inferno Fang","Malboro Tentacles","Whisper","Laser Cannon","Barrier","Power Generator","Dark Matter", "Bomb Fragment","Red Fang","Arctic Wind","North Wind","Dynamo Stone","Shear Feather","Venom Fang","Steel Orb","Moon Stone","Dino Bone","Windmill", "Dragon Skin","Fish Fin","Dragon Fin","Silence Powder","Poison Powder","Dead Spirit","Chef's Knife","Cactus Thorn","Shaman Stone","Fuel", "Girl Next Door","Sorceress' Letter","Chocobo's Tag","Pet Nametag","Solomon Ring","Magical Lamp","HP Up","Str Up","Vit Up","Mag Up","Spr Up", "Spd Up","Luck Up","LuvLuvG","Weapons Mon 1st","Weapons Mon Mar","Weapons Mon Apr","Weapons Mon May","Weapons Mon Jun","Weapons Mon Jul", "Weapons Mon Aug","Combat King 001","Combat King 002","Combat King 003","Combat King 004","Combat King 005","Pet Pals Vol.1","Pet Pals Vol.2", "Pet Pals Vol.3","Pet Pals Vol.4","Pet Pals Vol.5","Pet Pals Vol.6","Occult Fan I","Occult Fan II","Occult Fan III","Occult Fan IV"}; StepVals = {7, 182, 240, 31, 85, 91, 55, 227, 174, 79, 178, 94, 153, 246, 119, 203, 96, 143, 67, 62, 167, 76, 45, 136, 199, 104, 215, 209, 194, 242, 193, 221, 170, 147, 22, 247, 38, 4, 54, 161, 70, 78, 86, 190, 108, 110, 128, 213, 181, 142, 164, 158, 231, 202, 206, 33, 255, 15, 212, 140, 230, 211, 152, 71, 244, 13, 21, 237, 196, 228, 53, 120, 186, 218, 39, 97, 171, 185, 195, 125, 133, 252, 149, 107, 48, 173, 134, 0, 141, 205, 126, 159, 229, 239, 219, 89, 235, 5, 20, 201, 36, 44, 160, 60, 68, 105, 64, 113, 100, 58, 116, 124, 132, 19, 148, 156, 150, 172, 180, 188, 3, 222, 84, 220, 197, 216, 12, 183, 37, 11, 1, 28, 35, 43, 51, 59, 151, 27, 98, 47, 176, 224, 115, 204, 2, 74, 254, 155, 163, 109, 25, 56, 117, 189, 102, 135, 63, 175, 243, 251, 131, 10, 18, 26, 34, 83, 144, 207, 122, 139, 82, 90, 73, 106, 114, 40, 88, 138, 191, 14, 6, 162, 253, 250, 65, 101, 210, 77, 226, 92, 29, 69, 30, 9, 17, 179, 95, 41, 121, 57, 46, 42, 81, 217, 93, 166, 234, 49, 129, 137, 16, 103, 245, 169, 66, 130, 112, 157, 146, 87, 225, 61, 241, 249, 238, 8, 145, 24, 32, 177, 165, 187, 198, 72, 80, 154, 214, 127, 123, 233, 117, 223, 50, 111, 52, 168, 208, 184, 99, 200, 192, 236, 75, 232, 23, 248}; Critical = {99, 6, 240, 35, 248, 229, 168, 1, 193, 174, 127, 72, 123, 177, 220, 9, 34, 109, 125, 238, 157, 88, 213, 85, 36, 57, 122, 223, 142, 84, 108, 27, 192, 11, 208, 67, 216, 154, 71, 93, 33, 2, 23, 75, 219, 17, 175, 112, 205, 77, 52, 73, 114, 145, 45, 98, 151, 89, 69, 247, 110, 70, 170, 10, 163, 200, 49, 146, 56, 250, 212, 230, 203, 243, 222, 107, 187, 241, 28, 60, 214, 173, 178, 169, 221, 87, 66, 149, 12, 121, 37, 31, 188, 231, 172, 91, 131, 40, 118, 242, 24, 218, 135, 161, 97, 111, 190, 90, 94, 81, 239, 176, 201, 21, 116, 137, 189, 209, 162, 117, 215, 153, 133, 76, 79, 210, 191, 74, 32, 8, 86, 160, 80, 58, 103, 38, 65, 51, 183, 186, 251, 48, 207, 124, 132, 44, 50, 233, 29, 22, 130, 120, 164, 128, 101, 95, 14, 39, 185, 25, 195, 167, 182, 0, 59, 252, 136, 225, 198, 147, 254, 139, 217, 184, 19, 105, 47, 100, 18, 55, 253, 119, 226, 181, 4, 224, 26, 140, 143, 180, 204, 249, 96, 235, 41, 227, 144, 165, 104, 61, 129, 115, 63, 171, 126, 179, 15, 206, 196, 53, 148, 150, 134, 113, 211, 42, 228, 159, 156, 236, 78, 20, 245, 234, 64, 166, 246, 3, 152, 197, 7, 244, 43, 194, 62, 232, 155, 54, 83, 46, 141, 13, 82, 16, 102, 30, 237, 138, 68, 158, 5, 255, 92, 199, 106, 202, 99, 6, 240, 35, 248, 229, 168, 1, 193, 174, 127, 72, 123, 177, 220, 9, 34, 109, 125, 238, 157, 88, 213, 85, 36, 57, 122, 223, 142, 84, 108, 27, 192, 11, 208, 67, 216, 154, 71, 93, 33, 2, 23, 75, 219, 17, 175, 112, 205, 77, 52, 73, 114, 145, 45, 98, 151, 89, 69, 247, 110, 70, 170, 10, 163, 200, 49, 146, 56, 250, 212, 230, 203, 243, 222, 107, 187, 241, 28, 60, 214, 173, 178, 169, 221, 87, 66, 149, 12, 121, 37, 31, 188, 231, 172, 91, 131, 40, 118, 242, 24, 218, 135, 161, 97, 111, 190, 90, 94, 81, 239, 176, 201, 21, 116, 137, 189, 209, 162, 117, 215, 153, 133, 76, 79, 210, 191, 74, 32, 8, 86, 160, 80, 58, 103, 38, 65, 51, 183, 186, 251, 48, 207, 124, 132, 44, 50, 233, 29, 22, 130, 120, 164, 128, 101, 95, 14, 39, 185, 25, 195, 167, 182, 0, 59, 252, 136, 225, 198, 147, 254, 139, 217, 184, 19, 105, 47, 100, 18, 55, 253, 119, 226, 181, 4, 224, 26, 140, 143, 180, 204, 249, 96, 235, 41, 227, 144, 165, 104, 61, 129, 115, 63, 171, 126, 179, 15, 206, 196, 53, 148, 150, 134, 113, 211, 42, 228, 159, 156, 236, 78, 20, 245, 234, 64, 166, 246, 3, 152, 197, 7, 244, 43, 194, 62, 232, 155, 54, 83, 46, 141, 13, 82, 16, 102, 30, 237, 138, 68, 158, 5, 255, 92, 199, 106, 202 } AtkDmg = {-1, 5, 7, 0, 16, 29, 2, 0, 27, 7, 27, 5, 22, 10, 21, 7, 0, 9, 24, 5, 24, 21, 14, 17, 2, 22, 22, 24, 9, 17, 7, 26, 26, 10, 9, 0, 17, 21, 4, 26, -1, 0, 22, 7, 19, 16, 9, 12, 5, 10, 17, 5, 14, 12, 10, 31, 17, 22, 2, 16, 10, 2, 4, 9, 29, 0, 16, 12, 22, 17, 12, 31, 4, 10, 22, 7, 21, 9, 27, 26, 16, 7, 12, 2, 22, 19, -1, 16, 10, 21, 2, 29, 22, -1, 5, 24, 31, 5, 17, 10, 22, 19, 2, 27, 29, 10, 24, 22, 27, 14, 7, 10, 2, 19, 16, 4, 22, 10, 29, 17, 16, 19, 0, 9, 12, 10, 24, 7, 31, 7, 19, 27, 12, 24, 2, 4, 31, 17, 17, 19, 19, 14, 7, 24, -1, 10, 16, 0, 27, 21, 29, 19, 31, 27, 0, 27, 12, 5, 19, 24, 29, 0, 16, -1, 24, 19, 2, 26, -1, 14, 22, 5, 17, 17, 17, 5, 12, 0, 17, 21, 21, 19, 27, 16, 2, 24, 24, 7, 10, 14, 5, 17, 29, 2, 7, 27, 10, -1, 4, 27, 29, 16, 29, 5, 26, 12, 14, 7, 29, 19, 16, 17, 0, 12, 12, 7, 29, 26, 22, 4, 10, 19, 12, 2, 29, 0, 14, 2, 19, 31, 5, 12, 9, 27, 27, 0, 22, 19, 16, 12, 7, 12, 16, 16, 2, 29, 5, 5, 0, 24, 4, 22, 24, 0, 5, 2} Characters = {"Squall","Zell","Irvine","Quistis","Rinoa","Selphie","Seifer","Edea","Laguna","Kiros","Ward"}; pReady = { 0x83014, 0x83018, 0x83054, 0x830CC, 0x8308C, 0x83090 } btPressed = { 0, 0, 0, 0, 0, 0 } RNGBase = 0x000EEBA8; RNGOffset = 0x000EEBB0; BATTLE = 0x0000867C; EnemyATB = 0x000ED3DC; EHP = 0x000ED3E0; HP = 0xED170; MaxHP = 0xED174; ATB = 0xED16C; INBATTLE = 0x73651; --80 INBATTLE = 0x00078AA3; Char = 0xED213; Stats = {"Lvl","Str","Vit","Mag", "Spr", "Spd", "Lck", "Eva", "Hit"}; Lvl = 0xED214; Str = 0xED215; Vit = 0xED216; Mag = 0xED217; Spr = 0xED218; Spd = 0xED219; Lck = 0xED21A; Eva = 0xED21B; Hit = 0xED21C; Crisis = 0x000ED222; Card = 0x78D30; Ix = 0x00078D00; Selection = 0x0010331C; Esel = 0x00103338; Damage = 0x000ED992; AttackType = 0x00102EA0; keys = {}; last_keys = {}; X = savestate.create(); Of = 0xD0; function EStat(Num) Offset = Of*(Num+3); gui.text(230,30, memory.readbyte(Char+Offset)); for i = 1,9,1 do gui.text(250,30+i*10,string.format("%s-%d", Stats[i], memory.readbyte(Char+Offset+i))); end; end; --***************************************************************************** function press(button) --***************************************************************************** -- Checks if a button is pressed. -- The tables it accesses should be obvious in the next line. if keys[button] and not last_keys[button] then return true end return false end Hold = {}; Hold[1] = false; Hold[2] = false; Hold[3] = false; EHold = false; PNum = 3; page = 0; function RenzokuenTest() end; function PDisp(Num) for i = 1,9,1 do gui.text(10,30+i*10,string.format("%s-%d", Stats[i], memory.readbyte(Char+Sel*Of+i))); end; end; function Display() if memory.readbyte(Selection) < 3 then Sel = memory.readbyte(Selection); gui.text(1,30,Characters[math.min(memory.readbyte(Char+Sel*Of)+1,11)]); if (memory.readword(AttackType) == 25452) then SE = (memory.readbyte(Esel)-112)/32 + 3; Dmg = math.floor(memory.readbyte(Str+Of*Sel)* memory.readbyte(Str+Of*Sel) / 16 + memory.readbyte(Str+Of*Sel)); Dmg = math.floor(Dmg * (265 - memory.readbyte(Vit+Of*SE))/256); Dmg = math.floor(Dmg * 20/16); gui.text(100,20, string.format("Base Damage: %d", Dmg)); gui.text(200,1,"RNG - DMG"); for i = 0,10,1 do n = 0; if memory.readbyte(Hit+Sel*Of) < 255 then RNGx = math.mod(memory.readbyte(RNG)+i+2+page*10,256); RNGval = AtkDmg[RNGx+1]; DmgR = math.floor(Dmg * (RNGval+1+240) / 256); RNGx = math.mod(memory.readbyte(RNG)+i+1+page*10,256); RNGval = Critical[RNGx+1]; if (memory.readbyte(Lck+Of*Sel) >= RNGval) then DmgR = DmgR*2; end; else RNGx = math.mod(memory.readbyte(RNG)+i+page*10,256); RNGval = AtkDmg[RNGx+1]; DmgR = math.floor(Dmg * (RNGval+1+240) / 256); end; gui.text(200,11+i*10, string.format("%3d - %d",RNGx, DmgR)); end; else gui.text(200,1,"RNG - CL"); for i =0,10,1 do HPMod = math.floor(2500 * memory.readword(HP+Of*Sel) /memory.readword(MaxHP+Of*Sel)); RNGx = math.mod(memory.readbyte(RNG)+i+page*10,256); RandomMod = Critical[RNGx+1]+160; LimitLevel =(1600 - HPMod) / RandomMod; CL = math.max(math.min(LimitLevel-4,4),0); if CL > 0 then if Sel == 1 then RHits = CL + 3; if Critical[RNGx+1] < 128 then RHits = RHits + 1; end; if Critical[RNGx+2] < (CL * 60 + 1) then Finisher = "RD"; else Finisher = ""; end; RHits2 = CL + 3; if Critical[RNGx+2] < 128 then RHits2 = RHits2 + 1; end; if Critical[RNGx+3] < (CL * 60 + 1) then Finisher2 = "RD"; else Finisher2 = " "; end; gui.text(200,11+i*10, string.format("%3d - %d, %dH %2s +1 %dH %s",RNGx+1,CL,RHits, Finisher,RHits2, Finisher2)); else gui.text(200,11+i*10, string.format("%3d - %d",RNGx+1,CL)); end; end; end; end; end; for i = 0,4,1 do if memory.readbyte(Ix+1+2*i) > 0 then gui.text(100, 71+i*10, string.format("%d %s",memory.readbyte(Ix+1+2*i),Items[memory.readbyte(Ix+i*2)])); end; end; if (memory.readbyte(Card) < 255) then gui.text(100, 61,string.format("Card: %d",memory.readbyte(Card))); end; if (memory.readbyte(Card+1) < 255) then gui.text(140, 61,string.format("Card: %d",memory.readbyte(Card+1))); end; if (memory.readbyte(Card+2) < 255) then gui.text(160, 61,string.format("Card: %d",memory.readbyte(Card+2))); end; gui.text(100,11,string.format("Damage: %d Target %d", memory.readword(Damage), memory.readbyte(0xED7EC+Of*2))); for i = 0,EnNum-1,1 do gui.text(200,172-10*(EnNum-i),string.format("Enemy %d %4d", i+1, memory.readword(EHP+Of*i))); if EHold then gui.text(290,172-10*(EnNum-i),"HOLD","Red"); else gui.text(290,172-10*(EnNum-i),string.format("%4d",memory.readword(EnemyATB+Of*i))); end; end; for i = 0,PNum-1,1 do if memory.readword(HP+Of*i) > 0 then gui.text(220,175+15*i,string.format("%d %4d", memory.readbyte(Crisis+Of*i), memory.readword(HP+Of*i))); if Hold[i+1] then gui.text(290,175+15*i,"HOLD","Red"); else gui.text(290,175+15*i,string.format("%4d",memory.readword(ATB+Of*i))); end; end; end; end; function comparemouse(x1,y1,x2,y2) mousepass = false; if (keys.xmouse >= x1) and (keys.xmouse <= x2) and (keys.ymouse >= y1) and (keys.ymouse <= y2) then mousepass = true; end; end; while true do if memory.readbyte(INBATTLE)==0 then EnNum = 0; for i = 0,3,1 do Offset = Of*(i+3); if memory.readbyte(Char+Offset) < 255 then EnNum = i+1; end; end; RNG = RNGBase + memory.readbyte(RNGOffset); gui.text(100,1,string.format("%d RNG: %d, (%d)", memory.readbyte(RNGOffset), memory.readbyte(RNG), Critical[memory.readbyte(RNG)+1])); --gui.text(100,21,string.format("Advance: %d", BlockAdvance*100)); if EHold then for i = 0,EnNum-1,1 do memory.writebyte(EnemyATB+Of*i,0); end; end; for i = 0,PNum-1,1 do if (Hold[i+1]) then memory.writebyte(ATB+Of*i,0); end; end; Display(); emu.frameadvance(); keys = input.get(); if (press('K')) then Enum = 3; last_keys = keys; Last_RNG = memory.readbyte(RNG); savestate.save(X); stop = false; i = 0; EnNum = 4; while (not stop) do savestate.load(X); memory.writebyte(RNG,math.mod((Last_RNG+i),256)); for j=1,BlockAdvance*100,1 do gui.text(100,1,math.mod(Last_RNG+i,256)); gui.text(130,1,Critical[math.mod(Last_RNG+i,256)+1]); gui.text(10,51,string.format("TESTING")); Display(); emu.frameadvance(); keys = input.get(); if press('K') then stop = true; break; end; last_keys = keys; end; i = i+1; end; end; if press('pageup') then page = page - 1; end; if press('pagedown') then page = page + 1; end; if (keys.leftclick) then for i = 0,EnNum-1,1 do comparemouse(200,173+15*i, 250, 187+15*i); if (mousepass) then EStat(i); end; end; end; if press('leftclick') then comparemouse(250,162-10*EnNum,310, 162); if (mousepass) then EHold = not EHold; end; for i = 0,PNum-1,1 do comparemouse(250,162+15*i, 310, 177+15*i); if (mousepass) then Hold[i+1] = not Hold[i+1]; end; end; end; last_keys = keys; else for i = 1,# btPressed do ready = memory.readbyte(pReady[i]) if ready == 1 then if btPressed[i] == 0 or btPressed[i] == 10 then joypad.set(1,{["x"]=true}) btPressed[i] = 1 end elseif ready == 10 then if btPressed[i] == 0 or btPressed[i] == 1 then joypad.set(1,{["x"]=true}) btPressed[i] = 10 end else btPressed[i] = 0 end -- gui.text(40,10+(i*8),btPressed[i] .. " " .. ready) end emu.frameadvance(); gui.text(1, 30, 'Dialog Skip'); end; end;
This is my Step-Detection script - allows you to determine the next battle, and whether or not you should stutter walk. Never got it to work perfect for the next set. Download StepScript.lua
Language: lua

StepVals = {7, 182, 240, 31, 85, 91, 55, 227, 174, 79, 178, 94, 153, 246, 119, 203, 96, 143, 67, 62, 167, 76, 45, 136, 199, 104, 215, 209, 194, 242, 193, 221, 170, 147, 22, 247, 38, 4, 54, 161, 70, 78, 86, 190, 108, 110, 128, 213, 181, 142, 164, 158, 231, 202, 206, 33, 255, 15, 212, 140, 230, 211, 152, 71, 244, 13, 21, 237, 196, 228, 53, 120, 186, 218, 39, 97, 171, 185, 195, 125, 133, 252, 149, 107, 48, 173, 134, 0, 141, 205, 126, 159, 229, 239, 219, 89, 235, 5, 20, 201, 36, 44, 160, 60, 68, 105, 64, 113, 100, 58, 116, 124, 132, 19, 148, 156, 150, 172, 180, 188, 3, 222, 84, 220, 197, 216, 12, 183, 37, 11, 1, 28, 35, 43, 51, 59, 151, 27, 98, 47, 176, 224, 115, 204, 2, 74, 254, 155, 163, 109, 25, 56, 117, 189, 102, 135, 63, 175, 243, 251, 131, 10, 18, 26, 34, 83, 144, 207, 122, 139, 82, 90, 73, 106, 114, 40, 88, 138, 191, 14, 6, 162, 253, 250, 65, 101, 210, 77, 226, 92, 29, 69, 30, 9, 17, 179, 95, 41, 121, 57, 46, 42, 81, 217, 93, 166, 234, 49, 129, 137, 16, 103, 245, 169, 66, 130, 112, 157, 146, 87, 225, 61, 241, 249, 238, 8, 145, 24, 32, 177, 165, 187, 198, 72, 80, 154, 214, 127, 123, 233, 117, 223, 50, 111, 52, 168, 208, 184, 99, 200, 192, 236, 75, 232, 23, 248}; Offsync = 0x8005F150; StepLoc = 0x0005F151; StepLoc2 = 0x0005F164; DangerLoc = 0x0005F0FE; AngeloLoc = 0x00077E9A; function GetNextEncounter() Danger = memory.readbyte(DangerLoc); Step = memory.readbyte(StepLoc); WalkStep = 0; while (Danger < StepVals[math.mod(Step,256)+1]) do WalkStep = WalkStep+1; Step = Step + 1; Danger = Danger + 2; end; Danger = memory.readbyte(DangerLoc); Step = memory.readbyte(StepLoc); RunStep = 0; while (Danger < StepVals[math.mod(Step,256)+1]) do RunStep = RunStep+1; Step = Step + 1; Danger = Danger + 5; end; gui.text(120,1,string.format("Walk: %d Run: %d",WalkStep,RunStep)); gui.text(120,11,string.format("Step: %.2f Danger: %d", memory.readbyte(StepLoc) + memory.readword(StepLoc2)/256, memory.readbyte(DangerLoc))); gui.text(120,21,string.format("Angelo Steps: %d", memory.readbyte(AngeloLoc))); end; while true do emu.frameadvance(); GetNextEncounter(); end;
[/code]
Sage advice from a friend of Jim: So put your tinfoil hat back in the closet, open your eyes to the truth, and realize that the government is in fact causing austismal cancer with it's 9/11 fluoride vaccinations of your water supply.
Skilled player (1653)
Joined: 11/15/2004
Posts: 2202
Location: Killjoy
Been meaning to do this, too- List of improvements over the published run - Draw Carbuncle - Ability x3 and HP-J (Skip HP-J on Ifrit) Draw Leviathan - Supt-Mag-Rf Skip Angelo Moon - Use Supt Mag-Rf on Remedies and 4 Remaining Wizard Stones for Dispel - this +80% HP-J on the correct characters should be enough to survive Shockwave Pulsar Get cards in Balamb, kill 2 bats in Ifrits cave, kill all enemies in Dollet - waste steps in Dollet Tower to get an encounter - instead of after the SPCH whatever. This provides the 4 AP needed, in even quantities needed. Reason being, you don't waste an encounter/celebration after SPCH whatever. - Perhaps drawing fire magic in ifrit's cave is enough to waste steps? This would save having to learn it later. Open gates in the jail by talking to the Moombas. Slip by Cid's dialogue at the start of Disc 3 Possible improvement - needs to be tested - TriPoint as the boss in Ultimecia's Castle - benefit - 1 hit kill - loses - need to open the trap door, and switch screens twice. Additionally, need to junction fire magic to deal damage. Always starts on fire.
Sage advice from a friend of Jim: So put your tinfoil hat back in the closet, open your eyes to the truth, and realize that the government is in fact causing austismal cancer with it's 9/11 fluoride vaccinations of your water supply.
Player (118)
Joined: 5/13/2009
Posts: 700
Location: suffern, ny
When you are about to go into the place where you fight ELorvet, you have the option of running around or taking Selphies shortcut. If you take the short cut, you lose 2 seed points, and avoid encounters. If you run around you dont lose anything. I usually encounter a battle here. that might help.
[19:16] <scrimpy> silly portuguese [19:16] <scrimpy> it's like spanish, only less cool
Player (66)
Joined: 4/21/2011
Posts: 232
In Disc 1, after you get changed before the dance. You walk to the door to trigger the text with Selphie. Just talking to her should be faster since you are teleported to the dance once the dialog is over. Right around frame 200000. http://www.youtube.com/watch?v=UHtVINzXeQE http://www.mediafire.com/?ygw7z61blf0osvf Another potential save in disc 1. When talking in the room after Seifer is captured and executed, Dark Wasabi skips talking to Selphie. http://www.youtube.com/watch?v=6kUBN_cEb0I http://www.mediafire.com/?wj4b3gim37foogs
Post subject: Love is all Around
Editor, Expert player (2481)
Joined: 4/8/2005
Posts: 1573
Location: Gone for a year, just for varietyyyyyyyyy!!
DarkKobold wrote:
In an attempt to inspire others to do more open TASing, and share knowledge, I'm posting as many scripts and stuff as I can find.
I love this attitude. I am also inspired by it.
1 2
10 11 12