Posts for FatRatKnight

Editor, Experienced Forum User, Published Author, Skilled player (1174)
Joined: 9/27/2008
Posts: 1085
Apparently, boost cost is a simple formula: Cost = MaxBody * BoostTime / 1200 Basically, you have 20 seconds of boost from full power, no matter the machine. Of course, the variance in boost times and the fact you can't actually do a fractional boost means you probably aren't getting exactly 20 seconds out of it. As for how viable it is to keep boosting, that depends on how quick we recover on the repair pads and how convenient their locations. I can see why Night Thunder is frequently on the leaderboards. That low Grip is great for drifts. We know all about facing and momentum at this point, and the interaction of side motion on your true speed. Being able to pretty readily get a strong difference between facing and momentum means better use of drifts or side attacks.
Editor, Experienced Forum User, Published Author, Skilled player (1174)
Joined: 9/27/2008
Posts: 1085
Experimented with a healing pad. Golden Fox restored 40 per frame, Fire Stingray got back at nearly twice the rate, at 76. There's probably numbers for friction on various terrain (rail, dirt), and all that mess. Well aware I haven't tabled that for MV. Also, double-check the Spd3 value for Golden Fox. 1552 looks right. I glanced over for other suspicious numbers and nothing else looked seriously off. I understand not bothering with very high turning allowance. You're not going to drive past 90 degrees. After experimenting a bit with the tweaking slider, it appears the boost top speed goes down for going on the top speed half of the slider, but remains as good as middle selection for going on the acceleration half. The Side Attacks are very fast in their initial frames. It also has the drawback of applying friction when doing so, looks like -16 speed per frame, but this doesn't disable acceleration. Makes me think that Side Attack spam is best done with a machine that gets good acceleration for its third gear. I've tweaked max acceleration for Golden Fox and got 13, which means we still slow down over time. Then again, there are boosts after the first lap, which all machines have access to.
Editor, Experienced Forum User, Published Author, Skilled player (1174)
Joined: 9/27/2008
Posts: 1085
Rather hastily threw a script together, based on MV (EDIT: though of course I pick the addresses of GPL!). Hopefully it'll let you gather a touch faster. Unknowns are included, put aside below other data. Ran out of horizontal space for Boost Time and Jump, so those are displaced downward. EDIT2: Oh, dear. I overlapped the brakes and coast stats. I've adjusted that now. EDIT3: I've adjusted my script to show my guess on the turning tolerance. Download FZGPL_Stat.lua
Language: lua

