BlitterStudio / amiberry

Optimized Amiga emulator for Linux/macOS
https://amiberry.com
GNU General Public License v3.0
660 stars 89 forks source link

Amiberry Android & UAE files #206

Closed ransom1122 closed 4 years ago

ransom1122 commented 6 years ago

Hi

The big question on everyone's lips is...

  1. Does anyone know when the android port of Amiberry will be released? Who is working on it?

  2. Wil UAE files from older version of Amiberry on Raspberry Pi or UAE4ARM (Android) work on the new version of Amiberry on Android?

If not... Would it be possible to batch edit uae config files from a previous Amiberry version with a text editor for compatibility with the (when released) Amiberry for Android.

Thanks for your time... Ransom

midwan commented 6 years ago

@ransom1122 There is an Android target already in the Makefile, both for SDL1 and SDL2. I tested compiling it all the way to an .apk and wrote a guide about that, but I haven't run more tests with it yet. This is certainly something that needs a bit more attention, before the next release (the aim is to release binaries as well, so they should be working as expected).

Regarding the config files, older configs will work in general (some options no longer exist though, so those will be reverted to their defaults), though I'd be happier if we test this area more, before the release. Samples of config files that cause problems (if they do) are welcome, so we can study them and provide a solution.

thatman84 commented 6 years ago

FYI I know it's a bit early for an Amiberry compatibility sheet but I am preparing one in readiness as there is plenty to fill out in the mean time for Hyperspin related stuff. It would be a Shield TV focussed sheet but I can test on an S7 also.

It would be awesome to collaborate and have maybe a second page for the Pi compatibility also. Keep everything in one place.

No pressure here UAE4arm and UA WHDLoad is doing a good job right now

midwan commented 6 years ago

I have a Shield TV and a few Android platforms to test with here, as well.

thatman84 commented 6 years ago

I recently started to learn a bit of Android Studio when an OpenBOR issue popped up.

I intend to continue learning Android development in the futire for emulator purposes but all the guides and stuff are geared at making new apps :(

What build environment do you use for this project?

ransom1122 commented 6 years ago

Can we test out the alpha apk on our Shields at all? Possibly testing out the transition of raspberry pi configs to android?

Where is this guide you wrote about?

There are more then enough people to help test out this alpha apk and submit issues for you if required..

midwan commented 6 years ago

I'll post the guide to a page in the Wiki, where it belongs :)

I used a Linux VM (Ubuntu-based, 64-bit) to install the JDK and Android Studio, then compile the emulator and use Android Studio to build the apk...

ghost commented 6 years ago

I'm also interested in this Android version mainly because of the huge speed advantage and it can be made portable to some extent. I know the "old" Android version had a basic built-in keyboard, I assume this will no longer be a feature ?

midwan commented 6 years ago

@blinkydoos All of the extra features from Lubomyr's version are included actually. :)

ghost commented 6 years ago

That's great to here. It would be even better if the built in keyboard had the same keys and layout as a real Amiga because I remember there being a lot of keys that weren't even needed and you had to hunt out the exclusives like 'Help' and the 'Amiga' keys but this is way into the future !

ransom1122 commented 6 years ago

@midwan Thanks for the reply you have many people excited for the release. All the best..

thatman84 commented 6 years ago

Great stuff @midwan

Hope the release goes smooth for you.

So VM is next on my hit list for tinkering :)

midwan commented 6 years ago

Sorry this is taking longer than expected :)

I have been checking the different ways of doing it, so we can document the preferred/best way depending on complexity, ease of use, etc.

The "classic" approach of using the instructions from Lubomyr's repo, does work with his source code. There are other ways to do it also:

I didn't have enough time to test all of the above yet, making sure it works from start to end. I did test the Android Studio approach up to the point of generating an APK from a C++ "hello world" application, but I wanted to see how we handle external dependencies beyond that (e.g. libraries besides SDL itself).

Probably the Android Studio approach will be the most attractive one, because it's multi-platform. Personally I'm more experienced in Visual Studio, so I'll give that a try as well (no harm in having more than one way of doing things). The plan is to document the approach in a Wiki article, so anyone can follow it and set it up.

