Posts for MUGG

Editor, Experienced Forum User, Published Author, Expert player (2344)
Joined: 5/15/2007
Posts: 3946
Location: Germany
I started a run, completed 14 out of the 38 mandatory races with the framecount at ~46900 (13 min 05 s). Looks like the run will be around 35 minutes... (oof)
Editor, Experienced Forum User, Published Author, Expert player (2344)
Joined: 5/15/2007
Posts: 3946
Location: Germany
I found that the RNG address ($0379 WRAM) in Dirty Racing (Game Boy) will be set to a different initial value when starting in GB mode, in GBC mode or in GBA mode. The RNG value that can be achieved when starting in GBA mode will give the most favorable outcome. Is it ok to TAS this Game Boy game in GBA mode?
Editor, Experienced Forum User, Published Author, Expert player (2344)
Joined: 5/15/2007
Posts: 3946
Location: Germany
Watch file https://tasvideos.org/UserFiles/Info/638734939047791423 RNG Manip What I know: - RNG can be manipulated mid-race by turning sharp or by spinning in an oil puddle. - The initial RNG values (when starting up the game) will be different between GB mode, GBC mode and GBA mode, with GBA mode having the powerup wall closest to the beginning. Other than that, there is no way to manipulate the powerup positioning prior to entering the first race. When obtaining SUPERSONIC in the first race, you cannot manipulate the positioning of the powerup wall in the next race: Turning sharp doesn't make wheel sounds when you are in SUPERSONIC mode so it doesn't roll the RNG. Spinning in an oil puddle somehow will only roll the RNG in such a way that it won't change positioning of money and the powerup wall in the next race whatsoever. Name Entry Bug At the beginning of the game, when entering your name, if your name is empty or consists only of spaces, the name will be set to "PLAYER ONE". However, if you select ED or ← and press Up + A, it seems the game will set the first character as a special kind of space. If you then select SP and move the selection to the right onto ED and confirm, you will be playing with an empty name. If you complete a race, it will first show a correct screen but the next screen after that will look incorrect, with the points being XX. It seems it's only a bug related to how information is presented. You will still get a gameover if you don't have the most points.
Editor, Experienced Forum User, Published Author, Expert player (2344)
Joined: 5/15/2007
Posts: 3946
Location: Germany
In this top down racing game you compete against 3 CPU cars. You start out in the first town, Steel City (on the Japanese version), where you have to win a race, then you can move to another city on the world map and have to win a number of races there to advance again. 🎵 GameFAQs guide Longplay While racing, there is a certain number of cash pickups (randomized positions), each giving you 5 cash. A vertical wall somewhere on the race track will be blinking, giving you a powerup when touching it:
  • REPAIR (Sets damage to 0)
  • FIRE!
  • POCKET MONEY
  • 2 POINT UP
  • ENEMY STOP (Enemies won't move for about 7 seconds)
  • WARP! (Switch position with another player randomly)
  • NITRO (Refills nitros to maximum)
  • SUPERSONIC !! (Will give you permanent high speed and you are allowed to move through enemy cars without collision)
The wall that will be blinking will have a randomized set of possible positionings. After picking up SUPERSONIC, it seems there will be no more blinking walls after that. The best strategy for TAS is to manipulate the powerup wall as early as possible in the track, then manipulate for SUPERSONIC to end the race as early as possible. After each race:
  • Points will be added to your total for the races in that city, determining if you win or lose after all races are over. 1st player gets 6 points, 2nd player gets 4, 3rd player gets 2, 4th player gets 1
  • You lose 1 grip, if you didn't upgrade grip previous race
  • Spare nitros change to cash (1 nitro = 1 cash)
  • You can buy enhancements in the shop Extra Accel: 50 cash Engine tune: 100 cash Tires: 30 cash Larger nitro: 100 cash (10 more max nitro) Damage repair: Reduces damage to 0, each damage point subtracts 1 cash
Cash should be invested in tires (allows for faster turning?) and in engine (max speed increase?). Extra accel. and repair aren't needed in TAS. The powerup you can get when touching a powerup wall can be somewhat manipulated by different movement. Perhaps it's related to different sounds getting produced. After winning in the cities with a cup icon, a street to a grand prix event is unlocked at the top of the world map. When finishing the game at the hardest difficulty there will be a cutscene. The other difficulty levels will tell you to try a higher difficulty. You start out with
EasyHardExpert
Money000
Damage000
Max Nitro604020
Grip322
Accel.653
Max Veloc.130130130
Grip Turning speed will be the same on all four possible values (0, 1, 2 and 3). However, when turning, you will be somewhat sliding across the floor on lower values. Editing the WRAM address for grip ($00C5) mid-race will not change how grip behaves in that race. Grip is reduced by 1 after a race if you didn't upgrade grip after the previous race. Best worldmap route You only have to complete the towns that have a cup icon. Since Blood Lake only has 1 race and N.Hearn City has 3 races, it is best to go this route: STEEL CITY → JOKER'S TOWN → STEEL CITY → BLOOD LAKE → BAYTON VILLAGE → MAGNUM LAKE → S.HEARN CITY → MAGNUM LAKE → MATLOCK TOWN → E.ASSIZ CITY → TAILSLIDE MOOR → W.ASSIZ CITY → KARTON VALLEY → PARADISE CITY
Editor, Experienced Forum User, Published Author, Expert player (2344)
Joined: 5/15/2007
Posts: 3946
Location: Germany
Insane movie. The special controller allowing any paddle position is... convenient. I've never heard of this controller before.
Editor, Experienced Forum User, Published Author, Expert player (2344)
Joined: 5/15/2007
Posts: 3946
Location: Germany
Very nice, I didn't expect a new TAS of this game. I like the text commentary.
Editor, Experienced Forum User, Published Author, Expert player (2344)
Joined: 5/15/2007
Posts: 3946
Location: Germany
Looks like it is fixed in the Release candidate. Sorry for not trying that before.
Editor, Experienced Forum User, Published Author, Expert player (2344)
Joined: 5/15/2007
Posts: 3946
Location: Germany
On Bizhawk 2.9.1, when recording AVI with "Capture OSD" and "Capture Lua" enabled, gui elements that are half transparent will not show up as such on the extra padding space area in the video. The issue happened both with "Xvid MPEG-4 Codec" and uncompressed. The issue can be seen in this video (Look at the orange and pink boxes). Link to video
Editor, Experienced Forum User, Published Author, Expert player (2344)
Joined: 5/15/2007
Posts: 3946
Location: Germany
Potato wrote:
Can you send the input file please? Or at least a recording? I remember I tried for like 3 hours to make the goomba active earlier and I couldn't do it. Maybe now with your hitboxes function built inside of the Lua script it might be easier to figure out (btw thanks a lot for that, that will make manipulating RNG easier in the future).
I hadn't really looked at the whole room but I still figured out a solution. Here is the input file and video: https://tasvideos.org/UserFiles/Info/638695116215262432 Link to video
Editor, Experienced Forum User, Published Author, Expert player (2344)
Joined: 5/15/2007
Posts: 3946
Location: Germany
It was suggested here that this game should be looked at for the possibility of save corruption. How do savegames and checksums work in this game? (This will also be posted to Mario & Luigi Partners in Time.)
Editor, Experienced Forum User, Published Author, Expert player (2344)
Joined: 5/15/2007
Posts: 3946
Location: Germany
It was suggested here that this game should be looked at for the possibility of save corruption. How do savegames and checksums work in this game? (This will also be posted to Mario & Luigi Bowser's Inside Story.)
Editor, Experienced Forum User, Published Author, Expert player (2344)
Joined: 5/15/2007
Posts: 3946
Location: Germany
Submission text wrote:
Emulator Inaccuracy I have already reported this issue to Endrift and the mGBA staff, however I didn’t want to delay the release of this TAS both because I wanted to stay motivated and because it would have probably taken months for the next update to be released as the last one was released just over a month ago. During the Peach escort quest, Peach can get captured by the spiked Goomba enemies that are present inside of Teehee Valley. There are 2 ways in which she can get captured. The first way is if the spiked Goomba is loaded too early, it will target the Princess and capture her. To rescue her after she gets captured, you must go down the pipe that’s present in each of the 4 rooms and go through a small hallway, which is very slow. Once she is rescued, she will go back to the beginning of the room and the spiked Goomba that captured her will no longer spawn in that room. There is an alternative way in which she can get captured though and this is where this inaccuracy lies in. If you go too far away from her, she will go off-screen and get unloaded, which will cause her to immediately get captured, even if there are no enemies near her. This becomes a big problem in the third room of Teehee Valley. The RTA strategy for this room involves walking up to the end of the first step of the staircase and waiting there for about 5 seconds, which sets up the camera perfectly to barely not have Peach get captured by a Goomba and also to not have her unload. The problem is that on emulator, this strategy does not work, as she gets unloaded as soon as she is off-screen (9 frames after she becomes completely invisible), whereas on original hardware she gets unloaded about 2 seconds after she is no longer on-screen. After spending over 6 hours trying to come up with a different method to not load the Goomba too early but also not unload Peach, I couldn’t find any results, so unfortunately the only path forward was to get her captured on purpose and lose over 15 seconds compared to RTA. This was one of the most disappointing timelosses, but it was entirely out of my control.
I vaguely remember this was reported back in the early days of M&L TASing. I assumed if there was any emulation inaccuracy related to the Peach escorting, it must have been fixed by now. So since you have brought this up, I wanted to investigate this thoroughly. And here is what I found: EWRAM address $4815 will tell how many frames Peach has been offscreen and this value is checked every 3rd frame or so. (The address will usually increment up to 3 and then reset back to 0.) When entering the first room, Peach is not allowed any offscreen time so she is captured as soon as she is offscreen, which is expected to happen during Toadworth's intervention in normal gameplay. After that, Peach is allowed to be offscreen up to 3 seconds (180 frames, 0xB4 in hex) - assuming she doesn't touch any active enemy. When Peach comes back onscreen, the timer is reset to 0 and she can go offscreen up to 3 seconds again. Since TAS skips the capture in the first room, the check for Peach being offscreen doesn't change. So she cannot go offscreen at all from that point onwards. However, despite the above I managed to skip the goomba in the 3rd room during testing, by having the goomba become active and start walking as soon as possible and then going back to Peach and blocking her from walking upwards in a specific way. It should be possible to save a few seconds with this knowledge. It looks like there wasn't an inaccuracy.
Editor, Experienced Forum User, Published Author, Expert player (2344)
Joined: 5/15/2007
Posts: 3946
Location: Germany
feos wrote:
BizHawk release candidate 2 for 2.10 is out!
I was able to open Bizhawk this time. These bugs are not fixed yet but it's not a big deal.
Editor, Experienced Forum User, Published Author, Expert player (2344)
Joined: 5/15/2007
Posts: 3946
Location: Germany
I was not able to improve 1A, so the best time is still 53.92. Additionally to using the "no nitro sounds", I tried adding pauses to the first boost as well as the last boost. Although I tried many different timings and durations - thinking the pause sound itself has an impact - it never actually seems to change anything. On the underground boost, the best RTA time 54.06 does some pauses there but I think it doesn't actually have any impact. 54.04 is the best time RTA could achieve without any pausing and without "no nitro sounds". I will do a few more tests, but I guess pausing can be ignored as it doesn't seem to be a time-saver. If that's the case, I would be happy about this because it makes running this game slightly easier. Bk2 of 1A 53.92 https://tasvideos.org/UserFiles/Info/638672762461221250 Used JP ROM on Bizhawk 2.9.1.
Editor, Experienced Forum User, Published Author, Expert player (2344)
Joined: 5/15/2007
Posts: 3946
Location: Germany
GJTASer2018 wrote:
Patashu wrote:
It's too bad this can't be console verified because the route/tricks used are very funny.
Not consistently verified, anyway - a verification could still happen by pure (unmanipulateable) chance. The only foolproof way to test whether the save corruption works on a real console is to use a brand new, unopened GBA cart - which means you run into the same problem as Space Station Silicon Valley's mandatory first boot cutscene (in other words, no one is going to risk ruining their "mint condition" cart to test something that's not likely to work anyway).
Instead of just running the input file to verify it, I would be more interested what are actually the values in the SRAM battery when shipped by Nintendo (mint condition). Are they really random, or 0x00, or 0xFF...? Maybe it is possible to check it somehow. The save corruption method itselfs should work. I can probably make a test verification movie file that doesn't require the SRAM's initial state to be 0xFF. But it will require hard-resets, not sure how the verification process can do that.
Editor, Experienced Forum User, Published Author, Expert player (2344)
Joined: 5/15/2007
Posts: 3946
Location: Germany
This was already known:
$c10d - speed
$c38a - speed - this seems to be related to the amount of pixels to advance the screen by per frame

This is new:
$c7a3 - speed (actual speed address, mirrored at $c7a0 and possibly other places. $c10d and $c38a depend on this. Will be temporarily set to 0 when a lag frame occurs.)
$c7a4 - nitro boost duration (Will be temporarily set to 0 when a lag frame occurs, and I think it also gets set to 0 if leaving a ramp.)
I would like to investigate the "speed skips" (mentioned in a previous post) once more. I was thinking maybe those speed skips happen even before the speed value actually starts decreasing. Some years passed and now "best ingame time at all costs" seems more logical for a goal choice than "no-nitro-sound spamming allowed but no pausing". Also I think all levels should be played (all eight races in all three difficulty settings). Although this is just a first thought. I have not done any actual new work yet and I'm not sure I will do it, since it's very tedious to optimize this game. I still have the old bk2s and luascript with the unfinished staff ghost utility.
Editor, Experienced Forum User, Published Author, Expert player (2344)
Joined: 5/15/2007
Posts: 3946
Location: Germany
@Potato I took your 35f improvement and managed to save 16 more frames. Bk2 4f in Cruiser room 4 (small optimizations). 12f in Stardust Mushroom side (used a teleport instead of running). Maybe it is possible to use two teleports in that room? But like I said, I'm not quite good using this bug. I tried the spike room again but couldn't manage to save time. Tried to apply spike ledge boosts and set up the follow path further down so we could maybe reach the loading zone with Mario without having to jump or having to switch. Other than that, I'm not sure if it is possible to have Luigi get teleported into a wall, too - he always is already in falling state after the teleport, otherwise it might be possible to switch inside the wall and then just walk down out of the wall, instead of jumping. But I was not able to do it. Unfortunately, this Bk2 desyncs again, this time in the first room of the mountain. Maybe you can adjust it again? I guess that first enemy actor ruins the set up... Not sure how it could be fixed. Perhaps some of the 16 frames time save has to be neglected/delayed to keep the RNG the same as before. Although there might be more frames to squeeze, I think the run has reached a satisfactory level of quality now so I think we should submit it soon. I don't think getting 1024 speed is possible in Stardust Mushroom side, unless perhaps if you do it diagonally off a corner (like in Cruiser 4). Getting 1024 is very precise; it seems you can only get it in very specific spots.
Editor, Experienced Forum User, Published Author, Expert player (2344)
Joined: 5/15/2007
Posts: 3946
Location: Germany
Wow, first time I see this. My mind is blown at the fact you can skip the barrier with a jab, lol I don't really understand it. Going through "1 pixel" means the game only uses a point as a collision for Link. I always assumed the game used multiple points or a diamond shape or something. This is something that I quickly dismissed back in the early days of testing. The second thing is with there being 1 pixel in the first place. It doesn't make sense that it exists. One would think that the environmental collision planes should align perfectly into each other, with the ledges working the same as the inner part. But this discovery suggests that the ledges work as "empty lines". Weird. The Tingle Tuner thing is funny. Disconnecting and Reconnecting the device is something that should sound like an obvious thing to test for glitch hunters, but I guess nobody has thought of it. It's funny that a random player pointed it out in a random post. To me it is a legitimate thing to do next to inputs and hard resets.
Editor, Experienced Forum User, Published Author, Expert player (2344)
Joined: 5/15/2007
Posts: 3946
Location: Germany
@Potato I looked at your 131f improvement and found more improvements. Bk2 Koopa Cruiser room 4 (25f faster) Stardust Fields spike room (16f faster) After the spike room, I had to switch the brothers back, done after the cave towards Hoohoo Mountain Village (1f lost) The NPC girl in Hoohoo Mountain Village isn't in a bad spot anymore (2f faster) The movie desyncs in the mountain sections because of the enemy actor. It might be possible to squeeze a few more frames in Koopa Cruiser room 4 and Stardust Fields spike room (especially the latter). Maybe you can squeeze more frames in the spike room, Potato? I suggest to do this before anything else, since enemy actors in the mountain rooms could change again if we save more frames.
Editor, Experienced Forum User, Published Author, Expert player (2344)
Joined: 5/15/2007
Posts: 3946
Location: Germany
@Potato I managed to improve by 58 frames. Bk2 here 10f from the jump before the Koopa Cruiser cutscene. 3f from Koopa Cruiser 4th room. 45f by successfully using Firedash speed glitch in the Stardust Fields room with the spikes. I did not find a 1 frame improvement in the first Stardust Fields room which you mentioned. The subsequent NPC boosts in Hoohoo Mountain Village needed to be changed but there was neither a time gain nor a loss. I vaguely remember that I was able to teleport right into the exit in the Stardust Fields spike room but it required a few brother swaps or something... Unfortunately I didn't save the input for that. It might not be worth looking into it since the new improvement I came up with is pretty decent. Lastly, a few words on Firedash speed glitch. As explained in a previous post, it works if Luigi in front gets pushed by an adjacent ledge while falling off but it is precise. You can usually gain the ability to run around at 768 speed. In order to obtain 1024 speed, I think you have to do it on a ledge that is two units high (requiring high jump to get on it) or on a 1 unit tall ledge that looks like the one in the Stardust Fields spike room (adjacent ledge has a width of 1 tile). I have not been able to get 1024 speed in other scenarios. I would be happy if you continue looking for improvements when you have time and feel like it.
Editor, Experienced Forum User, Published Author, Expert player (2344)
Joined: 5/15/2007
Posts: 3946
Location: Germany
I noticed another minor bug with TAStudio where input of the last frame isn't displayed on the emulator screen. The three A presses before the last one are displayed by "View→Display Input" on the emulator screen, but the last one is not even though it is executed.
Editor, Experienced Forum User, Published Author, Expert player (2344)
Joined: 5/15/2007
Posts: 3946
Location: Germany
Hello Potato, thank you for the help. I'm not very good with the teleportation glitch. About understanding save corruption better: I have updated my MLSS luascript so it will work on Bizhawk 2.9.1. See here. When using that script, open the "Savegames" display. It will show two values in the bottom right corner, which is the current checksum and the required checksum. If both match, then the savegame is valid. You can also look at the SRAM memory domain while saving, copying or deletion takes place to better understand what's going on. For NPC boosting in Toad Town and Koopa Cruiser, I tried delaying 1 or 2 frames on the file select screen which yielded different RNG seeds but the NPCs still didn't cooperate. Since you came up with improvements in cruiser, maybe it is worth trying this again. If you send me the bk2 or tasproj file, I can try it. I did try to improve the run myself, came up with 3 frames improvement in the fourth room of Cruiser. I think because I took a more sharp turn towards the crates at the top of the room and by a better NPC boost after the crates. Tried firedash speed glitch but did not manage to save time with it. In Stardust Fields at the first room with spikes to jump across, is where I stopped because I tried firedash glitch with teleportation but couldn't make it work. Let me know if you have any questions.
Editor, Experienced Forum User, Published Author, Expert player (2344)
Joined: 5/15/2007
Posts: 3946
Location: Germany
I don't really understand how it makes a difference of more than a second. Shouldn't this have lead to a desync? I always assumed the Game Boy runs at 59.727(...) FPS. 31150 / 59,727 = 521.539672175 (8 minutes, 41 seconds, 539 milliseconds) Is there somewhere I can read about this topic?
Editor, Experienced Forum User, Published Author, Expert player (2344)
Joined: 5/15/2007
Posts: 3946
Location: Germany
Why did the time change to 08:40.33?
Editor, Experienced Forum User, Published Author, Expert player (2344)
Joined: 5/15/2007
Posts: 3946
Location: Germany
I tried figuring out the % calculation.
wikirby.com wrote:
Enter every room in the game besides Rainbow Route - Central Circle and the tutorial rooms0.136% per room (272 in total) Total: 37%
Open Treasure Chests and pull levers0.45% per chest/lever (80 chests in total, 4 levers in total) Total: 37%
Push every Big Switch1% per switch (15 in total) Total: 15%
Collect all the shards for the Dimension Mirror1% per shard (8 in total) Total: 8%
Defeat Dark Mind, and watch the staff credits in full3%
However, when setting flags for 2 chests and 16 rooms, it should be 3%.
2 * 0.45 + 16 * 0.136 = 3.076
But the game shows 2%. I'm under the impression that there are different amounts of % added even for the same type of flag.