Fate-Grand-Automata / FGA

Auto-battle app for F/GO Android
https://fate-grand-automata.github.io
MIT License
1.5k stars 273 forks source link

Support Surface Duo #867

Closed jason-ogaard closed 3 years ago

jason-ogaard commented 3 years ago

Preparation

Describe the feature

I'm playing on a surface duo and believe that the aspect ratio of the screen is throwing the app off. No matter what part of the game I'm in I get the same "battle config" screen. I've given the app every permission it asks for. I've looked through the faq regarding how FGA expects the app to look, I believe it's the blue bars on top and bottom that are throwing it off (though when I turn on debug all of the boxes are within the content of the app).

Screenshot_20210908-130625

reconman commented 3 years ago

Not a feature, 4:3 should already work. Open a bug report, a video would be helpful.

reconman commented 3 years ago

I just read that its a Surface Duo, can you try turning on navigation gestures again? https://www.windowscentral.com/surface-duo-speed-tip

reconman commented 3 years ago

You can also try Ignore Notch, maybe that has an effect. You're the first user with a dual screen display I've encountered.

jason-ogaard commented 3 years ago

Perhaps it is the 2 screens causing the issue. The very short video (apologies) below taken with the FGA app appears to record both screens even though I have the phone folded over and it's in single screen mode (the top half of the video is black, that is the second screen). I've tried toggling every option that seemed relevant in FGA and in the phones settings, including gestures, And none have made a difference.

Thanks for the quick replies

https://user-images.githubusercontent.com/3477027/132581555-f0280246-5613-45d6-9599-0711a6a983fe.mp4

MathewSachin commented 3 years ago

I highly doubt we've supported dual-screen or foldable devices till now. No one ever asked for and we don't use foldables either so never checked.

Does FGO fill both screens if you open up the device?

reconman commented 3 years ago

@MathewSachin the screenshot is just the area of one screen, so 1800x1350.

https://docs.microsoft.com/en-us/dual-screen/android/duo-dimensions

MathewSachin commented 3 years ago

Can the 2 screens be used for a single app or one app only runs one 1 screen?

reconman commented 3 years ago

As far as I can tell, apps run on 1 screen by default, unless the user tells it to run on 2.

In order to use both screens natively, devs have to use the Surface Duo SDK.

I guess the problem is that FGA reads the full display size, not the halved one. According to this page foreground services will see the full height and width, which would explain the black part in the video.

https://docs.microsoft.com/en-us/dual-screen/android/ has a guide on how to emulate a Surface Duo, but we can't tell if FGA (or even FGO) will even run on there.

jason-ogaard commented 3 years ago

Can the 2 screens be used for a single app or one app only runs one 1 screen?

They can, but like reconman said they open on one screen by default. I have to use a gesture to make them span across both screens and it generally looks awful if I do unless the app supports dual screens. I did try this with fgo/FGA and lost the play button for FGA when I did.

I'm more than happy to test any updates for you.

jason-ogaard commented 3 years ago

Here's a screen shot of fgo spanned across both screens. Interestingly, the gap between the screens is blanked out for the user, so I don't see the middle 20ish pixels, but the phone sees them just fine. You can also see there are black bars across each side. It might be easier to support fgo in this mode as you don't have to worry about the different screens. Though since the phone is technically in portrait mode you'll have to allow FGA to support it while the phone is upright.

Screenshot_20210909-130125

MathewSachin commented 3 years ago

@jason-ogaard can you test the apk from this page: https://github.com/Fate-Grand-Automata/FGA/actions/runs/1248908972

I've added a new option: More options/Advanced/Game Area mode. Set it to LowerHalf and see if it works for the first case you showed us. The one in which the FGA video only had FGO in the bottom half.

jason-ogaard commented 3 years ago

@jason-ogaard can you test the apk from this page: https://github.com/Fate-Grand-Automata/FGA/actions/runs/1248908972

I've added a new option: More options/Advanced/Game Area mode. Set it to LowerHalf and see if it works for the first case you showed us. The one in which the FGA video only had FGO in the bottom half.

I just tried this update (thank you) in every screen configuration I could think of (app on top screen bottom folded under, app on bottom screen top half folded back, both screens active, etc) and none seem to work.

Here's the setting I used for when I tested the app on the bottom screen Screenshot_20210918-114600

Here's a video of me selecting a battle config and nothing happening

https://user-images.githubusercontent.com/3477027/133898123-c93e5d66-8422-4e17-8d85-d143df7f0b6d.mp4

