ChaiLove – Another Take on 2D Game Development

Whale from the Love2D logoWhen it comes to 2D game development frameworks, there are many options out there for indie game developers. Every framework has its own pros and cons, and its own use cases. Today, let’s talk about LÖVE, baby.

LÖVE is an awesome framework to make 2D games in Lua. With some modification, these games can be brought to libretro though Lutro. With the advent of C++14, are there tools and features we can bring in to improve the scripting experience behind developing 2D games?

Love2D ChaiScript ChaiLove

Continue reading “ChaiLove – Another Take on 2D Game Development”

RetroArch 1.7.0 -Released!

RetroArch 1.7.0 has just been released! Grab it here.

This latest version has also been uploaded to the Google Play Store.

We here at RetroArch/Libretro wish you a Merry Christmas and a Happy New Year!

If you’d like to show your support, consider donating to us. Check here in order to learn more.

General changelog

– CHEEVOS: Add badges for achievements, shows thumbnail images of achievements.
– CHEEVOS: Leaderboard support.
– CHEEVOS: Only disable savestates on hardcore mode if achievements are not available.
– COMMANDLINE: Fix fullscreen toggle switch.
– COMMON: Add ‘Automatically Load Content To Playlist’ feature, enabled by default.
– COMMON: Fix slowmotion ratio always being reset back to 1.
– COMMON: Optimized NBIO implementations now for Apple, Windows, and Linux. Uses mmap for Linux/Windows/BSD if/when available. File I/O should now be much faster for loading images inside the menu.
– COMMON: Native Blissbox support now for latest firmware as of writing (2.0). Implementation through libusb and/or native Windows HID.
– COMMON: New lightgun API.
– COMMON: New VFS (Virtual File System) API.
– COMMON: Fixed some playlist bugs.
– COMMON: New snow shader.
– COMMON: Fix Quick Menu title, no longer shows ‘Select File’.
– COMMON: Fix loading cores that require no content one after another.
– COMMON: Map Delete key to Y button for non-unified menu keyboard controls.
– COMMON: Fix for relative paths being normalised and generating a duplicate history entry.
– EMSCRIPTEN: Fix references to browserfs.
– FREEBSD: Support libusb HID input driver.
– HAIKU: Buildfix.
– INPUT: Map clear button to DEL key.
– LINUX/X11: Add RetroArch logo to window title bar.
– LINUX/X11: Input driver now supports new lightgun code.
– LINUX/X11: Support window transparency (requires a compositing window manager).
– LOBBIES: Fix for crash on join netplay rooms via touch / glui.
– LOCALIZATION: Update Italian translation.
– LOCALIZATION: Update Japanese translation.
– LOCALIZATION: Update Portuguese-Brazilian translation.
– LOCALIZATION: Update Polish translation.
– LOCALIZATION: Update Russian translation.
– MENU: Snowflake menu shader effect.
– OSX/PPC: Fix the GL2 renderchain, had to use EXT versions of framebuffer/renderbuffer functions.
– PS3: HTTP requests / downloads should now work.
– PS3: Core Updater now works.
– PS3: Improved font rendering, enable STB Unicode font renderer.
– PSP: Make it work with Vita’s Adrenaline.
– PSP: Fix audio sync.
– PSP: Fix content loading, port should be functional again.
– PSP: Use 64MB when available.
– SCANNER: Fix crash from Windows-incompatible format string.
– VITA: Improve packaging, installation times.
– WIIU: Disabled the controller patcher for now since it was the source of many stability issues.
– VULKAN: Various stability fixes for WSI.
– WINDOWS: Add MSVC 2017 solution.
– WINDOWS: Get rid of the empty console window in MSVC 2010 builds.
– WINDOWS: Raw input driver now supports new lightgun code.
– WINDOWS: Use configured OSD/text message color on GDI driver.
– WINDOWS/XINPUT: Populate XInput VID/PID from DInput so autoconfig doesn’t rely solely on joypad names
– WINDOWS/XINPUT: Fix crash that occurs in some situations with Steam running and a Steam Controller plugged in.
– WINDOWS: Improve version reporting under System Information.
– WINDOWS: Support window transparency.
– WINDOWS: Correct usage of GetWindowPlacement per MS docs, fixes game window position on Win95/98.
– WINDOWS: Added Visual Studio 2017 support.

