Creating an Operating System for the NES

แชร์
ฝัง
  • เผยแพร่เมื่อ 21 ก.ย. 2022
  • 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...
  • วิทยาศาสตร์และเทคโนโลยี

ความคิดเห็น • 1.2K

  • @decrazyo
    @decrazyo ปีที่แล้ว +2866

    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.

    • @keytester2733
      @keytester2733 ปีที่แล้ว +123

      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)

    • @famitory
      @famitory ปีที่แล้ว +96

      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

    • @Bobbias
      @Bobbias ปีที่แล้ว +12

      @@keytester2733 this is really cool. Keep up the awesome work!

    • @keytester2733
      @keytester2733 ปีที่แล้ว +13

      @@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

    • @zulc22
      @zulc22 ปีที่แล้ว +10

      @@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.

  • @leomassafm160
    @leomassafm160 ปีที่แล้ว +1102

    Now it truly lives up to the name "Family Computer".

    • @YetAnotherJohnSmith
      @YetAnotherJohnSmith ปีที่แล้ว +46

      Ok guys. He won the internet. We can all go home now.
      *as i stare off to the sky sipping on my coffee*

    • @meyers0781
      @meyers0781 ปีที่แล้ว +31

      Well there was Family Basic which allows simple programming and even saving made apps to diskette

    • @magnus87
      @magnus87 ปีที่แล้ว +3

      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

    • @squigole
      @squigole ปีที่แล้ว

      400th like and 4th reply

    • @leomassafm160
      @leomassafm160 ปีที่แล้ว +3

      @@squigole congrats. who cares?

  • @BalancedSpirit79
    @BalancedSpirit79 ปีที่แล้ว +1313

    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.”

    • @kreuner11
      @kreuner11 ปีที่แล้ว +57

      Contiki works on C64, it has much more memory which means it's easier to do

    • @BalancedSpirit79
      @BalancedSpirit79 ปีที่แล้ว +4

      @@mr_indie_fan Oh I have that faved already; that was insane!! :D

    • @mmazurr
      @mmazurr ปีที่แล้ว +19

      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.

    • @stanb1455
      @stanb1455 ปีที่แล้ว +2

      @@mr_indie_fan Of course, SuperRT is a piece of expansion hardware, these OS projects are only intended for running on Bone Stock consoles.

    • @kreuner11
      @kreuner11 ปีที่แล้ว

      @@mmazurr contiki on the C64 renderd it at a snails pace, without the ability to scroll the site, just autoscrolling while interpreting HTML

  • @DarkStar181992
    @DarkStar181992 ปีที่แล้ว +241

    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.

    • @admoran777
      @admoran777 ปีที่แล้ว +17

      If only the real NES was the same…

    • @r0ckt3hc4sb4h
      @r0ckt3hc4sb4h ปีที่แล้ว +3

      Do you remember its name?

    • @Iamnotrandom565
      @Iamnotrandom565 ปีที่แล้ว +15

      ​@@r0ckt3hc4sb4h windows 98 comes up in my mind

    • @yerdnAAA
      @yerdnAAA 11 หลายเดือนก่อน +40

      ​@@r0ckt3hc4sb4hIn Russia such bootleg NES was called "Magistr Repetitor" (Магистр Репетитор) and had bootleg Excel, Word, Basic

    • @freeculture
      @freeculture 11 หลายเดือนก่อน +17

      @@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.

  • @tnomad
    @tnomad ปีที่แล้ว +1158

    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.

    • @InkboxSoftware
      @InkboxSoftware  ปีที่แล้ว +372

      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.

    • @DJMotorbike
      @DJMotorbike ปีที่แล้ว +79

      @@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.

    • @vuurniacsquarewave5091
      @vuurniacsquarewave5091 ปีที่แล้ว +29

      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.

    • @brandontechnerd
      @brandontechnerd ปีที่แล้ว +6

      @@vuurniacsquarewave5091 Same as the INT BIOS calls in x86 IBM PC systems

    • @istrasci
      @istrasci ปีที่แล้ว +5

      I should have read this comment before posting essentially the same thing.

  • @jadeglaze3390
    @jadeglaze3390 ปีที่แล้ว +199

    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 ปีที่แล้ว +41

      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.

    • @kargaroc386
      @kargaroc386 11 หลายเดือนก่อน +3

      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

    • @greenaum
      @greenaum 11 หลายเดือนก่อน +10

      @@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.

    • @niallmcardle7
      @niallmcardle7 10 หลายเดือนก่อน

      Take your bytes, and your goals will come!

  • @JiakunLi
    @JiakunLi ปีที่แล้ว +90

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

    • @me67galaxylife
      @me67galaxylife 9 หลายเดือนก่อน

      Ching chang

    • @MrLind87
      @MrLind87 9 หลายเดือนก่อน +4

      If you could watch the video that means you can understand English, so why did you write down your comment in Chinese?

    • @JiakunLi
      @JiakunLi 9 หลายเดือนก่อน +16

      @@MrLind87 因为我是中国人。

    • @MrLind87
      @MrLind87 9 หลายเดือนก่อน +3

      ​@@JiakunLiI am Costarrican but I'm not speaking in Spanish because of that lol

    • @sfeee2677
      @sfeee2677 9 หลายเดือนก่อน +5

      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.

  • @BrowncoatInABox
    @BrowncoatInABox ปีที่แล้ว +34

    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

    • @alvallac2171
      @alvallac2171 ปีที่แล้ว +4

      *an operating (because "operating" starts with a vowel sound)
      *NES, this (to fix your sentence fragment)

    • @BrowncoatInABox
      @BrowncoatInABox ปีที่แล้ว +1

      @@alvallac2171 I was on the moon when I wrote that comment and I regret nothing

    • @PhantomOfficial07
      @PhantomOfficial07 ปีที่แล้ว

      @@alvallac2171 You're being pedantic and annoying.

    • @stellarbastard98
      @stellarbastard98 ปีที่แล้ว +1

      @@alvallac2171 first grammar comment I see that isn't rude and actually explains the logic behind the correct spelling, well done!

    • @entx8491
      @entx8491 ปีที่แล้ว +3

      @@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.

  • @NathanielBandy
    @NathanielBandy ปีที่แล้ว +265

    This is super cool, definitely gonna try itout

    • @gabrielrochasilva
      @gabrielrochasilva ปีที่แล้ว +2

      Oh, look who is here!

    • @SirLiamTheGreat
      @SirLiamTheGreat ปีที่แล้ว +5

      nathanl b

    • @patrickst_ar
      @patrickst_ar ปีที่แล้ว +1

      is this Nathaniel B?

    • @rrq
      @rrq ปีที่แล้ว

      @@patrickst_ar yeah that is

    • @movedsm1332
      @movedsm1332 ปีที่แล้ว +3

      OMG NATHANIEL BANDY!!!! :D

  • @marioalfonsoarreolaa.flore2882
    @marioalfonsoarreolaa.flore2882 ปีที่แล้ว +129

    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.

  • @steventechno
    @steventechno ปีที่แล้ว +94

    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!

    • @joedirt3563
      @joedirt3563 ปีที่แล้ว +1

      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.

    • @dasheru
      @dasheru ปีที่แล้ว +1

      @@joedirt3563 livecd?

    • @joedirt3563
      @joedirt3563 ปีที่แล้ว +2

      @@dasheru that might have been it. I can try and find if your interested.

    • @dasheru
      @dasheru ปีที่แล้ว +1

      ​@@joedirt3563 nah, I'm good. "livecd" is just the blanket term for an external storage device that has a bootable OS installed on it.

    • @stupidfuckingrat
      @stupidfuckingrat ปีที่แล้ว

      @@joedirt3563 livecd doesn’t let you save anything permanently. It’s like you install it on a flash drive.

  • @samaiello7543
    @samaiello7543 ปีที่แล้ว +15

    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.

  • @DavidSikesII
    @DavidSikesII ปีที่แล้ว +47

    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.

  • @notthatfatboy6519
    @notthatfatboy6519 ปีที่แล้ว +6

    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!

  • @promaster424
    @promaster424 ปีที่แล้ว +5

    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

  • @carecoable
    @carecoable ปีที่แล้ว +162

    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!

    • @alysdexia
      @alysdexia ปีที่แล้ว +6

      “that”

    • @RonLaws
      @RonLaws ปีที่แล้ว +3

      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.

    • @pinkie723
      @pinkie723 ปีที่แล้ว

      @@RonLaws *lock on technology!!!!* 🤯

  • @goofbug5328
    @goofbug5328 ปีที่แล้ว +18

    Wild how such an amazing channel has so few subscribers, really interesting work!

  • @mastersummersjr
    @mastersummersjr ปีที่แล้ว +5

    Very clever use of a system not at all designed for a general purpose OS. Awesome work, man!

  • @flyinghippo5767
    @flyinghippo5767 10 หลายเดือนก่อน

    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!

  • @KartKing4ever
    @KartKing4ever ปีที่แล้ว +1

    Some of the coolest stuff I've ever seen done on an NES.

  • @popyui7497
    @popyui7497 ปีที่แล้ว +7

    Incredible!, what an accomplishment for an 8 bit computer from the 80's

  • @Bro3256
    @Bro3256 ปีที่แล้ว +50

    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 ปีที่แล้ว +8

      (NESOS more like FamiOS am I right)

    • @doomedtoobscurity3965
      @doomedtoobscurity3965 ปีที่แล้ว +2

      @@Bro3256 we need a snesos and an n64os

  • @SamCampbell
    @SamCampbell 11 หลายเดือนก่อน +1

    This is awesome! I'm always floored by the ingenuity of custom ROMs like this.

  • @grantm7046
    @grantm7046 9 หลายเดือนก่อน +1

    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

  • @xBruceLee88x
    @xBruceLee88x ปีที่แล้ว +52

    I wonder if you could add a basic calculator to it
    Pretty neat that you got it working this well

    • @Determinator21
      @Determinator21 ปีที่แล้ว

      You could make a calculator with that

    • @idiotontheweb
      @idiotontheweb ปีที่แล้ว +1

      Everyone gangsta until you divide by 0

    • @xBruceLee88x
      @xBruceLee88x ปีที่แล้ว

      Then multiply by -0

    • @QuantumScratcher
      @QuantumScratcher 11 หลายเดือนก่อน

      @@xBruceLee88x -0 doesn't exist, the closest you can get is multiplying by 0

    • @JeoshuaCollins
      @JeoshuaCollins 11 หลายเดือนก่อน +2

      ​@@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)."

  • @itsgruz
    @itsgruz ปีที่แล้ว +11

    This is an amazing project and a fantastic video! Hope to see this evolve!

    • @istrasci
      @istrasci ปีที่แล้ว +2

      What up gruz!! You're awesome!

    • @AndyBrearley
      @AndyBrearley ปีที่แล้ว +2

      Game Genie codes for NESOS… 😅

    • @Typical.Anomaly
      @Typical.Anomaly ปีที่แล้ว +1

      @@AndyBrearley BGATES = A blue screen?

    • @AndyBrearley
      @AndyBrearley ปีที่แล้ว

      @@Typical.Anomaly 😂

  • @kanesmith8271
    @kanesmith8271 ปีที่แล้ว +2

    Good to see that the new generation of creative minds has finally matured

  • @mattgio1172
    @mattgio1172 ปีที่แล้ว +2

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

  • @MrMegaManFan
    @MrMegaManFan ปีที่แล้ว +11

    This is certainly more functional than that “Windows 95” for NES that was just a mock-up of a desktop with no real abilities.

    • @CrappyMusic-cb6bl
      @CrappyMusic-cb6bl 7 หลายเดือนก่อน +1

      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.

  • @suntannedduck2388
    @suntannedduck2388 ปีที่แล้ว +3

    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.

  • @rockkiall
    @rockkiall ปีที่แล้ว

    Incredible work! I am glad you save some space for more in the future.

  • @maxios-7613
    @maxios-7613 ปีที่แล้ว

    its so amazing that there is people who comes with these ideas and actually make it happen

  • @draconic5129
    @draconic5129 ปีที่แล้ว +19

    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 ปีที่แล้ว +2

      @MagicJungle7053 I wasn't talking about using sound samples I was just talking about using the sound chip's voices.

  • @ocpmovie
    @ocpmovie ปีที่แล้ว +52

    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 TH-cam 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 ปีที่แล้ว +2

      @@destructodisk9074 No, you have misunderstood based on a lack of experience with this stuff.

    • @Stillxxen
      @Stillxxen ปีที่แล้ว +7

      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!

    • @-Juba-
      @-Juba- ปีที่แล้ว +2

      @@Stillxxen Same here

    • @eddievids5033
      @eddievids5033 ปีที่แล้ว +1

      @@Stillxxen me too! it was great! The text editor even have printing functionality.

    • @Stillxxen
      @Stillxxen ปีที่แล้ว

      @@eddievids5033 wow, my wasn't so advanced :D. I could write, But without "printing" Part.

  • @WSNO
    @WSNO ปีที่แล้ว +1

    This is brilliant. Would love to see this idea expanded upon and to see a cartridge i could run on my own NES someday

  • @Captureman
    @Captureman ปีที่แล้ว +1

    Thank you for experimenting with the NES. I love what you do!

  • @goranjosic
    @goranjosic ปีที่แล้ว +5

    Man this is so underated! More people need to see this video! :)

  • @michaelwarner7815
    @michaelwarner7815 ปีที่แล้ว +3

    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.

  • @lenzanari
    @lenzanari ปีที่แล้ว +1

    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!

  • @theconfusingwords
    @theconfusingwords ปีที่แล้ว

    This is an impressive project you pulled off here, thanks for sharing

  • @GXSCChater
    @GXSCChater ปีที่แล้ว +5

    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.

  • @jengelenm
    @jengelenm ปีที่แล้ว +11

    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!!!!

    • @megapro1725
      @megapro1725 ปีที่แล้ว +1

      Change your profile pic

    • @XENON2028
      @XENON2028 ปีที่แล้ว +2

      @@megapro1725 dude he doesn't have to

    • @megapro1725
      @megapro1725 ปีที่แล้ว +1

      @@XENON2028 nobody has to put terrorist state flag in

    • @XENON2028
      @XENON2028 ปีที่แล้ว +4

      @@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

    • @elimalinsky7069
      @elimalinsky7069 11 หลายเดือนก่อน +2

      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.

  • @ironrion
    @ironrion ปีที่แล้ว +1

    What a remarkable feat. Subbed for this video. Thank you so much for creating badass content like this

  • @EricGranata
    @EricGranata ปีที่แล้ว +2

    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!

  • @Cyber_Akuma
    @Cyber_Akuma ปีที่แล้ว +3

    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.

  • @stephblackcat
    @stephblackcat ปีที่แล้ว +4

    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.

  • @mystikgaming9016
    @mystikgaming9016 ปีที่แล้ว

    This is actually insane! Great job man. This is really cool 😎

  • @mattzocrazy123
    @mattzocrazy123 ปีที่แล้ว +2

    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.

    • @Schule04
      @Schule04 หลายเดือนก่อน

      Nintendo made Family Basic, which is far more advanced than this.

  • @CerisuHakka
    @CerisuHakka ปีที่แล้ว +3

    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.

  • @SireSquish
    @SireSquish ปีที่แล้ว +7

    Please do one for the master system so that we can argue about which one is better.

  • @TechLokal
    @TechLokal ปีที่แล้ว

    Excellent work, man! :) Your channel is about to blow up. 🙌

  • @sdjhgfkshfswdfhskljh3360
    @sdjhgfkshfswdfhskljh3360 ปีที่แล้ว +1

    It's fun to do something first, and then think about why you did it and how it can be used in practice.

  • @vampiric162
    @vampiric162 ปีที่แล้ว +8

    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.

    • @lugxnyt2310
      @lugxnyt2310 ปีที่แล้ว +1

      Yeah it'd be cool to see how a Raspberry Pi Pico/Zero could be used in a NES, or Famicom.

    • @vampiric162
      @vampiric162 ปีที่แล้ว

      @@lugxnyt2310 yup

  • @GabrielPerboni
    @GabrielPerboni ปีที่แล้ว +9

    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!

  • @metal_bird
    @metal_bird ปีที่แล้ว +1

    Very cool! Awesome work on the implementation and explanation!

  • @sdjhgfkshfswdfhskljh3360
    @sdjhgfkshfswdfhskljh3360 ปีที่แล้ว

    This video made me think about what criteria can be used to separate operating systems and regular programs.

  • @tombert512
    @tombert512 ปีที่แล้ว +9

    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?

    • @adamp9553
      @adamp9553 11 หลายเดือนก่อน +2

      Technically the SNES mouse can be used with the NES. It's the same tech. Only the plug needs to be changed.

    • @LongueQueueChat3
      @LongueQueueChat3 11 หลายเดือนก่อน

      @@adamp9553 wow

  • @tehrobotjesus
    @tehrobotjesus ปีที่แล้ว +11

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

  • @namco003
    @namco003 10 หลายเดือนก่อน

    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

  • @NOPerative
    @NOPerative ปีที่แล้ว

    Brilliant. Excellent study in resource management. Very impressive.

  • @UnrealSolver
    @UnrealSolver ปีที่แล้ว +3

    I love to watch people with skills to build something like this, you deserve more subs and attention 🍻
    That’s hella cool 🔥

  • @russellg5022
    @russellg5022 ปีที่แล้ว +3

    "Why?" A better question would be "how?" *Proceeds to answer the question "what?"*

  • @fuarkstyle
    @fuarkstyle 9 หลายเดือนก่อน

    wow impressive stuff. People are creating in all the consoles, amazing!

  • @kip258
    @kip258 ปีที่แล้ว

    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!!

  • @f4keinternetgrll820
    @f4keinternetgrll820 ปีที่แล้ว +5

    Should have called it NEOS (Nintendo Entertainment Operating System)

  • @joshuajerome1997
    @joshuajerome1997 4 หลายเดือนก่อน +3

    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

  • @RetroJack
    @RetroJack ปีที่แล้ว

    Just downloaded it - looking forward to trying it!

  • @TheRogueMaverick
    @TheRogueMaverick ปีที่แล้ว +1

    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!

  • @user-sf6xg2so7t
    @user-sf6xg2so7t ปีที่แล้ว +5

    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.

  • @sirkastic
    @sirkastic ปีที่แล้ว +5

    This is an app. Not an OS

    • @GDT-Studio
      @GDT-Studio วันที่ผ่านมา

      An app requires an OS

  • @plumjet0930
    @plumjet0930 ปีที่แล้ว +1

    Congrats on 1K!

  • @AD-2020
    @AD-2020 10 หลายเดือนก่อน

    I've often wondered about this. Well done on doing this and thanks for sharing

  • @piousminion7822
    @piousminion7822 ปีที่แล้ว +3

    Why in Kanji if the NES was made for an English market? Would make more sense if you built "FamiconOS" instead of NESOS.

  • @b3ans4eva
    @b3ans4eva ปีที่แล้ว +3

    Does it run DOOM? :p

  • @SamLabbato
    @SamLabbato ปีที่แล้ว

    who could forget the NESOS paint app. I used to use that all the time back in the day.

  • @finkelmana
    @finkelmana 11 หลายเดือนก่อน +3

    What a complete waste of time and effort for something absolutely useless and serves no purpose at all. I love it.

  • @alejandrovivas1027
    @alejandrovivas1027 ปีที่แล้ว

    What a legend only one ad in the beginning . Your so damn underrated

  • @firasnizam
    @firasnizam 6 หลายเดือนก่อน

    good work, thanks for sharing

  • @Disthron
    @Disthron ปีที่แล้ว +1

    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.

  • @idioticcake342
    @idioticcake342 ปีที่แล้ว

    Wow, this is really cool. Nice work!

  • @gwalla
    @gwalla ปีที่แล้ว

    AIUI tilemap backgrounds really evolved from text display so implementing text like that seems pretty natural.

  • @Abraham_doestech
    @Abraham_doestech ปีที่แล้ว

    Man that's beautiful. Well done

  • @TrevinAdams
    @TrevinAdams ปีที่แล้ว

    This is really neat! Awesome job!!!

  • @syntaxerror9994
    @syntaxerror9994 ปีที่แล้ว

    Alternative typing method:
    Holding A makes a cross representing the control pad appear. The four directions are labeled "Upper case, Lower case, numbers, and space.
    Pressing the direction for space is obvious but pressing for example lowercase replaces the labels with the alphabet broken into three "ranges" with the fourth being a "go back" option.
    Going into a letter range breaks down those letters into three sub ranges and finally three letter options to print.
    The Upper case and numbers work the same way with numbers also including symbols and punctuation.
    It sounds complicated but I had a smart watch app that let me text like this with only three buttons and you get used to it really quickly and can type much faster than traditional control pad typing methods.
    So for example a lower case A would be Left (lower case), left (A-I), left (A-C) left (A)

  • @jamesfloyd6693
    @jamesfloyd6693 ปีที่แล้ว

    it's like over complicated post it notes. I love it

  • @vampirelegs
    @vampirelegs ปีที่แล้ว

    This is so cool and I can't wait to try it out!

  • @Gunbudder
    @Gunbudder ปีที่แล้ว +1

    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)!

  • @1lovesgreatness
    @1lovesgreatness 7 หลายเดือนก่อน

    Great Job! I love it.

  • @notanimposter
    @notanimposter ปีที่แล้ว

    I’d been meaning to make something like this! Great work!

  • @something2424
    @something2424 7 หลายเดือนก่อน

    Seeimg this run native on a real system would be so awesome, great work!

  • @CesarRosasJr
    @CesarRosasJr ปีที่แล้ว

    Okay, this was pretty cool, great work!

  • @asadityas67
    @asadityas67 ปีที่แล้ว

    This is a beautiful project

  • @evanbarnes9984
    @evanbarnes9984 ปีที่แล้ว

    Damn this is cool! I don't have an NES and will probably never have a chance to try this, but it's seriously impressive

  • @livefreeprintguns
    @livefreeprintguns ปีที่แล้ว +1

    Is it hard waking up everyday knowing what kind of actual Chad you are? Amazing stuff!

  • @mathskadarr254
    @mathskadarr254 ปีที่แล้ว

    An excellent video turned out, everything is well thought out, a very clear instruction turned out)))

  • @superbritbros.5793
    @superbritbros.5793 11 หลายเดือนก่อน

    This was fantastic! Thanks for sharing

  • @douglasemsantos
    @douglasemsantos ปีที่แล้ว

    Wow! Great work! Congrats!

  • @gabrieleiro4181
    @gabrieleiro4181 ปีที่แล้ว +2

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

  • @EthanMLego
    @EthanMLego 6 หลายเดือนก่อน

    This is amazing! I always thought about someone doing this.

  • @champion_991
    @champion_991 ปีที่แล้ว

    This is an awesome idea!!! Amazing job!