Main Restorations Software Audio/Jukebox/MP3 Everything Else Buy/Sell/Trade
Project Announcements Monitor/Video GroovyMAME Merit/JVL Touchscreen Meet Up Retail Vendors
Driving & Racing Woodworking Software Support Forums Consoles Project Arcade Reviews
Automated Projects Artwork Frontend Support Forums Pinball Forum Discussion Old Boards
Raspberry Pi & Dev Board controls.dat Linux Miscellaneous Arcade Wiki Discussion Old Archives
Lightguns Arcade1Up Try the site in https mode Site News

Unread posts | New Replies | Recent posts | Rules | Chatroom | Wiki | File Repository | RSS | Submit news

  

Author Topic: Making an Android Frontend (Android 2600:Part 1)  (Read 58417 times)

0 Members and 1 Guest are viewing this topic.

degenatrons

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 364
  • Last login:March 29, 2016, 05:53:23 pm
    • KADE
Making an Android Frontend (Android 2600:Part 1)
« on: June 19, 2013, 03:40:36 pm »
Part 1 of the Android 2600 project

I set out to make a simple frontend for Android by customising an existing launcher (Nova Launcher) in combination with other utilities.  Aim was to completely strip away all of the Android components (Dock, Status Bar, Navigation Bar, Search Bar, Home Screen, Lock screen, icons,  widgets etc) and simply have one page per system with a themed background.  Games for each systems will be run via shortcuts which are given images (screenshots or boxarts). Rather than litter the screens with game shortcuts I opted to use a hidden folder on each page.  Having only this one item on each page allows the user to cycle through systems with one press of the controller (left or right).

It was possible to strip down most of the Android screen elements by configuring Nova Launcher.  Config details are posted below.
I used the full!screen app to hide the status bar and the icons that appear in the touch areas.

The OS I am using is Android v4.1 (Jelly Bean) on a rooted device.  Refer to part 2 for the hardware and firmwire I'm using.
Screen is set at 1980x1080 at 60hz with HDMI output.  The device supports other screen resolutions.

I made a custom boot animation and applied it using the Boot Animations app.  For now,  I simply use a static gif image but it is also possible to generate an intro from an animated gif.  There are some examples of ready made intros at http://androidbootanimation.com/
It is also possible to change the boot logo which appears briefly before the boot animation.  For this I will need to modify the boot image (firmware) and reflash the hardware.  I'll take a look at that later.

To allow multiple wallpaper backgrounds (one per system) I installed Multipicture Live Wallpaper and made some of my own HD backgrounds.
I've attached my Photoshop template (EDIT: oh no i haven't - it's too big) and the JPEG backgrounds can be viewed at http://imgur.com/a/hmxbz#0



I include the system name as part of the background image in bottom-right corner.  Originally I had used the system name artwork on the games folder but it wasn't quite big enough.  The hidden games folder is in the same location, bottom-right.
The games folder is hidden by simply setting its image to be a 1x1 pixel transparent gif.

Nova Launcher allows shortcut creation for some applications including most of the console emulators that I have installed.  After creating a shortcut,  I apply artwork and move the shortcut to the hidden games folder.

I used Font Installer to change the default Android font - which is used for the game names.

I've installed these emulators so-far.
 * ATARoid
 * NESoid
 * SNESoid
 * GENSoid
 * N64oid / Mupen64
 * PCE (PC Engine/Turbografx)
 * GAMEBoid
 * GEARoid (Gamegear and MasterSystem)
 * FPse (PS1)

I'm mainly focussed on consoles for this project.  There are many other emulators on Android for me to test including MAME, NEOGEO, CPS, NDS, Saturn, Amiga, C64, GBC, PSP, Scumm

I made some notes on setting up:

<SETTING UP>

Install these apps:
 * Nova Launcher
 * Nova Launcher Prime - optional
 * full!screen
 * Multipicture Live Wallpaper
 * Font Installer Root
 * Boot Animations Root

Run full!screen app and apply these settings:
 * full!screen mode > On
 * Autostart > On
 * Show notification > Off
 * Set opacity (of touch areas) > 0% (to hide the home button/corner buttons)

Run Font Installer app:
 * Install Dekar font (or the Droid font maybe to match the android|2600 logo)

In Android Settings:
 * Display > Auto hide systembar
 * Display > Font Size > Large (or Huge)
 * Screen > Screen Scale > Extend to Max (if you have a black border to remove)
 * Screen > Output Interface > HDMI (it was the only option)
 * Screen > Display Mode > 1920x1080p-60

In Nova settings:
 * Nova > Select Default Home as Nova Launcher (if not set already)
 * Desktop > Desktop Grid > 5x5
 * Desktop > Width Margin > None
 * Desktop > Height Margin > None
 * Desktop > Persistent Search Bar > Never
 * Desktop > Home Screens - Create a screen for each system
 * Desktop > Lock Desktop > On
 * Drawer > Inifinite Scroll > Off
 * Drawer > Advanced > Remember Position > On
 * Dock > Enable Dock > Off
 * Dock > Show Divider > Off
 * Dock > Show Scroll Indicator > Off
 * Folders > Label Icons > On
 * Look and feel > Show notification bar > Off
 * Look and feel > Scroll Speed > Relaxed
 * New Apps > Auto Add Shortcuts > Off