local R4u , R4s= memory.read_u32_le , memory.read_s32_le local R2u , R2s= memory.read_u16_le , memory.read_s16_le local R1u , R1s= memory.read_u8 , memory.read_s8 local a= 0x17720 local s= string.format while true do gui.pixelText( 0, 8,s("%4d",R1u(a+0x00,"EWRAM")),0xFFFFFFFF) --Acc1 gui.pixelText( 20, 8,s("%4d",R1u(a+0x01,"EWRAM")),0xFFFFFFFF) --Acc2 gui.pixelText( 40, 8,s("%4d",R1u(a+0x02,"EWRAM")),0xFFFFFFFF) --Acc3 gui.pixelText( 60, 8,s("%4d",R1u(a+0x03,"EWRAM")),0xFFFFFFFF) --Acc4 gui.pixelText( 0, 0,s("%4d",R2u(a+0x04,"EWRAM")),0xFFFFFFFF) --Spd1 gui.pixelText( 20, 0,s("%4d",R2u(a+0x06,"EWRAM")),0xFFFFFFFF) --Spd2 gui.pixelText( 40, 0,s("%4d",R2u(a+0x08,"EWRAM")),0xFFFFFFFF) --Spd3 gui.pixelText( 60, 0,s("%4d",R2u(a+0x0A,"EWRAM")),0xFFFFFFFF) --Spd4 gui.pixelText(140, 0,s("%4d",R1u(a+0x0C,"EWRAM")),0xFFFFFFFF) --Over max friction gui.pixelText( 0, 16,s("%4d",R1u(a+0x0D,"EWRAM")),0xFF808080) --Padding? gui.pixelText(100, 0,s("%4d",R2u(a+0x0E,"EWRAM")),0xFFFFFFFF) --Hysteresis gui.pixelText( 80, 8,s("%4d",R1u(a+0x10,"EWRAM")),0xFFFFFFFF) --AccB gui.pixelText( 20, 16,s("%4d",R1u(a+0x11,"EWRAM")),0xFF808080) --Padding? gui.pixelText( 80, 0,s("%4d",R2u(a+0x12,"EWRAM")),0xFFFFFFFF) --SpdB gui.pixelText(140, 8,s("%4d",R1u(a+0x14,"EWRAM")),0xFFFFFFFF) --Over boost friction gui.pixelText( 40, 16,s("%4d",R1u(a+0x15,"EWRAM")),0xFF808080) --Padding? gui.pixelText(100, 8,s("%4d",R2u(a+0x16,"EWRAM")),0xFFFFFFFF) --Hysteresis (boost) gui.pixelText(222, 8,s("%4d",R2u(a+0x18,"EWRAM")),0xFFFFFFFF) --Boost Time gui.pixelText(224, 16,s("%4d",R2u(a+0x1A,"EWRAM")),0xFFFFFFFF) --Jump gui.pixelText( 0, 24,s("%4d",R2u(a+0x1C,"EWRAM")),0xFFFF80FF) --? Unknown gui.pixelText(170, 0,s("%2d",R1u(a+0x1E,"EWRAM")),0xFFFFFFFF) --Friction: Coast gui.pixelText(160, 0,s("%2d",R1u(a+0x1F,"EWRAM")),0xFFFFFFFF) --Friction: Brake gui.pixelText(180, 0,s("%4d",R2u(a+0x20,"EWRAM")),0xFFFFFFFF) --Steering gui.pixelText(200, 0,s("%4d",R2u(a+0x22,"EWRAM")),0xFFFFFFFF) --Momentum, balance gui.pixelText(200, 8,s("%4d",R2u(a+0x24,"EWRAM")),0xFFFFFFFF) --Momentum, Blast Turn gui.pixelText(176, 8,s("%5d",R1u(a+0x26,"EWRAM")*256),0xFFFFFFFF) --Turning tolerance gui.pixelText( 20, 24,s("%4d",R1u(a+0x27,"EWRAM")),0xFFFF80FF) --? Unknown gui.pixelText( 40, 24,s("%4d",R2u(a+0x28,"EWRAM")),0xFFFF80FF) --? Unknown gui.pixelText(120, 0,s("%4d",R2u(a+0x2A,"EWRAM")),0xFFFFFFFF) --LR drift speed gui.pixelText( 60, 24,s("%4d",R1u(a+0x2C,"EWRAM")),0xFFFF80FF) --? Unknown gui.pixelText( 80, 24,s("%4d",R1u(a+0x2D,"EWRAM")),0xFFFF80FF) --? Unknown gui.pixelText(218, 0,s("%5d",R1u(a+0x2E,"EWRAM")*64),0xFFFFFFFF) --Body gui.pixelText(100, 24,s("%4d",R1u(a+0x2F,"EWRAM")),0xFFFF80FF) --? Unknown emu.frameadvance() end
Editor, Experienced Forum User, Published Author, Skilled player (1174)
Joined: 9/27/2008
Posts: 1085
There's plenty of other ways to list the jump stat. Probably the best one is the initial upward velocity you get if you hit the jump plate from above some speed threshold (basically, if you adjust your speed slightly and it changes your jump height, you're not going fast enough). An alternative is to just get the two bytes from the internal stats and use that. I don't recall what system, exactly, I used back then, and would advise to err on the side of whole numbers and basing a formula on that. If you prefer, when I am up to it, I can reformulate the jump stuff and try to be less confusing about it. I just don't like the system I used a while back.
Editor, Experienced Forum User, Published Author, Skilled player (1174)
Joined: 9/27/2008
Posts: 1085
Not too surprised at inaccuracies in my listing for GPL. If some address in there is still not entirely clear, refer to my MV list and see if that helps you identify the stat. Byte counts for some stats might also be wrong in the GPL listing, particularly the last stats listed. Will be nice to see the table when it's ready.
Editor, Experienced Forum User, Published Author, Skilled player (1174)
Joined: 9/27/2008
Posts: 1085
Something tells me I might not have reported the right formula in the page. That will need some checking, and besides, there might be better numbers to report. Well, find a jump plate and drive over it at a high speed. Look for some addresses that weren't changing until you were suddenly airborne, and study those. That was what I did. Looking over my notes on MV...
Maximum Velocity
ROM:2C1CC0[size=0x30][count=25] - Machine core stats
  +00,1u[4] - Acceleration (for each gear)
  +04,2u[4] - Top speed for each gear
  +0C,1u    - Friction for being over speed limit of 4th gear (boost maintenance)
  +0D,1x    - Padding?
  +0E,2u    - Speed to drop to from over 4th gear limit (hysteresis)
  +10,1u    - Boost Acceleration
  +11,1x    - Padding?
  +12,2u    - Boost top speed
  +14,1u    - Friction for being over boost speed limit
  +15,1x    - Padding?
  +16,2u    - Speed to drop to from over boost limit (boost hysteresis)
  +18,2u    - Boost Time
  +1A,2u    - Jump
  +1C,2u    - ?
  +1E,1u    - Friction: Coasting (accelerator released)
  +1F,1u    - Friction: Braking
  +20,2u    - Steering rate
  +22,2u    - Momentum rate (balance)
  +24,2u    - Momentum rate (Blast Turn)
  +26,1u    - Facing-Momentum diff tolerance
  +27,1u    - ?
  +28,1u    - ?
  +29,1u    - Padding?
  +2A,2u    - LR drift speed
  +2C,1u    - ?
  +2D,1u    - ?
  +2E,1u    - Body
  +2F,1u    - ?