If anyone wants to go ahead and start documenting something in the meantime, feel free to do so. It's a collaborative effort anyway, we can help each other :)

Also, I expect that some code changes might be needed, I've ported the Android specific stuff from Lubomyr's repo into Amiberry, but haven't really tested it in real-life yet. ;)

thatman84 commented 6 years ago

Thanks for the update and no need to apologise it's good to know the Android side is coming along.

I am quickly realising I have a lot to learn!

3 evenings trying to get the java path to stick may give you an insight to my skill level!

I will try your other linked solutions but I expect I will need a specific Amiberry guide in the end.

Once something is fleshed out I will be a good dummy tester and help make the wiki well dummy proof :)

ransom1122 commented 6 years ago

If Android Studio is most appealing & Visual Studio is where your most experience then its probably best you stick with only these two for now to avoid complexing things.

Thanks for the update midwan. Things are definitely looking positive going forward.

There is so much excitement in the air about this release. You should be one proud man. 👍

ransom1122 commented 6 years ago

@midwan I read on facebook page that the emulation core has been updated to winuae 3.6.0 core which is amazing. Does this mean that the Android port of Amiberry will include this as well when released?

midwan commented 6 years ago

@ransom1122 Yes, of course. The codebase is the same across all targets ;-)

ransom1122 commented 6 years ago

@midwan Amazing.... Can't wait exciting times ahead... 🤗

ransom1122 commented 6 years ago

@midwan With the recent addition of the ASUS Tinker Board will this delay the release of the Android port at all?

midwan commented 6 years ago

@ransom1122 No! :) The Tinker port is done by another person, although I am helping along. I'll try to do another test with Android Studio today and see where we are with external dependencies.

ransom1122 commented 6 years ago

@midwan excellent work 👌

With the Nvidia Shield being way more powerful then a raspberry pi 3. Do you think new version of Amiberry on Android will have better performance over pi on games that require higher cpu performance?

midwan commented 6 years ago

@ransom1122 I am sure of it, and that's something I'm eager to test. :) As I also have an Nvidia Shield at home, I'll probably be the first to test it on it...

ransom1122 commented 6 years ago

@midwan..

Cool keep us updated..

thatman84 commented 6 years ago

Sorry for this stupid question but it affects how I spend my evenings.

Just wondered if you could give a conservative guess at the time frame for a test apk?

If you think it could be a month or 2 I will probably find other things to work on as I could not learn enough to help out. But if its more like 6 months i could probably get somewhere with it.

I know its a how long is a piece of string question but any clue will help me plan out my free time.

midwan commented 6 years ago

@thatman84 Obviously it's not easy to give a proper time estimation, but if I had to guess, I'd say certainly less than 6 months ;-) It's a slow process mostly because there's not enough free time per day. If I could spend a week of 8-hour-per-day on it, we'd be done already... But we're getting there.

thatman84 commented 6 years ago

Thanks @midwan yeah I knew its a tough one. So many things to do and so little time :) thanks for the stab. Certainly getting there....keep it up. 👍

ghost commented 6 years ago

@midwan Hi, just a quick question, will the new Android version be released at the same time as the Raspberry Pi version ?

midwan commented 6 years ago

@ZappaUtopia probably not, unless we delay the release more. The android version is not ready yet...

midwan commented 6 years ago

Now that the new version is out, I can finally focus on the Android version properly. :)

ransom1122 commented 6 years ago

Hooray. Thanks for the announcment 😎

thatman84 commented 6 years ago

:) :)

Honosuseri commented 6 years ago

Congrats on the release Midwan. I was very happy to inform my friends the day we had long been waiting for, had finally come this weekend! Thank you for all the hard work you put into this project.

We are very excited about the Android version of Amiberry. The Amiga is one of the most viewed topics in the Android section of the Hyperspin (frontend) forum. We are doing our best to do the Amiga justice on the Shield TV & show our love for the system with appropriate visual flair.

