Dear MasterJun, Ive seen your Arbitrary Code Injection videos, and I saw you last year on AGDQ. I love to mess around and see what I can make with the Code Injection, and Ive really wanted to create something, but I dont know what to start with. I was wondering if you could make Yoshi's Island via Arbitrary Code Injection. That would be awesome because I've tried, and I did ok, the only problem was that I couldnt implement the Flutter A.I and when yoshi is it, baby mario cries and floats in his bubble. So now Im trying to make Game Genie in SMW so we could Inject Game Genie codes.

Game objectives

  • Emulator used: Bizhawk 2.0.0
  • Heavy glitch abuse
  • Takes damage to save time

Improvement table

StageFrames (old run)Frames (new run)AbsoluteRelative
1 3565 3282 -283-283
2 3561 3375 -186-469
3 4827 4535 -292-761
4 3698 3496 -202-963
5 2751 2668 -83 -1046
6 6068 5471 -597-1643
7 3392 3300 -92-1735

Comments

After a really long time, this is a 1735 frame improvement over my old submission. Most improvements come from much better mastery and understanding of the game.
If you have not played this game, I suggest trying to play it casually, to get just how horrendous the controls are; then watch this run. Mario is slow and extremely annoying to control, and every step of the level design seems like a giant "piss off" to the player.

Mechanics, tricks and glitches

Movement