Highlights

Integrated Bliss-box support

Grab the newest firmware for this device and you can enjoy out-of-the-box Blissbox support with RetroArch on the following platforms:

  • Linux
  • Windows

For more information, read this separate article here.

This is a legit game changer. This peripheral will allow you to use real physical gamepads from all sorts of different game consoles through one interface.

Right now, only one of these devices is supported.

Badges for achievements

Improved lightgun support

Lightgun and mouse support has been added to both Beetle PSX and Beetle/Mednafen Saturn.

In other input-related news, mouse support has also been added to Beetle/Mednafen PCFX.

Windows 95/Windows 98 (non-SE) support

In a time and era where big companies get lazy and just throw away 32bit support for anything from drivers to operating systems, we have gone to the complete opposite side of the spectrum and started adding even more ancient/obsolete systems instead.

We already had a Windows 98 Second Edition/Millennium Edition/Windows 2000 version of RetroArch. But now, we go back even further in time! The MSVC 2003 version is a version of RetroArch that works on Windows 95 and Windows 98 (the First Version, before Second Edition).

Some things you should know about this version:

  • Rough around the edges, has been mainly tested so far on VMs (Virtual Machines) instead of real hardware.
  • Uses GDI as the default video driver. Our Direct3D driver so far requires DirectX 9 and Cg. It will take some work to make it backwards compatible with DirectX8.
  • We omitted the Windows NT 3.51/4 versions for now. The main issue with these versions is that they do not support DirectInput, so we have no real input drivers available for them.

Right out of the gate, there are 21 cores available for the Windows 95/98 version. Not too shabby, eh?

For more information, read this separate article here.

Improved PlayStation3 port

So many important improvements that have been made to the PlayStation3 port as a result of our newfound friendly collaboration with an RPCS3 dev:

  • Downloads now work
  • Netplay now works. You can netplay between two PS3s, or with another system that is also of the big-endian architecture. For instance – netplay between RetroArch PS3 and RetroArch Wii U works. NOTE: There might still be some endian-specific code in certain cores that can cause bugs.
  • Content Downloader works. You can download many demos and freeware homebrew games from this.
  • Thumbnail Downloader works. You can download boxarts and titles/snaps for your games from here.
  • Core Updater works. Now you can directly download freshly updated cores directly through the built-in Core Updater. New cores will be added over time, and best of all, you don’t need to install a new RetroArch version in order to obtain these new cores either.
  • Improved font rendering inside the menu. Non-Western languages are now also supported by this improved font rendering, including Japanese, Korean, Chinese, Russian, etc.
  • New menu shader effects

    PSP port works again

    Wii U port works again

    Wii U port should work fine again after some issues in previous versions.

    Automatic scanning of content

    This new option, when enabled, will add any new content you load from the file browser (Load Content) to your playlists. If a playlist does not already exist for the specific core and/or game, one will be created on-the-fly. This option is disabled by default, so watch the video if you’d like to learn how to enable it.

    There’s more

    There’s a ton more that we have properly not covered in this blog article, but we leave it up to the user to discover that for themselves.

    What’s coming next for RetroArch

    We will have a separate blog post on this soon, as well as more separate blog articles detailing some of the other progress that has been made on the cores front.

Appeal to game journalists – about Retro-Bit and about the new ‘retro emulation industry’ in general

Dear game journalists and other members of the press,

We are beyond the point of desperation at this point, and we ask you dearly for your help in this ongoing problem. Independent entrepreneurs are playing loose and fast with the laws and licenses surrounding open source code, and we have found ourselves the victim of multiple copyright and license violations ever since Hyperkin started selling its Retron5 product back in 2014.

Since then, there has been an explosion of these products all opting for the same approach – take from opensource code, bundle it up in numerous incompatibly licensed ways, then to add insult to injury, strike up licensing deals with established players in the games industry and make it appear as if your product is ‘legitimate’.

Read up on our previous articles here for more information –

CyberGadget’s RetroFreak proven to use Snes9x Next/2010 code, non-commercial code being sold

RetroArch, Libretro core license violations by Hyperkin’s Retron5