We are thankful for all the work that was done on UAE4ARM however it limits us in many ways. For example it's beta version gave us launch intent, so we can use it with frontends to showcase and launch our games. Although it's fussy how the uae's are named. Not allowing spaces in the name has confused many people, ultimately they gave up trying to use the emulator which is a shame. Least of your problems I'm sure but I wanted to bring it to your attention.

When we have Amiberry available on Android, we sincerely hope our little project will get even more people excited and bring attention to what you do. We'd like to think that maybe one day you might even use it yourself on your own Shield TV :)

Wishing you all the best

ghost commented 6 years ago

Gongrats on the release and another +1 for the Android version ! This will be a great portable Amiga that I can use on my GPD XD handheld when on travels. On the current Android version there is some dodgy mouse movement especially when using a joypad, it sort of gets stuck and stutters. I think this is due to SDL on Android though as it also happens a bit on SCUMMVM. I don't think SDL get's updated unfortunately (well they've yet to fix the stuttery mouse movement). Keep up the great work @midwan !!

midwan commented 6 years ago

It's a start at least... :)

amiberry_android

ransom1122 commented 6 years ago

That's just teasing now.... 😉

midwan commented 6 years ago

@ransom1122 that's the point...

ransom1122 commented 6 years ago

@midwan As long as you get a smile then thats alright. 😁

bspinner commented 6 years ago

@midwan FYI: One thing to be considered when developing close to metal for mobile CPUs is the possibility of different cache sizes of cpu cores in big.LITTLE arch. The Mono/Xamarin Team had a lot of fun due to this.. :) http://www.mono-project.com/news/2016/09/12/arm64-icache/

At that point we were using our own version of this function, so we instrumented it to print the cache line size as returned by the CPU and, lo and behold, it printed both 128 and 64. We double verified that this was indeed the case. So we went to see that particular CPU manual and it turns out that the big core has a 128 bytes cache line but on the LITTLE core it is only 64 bytes for the instruction cache.

midwan commented 6 years ago

@bspinner holy sh*t! That's really messed up if you get into it...

ransom1122 commented 6 years ago

@midwan

Hi.. Understand your life must be busy as hell... Thought I might ask how progress is going on the Android port at the moment of any?

midwan commented 6 years ago

@ransom1122 Got stuck currently, on getting everything to work properly. I spent a few weeks of afternoons and a few weekends trying to find a solution, but didn't get too far.

ransom1122 commented 6 years ago

I assume you haven't given up?

midwan commented 6 years ago

No, of course not! :) Just taking a break from it to keep my sanity (and hair), while @bspinner is also working on it in the meantime.

ransom1122 commented 6 years ago

Ok Thanks for the reply.👍

bspinner commented 6 years ago

@ransom1122 Please don't hold your breath while waiting for this. I'm invested in two other projects I'll need for my wedding, so the hair pulling adventure of setting up a Android NDK project isn't my top priority currently.

ransom1122 commented 6 years ago

@bspinner @midwan Fully aware of how long things can take. Not a problem at all, we all just hope that this project doesn't die at any stage. All the best. 👍

ghost commented 6 years ago

Lubomyr has just updated the Android version with all TomB's updates (and yours). http://eab.abime.net/showpost.php?p=1230071&postcount=431 Haven't tried it yet so don't know what exactly was added. @midwan He said he disabled the JIT FPU because it crashes the app, maybe this is why you can't get the Amiberry version working ?

midwan commented 6 years ago

@ZappaUtopia Thanks for the notification. I'll check it out...

ghost commented 6 years ago

I gave it a quick try, it seems buggy, I opened the on-screen keyboard and closed it and it locked up the app. Visually it still looks like UAE4Arm, there are no Amiberry GUI changes like the Correct Aspect feature or the Custom Controls page, but the Android version always had working custom controls so no need for that part. On his Github page there is a part in the code about a choice of keyboard layout, Amiga, Commodore 64 and Atari 800.

ransom1122 commented 6 years ago

Any progress or updates at all?

ransom1122 commented 6 years ago

@Midwan

4 months have passed...without any word on Amiberry Android version...

Is there still any hope we see Amiberry on Android anytime soon?

We're all holding our breath in despair..

😑😑😑