Hacker News new | past | comments | ask | show | jobs | submit login
NES Emulator on the UEFI Shell Running Super Mario Bros [video] (youtube.com)
89 points by jan-kleks on July 4, 2018 | hide | past | favorite | 23 comments



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/ (0.13.8.21 alpha).

You might also be interested in:

-- CHIP-8 Emulator for UEFI: https://github.com/Openwide-Ingenierie/CHIP-8-UEFI

-- Implementing UEFI Boot to Zork: 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

-- Firmware Security blog UEFI games posts: https://firmwaresecurity.com/tag/game/


the above is quoted from the reddit thread: https://old.reddit.com/r/programming/comments/8vvzjr/nes_emu...


Yup, I'm the OP there. :)


>Can we make it so that you pick an OS to boot based on which pipe Mario goes down?

This would be awesome.


I thought the tradition is to port DOOM first.


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


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


Clever girl. Or guy.


Beat the game to turn on your PC


if you lose the game all your files get erased cf. Kojima's original plan for "Metal Gear Solid", where if you died the game would stop working permanently


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!


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


The BIOS was originally supposed to be a nice hardware abstraction layer to be used everywhere - akin to system calls now. If the BIOS was rudimentary it was only because of the limits of the machine - not the intent of the designer.


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


that's the point.


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. :)


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.


if you are on the bios level you can do anything. But the bare bones nature of old BIOS plus the space limitation of them would make this very difficult.

Now that EFI on the cheapest Staples' laptop is 10x more capable then the most expensive personal computer of 1999, this is not only possible but easy and helped by ton of EFI libraries.


[flagged]


AFAIK there is no UEFI API for sound card access.


Why was this down modded? Emulators that can't emulate 8 bit audio are acceptable? I guess I am in some fantasyland.


Do you see the irony here? You're bothered that people are dismissing your 10-second comment in which you dismiss someone else's hard work.


https://imgur.com/gallery/bLRM9VA

I played it on the VMWARE too


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




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: