Love Potion 3DS

From GameBrew

LOVE Potion
AuthorVideah, TurtleP
Last Updated2022/05/22

LÖVE Potion is a homebrew game framework for Nintendo 3DS and Nintendo Switch originally by VideahGams. It is an implementation of the LÖVE API for 3DS Homebrew, which can be used to make 2D games in the Lua programming language.

LÖVE is totally free, and can be used in anything from friendly open-source hobby projects, to evil, closed-source commercial ones.

User guide

The LÖVE Potion wiki will refer to what is implemented in Löve Potion which will follow the official LÖVE API.

Please note that not all functions of LÖVE will be able to be implemented at this time until it moves from SDL2 to pure OpenGL on Nintendo Switch.

The 3DS version also has a very limited selection of the graphics API.

If you are new and unfamiliar with LÖVE and/or Lua, it is recommended to visit How to LÖVE by Sheepolution, which covers the basics of how to program games with the LÖVE framework.


Q. Can I run my LÖVE game on this?

Running your game without any changes is possible, but it's recommended to currently use LÖVE Potion to make games from the ground up.

Take a look at compatibility and the API reference on the sidebar to see what may need changing.

Q. How do I build this?

Follow this guide, building should work on Linux, Windows and macOS if setup properly.

Q. Neat! I'm gonna send my game to Nintendo and get cartridge of my game and I'l-

Stop right there, this is for Homebrew only.

This is not for releasing a real 3DS title. Contact Nintendo if that's what you want.

Can I use this to run Mari0?




Personal 3DS Homebrew Aguraki/Love2D/Love Potion (Ganjulationess3DS )



  • getLanguage -> getPreferredLocales.
  • support.


  • lua-https (LÖVE 12.0 feature, use at your own risk since it is unreleased).
  • Fixed: Reloading textures would not be released properly, causing its old memory to be unfreed.
  • Fixed: Getting a really long error backtrace would crash the system. It has been mitigated.
  • General system stability improvements to enhance the user's experience.


  • Fixed a potential issue where providing bad data to would crash the console.
    • This now produces the proper error as would be expected on normal LÖVE.
  • Updated the JPGHandler class to use <jpeglib.h> instead of <jpegturbo.h>.
    • This does not affect any JPG loading.
  • Versioning number updates are more reliable to be done from the Makefile.
    • Not entirely important for end-users, but is noteworthy.


  • General system stability improvements to enhance the user's experience.
  • Added the love.image module.
  • Added Data as a supported item for FileData construction.
  • Added ByteData:clone().


Additions (3DS):

  • Audio playback for global play, pause, and stop.
  • Table and variadic versions of play, pause and stop functions.
  • Thank you @Nehemek for extra testing.
  • love.math.noise.
  • Networked debugger, simpler than using gdb on Nintendo 3DS.
  • Get it at the repository.
  • Wiki documentation and usage.

Bugfixes (3DS):

  • Fixed an issue where audio volume was not applied correctly.
  • Various issues with love.window.showMessagebox.
  • Thank you @HTV04 for finding these.
  • Fixtures not working properly with Fixture:getShape().
  • Fixed audio being shaky/pitched at times.
  • This may be from a prior release, but figured it should be mentioned.
  • Canvases not clearing on first construction.

Removals (3DS):

  • Removed
  • Colors can be multiplied as expected now with, as of the newest citro2d version, using a special tinting mode.
  • Big thanks to @fincs.


  • General system stability improvements to enhance the user's experience.


  • Smealum and everyone who worked on ctrulib and all the Hax.
  • xerpi for sf2dlib and sftdlib and sfillib.
  • Everyone who worked on lua-compat-5.2.
  • Everyone who has worked on Citra.
  • Everyone who worked on DevKitARM.
  • rxi for lovedos which has been good learning material (also used his luaobj util).
  • Firew0lf, Reuh, Negi and everyone else who worked on ctruLua.
  • TurtleP for help/advice and being the best customer.
  • Mik Embley for his contributions.
  • All of the LÖVE community, for being awesome.

External links