To recap and to also add to it a new recent example of this (as in the case of Retro-Bit) –

2014 – Hyperkin Retron 5

Uses Snes9x (non-commercial emulator) and Genesis Plus GX (non-commercial emulator) together with various GPL-licensed emulators. The individual source code was a direct copy of our libretro repos. This is not the issue however – the issue is quite clearly that they are selling non commercially licensed emulators which obviously, as the license entails, cannot be sold.

Did they ever do anything about this, though? Nope. It is still being sold. They recently striked up a license with byuu to use his product Higan in the future, but this does not pertain to the Retron 5 as the hardware it is based on is obviously incapable of running Higan at fullspeed. That the same product is still being sold to this day is a clear-as-day license violation of Snes9x and multiple other parties involved. I hold copyright over portions of Snes9x these days too, and the forked emulator sourcecode that the ‘contractor’ has admitted to using (and which can be seen in the sourcecode archive they published, Snes9x 2010/Next) was all written by me. They have never bothered to rectify these issues.

2015 – Cybergadget Retro Freak

Cybergadget Retro Freak – uses an identical copy of Retron5’s sources. Cyber Gadget has admitted to us in e-mails that they did not write the software themselves but got it from a ‘contractor company’ (probably the same company that did the software for Hyperkin Retron5. As far as I am informed, this comes from a Hong Kong company whose identity is still unknown). So, the same problems apply here – uses Snes9x (non-commercial emulator) and Genesis Plus GX (non-commercial emulator) together with various GPL-licensed emulators.

After waiting for over two weeks on a reply back from them, I got an e-mail back (December 18, 2017) where their anonymous developer (not them) had this to say about our grievances

“We used two versions of Snes emulator. One was Snes9x 2010, which was in turn taken from Snes9x, which had some speed increases added. The second was Verbatim snes9x. From both of these we only use the emulators and not their core code. As far as the file msvc_compat.h Mr Matteis himself says that he took this file and pasted it into many other projects. No doubt this is how this file containing RetroArchtext appeared in the archive on Cyber’s web site. As Mr. Matteis’s name does not exist anywhere in this source code we assume Mr. Mattheis is inferring that because we have this one file containing the word RetroArch posted on the web site then we must have used other files which are authored by Mr. Matteius’s. This is not true. We do not in fact use any core files merely use the emulator code as a library.”

Therefore, we believe we are not infringing on your copyright.

Also, these software are “GPL”, and we believe there is no problem for us.

This reply is obviously nonsensical, and betrays a complete lack of understanding of Snes9x’s licensing terms.

Snes9x is not licensed as GPL. It is licensed under a non-commercial, proprietary license. The entire emulator is licensed as non-commercial. Whether you use ‘core files’ or whether you use the emulator code as a library has no bearing on it. You cannot use this in a commercial product. Their product is illegal right now as it is currently being sold, and they’d have to do a complete recall and remove the infringing SNES emulator parts in order for it to become legal.

I have given them a reasonable amount of time to rectify their obvious mistakes and missteps. Will they choose to do the right thing though? Probably not. bearoso from snes9x meanwhile has taken it upon himself to try to get the product removed from Amazon, however, Amazon has been pushing back –

https://github.com/snes9xgit/snes9x/issues/264

2016 – NostalGames RetroPac (defunct)

Here we had two college students who took it upon themselves to set up a crowdfunding campaign with Kissbank in France to try to setup a business around their ‘Retropac’ product. This product turned out to be just a derivative of Lakka, our turnkey RetroArch based solution.

The problem with this was that Lakka is non-commercial and comes bundled with various non-commercially licensed emulators, hence it cannot be sold. They did not care about this, and decided to carry on anyway.

We managed to successfully shut down their crowdfunding campaign, and that appeared to have been the end of this venture.

Unfortunately, we did not dedicate an article to this, so you will have to make do with our Twitter posts instead –

http://www.twitlonger.com/show/n_1sp6i85

http://www.twitlonger.com/show/n_1sp6i89

http://www.twitlonger.com/show/n_1sp6i8j

2017 – TekSyndicate Notice Me Sen-Pi

A popular Youtuber who goes by the name of TekSyndicate wanted to start selling a product based on Lakka. He was quite audacious about this and made a blog post about it full of hubris as to why he should be able to do this.

