New Frontend Concept

I’m not sure I’ll be able to do this, sorry. At the moment I get data for MAME from arcadehits.net and they don’t provide a video in the game page. Just title and images. For some games, but not all, there’s a description and it’s the only addition i can make. Since there’s more than one pic, I could pick all of them and make something like a slideshow, but it’s not the priority and I’m worried that for very very big collections it could afflict the available space if you don’t have enough storage space. If you know a site providing video and game details for MAME games let me know, I’ll try to get data from there. :slight_smile:

Sorry dont know about any place where they put direct link videos of the games, anyway as it is its great, cant wait for mame on this and start testing :slight_smile:

Will test it better on my tablet, this MK802 IIIS thing dont work that well with Retroarch at the moment :frowning:

Hi,

I just updated the apk and source, so you can test the GUI. Expect, as always, some bugs in cover retrieval and in using the GUI with a controller. If you can’t focus the select button, just press start while selecting your game in the list.

Something that for sure has to be worked on is some kind of progress information, because if you have a 1000+ rom collection it will take some time to retrieve all the data .

Enjoy! :slight_smile:

Installed but as i try to Load Vektor GUI it crashes :frowning:

Changed the rom path and the same

Thanks for your hard work! With this Retroarch looks really nice to choose games :smiley:

Weird! Are you able to post a logcat?

Tried also on the mobile but the same :frowning:

Sorry i dont have any of them rooted to have logcat, dont remember if there was an app to do it without being root?

Looks like a general issue.

I don’t think you need root, just enable usb debug , plug the phone to the pc and then run adb logcat in command prompt. By the way, since it seems a general issue I will try resetting my data and performing a fresh install to see what makes it crash.

UPDATE: Made a fresh install and got the crash on my nexus. Hoping it’s for the same cause, I think I fixed it :slight_smile:

Took this from the phone a few seconds ago at launch at work, dont know if this should help:

Saw that you updated the apk, will test it later again :slight_smile:

I/BufferQueue(  130): [Starting com.retroarch](this:0x42320278,api:2) disconnect
: api=2
I/SurfaceTexture(  130): [Starting com.retroarch] [virtual android::status_t and
roid::SurfaceTexture::forceAuxConversionLocked()] mCurrentTexture:0, mCurrentBuf
:0x420ce610
I/BufferQueue(  130): [Starting com.retroarch](this:0x42320278,api:0) getRelease
dBuffers: returning mask 0xffffffff
I/SurfaceTexture(  130): [Starting com.retroarch](this:0x42293a98,api:0) destroy
ing EGLImage dpy=0x1 img=0x4212bcd8
I/SurfaceTexture(  130): [com.retroarch/com.retroarch.browser.mainmenu.MainMenuA
ctivity](this:0x42293008,api:1) destroying EGLImage dpy=0x1 img=0x422e31b8
I/SurfaceTexture(  130): [com.retroarch/com.retroarch.browser.mainmenu.MainMenuA
ctivity](this:0x42293008,api:1) destroying EGLImage dpy=0x1 img=0x4200e5d8
I/SurfaceTexture(  130): [com.retroarch/com.retroarch.browser.mainmenu.MainMenuA
ctivity](this:0x42293008,api:1) destroying EGLImage dpy=0x1 img=0x42150a10
I/SurfaceTexture(  130): [com.retroarch/com.retroarch.browser.mainmenu.MainMenuA
ctivity](this:0x42293008,api:1) destroying EGLImage dpy=0x1 img=0x41ffac60
I/BufferQueue(  130): [com.retroarch/com.retroarch.browser.mainmenu.MainMenuActi
vity](this:0x42331008,api:1) consumerDisconnect
W/Trace   (  640): Unexpected value from nativeGetEnabledTags: 0
W/Trace   (  640): Unexpected value from nativeGetEnabledTags: 0
W/Trace   (  640): Unexpected value from nativeGetEnabledTags: 0
W/Trace   (  640): Unexpected value from nativeGetEnabledTags: 0
W/Trace   (  640): Unexpected value from nativeGetEnabledTags: 0
W/Trace   (  640): Unexpected value from nativeGetEnabledTags: 0
W/Trace   (  640): Unexpected value from nativeGetEnabledTags: 0
W/Trace   (  640): Unexpected value from nativeGetEnabledTags: 0
I/SurfaceTextureClient(19719): [STC::queueBuffer] (this:0x642b0178) fps:0.43, du
r:2316.45, max:2316.45, min:2316.45
I/SurfaceTextureClient(  640): [STC::queueBuffer] (this:0x5e21cfe8) fps:0.97, du
r:1029.76, max:1029.76, min:1029.76
I/BufferQueue(  130): [StatusBar](this:0x41ff4820,api:1) [queue] fps:0.97, dur:1
029.57, max:1029.57, min:1029.57
I/BufferQueue(  130): [com.android.launcher/com.android.launcher2.Launcher](this
:0x422fae28,api:1) [queue] fps:0.43, dur:2317.14, max:2317.14, min:2317.14
W/Trace   (  640): Unexpected value from nativeGetEnabledTags: 0
W/Trace   (  640): Unexpected value from nativeGetEnabledTags: 0
I/BufferQueue(  130): [com.retroarch/com.retroarch.browser.mainmenu.MainMenuActi
vity](this:0x42331008,api:1) ~BufferQueue
I/BufferQueue(  130): [Starting com.retroarch](this:0x42320278,api:0) consumerDi
sconnect
I/BufferQueue(  130): [com.android.launcher/com.android.launcher2.Launcher](this
:0x422fae28,api:1) new GraphicBuffer needed
D/BufferQueue(  130):     [OLD] gb:NULL
W/Trace   (  480): Unexpected value from nativeGetEnabledTags: 0
D/KeyguardUpdateMonitor(  480): sendKeyguardVisibilityChanged(true)
D/KeyguardUpdateMonitor(  480): handleKeyguardVisibilityChanged(1)
D/KeyguardViewMediator(  480): handleMessage enter msg name=SET_HIDDEN
D/KeyguardViewMediator(  480): handleMessage exit msg name=SET_HIDDEN
I/BufferQueue(  130): [Starting com.retroarch](this:0x42320278,api:0) ~BufferQue
ue
W/Trace   (  480): Unexpected value from nativeGetEnabledTags: 0
I/SurfaceTexture(  130): [com.android.launcher/com.android.launcher2.Launcher](t
his:0x422e6a58,api:1) [void* android::SurfaceTexture::createImage(EGLDisplay, co
nst android::sp<android::GraphicBuffer>&)]
D/SurfaceTexture(  130):     GraphicBuffer: gb=0x422d8650 handle=0x42294b30
D/SurfaceTexture(  130):     EGLImage: dpy=0x1, img=0x420d5d10
I/BufferQueue(  130): [StatusBar](this:0x41ff4820,api:1) [release] fps:0.97, dur
:1025.85, max:1025.85, min:1025.85
I/GraphicBuffer(  130): allocate buffer (w:544 h:960 f:5) err(0)
I/BufferQueue(  130):     [NEW] gb=0x420e13f8, handle=0x4211e418, w=540, h=960,
s=544, fmt=5
W/Trace   (19719): Unexpected value from nativeGetEnabledTags: 0
W/Trace   (19719): Unexpected value from nativeGetEnabledTags: 0
I/SurfaceTextureClient(  130): [STC::queueBuffer] (this:0x4202d250) fps:2.92, du
r:1028.68, max:844.28, min:68.25
I/BufferQueue(  130): [FramebufferSurface](this:0x4202c748,api:1) [release] fps:
2.92, dur:1028.65, max:844.24, min:68.26
I/BufferQueue(  130): [FramebufferSurface](this:0x4202c748,api:1) [queue] fps:2.
92, dur:1028.62, max:844.20, min:68.24
W/Trace   (  480): Unexpected value from nativeGetEnabledTags: 0
D/KeyguardUpdateMonitor(  480): sendKeyguardVisibilityChanged(true)
D/KeyguardUpdateMonitor(  480): handleKeyguardVisibilityChanged(1)
D/KeyguardViewMediator(  480): handleMessage enter msg name=SET_HIDDEN
D/KeyguardViewMediator(  480): handleMessage exit msg name=SET_HIDDEN
I/BufferQueue(  130): [Application Error: com.retroarch](this:0x42323008,api:2)
disconnect: api=2
I/SurfaceTexture(  130): [Application Error: com.retroarch] [virtual android::st
atus_t android::SurfaceTexture::forceAuxConversionLocked()] mCurrentTexture:2, m
CurrentBuf:0x420a7af8
I/BufferQueue(  130): [Application Error: com.retroarch](this:0x42323008,api:0)
getReleasedBuffers: returning mask 0xffffffff
I/SurfaceTexture(  130): [Application Error: com.retroarch](this:0x42101ad8,api:
0) destroying EGLImage dpy=0x1 img=0x42002d38
I/SurfaceTexture(  130): [Application Error: com.retroarch](this:0x42101ad8,api:
0) destroying EGLImage dpy=0x1 img=0x4207e538
I/SurfaceTexture(  130): [Application Error: com.retroarch](this:0x42101ad8,api:
0) destroying EGLImage dpy=0x1 img=0x426daec8
I/SurfaceTexture(  130): [Application Error: com.retroarch](this:0x42101ad8,api:
0) destroying EGLImage dpy=0x1 img=0x41eef6c0
W/Trace   (  480): Unexpected value from nativeGetEnabledTags: 0
W/Trace   (  480): Unexpected value from nativeGetEnabledTags: 0
D/KeyguardUpdateMonitor(  480): sendKeyguardVisibilityChanged(true)
D/KeyguardUpdateMonitor(  480): handleKeyguardVisibilityChanged(1)
D/KeyguardViewMediator(  480): handleMessage enter msg name=SET_HIDDEN
D/KeyguardViewMediator(  480): handleMessage exit msg name=SET_HIDDEN
W/Trace   (  480): Unexpected value from nativeGetEnabledTags: 0
I/BufferQueue(  130): [Application Error: com.retroarch](this:0x42323008,api:0)
consumerDisconnect
I/BufferQueue(  130): [Application Error: com.retroarch](this:0x42323008,api:0)
~BufferQueue

