Editor, Skilled player (1203)
Joined: 9/27/2008
Posts: 1085
http://tasvideos.org/userfiles/info/12809468352107768 - Two laps in the first Pawn track on Expert (clean SRAM, so no Master). F-Zero: Maximum Velocity is another game in the F-Zero series, so expect high speed racing with machines. This plays more similarly to the SNES version than the N64 or other "more 3D" games. Oddly enough, none of the machines you're familiar with are seen here, although Falcon Mk-II has a close resemblance to a classic machine.
Hot Viol  Fire Bal  J.B.Crys  Wind Wal   Address info in Grand Prix
02012D60  02012E2C  02012EF8  02012FC4  4 bytes, X position
02012D64  02012E30  02012EFC  02012FC8  4 bytes, Y position
02012DD4  02012EA0  02012F6C  02013038  2 bytes, Speed
02012DD8  02012EA4  02012F70  0201303C  2 bytes, Facing (direction)
02012DDA  02012EA6  02012F72  0201303E  2 bytes, Momentum (direction)
Machine data apparently fits within 0xCC or 204 bytes per machine. I have not produced any lua scripts that are more than a fancy memory watch, except to calculate the difference of Facing and Momentum. I've also been producing a simple text file with hopefully practical numbers:
Machine       |Sp1:Sp2:Sp3:Sp4>Bst|Brk:Cst:OVR|L-R|Trn|Bal|
--------------+---:---:---:--->---+---:---:---+---+---+---+
Hot Violet    |192:320:368:424>576|-14:- 3:- 4| 96|341|176|
              | 20: 14:  6:  1> 16|           |   |   |512|
--------------+---:---:---:--->---+---:---:---+---+---+---+
Fire Ball     |224:320:384:440>564|-13:- 2:- 2| 96|296|108|
              | 10:  6:  4:  1> 12|           |   |   |568|
--------------+---:---:---:--->---+---:---:---+---+---+---+
J.B.Crystal   |128:256:352:418>560|-18:- 5:- 3| 94|308|224|
              | 32: 16:  6:  2> 10|           |   |   |480|
--------------+---:---:---:--->---+---:---:---+---+---+---+
Wind Walker   |128:224:320:428>580|-16:- 3:- 3|112|384|112|
              | 40: 28: 16:  3> 40|           |   |   |576|
--------------+---:---:---:--->---+---:---:---+---+---+---+
Jet Vermilion | 96:160:256:456>592|-12:- 1:- 1|128|236|104|
              | 48: 24:  8:  1> 48|           |   |   |768|
