Joined: 11/13/2006
Posts: 2821
Location: Northern California
I didn't see a thread for this game even though it was bandied about in the SNES Wishlist thread. Sorry if there is one already and I missed it.
Majuu Ou is a game that didn't get a stateside release, which is a shame because it's actually pretty awesome. This Let's Play is a good way to get familiar with the game, and there's also a tool-assisted longplay of sorts. Both are of the fan-translated version.
I took a quick shot at part of the first stage using the unaltered (J) ROM:
Link to videoUser movie #15451020196920296
It's just a test run with some small improvements to be made here and there.
Notes:
*It's probably barely noticeable but still worth mentioning: That is the fastest the main menu can be done. You can't press select to change over to the Options menu until the menu is fully "loaded", but once you press select you can press start on the next frame and it'll load the Options. It's a little weird that way.
*You want to be to the right of Bayer for that first cutscene. He charges into you and moves back to the left, then attempts to charge back into you, ending up on the right side of the screen. When you deplete his health, he always flies off upward and to the right, and as soon as he's offscreen you're allowed to move.
*Abel can fire a bullet every 5 frames, though lag sometimes gets in the way and it sometimes ends up being every 6 or 7 frames. I actually thought he could fire at 30hz since he does a lot of damage really quickly using rapid-fire, but I was mistaken. That being said, the Bayer battle can definitely be improved with more precise firing. Plus, defeating him earlier would get him offscreen earlier since in the movie he moves back to the left a bit before I take him down. Double improvement.
*Bullets don't hit instantly, they travel semi-realistically. I suppose that should be a given, but it doesn't look obvious given that bullets aren't seen until they hit an enemy.
*That roll after the battle puts Abel in the exact position he needs to be in. Any further to the right and he'd slowly strut backward to that position. Any further to the left and I'd have to slowly strut forward to that position.
*At the end of that first tunnel, when I drop down into the underground area, the screen always fades out at the same time. Falling in immediately isn't faster and not falling in immediately isn't slower. On a side note, that jump was actually the result of a desync, but I left it in because it doesn't waste any time.
*The water in the underground area actually pushes you back slightly, so it may be faster to go along the platforms even if it means stopping to shoot enemies. The zombies take two shots, or one shot and one hit from your wife-fairy. Wife-fairy comes in handy a lot since you can use her to attack while you're rolling, taking out enemies in your way and letting you roll more. It's a bit dicey though and doesn't always work.
*I'm sure the mini-boss spider thing can be done faster, I was just happy to get it killed in two cycles. The problem is its movement doesn't exactly mesh well with attacking it quickly, and getting too close means you get caught in its grasp, wasting a lot of time. The first descent is always the same, meaning I can get that charge attack out and keep firing, but the second descent homes into you, so I roll away as early as I can to not get caught. The first cycle in the fight is done with optimal shots while the second is just done with rapid-fire because, hey, I'm not submitting this.
*Rolling left gives an example of why wife-fairy is a bit dicey: As soon as she hits an enemy, whether or not it's alive, she retreats back to her normal position and has some cooldown. There's also a bit of a weird issue where sometimes you send her out and she barely goes out before coming back almost immediately.
*That terrifying giant miniboss at the end (where input stops after the first hit) can't be damaged while it's firing rocks, only when it lunges at you.
TASvideos Admin and acting Senior Judge 💙 Currently unable to dedicate a lot of time to the site, taking care of family.
Now infrequently posting on Bluesky
I thought this game would be good TAS material when I saw the Let's Play, and so far it's looking pretty promising. Keep it up! I didn't see any obvious inefficiencies.
Pyrel - an open-source rewrite of the Angband roguelike game in Python.
Joined: 11/13/2006
Posts: 2821
Location: Northern California
Most likely. I've already got sort of a route in mind for the true ending so I'll probably be testing that first.
TASvideos Admin and acting Senior Judge 💙 Currently unable to dedicate a lot of time to the site, taking care of family.
Now infrequently posting on Bluesky
Just as a heads-up, I have a mostly working hitbox viewer set up for this game. I'm still chasing down a few things, but I'll release it after I've reduced the number of false positives and checked on a few inconsistencies.
EDIT: Script available at http://pastebin.com/YpRe4iER . It's not very pretty and still has a few bugs, but for the most part it's good. Most of the commented blocks are for debugging purposes and I'm too lazy to remove them. Created on/for BizHawk, but it should be pretty simple to convert.
Notes:
-Some enemies have scripted attacks that produce a disjointed hitbox. These hitboxes are generated by hardcoded values in each enemy's subroutines; I'm not going to dig through to find all of the offsets. It should be fairly obvious where these hitboxes are though.
-There are still some anomalies for some of your attacks. For example, the trailing effects on many of the charge attacks don't actually do damage. I could not find a way to differentiate them however. I removed the few consistent ones that don't do damage based on ID.
-Enemies occasionally have the wrong HP, in particular the slimes. I don't know why this is, but it's uncommon enough that I'm not going to investigate for the time being.
-Hitboxes for stage hazards (spikes, lava, etc) are currently not tracked.
-The Giant Worm miniboss takes 1 point of damage from any attack and can only be damaged once per cycle. The HP is stored in an unusual place, but he has 5 HP total. I can dig up that address from my notes if it helps.
If you notice anything else please let me know.
EDIT2: Unrelated to the above, but I noticed that you can "time over" down to 0 HP before a screen transition and you'll appear on the next screen with 0 HP but still alive. May be useful somehow, but just an oddity for now. By "screen transition" I specifically have done this on the spider miniboss. Just kill him with only a few seconds left and you'll transition before the time over animation plays all the way out.
I did some very rudimentary testing on Stage 2 to get a feel of time advantages for each of the forms. As expected, Dragon/Blue is easily the fastest even after accounting for the time spent waiting for the gem. Green is the slowest overall, but is not all that different from Red. Green has some advantages in dealing out damage to bosses, but the delay on his dodge just kills any movement sections. I imagine this holds true for most of the other stages as well.
For now I'm thinking Blue x4 is the fastest strategy for bad ending, just because dragon movement is too good. For Good ending, I think the order is such:
Green -> Red -> Blue -> Silver
This puts Green in good position for the shortest overall section (Stage 2) where his attacks get the most leverage. Red can deal fine with getting through Stages 3 and 4 since 4 is almost entirely on autoscroller. Stage 5 is stupidly long, but Blue should be able to move and deal with bosses well enough. Still lots of room for testing, but we'll see what happens.
Joined: 11/13/2006
Posts: 2821
Location: Northern California
Yeah, I'm pretty sure that's the true ending form route I was thinking of, or at least it's very close to it. I may have had Blue and Red switched though, I can't remember. Also, excellent work on the hitbox script! I'll have to test it out soon. Sadly I've turned into one of those people who start way too many projects and can't decide which one to work on, so it may be a while before I get back around to working on the game. I ended up having a lot of desync troubles back when I was working in an older version of BizHawk which made me lose motivation pretty quickly, though hopefully that won't be the case the next time I try.
TASvideos Admin and acting Senior Judge 💙 Currently unable to dedicate a lot of time to the site, taking care of family.
Now infrequently posting on Bluesky
I spent a little time playing with clipping into walls and such, particularly in Stage 5 at the key door. Dragon can fit in to the spot between the door and the ledge, but I wasn't able to do anything with it. For Green though, holding away from the wall and doing his teleport gradually moves you left until you go too far in and it zips you to the right. Still no way to bypass the door though.
EDIT: Most likely won't have to worry about it, but it would be good to avoid this:
Link to video
I made a few TASes aimed at real-time that are by no means optimized towards a full TAS, but probably worth showing off. I did find out several very important things through the playthrough, such as the Eyeball boss picking his pattern in phase 2 based on whether his HP is odd or even. This makes him much more manipulable.
Any%:
Link to video
True End:
Link to video
I have the movie files available too, if desired.
Interesting, I would definitely like to see an optimized version of this game. It's actually in my list, but down the line. If no one works on it after I finish my other projects (Hachiemon, then maybe improving Rex) then I'll probably jump on it. Either way, it's a pretty cool game that deserves runs.
Joined: 11/13/2006
Posts: 2821
Location: Northern California
https://youtu.be/nlhkltotywY
Hey, look what I'm returning to. Second pass at the first area, though I'm going to give it a third pass before I call it final.
EDIT: Unembedding videos as I post new ones.
TASvideos Admin and acting Senior Judge 💙 Currently unable to dedicate a lot of time to the site, taking care of family.
Now infrequently posting on Bluesky
Looks pretty good to me! How does the charge shot compare with rapidfire shooting, when charge time isn't an issue? I noticed you used a charge shot on the spider the first time it swooped down, but not the second time.
Pyrel - an open-source rewrite of the Angband roguelike game in Python.
Joined: 11/13/2006
Posts: 2821
Location: Northern California
The first time it swoops down is actually fixed at the far right, allowing me to use the charge shot early and switch immediately to rapid firing. The second time it swoops down it's actually following me much more closely. I roll at that specific time so I can turn around and start rapid firing right afterward without it grabbing me.
I'll see what else I can do with that battle, as it's probably the weakest part of the WIP in terms of strategy. At the very least, I'd like to get it to a point where I don't have to jump on the second cycle to finish it off. The area boss also needs some work: It's a quick fight but I think I can do it quicker still.
TASvideos Admin and acting Senior Judge 💙 Currently unable to dedicate a lot of time to the site, taking care of family.
Now infrequently posting on Bluesky
A note on the patterns for the worm miniboss (and possibly a few other bosses/minibosses), his cycles are based on a global timer. So you could reasonably swag around for a small bit of time and still wind up with an equivalent time, so long as you get there right as he goes into his vulnerability phase.
EDIT: You will undoubtedly need to manipulate RNG for some of the later bosses/minibosses. I have the address for this (although not at the moment), but the main way to advance the RNG is causing enemy explosions. In some areas it will advance pretty aggressively on its own, but for things like the Centipede you'll want to manipulate an optimal pattern by taking out select enemies on the way.
Joined: 11/13/2006
Posts: 2821
Location: Northern California
I found this out while TASing it, and going straight in produces the fastest pattern for me. No instant vulnerability for quite a ways away, and the first one I found was actually just a frame slower than that pattern.
https://www.youtube.com/watch?v=_LpCQAt4QFA
Centipede's a bit more of a pain in the ass. This is the best result I could get out of a number of attempts so far. The hit was intentional to manipulate it into the long spin pattern, and even then I have yet to test other patterns to see if they're better for a TAS.
Green's normal shot, if timed and placed precisely, can actually do up to 5 damage per shot, compared to the charge shot's 12 damage max. The other two bosses in the level are much less mobile, so it should be a lot quicker to use nothing but normal shots against them both, but I'll have to test this extensively once I get there. In terms of the boss fights, I'm sure all of them except Bayer can be improved significantly, so I'm actually going to scrap everything from the spider onward and redo it with better fights. Apologies for the second embedded video, but here was my progress on Stage 2 before I redid the centipede. The above centipede fight is probably a total of 70-80 frames faster than this one:
https://www.youtube.com/watch?v=f-tvfcFBSTk
EDIT: Unembedding videos as I post new ones.
TASvideos Admin and acting Senior Judge 💙 Currently unable to dedicate a lot of time to the site, taking care of family.
Now infrequently posting on Bluesky
I assume you are doing the True Ending route if you are using Green in Stage 2? If so, Green is definitely the best choice for Stage 2 just because the terrain makes it troublesome for movement of the other forms (although Blue is still fastest overall). As you've seen, his attacks are well-suited to the bosses and minibosses as well.
With Green out of the way early, it's harder to say which of the two forms is best for the remaining stages. I tend to like Red for 3 & 4 since 4 is almost entirely autoscrollers, but for stage 5 it's a toss-up what works best in a TAS setting. It depends on how much time is actually spent using Blue's dive over the rocks saves vs what the faster overall movement would save during Stage 3.
In any case, it's looking really impressive so far! Keep it up!
Joined: 11/13/2006
Posts: 2821
Location: Northern California
Yep, going for True Ending.
I tried going back and improving the spider miniboss, and I managed to improve it by over half a second, but it ends up not saving any time in the end due to the worm's global timer. I'd have to find a serious improvement if I wanted to save any time before the worm, and I don't see that happening.
However, I did improve the end boss of Stage 1 by around a second and a half with more careful shooting, which won't be lost at all as far as I'm aware:
https://www.youtube.com/watch?v=oDmKXwc9A3s
TASvideos Admin and acting Senior Judge 💙 Currently unable to dedicate a lot of time to the site, taking care of family.
Now infrequently posting on Bluesky
Joined: 11/13/2006
Posts: 2821
Location: Northern California
Hey, the year's almost over, I should probably post an update to this run.
https://www.youtube.com/watch?v=qyqH1buvHcM
I had a hell of a time with Stage 2 last month, then I took a long break, then when I got back to work I remembered I started the run on the Performance core, so I had to resync the run on Compatibility (thankfully only less than a minute was lost), and now finally here's... a quick, unfinished Stage 3 test with Blue. I'll encode/upload Stage 2 in HD eventually, right now I'm just happy I'm not using Green anymore.
So here's where I start testing which combination of forms is faster for Stages 3-5. I'm testing Blue for 3/4 and Red for 5 first. The times should be fairly even, as both forms have advantages that can make them equally fast. I'm betting on Blue first being faster in the end, but naturally I'm still going to test both just to make sure.
TASvideos Admin and acting Senior Judge 💙 Currently unable to dedicate a lot of time to the site, taking care of family.
Now infrequently posting on Bluesky
Joined: 11/13/2006
Posts: 2821
Location: Northern California
Link to video
I've forgotten to put this video here for over half a year, now.
Turns out the routes could be almost exactly the same time-wise. Both are unoptimized test TASes, Red first has a couple of tricks and strats not used in Blue first as well, so I'll probably just optimize both and see how close they are that way. I get the feeling that Red First will come out just barely on top due to how much slower Stage 5 is with Red, but I'm still pulling for Blue first just because of how much cooler Stage 3 looks using Blue.
TASvideos Admin and acting Senior Judge 💙 Currently unable to dedicate a lot of time to the site, taking care of family.
Now infrequently posting on Bluesky
Wow, that's ridiculously close. I agree with your stylistic opinions, but it does seem like doing Red second makes for some slower platforming later. A shame.
Pyrel - an open-source rewrite of the Angband roguelike game in Python.
So a couple things on that. I am almost certain Blue will be optimal for stage 3 once it tightens up a bit because the ending sequence (after you kill the train) varies a bit. I think it's based off of the background cycle, but I'm not exactly sure. Comparing the two, I think your stage 3 blue is pretty close to the threshold for an earlier ending cycle, which makes the difference of quite a few seconds. Only other thing I noticed from stage 3: the laser from the jellyfish can be passed through via a dive attack. You can just barely land on the edge of the platform and avoid being hit for the two jellyfish that are left. It may or may not be any faster than your current movement through that area, but I wanted to bring it up anyway.
I was working on a theory TAS for hard mode that was meant to represent real-time strategies. I finally got around to finishing it up a little while ago. I think everything you've done so far is superior to what I went with (as it should be) but I'll post it here anyway in case there are a few details. This is the Hard any%, so silver dragon wheeee.
Link to video
Joined: 11/13/2006
Posts: 2821
Location: Northern California
I did some testing with this and, well, from my current input file (after saving about 3 seconds in Stage 3) I'd have to find a way to kill the train before it's even vulnerable to be able to make the earlier cycle. Unfortunate, but there's nothing I can do about it. At least all the time I saved still counts and isn't lost to a frame rule or anything.
Strictly from a gameplay standpoint, Blue first is definitely faster. Looking closer at my comparison video, I lose a good 7-8 seconds on the train cycle, which is more than the difference between the two runs by the end of the video. Blue first appears to be 6 in-game seconds faster: 21 seconds ahead in Stage 3, 4 seconds ahead in Stage 4, 19 seconds behind in Stage 5. It's just that train cycle that puts me so far behind. I have the feeling that the train cycle alone is going to make Red first the faster route for the TAS, no matter how tightly I optimize Blue first, but I'll keep going with Blue first anyway just to check.
TASvideos Admin and acting Senior Judge 💙 Currently unable to dedicate a lot of time to the site, taking care of family.
Now infrequently posting on Bluesky
That's a shame then. I noticed the train cycle being an issue during my earlier theory TASes, but I thought the full cycle was around 10 seconds or so. I might do some testing soon to figure out the exact requirements for the scene cutoff. Though unlikely, it may even be manipulable if it's based on something other than the background cycle.
Joined: 11/13/2006
Posts: 2821
Location: Northern California
Link to video
Hey, might as well put up all of my progress so far, since I don't think I encoded the optimized Stage 2 yet anyway.
I shaved off a good 13-14 seconds from the comparison video, most of it was in Stage 5 though there are some scattered improvements in 3 and 4 as well. I'm debating on whether or not to optimize Red first as well just to see how much closer they are after optimization. I'll probably end up doing that at some point.
TASvideos Admin and acting Senior Judge 💙 Currently unable to dedicate a lot of time to the site, taking care of family.
Now infrequently posting on Bluesky