On Desktop:
 * Remove all widgets
 * Remove all app icons (can still access all apps with long left click on desktop)
 * Set the active wallpaper as "Multipicture Live Wallpaper"

Change settings of the live wallpaper,  we want to have individual settings for each screen.
 * In screen settings > Add inidividual settings (this creates screen 1 settings)
 * In the screen 1 settings,  set picture source to JPEG image of first system e.g. NES
 * Set crop/resize ratio > show entire picture
 * In Drawing Settings > Transition Type > None (Fade and outside-cube work well too)
 * Repeat these steps for all other system screens

</SETTING UP>

Would be cool for others to replicate this setup and suggest ways that it can be improved.

One thing I'd like to improve is to have bigger boxarts/screenshots for the game images.  AFAIK it is not possible to increase size more than 130% unless I start hacking at the launcher .APK file and force some changes that way.

Can anybody help me to create an intro animation using the Android 2600 logo?

I made a short video of the frontend on my main project thread.  I'll try to post some pics of this running on my TV soon.

« Last Edit: June 19, 2013, 04:12:41 pm by degenatrons »

chopperthedog

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 1049
  • Last login:Yesterday at 03:18:18 pm
Re: Making an Android Frontend (Android 2600:Part 1)
« Reply #1 on: June 19, 2013, 05:10:30 pm »
Increasing the icon size within a folder from source shouldn't be too hard if you have a build box set up. Never dealt with building from source myself only madhacking of apk's with apktool and some java sdk tools. But from a decompiled apk would prove to be a greater challenge. For an edit like that since it has a variable (e.g. being able to edit size from settings) it ends up in java and is no longer just an xml line that would be part of dimens.xml. I've done some smali edits in the past, it just really helps to be able to find the line of source code you want to edit and and convert the entry to hex and then you hope to find that line within the smali mess. The bookmark widget from the browser would be something interesting to use as a scrollable layout for game titles.


good day. 

Mungo9000

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 82
  • Last login:August 25, 2016, 09:18:21 am
Re: Making an Android Frontend (Android 2600:Part 1)
« Reply #2 on: June 20, 2013, 02:00:02 pm »
Amazing work.
I've just built a couple of machines out of Android tablets (using your hexload minimus) and I realised that MAME systems no longer needed to use bulky Windows PC's; cheap Android can do it all now that the software is coming together. (Plus a way to make sensational mini machines)
This is going offer huge cost savings as a TV stick and minimus gives all of the guts for around £50.
Excellent work again Degenatrons.  :applaud: Amazeballs!

degenatrons

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 364
  • Last login:March 29, 2016, 05:53:23 pm
    • KADE
Re: Making an Android Frontend (Android 2600:Part 1)
« Reply #3 on: June 20, 2013, 02:50:22 pm »
Thanks for the info chopperthedog. 
I decompiled the .apk using APK tool and had a look around.  There are some preference files but the contents are pretty much meaningless so I am in the dark as to what I should change.  Anyway,  I managed to make some dummy changes and recompile the .apk file.  That didn't help with my issue but it's good to know I can do this for future stuff.

So I had a look around the system folders on the android device and found an interesting file: build.prop .  I've seen this file discussed on various forums for managing system settings.
It's a read only file so I had to set write permissions before I could change the values.

Here's the file:

# begin build properties
# autogenerated by buildinfo.sh
ro.build.id=JRO03H
ro.build.display.id=rk30sdk-eng 4.1.1 JRO03H lewy20041@ eng.root.20130116.110927 test-keys
ro.build.version.incremental=eng.root.20130116.110927
ro.build.version.sdk=16
ro.build.version.codename=REL
ro.build.version.release=4.1.1
ro.build.date=2012 08 30 09:29:35 EST
ro.build.date.utc=1346030975
ro.build.type=eng
ro.build.user=root
ro.build.host=ubuntu
ro.build.tags=test-keys
ro.product.model=MinixHFW 2.2.4
ro.product.brand=asus
ro.product.name=EeePad
ro.product.device=tf700t
ro.product.board=rk30sdk
ro.product.cpu.abi=armeabi-v7a
ro.product.cpu.abi2=armeabi
ro.product.manufacturer=asus
ro.product.locale.language=en
ro.product.locale.region=US
ro.wifi.channels=
ro.board.platform=rk30xx
# ro.build.product is obsolete; use ro.product.device
ro.build.product=rk30sdk
# Do not try to parse ro.build.description or .fingerprint
ro.build.description=rk30sdk-eng 4.1.1 JRO03H eng.root.20130125.165203 test-keys
ro.build.fingerprint=rk30sdk/rk30sdk/rk30sdk:4.1.1/JRO03H/eng.root.20130125.165203:eng/test-keys
ro.build.characteristics=tablet
# end build properties
#
# system.prop
#

