Q&A - NESemu1 CPU explained (1000 subscriber special!)





The interactive transcript could not be loaded.



Rating is available when the video has been rented.
This feature is not available right now. Please try again later.
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.

  • Category

  • License

    • Standard YouTube License


When autoplay is enabled, a suggested video will automatically play next.

Up Next

to add this to Watch Later

Add to