Here's the support selection screen Screenshot_20210918-115216

I'm guessing based on the video that the app is still "seeing" the entire screen.

MathewSachin commented 3 years ago

I think I get the problem. The app captures the video in landscape, but in your case, it should use portrait. Let me see if I can adjust for this.

MathewSachin commented 3 years ago

Were the debug mode rectangles not showing up or did you have them turned OFF? If you had them turned OFF, can you post a debug mode video?

MathewSachin commented 3 years ago

Ok. New build with recording adjusted: https://github.com/Fate-Grand-Automata/FGA/actions/runs/1249085594 Get me a debug mode video for this one to see actually what it is doing.

jason-ogaard commented 3 years ago

You're right. I forgot to turn on debug mode. That gives us a good idea as to what's going on. It looks like it's not accounting for the "blue space" at the bottom.

https://user-images.githubusercontent.com/3477027/133907800-6657b806-e8b6-4d91-a43b-fd2282bb8d4e.mp4

MathewSachin commented 3 years ago

What I understand from the video is, the screenshots we receive include the whole 2 screens, but the coordinates for clicks and everything else should be within 1 screen. It's a bit weird, might be better to just support the case where FGO spans both screens.

Try this build: https://github.com/Fate-Grand-Automata/FGA/actions/runs/1250004739

  1. FGO should span both screens.
  2. Set Game Area Mode to Duo. I've removed the Upper half, lower half options.
  3. Post a debug mode video of a screen on which FGA would work, like Battle or Support Selection because FGA cannot start from Party selection screen.
jason-ogaard commented 3 years ago

Here's a screen shot of how it looks when you hit play Screenshot_20210919-103104

And here's the video

https://user-images.githubusercontent.com/3477027/133935456-5bd7139d-4bbc-4036-a2b7-7f74319ec899.mp4

MathewSachin commented 3 years ago

I feel like only FGO is filling the two screens while FGA is still only on the right half screen. Did you do that whatever gesture you use to span to multiple screens for FGA? Also, make sure to do that before clicking on Start Service.

MathewSachin commented 3 years ago

There's also another problem. The black bar at the bottom of the screen in your screenshot doesn't seem to appear all the time. I had cropped out that area in the code thinking it stays there all the time. Once you let FGA take up both the screens, also try in Battle to check if you see any green debug mode rectangles there.

jason-ogaard commented 3 years ago

It took me a while to figure out how to switch between apps while keeping the current app spanned across both screens. You were right that FGA wasn't spanned, but the video I think will show you that the debug area is the same regardless. The black bar at the bottom does go away after a few seconds. The newly interesting thing is that it actually runs in a battle when spanned (I've never tried this before).

It seems to work for the most part now. The app gives me the support image creation option.

Screenshot_20210919-155505

And it does everything aside from actually selecting the node and starting the battle. Here's a video of it starting at the support selection screen.

It completes the battle, accepts the rewards, clicks repeat, chooses a support, and starts another battle.

jason-ogaard commented 3 years ago

It took me a while to figure out how to switch between apps while keeping the current app spanned across both screens. You were right that FGA wasn't spanned, but the video I think will show you that the debug area is the same regardless. The black bar at the bottom does go away after a few seconds. The newly interesting thing is that it actually runs in a battle when spanned (I've never tried this before).

It seems to work for the most part now. The app gives me the support image creation option.

Screenshot_20210919-155505

And it does everything aside from actually selecting the node and starting the battle.

It completes the battle, accepts the rewards, clicks repeat, chooses a support, and starts another battle.

jason-ogaard commented 3 years ago

I had to compress the videos to upload them.

Here's the battle video where FGA selects the support and starts the battle:

https://user-images.githubusercontent.com/3477027/133944961-a9160cca-ddfc-42e9-91ba-aab7e957a72a.mp4

And here's the node selection video:

https://user-images.githubusercontent.com/3477027/133944950-d21e0885-f5bb-45b4-93b2-1a83251990ec.mp4

Everything is working aside from it selecting the node. This is great work!

MathewSachin commented 3 years ago

So, I guess the Play button and debug mode regions are still in the right half because they're overlays and stay independent from the app. This shouldn't really be a problem, I can't think of how to fix it anyways.

I made the change to not consider the black bar at the bottom of the screen. I hope this works for the quest start screen. https://github.com/Fate-Grand-Automata/FGA/actions/runs/1254253271

jason-ogaard commented 3 years ago

I can confirm that your changes have fixed everything. FGA now runs properly with FGO while spanned across both screens on my duo. Thank you for your time and effort.