#rild.libpath=/system/lib/libreference-ril.so
#rild.libargs=-d /dev/ttyUSB2

#
# ADDITIONAL_BUILD_PROPERTIES
#
ro.com.android.dateformat=MM-dd-yyyy
ro.config.ringtone=Default.ogg
ro.config.notification_sound=Default.ogg
ro.carrier=unknown
ro.config.alarm_alert=Default.ogg
dalvik.vm.heapstartsize=8m
dalvik.vm.heapgrowthlimit=80m
dalvik.vm.heapsize=256m
ro.config.facelock=enable_facelock
persist.facelock.detect_cutoff=5000
persist.facelock.recog_cutoff=5000
persist.sys.usb.config=adb,mass_storage
persist.sys.strictmode.visual=false
dalvik.vm.jniopts=warnonly
ro.rksdk.version=RK30_ANDROID4.1.1-SDK-v1.00.00
sys.hwc.compose_policy=6
ro.sf.fakerotation=true
ro.sf.hwrotation=270
ro.rk.MassStorage=true
wifi.interface=wlan0
ro.rk.screenoff_time=-1
ro.rk.def_brightness=200
ro.rk.homepage_base=http://www.google.com/webhp?client={CID}&amp;source=android-home
ro.rk.install_non_market_apps=true
wifi.supplicant_scan_interval=15
ro.default.size=100
persist.sys.timezone=Asia/Shanghai
ro.product.usbfactory=MHFW USB
ro.opengles.version=131072
testing.mediascanner.skiplist=/mnt/sdcard/Android/
ro.factory.tool=0
rild.libargs=-d_/dev/ttyUSB1
ril.pppchannel=/dev/ttyUSB2
rild.libpath=/system/lib/libril-rk29-dataonly.so
ril.function.dataonly=1
ro.com.google.apphider=on
ro.com.google.gmsversion=4.1_r2
ro.com.archos.appsversion=1.16
ro.product.version=1.0.0
ro.product.ota.host=www.rockchip.com:2300
dalvik.vm.dexopt-flags=m=y
net.bt.name=Android
dalvik.vm.stack-trace-file=/data/anr/traces.txt
ro.hardware.version=1.0.0.0

#
#lewy20041
#

# Helps Scrolling Response
windowsmgr.max_events_per_sec=300

# Increases overall touch response
Debug.performance.tuning=1
video.accelerate.hw=1

# Forces your home screen launcher to remain in memory
ro.HOME_APP_ADJ=1

# Disable error checking, fix some application issues
ro.kernel.android.checkjni=0

# Google has something called a "checkin" service that sends them anonymous
# usage data, bug reports, crash logs, etc, but it fails a lot. When you download
# something from the Market, it sends a message to Google about it, and if it fails
# it just freezes.
ro.config.nocheckin=true
ro.com.google.locationfeatures=1
ro.com.google.networklocation=1

#Improve 3g data speeds
ro.ril.hsxpa=2
ro.ril.gprsclass=10
ro.ril.hep=1
ro.ril.enable.dtm=1
ro.ril.hsdpa.category=10
ro.ril.enable.a53=1
ro.ril.enable.3g.prefix=1
ro.ril.htcmaskw1.bitmask=4294967295
ro.ril.htcmaskw1=14449
ro.ril.hsupa.category=5

#Increased Media & Streaming Performance
ro.platform.has.sleeppolicy=false
media.stagefright.enable-player=true
media.stagefright.enable-http=true
media.stagefright.enable-aac=true
media.stagefright.enable-qcp=true
media.stagefright.enable-scan=true
media.stagefright.enable-meta=true
media.stagefright.enable-fma2dp=true
net.tcp.buffersize.default=4096,87380,256960,4096, 16384,256960
net.tcp.buffersize.wifi=4096,87380,256960,4096,163 84,256960
net.tcp.buffersize.umts=4096,87380,256960,4096,163 84,256960
net.tcp.buffersize.gprs=4096,87380,256960,4096,163 84,256960
net.tcp.buffersize.edge=4096,87380,256960,4096,163 84,256960
net.tcp.buffersize.evdo_b=4096,87380,256960,4096,1 6384,256960

#General Performance
debug.sf.hw=1
persist.sys.ui.hw=1
ro.max.fling_velocity=12000
ro.min.fling_velocity=8000
ro.media.enc.jpeg.quality=100
persist.service.adb.enable=1
persist.sys.screen.state=on
ro.sf.lcd_density=160



That last entry: ro.sf.lcd_density is the holy grail.  I found that the value relates directly to the icon and text size :D
I tested with various values and finally set at 270.

I made a couple of other tweaks
I reset the icon scale in Nova to 100% - so that we are not losing any image quality.
I installed a smaller font (FaunScript) and reduced font size to: Small because it had greatly increased with the density change.

