
NES Emulator on the UEFI Shell Running Super Mario Bros [video] - jan-kleks
https://www.youtube.com/watch?v=QZwN2YNdlKg
======
jan-kleks
The dev said in one of the comments to the video:

 _I used EDK II framework. About the keyboard input, Program reads the value
from 0x60 port directly because of multi-key input processing. I measure the
timer count twice(for 1sec) by using the rdtsc instruction to make game delay
more accurate. I didn 't implement the audio output.﻿_

One can read in the video that it's a port of MoarNES:
[https://moarnes.sourceforge.io/](https://moarnes.sourceforge.io/) (0.13.8.21
alpha).

You might also be interested in:

\-- CHIP-8 Emulator for UEFI: [https://github.com/Openwide-
Ingenierie/CHIP-8-UEFI](https://github.com/Openwide-Ingenierie/CHIP-8-UEFI)

\-- Implementing UEFI Boot to Zork:
[https://mjg59.dreamwidth.org/27881.html](https://mjg59.dreamwidth.org/27881.html)

\-- Flappy Bird UEFI (there's also a video of a Street Fighter 2-like game
demo there): [https://github.com/hymen81/UEFI-Game-
FlappyBirdy](https://github.com/hymen81/UEFI-Game-FlappyBirdy)

\-- Firmware Security blog UEFI games posts:
[https://firmwaresecurity.com/tag/game/](https://firmwaresecurity.com/tag/game/)

~~~
lsh
the above is quoted from the reddit thread:
[https://old.reddit.com/r/programming/comments/8vvzjr/nes_emu...](https://old.reddit.com/r/programming/comments/8vvzjr/nes_emulator_on_the_uefi_shell_running_super/)

~~~
jan-kleks
Yup, I'm the OP there. :)

------
dis-sys
I thought the tradition is to port DOOM first.

------
drproteus
So, does this mean I could potentially have a refind like bootloader where I
select boot disks through some sort of "warp zone"?

~~~
rspeer
The Warp Zone, of course, boots OS/2.

~~~
lostgame
Clever girl. Or guy.

------
Aardwolf
The vertical video chops off half of the screen and uses only 1/3th of
youtube's space when it could have easily been horizontal

Other than that, neat, and good news that UEFI is programmable like that!

------
digi_owl
While it is an impressive feat, it should give pause to thought about how
complicated the modern "BIOS" has become...

~~~
0x0
I don't know about that, I think targeting a legacy non-UEFI BIOS for this
application wouldn't be a lot more work?

~~~
gcb0
that's the point.

~~~
0x0
I thought it was the opposite of the point, that modern BIOSes had evolved to
make this possible, but I think a non-modern legacy BIOS would work just as
well. :)

~~~
therein
The question isn't whether it is possible or not. For instance, this emulator,
had it really wanted, could have used the UEFI API to do networking given the
NIC is recognized at UEFI shell.

Doing this in BIOS would require you to implement a lot more from bottom up.

------
Gongbisama
[https://imgur.com/gallery/bLRM9VA](https://imgur.com/gallery/bLRM9VA)

I played it on the VMWARE too

------
Zardoz84
oh.. this remember me when I had a Mario game on a 5" floppy that bottedup
directly from the bios.