You can read our statement on this here –

https://www.patreon.com/posts/important-on-tek-15592064

https://www.reddit.com/r/RetroArch/comments/7fx7bw/important_statement_on_tek_syndicate_sen_pi_and/

We contacted Amazon and we were able to get this product taken down. Tek Syndicate has agreed to no longer bundle Lakka with his hardware device, and now resorts to a Do It Yourself video which explains to people how to install it on the hardware.

2017 – Retro-Bit Super Retro Cade

The latest situation.

Just recently, we have been contacted by Retro-Bit. To be more precise, one of our team members Andres Suarez was contacted in the past.

This is the latest e-mail we have received back from Retro-Bit – just mere weeks before they started selling their latest product Super Retrocade

I hope all is well. A quick E-Introduction, I am the marketing manager for Innex and our house brand Retro-Bit. In the past you were in contact with Andres Quiros regarding the possibly usage of Retroarch for our plug and play consoles with the caveat that when using “open source” software we would need to give credit then share any updates done to t he original code back to the community in the event they want to build upon it.

Since then, Andres had left the company and we recently released the Super Retro-Cade which I believe operates off Retroarch. We would like to provide the rightful credit to Retroarch and disclose the emulator and request the source code. They can retrieve it through a customer service page on Retro-bit with proof of purchase and waiver of liability forms.

As I mentioned in my previous email, our former Product Development Manager (Andres Q.) left the company in the middle of development, leaving Ron (copied) and myself to finish the product with a very aggressive timeline to launch. We were not aware of this situation, but want to work with you to find a successful solution.

We are a small company that competes directly with Hyperkin and like you, we want to expand the retro gaming to its fullest potential and support the community.

So, all we know in this instance is that they are using RetroArch. As long as sourcecode is being provided and as long as the license is being followed (GPLv3, that means no TIVOization), that would be no issue. HOWEVER, and here is where it gets troubling – they do not know themselves what emulators it uses. So, again, which contractor company was responsible for this cobbled together software again? Why does this keep happening? How come none of the licensees (Capcom/Data East/etc) were aware of this?

Here is where this gets troubling – it is yet again a cheap ARM SoC (System on a Chip). They admit to us over e-mail it is using RetroArch. But they cannot tell us which cores are being used because they “do not know”. ALL of the emulator cores available through RetroArch which provide SNES, arcade and Genesis emulation and which could conceivably run on this hardware, are all distinctly non-commercial. We are talking about Snes9x here for SNES emulation, Final Burn Alpha or older versions of MAME (MAME 2000/2003/etc) for arcade, and Genesis Plus GX for Genesis. They cannot be sold, period. So, again, we have the very same issue here as we have had with Hyperkin and Cybergadget. But instead of waiting until they have determined with us that this is not an issue, they start selling it anyway.

We are beyond demoralized and pissed off at this point. Ever since the NES/SNES Mini, this kind of activity has been going on and has been accelerating. Entrepreneurs and certain publishers are having dollar signs in their eyes. Games are being played with us and other members of the emulation scene by various parties (in this blog post I have probably left out a fair few other companies as well), and we are simply getting sick and tired of this abuse. This is hugely demoralizing and demotivating and makes us almost unwilling anymore to continue with it.

Stuff like this is hugely damaging to the goodwill of the open source community. If open source authors continue to find their licenses and rights trampled upon by a couple of entrepreneurs with the sole intent just to make money and these same entrepreneurs and their business partners don’t care about doing due diligence and making sure they are in the clear, developers are going to stop contributing to open source projects altogether. The knowledge economy dies in doing so, leaving us all with yet more products cobbled together from various disparate sources with no greater aspirations beyond just making a buck.

External examples

Let us cite some other examples how open source emulator authors have been taken advantage of in recent months. I refer you to byuu’s tweets on the subject –

This same one-man game publisher tried buttering us up to do business with him too over e-mail, until we informed him that we did not like how byuu had been mistreated in the past previously. In response, he launched into an angry tirade against byuu. We also learned our e-mails were being forwarded to byuu without getting any disclosure of this prior. A few hours later, byuu sends me an e-mail message imploring me not to involve or associate myself with Piko Interactive in any shape or way.

