Creating an Operating System for the NES

2022 ж. 21 Қыр.
759 365 Рет қаралды

Download NESOS at notin.tokyo/nesos
NESOS is an operating system designed for the Nintendo Entertainment and Family Computer Systems. It was programmed in 6502 Assembly and compiled using CC65. This video covers how NESOS was made, including techniques used in programming the NES such as dealing with the Picture Processing Unit and saving data long term via NVRAM.
The operating system features two core applications, the word processor, and the settings. The word processor allows users to print characters and certain blocks to the screen, then save that data in the form of a file for later use or editing. The settings app displays system information and lets the user select one of seven cursors, and one of 53 possible desktop background colors. It also acts as the file manager, allowing users to delete their saved files.
NESOS uses 2K of NVRAM to save up to 8 files between sessions. The word processor is fully compatible with the Family Basic Keyboard giving every key functionality. Users may open their saved files on the desktop top by navigating to the correct file and pressing the A button. Holding the B button while over an icon and moving the mouse will allow the user to move both the files and the applications anywhere on the desktop.
The word processor may also be used without the Family Basic Keyboard. Using a standard NES or Famicom controller the user may type a character by pressing the A button. Holding A will cycle through all 64 possible characters that can be drawn on the screen. Pressing the B button will move the cursor forward in the document. Holding select with A will cycle the characters in reverse order. Holding Select with B will move the cursor backwards in the document.
I have updated NESOS since uploading this video, the latest version can be found at the link above.
NESOS also available at:
www.romhacking.net/homebrew/172/
Resources:
Windows 98 for Famicom (this is a Chinese mockup of Windows 98 for the Famicom/NES and isn't really functional)
archive.org/details/FCWIN98
NES Programming Resources:
www.nesdev.org/wiki/Nesdev_Wiki
NES CPU Memory Map
www.nesdev.org/wiki/CPU_memor...

Пікірлер
  • Have you thought about adding support for the Famicom Disk System? I imagine you could load the whole OS into the disk cache at boot. Then the disk drive would be free for loading additional software, saving file, etc.

    @decrazyo@decrazyo Жыл бұрын
    • use the floppy to run dos OR make a mod for family basis where you can save stuff to a floppy (like a commodore 64 or smth)

      @keytester2733@keytester2733 Жыл бұрын
    • the hardware of the FDS can be modified to allow for unrestricted disk rewriting but I don't know if emulators support that. it would be limited to only a portion of the disk being writable. I suspect a more compatible solution would be some kind of bankswitching in NVRAM

      @famitory@famitory Жыл бұрын
    • @@keytester2733 this is really cool. Keep up the awesome work!

      @Bobbias@Bobbias Жыл бұрын
    • @@Bobbias actually, it was just a idea, i dont know how to make or edit a nes game. i mean, it looks like just assembly, so i just have to technically just make a bootloader but NES compatible

      @keytester2733@keytester2733 Жыл бұрын
    • @@famitory this is true, but not a problem if, instead of making an OS that "connects" to the FDS, you make the OS *run* on the FDS itself. totally not an easy task, but you could just write to the areas not taken up by the OS.

      @zulc22@zulc22 Жыл бұрын
  • Now it truly lives up to the name "Family Computer".

    @leomassafm160@leomassafm160 Жыл бұрын
    • Ok guys. He won the internet. We can all go home now. *as i stare off to the sky sipping on my coffee*

      @YetAnotherJohnSmith@YetAnotherJohnSmith Жыл бұрын
    • Well there was Family Basic which allows simple programming and even saving made apps to diskette

      @meyers0781@meyers0781 Жыл бұрын
    • I would like a more powerful BASIC for FAMICOM, to really be able to make programs from the console and save them on a Datasette

      @magnus87@magnus87 Жыл бұрын
    • 400th like and 4th reply

      @MiddleLevelLearning@MiddleLevelLearning Жыл бұрын
    • @@MiddleLevelLearning congrats. who cares?

      @leomassafm160@leomassafm160 Жыл бұрын
  • This reminds me of the Contiki project. They wanted to make an NES able to surf the net and they were going to use the Zapper as a “mouse” but the project was never finished. Thank you for doing all this work. Making retro systems do great things in modern day is always fun. “Everything old is new again.”

    @BalancedSpirit79@BalancedSpirit79 Жыл бұрын
    • Contiki works on C64, it has much more memory which means it's easier to do

      @kreuner11@kreuner11 Жыл бұрын
    • @@mr_indie_fan Oh I have that faved already; that was insane!! :D

      @BalancedSpirit79@BalancedSpirit79 Жыл бұрын
    • I'm really curious how that zapper thing would work. As far as I'm aware, the zapper doesn't actually "point" at something. It just checks if the place it's pointed to was the place the screen designated as "correct", which is why the screen flashes when you play the game, as the game is telling the zapper where the duck is. Maybe they could come up with something clever or maybe it didn't work out too well. Frankly it seems more difficult to get an NES to try to render HTML properly, and forget about having it interpret CSS or JS. Just HTML is pretty light, but still potentially too much for the NES to handle.

      @mmazurr@mmazurr Жыл бұрын
    • @@mr_indie_fan Of course, SuperRT is a piece of expansion hardware, these OS projects are only intended for running on Bone Stock consoles.

      @stanb1455@stanb1455 Жыл бұрын
    • @@mmazurr contiki on the C64 renderd it at a snails pace, without the ability to scroll the site, just autoscrolling while interpreting HTML

      @kreuner11@kreuner11 Жыл бұрын
  • I had a bootleg NES when I was a kid. It had an OS with GUI, multiple apps including a word processor, mouse and keyboard support. It felt like a home computer.

    @DarkStar181992@DarkStar181992 Жыл бұрын
    • If only the real NES was the same…

      @admoran777@admoran777 Жыл бұрын
    • Do you remember its name?

      @r0ckt3hc4sb4h@r0ckt3hc4sb4h Жыл бұрын
    • ​@@r0ckt3hc4sb4h windows 98 comes up in my mind

      @Iamnotrandom565@Iamnotrandom565 Жыл бұрын
    • ​@@r0ckt3hc4sb4hIn Russia such bootleg NES was called "Magistr Repetitor" (Магистр Репетитор) and had bootleg Excel, Word, Basic

      @yerdnAAA@yerdnAAA Жыл бұрын
    • @@admoran777 One can only wonder why Nintendo of America decided to not bring the keyboard, cassette and later floppy to the US. There was a modem and printer too IIRC. The expansion port to plug those peripherals in the American NES is in the bottom.

      @freeculture@freeculture Жыл бұрын
  • Super cool project! Here’s a relatively straightforward compression idea for your saved files: Since your alphabet is only 64 characters, you only need at most 6 bits per char, not a full byte of 8. This means you can store an 832 char file in 624 bytes with some bit shifting and masking. That’s 13 files in 8kb! And that’s keeping it relatively simple. If you want to really stretch your 6502 chops, you could implement Hoffman coding compression and allow variable length files (just have the first two bytes or so - technically 10 bits is enough- be the file length). Or a compromise: more compact than fixed 6 bytes per char but simpler than full on Hoffman coding: make a predetermined variable length encoding- like a precomputed Hoffman table or something similar to UTF-8 but alternating between 4 and 8 bits per char instead of 8 and 16 bytes per char.

    @jadeglaze3390@jadeglaze3390 Жыл бұрын
    • Wait! Better idea for variable file size: the first few bits of the file should represent a length in _chunks_ that the file requires where the chunks are known size. So for example: first 4 bits of the file represents the number (1-16) of 39 byte chunks (16*39=624) that the file occupies.

      @jadeglaze3390@jadeglaze3390 Жыл бұрын
    • Yeahhhh but the 6502 would probably choke on any of that stuff. It would work but would you want to use it? I guess when the platform is 8 bits the answer is always yes

      @kargaroc386@kargaroc386 Жыл бұрын
    • @@kargaroc386 I see OP's point about saving 2 bits, it's an idea worth considering if this were a serious project and you wanted an ALL-CAPS word processor for the NES. It'd need as much space for docs as you could get. Huffman compression is something else. Certainly 6502s can do it, and did, back in the '80s. But it's a pain in the arse to get your head round and you wouldn't want to have to debug it. Depends how clever you are. Really though you can't just have all-caps. There must be a way to extend the tile table. Games did it, although often using scanline interrupts which wouldn't be suitable when you'd want mixed case in all the text. Maybe try something clever using sprites for the extra letters? That'd get complex I think and you'd have to do it on the fly. Then again the ultimate Atari 2600 hack turned out to be having a cart that bangs hard on the machine's data lines. You set the data lines to high, I think, and the cart can drag them down to 0 with enough current. Yeah I doubt it's good for the old gal but maybe they built 'em tough back in NMOS or whatever. They drove the graphics chip hard and got more sprites than you were allowed out of it, looked amazing admittedly and could have been done at the time. But I wouldn't wanna be the guy i the shop when your cart breaks somebody's Atari and there's a queue of them lining up all with the same problem. Sorry what's the moral of the story? Abuse the hardware? Sometimes that worked out well.

      @greenaum@greenaum Жыл бұрын
    • Take your bytes, and your goals will come!

      @niallmcardle7@niallmcardle711 ай бұрын
  • This is a cool project. To be a bit pedantic it's not really an OS, it's really a GUI text editor. For it to be an OS I think you'd have to either have to expose some kind of API to make additional apps that run within it or find some way to load in and execute games, which I know the latter would be quite difficult. That's not to diminish that it's an interesting project and a good video explaining some of the technical issues of working on the NES.

    @tnomad@tnomad Жыл бұрын
    • You're right that it's not quite an OS in the sense of not having an API for other programs to use. But I think it wouldn't be that hard to include some way to have games as well (they'd just have to built into the program). The way the "apps" of the system work is when the user clicks on them it only runs that section of code, so it wouldn't be hard at all to create a game and then place an icon on the desktop for the user to launch it. Even including large games wouldn't be hard because I've actually written this program with the MMC3 mapper (a bit overkill for what I needed) so even if the game required two full pages of CHR ROM you could just switch to the game's section when it launched. To be honest it never occurred to me to write a game into the system (instead I was debating whether or not to build a spreadsheet app), but I think that would have been a nice improvement to the system. Loading games could potentially work with the use of the Family Keyboard's Cassette reader, or using the Famicom Disk System, so it wouldn't be impossible.

      @InkboxSoftware@InkboxSoftware Жыл бұрын
    • @@InkboxSoftware It would be neat if as a built in game you included a "port" of one of those old LCD Game & Watch games. Weather that's possible or not, I don't know. I'm not a programmer. Or Tetris would be cool too.

      @XAWZ@XAWZ Жыл бұрын
    • Fun thing is that the Intellivision actually had a sort of "BIOS" or really a standard library of functions sitting on a built-in ROM for games to use. That is one step closer to that sort of thing.

      @vuurniacsquarewave5091@vuurniacsquarewave5091 Жыл бұрын
    • @@vuurniacsquarewave5091 Same as the INT BIOS calls in x86 IBM PC systems

      @brandontechnerd@brandontechnerd Жыл бұрын
    • I should have read this comment before posting essentially the same thing.

      @istrasci@istrasci Жыл бұрын
  • 在中国的1995年前后,有一种NES兼容机叫「小霸王学习机」。那部机器确实自带了OS系统,其中包含了Basic语言环境,带磁盘读写的文件操作。同时这个系统还包含了游戏编程,打字练习,文件处理等其他功能。感谢你让我回忆起了这些。

    @JiakunLi@JiakunLi Жыл бұрын
    • Ching chang

      @me67galaxylife@me67galaxylife10 ай бұрын
    • If you could watch the video that means you can understand English, so why did you write down your comment in Chinese?

      @MrLind87@MrLind8710 ай бұрын
    • @@MrLind87 因为我是中国人。

      @JiakunLi@JiakunLi10 ай бұрын
    • ​@@JiakunLiI am Costarrican but I'm not speaking in Spanish because of that lol

      @MrLind87@MrLind8710 ай бұрын
    • Translated by ChatGPT. In China around 1995, there was a NES-compatible console called the "Xiao Ba Wang Learning Machine." This machine indeed came with an operating system that included a Basic language environment and supported disk-based file operations. Additionally, the system featured game programming, typing practice, file management, and other functionalities. Thank you for bringing back these memories.

      @sfeee2677@sfeee267710 ай бұрын
  • 3:28 of all the things I was not expecting to learn in a video about a operating system for an NES. This is definitely one of them

    @BrowncoatInABox@BrowncoatInABox Жыл бұрын
    • *an operating (because "operating" starts with a vowel sound) *NES, this (to fix your sentence fragment)

      @alvallac2171@alvallac2171 Жыл бұрын
    • @@alvallac2171 I was on the moon when I wrote that comment and I regret nothing

      @BrowncoatInABox@BrowncoatInABox Жыл бұрын
    • @@alvallac2171 You're being pedantic and annoying.

      @PhantomOfficial07@PhantomOfficial07 Жыл бұрын
    • @@alvallac2171 first grammar comment I see that isn't rude and actually explains the logic behind the correct spelling, well done!

      @stellarbastard98@stellarbastard98 Жыл бұрын
    • @@stellarbastard98 It's never really ever been rude, we just live in a society that now believes it's uncool to write properly. Hence his ungrateful excuse as a response.

      @entx8491@entx8491 Жыл бұрын
  • Not bad at all. Mad respect. You accomplished a lot even with the system limitations. In the current state it could work as a weekly journal.

    @marioalfonsoarreolaa.flore2882@marioalfonsoarreolaa.flore2882 Жыл бұрын
  • This is super cool, definitely gonna try itout

    @NathanielBandy@NathanielBandy Жыл бұрын
    • nathanl b

      @SirLiamTheGreat@SirLiamTheGreat Жыл бұрын
    • is this Nathaniel B?

      @patrickst_ar@patrickst_ar Жыл бұрын
    • @@patrickst_ar yeah that is

      @rrq@rrq Жыл бұрын
    • OMG NATHANIEL BANDY!!!! :D

      @movedsm1332@movedsm1332 Жыл бұрын
    • Community: “This project is super niche, but really cool! It deserves more attention.” Random person scrolling through KZhead: “Oh that looks cool, I’m probably going to check that out”

      @Asteroid473@Asteroid473 Жыл бұрын
  • I love seeing such obscure stuff like this. A simple 80's styled GUI-based OS for a console from the 80's. really has that vintage computer vibe going for it. Nice work! The advantage of this is the files are stored on the cartridge itself, so if you had notes and wanted to view them on another console, just plop that bad boy into another and you're set. Great concept!

    @steventechno@steventechno Жыл бұрын
    • I do not recall the name but there is some thing like this for modern computers that's basically a mobile Linux OS on a flash drive.

      @joedirt3563@joedirt3563 Жыл бұрын
    • @@joedirt3563 livecd?

      @dasheru@dasheru Жыл бұрын
    • @@dasheru that might have been it. I can try and find if your interested.

      @joedirt3563@joedirt3563 Жыл бұрын
    • ​@@joedirt3563 nah, I'm good. "livecd" is just the blanket term for an external storage device that has a bootable OS installed on it.

      @dasheru@dasheru Жыл бұрын
    • @@joedirt3563 livecd doesn’t let you save anything permanently. It’s like you install it on a flash drive.

      @stupidfuckingrat@stupidfuckingrat Жыл бұрын
  • Dude, criminally underrated channel. Found you through your Emerald Ambulation video, and been going through others as they pique my interest. The passion is here and your graphics and explanations help me actually understand things I’ve always had an interest in, but know nothing about, or where to start. Thank you, and I hope the best for you & your channel.

    @samaiello7543@samaiello7543 Жыл бұрын
  • This is very cool. I would love to see some details about what it took to implement some of these things in code. Seeing how programming for the NES works in-depth would be very nifty.

    @DavidSikesII@DavidSikesII Жыл бұрын
  • This is certainly more functional than that “Windows 95” for NES that was just a mock-up of a desktop with no real abilities.

    @MrMegaManFan@MrMegaManFan Жыл бұрын
    • Well the windows 2000 version had some functionality if you played it on either a Famicom with a family keyboard, or a bootleg famiclone keyboard.

      @CrappyMusic-cb6bl@CrappyMusic-cb6bl8 ай бұрын
  • I love seeing people take the old systems I grew up on and still doing new stuff with them. Thank you for this awesome and informative video!

    @notthatfatboy6519@notthatfatboy6519 Жыл бұрын
  • Computer operating systems have existed for the NES/Famicom almost since its debut -- the original Family Basic from Hudson Soft, and the many unlicensed "educational" Subor/Dendy multicarts which included (versions of) it later on (FBASIC, GBASIC). I've been meaning to translate "Bravesoft Windows 2000" which is one of those, and has several apps. There is some graphics compression we've had to undo first. People on KZhead have dismissed the Chinese/Russian NES Windows "knockoffs" as non-functional, but they're not. A lot of the "functionality" is fake and just for show, but the applications are not -- and include takes on Word, Excel, DOS, and of course Family Basic (and its background art program, message board and music programs). And so on. Some of the later carts do a decent job of being an 8-bit computer, albeit in a style which was 20 years out of date at that time. Homebrew Family Basic programs were published in magazines at the time, and Gaming Alexandria has been trying to preserve them lately.

    @ocpmovie@ocpmovie Жыл бұрын
    • @@destructodisk9074 No, you have misunderstood based on a lack of experience with this stuff.

      @ocpmovie@ocpmovie Жыл бұрын
    • When I was smol kiddo, I've had nes knock off on keyboard, and cartridge which came with this System had Text Editor, music Player and educational games to which I was "forced" to play xD. I wish that I could have this thing again. I think that it was GLK-20XX. It looks like something I had :). Greetings!

      @Stillxxen@Stillxxen Жыл бұрын
    • @@Stillxxen Same here

      @-Juba-@-Juba- Жыл бұрын
    • @@Stillxxen me too! it was great! The text editor even have printing functionality.

      @eddievids5033@eddievids5033 Жыл бұрын
    • @@eddievids5033 wow, my wasn't so advanced :D. I could write, But without "printing" Part.

      @Stillxxen@Stillxxen Жыл бұрын
  • Incredible!, what an accomplishment for an 8 bit computer from the 80's

    @popyui7497@popyui7497 Жыл бұрын
  • I'm curious if you could possibly add support for the Famicom Data Recorder? Being able to save files on tape (or through digital audio recordings) would work pretty well as the Family Basic keyboard already has that functionality for read and write.

    @Bro3256@Bro3256 Жыл бұрын
    • (NESOS more like FamiOS am I right)

      @Bro3256@Bro3256 Жыл бұрын
    • @@Bro3256 we need a snesos and an n64os

      @doomedtoobscurity3965@doomedtoobscurity3965 Жыл бұрын
  • I never thought somebody would do something like this, but hey here we are. Quite interesting work! I wonder if you're planning on making this open source, since I think there are some people that might've thought of an implementation or two while watching this video, so making it open source can lead to more interesting things happen. Good stuff!

    @carecoable@carecoable Жыл бұрын
    • “that”

      @alysdexia@alysdexia Жыл бұрын
    • I was thinking on how someone could adapt it to work in something akin to a game genie, allowing you to plug in application cartridges :) not that i'd even begin to know where to start myself, but i could imagine someone who does taking it to that next level.

      @RonLaws@RonLaws Жыл бұрын
    • @@RonLaws *lock on technology!!!!* 🤯

      @pinkie723@pinkie723 Жыл бұрын
  • Good to see that the new generation of creative minds has finally matured

    @kanesmith8271@kanesmith8271 Жыл бұрын
  • Finally, one of my dream projects became a reality. I hope that you will continue working on this project and add more programs like a calculator, a painting program or at least a support for colored tiles on the word processor and a calendar or a clock if the battery can handle keeping track of them at all time

    @promaster424@promaster424 Жыл бұрын
  • What a cool idea! And relatively logical progress for the NES at the same time. Given the 6502 was used in commodore 64 and numerous other old machines. Those had GEOS, so we already know it’s possible. Good job!!!!

    @jengelenm@jengelenm Жыл бұрын
    • Change your profile pic

      @megapro1725@megapro1725 Жыл бұрын
    • @@megapro1725 dude he doesn't have to

      @XENON2028@XENON2028 Жыл бұрын
    • @@XENON2028 nobody has to put terrorist state flag in

      @megapro1725@megapro1725 Жыл бұрын
    • @@megapro1725 dude omfg people don't think the same as you, I don't think they are a terroris t state, so I can put it if I like, you can scream all you want but me and him probably woon't change it ever

      @XENON2028@XENON2028 Жыл бұрын
    • The NES has only 2 KB of RAM, which is a severe limitation. Although most of the data can be stored on ROM, an OS needs a lot of memory for variables, hence why 2 KB is not enough for a GUI OS, and also why this not actually a full OS, but just a neat proof of concept.

      @elimalinsky7069@elimalinsky7069 Жыл бұрын
  • This video is even cooler than I was expecting. Not only do you break everything down really well, but integrating NESOS into your presentation is really clever!

    @flyinghippo5767@flyinghippo576711 ай бұрын
  • This is quite literally the single coolest piece of nes homebrew I've ever seen, the possibilities of this could be endless, I can imagine how sick a homebrew loader, like an everdrive or whatnot could be with an actual gui interface like this, obviously that would require a lot of effort but this is incredible nonetheless, I don't think Nintendo engineers of the time ever would've thought something this advanced would be possible on the NES.

    @mattzocrazy123@mattzocrazy123 Жыл бұрын
    • Nintendo made Family Basic, which is far more advanced than this.

      @Schule04@Schule042 ай бұрын
  • This is an amazing project and a fantastic video! Hope to see this evolve!

    @itsgruz@itsgruz Жыл бұрын
    • What up gruz!! You're awesome!

      @istrasci@istrasci Жыл бұрын
    • Game Genie codes for NESOS… 😅

      @AndyBrearley@AndyBrearley Жыл бұрын
    • @@AndyBrearley BGATES = A blue screen?

      @Typical.Anomaly@Typical.Anomaly Жыл бұрын
    • @@Typical.Anomaly 😂

      @AndyBrearley@AndyBrearley Жыл бұрын
  • One thing you should definitely add is a tracker to be able to make songs with the Famicom sound chip, maybe even be able to use the keyboard as a music keyboard (I've seen similar things done on other '80s computers).

    @draconic5129@draconic5129 Жыл бұрын
    • @MagicJungle7053 I wasn't talking about using sound samples I was just talking about using the sound chip's voices.

      @draconic5129@draconic5129 Жыл бұрын
  • It's fun to do something first, and then think about why you did it and how it can be used in practice.

    @sdjhgfkshfswdfhskljh3360@sdjhgfkshfswdfhskljh3360 Жыл бұрын
  • This is awesome! I'm always floored by the ingenuity of custom ROMs like this.

    @SamCampbell@SamCampbell Жыл бұрын
  • Wild how such an amazing channel has so few subscribers, really interesting work!

    @goofbug5328@goofbug5328 Жыл бұрын
  • Very clever use of a system not at all designed for a general purpose OS. Awesome work, man!

    @mastersummersjr@mastersummersjr Жыл бұрын
  • Ever since I found out about the expansion slot on the bottom, I’ve wondered when someone would do something like this. This is truly incredible

    @grantm7046@grantm704610 ай бұрын
  • Some of the coolest stuff I've ever seen done on an NES.

    @KartKing4ever@KartKing4ever Жыл бұрын
  • This is very cool. Very good use of limitations for sure. I bet a fair amount of time and effort to get it running as it is, working with the difference to today with sprites and code.

    @suntannedduck2388@suntannedduck2388 Жыл бұрын
  • Excellent! I really liked everything, but my favorite part was that you ask the CPU politely. Kindness is an important virtue and it never hurts to practice it. Good job!

    @GabrielPerboni@GabrielPerboni Жыл бұрын
  • WowoW!!!! I'm so happy to see your channel finally getting the credit it deserves - this video blew up!!! I've been a huge fan ever since I saw your level on Kosmic's channel - I can't wait to see what else you do :)

    @mattgio1172@mattgio1172 Жыл бұрын
  • Pretty rad! 😮 Edit: Congrats on the Engadget article! I think you had like, 16 subscribers a couple of weeks ago? Glad to see your channel get some traction. Keep up the great work!

    @EricGranata@EricGranata Жыл бұрын
  • I wonder if you could add a basic calculator to it Pretty neat that you got it working this well

    @xBruceLee88x@xBruceLee88x Жыл бұрын
    • You could make a calculator with that

      @Determinator21@Determinator21 Жыл бұрын
    • Everyone gangsta until you divide by 0

      @idiotontheweb@idiotontheweb Жыл бұрын
    • Then multiply by -0

      @xBruceLee88x@xBruceLee88x Жыл бұрын
    • @@xBruceLee88x -0 doesn't exist, the closest you can get is multiplying by 0

      @QuantumScratcher@QuantumScratcher Жыл бұрын
    • ​@@QuantumScratcher IEEE Standard for Floating-Point Arithmetic (IEEE 754) has entered the chat: "Moreover, there are two zero values, called signed zeros: the sign bit specifies whether a zero is +0 (positive zero) or −0 (negative zero)."

      @JeoshuaCollins@JeoshuaCollins Жыл бұрын
  • So, one thing you can do to help extend the storage capacity is to implement NVRAM paging. Your Zero page would contain your file allocation table for the page numbers and specific addressing spaces.

    @michaelwarner7815@michaelwarner7815 Жыл бұрын
  • Thank you for experimenting with the NES. I love what you do!

    @Captureman@Captureman Жыл бұрын
  • Incredible work! I am glad you save some space for more in the future.

    @rockkiall@rockkiall Жыл бұрын
  • Man this is so underated! More people need to see this video! :)

    @goranjosic@goranjosic Жыл бұрын
  • Nice Stuff very cool! Great coding skills and nice options, I like the idea of deleting 1 byte to cancel a file instead overwriting the whole file.

    @GXSCChater@GXSCChater Жыл бұрын
  • This is an impressive project you pulled off here, thanks for sharing

    @theconfusingwords@theconfusingwords Жыл бұрын
  • its so amazing that there is people who comes with these ideas and actually make it happen

    @maxios-7613@maxios-7613 Жыл бұрын
  • What would be cool would be if you could make a custom board for the expansion port and have the OS run off the custom board, and maybe putting more RAM on the custom board. Also when the custom board is plugged in it instantly boots up into the OS.

    @vampiric162@vampiric162 Жыл бұрын
    • Yeah it'd be cool to see how a Raspberry Pi Pico/Zero could be used in a NES, or Famicom.

      @lugxnyt2310@lugxnyt2310 Жыл бұрын
    • @@lugxnyt2310 yup

      @vampiric162@vampiric162 Жыл бұрын
  • Maybe for loading of programs/files and even saving them you could use the Famicom Data Recorder? It's a bit of an obscure piece of hardware, but the Famicom had an audio cassette data recorder similar to computers from the 70s and 80s at the time, that feature was left over in some NES versions of games like Excitebike, which is why they have a "save" and "load" feature that doesn't do anything.

    @Cyber_Akuma@Cyber_Akuma Жыл бұрын
  • What a remarkable feat. Subbed for this video. Thank you so much for creating badass content like this

    @ironrion@ironrion Жыл бұрын
  • Thinking about it some more, I think Famicom Basic dose turn the OG Famicom into an 8-bit micro. Things like the C64 didn't really have an OS like we understand it today. It had a rom chip that had basic on it. You could have a word processor on tape, and there was even one built into the cart.

    @Disthron@Disthron Жыл бұрын
  • I'm kind of surprised Nintendo didn't produce any software that utilized the Famicom Keyboard beyond a simple BASIC interpreter. Imagine a reality where a fully-realized, true-to-its-name Family Computer with dial-up connectivity and a suite of productivity applications might have become a staple of Japanese life in the '80s.

    @CerisuHakka@CerisuHakka Жыл бұрын
  • Would be cool to have something like this that runs from FDS and can write to QDs so you can save stuff legitimately. Of course that would greatly increase demand for QDs.

    @stephblackcat@stephblackcat Жыл бұрын
  • The quality heavily reminds me of The 8-Bit Guy! And that is NOT a bad thing! His channel is my all-time favourite! What I mean by that is the technical information is presented in a more friendly manner while not compromising the in-depth side!

    @TheRogueMaverick@TheRogueMaverick Жыл бұрын
  • This is brilliant. Would love to see this idea expanded upon and to see a cartridge i could run on my own NES someday

    @WSNO@WSNO Жыл бұрын
  • Please do one for the master system so that we can argue about which one is better.

    @SireSquish@SireSquish Жыл бұрын
  • This is super cool. I know the NES had an Arkanoid pad, implying that there was *some* way to get analog inputs in there. Have you considered adding something akin to mouse support?

    @tombert512@tombert512 Жыл бұрын
    • Technically the SNES mouse can be used with the NES. It's the same tech. Only the plug needs to be changed.

      @adamp9553@adamp9553 Жыл бұрын
    • @@adamp9553 wow

      @LongTailCat3@LongTailCat3 Жыл бұрын
  • I've often wondered about this. Well done on doing this and thanks for sharing

    @AD-2020@AD-202011 ай бұрын
  • Very cool! Awesome work on the implementation and explanation!

    @metal_bird@metal_bird Жыл бұрын
  • Nice work. Years ago I made a simple command line interface for the NES. I added a PS/2 keyboard interface to the cartridge though, instead of using the famicom keyboard. It could launch a very spartan brainf*** interpreter along with a couple game demos. I also called it NES-OS :)

    @tehrobotjesus@tehrobotjesus Жыл бұрын
  • I love to watch people with skills to build something like this, you deserve more subs and attention 🍻 That’s hella cool 🔥

    @UnrealSolver@UnrealSolver Жыл бұрын
  • i love a good bespoke OS. one of my professors in college created a full OS for the arduino uno just to see if it was possible. it was barely functional, but it worked (with task switching)!

    @Gunbudder@Gunbudder Жыл бұрын
  • It's amazing what nerds can do in their spare time ! This is awesome!

    @diegomayfield4751@diegomayfield4751 Жыл бұрын
  • Hello. More recently, an idea arose how, based on the idea of Famicom / NES, we can sell a new set-top box again, using old technologies. I think that you just need to take an 8-bit processor and create your new console taking into account the latest achievements: 4 ports for gamepads, a port for playing over a local network, a slot for a micro SD card up to 128GB, built-in weak hardware + a black and white screen in the gamepad itself to create a separate portable console on batteries / accumulators, support keyboard + mouse, light gun and transformer steering wheel (car, motorcycle, helicopter, boat and spaceship). And the most important thing in our future console is that it will make nostalgic adults buy our console again and again: 1)The same Operating System from your video. 2) And the coolest thing is the built-in game designer without programming. To date, the most convenient for me is the program for creating games Scirra Construct2. It is its weaker counterpart that can be assembled for our console. A little about myself: My name is Vitaly Orlov, I am 44 years old, I am an experienced game designer-screenwriter + 2D and 3D artist + pixel art animation + developer of 2d games on the same Scirra Construct 2. Data for contacting me. Skype: VitaliyOrlov3 Mail: scorpion438@yandex.ru There is also a concept of how to create a unique portable gaming console from a Rubik's Cube in the style of the recently released "PlayDate" with its handle on the side.

    @user-sf6xg2so7t@user-sf6xg2so7t Жыл бұрын
    • Sounds cool

      @WildVoltorb@WildVoltorb Жыл бұрын
  • "Why?" A better question would be "how?" *Proceeds to answer the question "what?"*

    @russellg5022@russellg5022 Жыл бұрын
  • Just downloaded it - looking forward to trying it!

    @RetroJack@RetroJack Жыл бұрын
  • That is incredible! Now the final touch is to put this in a reproduction cartridge and print a custom nes box for it. Great job!

    @lenzanari@lenzanari Жыл бұрын
  • Should have called it NEOS (Nintendo Entertainment Operating System)

    @f4keinternetgrll820@f4keinternetgrll820 Жыл бұрын
  • Why in Kanji if the NES was made for an English market? Would make more sense if you built "FamiconOS" instead of NESOS.

    @piousminion7822@piousminion7822 Жыл бұрын
  • My man used my favorite music from all my favorite obscure NES games. Lunar Pool and Gun Nac are two that I have in my collection!!

    @kip258@kip258 Жыл бұрын
  • wow impressive stuff. People are creating in all the consoles, amazing!

    @fuarkstyle@fuarkstyle10 ай бұрын
  • can you please fix it most emulators on pc don't want to run it when it does it has like 9999 ways of crashing. it says there's a cpu error

    @joshuajerome1997@joshuajerome19974 ай бұрын
  • This is an app. Not an OS

    @sirkastic@sirkastic Жыл бұрын
    • An app requires an OS

      @GDT-Studio@GDT-Studio29 күн бұрын
    • @@GDT-Studio And an OS runs Apps. Show me an App this runs

      @sirkastic@sirkastic27 күн бұрын
  • Brilliant. Excellent study in resource management. Very impressive.

    @NOPerative@NOPerative Жыл бұрын
  • who could forget the NESOS paint app. I used to use that all the time back in the day.

    @SamLabbato@SamLabbato Жыл бұрын
  • Does it run DOOM? :p

    @b3ans4eva@b3ans4eva Жыл бұрын
    • LMAO! 🙂

      @totallybonkers76@totallybonkers76 Жыл бұрын
  • What a complete waste of time and effort for something absolutely useless and serves no purpose at all. I love it.

    @finkelmana@finkelmana Жыл бұрын
  • My kid is getting into hardware and engineering type stuff. Gonna use some of your tutorials and see what we can come up with this summer

    @namco003@namco00311 ай бұрын
  • This is actually insane! Great job man. This is really cool 😎

    @mystikgaming9016@mystikgaming9016 Жыл бұрын
  • Reminds me of those mock OSes that come with Famiclones mimicking that of Windows 98 and later.

    @therealsnowwhite1937@therealsnowwhite1937 Жыл бұрын
  • Man that's beautiful. Well done

    @Abraham_doestech@Abraham_doestech Жыл бұрын
  • An excellent video turned out, everything is well thought out, a very clear instruction turned out)))

    @mathskadarr254@mathskadarr254 Жыл бұрын
  • This is so cool and I can't wait to try it out!

    @vampirelegs@vampirelegs Жыл бұрын
  • Wow, this is really cool. Nice work!

    @idioticcake342@idioticcake342 Жыл бұрын
  • This video made me think about what criteria can be used to separate operating systems and regular programs.

    @sdjhgfkshfswdfhskljh3360@sdjhgfkshfswdfhskljh3360 Жыл бұрын
  • Excellent work, man! :) Your channel is about to blow up. 🙌

    @TechLokal@TechLokal Жыл бұрын
  • 1.18k subscribers... you're going to be famous soon... I'm calling it! 🤞

    @TheWigglyLine@TheWigglyLine Жыл бұрын
    • Hehe probably! - bit random but I also found his nerdy voice super hot 😈 I'm a bit of an oddball

      @xaxabogbart@xaxabogbart Жыл бұрын
  • Okay, this was pretty cool, great work!

    @CesarRosasJr@CesarRosasJr Жыл бұрын
  • This was fantastic! Thanks for sharing

    @superbritbros.5793@superbritbros.5793 Жыл бұрын
  • The cursor options are fantastic! But it would make more sense for the UI to be friendlier to button inputs instead of a mouse cursor. A great example is how modern console UIs look (PS5, XBOX, Switch).

    @gabrieleiro4181@gabrieleiro4181 Жыл бұрын
  • Wow! Great work! Congrats!

    @douglasemsantos@douglasemsantos Жыл бұрын
  • This was very interesting. Thank you for sharting.

    @ZeroStako@ZeroStako Жыл бұрын
  • Is it hard waking up everyday knowing what kind of actual Chad you are? Amazing stuff!

    @livefreeprintguns@livefreeprintguns Жыл бұрын
  • This is really neat! Awesome job!!!

    @TrevinAdams@TrevinAdams Жыл бұрын
  • Congrats on 1K!

    @plumjet0930@plumjet0930 Жыл бұрын
  • This is amazing! I always thought about someone doing this.

    @EthanMLego@EthanMLego7 ай бұрын
  • subscribed. youre awesome buddy. cant wait to see what you do in the future.

    @pierorago2353@pierorago2353 Жыл бұрын
  • I’d been meaning to make something like this! Great work!

    @notanimposter@notanimposter Жыл бұрын
  • Amazing work! Thank you!

    @mjsteelewasabipunk6091@mjsteelewasabipunk6091 Жыл бұрын
  • it's like over complicated post it notes. I love it

    @jamesfloyd6693@jamesfloyd6693 Жыл бұрын
  • Thank you so much this helped a lot!!!! You saved my life

    @FREESHMEAT@FREESHMEAT Жыл бұрын
  • This is a beautiful project

    @asadityas67@asadityas67 Жыл бұрын
  • This is an awesome idea!!! Amazing job!

    @champion_991@champion_991 Жыл бұрын
KZhead