EDIT: Offset 26 looks like the turning tolerance. ... And the fact I saw what looked rather suspiciously like a similar looking stat block in EWRAM:17720 loaded based on whatever machine you have, we might want to look at +1A from that, at EWRAM:1773A, for some clue and seeing if they relate. The jump stat really needs another look in Maximum Velocity anyway. It's the least clear part of the table, and I will have no trouble redefining numbers that make more sense to you.
Post subject: Requesting topic split
Editor, Experienced Forum User, Published Author, Skilled player (1174)
Joined: 9/27/2008
Posts: 1085
Personally, I'd prefer a rating system that, rather than 1 to 10, or any "1 to x", is instead balanced around zero. "Extremely boring", "Boring", "Mildly boring", "Neutral", "Mildly fun", "Fun", and "Extremely fun", or something to that extent. However, I'm not posting to talk about the "honesty" or flaws of any particular rating system. A few days ago, I've been following on the discussions of problems involving how to get people to rate movies (I lurked this thread). Back in the "good ol' days", people rated a lot. Now? Not so much. I don't care for a topic on trying to get the best possible rating system that is unambiguously good on all fronts, as it will give no benefit if there is no one using it. It can be worth discussing the flaws of a rating system, perhaps even in its own topic, but the issue of getting votes and the issue of a more honest form of rating are separate, whatever relation it has. I want things to see more on how to draw in votes. And I don't want "just create a new thread" for an answer when this is the very thread I should be seeing that in. (The post starting this discussion did begin by pointing out this is a tangent to the prior discussion) Consider this post to be a request to split this thread into separate topics. I don't exactly want to stop one or another, they're both good discussion points, but these are, in my view, two distinct things where posts involving one do not advance the other appreciably.
Editor, Experienced Forum User, Published Author, Skilled player (1174)
Joined: 9/27/2008
Posts: 1085
As you continue to find more stats, just keep doing the poke test. Several seconds to find the spot, a few more to set it to zero each time, and then a few frame advances to see the change in speed. Don't bother checking machines you've already gotten the stats for, until you have one confirmation there is a limit less than 90 degrees. If you never get that confirmation, then it is very unlikely going back over the machines will show a limit you missed. Would be nice to know with greater certainty, since 3 of 10 MV machines wouldn't slow at 90 degrees, and only 2 of 34 was checked here.
Editor, Experienced Forum User, Published Author, Skilled player (1174)
Joined: 9/27/2008
Posts: 1085
I'm guessing you tried a rather large percentage of machines, at least 8 of them, preferably more. There's a few machines that didn't lose speed at 90 degrees in MV, but it's certainly possible the limit is set insanely high (180 degrees basically means no limit) or removed the limiting mechanic. It's also possible the poke causes the game to respond inappropriately, a quick test would be to check Jet Vermilion in MV and seeing if poking the Momentum like we did here causes any change in speed. If JV loses speed, then we can be pretty sure the poke test isn't messing any mechanics up. If there is no steering limit here, that should simplify your tables a little.
Editor, Experienced Forum User, Published Author, Skilled player (1174)
Joined: 9/27/2008
Posts: 1085
In Maximum Velocity, most of the machines had such a wide difference between how fast they turn and how slow their momentum actually shifted. It generally didn't take long to steer hard enough to hit the limits. Even J.B.Crystal wasn't that difficult. As for the detection process, I basically just steered until I saw a frame where I didn't steer further. It was also the time I lost speed from steering too much. As for the exact number, it looks so clean in hexadecimal. Viewing the MV numbers in hex, you'd see 2000, 3000, 3400, 3600, 3800, 3C00, 4000, and 5000. Most likely the exact number is some multiple of 256, or 0x100. Maybe 512, or 0x200. Considering the B Grip I've experienced on one of these machines, you might want to forget steering normally and cheat Momentum. Starting a course typically faces you straight north, which is 49152 (0xC000). After gaining some speed, try cheating your Momentum. Poke it to either 0 (0x0000) or 32768 (0x8000). If it's anything like MV, you'll be losing speed for a few frames before the difference shrinks back down low enough. Around the time you stop losing speed, that may be a good time to take a closer look.
Editor, Experienced Forum User, Published Author, Skilled player (1174)
Joined: 9/27/2008
Posts: 1085
Referring to Exonym's post, our list of re-fight skips: 1st - Fail 2nd - Skip 3rd - Fail 4th - Skip - EDIT: savestate-anchored .bk2 5th - Fail 6th - Skip 7th - Skip 8th - Skip EDIT: In case it's important, 1st has us re-fight s1 boss, 2nd has us re-fight s2 boss. Guess what boss the 3rd one has us fight. Yes, the s3 boss. I'll leave the pattern recognition up to you. I recall looking at the first one myself, and determining the enemies are exactly one pixel away from remaining in existence. I am unable to determine a way to tweak this pixel. I have not checked the other fails myself, but I wouldn't be surprised if there's no getting those to work. Maybe the 4th one can be skipped, I'm not sure. That's the list I am aware of, anyway. Feel free to make tests (probably with a DTC movie for convenience of getting there). EDIT: A small saving at end of Stage 4. Spent the frames saving lag.
Editor, Experienced Forum User, Published Author, Skilled player (1174)
Joined: 9/27/2008
Posts: 1085
Added: More barrier in s2. Boss Skip for second re-fight. Stage 2 isn't done yet, but at least it's got better ammo management to avoid a pause for a refill. My next step will be to clear through the end stages and have a start on those. The first re-fight was just a direct copy of Team 3, which will need to change to tweak with ammo I expect to need. Charged spikeball, Flame Charge, charged missile, 3 whirlwinds, and a dirt spike look to be desired. Getting whirlwinds lag-free might be tricky, replacing one with 2x dirt spikes would be the easy solution. Anyway, a bit more progress. Enjoy it.
Editor, Experienced Forum User, Published Author, Skilled player (1174)
Joined: 9/27/2008
Posts: 1085
Among the earlier stages, I've finally carried the saved frames all the way forward. Cleared Stage 5 with ThunderAxe31's improvements as well. We have lag to kill. Some decent notes in this upload, but the file of the upload itself is a bit out-dated in just a few minutes. Basically it's about those short ledges, and jumping up them can take advantage of the first dash tap when we jump, because we overlap some zero speed frames between the tap input and the fact we have zero X speed on the frame we jump out of a dash. I feel like the movie is getting pretty packed solid, with very little we can add to it now. Getting the Boss Skip technique added to the movie, where it ends, is still open for anyone wanting to try. Zero further attempts have been made so far since my almost zero effort try.
Editor, Experienced Forum User, Published Author, Skilled player (1174)
Joined: 9/27/2008
Posts: 1085
So, saved a fair number of frames in earlier stages. Stage 2 is in limbo for the moment, I've got frames in early stages I need to carry forward. Got a delay between Stages 4 & 5, a total of 8 frames there. Turns out I saved enough frames to clear one 32-frame cycle, and a bit more to spare besides. I sort of was hoping to have it be exactly on the 32-frame cycle. I would like to attach a working Boss Skip to the movie file as well. Not yet successful, but the effort I used is close to non-existent. Worry about clean up later, get the technique in place. Although, may as well pool some thoughts about the bosses in the end stages. We have four working skips. We have four bosses we still need to bust (one skip is on the last one, so Frozen Laser won't save us ammo). That's 220 HP across 44 hits we need to do. Let's take stock of our weaponry: Flame - 5 damage on 2 ammo, or 3 damage on 1. Tends to get used and refilled in stage portions. Whirlwind - 4 damage with 2 hits on 2 ammo. 40 damage available. Dirt - 4 damage on 2 ammo. 20 damage available. I am not considering the meteors, due to heavy lag. Bubble - 3 damage with 2 hits on 1 ammo. 66 potential, but low damage per hit. Missile - 4 damage on 2 ammo, or 6 damage on 3. 22 damage available. The 6 damage hits helps to keep up. Star - -8 ammo for skips. Leave a single 3-damage hit and a single 6-damage hit. Spikeball - 8 damage with 2 hits on 4 ammo. The uncharged shot can hit several times, too, with 4 damage per hit. Hard analyzing this thing, but we need the up-front damage. Laser - Needed to break the lock on doors. 4 damage on 2 ammo, or 10 damage on 4, if we somehow have the ammo. Since we're not doing anything else with Whirlwind, Dirt, Missile, or 3 ammo of our Star, we've got 91/220 damage across 21/44 hits. We're probably opening every combat we don't skip with charged Spikeball, 16 ammo needed, which accounts for another 64 damage across 8 hits. Assuming we don't need to pause after (Charge Swap needs pause to work at all), we can drop to negative ammo with the Spikeball with Charge Storage and leave it there for another 16 damage across 2 hits on the last boss we fight. Hey, all for the sake of avoiding the pause screen for Ammo Tanks!
Editor, Experienced Forum User, Published Author, Skilled player (1174)
Joined: 9/27/2008
Posts: 1085
A start-to-finish of Stage 2. I'm expecting at least one revision to happen before I move on. ... Snap, I'm having a hard time working up more thoughts for this post. Just follow the link if you need my notes. Mildly sick, I hate how frequently I seem to get affected. I'll take the time to rest.
Editor, Experienced Forum User, Published Author, Skilled player (1174)
Joined: 9/27/2008
Posts: 1085
Took a different route where I didn't land on the ladder platform just above. A different fall cycle prevented me from reaching the ledge in time. Refer to address 1E6C and my Y positions. I get three frames of zero Y speed, and I need four. EDIT: My fall began at frame 38942, any adjustments to it might help, if you can find a good one. I do have a start on Stage 2 now.
Editor, Experienced Forum User, Published Author, Skilled player (1174)
Joined: 9/27/2008
Posts: 1085
lapogne36 wrote:
-From frames 43800 to 44150, sometimes you dashed [..], sometimes you jump [...]. Is this a difference [...]?
Right side dashes go directly into falling pretty early when you stop, and so is a few frames faster to begin falling from that position. Left side dashes require more distance before you start falling, putting me in a bad position for turning around, and is slower than jumping. That's the model I have in my head. It may be worth checking each side, just in case.
lapogne36 wrote:
-Before the miniboss checkpoint, you should be able to be 1 pixel ahead if you jump directly instead of redashing [...]
Results. Every pixel is a help. Turns out one is enough to trigger the miniboss a frame earlier. The transition to the down segment after didn't cooperate, which took some experimentation to get right. Everything else went very smoothly, and we've cleared a frame rule. Okay, problem done. Onward to the next stage!
Editor, Experienced Forum User, Published Author, Skilled player (1174)
Joined: 9/27/2008
Posts: 1085
So I created a casual display script that creates a 40 pixel side bar and sticks info there. ThunderAxe31 countered with this image ( http://imgur.com/urtCJs5 ) and my response is that invincibility information is rather important. Maybe the damage-based invincibility isn't crucial, but people are going to wonder why I'm ignoring so much damage in Stage 7 (Extended Invincibility due to interrupting Laser Charge), and again for the rest of the run after getting bubble (Charge Swap Bubble Barrier), as there's no visual indicator by the game itself that I'm damage immune other than it looks like I'm cheating suddenly. I'm not sure how to rearrange the graphics, other than to use the vertical style for weapons like I did in the script, taking the graphics of the weapon HUD seen during game play. It's apparently 11 pixels wide, so there should be room for 4 at a time in the 80 pixels width. We probably don't need to show the basic weapon bar, and imply it is selected when other weapons aren't. Boss HP and miniboss HP might be useful to include. Player state not as useful. No idea about map even with 80 pixels width. Artists can have their fun trying to come up with a reasonable layout. I have no plans on further tweaking with my script using BizHawk functions. Oh, and I have an improved Stage 5.
Editor, Experienced Forum User, Published Author, Skilled player (1174)
Joined: 9/27/2008
Posts: 1085
I have troubles using BizHawk 2.0 for that reason. Basically garbage collection is failing on tables, and from that, a freeze happens. Once in a while, you instead get a strange error that might refer to line negative billion or something. Unfortunately, input.get() constructs a new table every time you need some user key, so you quickly hit the garbage collector. For the moment, some functions will crash BizHawk in short order, and only code that is completely table-free stands the best chance to avoid crashing BizHawk. An older version, something before 1.13 I think, doesn't have this problem.
Editor, Experienced Forum User, Published Author, Skilled player (1174)
Joined: 9/27/2008
Posts: 1085
Niamek wrote:
if hotkey[p] == true then
This is asking for a table entry in hotkey referenced by the variable p. If you do not have p = something in your code, then it is nil, and you're not getting the value you're expecting. More likely, you want hotkey.p, which is short-hand for hotkey["p"]. Though, I think BizHawk uses the capital letters, so hotkey.P or hotkey["P"] might be what you actually want. You want table entry "P", I believe. Basically, if you're using brackets, lua will think any letters you're putting inside them are variables, unless you put quotes around them. And if you haven't defined the variable, it's likely nil.
Editor, Experienced Forum User, Published Author, Skilled player (1174)
Joined: 9/27/2008
Posts: 1085
As an aside, I did submit a run where I have input which is enough to view the ending/credits, and also uploaded a secondary file in Userfiles to give closure after the credits run their course naturally. Like your run, the TAS I did would be stuck on some screen that just doesn't feel right to end on when stopping input to view credits. Perhaps my solution should be considered?
Editor, Experienced Forum User, Published Author, Skilled player (1174)
Joined: 9/27/2008
Posts: 1085
Went straight to work on Stage 5 after Stage 4. Bubble Barrier Charge Swap and Miniboss Skip would be the core of our savings. Note that it is apparently worth 2 frames to start this stage without completing Stages 2 or 3 first, due to the weapons getting in between flame and bubble. If that's worth a frame rule, then s5 after s4 might be the best route. Then again, I'm not positive on those 2 frames. I'm not fully satisfied with this run, though. Most of it was re-done, with most of one segment copied in from T4 and that's about it. There's still some analysis to make, particularly any parts where some teams had a very fast segment compared to this run, and whether we can preserve just one more hit of our barrier. I kept my Stage 3 and the partial I have on Stage 6 in this file. Got an extra lag on a pause in Stage 3, probably because of an extra weapon the game has to display. The game is sync-friendly in many ways, and I will be relying on that if I need to keep shuffling stages around in my routing, or when I feel like just TASing some stage out of order.
Editor, Experienced Forum User, Published Author, Skilled player (1174)
Joined: 9/27/2008
Posts: 1085
Stage 4 accepted the change in item drops. Actually saved a frame rule. A bit tiring going over stages I already optimized. At least the only thing I need to do is figure out items. I want to look at something else for a bit, I recall Stage 2 needed a 4-damage weapon that didn't last after hitting something during DTC6, and I want to leave 6 for later. I already optimized Stage 3, and don't want to manipulate items again, so I'm probably just going to poke at Stage 5 as a means of continuing progress. I suppose I am going to manipulate items all over again when I do move Stage 5 around, unless I get lucky and it happens to line up on the 32-frame rule.
Editor, Experienced Forum User, Published Author, Skilled player (1174)
Joined: 9/27/2008
Posts: 1085
Some of the stats are placed into RAM, conveniently enough. I put the relevant addresses into the comments at the bottom of the FZGPL script. When in the race itself, I spotted machine stats at EWRAM:17720 During the tweaking screen, IWRAM:2EA0 holds stats for each gear. Some testing of the numbers would still be desired. Rather than unlock, I actually cheated in MV. I've taken a look in GPL for an address to cheat as well, and once at the track preview in Grand Prix mode, IWRAM:110A looks to be the one. No idea what, precisely, will happen if you modify that directly, but the Machine Setting screen that follows will show the new machine based on what you changed IWRAM:110A to. You might want to adjust the array at IWRAM:1270 if freaky stuff happens in the race, as that appears to be what machines have been selected for the Grand Prix. Or maybe I'm over-complicating things. Cheating is faster than unlocking.
Editor, Experienced Forum User, Published Author, Skilled player (1174)
Joined: 9/27/2008
Posts: 1085
I am curious about goal choice. Specifically a detail in Story mode. I'm not familiar with the game. After reading a guide or two, apparently Rick Wheeler and Captain Falcon each have chapters that only unlock when you have less than 1 billion cash upon clearing Chapter 4 (and some that unlock when you have that much or more). The requirement seems particularly annoying, as it seems we get a rather significant cash bonus for clearing some missions quickly. By "rather significant", I mean we're walking away on my 16"87 attempt with 860 million. If "all missions" or some type of 100% goal is in mind, things that require a low cash amount is going to seriously annoy us. I'm curious if there's any sort of workarounds, or what the plan will be. I'm all for 100% run of this game.