I'm super happy with the way I have the box arts now.



« Last Edit: June 20, 2013, 02:55:40 pm by degenatrons »

Maximus

  • Trade Count: (+2)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 1391
  • Last login:May 26, 2017, 05:32:05 pm
  • Plans are for fools!!!!
    • Arcade Icons
Re: Making an Android Frontend (Android 2600:Part 1)
« Reply #4 on: June 20, 2013, 03:07:18 pm »
Looking good, is this something that you are thinking about doing for Mame? Some of us are experimenting with Android based PC's for potential small form-factor Mame solutions but of course Mame front ends on Android are pretty awful

bsellers100

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 53
  • Last login:June 19, 2018, 05:46:46 pm
  • I want my own arcade controls!
Re: Making an Android Frontend (Android 2600:Part 1)
« Reply #5 on: June 20, 2013, 05:36:02 pm »
That looks really cool.  I would love to see something like this as a seperate .apk that you could set up with gameplay images so that my kids could easily start emulator games on their tablets.  As it is now the youngest can't read all that well yet and game pics would make it easy for him to play the game he wants without always coming to me to start the emulator and game for him.  Keep up the good work, I can't wait to see how far you get with this.

degenatrons

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 364
  • Last login:March 29, 2016, 05:53:23 pm
    • KADE
Re: Making an Android Frontend (Android 2600:Part 1)
« Reply #6 on: June 21, 2013, 04:57:14 am »
Amazing work.
I've just built a couple of machines out of Android tablets (using your hexload minimus) and I realised that MAME systems no longer needed to use bulky Windows PC's; cheap Android can do it all now that the software is coming together. (Plus a way to make sensational mini machines)
This is going offer huge cost savings as a TV stick and minimus gives all of the guts for around £50.
Excellent work again Degenatrons.  :applaud: Amazeballs!
Cheers Mungo.  Loving your tiny arcade builds,  I'm keen to make one of them myself one day.

degenatrons

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 364
  • Last login:March 29, 2016, 05:53:23 pm
    • KADE
Re: Making an Android Frontend (Android 2600:Part 1)
« Reply #7 on: June 21, 2013, 07:46:44 am »
Looking good, is this something that you are thinking about doing for Mame? Some of us are experimenting with Android based PC's for potential small form-factor Mame solutions but of course Mame front ends on Android are pretty awful

There's a new Retroarch release (17th June) for Android including MAME build 2003 (0.78).  I'll try it out.  Seems like there are significant improvements.
http://forum.xda-developers.com/showthread.php?t=2116468&page=37

To use it I need to figure out how to launch into MAME game directly from my FE , bypassing Retroarch's game launcher - i'm only interested in its MAME core.

sharpfork

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 618
  • Last login:April 07, 2023, 12:43:42 pm
    • KADE
Re: Making an Android Frontend (Android 2600:Part 1)
« Reply #8 on: June 21, 2013, 11:13:26 pm »
Does retroarch have an API for game launch?  It seems like it should...

mike boss

  • Trade Count: (+1)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 2645
  • Last login:October 22, 2021, 01:19:45 pm
Re: Making an Android Frontend (Android 2600:Part 1)
« Reply #9 on: June 21, 2013, 11:42:13 pm »
This is really cool and I'll be keeping an eye on this thread for sure.
I have a very simply Android tablet, picked up a KADE, and was inspired by the Android tablet mini arcade units.
This is really awesome stuff.

Maximus

  • Trade Count: (+2)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 1391
  • Last login:May 26, 2017, 05:32:05 pm
  • Plans are for fools!!!!
    • Arcade Icons
Re: Making an Android Frontend (Android 2600:Part 1)
« Reply #10 on: June 26, 2013, 02:24:01 pm »
Hiya Fellas.

OK my Kade is in the mail (Thanks Kevin) and I've been testing RetroArch which is giving much better performance in the emulation arena so things are looking promising enough for me to continue pursuing the Android approach.

Degenatrons - did you ever work out if you could launch ROMs through RetroArch via scripts? I'd like to try that approach simulating what you have done here by giving each script a custom Icon and using a customized version of NOVA Launcher as my front end.

chopperthedog

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 1049
  • Last login:Yesterday at 03:18:18 pm
Re: Making an Android Frontend (Android 2600:Part 1)
« Reply #11 on: June 26, 2013, 04:53:39 pm »
This might help in the quest to launch game from shortcut. https://play.google.com/store/apps/details?id=net.dinglisch.android.taskerm&hl=en


good day.

degenatrons

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 364
  • Last login:March 29, 2016, 05:53:23 pm
    • KADE
Re: Making an Android Frontend (Android 2600:Part 1)
« Reply #12 on: June 26, 2013, 06:27:32 pm »
This might help in the quest to launch game from shortcut. https://play.google.com/store/apps/details?id=net.dinglisch.android.taskerm&hl=en

