Giter VIP home page Giter VIP logo

lemuroid's Introduction

Lemuroid

Get it on F-Droid Get it on Google Play

Description

Lemuroid is an open-source emulation project for Android based on Libretro. Its main goal is ease of use, good Android integration and a great user experience.

It originated from a rib of Retrograde, but graduated to a standalone project integrating LibretroDroid.

Screen 1 Screen 2 Screen 3
Screen1 Screen2 Screen3

Supported Systems:

Features:

  • Android TV support
  • Automatically save and restore game states.
  • ROMs scanning and indexing
  • Optimized touch controls
  • Quick save/load
  • Support for Zipped ROMs
  • Display simulation (LCD/CRT)
  • Gamepad support
  • Local multiplayer
  • Tilt input
  • Customizable touch controls (size and position)
  • Cloud save sync
  • HD mode

Languages:

You can help translate Lemuroid in your native language by going here: https://crowdin.com/project/lemuroid

lemuroid's People

Contributors

0legg avatar anjanbk avatar codebutler avatar devendra34 avatar grantamos avatar j2mcv avatar mcatta avatar poussinou avatar rwnobrega avatar swordfish90 avatar tytydraco avatar victorbnl avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

lemuroid's Issues

Update core option

Add a button in options to update the cores that have an update. This implementation was recently added to retroarch and is really very useful.

Slow performances on MiBox

It seems after a few tries that Lemuroid runs slowly on a MiBox, we should profile it to understand how we can improve it.

See #51 for more details.

Choose core

It would be nice to be able to choose the cores that emulated the games. In GBC and GBA they seem excellent emulators, but in NDS I prefer MelonDS (although it is not as advanced as Desmume) I find it a bit better. Although it is a matter of taste, I think it would be good to be able to choose it.

Couple of Suggestions

So upon my initial testing of the GBC core, this shows a lot of promise. I do have a couple of gripes, though.

  1. Possibility to disable lcd/scanline effects, linear filtering, and color adjustments.
  2. Reorganizing controls (this has been suggested before). I'm one who prefers a vertical a/b orienration.
  3. A fast-forward button, as well as other QoL buttons like that.
  4. A button or easy-to-access way to press A+B
  5. Option to disable diagonals
  6. Save backups/management
  7. Option to move and resize the screen. My phone has curved edges, so the edges of the screen warp a bit, which is rather jarring. The ability to resize the screen to avoid the curved edges would make it much easier to look at versus edge-to-edge.
  8. I noticed some relatively poor performance on the GBC core. I was testing a custom rom that should run at 60, and does on Android emulators such as MyOldBoy or John, but this one seems to have a hard time of it. I'm unsure whether this is due to the linear filtering plus the LCD effects, or if it's an emulator fault, but there is definitely some hitching even on a Snapdragon 855.

Otherwise, great job. This is a much better frontend than what Retroarch provides, especially on the UI front. I can't wait to see where this goes.

I haven't tested other cores, but if this turns out well, I might move my library back onto my phone, as I love the interface. Exactly what I've been looking for in an emulator suite for Android. Give me a reason to actually use the 256gb of storage this phone has!

Choose local game image

Many games do not recognize them, so the image is blank, these would be good (for example) to press where the image would go and let you choose a cover locally. The same happens in retroarch but they never solved it, the only way to fix it is to navigate to the folder where the images are located and place it there with the same name of the game. I believe that an option like the one I propose would make the use of lemuroid more enjoyable.

Also, I just realized (I think) that the covers are looking for them every time the app starts. Start Lemuroid without internet and no cover was displayed. It would be nice to save the covers locally.

[Request] Material Design light theme

Will explore implementation myself by providing stylesheet and using color highlights based on logo. Recommended to follow system theme as well with Android 10.

On MiBox storage permission dialog is not prompted

The storage permission dialog is not shown when starting the application on a MiBox. I'm not able to reproduce the issue on the emulator or my FireStick 4k so we need to investigate this a bit more.

See #51 for more details.

Boxart Covers for games with & in name

https://github.com/Swordfish90/Lemuroid/blob/b61f966f313a3309c4fb63e99b917a55c2258d1e/lemuroid-metadata-libretro-db/src/main/java/com/swordfish/lemuroid/metadata/libretrodb/LibretroDBMetadataProvider.kt

Above appears to have functions for fetching boxart from Libretro Database. This has been working well, although it's unable to fetch any games with "&" symbols in their titles. Reason appears to be that the ROM name is used when deciding which png to pull from Named_Boxarts.

While the ROM name on the Libretro Database metadata appears with a "&" in the name, the thumbnails in Named_Boxarts instead of have "_" in place of "&".

Example ROM name:
"Adventures of Batman & Robin, The (USA)"

Example of Named_Boxarts thumbnail:
"Adventures of Batman _ Robin, The (USA)"

Couple of example games from https://db.libretro.com...
Game Metadata:
https://db.libretro.com/Nintendo%20-%20Super%20Nintendo%20Entertainment%20System/Adventures%20of%20Batman%20_%20Robin,%20The%20(USA).html
Named_Boxarts Thumbnail:
http://thumbnails.libretro.com/Nintendo%20-%20Super%20Nintendo%20Entertainment%20System/Named_Boxarts/Adventures%20of%20Batman%20_%20Robin,%20The%20(USA).png

Game Metadata:
https://db.libretro.com/Nintendo%20-%20Super%20Nintendo%20Entertainment%20System/Joe%20_%20Mac%20(USA).html
Named_Boxarts Thumbnail:
http://thumbnails.libretro.com/Nintendo%20-%20Super%20Nintendo%20Entertainment%20System/Named_Boxarts/Joe%20_%20Mac%20(USA).png

Access external drives on Android TV

Using the TV version of the app it let me only search for a directory for the Roms in the Internal Storage without any possibility of using External Removable Storages like USB drive or HDD connected to the USB of my MiBox. Obviously I would put my roms in a external drive cause the internal storage is not big enough.

Improve experience with Sticks on PSX

Can't seem to utilize analog stick in PSX games. Tried with my 8bitdo SN30 pro+, as well as the on-screen virtual pad. Also tried with core settings changed for Pad 1 Type from Standard to Analog or Dualshock with restarts of the core in between with no luck.

I thought it could perhaps be related to "sendLeftStickEventAsDPAD" boolean that some systems seem to rely on for stick events being sent as dpad inputs, but other systems without that like PSP work fine. Would that be because PSP naturally had an analog, whereas PSX controller was dpad only?
https://github.com/Swordfish90/Lemuroid/blob/master/retrograde-app-shared/src/main/java/com/swordfish/lemuroid/lib/library/GameSystem.kt

Sorry I'm not the best at reading through code and understanding the various dependencies and functions working in tandem.

[Request] Android TV UI

Will be suitable for platforms like the Nvidia Shield, Fire TV, and MiBox. Going to need to implement a mapping button to leave game for devices that don't gracefully leave 'Back' function to apps.

Use IPS UPS BPS patches

The cores (such as mgba) accept the use of patches (softpatching) of these formats. In the retroarch wiki they say that softpatching depends on the core, But lemuroid uses retroarch cores, so there must be something to enable for the patches to work.

No cover for Resident Evil 2, PSX

I added Resident Evil 2 PS1 and it does not have a cover image, my other games do.

This is potentially not an issue, if so please let me know so I can remove it. Screenshot_20200827-120555.jpg

Allow pinning specific games to launcher

We'd like to allow pinning games to the launcher for faster usage. Here you can find more detail: https://developer.android.com/guide/topics/ui/shortcuts/creating-shortcuts

We should add an option on the context menu click which says "Pin to home".
If available, the icon should have the correct game cover.

The triggered intent should just launch the GameLauncherActivity with default settings with the appropriate game.

When rescanning these shortcuts should be refreshed to handle removed games.

PSX games don't load

I'm not able to get PSX games to load. I'm getting a black screen.

I've tried several ISOs, with and without PSX BIOS. Games are in bin/cue format.

I'm using a Galaxy S20 Ultra 5G (Snapdragon) running Lemuroid 1.6.0 installed through Google Play.

Remove "exit game without saving" from long press menu

This option has cost me to lose all saves twice now. Since the long press menu appears easily by mistake (pressing next to the button for example) it's easy to misclick and lose all progress.

Since the reset option exists, there is no real reason for this option to exist as users should always have the option to go back to their previous intentional save.

Maybe the long press menu should be rethought as it comes up to easily when using the touchscreen. A top bar that appears when pressing back with a menu option as well as quick saves and exit is standard and works well.

Game state auto save should happen everytime the app goes to background

Currently the app saves when the user returns to the emulator's home screen with a back press
This is fine but it should also save when the app goes to the background
Is a common practice for a phone user to simply change to another app and stop playing the game
After some time the app may be removed from recents by the user or it may be killed by the system in order to release resources, causing loss of progress

Also the app doesn't seem to keep saves made in-game after the rom is reset (at least thats what I observed in gba)

I really like the idea of having an easy and straightfoward emulation suite
The app is visually pleasing and matches really well with the android ecosystem
I'm looking forward for its development

Improve shader effects

I couldn't find anything to this, so is it possible to add the CRT-effect from your cool-retro-term to this emulator?

Label on-screen buttons

Please label the on-screen buttons. The start/stop/R/L buttons are unlabeled to me on N64.

Virtual gamepads disappeared in 1.4.0

On-screen controls aren't shown in any game or system since I updated to the latest version. Before 1.4.0, on-screen controls were correctly displayed.
Screenshot_2020-05-12-12-59-49-967_com swordfish lemuroid

custom button

custom button possition and custom transparency and i can't press two button in same time except ipress A+B in same time

Core options

Enabling core options is essential. An example of this is for example in GBA, to play Boktai, it is necessary to modify the sunlight meter, or to be able to tell you what time and day it is at the core. In addition to having greater control of the core and how it works.

Allow D-Pad controls for movement

In the current build, it seems as the cores only support analog controls. Allowing the usage of d-pads can extend compatibility towards controllers like the N30, SN30, and the M30.

Sega Gensis 3 buttons issue

There is an issue with sega gensis game which can play only with 6 buttons but only 3 buttons for all sega gensis games

Support for custom Gamepad layouts

Right now gamepads are supported, but on my 8BitDo SN30Pro the A and X buttons are swapped with the B and Y button. If we could re-bind the keys, or select a different layout that would be perfect.

Simultaneous face button presses don't work

The current touch controls are well implemented but they lack the ability to independently being able to be pressed simultaneously. Actions such as holding the A button and mashing B don't work, as holding one button seems to disable the rest until you let go. This makes playing games that have slow scrolling text very annoying (such as many RPGs), and precision platformers and fighting games that require you to combo multiple buttons at the same time.

Android TV Support

I have a Xiaomi Mi Box with several emulators, I would like to replace everyone with Lemuroid but unfortunately this is not supported.

As an attempt at a temporary solution, I tried to install APK manually, obviously it installs but I can't select the game folder without Lemuroid closes immediately.

A proper Android TV UI would also be great, but just making it work would make me happy :)

Implement Accessibility in LemuroidVirtualGamepad (and RadialGamePad)

Hey it's Juan here, and I have a bit of an issue. Upon starting laytest version of lemuroid, all menus, buttons, and tabs look fine, but when I start a game, the menu for saving and loading, restart settings and quit, are no longer available to the screen reader. Additionally, I can't see the surtain controls, like start and select, l1 and l2, r1/2. I would be grateful, as I rather independent gameing, than someone accessing menus and pressing start on a game for me. Thanks in advance, Juan.

Allow custom firmware for Nintendo DS

It would be excellent to be able to use the BIOS and firmware in the emulators. BIOS is more than anything aesthetic but it is an aggregate that I would greatly appreciate. But firmware (for example from NDS) is necessary why it always shows multi-language games only in English and also the name of the user is always Desmume.

Turn off automatic scraping

This feature bloats the storage since the scraper usually scrapes images in the highest quality possible.

[Request] Allow directory of save files to be specified

Currently not sure where exactly save files are getting stored and if any are actually being made. Are quick saves being utilized only?

My big recommendation is for save files to be placed in the same directory as the ROM files just for ease of syncing to other platforms and upkeep.

Request and feadback

Hello Swordfish, I am a blind user of lemuroidd, and I have a small request of you. In future updates of Lemuroidd, could it be possyble to keep this interface? This interface is most accessible to us, especially because retroarch is no longer acessible on Android. Could it be possyble to add an arcade core? Thanks so much, and hope you take my requests into consideration.

Implement CHD support for disc-based systems

The compression benefits of the CHD format are too good to ignore, and as such my entire PSX collection is stored in this format - Lemuroid does not pick any of these up when scanning for content.

I'm assuming that this is because there is no CHD support, as the same ROMs scan fine in Retroarch.

Re-Design TV Banner

Honestly, the TV banner I designed doesn't look pretty. If someone with better image editing skills wants to take the lead on this one I'll be immensely grateful.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.