EDIT: Installed on mobile, works perfect, the only thing is that because of the resolution of mi phone when in landscape mode the start game button cant be seen, would be a nice addition to phones being able to launch game by double touching the name or touching the photo of the game.

Will test on the tablet connected via hdmi and with a DS3 pad later on and tell the results :slight_smile:

@vektor, thank you for your good work. Your GUI seems to be following a really nice path, being simple and efficient.

I’ve tested it on a lower end device (JXD S602) with a 4.3" screen, and faced some problems due to the screen layout. So I’ve made a mockup with some suggestions on how you could simplify and (IMHO) improve the GUI in order it could work in devices with smaller screens.

Please check the images below:

In the mockup I’m suggesting you use all the vertical space to the game list, removing the additional infos (games found, platform name/core). I’m also suggesting you to remove the title label over the cover, as it is redundant (it is the same as the selected game). Also I think that the label “game description” is not necessary, as it is obvious that the text below the cover is description/information about the selected game.

The platform name and core being used could be moved to the dropdow in the top-right corner: When you select a system and core, the icon will match the system and the label will match the core.

I think this way you can save some screen space, but keeping the relevant information in sight.

Also, it would be very nice (and needed for some devices) if you could launch the game without a soft button (“play this game” button). The game launch should be linked to an action in the list (e.g., one tap select, another tap launch), and also launch using hardware buttons, when available (same way as default android behavior in any list).

Ah, the sound played while you browse should also be made optional (or turned off, as android have a native way to make a sound when you click or tap). If you use android native click sound, you will hear two sounds while you browse in the GUI.

Please check the annotated image to see my points.

One more time, congratulations and thank you for your very good job.

Best regards

Thank you for the time spent trying it and your feedback!

Thanks for the precious suggestion, I use a Nexus 7 and JXD S7300 for testing, both of them are 7" so I didn’t notice this possible issue!

Seems a good point, but where to show the game year then?

Yes, I was already thinking to change this, in fact the whole top bar will be restyled.

You can execute the game in two ways:

  • Tapping the “play this game” button
  • Pressing your ENTER/START hardware key while selecting the desired game.

I disabled the android sound while browsing the list, while on other UI elements the default sound will remain.

Thanks again for your feedback! Every suggestion is really appreciated. :slight_smile:

UPDATE: Something like this? Might work well on smaller screens but there is a lot of wasted space on larger screens :rolleyes: If you notice, I added a “play” button next to the selected game name instead of the “play this game” button.

As i told i installed it on my tablet.

Works pretty well, the only strange thing was that i had to open/close mame section a few times to finish to download all the screens of all the games.

The small start icon on the right of the name of the game is really interesting, if you make another updated apk will uninstall and install again on tablet.

This is not experimental at all :smiley:

Since you are processing the game name in the list, you could append it to the game name. E.g., “Super Mario World.zip” -> "Super Mario World (1990)

Another option I can think now is add it to the game information box. If the text in the information box is scrollable, you could append in the end of the text some information. E.g.:

[ cover image ]

Super Mario World was the first Mario game and launch title released for the Super Famicom…

Year: 1990 System: Super Nintendo Filename: Super Mario World.zip

I disabled the android sound while browsing the list, while on other UI elements the default sound will remain.[/quote]