Thanks,  will take a look at that app you posted chopperthedog.

Degenatrons - did you ever work out if you could launch ROMs through RetroArch via scripts? I'd like to try that approach simulating what you have done here by giving each script a custom Icon and using a customized version of NOVA Launcher as my front end.

The wrapper for Retroarch looks interesting at: https://github.com/Themaister/RetroArch/blob/master/android/phoenix/src/org/retroarch/browser/RetroArch.java#L403
The methods onItemClick starts an activity and loads the roms,  also onActivityResult gives useful informtiion and references the config files.  Maybe we can adapt this to launch specific rom direct from the Android frontend. 
There's not much documentation out there so will have to play around and see what happens.  Aim would be to build an .APK that runs a single MAME rom and then we can look at automating the .APK creation for a bunch of other roms.
I won't have much time this week to look at it but will let you know if i make progress. 

Cheers

Maximus

  • Trade Count: (+2)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 1391
  • Last login:May 26, 2017, 05:32:05 pm
  • Plans are for fools!!!!
    • Arcade Icons
Re: Making an Android Frontend (Android 2600:Part 1)
« Reply #13 on: June 26, 2013, 06:58:17 pm »
Aim would be to build an .APK that runs a single MAME rom and then we can look at automating the .APK creation for a bunch of other roms.

Sounds interesting. Depending on your android programming skills the ideal approach would be to scan the roms folders, and maybe a graphics folder for png/jpg of the same name and show them in a list you could scroll through as buttons, clicking the image launches the rom.

Sp3c7r3

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 43
  • Last login:March 09, 2016, 02:09:52 am
Re: Making an Android Frontend (Android 2600:Part 1)
« Reply #14 on: June 27, 2013, 05:24:49 am »
Very interesting!! I have a Android MK809 lying around and if I could make that into a dedicated console emulator that would be pretty sweet. I know nothing about flashing/modding these things, so I'm following this project to hopefully pick something up  ;)

The ideal thing, for me, would be for the thing to boot directly to a front-end on power-on and everything being controllable with a generic usb joypad.

degenatrons

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 364
  • Last login:March 29, 2016, 05:53:23 pm
    • KADE
Re: Making an Android Frontend (Android 2600:Part 1)
« Reply #15 on: June 28, 2013, 06:21:11 pm »
I decided to take the bull by the horns and get my head into RetroArch to figure out how we can launch MAME games directly from the frontend.  Seems like there would be other uses for this outside of my project and potentially would be provide a viable alternative to a 60-in-1 board.  It's kind of a detour of the main goals of my console project but I admit it would be a pretty cool add.

My initial efforts have been successful :D  I've modified RetroArch code to launch Donkey Kong directly from my Android FrontEnd.  There is still some work to do to make this configurable so we can launch into any rom but the hard part is done.

I'll try to post a video soon to show it working.  In the meantime,  here's some pics to explain what was done.

I downloaded RetroArch source from https://github.com/Themaister/RetroArch/ and copied to the SD card on my Android stick.
For Java development,  I found a really neat IDE on Android called AIDE.  This App will allow be to modify and compile code directly on the Android stick and required no setup whatsoever :D  I highly recommend it.

I located the code which handles the game launching and moved it to the RetroArch start up routine,  so the first thing RetroArch does is launch a game.  This bypasses the UI selection by the user.  The user would normally have to pick an emulator core (from a long list) and then a rom (by browsing folders).  For now,  I have the rom hard-coded as dkong.zip but I can make this variable later. 
I added some text to appear as the game launches.



I compile the code and installed the modded RetroArch .APK.  I didn't build all of the emulator cores (no reason) so I copied these over to the RetroArch library manually.  You need root access for this and recommend the Root Browser App for the copying.  The 2 files pictures were copied from a default installation of RetroArch which I have since uninstalled from the device.



A Donkey Kong shortcut was added to the frontend.  I'm thinking that I could use the label name of the shortcut to identify the rom which should be launched.  Then would simply need to create other shortcuts for other games.  I'll take a look at this later.



I added a MAME screen to the Android 2600 launcher.



and made some more shortcuts for other classic games.



That's all for MAME.

In other news,  I made some tweaks to the icon size and resolution. and dropped the Android|2600 logo from the top-right which was a little distracting.  I also added some nice transitions when switching between the systems.
Here's some updated console pics.










Maximus

  • Trade Count: (+2)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 1391
  • Last login:May 26, 2017, 05:32:05 pm
  • Plans are for fools!!!!
    • Arcade Icons
Re: Making an Android Frontend (Android 2600:Part 1)
« Reply #16 on: June 28, 2013, 06:30:53 pm »
WELL DANG!!!!!!!!!!!!!!!!!!!!!!!!!

Nice, this is looking very promising indeed. My goal it to find an Android replacement for the 60 boards and this is certainly getting very very close to that, especially with the inclusion of the KADE too it is looking like a potentially very simple, powerful and reasonably economical way forward.

