Posts for MUGG

Editor, Experienced Forum User, Published Author, Expert player (2362)
Joined: 5/15/2007
Posts: 3980
Location: Germany
I'm going to need to understand scroll bug better, in order to attempt it in the later levels. After I discovered my visualisation luascript doesn't run correctly due to syntax errors that have somehow slipped into that post, I tried to fix the script but now it will output information that's different from before (when compared to the screenshot I had posted). When running the "seemingly fixed" script, I noticed the information output is different between v1.0 and v1.1 of the game. V1.0 (Every few frames of running right) V1.1 (Every few frames of running right) Not sure what to make of this. Unfortunately, I'm not very good at this. Help on this would be very appreciated. My goal is a luascript that will do one or more of these things: - Detect when the scroll bug has occured - Visualize with a red vertical line which row has been omitted - For non-bug frames with writes to $FFEA, should show information like how many cycles have passed in that frame and how many cycles it should have been to make the bug frame occur (if that makes sense) Here is the script with syntax errors "seemingly fixed". Here is a movie file with the scroll bug happening.
Editor, Experienced Forum User, Published Author, Expert player (2362)
Joined: 5/15/2007
Posts: 3980
Location: Germany
This looks very interesting. I especially like the explanation video which is very informative. You can tell a ton of effort went into the planning and creation. But I'm not sure if this should be considered a legitimate playthrough of Super Mario Bros. 3. Normally, the player deals with one game, played on a system with controller buttons and the power-on and reset buttons at his disposal. Now here, the player is additionally allowed to swap the game catridge at any time. I don't know. At this point, you might as well change the NES itself between cycles to change how it runs the game. The player being a god could naturally do that. Just open it up and change some connections and wiring, within 0.000001 seconds. I think at this point, things are getting absurd. But I love it.
Editor, Experienced Forum User, Published Author, Expert player (2362)
Joined: 5/15/2007
Posts: 3980
Location: Germany
Got an odd scroll bug while TASing. There was not a single lag frame during the level. The text is shifted to the left one row so it looks like it's related to the previously known scroll bug - which omits a vertical row during the level but here, the vertical row is omitted right at the end of the level. It's not looking to be a timesaver. I changed the level to make the scrollbug not happen and the bonus game would still start at the same framecount.
Editor, Experienced Forum User, Published Author, Expert player (2362)
Joined: 5/15/2007
Posts: 3980
Location: Germany
Thank you for including the results sequence. One more note, the publication text should probably explain that Maniac Mode is Japanese-exclusive. Unfamiliar people might get confused.
Editor, Experienced Forum User, Published Author, Expert player (2362)
Joined: 5/15/2007
Posts: 3980
Location: Germany
Submission Text wrote:
Note: The last input is at the frame 452729. If you add an extra A input at the frame ~522300 which is at the end of the credits, you get the battle results.
If possible it would be great to include the results sequence in the TASvideos encode to show how many kills each character got and how fast you completed each mission. Also the song is so good, it always gives me goosebumps.
Editor, Experienced Forum User, Published Author, Expert player (2362)
Joined: 5/15/2007
Posts: 3980
Location: Germany
I fondly remember this game, although it's been a while. It's the only FE game I played. The run looks to be tightly optimized and well planned. This being maniac difficulty and the execution of some of the strats looks very impressive. I actually watched the entire run from beginning to end, which is not something I do very often nowadays. Well done!
Editor, Experienced Forum User, Published Author, Expert player (2362)
Joined: 5/15/2007
Posts: 3980
Location: Germany
The RTA community simply runs until the first congratulations screen and calls that "Beat the game". https://www.speedrun.com/penguin_wars?h=Beat_the_Game&x=zdnr13x2 I made a run that uses the level select code and reaches the credits. The time is 4:23.66. https://tasvideos.org/UserFiles/Info/638769496191691263 Since it's not a legit category I will not try to improve it or submit it. Some notes: RNG for the first match changes depending how long you wait on the character select screen. The speed at which the balls drop down on you when a match starts can also be manipulated this way on the character select screen. But after that there are no easy ways to manipulate anything. When the opponent tries to push all the balls then I often opted for that to be the match I'm losing whereas when the opponent tries to hold onto the ball and charge, I would try to hit him first and make that a winning match. There doesn't seem to be the one correct way to win matches since every match is slightly different with the speeds at which the balls drop on you and the opponent's behavior which cannot really be manipulated. The opponent's behavior can be slightly affected depending on your positioning and if you are charging your ball, but that's all I found you can do to manipulate luck. I see two possible legit categories for TAS. 1) Play all 40 levels, reach the credits 2) Play the first 4 levels, reach the first congratulations screen (same as RTA community)
Editor, Experienced Forum User, Published Author, Expert player (2362)
Joined: 5/15/2007
Posts: 3980
Location: Germany
The level select cheat allows you to select a level in steps of 4 with 37 being the maximum. I tested it and beating level 37, 38, 39 and 40 will trigger the ending sequence. After an adversary or a bonus stage is beaten you can hold the A button to end the score tallying. If you do two perfect games (10 balls on the enemy side) without losing, you will get a bonus stage. To fastest way to skip it is to lose 1 match on purpose for each opponent. The bonus stage will even appear after level 40. My suggestion for a TAS is to start from level 37 and beat every opponent twice while losing once. This should result in a 3~4 minutes TAS. EDIT: It looks like using a level select is against the rules. So it cannot be submitted unless someone will run all 40 levels (~45 minutes), which I will not be doing.
Editor, Experienced Forum User, Published Author, Expert player (2362)
Joined: 5/15/2007
Posts: 3980
Location: Germany
Known as "King of the Zoo" in Europe. Most sources state that this game continues indefinitely but there is actually an ending sequence that unlocks after winning 40 matches which only very few people know about. Here is a playthrough that unlocks the ending: https://www.youtube.com/watch?v=GE_mdeb8g7I There is also a level cheat but I'm not sure if it allows you to reach the ending quicker. I'm making this post just so this information doesn't get lost.
Editor, Experienced Forum User, Published Author, Expert player (2362)
Joined: 5/15/2007
Posts: 3980
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 (2362)
Joined: 5/15/2007
Posts: 3980
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 (2362)
Joined: 5/15/2007
Posts: 3980
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 (2362)
Joined: 5/15/2007
Posts: 3980
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 (2362)
Joined: 5/15/2007
Posts: 3980
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 (2362)
Joined: 5/15/2007
Posts: 3980
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 (2362)
Joined: 5/15/2007
Posts: 3980
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 (2362)
Joined: 5/15/2007
Posts: 3980
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 (2362)
Joined: 5/15/2007
Posts: 3980
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 (2362)
Joined: 5/15/2007
Posts: 3980
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 (2362)
Joined: 5/15/2007
Posts: 3980
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 (2362)
Joined: 5/15/2007
Posts: 3980
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 (2362)
Joined: 5/15/2007
Posts: 3980
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 (2362)
Joined: 5/15/2007
Posts: 3980
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 (2362)
Joined: 5/15/2007
Posts: 3980
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 (2362)
Joined: 5/15/2007
Posts: 3980
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.