Pico-8 on Raspberry Pi

pic8-8_RASPBERRY

About the guide
I wanted to share my knowledge on how I installed the virtual fantasy console called Pico-8 on my Raspberry Pi creating an awesome little Pico-8 console that boots in about 6 seconds and doesn’t need any configuration! Its super easy and super fun. All you need is any model of the Raspberry Pi, an Sd card and a gamepad. All of this is possible thanks to Gamaral who created the PICOPi os, you can find a guide, videos etc on his site here: http://guillermoamaral.com/read/picopi/

What is Pico-8
Before i start explaining how to get Pico-8 running I just briefly wanted to explain what actually this is. Pico-8 is the name of a made up virtual gaming console. Think of it as a Nes or Atari with all its old retro limitations, but that you can play on your computer or web browser. The creator of Pico-8 carefully picked a set of limitations to make the console look and feel like a retro console from the 80s. It only has 128×128 pixels of resolution with a beautiful 16 color palette and the games even comes in virtual “cartridge” images that you “insert” to the system, all this to have that old retrogaming feel. Just love this!
And the best part is that it’s really easy to code games and share them and they are all available to play directly from Pico-8 using a built in browser where you can play your downloaded cartridges or play them directly from the Pico-8 webserver.

What you need
A Raspberry Pi (Models 1,2,3 or Zero)
Pico-8 Raspberry Pi files (That you can download when you purchase Pico-8)
PICOPi files (A super tiny OS built especially for running Pico-8)
– A Gamepad controller (more about this later in this guide)

That’s it! Of course you need an SD card for your Raspberry Pi that will have all the necessary files for the system to boot and run.

8Bitdo controller and a Raspberry Pi

Get the Pico-8 License?
You need to purchase the license from the official Pico-8 site, when you do you will get the files you need for Raspberry Pi, and also downloads for running Pico-8 on Win, Osx and Linux.
But you might already own a Pico-8 License without knowing it! If you purchase many gaming bundles from Humble Bundle you might have the license there. Pico-8 was included in the “Humble GameDev Software Bundle” and it was also “hidden” in the  “Humble Voxatron Debut” bundle, when you got Voxatron you also got Pico-8 but you need to find the Voxatron key in your humble bundle library, and then find the link “Lexaloffle Account Activation” then after activating this you will also get Pico-8 🙂

Installing Pico-8 to Raspberry Pi
All you need to do is unzip the PICOPi files for your specific Raspberry Pi model onto the SD card and also unzip the Raspberry Pi Pico-8 zip file that you download from https://www.lexaloffle.com/pico-8.php and thats it! Just connect the Sd card to your Raspberry Pi and it should boot Pico-8. If you need even more detailed information on how to do this then you can find instructions and videos on the PICOPi site: http://guillermoamaral.com/read/picopi/

Gamepads
So this is for me one of the most important parts of this project. The whole idea is to create your own console connected to TV instead of playing Pico-8 on the computer using a keyboard. And that is having a good gamepad!

Bluetooth controllers? Yes! Today we sit further away from the TV so wireless controllers is something I really like. Raspberry Pi 3 has built in bluetooth or you can purchase a small usb blutooth receiver for any other model, but the problem is that you need a way to connect the controllers in the operating system and that’s not possible in this case (Well maybe it is if you have really good knowledge with Linux and coding etc) So the way to solve this problem is to get a bluetooth controller or wireless controller that has its own usb receiver, and i have tested two controller that works great without any configuration. Just plug and play. And here are the controllers:

– Xbox 360 Controllers + Wireless 360 receiver
If you have a wired Xbox 360 you just connect the usb to the Raspberry Pi and it just works. If you have a wireless controller you need the original Xbox 360 receiver. Just connect the receiver and it just works without any configuration and all the buttons you need for Pico-8 are perfectly mapped.

– 8Bitdo Contollers + 8Bitdo Receiver
If you dont what 8Bitdo is then i suggest you check them out http://www.8bitdo.com/ They make incredible wireless retrogaming controllers that look and feel like old console gamepads like Nes and Snes etc and they are bluetooth wireless controllers. I have ordered mine from eBay so i suggest you check there if you want to order one. To get a 8Bitdo controller to work you need a “Retro Receiver” from 8Bitdo that you connect with a usb cord from the Raspbeery Pi to the receiver and it just works, no configuration.

pic8-8_cartridges

Now that we have Pico-8 running on our Raspberry Pi its time to play some games! There is a huge library of games on the Pico-8 site and they are all free to play directly in the browser or you can choose to download them. There are two pays to play these games on a Rasperry Pi.