Again, in my JXD S602, there is a double sound. Anyway, I’ll wait a new test version so I can give you new feedback about this subject.

Yes, I was already thinking to change this, in fact the whole top bar will be restyled.[/quote]

I don’t know what framework version you are using, but another option could be use a side menu (e.g., check the image of G+ app below to illustrate the idea) to choose the system, and the dropdown to choose the core.

Also, I don’t think you should copy, but Open Emu in OSX could be a good inspiration:

A side menu like that, and a simple game list using your retro style, and I think we have already a very good GUI for RetroArch. :slight_smile:

I don’t know why, but starting using hw keys don’t work on my JXD S602 (Android Version 4.0.4). Maybe is because it is a lower end device and is not supported by RetroArch. So, just ignore this.

I really like the play button in the list. Another simple and elegant solution. :slight_smile:

Regarding the wasted space, you could try to make the left column and the game list use a relative width, trying to keep a good proportion. Also, you can use some background color on the left column, so it gave the illusion of filling some space, even it being empty. And when the game list is full, I don’t think the empty space will bother (I don’t know for sure, need some tests to give a real opinion)

I know it is a lot of suggestions, and you don’t need (and don’t have!) to implement every suggestion you receive. Use this talk as a brainstorm. Pick the ideas you like more and keep up the good work. :smiley:

Best regards

Thanks for sharing the experience! I’ll try investigating the MAME games issue and once I finish a little UI change I’ll release a third apk. :slight_smile:

It’s strange because the function I’m using for doing this is available since API level 1. Are you sure you’re using the newest apk? (In the main post it comes before the first apk, they’re in descending order).

I wanted to keep my layout the simpler possible, that’s why I avoided a Navigation Drawer and similar stuff. If you people prefer I could redesign the entire UI to make it modern and more appealing :slight_smile: I made a sketch of what the ui could become http://imgur.com/uyu4jWB , fancy but could create problems with bigger collections.

Probably the hw driver doesn’t map the hw Start button to soft keys START or ENTER, even if seems strange. You could try with an input debug app and tell me the keycode it returns when you press start.

I solved quickly the problem by extending the description field, making it adapt to the available space on the screen. :slight_smile:

Every feedback is welcome and if I think it’s a good idea I try to implement it :wink: Thanks for the suggestions!

Edit: Tried a gmail-like color scheme and I’m quite satisfied of the result :smiley:

Very nice! =D

I don’t think it needs to be any more complex than this. I’m eagerly waiting for a new version to test.

Again, thank you for your kind attention.

Best regards

Very nice! =D

I don’t think it needs to be any more complex than this. I’m eagerly waiting for a new version to test.

Again, thank you for your kind attention.

Best regards[/quote]

Its really nice! No real need for anything else really :smiley:

About the OpenEmu-like style, i think that suits better for Win-Linux-Mac version of the new Retroarch Phoenix, looks cool also:

viewtopic.php?f=27&t=1379

Waiting for that new version too here! :smiley:

Third apk is up. This time i checked it doesn’t crash after a fresh install :smiley: Just remember to set again the default rom path to have your games listed :rolleyes:

UI has been enhanced to improve controller support, I added a paragraph in the main thread.

Next step will be to use the same style of rom list for platform/core selection popup.

Update: I’m currently retrieving metadata for 4000 MAME games and it’s very slow, but definitely working. It’s apparently not working because it doesn’t update the ui, so titles remain the filename until you touch one of the games, then ui is updated and so the titles.

Tested on phone, works pretty well man, no issues :slight_smile:

Cheers!!

vektor,

I just registered an account because I wanted to say how much I appreciate your work on this front end. RetroArch is an incredible project and having this built-in will only make it that much better.

With regards to future requests, I know you said you couldn’t find an online database of MAME video snaps, but do you think you will ever support them for those of us who have already built a collection from EmuMovies.com? http://emumovies.com/forums/index.php/f … deo-packs/ to be specific.

Either way, if you were wanting to up the flair, you could maybe also allow the file names of the games to be replaced with the marquee art or something similar, a la HyperSpin… But I’m not sure how flashy you’d like to get. That would be a fun option though. Or integrating any of the art assets from http://emumovies.com/forums/index.php/f … twork-pack

No matter, huge props for a job well done and I look forward to each and every iteration. It’s only getting better!

For non-Android users, any chance of this making it’s way to PS3 retroarch? lol

Good job vektor! I think that if you go like this in a very short time we can have a completely re-written GUI for Retroarch. Thank you so much for your work and to the collaboration in the Libretro project :slight_smile: P.s. what about FBA? :slight_smile: