5 ms·
NES Emulator on the UEFI Shell Running Super Mario Bros [video]
- jan-kleks 8y agoThe 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 8y agothe above is quoted from the reddit thread: https://old.reddit.com/r/programming/comments/8vvzjr/nes_emulator_on_the_uefi_shell_running_super/ https://old.reddit.com/r/programming/comments/8vvzjr/nes_emu...
- dis-sys 8y agoI thought the tradition is to port DOOM first.
- digi_owl 8y agoWhile it is an impressive feat, it should give pause to thought about how complicated the modern "BIOS" has become...
- 0x0 8y agoI don't know about that, I think targeting a legacy non-UEFI BIOS for this application wouldn't be a lot more work?
- gcb0 8y agothat's the point.
- 0x0 8y agoI 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 8y agoThe 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.
- gcb0 8y agoif 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.
- zeroisnowfour 8y agoDid you even watch the video? There was no sound. Therefore its only half-impressive at best.
- Gongbisama 8y agohttps://imgur.com/gallery/bLRM9VA https://imgur.com/gallery/bLRM9VA I played it on the VMWARE too
- Aardwolf 8y agoThe 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!
- drproteus 8y agoSo, does this mean I could potentially have a refind like bootloader where I select boot disks through some sort of "warp zone"?
- androsyang 8y agoBeat the game to turn on your PC
- rangibaby 8y agoif 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
- rspeer 8y agoThe Warp Zone, of course, boots OS/2.
- lostgame 8y agoClever girl. Or guy.
- Zardoz84 8y agooh.. this remember me when I had a Mario game on a 5" floppy that bottedup directly from the bios.