Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
✓ Live Streaming✓ Interactive Chat✓ Private Shows✓ HD Quality✓ Free Actions
Free to watch • No registration required • HD streaming
So how do you put a computer from the 80s into an engine from 2020? Surprisingly it wasn't too much work, once you got past a few hang-ups.
The first step was taking the stand-alone Apple II emulator and getting it into a package that could be accessed by Unreal. Since the emulator was written in C++ it was a pretty straightforward decision: make it a DLL. This isn't too much work once you get past all the boilerplate importing and exporting of functions.
I knew I wanted to allow for multiple instances of the emulator to be running concurrently so I decomposed the emulator into "machines" that had their own sets of memory, CPUs, video processors, etc. Effectively it was as if each instance were its only little Apple II sitting on a shelf somewhere. This would also allow me to multithread the machines so that I could run around eight different instances of the emulator at the same time without extra cost. I'll touch on this more in a later post.
Once this was working I needed a way to display the results of the machine's work on screen. The emulator had already been using SDL's texture library to render the images produced by the video component of the machine, so it was a simple matter of making a procedural texture in Unreal and piping the output of the machine to it.
The last major step to making it work was to take input from the user and feed that to the machine. This was simple in Unity because I could easily poll for keys and pass them through to the current machine, but in Unreal it wasn't as straight forward. I ended up having to do some back and forth work to get the key presses and route them successfully to the machine. However, once that was squared away it was all up and running inside the engine.
A few simple camera movements to zoom into the screen on interaction and it was all working. I was able to write my first BASIC program. In the video below I'm using the in-built "monitor" functions of the Apple II.