How to Build a Video Game Console
#Pure tech
06.16.2025 Reading time: 7 minutes
BizkaiaTech editorial team
Illustration: Gorka Olmo
The maker culture promotes learning through action, in an informal, playful way, with a free-spirited character that fosters the creation of networks among creators. These individuals share values like cooperation, solidarity, accessibility, creativity, and education (among others) through this culture. But let’s focus on the digital realm, which is our specialty. By using low-cost hardware tools and open-source software, it’s possible to create alternatives that are just as good as commercial solutions.
Along the way, you develop critical thinking, practice problem-solving, and work in a self-taught manner.
One of the most popular tools in maker culture is the Raspberry Pi. And no, we’re not talking about fruit or the math formula. It’s a small device launched in 2012 by the Raspberry Pi Foundation. Its original goal: to make computer science education accessible to all in academic settings.
WHAT IS A RASPBERRY PI?
The Raspberry Pi is a compact, ultra-low-cost computer (around €50) that makes computing accessible to anyone eager to tinker. On a small board, it incorporates all the components of a traditional computer (CPU, RAM, USB ports, network connection…). One of its biggest strengths is its compatibility with open-source systems, which allows you to customize the device as you like.
WHAT CAN YOU DO WITH A RASPBERRY PI?
Multimedia Center – Kodi.
A typical use for these devices is setting them up as multimedia centers, where you can store content like movies and music. Using open-source software such as Kodi, OpenELEC, or LibreELEC, you can organize and play all kinds of media through a simple, intuitive interface.
Personal Server – Web, files (NAS)…
You can also create a personal server to host a website, keep a backup of your files, and access them from any device.
Home Automation (Domotics).
Thanks to its great connectivity, you can use a Raspberry Pi to control other devices, allowing you to build home automation systems.
Programming Education.
Its low cost and the massive developer community behind Raspberry Pi make it perfect for getting started with programming. In fact, it was born with educational purposes.
Emulation (Retrogaming).
Lastly, Raspberry Pi is powerful enough to run games from various old consoles. With the right emulators, you can play games from systems like NES, PlayStation, GameBoy, and more. You can even use PlayStation or Xbox controllers, or any USB/Bluetooth-compatible gamepad. If you don’t have one, you can control it with a keyboard and mouse.
WHAT IS BATOCERA AND WHAT DO YOU NEED TO INSTALL IT ON A RASPBERRY PI?
An emulator is software that allows a program or game to run on a platform different from the one it was originally designed for. Thanks to this, you can run games from different platforms on a single device like a Raspberry Pi.
Batocera is one of the best software options for running emulators. It is open-source software that will allow you to emulate different platforms such as NES (Nintendo Entertainment System), Gameboy Color/Advance, Play Station, Sega Mega-Drive… You will only need a Raspberry Pi, two memory units of more than 8GB (micro SD card and a USB drive), and a controller to operate the console.
It is possible to reuse controllers from other consoles such as PlayStation or Xbox, or any controller with USB or Bluetooth connection. If you don’t have a controller, it can be controlled from a keyboard and mouse.
WHAT CAN WE RUN THROUGH BATOCERA?
To be able to emulate games from different platforms, we must install the BIOS files for each platform. To do this, we must download the files and copy them to an external memory that we will connect to our Raspberry. Various developers freely (and legally) publish these files, (for example on GitHub).
Several developers such as Cinemaware, Team17, Factor5, Gremlinworld, Exidy and Video Klein have released ROMs for platforms such as Amiga and MAME, so they are publicly accessible.
Another option is “homebrew” games created by developer communities without commercial purposes. Among them, we suggest trying itch, pdroms and nesdev.
REFERENCES
ANNEX – Detailed tutorial
How do we install Batocera?
First, we will download and install the Raspberry image generator from the official Raspberry website. Then, we search for and download the Batocera image for our Raspberry from the Batocera website.
We connect the memory unit to our computer and open the Raspberry image generator. In the operating system field we choose custom, a file browser window will open where we select the image we have downloaded. In the storage unit field we choose our memory unit, where all content will be deleted and an executable image of Batocera will be installed.
The program will ask us if we want to apply OS personalization settings, to which we must say no.
It will also ask if we want to delete all data from our USB memory; we must say yes to continue the process.
Once the process is completed, we can eject the memory and insert it into our Raspberry Pi. The first time we start it, it will take some time to complete the configuration.
**Downloading and running emulators is legal, as the written code is different from the original code. Downloading and running games goes against intellectual property rights.
How do we install the emulators?
To be able to run games from different platforms, we must install the BIOS files for each platform. To do this, we must download the files and copy them to an external memory that we will connect to our Raspberry. Various developers freely publish these files, (for example on Github).
Once the files are downloaded and unzipped, we copy the BIOS into the BIOS folder within the Batocera system. While running Batocera on our Raspberry with our external memory connected, we press F1 to open Batocera’s file manager and copy the BIOS from the memory into the BIOS folder.
Once copied, we restart Batocera and all emulators whose BIOS we have copied will now appear.
How do we install the games?
Several developers such as Cinemaware, Team17, Factor5, Gremlinworld, Exidy and Video Klein have released ROMs for platforms such as Amiga and MAME, so they are publicly accessible.
Another option is “homebrew” games created by developer communities without commercial purposes. Among them, we suggest trying itch, pdroms and nesdev.
Just like with the BIOS files in the previous step, we must download and unzip these ROM files. We will copy them into the roms folder, inside the folder of their corresponding platform.
Labels
- #cocreación
- #ciencia
- #computación
- #democratización
- #educación
Take our advice and check it out
Slide to show more
Cookies
We use proprietary and third-party cookies for technical, analytical and customisation purposes, such as choosing the language in which to display the website. For more information, please consult our cookies policy (Opens modal window).
Cookies policy
The website at https://www.bizkaia.eus (hereinafter, the Website) uses tools to track browsing activity on the website and the IP address of the service recipient for the purpose of improving and guaranteeing the provision of services or technical operation of the website, distinguishing you from other users and analysing your browsing habits.
This Cookies Policy seeks to inform you clearly and precisely about the operation and function of the cookies we use.
What are cookies and why do we use them?
A cookie is a file that is downloaded to your computer when accessing certain websites.
Cookies enable a website to, among other things, store and recover information about the browsing habits of a user or their device and, depending on the information contained and the way in which the same is used by the device, may be used to recognise the user.
Current law allows us to store cookies on your device if they are strictly necessary for operation of this website. However, we need permission for all other cookies.
Types of cookies based on the managing entity
Depending on who manages the computer or domain from where the cookies are sent and who processes the data obtained, a distinction can be made between the following types of cookies:
- Proprietary cookies: these are managed by the Provincial Council of Biscay.
-
Third-party cookies: these are managed by another entity, which processes the data obtained via the cookies.
This website may contain cookies belonging to the Basque Government, used for its own purposes and stored by domains other than those owned by the Bizkaia Provincial Council.
Types of cookies based on their purpose
- Technical cookies: these allow the user to browse a website, platform or application and to use the various options or services available, such as control data traffic and communication, identify the session, access restricted areas, request registration or participation in an event, use security elements while browsing, store content for video or audio playback, or share content via social media networks.
- Customisation cookies: these allow the user to access the service with some general characteristics predefined according to a series of criteria on the user’s device, such as the language, type of browser being used to access the service, regional configuration from where the service is accessed, etc.
- Analysis cookies: these allow the number of users to be counted and the browsing activity to be statistically measured and analysed for the purpose of improving the services made available. They may be proprietary or third-party cookies.
Duration of the cookies
- Session cookies: these collect and store data while the user is visiting a website.
- Persistent cookies: the data are stored on the device in an ongoing fashion and may be accessed and processed during a period defined by the cookie manager, which may range from a few minutes to several years.
Which cookies does this website use?
In each row you can find data relating to Technical cookies
| Name | Purpose | Duration | Owner |
|---|---|---|---|
| JSESSIONID | Session identifier | Session | Bizkaia Provincial Council |
| ASPSESSIONID | Session identifier | Session | Bizkaia Provincial Council |
| TS01 | Session identifier | Session | Bizkaia Provincial Council |
| LFR_SESSION_STATE | Session identifier | Session | Bizkaia Provincial Council |
| COOKIE_SUPPORT | Indicate whether the user has the cookie support activated | 1 year | Bizkaia Provincial Council |
| pc_tecnicas_bizkaia | Choose your preferences for acceptance of the block of technical cookies | 1 year | Bizkaia Provincial Council |
| pc_analitica_bizkaia | Choose your preferences for acceptance of the block of analytical cookies | 1 year | Bizkaia Provincial Council |
| pc_preferencias_bizkaia | Choose your preferences for acceptance/rejection of the block of preferential cookies | 1 year | Bizkaia Provincial Council |
| pc_terceros_bizkaia | Choose your preferences for acceptance/rejection of the block of third-party cookies | 1 year | Bizkaia Provincial Council |
| Kultursistema_session | Keeping the user’s session | 1 year | Kultursistema |
| CPLB | Contains information used by our load-balancing servers | Session | Provincial Council of Biscay |
| XSRF-TOKEN | To prevent CSRF (Cross-Site Request Forgery) attacks | 1 year | Kultursistema |
| _GRECAPTCHA | Protects the website from spam and brute-force attacks | 5 months |
In each row you can find data relating to Analysis cookies
| Name | Purpose | Duration | Owner | |
|---|---|---|---|---|
| dtCookie | Track a visit through multiple requests | Session | Bizkaia Provincial Council | |
| dtLatC | Measure the latency of the server to monitor performance | Session | Bizkaia Provincial Council | |
| dtPC | Necessary to identify the appropriate parameters for beacon transmission; includes session ID for correlation | Session | Bizkaia Provincial Council | |
| dtSa | Intermediate storage for actions spanning pages | Session | Bizkaia Provincial Council | |
| rxVisitor | Visitor ID to correlate sessions | Constantly | Bizkaia Provincial Council | |
| rxvt | Session waiting time | Session | Bizkaia Provincial Council | |
| iyrc-user-id | Distinguish users | 1 year | Bizkaia Provincial Council | |
| _ga, _ga_XXXXXXXXXXX | Analysis | To distinguish users | 2 years | Google Analytics |
| _gat, _gat_XXXXXXXXXXX | Analysis | To limit the percentage of requests | 1 minute | Google Analytics |
| _gid | Analysis | To distinguish users | 1 day | Google Analytics |
In each row you can find data relating to Personalisation cookies
| Name | Purpose | Duration | Owner |
|---|---|---|---|
| Idioma | Select the language preferred by the user | 1 year | Bizkaia Provincial Council |
| cookie-tramites-favs | Save favourite procedures in Prior Appointment | 1 year | Bizkaia Provincial Council |
In each row you can find data relating to Third-party cookies
| Name | Purpose | Duration | Owner |
|---|---|---|---|
| CLID | Identify a user’s first visit | 1 year | Microsoft Clarity |
| APISID | Store user preferences and information during page views with Google maps in them. | 2 years | |
| HSID | Store user preferences and information during page views with Google maps in them. | 2 years | |
| MUID | Store user preferences and information during page views with Google maps in them. | 1 year | Microsoft Clarity |
| NID | Remember their preferences and other information | 6 months | |
| SAPISID | Show personalised advertisements on Google sites | 2 years | |
| SID | Provide advertisement delivery or retargeting, provide fraud prevention. | 2 years | |
| SIDCC | Provide reliable web traffic identification. | 1 year | |
| SM | Used to synchronise the MUID between Microsoft domains. | Session | Microsoft Clarity |
| SSID | Provide advertisement delivery or retargeting, provide fraud prevention. | 2 years | |
| __Secure-1PAPISID | Create a website visitor interest profile to show relevant and personalised Google advertising. | 2 years | |
| __Secure-1PSID | Create a website visitor interest profile to show relevant and personalised Google advertising. | 2 years | |
| __Secure-1PSIDCC | Create a website visitor interest profile to show relevant and personalised advertising through retargeting. | 1 year | |
| __Secure-1PSIDTS | Create a website visitor interest profile to show relevant and personalised advertising through retargeting. | 1 year | |
| __Secure-3PSID | 2 years | ||
| __Secure-3PSIDCC | Create a website visitor interest profile to show relevant and personalised advertising through retargeting. | 1 year | |
| __Secure-3PSIDTS | Create a website visitor interest profile to show relevant and personalised advertising through retargeting. | 1 year | |
| __Secure-ENID | Necessary cookies to use website services and options | 1 year | |
| ar_debug | Refine advertisements. | 1 año | |
| MR | Indicate when MUID is refreshed | 6 months | Microsoft Clarity |
| XSRF-TOKEN | Indicate when MUID is refreshed | 1 hour | Kultursistema |
| _fbp | Store and track website visits | 1 year | |
| kultursistema_session | Keep the user’s session | 1 hour | Kultursistema |
| AEC | Detect spam, fraud, and abuse | 6 months | |
| SOCS | Store user cookies preferences | 13 months | |
| Locale | not available | Basque government | |
| _hegoa_coop_session | Create a session ID for users | Session | Basque government |
How to deactivate or delete cookies?
When first accessing the Website, the user may configure and accept or reject the cookies on this Website. Subsequently, the user may change or withdraw their consent at any time via this Cookies Policy or the settings page.
However, you may exercise your right to freely deactivate them and even delete the cookies on this Website at any time. This is done differently depending on which browser you are using. Here is a quick guide for the most popular browsers.
- Deactivate Cookies in Chrome
- Deactivate Cookies in Explorer
- Deactivate Cookies in Firefox
- Deactivate Cookies in Safari
- Deactivate Cookies in Edge
If you deactivate or delete cookies, certain features of the Website may no longer function correctly.
Changes to the Cookies Policy
The Website reserves the right to change this Cookies Policy under the terms provided for by current legislation. We therefore recommend that you revise this policy each time you access our website to see any changes and read the pertinent information.
Configure cookies
We show you hereinbelow the different categories of cookies that our web page uses. You can personalise your choice by accepting or rejecting these categories through the buttons enabled to that end. For more information, consult our cookies policy (Opens modal window).
-
Technical Always active
These are needed to allow browsing on our website and for basic tasks related to correct website operation.
