NES emulation is a great low level programming project and the tradition will probably continue for some time.
58 karma · joined February 19, 2019
Socials: - linkedin.com/in/cyrilmhansen
---
NES emulation is a great low level programming project and the tradition will probably continue for some time.
at least in the 80s microcomputer compilers were very primitive compared to what we have now which maintained a strong need for ASM. Dev tools used to be very expensive and proprietary too.
GCC started to slowly changes that starting by 1987.
So there was a time when software started to be mainly compiled high level language but using stupid compilers and CPU designers had to live with that.
In my latest workstation, I do not use virtual memory to use the disk as extra memory for my running software, i use compressed memory as a disk cache. 30 years of progress has changed the requirements and usecases. Maybe the MMU will survive in a different form that would require a new name.
I read the 4k virtual memory pages and TLB caches are becoming a performance bottleneck so this needs to be redesigned anyway.
GUI environments of the 80s all brought multitasking with them, and system stability was mediocre to very bad... All writers pointed to memory protection as the cure of all this. See also Mac os history for a more detailed usecase.
Rising software size and complexity made the industry abandon assembly programming for higher level languages and for GUI apps this quickly meant C/C++.
I wonder if Rust or similar could make the MMU transistors and energy budget redondant.
Disclaimer: I am a 68k fan.
But with the global availability and affordability of computing devices plus the global knowledge base of the web curious geeks never had so much opportunities to learn and practice.
Here is just a link which i hope will bring some joy to your day : https://steamcommunity.com/sharedfiles/filedetails/?id=28422...
Other sources of hope are retro computing communities, emulation devs, FPGA scene (Mister) for hardware side, assembly devs / optimization communities for software side.
Hardware changes slowly make current system design choices obsolete. Persistent RAM, TBs of RAM will require low level OS redesign sooner than expected.
It is designed to feel like a puzzle game and is distributed on Steam but that's only the surface...
Building your own CPU and programming it in your own assembly language is exactly what TC promises on the tin.
The "game" discord server may be worth checking also.
This page has the files for the default system sounds for Win95. https://www.rjgeib.com/about-me/sounds/sounds95.html
You can see that there was a sound when the trash was emptied or when you receive a new mail.
This was really a different, simpler time. Imagine an open space where each computer make a sound each time you receive an email, even with a good spam filter...
I used my first computer in the early 80s so my answers can relate to a very different world/context than ours now.
First personal computer users had only experience with mechanical typewriters that made a lot of noise when typing. So 8bits computer keyboards usually have a feedback sound on each character. The sound was different in repeat mode and maybe backspace mode.
On input validation failure, systems usually made an annoying beep sound.
In the early mouse based GUI systems, the same kind of sound was used if you clicked outstide the current modal dialog box for example.
So sound was used as some kind of error signal mostly. On the mac the system beep was replaced with a duck sound (or whatever it was configurable).
Different sounds hinted the user if the message was some kind of error or an event notification. Until recently this may have an ergonomic value for some users.
PCs used plain system beep for a long time. These days the motherboards still use them as error message for things like missing RAM...
(transitive) To put together; to assemble; to make by gathering things from various sources. Samuel Johnson compiled one of the most influential dictionaries of the English language.
I would be curious to discuss how this can be useful in practice for laypeople, but I don't see any.