#1 Play from Internet. Connect your Raspberry Pi to your network and play the games directly from Pico-8s built in browser. The games are so small that they start instantly, and if there is a game you like just add it to your favorites by pressing the startbutton on the controller.

#2 Play games from the Sd card. Download the games from the site and then copy them to the sd card. This is the way to go if you don’t have the possibility to connect your Raspberry Pi to the internet. The way you do this is first to download the game, i will explain this in the next step. And place the files in a folder called “carts” if this folder doesn’t exist then just create one. This is also explained on PICOPis site: http://guillermoamaral.com/read/picopi/

How to save carts
Downloading a game should pretty easy right? Yes, but where is the download button? Thats the problem, there is no button. Its kinda hidden. The games for Pico-8 is called “carts” and they are in the image format .png so they are both a png image with a very nice art and they also is the actual game which is pretty cool.
So to download a game you need to go to a specific games url and right beneath the gamescreen in the browser you can see the text “cart” rightclick on this and choose “save link as” and then download the .png file (also give the file a propername to make it easer later when you are browsing games in Pico-8) thats it!

SAVECART

Gaming Night Nes Tournament

img_4413_1024x683
A couple of years ago I arranged a Nes tournament for my friends. The concept of the Tournament was to play a set of handpicked Nes games that had support for 2-playes. I made up simple rules for the games so they would be quick and also work as a good competitive game in a tournament for a big gaming group. I wrote about the tournament in an earlier post on this blog but decided to look over the games and tweak the rules to make them more streamlined and more fun!

Every game in the list has support for 2-players and are often games where you can choose to go for the highscore or be the last man standing. I choose how many levels you have to play on each game. If both players are still alive at the last stage we pick the player that has the best high-score and that one is the winner. Should your opponent be killed on one of the levels you are the winner 🙂 Simple, fast and fun. We played all these games on a real Nes using a PowerPak Flash Cartridge. A pro-tip to have easy access to the controllers during a tournament with many players is to use the Nes Four-Score Adapter as this works perfect as an extension cable 🙂

  • Ice Climber – Best high-score at the end of the third level or last man standing.
  • Mario Bros (Classic Serie) – Best high-score at the end of the first bonus level or last man standing.
  • Balloon Fight – Best high-score at the end of the first bonus level or last man standing.
  • Life Force – Best high-score at the end of the first level or last man standing.
  • Micro Machines – Pick a level, winner of that level.
  • Battle City – Best high-score at the end of the first level or last man standing.
  • Tetris Tengen – Choose a score, first player to reach that score.
  • Ice Hockey – Winner of one match.
  • Vs. Excitebike (Nds) – 2 player mode. Pick a level, winner of that level.
  • Nintendo World Championships 1990 – Best score (6min 15secs)

Retropie, Tips & Tricks

splash_960x768
Jag skrev en guide på hur man på det absolut lättaste sättet installerar Retropie på din Raspberry Pi 2 här: https://subretro.wordpress.com/2015/03/08/retropie-den-lattaste-installationen/ Och i detta inlägget tänkte jag gå in på lite mer avancerade tekniker och tips för att fixa till så Retropie funkar som du vill.

Använd FTP för att snabbt kopiera över roms
Det går att kopiera över roms med endast en USB minne som jag beskrev i min förra guide. Men för att få en bättre kontroll och överblick över alla roms så är det smidigast att logga in på din Raspberry Pi via Ftp. Detta går endast om ni har kopplat er Rp med en nätverkskabel och har ett Ftp program installerat på er dator som är ansluten till samma nätverk. Jag använder programmet Filezilla.

Först måste vi ta reda på Ip adressen till din Rp. Om du har ett tangentbord inkopplat skall det bara vara att trycka på F4 för att få fram terminalen. Men det funkar även bra endast med en Xbox 360 gamepad genom att trycka på Start när du är i Emulationstation och väljer Quit > Quit Emulationstation vilket kommer ta er till termnialen. Där kommer det dyka upp ett par rader med röd text. Leta upp raden som säger “IP Adress” och skriv ner den.

File 2015-03-24 01 18 21_1024x768

Starta nu om så ni är inne i Emulationstation igen. Starta din Ftp klient och skriv in följande:

Host: 192.168.x.x
Protocol: välj “SFTP – SSH File Transfer Protocol”
Logon Type: välj “normal”
User: pi
Password: raspberry

