_ ___ ___ ___ | | _____ _____| \ / _ \/ __| __ _____ | |__/ _ \ V / -_) |) | (_) \__ \ \ V (_-<_ |____\___/\_/\___|___/ \___/|___/ \_//__(_) _ _ __ ___ | | _____ _____ / |/ \ |_ ) | |__/ _ \ V / -_) | | () | / / [LoveDOS vs. Love 10.2] |____\___/\_/\___| |_|\__(_)___| by TheOuterLinux (https://theouterlinux.gitlab.io) Last updated: 2024/09/29 The "Love" project provides an easy way to create games using Lua. The following are notes for compatibility between LoveDOS, a fork of Love for DOS, and Love version 10.2; both are Lua-based and extensible. However, there are somethings to note if trying to create a single game for both. The Love project is often NOT backwards compatible and is always changing too many things; it is VERY annoying. Do not expect to make a game with Love 10.2 or earlier and also work on the latest version. LoveDOS vs Love 10.2 -------------------- To Get any sort of compatibilty between DOS and Linux/Mac/Windows, you will need a copy of the project "LoveDOS" and Love version 10.2. You can run LoveDOS's "LOVE.EXE" inside of DOSBox, which is cross-platform. LoveDOS and any binaries created with it also require the "CWSDPMI.EXE" file; this file helps programs access more RAM than the typical 640K on DOS systems. However, there are still some weird "quirks" between the two. For example, if you want a game that runs on more than just DOS, you will have to stick with PNG for graphics, specifically 8-bit (256 colors). And even then, LoveDOS can still be very picky about what colors you use; you are better off using an HTML-safe 256 color palette like the one included with GIMP. As far as audio goes, the "official" version of LoveDOS does not have audio capability. To get it, you will need to look within the "issues" section on its GitHub in which someone figured out how and posted a link. I also have that version packaged for you in DOS's recommended software section on https://theouterlinux.gitlab.io. The audio you are limited to on LoveDOS the is WAV format; just remember, the file-size will go straight to RAM so keep these as small as possible. If you just convert an MP3 to a WAV without any extra parameters, the size will be too large to realistically work on a DOS system. FFMpeg is a cross-platform, command-line option to convert audio and video. You can convert MP3 and OGG to WAV using 'ffmpeg' via: ffmpeg -i input.mp3 -ar 11025 -acodec pcm_u8 -ac 1 output.wav ...the "-ar" part refers to the Hz rate; keep this at either 22050, 11025, or 8000. The "-ac" set to "1" means "mono" and a "2" would mean "stereo." Leave the "pcm_u8" part alone. LoveDOS and Love 10.2 Libraries ------------------------------- Lua is extensible and therefore Lua-based "libraries" can be used with your project to get more functionality than usual. The following is a list of tested libraries that appear to work between LoveDOS and Love version 10.2... - anim8.lua --> A library for creating animated sprites via a sprite sheet; make this sheet a single-rowed, 8-bit PNG - utf8.lua --> Helps display extra characters besides the typical 0-9, A-Z, and "!@#$%^&*()_+..." stuff. The Impossible -------------- Give up on having a "view-port" with camera follow like in top-down role-playing games. I have tried everything I possibly know to do to get this working. This should be obvious, but if you get a gamepad working on Love 10.2 because of the glorious magic that is "SDL," do not expect this to also work on a DOS system. You will have to help users figure-out how to map keyboard keys to gamepad/joystick buttons. The "QJoyPad" project is a good choice for GNU/Linux users. For more details on the subject of the "impossible," see the "Things Currently Not Possible in LoveDOS" link/file probably found on the same page as this one. Sharing your game ----------------- Package your game as a ZIP in which the folder contains the main.lua file. Rename the ZIP extension to "love". Love v10.2 on GNU/Linux and Mac OS X: cat /usr/bin/love-10.2 game.love > gamebin chmod +x gamebin Love v10.2 on Windows: cat love-10.2.exe game.love > gamebin.exe LoveDOS (no need to create a ZIP): LOVE.EXE --pack GAMEDIR GAMENAME.EXE Remember to specify the 'love-[version]' part if you have multiple versions of Love installed. Bonus ----- The latest version of Love for Windows XP that I have been able to find so far is Love v0.9.2. And, it also appears as though it has similar behavior when creating a game using LoveDOS and then running that game with love-10.2. However, you may want to avoid WAV files and use OGG instead; otherwise, you will get screaching and scratching on top of the audio.