I'll have to take some time to wrap my head around what you have done here as I'm really not very good with code, but I love the look of what's happening.

Are you using Nova Launcher as your front end? What is the maximum Icon size that you can use, they look nice n big!!

Great work.

degenatrons

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 364
  • Last login:March 29, 2016, 05:53:23 pm
    • KADE
Re: Making an Android Frontend (Android 2600:Part 1)
« Reply #17 on: June 28, 2013, 06:53:04 pm »
Yup,  this is built on Nova Launcher with various tweaks.  When done,  I'll try to package everything up so it is easy to install/distribute and I can include the modded RetroArch .APK.  Kudos to themaister for making RetroArch source available and having a completetly open license  :cheers:

I manipulate the icon size using a combination of the lcd_density (parameter in the build.prop file) and the Nova icon size (max 130%).  Icons can be as big or small as you like using this combination.  My size gives we 2 rows within a folder window.  Bigger icons can be cropped when displayed in the folder so some trial and error is necessary.  I went for a clean screen for each of the systems and a button press opens up the rom selection.  Roms could be on the main screen too and then icons can be any size.


degenatrons

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 364
  • Last login:March 29, 2016, 05:53:23 pm
    • KADE
Re: Making an Android Frontend (Android 2600:Part 1)
« Reply #18 on: June 28, 2013, 06:53:59 pm »
(accidental empty post)
« Last Edit: June 28, 2013, 06:56:20 pm by degenatrons »

Maximus

  • Trade Count: (+2)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 1391
  • Last login:May 26, 2017, 05:32:05 pm
  • Plans are for fools!!!!
    • Arcade Icons
Re: Making an Android Frontend (Android 2600:Part 1)
« Reply #19 on: June 28, 2013, 06:56:09 pm »
Cool. Nice, I'm familiar with build.prop tweaks and LCD density so I can work that out, I use Nova on my phone too so this is all good.

Can't wait to play with it, I'll be out for a few weeks on vacation but when I get back I'll dive head on into this.

Bender

  • Trade Count: (+1)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 1919
  • Last login:November 28, 2016, 08:12:21 pm
    • Happ to Tron Conversion tutorial
Re: Making an Android Frontend (Android 2600:Part 1)
« Reply #20 on: June 30, 2013, 06:42:44 am »
Degrentrons,

This is great work!
Haven't looked into android before but I got a ouya and its been fun playing with that
Have you looked into MAME4droid reloaded which runs .139 a pretty recent version
I was just mentioning in another thread that a emu front end for the ouya would be killer
Think yours would work on it?

Plus aside from the technical challenges your overcoming I love the art and design of the Frontend too! :cheers:
« Last Edit: June 30, 2013, 06:45:43 am by Bender »

404

  • Trade Count: (+3)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 1019
  • Last login:August 04, 2015, 10:19:10 pm
Re: Making an Android Frontend (Android 2600:Part 1)
« Reply #21 on: June 30, 2013, 11:47:21 am »
I'm really quite fed up with the fragmentation in the android ecosystem as of late. I haven't tinkered with android stuff in over a year because of that.

This project however, makes me want to go buy one of these android tv sticks and start tinkering myself.

great job!  ;D

degenatrons

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 364
  • Last login:March 29, 2016, 05:53:23 pm
    • KADE
Re: Making an Android Frontend (Android 2600:Part 1)
« Reply #22 on: June 30, 2013, 03:33:24 pm »
Degrentrons,

This is great work!
Haven't looked into android before but I got a ouya and its been fun playing with that
Have you looked into MAME4droid reloaded which runs .139 a pretty recent version
I was just mentioning in another thread that a emu front end for the ouya would be killer
Think yours would work on it?

Plus aside from the technical challenges your overcoming I love the art and design of the Frontend too! :cheers:

I've tried MAME4droid.  It works but doesnt' perform as well (at least not on my device) as the latest RetroArch MAME build of 17th June.
This setup should work on OUYA too.  I just ordered one and will check it out.

Thanks for your comments about the art and design.  I tried to keep it all basic and functional for now.

degenatrons

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 364
  • Last login:March 29, 2016, 05:53:23 pm
    • KADE
Re: Making an Android Frontend (Android 2600:Part 1)
« Reply #23 on: June 30, 2013, 03:48:45 pm »
I'm really quite fed up with the fragmentation in the android ecosystem as of late. I haven't tinkered with android stuff in over a year because of that.

This project however, makes me want to go buy one of these android tv sticks and start tinkering myself.

great job!  ;D
I'm sure you'll love tinkering with your stick  :P
It took me a while to get used to Android but I'm really starting to warm to it and can see potential for projects big and small.

Maximus

  • Trade Count: (+2)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 1391
  • Last login:May 26, 2017, 05:32:05 pm
  • Plans are for fools!!!!
    • Arcade Icons
Re: Making an Android Frontend (Android 2600:Part 1)
« Reply #24 on: June 30, 2013, 09:45:26 pm »
Jellybean turned the corner its an extremely good OS just stick with vanilla builds

