I'm a happy Vim user. Still, I'm not
great with using h, j, k, and
l for navigation. But I am pretty
good at playing Super Mario Brothers
Hmmm (unsettling Mario music plays)
I've got an idea! Is it terrible,
let's find out together!
[intro music]
Greetings! And welcome to another thrilling
episode of Veronica Explains! I'm Veronica, and
today I'd like to try playing Mario,
but using the Vim - or Vi - arrow
keys to move him around the screen, one handed.
So before we get to the fun part I need to
explain a little bit about Vim. Otherwise
it's not "edutainment!"
Vim is a text editor, and if you've watched Linux YouTube
for almost any appreciable amount of time,
you're probably already aware of it. Vim
can be thought of as a successor
to an earlier editor, Vi
although that's a slightly simplistic way to
look at it for reasons I don't
want to get into right now! This
is just a Mario video after all.
Anyway, Vim is a "modal editor"
which has the h, j, k, and
l keys perform the functions of arrows
when in the normal mode. This has
the advantage of letting your fingers stay
at home row instead of having to
move your fingers to the arrow keys
or mouse every
time you want to move the cursor.
Why h, j, k, and l? Well
that involves a short history lesson.
I promise this won't go too long.
UNIX legend Bill Joy wrote the Vi editor
back in 1976. His terminal,
the ADM-3A by Lear Siegler,
Had the arrow keys right
there on the h, j, k, and
l keys, and used the control key
in combination with those other keys to
move the cursor position. Even after we
moved to the "arrow keys over here" world,
the h-j-k-l arrangement
stuck around,
in lots of Unix and eventually Linux spaces.
To a certain extent, being
able to navigate using h, j, k, and l
is considered a rite of passage
among some sysadmins.
That's one of the reasons I want to get
better at the Vim movement keys. I've
always been "okay" at it, but in
general I still find
I'm moving my hands away from home
row an awful lot. I think that
keeping my hands at the proper position
is going to help me work a
bit more efficiently... especially as I get
older and keep typing for a living.
I've watched a few seasoned COBOL and
Unix devs effortlessly use the Vim shortcuts,
so I'd like to get a little
bit more comfortable with it. Plus, pairing
my Model M with the Soarer's Converter
enables fun new ways to keep my
hands at home row. I did a
video about this keyboard combo a bit
ago and now leave a card in
the card-y place. As someone who grew
up on the PC keyboard layout,
I've always found these key combinations
a bit... frustrating and I think
that's understandable. I mean look at "l"
being used as "right." Because that's a sensible arrangement!
Jokes aside, I can appreciate
that it makes sense ergonomically.
Which is why I'm going to get better the
best way I know how. Playing Mario!
Who knows? Maybe I can make this
a challenge I do with other games
in future videos.
(Zelda "I got a thing" sound)
Anyway, there's a million video
games I could have picked for this
exercise. So why'd I choose Mario?
For starters, Super Mario Brothers is a classic
game. You know it, I know it.
Now, I'm not an expert speed runner
or anything, but I've been playing Mario
my whole life. So I know the
game pretty well.
I was probably six or seven when I
first beat it all the way through
without warp pipes on my classic NES.
So how am I going to
play it with Vim shortcuts? Why emulation,
of course! I don't feel like rigging
up a keyboard to connect directly to
the NES but let me know
if you want me to try it someday.
The emulator I'm using is FCEUX,
a well known, cross
platform emulator which seems to perform well
enough in my casual play. I mapped
the controls by going into "options", then
"input config", and then clicking on "configure."
I made a new profile and then
configured each button mapping the way I wanted it.
Now, I could have easily mapped h,
j, k, and l to the respective
D-pad positions, but I really wanted
to try and do this one handed.
So I've decided to map k to
the a button, as that's the button
that performs a jump in Mario. I'll
map the space bar to b which
will let me run and shoot a fireball.
I'll also map return and shift to
start and select respectively.
One handed Mario. Thanks, Vim!
Now, before we start, a quick disclaimer. Because I'm sure Nintendo is
watching this right now. I own a
copy of this game
outright. See? Mine. In fact this
ROM is one I dumped, myself, from
this specific cartridge. Totally legit.
The only thing I did to it was apply
a simple ROM hack to remove the
background music from the video as
I don't want YouTube to flag it
and cause trouble. There's no cheating, no
unlimited lives trickery, no Game Genie.
Just... Vim.
And just to show that I am
playing it with the Vim shortcuts,
I set up a Vim cam here which I
think'll make it pretty fun. Without
further ado, let's play Vim!
I mean Mario.
Here we go
Oh, it's weird without the music.
So that's down...
up...
left, right, left, right, and then
this one is going to make me
run faster.
We got a Goomba let's see if I
can get it.
I got it!
Okay, normally I run but I'm going
to just take it easy and walk
for now.
Oooo (laughter)
This is weird... I'm playing it with
one hand, it's kind of strange.
Okay, let's see um...
(Minnesotan mom sounds)
We got a Goomba... can I get it? There we go. okay okay
Yup! There I tried to go
up and I meant to go down...
so this is the learning thing.
It's weird... I keep thinking that it's
like arrow key- I'm gonna pause it.
I keep thinking it's like arrow keys in
that I have left bottom- or left,
down, and right. Takes some getting used
to.
okay
It's kind of unsettling without the music.
Okay this isn't so bad. Alright let's
see if I can jump.
I got six! Okay, this isn't so
bad.
Those might be famous last words, but
we'll see.
I am going to use warp pipes,
because I don't need this video to
be twenty hours long.
Ooo space. There we go, alright.
Now I'm feeling it!
It's weird, every now and again
I find myself resetting...
you know, which buttons do what...
like that. There we go, okay.
Alright. Focus, Veronica.
whoop
This is so weird.
I forgot to run, okay. Let's try it again.
Alright, I'm getting the hang of it...
I think.
The biggest thing is is actually that
space is what's making me run.
It's like the physics feel very foreign
in this way. That was fun.
Just have to play very conservatively here.
There we go.
I missed my 1up. I'm going
to regret that.
See?
I'm not setting any speedrun records today.
It's weird without the music.
Without the music it's going to be
hard to know (laughter) when it's done.
Alright.
Break that block, then this block
and, come on down! There we go!
Whew, this is definitely weird.
There, I was trying to jump with
space... I dunno why I'm trying to jump with space?
No, uh oh... am I gonna hafta minus world? No!
Not going to try the minus world glitch...
...maybe that's a separate video.
ok
Alright, 4-1!
Vim mode!
I definitely want this...
I'm just gonna run and gun.
This is normally how I play this level.
Not quite that fast... now I'm having regrets.
ooh can I do this? Let's see
if I can slide...
...am I having N-key rollover problems? No,
it's just timing.
OK, this is going to cost me
too much time.
(more Minnesotan sounds)
Whew.
It's definitely getting harder. It's strange for
sure, but it's fun playing with one
hand, I mean. That's kinda neat...
jump jump I feel like I need
to center myself each time. Right, left,
jump, fire, okay... gotta run
right and...
there we go! Okay, that's not bad.
Alright, then get in... see if I can
make the beanstalk happen.
There we go... come on, come on, come on!
Up? Oh...
there, I actually needed the "up" key.
And I have jump mapped that way.
So... the one thing I needed "up"
for so far
8-1 on Vim mode... let's see
if we can do it. We only
have two lives though...
(Humming the tune from Mario Bros)
There's a 1up in here.
Ooh, okay.
There we go, I gotta hurry.
This is definitely a thing.
OK, one coin and another 1up.
It reminds me of watching - there we
go - it reminds me watching other people
play Mario.
Like, you know, like, I'm pretty fast at
Mario typically, so... I mean I'm not
a speedrunner, but, like, I get by.
Ope, I missed it.
Yup, I'm running out of time.
Come on... oh here comes the big jump...
Let's see if I can do it...
no!
I'm getting better at it with the
spacebar.
No, using the spacebar as run
is challenging and
takes some work. Every now and again
I just forget what key does what...
that's that's one of the challenges which
is the reason I'm doing this, ultimately.
...so I can get better.
If I can do it...
there we go.
there we go...
8-1.
In the books, on Vim mode.
Alright. 8-2... I'd feel much better about
this if I was starting with a fire flower.
Get a 1up.
ooh oh no
play conservatively...
Get the 1up... there we go.
oh, okay, hmmm...
No! Now it's going to cost me.
(even more Minnesotan sounds)
hold...
there we go! OK!
I keep forgetting which button is down
and which one is up, even though
I'm jumping with it. Which I think is
a Vim thing for me... that's definitely
something I need to get better at.
(whiny "engh" sound) so close... okay three lives.
I've got a chance...
Fall in the trap... Fall in the trap... There we go.
What am I doing?
Aaaah!
This is going to be bad...
Slip, and jump, and there you go...
okay
This is so weird... we're ok
no!
It's like my physics are weird it
does it feel... it's like I
forget where I'm going to slide and
where I'm not going to slide.
I have to remember to play very
conservatively, it's gentle.
hm hm... I'm so glad this 1up is here.
That was no good... I have one life.
I think I'm gonna try it again.
It just feels totally different playing with
shortcuts that aren't the natural keys you
use in the game.
I mean it's fun, I'm definitely having a
good time.
(slow motion) No!!!!!
okay 8-3!
This is a hard one... can I do it?
Oh no, I got Hammer Bros.
OK, we got one!
okay...
Can I do it? Here we go. Okay!
oh, this is so hard...
oh...
stop it...
there we go...
whew...
hmm...
Okay, now I have a fighting chance.
Come on, I got fire!
(Laughter) Okay! 8-4!
Let's see if I can do it!
There we go, OK, I'm going to have to be super careful not
to lose this...
I have a feeling I'm going to need it.
(laughter)
oh geez...
This is gonna be hard, this is weird in Vim...
(even more weird "playing a game" Minnesotan sounds)
I got past flying fish.
okay...
Swimming in Vim is very weird.
I don't like swimming in Vim...
Swimming in Vim is very strange...
I could practice that alone I think.
okay...
okay... I think we're just on Bowser now.
OK, come on... come on... can I...
...can I kill him this way...
I got him! (laughter)
I beat Mario on Vim mode!
Ah, that's fantastic! My fingers hurt!
I just beat Mario one handed on Vim mode!
I've never done that before.
Okay, so now that I've actually gotten
through it, it wasn't so bad.
I most certainly struggled a bit with remembering
which key was jump, or up, and
which one was down. And that mimics
my overall experience with Vim... definitely something
I think I'll need to keep working on.
All in all, I thought this was
actually a pretty good exercise, and I
think I'll keep doing it to try
and improve my Vim skills.
Now, you might be wondering: why would anybody actually
want to do this? And it's simple, really.
I like to do fun things for
fun, and this was fun. Not everything
has to be serious or thought provoking
all the time. After all this is just the internet.
Do you have a game you'd like me to try
in a future Vim controls challenge?
Let me know in the comments.
Should I start a hashtag for this?
(Voice offscreen) "nope"
I think one of the best things
about being a Linux system administrator is
finding new ways to challenge yourself to
pick up a new skill. And the
plethora of options available on Linux-based
systems is always so impressive.
Because Linux is Awesome! And so are you!
It's time once again for "Ask Veronica"
where I answer a question from one
of the supporters of my channel.
Today's question is: what's the difference between virtualization and emulation?
This is an extremely complicated question to
answer because this this gets into almost
a philosophical debate with some people.
You look at WINE as a good example
of how this can be blurry, because
WINE stands for - famously - WINE is not
an emulator, yet you can go through
and see people describing
it as though it's an emulator,
and I think that's kind of justifiable,
for reasons I'm not going to get into
in like thirty seconds here. I've always
thought of it as: emulation is emulating
the hardware whereas virtualization doesn't necessarily have
to emulate the hardware.
Another great example of this is the fact that you
can run ARM code an x86 using
an ARM emulator. VICE also comes to
mind as an emulator emulating the
chip of the Commodore 64 or the VIC-20.
It's not actually running
directly on the hardware without that abstraction,
and that's what the emulation is. Virtualization
can include tools that
don't have that abstraction, but again this
stuff gets confusing.
Space... run... no... OK... space...
okay...
oh geez...
(punk music)