nikita36078 / J2ME-Loader

A J2ME emulator for Android.
Apache License 2.0
1.72k stars 195 forks source link

[Feature Request] Frontend support and Centered mode #752

Closed Retroism closed 2 years ago

Retroism commented 3 years ago

I use it along with DIG which is a frontend for games. Issue is when I launch games from it is that it triggers the screen setup of the specific game rather than launching the game directly using the main activity.

Centered mode for none fullscreen games hopefully can be added too for those who use physical controllers. Hiding the touchscreen keypads doesn't remove the white area where the keypads are placed. I know it's a small thing but it feels awkward having an empty space at the bottom of the screen. Having the center option can be a good workaround as well ability to upscale the emulation screen by a little so it can be close to an almost fullscreen experience.

woesss commented 3 years ago

Do you mean upscale of game screen out of the device screen at the expense of content visibility? Or ignore aspect ratio? - this option already exists in the settings.

stevenfelix505 commented 3 years ago

@Retroism Centered mode? This one, right?

Centered mode on: Screenshot_20201225-195851_Snes9x EX+

Centered mode off: Screenshot_20201225-195830_Snes9x EX+

Retroism commented 3 years ago

@stevenfelix505 yes! Is that GBA.Emu? I can't seem to do it in j2me loader, do you have any workarounds?

stevenfelix505 commented 3 years ago

@Retroism that's Snes9x EX+, the UI is similar to GBA.emu, and sadly, I don't have workarounds.

nikita36078 commented 3 years ago

Centered mode - #625, #481 You can stretch the game to fullscreen by disabling the "Keep aspect ratio" option, as woesss already said. Does DIG openg the game setup only on the first launch? Then it doesn't look like a problem - different games require different settings and the main issue is screen resolution.

woesss commented 3 years ago

@nikita36078, нет - DIG присылает полный путь к папке конверта, тогда как ConfigActivity ожидает только имя и навешивает его на путь текущей рабочей директории. Вроде на дискорде писали что разработчик дига обновился - я не проверял. Но в виду возможности изменить рабочую директорию, всё-таки нужно использовать полный путь к конверту и строить остальные пути относительно него - юзер может наделать ярлыков при разных настройках папки или из того же дига запускать игры из рабочей папки, отличной от той, что выбрана в эмуляторе на момент запуска. У меня уже есть коммит на эту тему, если что.

Update: проверил нынешнюю версию дига. Теперь он присылает имя папки без путей, но не открывать настройки у него нет возможности - MicroActivity закрыта от внешнего запуска, а в ConfigActivity с каких-то пор нет проверки на необходимость их показывать.

Update 2: обшибочка - вся проблема в том, что он присылает action config.edit, что и заставляет показывать настройки.

woesss commented 3 years ago

@Retroism, about DIG - you need to write to its developer so that he doesn't add the "config.edit" action to the launch intent

Retroism commented 3 years ago

@nikita36078 problem with unticking aspect ratio is that it is "hit or miss" some games can be stretched full screen centered while some will get wrapped at the left upper corner and sometimes becomes smaller than the inputted resolution. It's tedious making different settings for each game rather than using a global one that can be used across everygame without messing with resolution. Having a center mode will eliminate this frustration by playing the game at default resolution everytime we launch a different game.

As for DIG, it uses the activity to launch a game but using the MainActivity will launch the game library and not the currently selected one, so the ConfigActivity is used as a workaround to launch a specific game but will have to manually press the "start" button.

You can actually write the launch path of an activity with DIG i tried both MainActivity and ConfigActivity as well as javax.microedition.shell.MicroActivity

MainActivity launches the game library not the specific game ConfigActivity launches the specific game but will have to go through the configuration settings and manually start MicroActivity triggers an error

Retroism commented 3 years ago

This one is the default aspect ratio of the game but it is in top of the screen, the ability to center or select the location of the emulation screen can be hopefully implemented in the future Screenshot_2021-01-21-19-22-21-1115192685

While this one is with ignore aspect ratio with force full screen. yes it is centered but it looks ugly and definitely not ideal to play. Screenshot_2021-01-21-19-23-49-1150857671

woesss commented 3 years ago

The games themselves are designed for different screen sizes - it is impossible to make a universal setting, since the required sizes are unknown and cannot be determined automatically. I added a gravity setting to the (JL-Mod) - is this option right for you?
About DIG - I already wrote, don't put config.edit action in launch intent, and use ConfigActivity. Also, in the current dev build of origin J2ME Loader, you need to specify the full path to the application dir in the intent.
P.S. Hmm... the DIG settings do not allow you to select action and data. You need to create a new configuration (emulators-> new) with the same parameters as J2ME Loader and select it for the J2ME system. For the latest public releases of DIG and J2ME Loader it will work as it should.

Retroism commented 3 years ago

The games themselves are designed for different screen sizes - it is impossible to make a universal setting, since the required sizes are unknown and cannot be determined automatically. I added a gravity setting to the (JL-Mod) - is this option right for you? About DIG - I already wrote, don't put config.edit action in launch intent, and use ConfigActivity. Also, in the current dev build of origin J2ME Loader, you need to specify the full path to the application dir in the intent. P.S. Hmm... the DIG settings do not allow you to select action and data. You need to create a new configuration (emulators-> new) with the same parameters as J2ME Loader and select it for the J2ME system. For the latest public releases of DIG and J2ME Loader it will work as it should.

THANK YOU! this is exactly what I was looking for the center gravity works perfectly. Now I still haven't tested it with DIG. But thank you I can now play my java games centered with a controller 😘😘😘

Retroism commented 3 years ago

Screenshot_2021-01-22-11-43-06-0771607817 Screenshot_2021-01-22-11-42-57-2052007999

Tried your modded version with DIG and it gives this error. It will rotate my screen from Landscape to Portrait as if launching the selected game and skipping the config but will close immediately and show this error.

woesss commented 3 years ago

At the moment the mod does not run from the latest DIG version, but works with the previous ones (tested for 1.37).
The mod requires the full path to the game folder, as in the next release of the J2ME Loader (already in the latest developer build).
I think this is the final version of the launch intent - so a change is needed on the DIG side (now it cannot be configured by the user from the settings of the DIG application).

Retroism commented 3 years ago

Ah yes! I downgraded to 1.37 and it works, I guess I'll have to talk to the DIG developer about the issue! Thanks a lot! All my issues have been resolved! Cheers to the team working on this project! Will you add the gravity feature in future versions of the official app?

nikita36078 commented 3 years ago

Yes, I'll add it.