degenatrons

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 364
  • Last login:March 29, 2016, 05:53:23 pm
    • KADE
Re: Making an Android Frontend (Android 2600:Part 1)
« Reply #25 on: July 02, 2013, 08:08:27 pm »
The frontend now launches directly into MAME games using custom shortcuts  ;D.  These shortcuts need data to identify the rom and this data is passed to my modified build of RetroArch.

Custom shortcuts are easily created with the Tasker App



I created a bunch of shortcuts for classic roms and gave them each an image.



All tested and working.



The vertical games can be stretched to fit full screen but that looks pants on my TV!  I took another look at the Tasker App and found that is also has some UI capabilities.  It was possible for me to create a basic bezel using artwork for the left and right sides of the screen.  The images are displayed as a scene that is defined in Tasker to appear as an overlay.

I defined a scene in Tasker.



and updated the task of my custom shortcut. 



I did some other neat stuff in this task too.
i) There is speech to announce the name of the rom that is being launched. 
ii) After the rom loads I send left/right key input so the start screen in MAME is skipped.





I'm really loving the combination of Nova and Tasker.  Thanks to chopperthedog for suggesting the Tasker app :cheers:

That's all for now.  I haven't had time to make an updated video :(

kayser2008

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 15
  • Last login:December 07, 2014, 09:50:09 am
Re: Making an Android Frontend (Android 2600:Part 1)
« Reply #26 on: July 03, 2013, 05:22:06 am »
 :o  really
 great job Degenatrons will you realease that frontend ?
keep  up the AMAZING job.

Maximus

  • Trade Count: (+2)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 1391
  • Last login:May 26, 2017, 05:32:05 pm
  • Plans are for fools!!!!
    • Arcade Icons
Re: Making an Android Frontend (Android 2600:Part 1)
« Reply #27 on: July 03, 2013, 06:19:16 am »
Oh yes this is really coming together, I love where this is going

404

  • Trade Count: (+3)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 1019
  • Last login:August 04, 2015, 10:19:10 pm
Re: Making an Android Frontend (Android 2600:Part 1)
« Reply #28 on: July 03, 2013, 08:11:20 am »
I'm sure you'll love tinkering with your stick  :P
It took me a while to get used to Android but I'm really starting to warm to it and can see potential for projects big and small.

Jellybean turned the corner its an extremely good OS just stick with vanilla builds

I'm quite used to android as it stands. I've published 2 or 4 simple apps on the market. my gripe is the complete fragmentation of the android environment.


kahlid74

  • Trade Count: (+1)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 1366
  • Last login:January 01, 2021, 12:42:56 pm
  • Gaming for a better future!
    • GamersAnon
Re: Making an Android Frontend (Android 2600:Part 1)
« Reply #29 on: July 03, 2013, 09:22:26 am »
Degrentrons,

This is great work!
Haven't looked into android before but I got a ouya and its been fun playing with that
Have you looked into MAME4droid reloaded which runs .139 a pretty recent version
I was just mentioning in another thread that a emu front end for the ouya would be killer
Think yours would work on it?

Plus aside from the technical challenges your overcoming I love the art and design of the Frontend too! :cheers:

I've tried MAME4droid.  It works but doesnt' perform as well (at least not on my device) as the latest RetroArch MAME build of 17th June.
This setup should work on OUYA too.  I just ordered one and will check it out.

Thanks for your comments about the art and design.  I tried to keep it all basic and functional for now.

Reading this thread I was just thinking the Ouya too!  I've got mine ready to roll so if you want to shoot me some directions to try I'd love to give it a whirl.

Great job btw!

degenatrons

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 364
  • Last login:March 29, 2016, 05:53:23 pm
    • KADE
Re: Making an Android Frontend (Android 2600:Part 1)
« Reply #30 on: July 03, 2013, 10:23:09 am »
Reading this thread I was just thinking the Ouya too!  I've got mine ready to roll so if you want to shoot me some directions to try I'd love to give it a whirl.
Great job btw!

My OUYA should be with me in a few days so I will try to replicate the setup on that and make some notes.
Cheers.

Bender

  • Trade Count: (+1)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 1919
  • Last login:November 28, 2016, 08:12:21 pm
    • Happ to Tron Conversion tutorial
Re: Making an Android Frontend (Android 2600:Part 1)
« Reply #31 on: July 03, 2013, 07:39:35 pm »
Reading this thread I was just thinking the Ouya too!  I've got mine ready to roll so if you want to shoot me some directions to try I'd love to give it a whirl.
Great job btw!

My OUYA should be with me in a few days so I will try to replicate the setup on that and make some notes.
Cheers.

Hells Yeah! :applaud: :applaud:

emphatic

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 2009
  • Last login:Yesterday at 02:28:32 pm
  • -"Suck it, Donny!" -"No, YOU suck it.... more".
    • Emphatic's Video Game Collection
Re: Making an Android Frontend (Android 2600:Part 1)
« Reply #32 on: July 05, 2013, 05:46:53 am »
Nice work!  :cheers: What's up with those "X" icons on the bottom right of the "bezel" pictures?

degenatrons

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 364
  • Last login:March 29, 2016, 05:53:23 pm
    • KADE
Re: Making an Android Frontend (Android 2600:Part 1)
« Reply #33 on: July 05, 2013, 06:20:56 am »
Nice work!  :cheers: What's up with those "X" icons on the bottom right of the "bezel" pictures?
Thanks.  I got rid of the "X" (close icon) by changing the overlay settings.  The bezel appears automatically on game start and disappears on exit so no reason to have those icons appear.
 
« Last Edit: July 05, 2013, 06:22:57 am by degenatrons »

degenatrons

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 364
  • Last login:March 29, 2016, 05:53:23 pm
    • KADE
Re: Making an Android Frontend (Android 2600:Part 1)
« Reply #34 on: July 05, 2013, 11:10:12 am »
I made a short video to show progress with the frontend.  Quality is not great - there's lots of flickering because i'm recording the TV.  Anyway,  it shows what I have created so-far.



I have ideas to change the layout of the popup folder containing the roms.  Options are to use a web view which can display animated content (animated gif and flash) and be populated dynamically based on a scan of a roms or replace the app drawer with a custom version which will display specified items in a grid.

I am able to package my game customisations into .apk files.  The .apk can then be installed onto another machine.  This seems like a neat way of managing/distributing the game specific content I am adding to each of the roms (bezels, sounds, startup instructions, exit instructions). 

In other news,  my OUYA arrived today  ;D

   

Maximus

  • Trade Count: (+2)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 1391
  • Last login:May 26, 2017, 05:32:05 pm
  • Plans are for fools!!!!
    • Arcade Icons
Re: Making an Android Frontend (Android 2600:Part 1)
« Reply #35 on: July 05, 2013, 11:28:46 am »
Looks fantastic. I can't wait to play around with these pieces. I assume with your apk you could easily build complete game packs that are a simple install.

degenatrons

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 364
  • Last login:March 29, 2016, 05:53:23 pm
    • KADE
Re: Making an Android Frontend (Android 2600:Part 1)
« Reply #36 on: July 05, 2013, 03:21:47 pm »
Looks fantastic. I can't wait to play around with these pieces. I assume with your apk you could easily build complete game packs that are a simple install.
Interesting idea  :cheers:.  I should be able to bundle all the pieces into a project and generate a single .apk from that, excluding roms of course - roms would have to be placed in a given folder.

kayser2008

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 15
  • Last login:December 07, 2014, 09:50:09 am
Re: Making an Android Frontend (Android 2600:Part 1)
« Reply #37 on: July 06, 2013, 06:45:13 am »
degenatrons

I saw this app, i know already very advanced in your project, but decided to post it might help.
 good work. :applaud:

https://play.google.com/store/apps/details?id=com.ccpcreations.android.VLW&hl=en

http://www.youtube.com/watch?feature=player_embedded&v=oBpqZH8NEBI#at=76



degenatrons

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 364
  • Last login:March 29, 2016, 05:53:23 pm
    • KADE
Re: Making an Android Frontend (Android 2600:Part 1)
« Reply #38 on: July 09, 2013, 08:16:43 am »
degenatrons

I saw this app, i know already very advanced in your project, but decided to post it might help.
 good work. :applaud:

https://play.google.com/store/apps/details?id=com.ccpcreations.android.VLW&hl=en

Thanks for the suggestion.

I've actually been working on my own video overlay for display of the game previews as a videowall, so when clicking on the MAME option,  the videowall is presented for you to select a game from.  I now have it working on Android and will be doing some testing later with the frontend.
The production of the video wall is automated using a routine I wrote a while ago and is documented at:

https://sites.google.com/site/degenatrons/other-stuff/video-wall-generator

I had originally used this to generate a custom intro but found that it was easily adapted to work as a video menu.

Each video in the wall is an animated gif and these are bundled into a local webview on Android.  I added a JavaScript "onClick" event to each image and that is used to launch a task on Android which starts the game.  It is also possible for me to overlay transparent gif and flash animation over the webview by creating a Scene with Tasker.  I can set depth for each of the components that I use to make up the screen.  This provides a very powerful way to make themes.

I hope to post pics and more information later.

Here's that custom intro I made a while ago which shows how the videos appear together in a wall.  All the video was converted from AVI and merged together using my routine described in the above link.



Maximus

  • Trade Count: (+2)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 1391
  • Last login:May 26, 2017, 05:32:05 pm
  • Plans are for fools!!!!
    • Arcade Icons
Re: Making an Android Frontend (Android 2600:Part 1)
« Reply #39 on: July 09, 2013, 11:26:30 am »
A BILLION INTERNETZ POINTS!!!! for using Megablast by Bomb the Bass!!!