To monitor a variety of adresses regarding movement, I made a very simple lua script that you can find here.
The game has a "P-meter" that goes up for every frame walked, in the air (while not windup-ing), and while holding right while capeing. There are three speeds: Mario walks at 1px/f; he runs at 2px/f when the P-meter reaches 64, and 3px/f when it reaches 112. There are no subpixels in this game. The P-meter can only exceed 64 when A, the run button, is held.)
Note that normal jumps cannot reach P-speed (instead limited to 2 speed.)
There are two types of normal jumps (I will describe the cape later on): normal jumps, done with B, and spin jumps, done with C. Each of these has a certain 'gravity', which dictates at what speed Mario will rise, then fall. For a normal jump, it's 2 (the adress goes 2 > 0 > 2) and for spinjumps it is 3, which means Mario will rise faster and fall faster; this is useful in a variety of situations. If the gravity is equal to 0, Mario will float (his x pos will remain the same.
In terms of movement, a jump goes like this (I'll take the normal jump here): Windup (10f, 2 gravity) - Jump (depends on how long B is held, max 32f, 2 gravity) - Float (4f, 0 gravity) - Fall (until Mario hits the ground, 2 gravity). Each of these portions of a jump can be watched precisely by observing the animation frame counter, at C41F. If Mario hits an enemy, then the jump "starts over" again, but without windup.
Every jump in the game has a "windup" state wherein the jump cannot be interrupted. During windup, the P-meter will not be increased, and the current "gravity" will be kept for the duration of the windup. A normal jump has a 10 frame windup, while a spinjump has a 3 frame windup. This means if the P-meter is under 64, it's (if possible) faster to use a spinjump for movement (and reach 2 speed in mid-air.).
When landing; the P-meter is set to 32 if greater than 32, or keeps its current value otherwhise. If Mario turns to the left from the right, the P-meter is kept; but if he turns to the left from the right, the P-meter is reset to 0. This means that when I need to slow down during a jump, I do it by turning to the left while in the air, then turning right as soon as I hit the ground. The only exception is floating platforms, which make Mario retain the current P-meter value.

Double windup glitch

The spinjump lasts 24 frames, and the normal jump lasts 32 frames (after windup.) If B is released on the exact last frame a jump could last, then Mario will be in the windup state again, but this time with 0 gravity; the jump goes: Windup (2g) - Jump (2g) - Windup (0g!!) - Fall. Here, the second windup takes the place of the fall, but it lasts much longer than the float does (10 frames instead of 4.) A double windup jump can stay in the air much longer, which is very useful in a variety of situations.

Hitboxes

Hitboxes are equivalent to their sprite: imagine a box exactly around the sprite, and you have its hitbox. This is important, because it means that Mario's x and y position is determined by his sprite, and as such the animation he is in. For example, when falling from a spinjump, Mario's hitbox will be very taller (because of the cape falling with him. In many situations, I can use certain animations that make Mario wider or taller in order to either get pushed by a celling, hit the ground sooner, or hit a goalpoint or enemy sooner.

P-meter ground carry

Normally, Mario loses the P-meter (and as such his speed) if he hits the ground. However, the game is very bad at checking if Mario is actually on the ground or not; to jump again, the game only checks if Mario's x pos is at the right position, and the check for if he is on the ground is dealt with separately.
With a bit of clever tricks, we can carry the P-meter. There are two ways to do this: the first is to use the "float" part of a jump while being perfectly aligned with the ground you want to use for the trick. Mario will float a bit at the correct X position; as soon as he approaches the ground, then he will be able to jump again, without having been on ground. This is possible because since Mario is at 0 gravity, he will not go downwards, even if considered by position on the ground.
The second way to do this is using the cape. Falling with the cape has the lowest gravity in the game, 1. If done with 3/7 gliding, then Mario can hit the ground, but is actually registered as on ground on the next frame. Jumping during this frame allows to carry the P-meter.

Cape mechanics

When in posession on the game, Mario gets several more options: - the normal jump is replaced with the cape jump, which is the same as the normal jump, except gravity is 1 instead of 2. - the spinjump is replaced with the capespin, which can damage enemies from the side; useful when it's needed to clear enemies while staying in the air as little as possible. - if at P-speed, when Mario jumps, he will do a super jump, then start flying.

Infinite windup glitch

For some reason, while doing the cape jump, Mario is able to trigger the windup state infinitely, as long as he is in the air. This is very useful, because it allows to stay in the air much longer, and also to do P-speed carryover.

L+R flying P-speed gain

When Mario is not at top P-meter and is currently flying, then his speed will increase for every frame he holds right; but holding right causes Mario to dash towards the ground. However, holding left will make Mario pump his cape, gaining height. We can combine the two; start pumping by pressing left, then holding right will make Mario keep pumping while increasing the P-meter.

Dash jumping

Dashing down while flying will boost Mario 4 pixels to the right ( 3 of P-speed + 1 pixel.) In conjunction with floating platforms, Mario can dash down repetadly on floating platforms to gain some extra pixels.

Stage by stage comments

Stage 1

Main time same here is using double windup to make a jump that lasts half the stage. Not much changed otherwhise.

Stage 2

General optimisation, lag, and a jump in the middle of the stage that skips a cycle of waiting.

Stage 3

Use spinjumps at the start to reach 64 P-meter faster. Going under the turtle saves a lot of time. Precise jump under the podoboo that saves another cycle of waiting. Boss optimisation.

Stage 4

Much more precise jumps, use of P-meter ground carry up to getting the feather.

Stage 5

Super jump directly at the start, then flying until we gain P-speed.

Stage 6

General movement optimisation, use of flying when possible to keep P-speed. Near the end of the level, super jump from the very bottom area with the mini-thwomp, then fly with L+R to get P-speed.

Stage 7

Suggested screenshot

18377

Noxxa: Judging.
Noxxa: This game, with its peculiar music choices, and its final boss, is like a quirky form of abstract art. It's slow and not exactly entertaining, but it's still...interesting in its own way. Accepting for the Vault.
feos: Pub.

TASVideoAgent
They/Them
Moderator
Joined: 8/3/2004
Posts: 14776
Location: 127.0.0.1
This topic is for the purpose of discussing #5610: xy2_'s Genesis Super Mario World 64 in 07:17.51
Editor, Skilled player (1402)
Joined: 3/31/2010
Posts: 2081
What a game. Truly Genesis does what Nintendon't. Anyhow, good job on coming back to really max out this game. It really shows how much you've improved each section. It just sucks that you constantly have to struggle to keep your momentum. Sadly, it really kills the flow watching for me. Because of this, I still have to vote 'Meh' for entertainment, despite all the improvements. I'm kind of reminded of the SMW NES pirate which has a lot of similar problems to this game. In general, there's enough Mario pirates out there to choke a horse, and I'm not sure if, of all them, this is the one to publish.
Active player (440)
Joined: 3/21/2006
Posts: 940
Location: Toronto, Canada
I had never heard of this bootleg before seeing the TAS, so this was pretty much my reaction through the whole thing: Link to video Voting meh. The novelty factor alone is certainly worth upgrading it from a no, but it's simply not entertaining enough for a yes, especially with all the lag. Something like Bubsy 3D at least is a good example of a bad game that looks presentable with frame perfection.
My current project: Something mysterious (oooooh!) My username is all lower-case letters. Please get it right :(
fsvgm777
She/Her
Player, Senior Publisher (221)
Joined: 5/28/2009
Posts: 1180
Location: Luxembourg
The sound effects still sound as if they were coming from a Windows 3.1 game. Meh vote.
Steam Community page - Cohost profile Oh, I'm just a concerned observer.
Skilled player (1431)
Joined: 11/26/2011
Posts: 655
Location: RU
I am second with WHAAAAT?! vote. It so weird to see Mario on Genesis. Now i seen everything. Can't say that it very entertaining, but at least it was quite interesting to watch.
I show you how deep the rabbit hole goes. Current projects: NES: Tetris "fastest 999999" (improvement, with r57shell) Genesis: Adventures of Batman & Robin (with Truncated); Pocahontas; Comix Zone (improvement); Mickey Mania (improvement); RoboCop versus The Terminator (improvement); Gargoyles (with feos)
Experienced player (670)
Joined: 11/23/2013
Posts: 2206
Location: Guatemala
yeah but does it get 99 lives with blast processing
Here, my YouTube channel: http://www.youtube.com/user/dekutony
Patashu
He/Him
Joined: 10/2/2005
Posts: 4000
Truly nausea-inducing platforming mechanics. Yes vote.
My Chiptune music, made in Famitracker: http://soundcloud.com/patashu My twitch. I stream mostly shmups & rhythm games http://twitch.tv/patashu My youtube, again shmups and rhythm games and misc stuff: http://youtube.com/user/patashu
Active player (372)
Joined: 9/25/2011
Posts: 652
Ugh... I appreciate all the hard work put into this, but the game itself is painful to watch (and listen to). Have to vote no for entertainment on this one.
Player (39)
Joined: 7/7/2008
Posts: 871
Location: Utah
Wow, does the gameplay look bad.
Active player (324)
Joined: 2/23/2005
Posts: 786
I lost it at the Jeopardy music. Yes vote.
Editor, Skilled player (1936)
Joined: 6/15/2005
Posts: 3239
What I find most interesting about this game is that it presents itself as a Super Mario World port at first (although a bad one at that), and then it slowly deteriorates over time until it no longer resembles SMW. Which I guess is a little more interesting than just being a bad but faithful SMW port all the way.
Active player, Banned User (416)
Joined: 6/7/2017
Posts: 420
Location: Somewhere
I'm gonna have to give it a meh. You did put good effort into this but oh my god watching this just doesn't feel right.
Experienced player (945)
Joined: 10/13/2014
Posts: 408
Location: nowhereatthemiddleofnoone
I think, Sonic is the game coder... If you ask me, if this game is good for Genesys, then I answer you a big no, and the worst thing about it this, is that it's possible to buy a cartridge on Ebuy! But the question is, it's entertaining or not? Well, that it to be just good for vault, I finded it's funny to watch this, and movie is short due to a good xy2_'s job. Yes vote. STOP THE MASSACRE OF MARIO WORLD please!
GAW sms... Totally destroyed
Editor, Experienced player (548)
Joined: 10/22/2016
Posts: 581
Location: Argentina
Now this is a real blast processing yes vote
You can see more TASes on my youtube channel
Editor, Player (44)
Joined: 7/11/2010
Posts: 1022
I was actually really entertained by this, likely because it's so bad (rather than in spite of it). It creates a sort of constant horror as to what will happen next.
Joined: 7/2/2007
Posts: 3960
Agreed with ais523. This was in the "so bad it's good" zone for me. Thanks for the run!
Pyrel - an open-source rewrite of the Angband roguelike game in Python.
Post subject: Movie published
TASVideoAgent
They/Them
Moderator
Joined: 8/3/2004
Posts: 14776
Location: 127.0.0.1
This movie has been published. The posts before this message apply to the submission, and posts after this message apply to the published movie. ---- [3482] Genesis Super Mario World 64 by xy2_ in 07:17.51
Joined: 5/8/2010
Posts: 177
Location: Entropy
I'm supprised no one mention which sound/music is being used in this hack, there's 2 musics from tailspin and most sound effects are from the jungle book game. I'ts odd to see them out of contexts.