New and Better Controller for Mobile Video Gaming

I just got this piece of joy by mail. It is Turtle Beach Atom which is a controller for mobile devices. Actually it’s for smart phones. It cost me only 70 euros. I have seen this model being sold for about 100 euros. So, I got some discount.

I have been thinking about bringing my retro gaming to a zone of emulation. You know that you can fit every released NES game to a 237 MB of disk space. And all SNES games would take 1,7 GB. If you consider it you can probably get a micro SD card that has 128 GB of space for maybe 20 euros. That should hold a lot of games.

Of course only the required disk space isn’t the only matter that comes to consideration. You would certainly like to have a system setup that can handle as many high quality retro games on as many consoles as is possible. I figured that you need at least 512 MB of RAM, about a half of a GB, for running a Dreamcast emulation. I started to think about getting a new phone. It would cost me about 200 euros. I checked some smart phone models. They all seemed to have 2 or 3 GB of RAM. Then I remembered that I have an old phone laying around. So, I decided to use that.

Of course only the RAM that is available is not everything that an emulator needs. My old phone has decent level of performance. The model is Huawei P10 Lite. It is an old phone from 2017. I haven’t used it since the beginning of 2021. That is when I bought a new phone. Let’s consider some specs of my P10 Lite. It is capable of displaying Full HD quality video. That’s 1080 x 1920 pixels. It has 3 GB of RAM. It has a processor that is octa-core which translates to “4×2.1 GHz Cortex-A53 & 4×1.7 GHz Cortex-A53”. I am not a big specialist on multiple core processors. The phone only has 32 GB of space so it definitely needs a memory card. I did have one laying around so I decided to put it to good use.

I set up some emulators. Duckstation was one that I installed. I also installed Retroarch which can handle many systems. I aimed for being able to play at least systems including GameCube, Dreamcast, PS1 and Nintendo 64. You don’t actually need a lot of power for playing games on systems that are older than SNES. I didn’t think to play newer systems like PS3 or Xbox 360. Some might want to play also PS4 on an emulator. That would require a higher permance personal computer. I am not saying it’s not possible.

So I am currently charging the battery of my Turtle Beach Atom controller. I have installed already some games. I picked one game from here and another game from there. PS1 emulation seems to be running fine and I am able to play N64 games also. Even only this is very satisfying. I remember having some tough luck trying to set up a Lakka OS based system some years ago and then I struggled with PS1 and Dreamcast games. I had an old PC that could quite handle the performance.

I am ready, soon, to try to test some games. At this time things seem to be working fine. I have to wait for about 2,5 hours for the battery to charge. It was then promised that the controller would be functional for 20 hours. This is a huge upgrade to the controller that I used with smart phones earlier. I have written a blog post about it in this blog earlier. I have broken the glass of my screen of my P10 Lite. I didn’t want to show it. That was the reason why I didn’t include ít to this blog posts featured image.

I hope this blog post gave you inspiration. There is a very good guide for someone that wants to build or assemble a system like this for retro gaming. Here is the link:

Android Emulation Starter Guide

 

The Role of a Single Variable in an Application Source Code

What is the role of a variable? In case you don’t know about software design, or basics of programming, let me show to you what kind of a term it actually is. Variable has a type which defines what values it can have. It can be a number, a single character or combination of multiple characters. A variable can also be part of an array that has several variables that are of the same type. Objects have properties and every implementation of an object has a variable as a value to its properties. But we are not going to object oriented programming or modeling…at least not yet.

Together with other variables in a program variables form a state of the program. If you think about thing in any retro game console emulator there are so called “saved states”. This means actually what it exactly is. In Super Mario you have variable, which says in which world you are, which stage you are, were you are positioned in the actual level and, for example, how many lives you have left. So all these variables form the state. You with me?

One thing I wondered for several years especially when I wasn’t too deeply involved in actual programming and I was still trying to get my thoughts gathered was “how can you save the entire game when you are saving your game in any modern game?”. Of course you aren’t saving a full copy of the whole game. You are only saving these values of all these variables. You are saving the state in which the application currently is. And basically, this means text. How much would a text file consisting of, maybe, some hundreds of lines of variables and their values take space? Yeah, you figured it out…it wouldn’t take a lot of space. Not at all.

