Creating an Operating System for the NES

  Рет қаралды 784,430

Inkbox

Inkbox

Күн бұрын

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...
Resources:
Windows 98 for Famicom (this is a Chinese mockup of Windows 98 for the Famicom/NES and isn't really functional)
archive.org/de...
NES Programming Resources:
www.nesdev.org...
NES CPU Memory Map
www.nesdev.org...

Пікірлер: 1 200
@decrazyo
@decrazyo 2 жыл бұрын
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 2 жыл бұрын
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 2 жыл бұрын
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 2 жыл бұрын
@@keytester2733 this is really cool. Keep up the awesome work!
@keytester2733
@keytester2733 2 жыл бұрын
@@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 2 жыл бұрын
@@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.
@BalancedSpirit79
@BalancedSpirit79 2 жыл бұрын
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 2 жыл бұрын
Contiki works on C64, it has much more memory which means it's easier to do
@BalancedSpirit79
@BalancedSpirit79 2 жыл бұрын
@@mr_indie_fan Oh I have that faved already; that was insane!! :D
@mmazurr
@mmazurr 2 жыл бұрын
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.
@Cmdrbzrd
@Cmdrbzrd 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 2 жыл бұрын
@@mmazurr contiki on the C64 renderd it at a snails pace, without the ability to scroll the site, just autoscrolling while interpreting HTML
@JiakunLi
@JiakunLi 2 жыл бұрын
在中国的1995年前后,有一种NES兼容机叫「小霸王学习机」。那部机器确实自带了OS系统,其中包含了Basic语言环境,带磁盘读写的文件操作。同时这个系统还包含了游戏编程,打字练习,文件处理等其他功能。感谢你让我回忆起了这些。
@me67galaxylife
@me67galaxylife Жыл бұрын
Ching chang
@MrLind87
@MrLind87 Жыл бұрын
If you could watch the video that means you can understand English, so why did you write down your comment in Chinese?
@JiakunLi
@JiakunLi Жыл бұрын
@@MrLind87 因为我是中国人。
@MrLind87
@MrLind87 Жыл бұрын
​@@JiakunLiI am Costarrican but I'm not speaking in Spanish because of that lol
@sfeee2677
@sfeee2677 Жыл бұрын
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.
@jadeglaze3390
@jadeglaze3390 2 жыл бұрын
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 2 жыл бұрын
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 Жыл бұрын
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 Жыл бұрын
@@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 Жыл бұрын
Take your bytes, and your goals will come!
@leomassafm160
@leomassafm160 2 жыл бұрын
Now it truly lives up to the name "Family Computer".
@YetAnotherJohnSmith
@YetAnotherJohnSmith 2 жыл бұрын
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 2 жыл бұрын
Well there was Family Basic which allows simple programming and even saving made apps to diskette
@magnus87
@magnus87 2 жыл бұрын
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 2 жыл бұрын
400th like and 4th reply
@leomassafm160
@leomassafm160 2 жыл бұрын
@@squigole congrats. who cares?
@BrowncoatInABox
@BrowncoatInABox 2 жыл бұрын
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 2 жыл бұрын
*an operating (because "operating" starts with a vowel sound) *NES, this (to fix your sentence fragment)
@BrowncoatInABox
@BrowncoatInABox 2 жыл бұрын
@@alvallac2171 I was on the moon when I wrote that comment and I regret nothing
@PhantomOfficial07
@PhantomOfficial07 2 жыл бұрын
@@alvallac2171 You're being pedantic and annoying.
@stellarbastard98
@stellarbastard98 Жыл бұрын
@@alvallac2171 first grammar comment I see that isn't rude and actually explains the logic behind the correct spelling, well done!
@entx8491
@entx8491 Жыл бұрын
@@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.
@marioalfonsoarreolaa.flore2882
@marioalfonsoarreolaa.flore2882 2 жыл бұрын
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 2 жыл бұрын
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 2 жыл бұрын
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 2 жыл бұрын
@@joedirt3563 livecd?
@joedirt3563
@joedirt3563 2 жыл бұрын
@@dasheru that might have been it. I can try and find if your interested.
@dasheru
@dasheru 2 жыл бұрын
​@@joedirt3563 nah, I'm good. "livecd" is just the blanket term for an external storage device that has a bootable OS installed on it.
@weegeenumberone2
@weegeenumberone2 2 жыл бұрын
@@joedirt3563 livecd doesn’t let you save anything permanently. It’s like you install it on a flash drive.
@DavidSikesII
@DavidSikesII 2 жыл бұрын
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.
@itsgruz
@itsgruz 2 жыл бұрын
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 2 жыл бұрын
@@AndyBrearley BGATES = A blue screen?
@AndyBrearley
@AndyBrearley 2 жыл бұрын
@@Typical.Anomaly 😂
@popyui7497
@popyui7497 2 жыл бұрын
Incredible!, what an accomplishment for an 8 bit computer from the 80's
@GabrielPerboni
@GabrielPerboni Жыл бұрын
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!
@russellg5022
@russellg5022 2 жыл бұрын
"Why?" A better question would be "how?" *Proceeds to answer the question "what?"*
@goofbug5328
@goofbug5328 2 жыл бұрын
Wild how such an amazing channel has so few subscribers, really interesting work!
@mattzocrazy123
@mattzocrazy123 Жыл бұрын
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 6 ай бұрын
Nintendo made Family Basic, which is far more advanced than this.
@mastersummersjr
@mastersummersjr 2 жыл бұрын
Very clever use of a system not at all designed for a general purpose OS. Awesome work, man!
@kanesmith8271
@kanesmith8271 2 жыл бұрын
Good to see that the new generation of creative minds has finally matured
@jengelenm
@jengelenm 2 жыл бұрын
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 Жыл бұрын
Change your profile pic
@XENON2028
@XENON2028 Жыл бұрын
@@megapro1725 dude he doesn't have to
@megapro1725
@megapro1725 Жыл бұрын
@@XENON2028 nobody has to put terrorist state flag in
@XENON2028
@XENON2028 Жыл бұрын
@@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 Жыл бұрын
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.
@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!
@KartKing4ever
@KartKing4ever 2 жыл бұрын
Some of the coolest stuff I've ever seen done on an NES.
@oglothenerd
@oglothenerd Жыл бұрын
Is it open source?
@grantm7046
@grantm7046 Жыл бұрын
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
@Bro3256
@Bro3256 2 жыл бұрын
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 2 жыл бұрын
(NESOS more like FamiOS am I right)
@doomedtoobscurity3965
@doomedtoobscurity3965 Жыл бұрын
@@Bro3256 we need a snesos and an n64os
@Gunbudder
@Gunbudder 2 жыл бұрын
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)!
@Iamgavinsteele.1985
@Iamgavinsteele.1985 2 жыл бұрын
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.
@TheRogueMaverick
@TheRogueMaverick 2 жыл бұрын
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!
@stephblackcat
@stephblackcat 2 жыл бұрын
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.
@Disthron
@Disthron 2 жыл бұрын
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.
@CerisuHakka
@CerisuHakka 2 жыл бұрын
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.
@Amanda_Huginkiss
@Amanda_Huginkiss 22 күн бұрын
This was the exact project I wanted to pursue and of course, you of all people, would do it. Love it.
@vampiric162
@vampiric162 2 жыл бұрын
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 2 жыл бұрын
Yeah it'd be cool to see how a Raspberry Pi Pico/Zero could be used in a NES, or Famicom.
@vampiric162
@vampiric162 2 жыл бұрын
@@lugxnyt2310 yup
@CassyK04
@CassyK04 3 ай бұрын
Whenever I heard "Message In A Bottle" by The Police when I was younger I kept hearing the end chorus as "Send another NES OS" and this is pretty much what I visualized in my head
@SamLabbato
@SamLabbato 2 жыл бұрын
who could forget the NESOS paint app. I used to use that all the time back in the day.
@suntannedduck2388
@suntannedduck2388 2 жыл бұрын
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.
@UnrealSolver
@UnrealSolver 2 жыл бұрын
I love to watch people with skills to build something like this, you deserve more subs and attention 🍻 That’s hella cool 🔥
@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).
@Cyber_Akuma
@Cyber_Akuma 2 жыл бұрын
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.
@kip258
@kip258 2 жыл бұрын
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!!
@SireSquish
@SireSquish 2 жыл бұрын
Please do one for the master system so that we can argue about which one is better.
@SamCampbell
@SamCampbell Жыл бұрын
This is awesome! I'm always floored by the ingenuity of custom ROMs like this.
@tombert512
@tombert512 2 жыл бұрын
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 Жыл бұрын
Technically the SNES mouse can be used with the NES. It's the same tech. Only the plug needs to be changed.
@LongTailCat3
@LongTailCat3 Жыл бұрын
@@adamp9553 wow
@flyinghippo5767
@flyinghippo5767 Жыл бұрын
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!
@GXSCChater
@GXSCChater 2 жыл бұрын
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.
@livefreeprintguns
@livefreeprintguns 2 жыл бұрын
Is it hard waking up everyday knowing what kind of actual Chad you are? Amazing stuff!
@namco003
@namco003 Жыл бұрын
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
@jamesfloyd6693
@jamesfloyd6693 2 жыл бұрын
it's like over complicated post it notes. I love it
@JontyLevine
@JontyLevine 7 ай бұрын
A little known fact about the Nintendo Entertainment System is that, due to the system's ubiquity, there was a time in the 80s when, since very few people owned computers, there were plans to release office software for it and, at one point, even an entire operating system. Gordon "Sting" Sumner of The Police, a group that had at the time come into a lot of money, invested heavily in the latter project, reasoning that eventually this (or an OS like it) would be used to create music. Nintendo of America sent their top investors copies of the software to try out, of which Sting was one of them, but the product never made it to market. To this day, the operating system was thought to be lost media. Nintendo had a habit of deleting their source code at the time and do not have a copy of the software they wrote. More recently however, it has come to light that Sting still owns one of the cartridges and, working with the emulation community, has made plans to release it to the general public. He's sending out a NES OS. Sending out a NES OS Sending out a NES OS Sending out a NES OS Sending out a NES OS Sending out a NES OS Sending out a NES OS Sending out a NES OS (I apologise for nothing. I saw this joke years ago and, having found no trace of it on the open Internet, rewrote it from memory.)
@tehrobotjesus
@tehrobotjesus 2 жыл бұрын
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 :)
@syntaxerror9994
@syntaxerror9994 2 жыл бұрын
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)
@f4keinternetgrll820
@f4keinternetgrll820 2 жыл бұрын
Should have called it NEOS (Nintendo Entertainment Operating System)
@Diamond_Tiara
@Diamond_Tiara 2 жыл бұрын
the original NES was designed with a keyboard and as being a home computer akin to Commodore, Atari, Apple and Amstrads. Which ran OSes. Just lack of RAM but since it's based on 6502 you can, I also thought you've ported GeckOS onto it. Still trying to find a way to use my 800XL and its amazing mechanical keyboard as a serial terminal to control my linux machines.
@fuarkstyle
@fuarkstyle Жыл бұрын
wow impressive stuff. People are creating in all the consoles, amazing!
@bwc1976
@bwc1976 11 ай бұрын
This is so cute! I was going to add that the Japanese Famicom did offer a disk drive, but someone else already has.
@Thunderstormworld
@Thunderstormworld 2 жыл бұрын
Many years ago I came across a NES clone that had a few game cartridges and one OS cartridge which you had a full OS like Amiga that you can work like a Amiga, this NES came with a printer specially made that plugged in a one of the 4 game controller ports it came with a mouse and keyboard, sadly it was just to expensive to buy at the time.
@something2424
@something2424 Жыл бұрын
Seeimg this run native on a real system would be so awesome, great work!
@joshuajerome1997
@joshuajerome1997 9 ай бұрын
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
@sdjhgfkshfswdfhskljh3360
@sdjhgfkshfswdfhskljh3360 2 жыл бұрын
This video made me think about what criteria can be used to separate operating systems and regular programs.
@ocsanik502
@ocsanik502 2 жыл бұрын
My guy wrote a OS, Filesystem, and Text Editor just for fun. What a chad!
@taubrow4973
@taubrow4973 2 жыл бұрын
I have no idea why I'm watching this, but the Arthur interstitial jingle @1:27 won my heart over
@matthewpalmer9820
@matthewpalmer9820 11 ай бұрын
The NES does have the 15 pin expansion port, it is part of the unused expansion port on the bottom of the console. You can make or buy a breakout board to let you access it.
@piousminion7822
@piousminion7822 2 жыл бұрын
Why in Kanji if the NES was made for an English market? Would make more sense if you built "FamiconOS" instead of NESOS.
@BIGBOICOMBO
@BIGBOICOMBO Жыл бұрын
A certain Famiclone that came with a keyboard DID come with an OS with an interface like that , it had notepad , 4 games , configurable clock and more features that i don't remember well because i was too young to understand them , that famiclone was VERY popular here so im sure someone else might remember it
@b3ans4eva
@b3ans4eva 2 жыл бұрын
Does it run DOOM? :p
@totallybonkers76
@totallybonkers76 2 жыл бұрын
LMAO! 🙂
@SlideRSB
@SlideRSB 2 жыл бұрын
This needs an app store.
@Strange_Armour
@Strange_Armour Жыл бұрын
This is - beyond a doubt - a true testament to the power of boredom. Kudos 👍
@nightwintertooth9502
@nightwintertooth9502 Жыл бұрын
I want to recommend T9 typing input to you, old Motorola phones use it. A series of taps is all it took to get a 12 key keypad working with autocorrect and the whole of rapidly sending an SMS back in the day. Best bit: Very low memory footprint, it worked on potato flip phones and is most likely feasible to fit somewhere in ROM. It feels very natural to do with a dpad, minus a double tap directional to add a period or a comma.
@jimbobiscool1256
@jimbobiscool1256 2 жыл бұрын
It’s really the famicom now this is amazing
@orsonzedd
@orsonzedd 2 жыл бұрын
we should create a keyboard for the NES, now that you mention it. Perhaps you could map different button combinations to different letters and pressing those keys would give that button combination. You got a, b, start, select, a+b, a+Start, a+select, b+Start, b+select, start+select and then the for directional buttons with each of those combinations. If you don't mind not being able to type with the controller itself, you could even do combinations like left + right
@ironrion
@ironrion 2 жыл бұрын
What a remarkable feat. Subbed for this video. Thank you so much for creating badass content like this
@Piuro01
@Piuro01 Жыл бұрын
now i can finally recomend a new operating system to my friend
@metal_bird
@metal_bird Жыл бұрын
Very cool! Awesome work on the implementation and explanation!
@AD-2020
@AD-2020 Жыл бұрын
I've often wondered about this. Well done on doing this and thanks for sharing
@Calm_Energy
@Calm_Energy Жыл бұрын
I never knew the NES had a keyboard! Awesome.
@greenaum
@greenaum Жыл бұрын
Dude. Get yourself one of those homebrew cartridges. They usually support NVRAM and every other feature you can think of, all the mapper chips. Then try this for real! The point of an operating system isn't just to do housekeeping. It has to provide functions. Character in and out is one of these, although generally used more in text-mode OSes, it still has a place in a windowed one. Simply, an application calls "putchar" and the OS decides where it would be sensible to put this character on the screen. Since it keeps track of the current active window and text cursor, this is possible. Similarly it needs a function to get a character from the keyboard. You can't have each app accessing the hardware with it's own routines, the OS has to provide all this. And to do a good job, too! If your OS is too slow, app programmers just bypass it. This is why the PC landscape was such a mess in the past. IBM intended programmers would use BIOS functions in their programs, as well as functions provided by PC-DOS (AKA MS-DOS). They'd do their Basic Input-Output using these Services. Problem was IBM apparenly hired dogshit programmers, although to be fair the choice of CPU was terrible, the peripheral hardware was terrible, the whole thing was awful, and yet somehow designed so it'd have to cost a ton of money. I dunno, IBM. Maybe it was some deliberate political decision. Yikes! So app programmers just accessed screen RAM themselves if they wanted to put a character, rather than ask the BIOS to do it. And it was much faster! Except, if you tried to run that app on a different PC with slightly different hardware, it might well crash. IBM intended their PC range to all have compatible BIOS services, which all apps would use and thereby stay compatible! But the BIOS was dogshit so everyone accessed hardware, *meaning,* that the next PC, and any other PCs, had to be exactly hardware compatible with their predecessor, to run popular software. That's why PC compatibility was such a massive shitheap back in the '90s. It got better as Microsoft got strict and demanded hardware vendors write *proper, decent* drivers that *didn't crash!* By taking command like that, shonky drivers became less of a problem and stuff started working with less faults. Also doesn't hurt that all graphics chips are now made by just two companies. As are CPUs. In fact AMD were third-place, after Intel and Cyrix, for a long time. But then one day Cyrix just exploded and AMD were left second, and somehow became huuuge. Now Intel has a decent competitor which helps keep prices competitive. There should be more though. Microsoft are trying to embrace ARM CPUs which have hundreds of sources and come in every variety you can imagine. That'll hot things up a bit. Shit, sorry, that wandered a bit. Thank you for reading this bit of PC history rambled out first-hand! From someone who at least witnessed it online if didn't actually have a professional interest.
@BryanHolmes
@BryanHolmes 2 жыл бұрын
If you want to improve your keyboard ime on a standard controller do this: A -> input mode B -> space While holding A, your direction pad becomes letters, a/b/c/d for up, left, down and right. The letter is drawn on the screen but it does not progress. So if you pressed up, then down, it'd show an A then a C in the same spot. If you *release* A, it goes to the next spot to type. If you press the *same* letter twice or if you hold a direction, it goes to the next page. So A/B/C/D goes to E/F/G/H. Hold/double press again and it goes to I/J/K/L. You could make it so double tapping up goes to the next vowel page (IE a/b/c/d -> e/f/g/h -> i/j/k/l -> m/n/o/p -> u/v/w/x). Regardless by making it a chord, holding A and using the D pad, you're basically advancing 4 characters at a time instead of one at a time and saving a LOT of typing time.
@BryanHolmes
@BryanHolmes 2 жыл бұрын
Also if you wanted to save button presses: Hold "A" to enter input mode. If you hit a direction, it starts typing. But if you don't press a direction, and you let go of "A", it'll write a space. If you double press a direction/hold a direction and then release without , it also inserts a space.
@ecoandrei328
@ecoandrei328 2 жыл бұрын
Very cool videos!! You're not only doing programming but also a lot about Asian languages and culture. You are doing two of the most difficult topics and it's incredible how you have distilled them into an easy understanding of the content.
@beesree39
@beesree39 2 жыл бұрын
the Famicom Disk System already had a bios with an intro screen and stuff and that was always in the console, so I'm thinking of a way to combine the two and using an app in the OS to run the regular FDS bios and play the games
@ivanangelov8825
@ivanangelov8825 Жыл бұрын
Imagine worked one this system 40 years ago, moved on long time ago, almost forgot everything about it, then see some dude continue to make software and even expanding the functionality of you long time obsolete hardware :D
@sunnohh
@sunnohh 2 жыл бұрын
10:36 and now we have another mahjong game on the NES!
@Prokudak
@Prokudak 2 жыл бұрын
I applaud you, sir.
@CaptainCaveman1170
@CaptainCaveman1170 2 жыл бұрын
THANK YOU for giving Xerox the proper credit for inventing the Mouse cursor based Graphical User Interface. Tired of the revisionist History :-)
@acro4448
@acro4448 2 жыл бұрын
Ness from earthbound. Nes from Nintendo Entertainment system. Nesos from Nintendo Entertainment system operative system. Ness was in the nes using NESOS.
@madcommodore
@madcommodore Жыл бұрын
The Nintendo Family 'computer' is the only home computer that didn't come with an OS in the 80s and pretty much any home computer you could connect to a TV in the 1970s ;)
@alejandrovivas1027
@alejandrovivas1027 2 жыл бұрын
What a legend only one ad in the beginning . Your so damn underrated
@STD-OC
@STD-OC 7 ай бұрын
Finally, when a game crashes it will redirect you back to the launcher instead of freezing.
@Dim-J
@Dim-J Жыл бұрын
You could save some space if you didn't copy the whole screen data into a file but only the characters (like a txt) and use a simple compression code. also you could add a pixel art program too, using one 8x8 tile as a pixel. still, very cool project!!
@retsapb6319
@retsapb6319 2 жыл бұрын
This is insanely cool
@Evert_Abrahamsson
@Evert_Abrahamsson 2 жыл бұрын
This is such a underrated and good chanel keep up the great work and it will blow up soon. Thanks for a really interesting amd entertaning. Im gonna try the os on a emu. And i have learned how a snes and os works. Sry for bad typing im dyslexic and dont that good at English 😅
@mattpost24
@mattpost24 5 ай бұрын
Idea for nes controllers: The nes controller has a shift register in it that sends the data to the NES. You could open up a nes controller and wire up the keyboard into the byte that the NES controllers shift register stores and instead return that and use that for input in the word processor
@eterncr1462
@eterncr1462 2 жыл бұрын
not really sure how possible it would be but it would be really neat if someone were to write the OS to a real NES cartridge and use it on real hardware! also it would be cool to see an SNESOS where youd have a little more to work with or a GBAOS!
@pierorago2353
@pierorago2353 Жыл бұрын
subscribed. youre awesome buddy. cant wait to see what you do in the future.
@bigchungus7870
@bigchungus7870 2 жыл бұрын
We're making the mother of all operating systems here viewer we can't fret over every byte!
@Abraham_writes_random_code
@Abraham_writes_random_code Жыл бұрын
Man that's beautiful. Well done
@metroboominauditorybellow563
@metroboominauditorybellow563 Жыл бұрын
It would be cool to see it print stuff, or even integrate it with the Gameboy Camera or something.
@mathskadarr254
@mathskadarr254 Жыл бұрын
An excellent video turned out, everything is well thought out, a very clear instruction turned out)))
@AlonsoVPR
@AlonsoVPR 2 жыл бұрын
Song (Ba Ba byte by byte - N Sync) 7:47 Cool project man!!, I'll try it on my rom cart!
@rockkiall
@rockkiall 2 жыл бұрын
Incredible work! I am glad you save some space for more in the future.
@ricks5756
@ricks5756 Жыл бұрын
The Famicom Disc System did have it's own OS which allowed greater flexibility for devs ...
@EthanMLego
@EthanMLego 11 ай бұрын
This is amazing! I always thought about someone doing this.
@kfcnyancat
@kfcnyancat 2 жыл бұрын
A lot of people have brought up the idea of a SNES OS, but I wonder about the potential of a SNES OS supporting the Sufami Turbo as a means of allowing interchangeable software. Because yeah, this is a start, but it's not really an "OS" yet.
I Made Fruit Ninja Into a REAL 8-Bit NES Game
11:03
Inkbox
Рет қаралды 265 М.
Your Keyboard Cannot Comprehend These Noodles
12:27
Inkbox
Рет қаралды 359 М.
ПРИКОЛЫ НАД БРАТОМ #shorts
00:23
Паша Осадчий
Рет қаралды 6 МЛН
From Small To Giant Pop Corn #katebrush #funny #shorts
00:17
Kate Brush
Рет қаралды 69 МЛН
How Strong is Tin Foil? 💪
00:26
Preston
Рет қаралды 116 МЛН
Programming My Own 40KB NES Game
14:33
Inkbox
Рет қаралды 139 М.
Programming the Game Boy - Temple Run
16:27
Inkbox
Рет қаралды 96 М.
I've never seen ANYTHING like this before... Temple OS
17:57
Linus Tech Tips
Рет қаралды 4,2 МЛН
I Made a Powerful Redstone Computer!
8:20
mattbatwings
Рет қаралды 244 М.
Is 8-Bit Minecraft Possible?
12:58
Inkbox
Рет қаралды 1,2 МЛН
The Making of Linux: The World's First Open-Source Operating System
11:33
ForrestKnight
Рет қаралды 1,2 МЛН
China's Answer to the NES ft. Jackie Chan | 小霸王
11:39
How we fit an NES game into 40 Kilobytes
12:04
Morphcat Games
Рет қаралды 3,5 МЛН
My Painful Journey for the ENTIRE NINTENDO COLLECTION
17:49
Retro Rick
Рет қаралды 712 М.
I Made the Same Game for 5 Consoles
15:12
PolyMars
Рет қаралды 1,4 МЛН
ПРИКОЛЫ НАД БРАТОМ #shorts
00:23
Паша Осадчий
Рет қаралды 6 МЛН