Sen skall det bara gå in i RetroPi/roms mappen och kopiera över roms till rätt kataloger. Obs kopierar ni över roms till en emulator och den inte dyker upp så kan de vara i fel format, se till att de har rätt filändelse. Ett vanligt fel är att de är i .zip format vilket oftast inte funkar

filezilla_pie
Göm oönskade emulatorer från huvudmenyn:
När Retropie har startat så får man se den väldigt snygga Gui:n som kallas Emulationstation. Första gången man installerat Retropie innan man har lagt in några roms så finns det några system som redan ligger där, bland annat IBM, Macintosh osv.. inga system som ni kommer spela på? Då gömmer vi dom! Gå in via Ftp och gå in i Roms mappen. Vill ni gömma “macintosh” från menyn, gå då in i roms/macintosh och radera den filen som ligger där. Det funkar helt enkelt så att om en Roms mapp är tom så syns den inte. eller tvärt om lägger ni in roms i en mapp som är tom så kommer den dyka upp i Emulationstation.

Bios-filer för olika system:
Vissa konsoler kräver bios filer (man kan säga att detta är själva operativsystemet för en konsol) dessa går att ladda ner på diverse sidor på nätet, tex isozone. Men det luriga är vart man skall placera dom. Som tur är finns det en lista här som visar vart alla bios filer skall ligga: https://github.com/petrockblog/RetroPie-Setup/wiki/BIOS-setup-for-RetroPie
De flesta går att lägga i Bios mappen som ligger bredvid Roms mappen om ni ftp:ar in på er Raspberry Pi. Men den svåraste är Gameboy Advance så jag tänkte beskriva det nu.

Gameboy Advance Bios guide:
Ftp:a in i Retropie och se till att direkt hoppa tillbaka så många kataloger ni kan så ni kan se mappen opt. Gå sedan till opt/ retropie/ emulators/gpsp och kopiera över filen gba_bios.bin som måste ha en storlek som är på exakt 16 384 bytes . Sen är det klart!

Snabbknappar och Options meny i emulatorerna:
Om ni vill ha mer kontroll över en emulator, typ att ni vill ändra om storleken på skärmen. Stänga av filter. Eller byta save-state slots osv så finns det ett sätt som funkar i de mesta emulatorerna. Då jag bara använt en Xbox 360 gamepad med Retropie så utgårvi ifrån den nu. Här är följande snabbkommandon som jag hittat för att komma åt menyn och navigera runt:

Options menu: Select + Y
Accept: B
Cancel/Back: A
Exit Options menu: Select + Y
tryck INTE på Y igen när ni är inne i menyn för då kommer det fram en Search ruta och ni är fast och måste starta om systemet.

Det finns även snabbknappar för att lätt göra en Savestate
SAVE state: Select + Right Button
LOAD state: Select + Left Button
Exit to Emulationstation: Select + Start

File 2015-03-24 01 29 01_1024x768

Fullscreen. Större bild och Aspect ratio mm
Det är svårt att få till en exakt fullscreen bild av emulatorn men det finns lite inställningar att testa. När ett spel är startat håll inne Select + Y på Xbox kontrollern för att komma till inställningarna. Gå till Settings > Video Settings – Aspect > Aspect Ratio Index och tryck höger och vänster och testa alla de olika lägerna. Testa även att ändra inställningarna på din tv, vissa har aspect ratio inställningar där och även “zoom” lägen.

En annan sak du kan testa är att ändra upplösningen för emulatorn. Precis när du startar ett spel från Emulationstation så kommer terminalen fram. I ca 3 sekunder så står det en text som förklarar om du trycker X på tangentbordet (ja du måste ha ett tangentbord inkopplat för detta) så kommer du till en meny där du kan ändra mellan en massa olika video inställningar för emulatorn. Kanske kan finnas någon inställning där som passar din tv bättre.

File 2015-04-03 00 30 42_1024x768

Analog plus Digital kontroll på Xbox 360 kontrollern
Då de flesta kanske föredrar att spela sina retrospel med det digitala styrkorset så kanske det finns vissa som ändå föredrar den analoga spaken. Xbox 360 gamepaden är ju ändå känd för att ha en väldigt dålig d-pad. Med hjälp av en väldigt lätt inställning så kan man aktivera den analoga spaken PLUS att den digitala funkar samtidigt, detta borde vart aktiverat från början tycker jag. Såhär gör du iaf: När ett spel är startat håll inne Select + Y på Xbox kontrollern för att komma till inställningarna. Gå till Settings > Joypad Mapping > User 1 Analog to digital. Ändra från “None” till “Left Analog” Thats it!

File 2015-04-01 23 37 22