What does take space if any commercial modern game would be considered? Graphics, 3D models, the recorded sound effects and all of the dialogue of the game. They all take a lot of space. Especially when you think about today’s high quality screens with 4K pixels and high quality sound coming out of the selected audio device. Of course what takes also power is all this processing. The processing of code is done by processor of your computer. Graphics are processed with GPU (Grpahics Processing Unit). Today there is a need to maximize the use of a powerful GPU to process the data as efficiently as possible. The processor then works with the GPU and also the hard disk. We have already witnessed fast data processing of SSDs. SSD is short from Solid State Drive. Earlier we had hard disks called HDD (“Hard Disk Drive”). If you are really into computers and building setups you probably know that HDDs are a lot cheaper than SSDs. I mean, of course, the monetary expense of a unit of space. It is a lot more expensive to get a 256 GB of SSD space than it is to get this same space in a HDD.

Right now we are deep in the workings of a personal computer. All these facts I have already covered took me years to get into. It took me involvement. And mostly, it took a lot of time. I started getting in this, very deeply and by studying, back in 2008. That was the year I started studying first electronics and after two years I moved on to study computer science in an University of Applied Sciences. After I graduated back in 2016 I was having a hard time finding a job. After two years of looking for a job I found one as a customer servant. I have worked my way from there and now I work as an IT support person. And all this started from trying to figure out how the saved game system works in my favorite computer or video game. I think the game I was thinking about was Fallout Vegas.

The question made think deeply. How was the game able to save all this information to a small saved game file? I got the answer but it sure wasn’t an easy peace of a cake. I didn’t succeed very well in courses that dealt with a computer’s memory usage or how is magnetism, a physical phenomenon, handling all this data on a hard disk. But little by little…I got the whole picture. I finally got to combine all this information together. All this started by playing games.

Today, I find that there are several areas that are really interesting to me. If you want to learn some knowledge very deeply, like how computers actually work, you will have to use your past knowledge and experiences to guide your thoughts through it all as a process. Writing something “open” to yourself so that you understand what your mind is dealing and handling is one big key for understanding complex and theoretical matters. And teaching someone or having a conversation about the fact is very useful many times.

I don’t know a lot about actual electronics or how the architecture of a full computer work. Well, I actually know something about it. That isn’t however enough for me to solve every problem. This is also where search engines or even a tool like ChatGPT would come in handy. Of course you can look up information from books or your notes and study some more. Just try to remember to take it piece by piece. There is an old saying. It goes something like this: “nobody is a master as you are born”.

Could This Be The Answer?

With all these hardware consoles you get a sense that there could be an easier solution. This answer would be in this case one single personal computer connected to the 4K telly with a single HDMI cord. It would take only one HDMI port. This isn’t a hallucination. There already are several computers available for this task. It doesn’t take a rocket scientist to figure out that the power that one modern PC today holds can handle almost any gaming console emulator from NES to PS4.

You would need one PC. This would cost something from 300 euros to several thousands of euros. You would also need a controller. I prefer Xbox Series S/X controller when it comes to emulator gaming. If you would like to change a controller between systems you would need to assign keys over and over again. You could be able to make a profile for every controller of every system. However it would be easier to play all systems with only one controller.

The first thing you need with this kind of setup is a reliable Linux operating system dedicated to emulation. At first it seems I would choose Lakka OS. It is a nice emulator that allows you to run several different emulators of different gaming systems. After setting up you don’t need to actually unplug your controller or get to your keyboard at all. So, I prefer Lakka OS. There are other operating systems available, like Retropie, Recalbox and Batocera. The last mentioned can be run from inserted USB stick without any other kind of installation.

If you want to play emulated games on systems like GameCube, PS2, original Xbox and Sega Dreamcast, you will need a powerful computer. I would say that you need more than a Raspberry Pi 4 can provide. I am not going to give you detailed specifications here. We can of course check what are the recommended requirements for an emulator like PCSX2. We can get to a conclusion that you would need at least 8 GB of RAM and a GPU with something like 4 GB of VRAM and capability to run DirectX 11 or OpenGL 4.5. Well, what about the processor? The processor would need to support AVX2, have a rating of 2600 and have four cores with or without hyper threading.

This kind of an emulation station could be your solution to this very interesting question. As prices of games are ricing this would make your wallet heavier at least for a while and enable you to play lots of retro game content. There is of course also the question about breaking every copyright law that exists. This is a difficult matter. Let’s just say that it is not legal to load hundreds of games from internet for free. While this is illegal there seems to be very few choices. You can pay hundreds of euros of games that cannot or are very hard to rip to ROM file and play with your emulator. Some emulators need also the BIOS of the system they are emulating.

Nintendo has been busy bringing its retro content available for those that have an online Nintendo account. You can probably figure how popular retro games currently are. It must be stated that it would be nice, for us game hobbyists, to be able to somehow get our hands to this content for a reasonable price. Playing original games on original hardware is becoming more and more expensive. And it must be said that game consoles don’t last for several decades and must be at some point at least repaired.