--------------+---:---:---:--->---+---:---:---+---+---+---+
Top speed values relate to the displayed km/h speed. Acceleration values relate to internal memory. Internal speed is in units of 0.25 km/h, so multiply the top speed values by 4 to get the internal version. The top speed values are the five upper numbers under Sp1:Sp2:Sp3:Sp4>Bst, while acceleration values are the ones right below that, as well as under Brk:Cst:OVR. If you release the accelerator while on the ground, the Cst is used on top of anything else slowing you down. Releasing while in the air doesn't add the Cst friction. If you go over your speed limit for any reason, your acceleration stops and OVR kicks in. There is a small hysteresis between top speed and some lower threshold that your machine must slow down to when the overspeeding mechanic kicks in. If you're not turning, a pattern of releasing and pressing the accelerator will keep you closer to the top speed on average. I did not measure this hysteresis in detail, except I know that Fire Ball goes below 439 km/h before being allowed to speed back up to 440 km/h. Boosting uses its own acceleration value, regardless of whether your current speed would be better. J.B.Crystal is highly encouraged to first get moving pretty fast before using the boost, as from a standing start, boosting actually cripples it by locking the acceleration at 10 instead of allowing it to gain speed at 32. Apparently, boosting affects OVR. Aside from Fire Ball reducing it to -1, I have not measured it. The listed L-R is also a speed value, in 1 km/h units. Multiply by 4 to get internal units. It seems constant as long as you're above 128 km/h, which you should be at all the time. It's the side-to-side motion caused by holding the L or R buttons. The movement caused by this is relative to your facing, not your momentum, so picking L or R opposite of your turns tend to make you go faster. Trn is turning rate per frame. Bal is how quickly the game shifts your momentum toward your facing. 65536 of this is a full circle. The upper Bal number is used most of the time, while the lower Bal number is used whenever you release and press the accelerator. This second number is used for 10 frames after the transition from unpressed to pressed, but it doesn't matter whether you keep the accelerator pressed or released then. If you do mash the accelerator, it will reset the 10-frame timer each time the transition from unpressed -> pressed is done. That's roughly what I know of the mechanics so far. I'm not sure if I'll continue, but I may as well give an info dump.
Editor, Experienced player (570)
Joined: 11/8/2010
Posts: 4038
Looks good so far! I would be interested to see more if you decide to work on it.
Player (146)
Joined: 7/16/2009
Posts: 686
As much as I like work being done on this, is there any reason you're not beating existing records? WR splits are: 24''64 20''96 20''83 20''23 20''05
Editor, Skilled player (1203)
Joined: 9/27/2008
Posts: 1085
Scepheo wrote:
As much as I like work being done on this, is there any reason you're not beating existing records?
1) I don't trust my own searches, so it's hard for me to find things 2) What vehicle is being used in those WR? Keep in mind I only have defaults from clean SRAM (using Fire Ball) 3) I'm still working out some of the mechanics in this test run.
Player (146)
Joined: 7/16/2009
Posts: 686
1) F-Zero Central 2) I think it's Jet Vermillion. Although you ussually unlock it by (yeah, really) beating every cup with every vehicle on master (again, yeah, really), Nintendo left a password in. Although dependent on save game name, someone decrypted it, so it could be used in a TAS. 3) Ah, right. Again, F-Zero Central should be able to help you with useful articles. Sorry if I sounded harsh, I didn't mean to. I honestly just want this to be good and I respect the simple fact you're willing to take this up.
Editor, Skilled player (1203)
Joined: 9/27/2008
Posts: 1085
Don't worry. You asked why. I gave my answers. You wanted to know why I didn't beat the WR. You gave some information in return for my response. I have to say, thanks. I will be taking a look through F-Zero Central for a bit. Again, I've only been poking through this game out of curiosity, and will fully support someone who wants to TAS this game themselves, complete with lua scripting for any information desired. I don't have a strong desire to TAS this myself, and considering my track record in TASing other games, I tend to stop after some point. I'm posting mainly to generate interest, whether someone else wants to, or that it possibly catches enough of my own attention.
Editor, Skilled player (1203)
Joined: 9/27/2008
Posts: 1085
http://www.fzerocentral.org/viewtopic.php?t=5530 Apparently someone has made some TAS attempts already. If a full run is to be made, how should it be handled? * Clean SRAM - Pawn through Queen on Expert * Unlock Master first with verification movie - Pawn through Queen on Master * * Use a suboptimal starter machine (to be different), or use Jet Vermilion? EDIT: There's actually an advantage for picking Master. Rival machines are more likely to smash into your back, giving you noticeable boosts forward. The increased aggression should mean we can more readily use those other vehicles on the track for more speed. http://tasvideos.org/userfiles/info/12882193794445245 Here's a .vbm that unlocks Jet Vermilion. Feel free to beat it, as I was looking for a name that's convenient for the password, and is generally a fast one I cared to look for, not the fastest one I can find. http://tasvideos.org/userfiles/info/12882383957282529 Password calculator. If anyone wanted my piece of lua code as I was producing that fast password movie, it is here. For VBA, of course.
Player (146)
Joined: 7/16/2009
Posts: 686
According to the thread on F-Zero Central, the game checks the code by decrypting it (generating a player name) and checking that against the actual name. If you could find the corresponding part of the game's code, it should be too hard to make a password -> name script. This would allow you to check the relatively short list of very fast passwords (the best would probably be some 0's, followed by some 1's, followed by some 3's, ending with the mandatory 30), seeing which one gives the best player name. Still, this one is really fast already. On the other hand, if you were to do master and use dirty SRAM, you can enter the password in the verification movie, making the speed irrelevant.
Editor, Skilled player (1203)
Joined: 9/27/2008
Posts: 1085
http://tasvideos.org/userfiles/info/12907400947310067 - VBa v24m - Just a one lap playaround. http://www.youtube.com/watch?v=y7OeNApAntY - natt encoded this. Thank you. Makes me wonder if I should try a playaround for the verification movie. Would it be alright to submit the verification as a form of permanence, to ensure a place where it can always be found? My intent is less that it gets published and more that it can be found later to reproduce the SRAM. Any judges or admins to share thoughts with? Unfortunately, for the span of 20 tracks on Expert, five laps each, this means 100 laps of fooling around. I don't see a lot of ways to mess around in here, though driving backwards for one lap sure has its charm. Going backwards for 60 laps gets old. Going for a fast lap as lap 5 for every track would give me something to do and records to beat (as well as provide some small incentive for publication), but that still leaves 80 laps. Well, 79. I drove backwards in one lap. Maybe backwards driving as first lap on every track, for the occasional "there's no way you can go backwards here" factor? There's a few more stats I can find, it seems. More than what I already listed (boost time being obvious). I can pick apart those stats carefully and explain them somewhere rather than continue the TAS, so it's not like I'll be wasting time while waiting for a few answers. For the fast password, the first character should be A or 1, and the second character should be 2. It's not possible to set the second character to a 1 or 0, which would open up a few more possibilities. Some characters could be anywhere from 0 to 6, as well as =, and still be among the fastest possible passwords. Of course, there's also the name to think about, and sacrificing two frames at the password gives a lot more possible names. The verification, of course, doesn't need to be 100% optimal here. But it never hurts to have as many frames shaved off as possible wherever it's reasonable.
Patashu
He/Him
Joined: 10/2/2005
Posts: 4045
I don't think you need to combine two goals (making a verification movie + making a submittable TAS) if they don't synergize well, just because both need to be done.
My Chiptune music, made in Famitracker: http://soundcloud.com/patashu My twitch. I stream mostly shmups & rhythm games http://twitch.tv/patashu My youtube, again shmups and rhythm games and misc stuff: http://youtube.com/user/patashu
Editor, Experienced player (570)
Joined: 11/8/2010
Posts: 4038
It's not mandatory to submit the verification movie; you could upload it to your user files and link to it in your final submission, and it would be just as valid.
Editor, Skilled player (1203)
Joined: 9/27/2008
Posts: 1085
My main concern is... What if going through my list of user movies, I end up removing the verification? Sometime in the future, my quota is getting maxed out, and I start picking out things that I have little to no reason to keep. And accidentally... A submission guarantees a spot where the movie can be found, or at least, prevents me from erasing it by some mistake, but my user movies list is only a near-guarantee. ... Ah, whatever. I'm probably thinking to hard on it. User movies, it will be stored in. Verification movie progress will be slow, as I'm getting myself busy in writing stuff more.
Joined: 7/2/2007
Posts: 3960
Does TASVideos not have an un-quota'd admin file store somewhere that the publisher could copy the verification movie to?
Pyrel - an open-source rewrite of the Angband roguelike game in Python.
Editor, Skilled player (1203)
Joined: 9/27/2008
Posts: 1085
Quota left: 40704kB ... It'll be a while before I crash into problems. Unless I suddenly go into a lua scripting frenzy and produce several MB of scripts all of a sudden. So, yeah. I'm probably being paranoid about that line of thought. Still, I'm asking in case, you know, the movie gets published and the verification movie that I had available suddenly vanished due to something off going on in my end. Chance of that type of insanity happening is low, so the problem is likely negligible.
Patashu
He/Him
Joined: 10/2/2005
Posts: 4045
Technically, for the disappearance of a verification movie to be a problem, post TAS publication, would require ALSO that you don't trust everyone who verified that the verification movie correctly creates the SRAM used for the published TAS to be reliable.
My Chiptune music, made in Famitracker: http://soundcloud.com/patashu My twitch. I stream mostly shmups & rhythm games http://twitch.tv/patashu My youtube, again shmups and rhythm games and misc stuff: http://youtube.com/user/patashu
Joined: 7/2/2007
Posts: 3960
FatRatKnight wrote:
... It'll be a while before I crash into problems.
Subtle. Real subtle. :p
Pyrel - an open-source rewrite of the Angband roguelike game in Python.
Editor, Skilled player (1203)
Joined: 9/27/2008
Posts: 1085
http://tasvideos.org/userfiles/info/12964102343777807 My fast lap: 19"48 - WR: 19"28 Whatever crazy precision they've done impresses me. Especially since Training doesn't have the obstacles I can boost off of. Any experts of this game can probably point out where I'm slow, but at least I have something to start with. Now might be a good time to work out a few scripts. This will take a lot of digging into memory, coming up with an intuitive display, and punching out what might be useful to have.
Joined: 3/11/2008
Posts: 583
Location: USA
Scepheo wrote:
2) I think it's Jet Vermillion. Although you ussually unlock it by (yeah, really) beating every cup with every vehicle on master (again, yeah, really), Nintendo left a password in. Although dependent on save game name, someone decrypted it, so it could be used in a TAS.
Hey, different vehicles are differently suited to the tracks. It's actually an interesting challenge. Alternately, completing "Championship" 256 times unlocks it, I hear.
VBA wrote:
The Linux port is currently unmaintained and thus out-dated. It may work incorrectly, or even fail to compile completely.
Guess I can't offer specific advice, then, and it seems like you're close enough that anything general isn't going to be good enough (top 4-quality?)
Memory
She/Her
Site Admin, Skilled player (1558)
Joined: 3/20/2014
Posts: 1767
Location: Dumpster
I made a verification movie to generate SRAM for a full Master GP TAS here: http://tasvideos.org/userfiles/info/39571930033068610 I didn't bother optimizing it at all and just played the game at full speed. The bump you're able to get off a rival is stronger on Master and the game spawns more floating mines on Master than Expert. I plan to work on this and maybe the other GBA F-Zeros over the summer. EDIT: Changed file to one that changes the controls
[16:36:31] <Mothrayas> I have to say this argument about robot drug usage is a lot more fun than whatever else we have been doing in the past two+ hours
[16:08:10] <BenLubar> a TAS is just the limit of a segmented speedrun as the segment length approaches zero
Editor, Skilled player (1203)
Joined: 9/27/2008
Posts: 1085
Alright, someone who wants to try TASing this. Don't forget the Game Resources page: Wiki: GameResources/GBx/FZeroMaximumVelocity Something that probably should also be in the verification is going into the options to change controls (to Type 5 or 6). The defaults for boosting uses L+R buttons, but changing it so that Up triggers the boost means you're not spending 6 frames without that side movement. I'm not aware of anything Up does, not even in jumps. Is there anything you'd like from scripts? Visual compass indicating facing and momentum? Rival radar? RAM Watch alternatives? This is something I'm interested in giving support.
Memory
She/Her
Site Admin, Skilled player (1558)
Joined: 3/20/2014
Posts: 1767
Location: Dumpster
FatRatKnight wrote:
Alright, someone who wants to try TASing this. Don't forget the Game Resources page: Wiki: GameResources/GBx/FZeroMaximumVelocity Something that probably should also be in the verification is going into the options to change controls (to Type 5 or 6). The defaults for boosting uses L+R buttons, but changing it so that Up triggers the boost means you're not spending 6 frames without that side movement. I'm not aware of anything Up does, not even in jumps. Is there anything you'd like from scripts? Visual compass indicating facing and momentum? Rival radar? RAM Watch alternatives? This is something I'm interested in giving support.
Thanks for the heads up on the control thing, I'll make an adjustment to the verification thing. I already had a look at the game resources page I'll study it in more detail later. Most of those would be nice but I'm not sure how a rival radar would work: the game sorta cheats when determining the position of the place below you. They sorta are directly behind you at all times it seems. If you take a massive shortcut through a race, they will still be right behind you. Some way of determining how and where the floating mines are generated would be absolutely spectacular. They give critical speed boosts and more of them spawn on Master than other difficulties. EDIT: I should clarify, these floating mines spawn in a variety of possible locations. I wouldn't say they're necessarily RNG dependent either: I remember seeing a strategy RTA runners used to crash into a specific car or something to get a mine to spawn at the right spot.
[16:36:31] <Mothrayas> I have to say this argument about robot drug usage is a lot more fun than whatever else we have been doing in the past two+ hours
[16:08:10] <BenLubar> a TAS is just the limit of a segmented speedrun as the segment length approaches zero
Editor, Skilled player (1203)
Joined: 9/27/2008
Posts: 1085
The way I envision the radar is to give positions from a birds-eye perspective, local to where you are. I can probably code something to orient it to what your facing is, or always orient north. I say rival radar because it sounds nice (contains alliteration), but I'd be looking for all objects, which hopefully mines count as objects. As for how those mines generate, that will be trickier. I have a verification movie that plays the game for me, so I can search for changes in RAM based on that. There isn't a lot in the Game Resources page at the moment. Generally detailed stats of each machine and locates some machine stuff in RAM. Populating it with useful tricks as we discover them might be useful. EDIT: Well, here's a script. My descriptions on the numbers are sparse, but if I don't need to explain them, then they are self-evident enough and good to go.
Memory
She/Her
Site Admin, Skilled player (1558)
Joined: 3/20/2014
Posts: 1767
Location: Dumpster
Thank you very much for the script. I checked that it worked but first I'll need to finish up a paper that I got an extension on before I start working on the TAS in earnest.
[16:36:31] <Mothrayas> I have to say this argument about robot drug usage is a lot more fun than whatever else we have been doing in the past two+ hours
[16:08:10] <BenLubar> a TAS is just the limit of a segmented speedrun as the segment length approaches zero
Editor, Skilled player (1203)
Joined: 9/27/2008
Posts: 1085
Well, it gives me time to try some improvements to the script before you start. At least work out the interesting ideas I have, anyway. Still nothing yet on how things spawn. Although, I have rescaling displays and a few things that can tell me the moment things spawn, but how they do so is another question.
Memory
She/Her
Site Admin, Skilled player (1558)
Joined: 3/20/2014
Posts: 1767
Location: Dumpster
When (and where) they spawn is a good thing to know in and of itself. A little popup of sorts whenever something new spawns might just be good enough. This doesn't exactly need to be in the script but an image of each track (or the minimap of each track) placed on a coordinates grid would be nice to have to easily know what positions correspond to what.
[16:36:31] <Mothrayas> I have to say this argument about robot drug usage is a lot more fun than whatever else we have been doing in the past two+ hours
[16:08:10] <BenLubar> a TAS is just the limit of a segmented speedrun as the segment length approaches zero