Q&A - NESemu1 CPU explained (1000 subscriber special!)
Sign in to YouTube
Sign in to YouTube
Sign in to YouTube
Published on Sep 22, 2012
It is a special video time! This week my subscriber counter exceeded 1000, with Хозяин Снов being the 1000th. Thank you everyone!
One thousand! People like milestones, so I made a special video.
It also gave me a good opportunity to answer some semi-important and semi-urgent questions. More semi-important and more semi-urgent answers may be coming later, when you ask those questions. I cannot promise a schedule though.
In this episode, I cover my multilingual background and explain in detail how exactly the Ins() function in my NES emulator works. If you haven't seen the emulator yet, go and watch this video: http://www.youtube.com/watch?v=y71lli... .
In this video, I explain *how* did I come up with the short form for the Ins() function (which was actually automatically generated from data using the means described in this video).
However, I did not explain *why* I made it small. You can find _that_ explanation here: http://www.reddit.com/r/programming/c...
NEW: Additionally, if you absolutely must know, I expanded the very content of the #define macro of the Ins() function and covered the 8-bit encoding that I used in detail at http://bisqwit.iki.fi/jutut/kuvat/pro... .
The background music is from One Must Fall! 2097, but with a twist! I downloaded a program that converts an MTM into a S3M, and then I created a program that converts a S3M into a multi-synthesizer MIDI suitable for playing with my ADLMIDI program, which plays MIDI using OPL3 emulation. This is thus played through FM synthesis. The original song uses PCM samples, but here you hear it in FM sound.
The headset that I am using here I acquired from DealExtreme for $6.80. You can find it here: http://bisqwit.iki.fi/dx/p/6217 It is rather good quality and a lot more convenient than the Sony hand-held microphone F-V120 that I have been using previously. It takes some practise to set the microphone in the exactly right position that it doesn't record my breath and that it captures at exactly the right volume, which is why there is some clipping in the narration of the programming part in the end.
The video camera is a Sony DCR-SR37 that is not actually mine. I used a single camera, a tripod mount, and no additional light sources.
The color correction, subtitling and editing was performed in kdenlive, using a SSH-tunnelled X11 session. I did the initial editing in EditStudio, because the SSH-tunnel does not carry sound. The audio was finally mixed in Audacity, and the final encode (and the logo in the beginning) was performed using my Hudmaker, my own program.
Currently, on most architectures, 64-bit is the largest available integer size. In this example I chose to use "72 instructions" as an example of a size that does not fit in an integer (and hence the hexadecimal numbers would not actually work without extra tricks, an example of which is shown in the very end). In the NES emulator, the number of opcodes was 259. I used 72 rather than 259 in this example, because I wanted the entire binary number to fit on the screen, for its cumbersomeness to be obvious.
You might wonder why I am saving in the editor so often. In many of my longer videos, I save dangerously infrequently. The reason is that I used the save function as an intentional visual delay about 2 seconds long each, to allow time for my narration. In my production toolchain (this is a tool-assisted education video), it is currently not possible to simply do nothing for a while, so I did the saving as an idle function. For my next videos I will try to devise some less distracting delay method.
The next part for Black Mesa Blind LongPlay will be coming tomorrow. After that, the schedule may be a little slower than previously because of the preparation for the Feast of Tabernacles (Leviticus 23:33-44), but I still try to release an episode at least every third or second day.
Standard YouTube License
- 1:03:04 Schönerz Matrix 2012 (full)by Tóthpeti Szilárd7,110 views
- 15:04 Creating a NES emulator in C++11 (PART 1/2)by Bisqwit72,061 views
- 15:00 Creating a NES emulator in C++11 (PART 2/2)by Bisqwit25,185 views
- 1:03:56 Aalto Talk with Linus Torvalds [Full-length]by aaltouniversityace904,262 views
- 14:27 See How Computers Add Numbers In One Lessonby InOneLesson206,469 views
- 1:52:30 THREADS (Nuclear War)by eurocon .719,293 views
- 22:24 Programming Arduino in C++11 -- ROM dumpingby Bisqwit7,659 views
- 32:14 Introduction to Lattice Boltzmann Method @ Nasa Glenn 2013by FlowKit7,203 views
- 12:44 Creator of Doom John Carmack shows his reality at E3 2012by Sandra Schlichting102,969 views
- 20:42 See How the CPU Works In One Lessonby InOneLesson368,753 views
- 7:48 PS3 Emulator For PC | Official RC3 Releaseby PS3EmulatorRC342,741 views
- 10:16 How a CPU is madeby HadronMesons710,047 views
- 3:49 How Much Gold is in CPU?by GoldCharts32,814 views
- 14:58 Creating a MicroBlaze emulator in C++11 (runs Linux!)by Bisqwit7,324 views
- 8:34 Pokemon X and Y: All SHINY Mega Evolutions!by OPERATIONiDROID281,471 views
- 15:00 How to create music in C++ from scratch (MIDI file format) / C++11 variadic templates exampleby Bisqwit21,936 views
- 15:48 Top 10 PlayStation 2 / PS2 Gamesby MetalJesusRocks62,853 views
- 9:58 PS4 vs PS3 vs PS2 vs PS1 GRAPHICS (HD 1080P)by SA3000i2,491,028 views
- 30:06 SAN Cold Weather Break down Part 1by SurvivalAdventureNet24,015 views
- 14:57 Tandy 1000 Soundchip revisited: ASM programming exampleby Bisqwit5,748 views
- Loading more suggestions...