To which the founder of Piko Interactive responded to byuu in this way –

Byuu,

Dude Nobody asked you to drain your 401k and max out credit card to spend on super famicom stuff or projects. Thats you own decision. If you are looking for sympathy and/or praise you are not going to get them from me. You did it for the love of the console? Then great, don’t complain. Im pretty sure you are old enough to make your own financial decisions.

As I told Daniel, why would I pay you for something that you offer no support and it is hard for a regular programmer to compile? The whole 6 months (which I think it was far less) shiru spent all his time and effort trying to understand the spagetti code that higan was. He just couldn’t get it to work the way you provide it, sorry, Im not going to pay for something I cannot use. That is like me going to buy a car for my communte but the salesman is giving me all the engine in parts that I have to assemble; I can look into assembling the engine, but if doesn’t work out, Im not going to buy it, And I am expecting the salesman to undersatnd that I am not going to buy something I cannot use.

If you are too concern about making money off your emulator (which is a good product) why do it GPL? Why not just sell a license and not offer it for free? Like flying tigers, digital eclipse, nintendo, and others?

We posted instructions online on how to get the source code, which was by request. I could even made it difficult and do it by mail only and charge a mailing fee and would be still ok. Also, Im pretty sure that there is credit to mednafen there somewhere on the steam page, at least on the listings we control. Bubsy I dont control, and we gave instructions on what to write in regards the mednafen licensing and instructions to post on how to get the source code. If Tommo didn’t posted them, that is not my problem.

Also, why would I give credit to byuu if we are using mednafen? If someone is curious what emulator is using, then they go to the page where it gives that information, and then they read up on mednafen, and see it uses bsnes core.

Call me what you want, (worst than hyperkin, yada yada) at least I don’t talk behind people’s back, specially the ones that make me money ;).

Take a couple of business classes, may come in handy. Or may I suggest to partner up with someone that understand basics in business.

Is this the way we as developers should be treated? As less than human? Byuu personally drained his 401K out of a passion to preserve the Super Nintendo forever. Everybody, including Nintendo themselves, is forever indebted to him for taking the time to document the Super Nintendo where nobody else cared, including its entire software library, to the point where people can now use this documentation to their own advantage even to make themselves some money with re-releases of new classic consoles. And what does he get back in return? Openly spit in his face like this? Needless to say, we refuse to associate with Piko Interactive after having read these very disrespectful comments.

Basically, we find it to be a grave injustice how all of us as a scene and as individual independent authors are being treated and manhandled by industry forces that only care about respecting licenses and copyrights when it suits their products, but don’t care a whit when it involves the little guy, the guys who can’t hire an army of lawyers to combat misuse of their software. This is a disgrace and we find it similarly interesting how this same games industry continues to keep up this pretense that emulators are this ‘grey area/non-legit’ subsector of videogames and how no attention should be paid to it, yet they have no problem doing these kind of licensing deals with companies that just crib from those same emulators and even disrespecting their licenses at the same time.

We are being treated abysmally, by people whom feel themselves to be in positions of power so that they are able to do this and get away with it.

We are also completely bogged down by this mess. Each and every month a new contender comes along, doing the very same thing, that we then need to either respond to or deal with. This is hugely demoralizing and demotivating to my team members, and there is not a surplus of developers around to keep working on these projects to begin with. There becomes a point when honestly the undying passion we have for our project to keep going is being outdrowned out by these cynical and deplorable attempts to make a quick buck off our hard work at our expense and violating the licenses in question. We don’t know where to go from here quite frankly, we just felt it was worth a final last-ditch attempt to bring this to your attention. Where we go from here, is not decided yet. We never even intended RetroArch or Libretro to be a purely emulator-focused experience, we intended it to be a great ecosystem where software could be made modular and run in various frontends. That it instead has amounted to a nostalgia cash grab by various companies who are at great pains to delegitimize our efforts yet have no qualms with doing business deals with companies whom don’t hold any of the rights for the software they are exploiting – for its various disparate emulator cores to be manhandled and abused and misappropriated like this, pains us greatly to see happening. This is end-stage capitalism, pure and simple, and we are the unwitting victims of it.